From 09c60daef1b340858056b249dcee730c25d32131 Mon Sep 17 00:00:00 2001 From: Dongyeon Kim Date: Wed, 22 Aug 2012 20:28:58 +0900 Subject: [PATCH] Upload Tizen2.0 source --- Makefile.am | 3 +- Makefile.in | 1393 + Makefile.win32 | 10 +- NEWS | 208 + README | 14 +- TC/_export_env.sh | 9 + TC/_export_target_env.sh | 7 + TC/build.sh | 16 + TC/clean.sh | 11 + TC/config | 2 + TC/execute.sh | 15 + TC/perf/Makefile | 15 + TC/perf/common.c | 65 + TC/perf/common.h | 28 + TC/perf/fill | Bin 0 -> 37487 bytes TC/perf/fill.c | 63 + TC/perf/image | Bin 0 -> 40823 bytes TC/perf/image.c | 105 + TC/perf/image1.png | Bin 0 -> 45272 bytes TC/perf/image2.png | Bin 0 -> 59984 bytes TC/perf/main.c | 264 + TC/perf/stroke | Bin 0 -> 38808 bytes TC/perf/stroke.c | 85 + TC/testcase/Makefile | 24 + TC/testcase/cairo-test.h | 66 + TC/testcase/tslist | 1022 + TC/testcase/utc_a1_bug_gl.c | 70 + TC/testcase/utc_a1_bug_image.c | 70 + TC/testcase/utc_a1_clip_fill_equal_gl.c | 70 + TC/testcase/utc_a1_clip_fill_equal_image.c | 70 + TC/testcase/utc_a1_clip_fill_gl.c | 70 + TC/testcase/utc_a1_clip_fill_image.c | 70 + TC/testcase/utc_a1_clip_fill_rule_gl.c | 70 + TC/testcase/utc_a1_clip_fill_rule_image.c | 70 + TC/testcase/utc_a1_clip_paint_gl.c | 70 + TC/testcase/utc_a1_clip_paint_image.c | 70 + TC/testcase/utc_a1_clip_stroke_gl.c | 70 + TC/testcase/utc_a1_clip_stroke_image.c | 70 + TC/testcase/utc_a1_fill_gl.c | 70 + TC/testcase/utc_a1_fill_image.c | 70 + TC/testcase/utc_a1_image_sample_gl.c | 70 + TC/testcase/utc_a1_image_sample_image.c | 70 + TC/testcase/utc_a1_line_width_gl.c | 70 + TC/testcase/utc_a1_line_width_image.c | 70 + TC/testcase/utc_a1_mask_gl.c | 70 + TC/testcase/utc_a1_mask_image.c | 70 + TC/testcase/utc_a1_mask_sample_gl.c | 70 + TC/testcase/utc_a1_mask_sample_image.c | 70 + TC/testcase/utc_a1_rasterisation_rectangles_gl.c | 70 + .../utc_a1_rasterisation_rectangles_image.c | 70 + TC/testcase/utc_a1_rasterisation_triangles_gl.c | 70 + TC/testcase/utc_a1_rasterisation_triangles_image.c | 70 + TC/testcase/utc_a1_rectilinear_grid_gl.c | 70 + TC/testcase/utc_a1_rectilinear_grid_image.c | 70 + TC/testcase/utc_a1_sample_gl.c | 70 + TC/testcase/utc_a1_sample_image.c | 70 + TC/testcase/utc_a1_tiger_gl.c | 70 + TC/testcase/utc_a1_tiger_image.c | 70 + TC/testcase/utc_a1_traps_sample_gl.c | 70 + TC/testcase/utc_a1_traps_sample_image.c | 70 + TC/testcase/utc_a8_clear_gl.c | 70 + TC/testcase/utc_a8_clear_image.c | 70 + TC/testcase/utc_a8_mask_gl.c | 70 + TC/testcase/utc_a8_mask_image.c | 70 + TC/testcase/utc_aliasing_gl.c | 70 + TC/testcase/utc_aliasing_image.c | 70 + TC/testcase/utc_alpha_similar_gl.c | 70 + TC/testcase/utc_alpha_similar_image.c | 70 + TC/testcase/utc_api_special_cases_gl.c | 70 + TC/testcase/utc_api_special_cases_image.c | 70 + TC/testcase/utc_arc_direction_gl.c | 70 + TC/testcase/utc_arc_direction_image.c | 70 + TC/testcase/utc_arc_infinite_loop_gl.c | 70 + TC/testcase/utc_arc_infinite_loop_image.c | 70 + TC/testcase/utc_arc_looping_dash_gl.c | 70 + TC/testcase/utc_arc_looping_dash_image.c | 70 + TC/testcase/utc_big_empty_box_gl.c | 70 + TC/testcase/utc_big_empty_box_image.c | 70 + TC/testcase/utc_big_empty_triangle_gl.c | 70 + TC/testcase/utc_big_empty_triangle_image.c | 70 + TC/testcase/utc_big_line_gl.c | 70 + TC/testcase/utc_big_line_image.c | 70 + TC/testcase/utc_big_little_box_gl.c | 70 + TC/testcase/utc_big_little_box_image.c | 70 + TC/testcase/utc_big_little_triangle_gl.c | 70 + TC/testcase/utc_big_little_triangle_image.c | 70 + TC/testcase/utc_big_trap_gl.c | 70 + TC/testcase/utc_big_trap_image.c | 70 + TC/testcase/utc_bilevel_image_gl.c | 70 + TC/testcase/utc_bilevel_image_image.c | 70 + TC/testcase/utc_bitmap_font_gl.c | 70 + TC/testcase/utc_bitmap_font_image.c | 70 + TC/testcase/utc_bug_40410_gl.c | 70 + TC/testcase/utc_bug_40410_image.c | 70 + TC/testcase/utc_bug_bo_rectangular_gl.c | 70 + TC/testcase/utc_bug_bo_rectangular_image.c | 70 + TC/testcase/utc_bug_bo_ricotz_gl.c | 70 + TC/testcase/utc_bug_bo_ricotz_image.c | 70 + TC/testcase/utc_bug_extents_gl.c | 70 + TC/testcase/utc_bug_extents_image.c | 70 + TC/testcase/utc_bug_seams_gl.c | 70 + TC/testcase/utc_bug_seams_image.c | 70 + TC/testcase/utc_bug_source_cu_gl.c | 70 + TC/testcase/utc_bug_source_cu_image.c | 70 + TC/testcase/utc_caps_gl.c | 70 + TC/testcase/utc_caps_image.c | 70 + TC/testcase/utc_caps_joins_alpha_gl.c | 70 + TC/testcase/utc_caps_joins_alpha_image.c | 70 + TC/testcase/utc_caps_joins_curve_gl.c | 70 + TC/testcase/utc_caps_joins_curve_image.c | 70 + TC/testcase/utc_caps_joins_gl.c | 70 + TC/testcase/utc_caps_joins_image.c | 70 + TC/testcase/utc_caps_sub_paths_gl.c | 70 + TC/testcase/utc_caps_sub_paths_image.c | 70 + TC/testcase/utc_caps_tails_curve_gl.c | 70 + TC/testcase/utc_caps_tails_curve_image.c | 70 + TC/testcase/utc_checkerboard_gl.c | 70 + TC/testcase/utc_checkerboard_image.c | 70 + TC/testcase/utc_clear_gl.c | 70 + TC/testcase/utc_clear_image.c | 70 + TC/testcase/utc_clear_source_gl.c | 70 + TC/testcase/utc_clear_source_image.c | 70 + TC/testcase/utc_clip_all_gl.c | 70 + TC/testcase/utc_clip_all_image.c | 70 + TC/testcase/utc_clip_complex_shape_eo_aa_gl.c | 70 + TC/testcase/utc_clip_complex_shape_eo_aa_image.c | 70 + TC/testcase/utc_clip_complex_shape_eo_mono_gl.c | 70 + TC/testcase/utc_clip_complex_shape_eo_mono_image.c | 70 + TC/testcase/utc_clip_contexts_gl.c | 70 + TC/testcase/utc_clip_contexts_image.c | 70 + TC/testcase/utc_clip_device_offset_gl.c | 70 + TC/testcase/utc_clip_device_offset_image.c | 70 + TC/testcase/utc_clip_disjoint_gl.c | 70 + TC/testcase/utc_clip_disjoint_hatching_gl.c | 70 + TC/testcase/utc_clip_disjoint_hatching_image.c | 70 + TC/testcase/utc_clip_disjoint_image.c | 70 + TC/testcase/utc_clip_double_free_gl.c | 70 + TC/testcase/utc_clip_double_free_image.c | 70 + TC/testcase/utc_clip_empty_gl.c | 70 + TC/testcase/utc_clip_empty_group_gl.c | 70 + TC/testcase/utc_clip_empty_group_image.c | 70 + TC/testcase/utc_clip_empty_image.c | 70 + TC/testcase/utc_clip_empty_save_gl.c | 70 + TC/testcase/utc_clip_empty_save_image.c | 70 + TC/testcase/utc_clip_fill_eo_unbounded_gl.c | 70 + TC/testcase/utc_clip_fill_eo_unbounded_image.c | 70 + TC/testcase/utc_clip_fill_gl.c | 70 + TC/testcase/utc_clip_fill_image.c | 70 + TC/testcase/utc_clip_fill_no_op_gl.c | 70 + TC/testcase/utc_clip_fill_no_op_image.c | 70 + TC/testcase/utc_clip_fill_nz_unbounded_gl.c | 70 + TC/testcase/utc_clip_fill_nz_unbounded_image.c | 70 + TC/testcase/utc_clip_fill_rule_gl.c | 70 + TC/testcase/utc_clip_fill_rule_image.c | 70 + TC/testcase/utc_clip_fill_rule_pixel_aligned_gl.c | 70 + .../utc_clip_fill_rule_pixel_aligned_image.c | 70 + .../utc_clip_group_shapes_aligned_rectangles_gl.c | 70 + ...tc_clip_group_shapes_aligned_rectangles_image.c | 70 + TC/testcase/utc_clip_group_shapes_circles_gl.c | 70 + TC/testcase/utc_clip_group_shapes_circles_image.c | 70 + ...utc_clip_group_shapes_unaligned_rectangles_gl.c | 70 + ..._clip_group_shapes_unaligned_rectangles_image.c | 70 + TC/testcase/utc_clip_image_gl.c | 70 + TC/testcase/utc_clip_image_image.c | 70 + TC/testcase/utc_clip_intersect_gl.c | 70 + TC/testcase/utc_clip_intersect_image.c | 70 + TC/testcase/utc_clip_mixed_antialias_gl.c | 70 + TC/testcase/utc_clip_mixed_antialias_image.c | 70 + TC/testcase/utc_clip_nesting_gl.c | 70 + TC/testcase/utc_clip_nesting_image.c | 70 + TC/testcase/utc_clip_operator_gl.c | 70 + TC/testcase/utc_clip_operator_image.c | 70 + TC/testcase/utc_clip_polygons_gl.c | 70 + TC/testcase/utc_clip_polygons_image.c | 70 + TC/testcase/utc_clip_push_group_gl.c | 70 + TC/testcase/utc_clip_push_group_image.c | 70 + TC/testcase/utc_clip_rectilinear_gl.c | 70 + TC/testcase/utc_clip_rectilinear_image.c | 70 + .../utc_clip_rotate_image_surface_paint_gl.c | 70 + .../utc_clip_rotate_image_surface_paint_image.c | 70 + TC/testcase/utc_clip_shape_gl.c | 70 + TC/testcase/utc_clip_shape_image.c | 70 + TC/testcase/utc_clip_stroke_gl.c | 70 + TC/testcase/utc_clip_stroke_image.c | 70 + TC/testcase/utc_clip_stroke_no_op_gl.c | 70 + TC/testcase/utc_clip_stroke_no_op_image.c | 70 + TC/testcase/utc_clip_stroke_unbounded_gl.c | 70 + TC/testcase/utc_clip_stroke_unbounded_image.c | 70 + TC/testcase/utc_clip_text_gl.c | 70 + TC/testcase/utc_clip_text_image.c | 70 + TC/testcase/utc_clip_twice_gl.c | 70 + TC/testcase/utc_clip_twice_image.c | 70 + TC/testcase/utc_clip_twice_rectangle_gl.c | 70 + TC/testcase/utc_clip_twice_rectangle_image.c | 70 + TC/testcase/utc_clip_unbounded_gl.c | 70 + TC/testcase/utc_clip_unbounded_image.c | 70 + TC/testcase/utc_clip_zero_gl.c | 70 + TC/testcase/utc_clip_zero_image.c | 70 + TC/testcase/utc_clipped_group_gl.c | 70 + TC/testcase/utc_clipped_group_image.c | 70 + TC/testcase/utc_clipped_surface_gl.c | 70 + TC/testcase/utc_clipped_surface_image.c | 70 + TC/testcase/utc_clipped_trapezoids_gl.c | 70 + TC/testcase/utc_clipped_trapezoids_image.c | 70 + TC/testcase/utc_close_path_current_point_gl.c | 70 + TC/testcase/utc_close_path_current_point_image.c | 70 + TC/testcase/utc_close_path_gl.c | 70 + TC/testcase/utc_close_path_image.c | 70 + .../utc_composite_integer_translate_over_gl.c | 70 + .../utc_composite_integer_translate_over_image.c | 70 + ...tc_composite_integer_translate_over_repeat_gl.c | 70 + ...composite_integer_translate_over_repeat_image.c | 70 + .../utc_composite_integer_translate_source_gl.c | 70 + .../utc_composite_integer_translate_source_image.c | 70 + TC/testcase/utc_copy_disjoint_gl.c | 70 + TC/testcase/utc_copy_disjoint_image.c | 70 + TC/testcase/utc_copy_path_gl.c | 70 + TC/testcase/utc_copy_path_image.c | 70 + TC/testcase/utc_coverage_column_triangles_gl.c | 70 + TC/testcase/utc_coverage_column_triangles_image.c | 70 + TC/testcase/utc_coverage_intersecting_quads_gl.c | 70 + .../utc_coverage_intersecting_quads_image.c | 70 + .../utc_coverage_intersecting_triangles_gl.c | 70 + .../utc_coverage_intersecting_triangles_image.c | 70 + TC/testcase/utc_coverage_rectangles_gl.c | 70 + TC/testcase/utc_coverage_rectangles_image.c | 70 + TC/testcase/utc_coverage_row_triangles_gl.c | 70 + TC/testcase/utc_coverage_row_triangles_image.c | 70 + TC/testcase/utc_coverage_triangles_gl.c | 70 + TC/testcase/utc_coverage_triangles_image.c | 70 + TC/testcase/utc_create_for_stream_gl.c | 70 + TC/testcase/utc_create_for_stream_image.c | 70 + TC/testcase/utc_create_from_png_gl.c | 70 + TC/testcase/utc_create_from_png_image.c | 70 + TC/testcase/utc_create_from_png_stream_gl.c | 70 + TC/testcase/utc_create_from_png_stream_image.c | 70 + TC/testcase/utc_culled_glyphs_gl.c | 70 + TC/testcase/utc_culled_glyphs_image.c | 70 + TC/testcase/utc_curve_to_as_line_to_gl.c | 70 + TC/testcase/utc_curve_to_as_line_to_image.c | 70 + TC/testcase/utc_dash_caps_joins_gl.c | 70 + TC/testcase/utc_dash_caps_joins_image.c | 70 + TC/testcase/utc_dash_curve_gl.c | 70 + TC/testcase/utc_dash_curve_image.c | 70 + TC/testcase/utc_dash_infinite_loop_gl.c | 70 + TC/testcase/utc_dash_infinite_loop_image.c | 70 + TC/testcase/utc_dash_no_dash_gl.c | 70 + TC/testcase/utc_dash_no_dash_image.c | 70 + TC/testcase/utc_dash_offset_gl.c | 70 + TC/testcase/utc_dash_offset_image.c | 70 + TC/testcase/utc_dash_offset_negative_gl.c | 70 + TC/testcase/utc_dash_offset_negative_image.c | 70 + TC/testcase/utc_dash_scale_gl.c | 70 + TC/testcase/utc_dash_scale_image.c | 70 + TC/testcase/utc_dash_state_gl.c | 70 + TC/testcase/utc_dash_state_image.c | 70 + TC/testcase/utc_dash_zero_length_gl.c | 70 + TC/testcase/utc_dash_zero_length_image.c | 70 + TC/testcase/utc_degenerate_arc_gl.c | 70 + TC/testcase/utc_degenerate_arc_image.c | 70 + TC/testcase/utc_degenerate_arcs_gl.c | 70 + TC/testcase/utc_degenerate_arcs_image.c | 70 + TC/testcase/utc_degenerate_curve_to_gl.c | 70 + TC/testcase/utc_degenerate_curve_to_image.c | 70 + TC/testcase/utc_degenerate_dash_gl.c | 70 + TC/testcase/utc_degenerate_dash_image.c | 70 + TC/testcase/utc_degenerate_linear_gradient_gl.c | 70 + TC/testcase/utc_degenerate_linear_gradient_image.c | 70 + TC/testcase/utc_degenerate_path_gl.c | 70 + TC/testcase/utc_degenerate_path_image.c | 70 + TC/testcase/utc_degenerate_pen_gl.c | 70 + TC/testcase/utc_degenerate_pen_image.c | 70 + TC/testcase/utc_degenerate_radial_gradient_gl.c | 70 + TC/testcase/utc_degenerate_radial_gradient_image.c | 70 + TC/testcase/utc_degenerate_rel_curve_to_gl.c | 70 + TC/testcase/utc_degenerate_rel_curve_to_image.c | 70 + TC/testcase/utc_degenerate_solid_dash_gl.c | 70 + TC/testcase/utc_degenerate_solid_dash_image.c | 70 + TC/testcase/utc_device_offset_fractional_gl.c | 70 + TC/testcase/utc_device_offset_fractional_image.c | 70 + TC/testcase/utc_device_offset_gl.c | 70 + TC/testcase/utc_device_offset_image.c | 70 + TC/testcase/utc_device_offset_positive_gl.c | 70 + TC/testcase/utc_device_offset_positive_image.c | 70 + TC/testcase/utc_device_offset_scale_gl.c | 70 + TC/testcase/utc_device_offset_scale_image.c | 70 + TC/testcase/utc_drunkard_tails_gl.c | 70 + TC/testcase/utc_drunkard_tails_image.c | 70 + TC/testcase/utc_error_setters_gl.c | 70 + TC/testcase/utc_error_setters_image.c | 70 + TC/testcase/utc_extend_pad_border_gl.c | 70 + TC/testcase/utc_extend_pad_border_image.c | 70 + TC/testcase/utc_extend_pad_gl.c | 70 + TC/testcase/utc_extend_pad_image.c | 70 + TC/testcase/utc_extend_pad_similar_gl.c | 70 + TC/testcase/utc_extend_pad_similar_image.c | 70 + TC/testcase/utc_extend_reflect_gl.c | 70 + TC/testcase/utc_extend_reflect_image.c | 70 + TC/testcase/utc_extend_reflect_similar_gl.c | 70 + TC/testcase/utc_extend_reflect_similar_image.c | 70 + TC/testcase/utc_extend_repeat_gl.c | 70 + TC/testcase/utc_extend_repeat_image.c | 70 + TC/testcase/utc_extend_repeat_similar_gl.c | 70 + TC/testcase/utc_extend_repeat_similar_image.c | 70 + TC/testcase/utc_extended_blend_alpha_gl.c | 70 + TC/testcase/utc_extended_blend_alpha_image.c | 70 + TC/testcase/utc_extended_blend_alpha_mask_gl.c | 70 + TC/testcase/utc_extended_blend_alpha_mask_image.c | 70 + TC/testcase/utc_extended_blend_gl.c | 70 + TC/testcase/utc_extended_blend_image.c | 70 + TC/testcase/utc_extended_blend_mask_gl.c | 70 + TC/testcase/utc_extended_blend_mask_image.c | 70 + TC/testcase/utc_extended_blend_solid_alpha_gl.c | 70 + TC/testcase/utc_extended_blend_solid_alpha_image.c | 70 + TC/testcase/utc_extended_blend_solid_gl.c | 70 + TC/testcase/utc_extended_blend_solid_image.c | 70 + TC/testcase/utc_fallback_gl.c | 70 + TC/testcase/utc_fallback_image.c | 70 + TC/testcase/utc_fallback_resolution_gl.c | 70 + TC/testcase/utc_fallback_resolution_image.c | 70 + TC/testcase/utc_fill_alpha_gl.c | 70 + TC/testcase/utc_fill_alpha_image.c | 70 + TC/testcase/utc_fill_alpha_pattern_gl.c | 70 + TC/testcase/utc_fill_alpha_pattern_image.c | 70 + TC/testcase/utc_fill_and_stroke_alpha_add_gl.c | 70 + TC/testcase/utc_fill_and_stroke_alpha_add_image.c | 70 + TC/testcase/utc_fill_and_stroke_alpha_gl.c | 70 + TC/testcase/utc_fill_and_stroke_alpha_image.c | 70 + TC/testcase/utc_fill_and_stroke_gl.c | 70 + TC/testcase/utc_fill_and_stroke_image.c | 70 + TC/testcase/utc_fill_degenerate_sort_order_gl.c | 70 + TC/testcase/utc_fill_degenerate_sort_order_image.c | 70 + TC/testcase/utc_fill_disjoint_gl.c | 70 + TC/testcase/utc_fill_disjoint_image.c | 70 + TC/testcase/utc_fill_empty_gl.c | 70 + TC/testcase/utc_fill_empty_image.c | 70 + TC/testcase/utc_fill_image_gl.c | 70 + TC/testcase/utc_fill_image_image.c | 70 + TC/testcase/utc_fill_missed_stop_gl.c | 70 + TC/testcase/utc_fill_missed_stop_image.c | 70 + TC/testcase/utc_fill_rule_gl.c | 70 + TC/testcase/utc_fill_rule_image.c | 70 + TC/testcase/utc_filter_bilinear_extents_gl.c | 70 + TC/testcase/utc_filter_bilinear_extents_image.c | 70 + TC/testcase/utc_filter_nearest_offset_gl.c | 70 + TC/testcase/utc_filter_nearest_offset_image.c | 70 + TC/testcase/utc_filter_nearest_transformed_gl.c | 70 + TC/testcase/utc_filter_nearest_transformed_image.c | 70 + TC/testcase/utc_finer_grained_fallbacks_gl.c | 70 + TC/testcase/utc_finer_grained_fallbacks_image.c | 70 + TC/testcase/utc_font_face_get_type_gl.c | 70 + TC/testcase/utc_font_face_get_type_image.c | 70 + TC/testcase/utc_font_matrix_translation_gl.c | 70 + TC/testcase/utc_font_matrix_translation_image.c | 70 + TC/testcase/utc_font_options_gl.c | 70 + TC/testcase/utc_font_options_image.c | 70 + TC/testcase/utc_ft_font_create_for_ft_face_gl.c | 70 + TC/testcase/utc_ft_font_create_for_ft_face_image.c | 70 + TC/testcase/utc_ft_show_glyphs_positioning_gl.c | 70 + TC/testcase/utc_ft_show_glyphs_positioning_image.c | 70 + TC/testcase/utc_ft_show_glyphs_table_gl.c | 70 + TC/testcase/utc_ft_show_glyphs_table_image.c | 70 + TC/testcase/utc_ft_text_antialias_none_gl.c | 70 + TC/testcase/utc_ft_text_antialias_none_image.c | 70 + TC/testcase/utc_ft_text_vertical_layout_type1_gl.c | 70 + .../utc_ft_text_vertical_layout_type1_image.c | 70 + TC/testcase/utc_ft_text_vertical_layout_type3_gl.c | 70 + .../utc_ft_text_vertical_layout_type3_image.c | 70 + TC/testcase/utc_get_and_set_gl.c | 70 + TC/testcase/utc_get_and_set_image.c | 70 + TC/testcase/utc_get_clip_gl.c | 70 + TC/testcase/utc_get_clip_image.c | 70 + TC/testcase/utc_get_group_target_gl.c | 70 + TC/testcase/utc_get_group_target_image.c | 70 + TC/testcase/utc_get_path_extents_gl.c | 70 + TC/testcase/utc_get_path_extents_image.c | 70 + TC/testcase/utc_get_xrender_format_gl.c | 70 + TC/testcase/utc_get_xrender_format_image.c | 70 + TC/testcase/utc_gl_surface_source_gl.c | 70 + TC/testcase/utc_gl_surface_source_image.c | 70 + TC/testcase/utc_glyph_cache_pressure_gl.c | 70 + TC/testcase/utc_glyph_cache_pressure_image.c | 70 + TC/testcase/utc_gradient_alpha_gl.c | 70 + TC/testcase/utc_gradient_alpha_image.c | 70 + TC/testcase/utc_gradient_constant_alpha_gl.c | 70 + TC/testcase/utc_gradient_constant_alpha_image.c | 70 + TC/testcase/utc_gradient_zero_stops_gl.c | 70 + TC/testcase/utc_gradient_zero_stops_image.c | 70 + TC/testcase/utc_gradient_zero_stops_mask_gl.c | 70 + TC/testcase/utc_gradient_zero_stops_mask_image.c | 70 + TC/testcase/utc_group_clip_gl.c | 70 + TC/testcase/utc_group_clip_image.c | 70 + TC/testcase/utc_group_paint_gl.c | 70 + TC/testcase/utc_group_paint_image.c | 70 + TC/testcase/utc_group_state_gl.c | 70 + TC/testcase/utc_group_state_image.c | 70 + TC/testcase/utc_group_unaligned_gl.c | 70 + TC/testcase/utc_group_unaligned_image.c | 70 + TC/testcase/utc_half_coverage_rectangles_gl.c | 70 + TC/testcase/utc_half_coverage_rectangles_image.c | 70 + TC/testcase/utc_half_coverage_triangles_gl.c | 70 + TC/testcase/utc_half_coverage_triangles_image.c | 70 + TC/testcase/utc_halo_gl.c | 70 + TC/testcase/utc_halo_image.c | 70 + TC/testcase/utc_halo_transform_gl.c | 70 + TC/testcase/utc_halo_transform_image.c | 70 + TC/testcase/utc_hatchings_gl.c | 70 + TC/testcase/utc_hatchings_image.c | 70 + TC/testcase/utc_horizontal_clip_gl.c | 70 + TC/testcase/utc_horizontal_clip_image.c | 70 + TC/testcase/utc_huge_linear_gl.c | 70 + TC/testcase/utc_huge_linear_image.c | 70 + TC/testcase/utc_huge_radial_gl.c | 70 + TC/testcase/utc_huge_radial_image.c | 70 + TC/testcase/utc_image_bug_710072_aligned_gl.c | 70 + TC/testcase/utc_image_bug_710072_aligned_image.c | 70 + TC/testcase/utc_image_bug_710072_unaligned_gl.c | 70 + TC/testcase/utc_image_bug_710072_unaligned_image.c | 70 + TC/testcase/utc_image_surface_source_gl.c | 70 + TC/testcase/utc_image_surface_source_image.c | 70 + TC/testcase/utc_implicit_close_gl.c | 70 + TC/testcase/utc_implicit_close_image.c | 70 + TC/testcase/utc_in_fill_empty_trapezoid_gl.c | 70 + TC/testcase/utc_in_fill_empty_trapezoid_image.c | 70 + TC/testcase/utc_in_fill_trapezoid_gl.c | 70 + TC/testcase/utc_in_fill_trapezoid_image.c | 70 + TC/testcase/utc_infinite_join_gl.c | 70 + TC/testcase/utc_infinite_join_image.c | 70 + TC/testcase/utc_invalid_matrix_gl.c | 70 + TC/testcase/utc_invalid_matrix_image.c | 70 + TC/testcase/utc_inverse_text_gl.c | 70 + TC/testcase/utc_inverse_text_image.c | 70 + TC/testcase/utc_inverted_clip_gl.c | 70 + TC/testcase/utc_inverted_clip_image.c | 70 + TC/testcase/utc_joins_gl.c | 70 + TC/testcase/utc_joins_image.c | 70 + TC/testcase/utc_joins_loop_gl.c | 70 + TC/testcase/utc_joins_loop_image.c | 70 + TC/testcase/utc_joins_retrace_gl.c | 70 + TC/testcase/utc_joins_retrace_image.c | 70 + TC/testcase/utc_joins_star_gl.c | 70 + TC/testcase/utc_joins_star_image.c | 70 + TC/testcase/utc_large_clip_gl.c | 70 + TC/testcase/utc_large_clip_image.c | 70 + TC/testcase/utc_large_font_gl.c | 70 + TC/testcase/utc_large_font_image.c | 70 + TC/testcase/utc_large_source_gl.c | 70 + TC/testcase/utc_large_source_image.c | 70 + TC/testcase/utc_large_source_roi_gl.c | 70 + TC/testcase/utc_large_source_roi_image.c | 70 + TC/testcase/utc_large_twin_antialias_mixed_gl.c | 70 + TC/testcase/utc_large_twin_antialias_mixed_image.c | 70 + TC/testcase/utc_leaky_dash_gl.c | 70 + TC/testcase/utc_leaky_dash_image.c | 70 + TC/testcase/utc_leaky_dashed_rectangle_gl.c | 70 + TC/testcase/utc_leaky_dashed_rectangle_image.c | 70 + TC/testcase/utc_leaky_dashed_stroke_gl.c | 70 + TC/testcase/utc_leaky_dashed_stroke_image.c | 70 + TC/testcase/utc_leaky_polygon_gl.c | 70 + TC/testcase/utc_leaky_polygon_image.c | 70 + TC/testcase/utc_line_width_gl.c | 70 + TC/testcase/utc_line_width_image.c | 70 + .../utc_line_width_large_overlap_dashed_gl.c | 70 + .../utc_line_width_large_overlap_dashed_image.c | 70 + .../utc_line_width_large_overlap_flipped_gl.c | 70 + .../utc_line_width_large_overlap_flipped_image.c | 70 + .../utc_line_width_large_overlap_flopped_gl.c | 70 + .../utc_line_width_large_overlap_flopped_image.c | 70 + TC/testcase/utc_line_width_large_overlap_gl.c | 70 + TC/testcase/utc_line_width_large_overlap_image.c | 70 + .../utc_line_width_large_overlap_offset_gl.c | 70 + .../utc_line_width_large_overlap_offset_image.c | 70 + .../utc_line_width_large_overlap_rotated_gl.c | 70 + .../utc_line_width_large_overlap_rotated_image.c | 70 + TC/testcase/utc_line_width_overlap_dashed_gl.c | 70 + TC/testcase/utc_line_width_overlap_dashed_image.c | 70 + TC/testcase/utc_line_width_overlap_flipped_gl.c | 70 + TC/testcase/utc_line_width_overlap_flipped_image.c | 70 + TC/testcase/utc_line_width_overlap_flopped_gl.c | 70 + TC/testcase/utc_line_width_overlap_flopped_image.c | 70 + TC/testcase/utc_line_width_overlap_gl.c | 70 + TC/testcase/utc_line_width_overlap_image.c | 70 + TC/testcase/utc_line_width_overlap_offset_gl.c | 70 + TC/testcase/utc_line_width_overlap_offset_image.c | 70 + TC/testcase/utc_line_width_overlap_rotated_gl.c | 70 + TC/testcase/utc_line_width_overlap_rotated_image.c | 70 + TC/testcase/utc_line_width_scale_gl.c | 70 + TC/testcase/utc_line_width_scale_image.c | 70 + TC/testcase/utc_line_width_tolerance_gl.c | 70 + TC/testcase/utc_line_width_tolerance_image.c | 70 + TC/testcase/utc_line_width_zero_gl.c | 70 + TC/testcase/utc_line_width_zero_image.c | 70 + TC/testcase/utc_linear_gradient_extend_gl.c | 70 + TC/testcase/utc_linear_gradient_extend_image.c | 70 + TC/testcase/utc_linear_gradient_gl.c | 70 + TC/testcase/utc_linear_gradient_image.c | 70 + TC/testcase/utc_linear_gradient_large_gl.c | 70 + TC/testcase/utc_linear_gradient_large_image.c | 70 + TC/testcase/utc_linear_gradient_one_stop_gl.c | 70 + TC/testcase/utc_linear_gradient_one_stop_image.c | 70 + TC/testcase/utc_linear_gradient_reflect_gl.c | 70 + TC/testcase/utc_linear_gradient_reflect_image.c | 70 + TC/testcase/utc_linear_gradient_subset_gl.c | 70 + TC/testcase/utc_linear_gradient_subset_image.c | 70 + TC/testcase/utc_linear_step_function_gl.c | 70 + TC/testcase/utc_linear_step_function_image.c | 70 + TC/testcase/utc_linear_uniform_gl.c | 70 + TC/testcase/utc_linear_uniform_image.c | 70 + TC/testcase/utc_long_dashed_lines_gl.c | 70 + TC/testcase/utc_long_dashed_lines_image.c | 70 + TC/testcase/utc_long_lines_gl.c | 70 + TC/testcase/utc_long_lines_image.c | 70 + TC/testcase/utc_map_all_to_image_gl.c | 70 + TC/testcase/utc_map_all_to_image_image.c | 70 + TC/testcase/utc_map_bit_to_image_gl.c | 70 + TC/testcase/utc_map_bit_to_image_image.c | 70 + TC/testcase/utc_map_to_image_fill_gl.c | 70 + TC/testcase/utc_map_to_image_fill_image.c | 70 + TC/testcase/utc_mask_alpha_gl.c | 70 + TC/testcase/utc_mask_alpha_image.c | 70 + TC/testcase/utc_mask_ctm_gl.c | 70 + TC/testcase/utc_mask_ctm_image.c | 70 + TC/testcase/utc_mask_gl.c | 70 + TC/testcase/utc_mask_glyphs_gl.c | 70 + TC/testcase/utc_mask_glyphs_image.c | 70 + TC/testcase/utc_mask_image.c | 70 + TC/testcase/utc_mask_surface_ctm_gl.c | 70 + TC/testcase/utc_mask_surface_ctm_image.c | 70 + TC/testcase/utc_mask_transformed_image_gl.c | 70 + TC/testcase/utc_mask_transformed_image_image.c | 70 + TC/testcase/utc_mask_transformed_similar_gl.c | 70 + TC/testcase/utc_mask_transformed_similar_image.c | 70 + TC/testcase/utc_mesh_pattern_accuracy_gl.c | 70 + TC/testcase/utc_mesh_pattern_accuracy_image.c | 70 + TC/testcase/utc_mesh_pattern_conical_gl.c | 70 + TC/testcase/utc_mesh_pattern_conical_image.c | 70 + TC/testcase/utc_mesh_pattern_control_points_gl.c | 70 + .../utc_mesh_pattern_control_points_image.c | 70 + TC/testcase/utc_mesh_pattern_fold_gl.c | 70 + TC/testcase/utc_mesh_pattern_fold_image.c | 70 + TC/testcase/utc_mesh_pattern_gl.c | 70 + TC/testcase/utc_mesh_pattern_image.c | 70 + TC/testcase/utc_mesh_pattern_overlap_gl.c | 70 + TC/testcase/utc_mesh_pattern_overlap_image.c | 70 + TC/testcase/utc_mesh_pattern_transformed_gl.c | 70 + TC/testcase/utc_mesh_pattern_transformed_image.c | 70 + TC/testcase/utc_mime_data_gl.c | 70 + TC/testcase/utc_mime_data_image.c | 70 + TC/testcase/utc_mime_surface_api_gl.c | 70 + TC/testcase/utc_mime_surface_api_image.c | 70 + TC/testcase/utc_mime_surface_gl.c | 70 + TC/testcase/utc_mime_surface_image.c | 70 + TC/testcase/utc_miter_precision_gl.c | 70 + TC/testcase/utc_miter_precision_image.c | 70 + TC/testcase/utc_move_to_show_surface_gl.c | 70 + TC/testcase/utc_move_to_show_surface_image.c | 70 + TC/testcase/utc_multi_page_gl.c | 70 + TC/testcase/utc_multi_page_image.c | 70 + TC/testcase/utc_negative_stride_image_gl.c | 70 + TC/testcase/utc_negative_stride_image_image.c | 70 + TC/testcase/utc_new_sub_path_gl.c | 70 + TC/testcase/utc_new_sub_path_image.c | 70 + TC/testcase/utc_nil_surface_gl.c | 70 + TC/testcase/utc_nil_surface_image.c | 70 + TC/testcase/utc_operator_alpha_alpha_gl.c | 70 + TC/testcase/utc_operator_alpha_alpha_image.c | 70 + TC/testcase/utc_operator_alpha_gl.c | 70 + TC/testcase/utc_operator_alpha_image.c | 70 + TC/testcase/utc_operator_clear_gl.c | 70 + TC/testcase/utc_operator_clear_image.c | 70 + TC/testcase/utc_operator_gl.c | 70 + TC/testcase/utc_operator_image.c | 70 + TC/testcase/utc_operator_source_gl.c | 70 + TC/testcase/utc_operator_source_image.c | 70 + TC/testcase/utc_over_above_source_gl.c | 70 + TC/testcase/utc_over_above_source_image.c | 70 + TC/testcase/utc_over_around_source_gl.c | 70 + TC/testcase/utc_over_around_source_image.c | 70 + TC/testcase/utc_over_below_source_gl.c | 70 + TC/testcase/utc_over_below_source_image.c | 70 + TC/testcase/utc_over_between_source_gl.c | 70 + TC/testcase/utc_over_between_source_image.c | 70 + TC/testcase/utc_overlapping_boxes_gl.c | 70 + TC/testcase/utc_overlapping_boxes_image.c | 70 + TC/testcase/utc_overlapping_dash_caps_gl.c | 70 + TC/testcase/utc_overlapping_dash_caps_image.c | 70 + TC/testcase/utc_overlapping_glyphs_gl.c | 70 + TC/testcase/utc_overlapping_glyphs_image.c | 70 + TC/testcase/utc_paint_clip_fill_aa_gl.c | 70 + TC/testcase/utc_paint_clip_fill_aa_image.c | 70 + TC/testcase/utc_paint_clip_fill_mono_gl.c | 70 + TC/testcase/utc_paint_clip_fill_mono_image.c | 70 + TC/testcase/utc_paint_gl.c | 70 + TC/testcase/utc_paint_image.c | 70 + TC/testcase/utc_paint_repeat_gl.c | 70 + TC/testcase/utc_paint_repeat_image.c | 70 + TC/testcase/utc_paint_source_alpha_gl.c | 70 + TC/testcase/utc_paint_source_alpha_image.c | 70 + TC/testcase/utc_paint_with_alpha_clip_gl.c | 70 + TC/testcase/utc_paint_with_alpha_clip_image.c | 70 + TC/testcase/utc_paint_with_alpha_clip_mask_gl.c | 70 + TC/testcase/utc_paint_with_alpha_clip_mask_image.c | 70 + TC/testcase/utc_paint_with_alpha_gl.c | 70 + TC/testcase/utc_paint_with_alpha_image.c | 70 + TC/testcase/utc_paint_with_alpha_solid_clip_gl.c | 70 + .../utc_paint_with_alpha_solid_clip_image.c | 70 + TC/testcase/utc_partial_clip_text_bottom_gl.c | 70 + TC/testcase/utc_partial_clip_text_bottom_image.c | 70 + TC/testcase/utc_partial_clip_text_left_gl.c | 70 + TC/testcase/utc_partial_clip_text_left_image.c | 70 + TC/testcase/utc_partial_clip_text_right_gl.c | 70 + TC/testcase/utc_partial_clip_text_right_image.c | 70 + TC/testcase/utc_partial_clip_text_top_gl.c | 70 + TC/testcase/utc_partial_clip_text_top_image.c | 70 + .../utc_partial_coverage_half_reference_gl.c | 70 + .../utc_partial_coverage_half_reference_image.c | 70 + .../utc_partial_coverage_half_triangles_gl.c | 70 + .../utc_partial_coverage_half_triangles_image.c | 70 + .../utc_partial_coverage_intersecting_quads_gl.c | 70 + ...utc_partial_coverage_intersecting_quads_image.c | 70 + ...tc_partial_coverage_intersecting_triangles_gl.c | 70 + ...partial_coverage_intersecting_triangles_image.c | 70 + ...partial_coverage_overlap_half_triangles_eo_gl.c | 70 + ...tial_coverage_overlap_half_triangles_eo_image.c | 70 + ...tc_partial_coverage_overlap_half_triangles_gl.c | 70 + ...partial_coverage_overlap_half_triangles_image.c | 70 + ...l_coverage_overlap_three_quarter_triangles_gl.c | 70 + ...overage_overlap_three_quarter_triangles_image.c | 70 + TC/testcase/utc_partial_coverage_rectangles_gl.c | 70 + .../utc_partial_coverage_rectangles_image.c | 70 + TC/testcase/utc_partial_coverage_reference_gl.c | 70 + TC/testcase/utc_partial_coverage_reference_image.c | 70 + ...c_partial_coverage_three_quarter_reference_gl.c | 70 + ...artial_coverage_three_quarter_reference_image.c | 70 + TC/testcase/utc_partial_coverage_triangles_gl.c | 70 + TC/testcase/utc_partial_coverage_triangles_image.c | 70 + TC/testcase/utc_pass_through_gl.c | 70 + TC/testcase/utc_pass_through_image.c | 70 + TC/testcase/utc_path_append_gl.c | 70 + TC/testcase/utc_path_append_image.c | 70 + TC/testcase/utc_path_precision_gl.c | 70 + TC/testcase/utc_path_precision_image.c | 70 + TC/testcase/utc_path_stroke_twice_gl.c | 70 + TC/testcase/utc_path_stroke_twice_image.c | 70 + TC/testcase/utc_pattern_get_type_gl.c | 70 + TC/testcase/utc_pattern_get_type_image.c | 70 + TC/testcase/utc_pattern_getters_gl.c | 70 + TC/testcase/utc_pattern_getters_image.c | 70 + TC/testcase/utc_pdf_features_gl.c | 70 + TC/testcase/utc_pdf_features_image.c | 70 + TC/testcase/utc_pdf_isolated_group_gl.c | 70 + TC/testcase/utc_pdf_isolated_group_image.c | 70 + TC/testcase/utc_pdf_mime_data_gl.c | 70 + TC/testcase/utc_pdf_mime_data_image.c | 70 + TC/testcase/utc_pdf_surface_source_gl.c | 70 + TC/testcase/utc_pdf_surface_source_image.c | 70 + TC/testcase/utc_pixman_rotate_gl.c | 70 + TC/testcase/utc_pixman_rotate_image.c | 70 + TC/testcase/utc_png_gl.c | 70 + TC/testcase/utc_png_image.c | 70 + TC/testcase/utc_ps_eps_gl.c | 70 + TC/testcase/utc_ps_eps_image.c | 70 + TC/testcase/utc_ps_features_gl.c | 70 + TC/testcase/utc_ps_features_image.c | 70 + TC/testcase/utc_ps_surface_source_gl.c | 70 + TC/testcase/utc_ps_surface_source_image.c | 70 + TC/testcase/utc_pthread_same_source_gl.c | 70 + TC/testcase/utc_pthread_same_source_image.c | 70 + TC/testcase/utc_pthread_show_text_gl.c | 70 + TC/testcase/utc_pthread_show_text_image.c | 70 + TC/testcase/utc_pthread_similar_gl.c | 70 + TC/testcase/utc_pthread_similar_image.c | 70 + TC/testcase/utc_push_group_color_gl.c | 70 + TC/testcase/utc_push_group_color_image.c | 70 + TC/testcase/utc_push_group_gl.c | 70 + TC/testcase/utc_push_group_image.c | 70 + TC/testcase/utc_push_group_path_offset_gl.c | 70 + TC/testcase/utc_push_group_path_offset_image.c | 70 + TC/testcase/utc_quartz_surface_source_gl.c | 70 + TC/testcase/utc_quartz_surface_source_image.c | 70 + TC/testcase/utc_radial_gradient_extend_gl.c | 70 + TC/testcase/utc_radial_gradient_extend_image.c | 70 + TC/testcase/utc_radial_gradient_gl.c | 70 + TC/testcase/utc_radial_gradient_image.c | 70 + TC/testcase/utc_radial_gradient_mask_gl.c | 70 + TC/testcase/utc_radial_gradient_mask_image.c | 70 + TC/testcase/utc_radial_gradient_mask_source_gl.c | 70 + .../utc_radial_gradient_mask_source_image.c | 70 + TC/testcase/utc_radial_gradient_one_stop_gl.c | 70 + TC/testcase/utc_radial_gradient_one_stop_image.c | 70 + TC/testcase/utc_radial_gradient_source_gl.c | 70 + TC/testcase/utc_radial_gradient_source_image.c | 70 + TC/testcase/utc_radial_outer_focus_gl.c | 70 + TC/testcase/utc_radial_outer_focus_image.c | 70 + TC/testcase/utc_random_clip_gl.c | 70 + TC/testcase/utc_random_clip_image.c | 70 + .../utc_random_intersections_curves_eo_gl.c | 70 + .../utc_random_intersections_curves_eo_image.c | 70 + .../utc_random_intersections_curves_nz_gl.c | 70 + .../utc_random_intersections_curves_nz_image.c | 70 + TC/testcase/utc_random_intersections_eo_gl.c | 70 + TC/testcase/utc_random_intersections_eo_image.c | 70 + TC/testcase/utc_random_intersections_nonzero_gl.c | 70 + .../utc_random_intersections_nonzero_image.c | 70 + TC/testcase/utc_raster_source_gl.c | 70 + TC/testcase/utc_raster_source_image.c | 70 + TC/testcase/utc_record1414x_fill_alpha_gl.c | 70 + TC/testcase/utc_record1414x_fill_alpha_image.c | 70 + TC/testcase/utc_record1414x_paint_alpha_clip_gl.c | 70 + .../utc_record1414x_paint_alpha_clip_image.c | 70 + .../utc_record1414x_paint_alpha_clip_mask_gl.c | 70 + .../utc_record1414x_paint_alpha_clip_mask_image.c | 70 + TC/testcase/utc_record1414x_paint_alpha_gl.c | 70 + TC/testcase/utc_record1414x_paint_alpha_image.c | 70 + .../utc_record1414x_paint_alpha_solid_clip_gl.c | 70 + .../utc_record1414x_paint_alpha_solid_clip_image.c | 70 + TC/testcase/utc_record1414x_paint_gl.c | 70 + TC/testcase/utc_record1414x_paint_image.c | 70 + TC/testcase/utc_record1414x_select_font_face_gl.c | 70 + .../utc_record1414x_select_font_face_image.c | 70 + TC/testcase/utc_record1414x_self_intersecting_gl.c | 70 + .../utc_record1414x_self_intersecting_image.c | 70 + TC/testcase/utc_record1414x_text_transform_gl.c | 70 + TC/testcase/utc_record1414x_text_transform_image.c | 70 + TC/testcase/utc_record2x_fill_alpha_gl.c | 70 + TC/testcase/utc_record2x_fill_alpha_image.c | 70 + TC/testcase/utc_record2x_paint_alpha_clip_gl.c | 70 + TC/testcase/utc_record2x_paint_alpha_clip_image.c | 70 + .../utc_record2x_paint_alpha_clip_mask_gl.c | 70 + .../utc_record2x_paint_alpha_clip_mask_image.c | 70 + TC/testcase/utc_record2x_paint_alpha_gl.c | 70 + TC/testcase/utc_record2x_paint_alpha_image.c | 70 + .../utc_record2x_paint_alpha_solid_clip_gl.c | 70 + .../utc_record2x_paint_alpha_solid_clip_image.c | 70 + TC/testcase/utc_record2x_paint_gl.c | 70 + TC/testcase/utc_record2x_paint_image.c | 70 + TC/testcase/utc_record2x_select_font_face_gl.c | 70 + TC/testcase/utc_record2x_select_font_face_image.c | 70 + TC/testcase/utc_record2x_self_intersecting_gl.c | 70 + TC/testcase/utc_record2x_self_intersecting_image.c | 70 + TC/testcase/utc_record2x_text_transform_gl.c | 70 + TC/testcase/utc_record2x_text_transform_image.c | 70 + TC/testcase/utc_record90_fill_alpha_gl.c | 70 + TC/testcase/utc_record90_fill_alpha_image.c | 70 + TC/testcase/utc_record90_paint_alpha_clip_gl.c | 70 + TC/testcase/utc_record90_paint_alpha_clip_image.c | 70 + .../utc_record90_paint_alpha_clip_mask_gl.c | 70 + .../utc_record90_paint_alpha_clip_mask_image.c | 70 + TC/testcase/utc_record90_paint_alpha_gl.c | 70 + TC/testcase/utc_record90_paint_alpha_image.c | 70 + .../utc_record90_paint_alpha_solid_clip_gl.c | 70 + .../utc_record90_paint_alpha_solid_clip_image.c | 70 + TC/testcase/utc_record90_paint_gl.c | 70 + TC/testcase/utc_record90_paint_image.c | 70 + TC/testcase/utc_record90_select_font_face_gl.c | 70 + TC/testcase/utc_record90_select_font_face_image.c | 70 + TC/testcase/utc_record90_self_intersecting_gl.c | 70 + TC/testcase/utc_record90_self_intersecting_image.c | 70 + TC/testcase/utc_record90_text_transform_gl.c | 70 + TC/testcase/utc_record90_text_transform_image.c | 70 + TC/testcase/utc_record_extend_none_gl.c | 70 + TC/testcase/utc_record_extend_none_image.c | 70 + TC/testcase/utc_record_extend_none_similar_gl.c | 70 + TC/testcase/utc_record_extend_none_similar_image.c | 70 + TC/testcase/utc_record_extend_pad_gl.c | 70 + TC/testcase/utc_record_extend_pad_image.c | 70 + TC/testcase/utc_record_extend_pad_similar_gl.c | 70 + TC/testcase/utc_record_extend_pad_similar_image.c | 70 + TC/testcase/utc_record_extend_reflect_gl.c | 70 + TC/testcase/utc_record_extend_reflect_image.c | 70 + TC/testcase/utc_record_extend_reflect_similar_gl.c | 70 + .../utc_record_extend_reflect_similar_image.c | 70 + TC/testcase/utc_record_extend_repeat_gl.c | 70 + TC/testcase/utc_record_extend_repeat_image.c | 70 + TC/testcase/utc_record_extend_repeat_similar_gl.c | 70 + .../utc_record_extend_repeat_similar_image.c | 70 + TC/testcase/utc_record_fill_alpha_gl.c | 70 + TC/testcase/utc_record_fill_alpha_image.c | 70 + TC/testcase/utc_record_mesh_gl.c | 70 + TC/testcase/utc_record_mesh_image.c | 70 + TC/testcase/utc_record_paint_alpha_clip_gl.c | 70 + TC/testcase/utc_record_paint_alpha_clip_image.c | 70 + TC/testcase/utc_record_paint_alpha_clip_mask_gl.c | 70 + .../utc_record_paint_alpha_clip_mask_image.c | 70 + TC/testcase/utc_record_paint_alpha_gl.c | 70 + TC/testcase/utc_record_paint_alpha_image.c | 70 + TC/testcase/utc_record_paint_alpha_solid_clip_gl.c | 70 + .../utc_record_paint_alpha_solid_clip_image.c | 70 + TC/testcase/utc_record_paint_gl.c | 70 + TC/testcase/utc_record_paint_image.c | 70 + TC/testcase/utc_record_select_font_face_gl.c | 70 + TC/testcase/utc_record_select_font_face_image.c | 70 + TC/testcase/utc_record_self_intersecting_gl.c | 70 + TC/testcase/utc_record_self_intersecting_image.c | 70 + TC/testcase/utc_record_text_transform_gl.c | 70 + TC/testcase/utc_record_text_transform_image.c | 70 + TC/testcase/utc_recording_surface_extend_none_gl.c | 70 + .../utc_recording_surface_extend_none_image.c | 70 + TC/testcase/utc_recording_surface_extend_pad_gl.c | 70 + .../utc_recording_surface_extend_pad_image.c | 70 + .../utc_recording_surface_extend_reflect_gl.c | 70 + .../utc_recording_surface_extend_reflect_image.c | 70 + .../utc_recording_surface_extend_repeat_gl.c | 70 + .../utc_recording_surface_extend_repeat_image.c | 70 + TC/testcase/utc_recording_surface_over_gl.c | 70 + TC/testcase/utc_recording_surface_over_image.c | 70 + TC/testcase/utc_recording_surface_source_gl.c | 70 + TC/testcase/utc_recording_surface_source_image.c | 70 + TC/testcase/utc_rectangle_rounding_error_gl.c | 70 + TC/testcase/utc_rectangle_rounding_error_image.c | 70 + TC/testcase/utc_rectilinear_dash_gl.c | 70 + TC/testcase/utc_rectilinear_dash_image.c | 70 + TC/testcase/utc_rectilinear_dash_scale_gl.c | 70 + TC/testcase/utc_rectilinear_dash_scale_image.c | 70 + .../utc_rectilinear_dash_scale_unaligned_gl.c | 70 + .../utc_rectilinear_dash_scale_unaligned_image.c | 70 + TC/testcase/utc_rectilinear_fill_gl.c | 70 + TC/testcase/utc_rectilinear_fill_image.c | 70 + TC/testcase/utc_rectilinear_grid_gl.c | 70 + TC/testcase/utc_rectilinear_grid_image.c | 70 + TC/testcase/utc_rectilinear_miter_limit_gl.c | 70 + TC/testcase/utc_rectilinear_miter_limit_image.c | 70 + TC/testcase/utc_rectilinear_stroke_gl.c | 70 + TC/testcase/utc_rectilinear_stroke_image.c | 70 + TC/testcase/utc_reflected_stroke_gl.c | 70 + TC/testcase/utc_reflected_stroke_image.c | 70 + TC/testcase/utc_rel_path_gl.c | 70 + TC/testcase/utc_rel_path_image.c | 70 + TC/testcase/utc_rgb24_ignore_alpha_gl.c | 70 + TC/testcase/utc_rgb24_ignore_alpha_image.c | 70 + .../utc_rotate_clip_image_surface_paint_gl.c | 70 + .../utc_rotate_clip_image_surface_paint_image.c | 70 + TC/testcase/utc_rotate_image_surface_paint_gl.c | 70 + TC/testcase/utc_rotate_image_surface_paint_image.c | 70 + TC/testcase/utc_rotated_clip_gl.c | 70 + TC/testcase/utc_rotated_clip_image.c | 70 + TC/testcase/utc_rounded_rectangle_fill_gl.c | 70 + TC/testcase/utc_rounded_rectangle_fill_image.c | 70 + TC/testcase/utc_rounded_rectangle_stroke_gl.c | 70 + TC/testcase/utc_rounded_rectangle_stroke_image.c | 70 + .../utc_scale_down_source_surface_paint_gl.c | 70 + .../utc_scale_down_source_surface_paint_image.c | 70 + TC/testcase/utc_scale_offset_image_gl.c | 70 + TC/testcase/utc_scale_offset_image_image.c | 70 + TC/testcase/utc_scale_offset_similar_gl.c | 70 + TC/testcase/utc_scale_offset_similar_image.c | 70 + TC/testcase/utc_scale_source_surface_paint_gl.c | 70 + TC/testcase/utc_scale_source_surface_paint_image.c | 70 + TC/testcase/utc_scaled_font_zero_matrix_gl.c | 70 + TC/testcase/utc_scaled_font_zero_matrix_image.c | 70 + TC/testcase/utc_select_font_face_gl.c | 70 + TC/testcase/utc_select_font_face_image.c | 70 + TC/testcase/utc_select_font_no_show_text_gl.c | 70 + TC/testcase/utc_select_font_no_show_text_image.c | 70 + TC/testcase/utc_self_copy_gl.c | 70 + TC/testcase/utc_self_copy_image.c | 70 + TC/testcase/utc_self_copy_overlap_gl.c | 70 + TC/testcase/utc_self_copy_overlap_image.c | 70 + TC/testcase/utc_self_intersecting_gl.c | 70 + TC/testcase/utc_self_intersecting_image.c | 70 + TC/testcase/utc_set_source_gl.c | 70 + TC/testcase/utc_set_source_image.c | 70 + TC/testcase/utc_shape_general_convex_gl.c | 70 + TC/testcase/utc_shape_general_convex_image.c | 70 + TC/testcase/utc_shape_sierpinski_gl.c | 70 + TC/testcase/utc_shape_sierpinski_image.c | 70 + TC/testcase/utc_show_glyphs_advance_gl.c | 70 + TC/testcase/utc_show_glyphs_advance_image.c | 70 + TC/testcase/utc_show_glyphs_many_gl.c | 70 + TC/testcase/utc_show_glyphs_many_image.c | 70 + TC/testcase/utc_show_text_current_point_gl.c | 70 + TC/testcase/utc_show_text_current_point_image.c | 70 + TC/testcase/utc_skew_extreme_gl.c | 70 + TC/testcase/utc_skew_extreme_image.c | 70 + TC/testcase/utc_smask_fill_gl.c | 70 + TC/testcase/utc_smask_fill_image.c | 70 + TC/testcase/utc_smask_gl.c | 70 + TC/testcase/utc_smask_image.c | 70 + TC/testcase/utc_smask_image_mask_gl.c | 70 + TC/testcase/utc_smask_image_mask_image.c | 70 + TC/testcase/utc_smask_mask_gl.c | 70 + TC/testcase/utc_smask_mask_image.c | 70 + TC/testcase/utc_smask_paint_gl.c | 70 + TC/testcase/utc_smask_paint_image.c | 70 + TC/testcase/utc_smask_stroke_gl.c | 70 + TC/testcase/utc_smask_stroke_image.c | 70 + TC/testcase/utc_smask_text_gl.c | 70 + TC/testcase/utc_smask_text_image.c | 70 + TC/testcase/utc_solid_pattern_cache_stress_gl.c | 70 + TC/testcase/utc_solid_pattern_cache_stress_image.c | 70 + TC/testcase/utc_source_clip_gl.c | 70 + TC/testcase/utc_source_clip_image.c | 70 + TC/testcase/utc_source_clip_scale_gl.c | 70 + TC/testcase/utc_source_clip_scale_image.c | 70 + TC/testcase/utc_source_surface_scale_paint_gl.c | 70 + TC/testcase/utc_source_surface_scale_paint_image.c | 70 + TC/testcase/utc_spline_decomposition_gl.c | 70 + TC/testcase/utc_spline_decomposition_image.c | 70 + TC/testcase/utc_stride_12_image_gl.c | 70 + TC/testcase/utc_stride_12_image_image.c | 70 + TC/testcase/utc_stroke_ctm_caps_gl.c | 70 + TC/testcase/utc_stroke_ctm_caps_image.c | 70 + TC/testcase/utc_stroke_image_gl.c | 70 + TC/testcase/utc_stroke_image_image.c | 70 + TC/testcase/utc_stroke_open_box_gl.c | 70 + TC/testcase/utc_stroke_open_box_image.c | 70 + TC/testcase/utc_stroke_pattern_gl.c | 70 + TC/testcase/utc_stroke_pattern_image.c | 70 + TC/testcase/utc_subsurface_gl.c | 70 + TC/testcase/utc_subsurface_image.c | 70 + TC/testcase/utc_subsurface_image_repeat_gl.c | 70 + TC/testcase/utc_subsurface_image_repeat_image.c | 70 + TC/testcase/utc_subsurface_modify_child_gl.c | 70 + TC/testcase/utc_subsurface_modify_child_image.c | 70 + TC/testcase/utc_subsurface_modify_parent_gl.c | 70 + TC/testcase/utc_subsurface_modify_parent_image.c | 70 + TC/testcase/utc_subsurface_outside_target_gl.c | 70 + TC/testcase/utc_subsurface_outside_target_image.c | 70 + TC/testcase/utc_subsurface_pad_gl.c | 70 + TC/testcase/utc_subsurface_pad_image.c | 70 + TC/testcase/utc_subsurface_reflect_gl.c | 70 + TC/testcase/utc_subsurface_reflect_image.c | 70 + TC/testcase/utc_subsurface_repeat_gl.c | 70 + TC/testcase/utc_subsurface_repeat_image.c | 70 + TC/testcase/utc_subsurface_scale_gl.c | 70 + TC/testcase/utc_subsurface_scale_image.c | 70 + TC/testcase/utc_subsurface_similar_repeat_gl.c | 70 + TC/testcase/utc_subsurface_similar_repeat_image.c | 70 + TC/testcase/utc_surface_finish_twice_gl.c | 70 + TC/testcase/utc_surface_finish_twice_image.c | 70 + .../utc_surface_pattern_big_scale_down_gl.c | 70 + .../utc_surface_pattern_big_scale_down_image.c | 70 + TC/testcase/utc_surface_pattern_gl.c | 70 + TC/testcase/utc_surface_pattern_image.c | 70 + TC/testcase/utc_surface_pattern_operator_gl.c | 70 + TC/testcase/utc_surface_pattern_operator_image.c | 70 + ...utc_surface_pattern_scale_down_extend_none_gl.c | 70 + ..._surface_pattern_scale_down_extend_none_image.c | 70 + .../utc_surface_pattern_scale_down_extend_pad_gl.c | 70 + ...c_surface_pattern_scale_down_extend_pad_image.c | 70 + ..._surface_pattern_scale_down_extend_reflect_gl.c | 70 + ...rface_pattern_scale_down_extend_reflect_image.c | 70 + ...c_surface_pattern_scale_down_extend_repeat_gl.c | 70 + ...urface_pattern_scale_down_extend_repeat_image.c | 70 + TC/testcase/utc_surface_pattern_scale_down_gl.c | 70 + TC/testcase/utc_surface_pattern_scale_down_image.c | 70 + TC/testcase/utc_surface_pattern_scale_up_gl.c | 70 + TC/testcase/utc_surface_pattern_scale_up_image.c | 70 + TC/testcase/utc_svg_clip_gl.c | 70 + TC/testcase/utc_svg_clip_image.c | 70 + TC/testcase/utc_svg_surface_gl.c | 70 + TC/testcase/utc_svg_surface_image.c | 70 + TC/testcase/utc_svg_surface_source_gl.c | 70 + TC/testcase/utc_svg_surface_source_image.c | 70 + TC/testcase/utc_text_antialias_gray_gl.c | 70 + TC/testcase/utc_text_antialias_gray_image.c | 70 + TC/testcase/utc_text_antialias_none_gl.c | 70 + TC/testcase/utc_text_antialias_none_image.c | 70 + TC/testcase/utc_text_antialias_subpixel_bgr_gl.c | 70 + .../utc_text_antialias_subpixel_bgr_image.c | 70 + TC/testcase/utc_text_antialias_subpixel_gl.c | 70 + TC/testcase/utc_text_antialias_subpixel_image.c | 70 + TC/testcase/utc_text_antialias_subpixel_rgb_gl.c | 70 + .../utc_text_antialias_subpixel_rgb_image.c | 70 + TC/testcase/utc_text_antialias_subpixel_vbgr_gl.c | 70 + .../utc_text_antialias_subpixel_vbgr_image.c | 70 + TC/testcase/utc_text_antialias_subpixel_vrgb_gl.c | 70 + .../utc_text_antialias_subpixel_vrgb_image.c | 70 + TC/testcase/utc_text_cache_crash_gl.c | 70 + TC/testcase/utc_text_cache_crash_image.c | 70 + TC/testcase/utc_text_glyph_range_gl.c | 70 + TC/testcase/utc_text_glyph_range_image.c | 70 + TC/testcase/utc_text_pattern_gl.c | 70 + TC/testcase/utc_text_pattern_image.c | 70 + TC/testcase/utc_text_rotate_gl.c | 70 + TC/testcase/utc_text_rotate_image.c | 70 + TC/testcase/utc_text_transform_gl.c | 70 + TC/testcase/utc_text_transform_image.c | 70 + TC/testcase/utc_text_zero_len_gl.c | 70 + TC/testcase/utc_text_zero_len_image.c | 70 + TC/testcase/utc_tiger_gl.c | 70 + TC/testcase/utc_tiger_image.c | 70 + TC/testcase/utc_tighten_bounds_gl.c | 70 + TC/testcase/utc_tighten_bounds_image.c | 70 + TC/testcase/utc_toy_font_face_gl.c | 70 + TC/testcase/utc_toy_font_face_image.c | 70 + TC/testcase/utc_transforms_gl.c | 70 + TC/testcase/utc_transforms_image.c | 70 + TC/testcase/utc_translate_show_surface_gl.c | 70 + TC/testcase/utc_translate_show_surface_image.c | 70 + TC/testcase/utc_trap_clip_gl.c | 70 + TC/testcase/utc_trap_clip_image.c | 70 + TC/testcase/utc_twin_antialias_gray_gl.c | 70 + TC/testcase/utc_twin_antialias_gray_image.c | 70 + TC/testcase/utc_twin_antialias_mixed_gl.c | 70 + TC/testcase/utc_twin_antialias_mixed_image.c | 70 + TC/testcase/utc_twin_antialias_none_gl.c | 70 + TC/testcase/utc_twin_antialias_none_image.c | 70 + TC/testcase/utc_twin_antialias_subpixel_gl.c | 70 + TC/testcase/utc_twin_antialias_subpixel_image.c | 70 + TC/testcase/utc_twin_gl.c | 70 + TC/testcase/utc_twin_image.c | 70 + TC/testcase/utc_unaligned_box_gl.c | 70 + TC/testcase/utc_unaligned_box_image.c | 70 + TC/testcase/utc_unantialiased_shapes_gl.c | 70 + TC/testcase/utc_unantialiased_shapes_image.c | 70 + TC/testcase/utc_unbounded_operator_gl.c | 70 + TC/testcase/utc_unbounded_operator_image.c | 70 + TC/testcase/utc_unclosed_strokes_gl.c | 70 + TC/testcase/utc_unclosed_strokes_image.c | 70 + TC/testcase/utc_user_data_gl.c | 70 + TC/testcase/utc_user_data_image.c | 70 + TC/testcase/utc_user_font_gl.c | 70 + TC/testcase/utc_user_font_image.c | 70 + TC/testcase/utc_user_font_mask_gl.c | 70 + TC/testcase/utc_user_font_mask_image.c | 70 + TC/testcase/utc_user_font_proxy_gl.c | 70 + TC/testcase/utc_user_font_proxy_image.c | 70 + TC/testcase/utc_user_font_rescale_gl.c | 70 + TC/testcase/utc_user_font_rescale_image.c | 70 + TC/testcase/utc_white_in_noop_gl.c | 70 + TC/testcase/utc_white_in_noop_image.c | 70 + TC/testcase/utc_world_map_fill_gl.c | 70 + TC/testcase/utc_world_map_fill_image.c | 70 + TC/testcase/utc_world_map_gl.c | 70 + TC/testcase/utc_world_map_image.c | 70 + TC/testcase/utc_world_map_stroke_gl.c | 70 + TC/testcase/utc_world_map_stroke_image.c | 70 + TC/testcase/utc_xcb_huge_image_shm_gl.c | 70 + TC/testcase/utc_xcb_huge_image_shm_image.c | 70 + TC/testcase/utc_xcb_snapshot_assert_gl.c | 70 + TC/testcase/utc_xcb_snapshot_assert_image.c | 70 + TC/testcase/utc_xcb_stress_cache_gl.c | 70 + TC/testcase/utc_xcb_stress_cache_image.c | 70 + TC/testcase/utc_xcb_surface_source_gl.c | 70 + TC/testcase/utc_xcb_surface_source_image.c | 70 + TC/testcase/utc_xcomposite_projection_gl.c | 70 + TC/testcase/utc_xcomposite_projection_image.c | 70 + TC/testcase/utc_xlib_expose_event_gl.c | 70 + TC/testcase/utc_xlib_expose_event_image.c | 70 + TC/testcase/utc_xlib_surface_gl.c | 70 + TC/testcase/utc_xlib_surface_image.c | 70 + TC/testcase/utc_xlib_surface_source_gl.c | 70 + TC/testcase/utc_xlib_surface_source_image.c | 70 + TC/testcase/utc_zero_alpha_gl.c | 70 + TC/testcase/utc_zero_alpha_image.c | 70 + TC/testcase/utc_zero_mask_gl.c | 70 + TC/testcase/utc_zero_mask_image.c | 70 + TC/tet_scen | 7 + TC/tetbuild.cfg | 5 + TC/tetclean.cfg | 5 + TC/tetexec.cfg | 5 + aclocal.m4 | 1026 + autogen.sh | 194 +- boilerplate/.gitignore | 24 + boilerplate/Makefile.sources | 1 + boilerplate/Makefile.win32.features | 12 + boilerplate/cairo-boilerplate-cogl.c | 206 + boilerplate/cairo-boilerplate-directfb.c | 1 - boilerplate/cairo-boilerplate-drm.c | 1 - boilerplate/cairo-boilerplate-egl.c | 6 +- boilerplate/cairo-boilerplate-glx.c | 39 +- boilerplate/cairo-boilerplate-pdf.c | 1 - boilerplate/cairo-boilerplate-ps.c | 7 +- boilerplate/cairo-boilerplate-qt.cpp | 5 +- boilerplate/cairo-boilerplate-quartz.c | 1 - boilerplate/cairo-boilerplate-script.c | 1 - boilerplate/cairo-boilerplate-skia.c | 1 - boilerplate/cairo-boilerplate-svg.c | 15 +- boilerplate/cairo-boilerplate-test-surfaces.c | 9 - boilerplate/cairo-boilerplate-vg.c | 2 - boilerplate/cairo-boilerplate-wgl.c | 2 - boilerplate/cairo-boilerplate-win32-printing.c | 31 +- boilerplate/cairo-boilerplate-win32.c | 1 - boilerplate/cairo-boilerplate-xcb.c | 5 - boilerplate/cairo-boilerplate-xlib.c | 174 +- boilerplate/cairo-boilerplate.c | 27 +- boilerplate/cairo-boilerplate.h | 5 +- build/.gitignore | 12 + build/Makefile.am.releasing | 2 +- build/Makefile.win32.common | 19 +- build/Makefile.win32.features | 1 + build/Makefile.win32.features-h | 3 + build/Makefile.win32.inform | 13 + build/configure.ac.features | 1 + build/configure.ac.warnings | 20 +- cairo-version.h | 2 +- config.h.in | 387 + configure | 37843 +++++++++++++++++++ configure.ac | 35 +- debian/changelog | 1117 +- debian/control | 6 +- debian/rules | 10 +- doc/.gitignore | 3 + doc/public/.gitignore | 19 + doc/public/cairo-docs.xml | 8 +- doc/public/cairo-sections.txt | 78 +- doc/public/check-doc-coverage.sh | 2 +- doc/tutorial/slides/.gitignore | 7 + doc/tutorial/src/.gitignore | 8 + packaging/cairo.manifest | 5 + packaging/cairo.spec | 18 +- perf/.gitignore | 30 + perf/Makefile.in | 1216 + perf/README | 4 +- perf/cairo-analyse-trace.c | 14 +- perf/cairo-perf-chart.c | 145 +- perf/cairo-perf-graph-files.c | 2 +- perf/cairo-perf-micro.c | 33 +- perf/cairo-perf-print.c | 2 +- perf/cairo-perf-report.c | 6 +- perf/cairo-perf-trace.c | 38 +- perf/cairo-perf.c | 13 + perf/cairo-perf.h | 3 + perf/cairo-stats.c | 2 +- perf/micro/Makefile.in | 844 + perf/micro/a1-curve.c | 8 + perf/micro/a1-line.c | 30 +- perf/micro/box-outline.c | 36 +- perf/micro/composite-checker.c | 3 + perf/micro/curve.c | 6 + perf/micro/disjoint.c | 4 + perf/micro/dragon.c | 6 + perf/micro/fill-clip.c | 9 + perf/micro/fill.c | 18 +- perf/micro/glyphs.c | 3 + perf/micro/hash-table.c | 3 + perf/micro/hatching.c | 4 + perf/micro/intersections.c | 13 +- perf/micro/line.c | 30 +- perf/micro/long-dashed-lines.c | 6 +- perf/micro/long-lines.c | 3 + perf/micro/many-curves.c | 12 +- perf/micro/many-fills.c | 30 +- perf/micro/many-strokes.c | 30 +- perf/micro/mask.c | 54 +- perf/micro/mosaic.c | 4 + perf/micro/paint-with-alpha.c | 6 +- perf/micro/paint.c | 6 +- perf/micro/pattern_create_radial.c | 4 + perf/micro/pythagoras-tree.c | 3 + perf/micro/rectangles.c | 9 + perf/micro/rounded-rectangles.c | 9 + perf/micro/sierpinski.c | 3 + perf/micro/spiral.c | 21 +- perf/micro/stroke.c | 12 +- perf/micro/subimage_copy.c | 6 +- perf/micro/tessellate.c | 6 +- perf/micro/text.c | 3 + perf/micro/tiger.c | 3 + perf/micro/twin.c | 3 + perf/micro/unaligned-clip.c | 4 + perf/micro/wave.c | 3 + perf/micro/wide-fills.c | 30 +- perf/micro/wide-strokes.c | 30 +- perf/micro/world-map.c | 3 + perf/micro/zrusin.c | 12 +- src/.gitignore | 33 + src/Makefile.am | 4 +- src/Makefile.sources | 52 +- src/Makefile.win32.features | 16 + src/cairo-analysis-surface.c | 41 +- src/cairo-arc.c | 35 +- src/cairo-bentley-ottmann-rectangular.c | 6 +- src/cairo-bentley-ottmann-rectilinear.c | 2 +- src/cairo-bentley-ottmann.c | 13 +- src/cairo-beos-surface.cpp | 9 +- src/cairo-botor-scan-converter.c | 68 +- src/cairo-box-inline.h | 121 + src/cairo-boxes-intersect.c | 2 +- src/cairo-boxes-private.h | 13 +- src/cairo-boxes.c | 61 +- src/cairo-clip-boxes.c | 13 +- src/cairo-clip-inline.h | 83 + src/cairo-clip-polygon.c | 32 +- src/cairo-clip-private.h | 48 +- src/cairo-clip-surface.c | 96 +- src/cairo-clip.c | 21 +- src/cairo-cogl-context-private.h | 52 + src/cairo-cogl-context.c | 822 + src/cairo-cogl-gradient-private.h | 89 + src/cairo-cogl-gradient.c | 642 + src/cairo-cogl-private.h | 164 + src/cairo-cogl-surface.c | 2799 ++ src/cairo-cogl-utils-private.h | 54 + src/cairo-cogl-utils.c | 126 + src/cairo-cogl.h | 69 + src/cairo-combsort-inline.h | 94 + src/cairo-compiler-private.h | 2 + src/cairo-composite-rectangles-private.h | 44 + src/cairo-composite-rectangles.c | 274 +- src/cairo-compositor-private.h | 8 + src/cairo-compositor.c | 221 +- src/cairo-contour-inline.h | 80 + src/cairo-contour-private.h | 35 - src/cairo-contour.c | 3 +- src/cairo-damage-private.h | 82 + src/cairo-damage.c | 234 + src/cairo-debug.c | 6 + src/cairo-default-context-private.h | 10 + src/cairo-default-context.c | 37 +- src/cairo-device.c | 2 +- src/cairo-directfb-surface.c | 2039 +- src/cairo-egl-context.c | 64 +- src/cairo-error-inline.h | 52 + src/cairo-error-private.h | 7 - src/cairo-fallback-compositor.c | 9 +- src/cairo-fixed-private.h | 2 + src/cairo-font-face.c | 12 +- src/cairo-font-options.c | 40 +- src/cairo-ft-font.c | 179 +- src/cairo-ft.h | 53 +- src/cairo-gl-composite.c | 689 +- src/cairo-gl-device.c | 474 +- src/cairo-gl-dispatch-private.h | 10 + src/cairo-gl-glyphs.c | 307 +- src/cairo-gl-gradient.c | 67 +- src/cairo-gl-hairline-stroke.c | 429 + src/cairo-gl-msaa-compositor.c | 1089 + src/cairo-gl-operand.c | 804 +- src/cairo-gl-private.h | 430 +- src/cairo-gl-shaders.c | 548 +- src/cairo-gl-source.c | 110 + src/cairo-gl-spans-compositor.c | 193 +- src/cairo-gl-surface-legacy.c | 12 +- src/cairo-gl-surface.c | 279 +- src/cairo-gl-traps-compositor.c | 146 +- src/cairo-gl.h | 16 +- src/cairo-glx-context.c | 66 +- src/cairo-gstate.c | 48 +- src/cairo-hash.c | 26 +- src/cairo-image-compositor.c | 1266 +- src/cairo-image-source.c | 365 +- src/cairo-image-surface-inline.h | 82 + src/cairo-image-surface-private.h | 81 +- src/cairo-image-surface.c | 107 +- src/cairo-list-inline.h | 209 + src/cairo-list-private.h | 167 - src/cairo-malloc-private.h | 38 +- src/cairo-mask-compositor.c | 81 +- src/cairo-matrix.c | 56 +- src/cairo-mesh-pattern-rasterizer.c | 2 +- src/cairo-misc.c | 16 +- src/cairo-mono-scan-converter.c | 20 +- src/cairo-observer.c | 2 + src/cairo-os2-surface.c | 3 +- src/cairo-paginated-surface.c | 25 +- src/cairo-path-bounds.c | 2 +- src/cairo-path-fill.c | 60 + src/cairo-path-fixed.c | 5 +- src/cairo-path-stroke-boxes.c | 195 +- src/cairo-path-stroke-polygon.c | 95 +- src/cairo-path-stroke-tristrip.c | 6 +- src/cairo-path-stroke.c | 6 +- src/cairo-path.c | 4 +- src/cairo-pattern-inline.h | 65 + src/cairo-pattern-private.h | 55 +- src/cairo-pattern.c | 249 +- src/cairo-pdf-surface-private.h | 6 + src/cairo-pdf-surface.c | 1237 +- src/cairo-pdf.h | 8 +- src/cairo-png.c | 14 +- src/cairo-polygon-intersect.c | 27 +- src/cairo-polygon-reduce.c | 2 +- src/cairo-polygon.c | 55 +- src/cairo-ps-surface-private.h | 5 - src/cairo-ps-surface.c | 913 +- src/cairo-ps.h | 8 +- src/cairo-qt-surface.cpp | 217 +- src/cairo-quartz-font.c | 12 +- src/cairo-quartz-image-surface.c | 63 +- src/cairo-quartz-private.h | 6 +- src/cairo-quartz-surface.c | 35 +- src/cairo-raster-source-pattern.c | 432 + src/cairo-recording-surface-inline.h | 68 + src/cairo-recording-surface-private.h | 26 - src/cairo-recording-surface.c | 54 +- src/cairo-rectangle.c | 5 +- src/cairo-rectangular-scan-converter.c | 2 +- src/cairo-region-private.h | 6 + src/cairo-region.c | 48 +- src/cairo-rtree-private.h | 13 +- src/cairo-rtree.c | 127 +- src/cairo-scaled-font-subsets-private.h | 8 +- src/cairo-scaled-font-subsets.c | 5 - src/cairo-scaled-font.c | 269 +- src/cairo-script-surface.c | 247 +- src/cairo-script.h | 13 +- src/cairo-shape-mask-compositor.c | 337 + src/cairo-skia-surface.cpp | 5 +- src/cairo-spans-compositor-private.h | 12 + src/cairo-spans-compositor.c | 511 +- src/cairo-spline.c | 2 +- src/cairo-stroke-dash.c | 4 +- src/cairo-stroke-style.c | 2 +- src/cairo-surface-backend-private.h | 21 + src/cairo-surface-clipper.c | 1 + src/cairo-surface-inline.h | 60 + src/cairo-surface-observer-inline.h | 59 + src/cairo-surface-observer-private.h | 21 +- src/cairo-surface-observer.c | 51 +- src/cairo-surface-offset.c | 1 + src/cairo-surface-private.h | 7 + src/cairo-surface-snapshot-inline.h | 67 + src/cairo-surface-snapshot-private.h | 20 +- src/cairo-surface-snapshot.c | 76 +- src/cairo-surface-subsurface-inline.h | 72 + src/cairo-surface-subsurface-private.h | 34 +- src/cairo-surface-subsurface.c | 222 +- src/cairo-surface-wrapper.c | 41 +- src/cairo-surface.c | 246 +- src/cairo-svg-surface.c | 30 +- src/cairo-svg.h | 8 +- src/cairo-tee-surface.c | 13 +- src/cairo-tor-scan-converter.c | 6 +- src/cairo-traps-compositor.c | 490 +- src/cairo-traps-private.h | 6 + src/cairo-traps.c | 99 +- src/cairo-truetype-subset.c | 2 - src/cairo-type1-subset.c | 234 +- src/cairo-type3-glyph-surface.c | 1 + src/cairo-types-private.h | 5 +- src/cairo-user-font.c | 6 +- src/cairo-version.c | 58 +- src/cairo-vg-surface.c | 154 +- src/cairo-wgl-context.c | 3 + src/cairo-wideint-private.h | 2 +- src/cairo-wideint.c | 3 +- src/cairo-xcb-connection-core.c | 2 +- src/cairo-xcb-connection.c | 50 +- src/cairo-xcb-private.h | 4 +- src/cairo-xcb-screen.c | 5 +- src/cairo-xcb-shm.c | 3 +- src/cairo-xcb-surface-core.c | 1 + src/cairo-xcb-surface-render.c | 173 +- src/cairo-xcb-surface.c | 190 +- src/cairo-xcb.h | 6 + src/cairo-xlib-core-compositor.c | 103 +- src/cairo-xlib-display.c | 82 +- src/cairo-xlib-fallback-compositor.c | 4 + src/cairo-xlib-render-compositor.c | 137 +- src/cairo-xlib-screen.c | 1 + src/cairo-xlib-source.c | 237 +- src/cairo-xlib-surface.c | 149 +- src/cairo-xlib-xcb-surface.c | 32 +- src/cairo-xlib.h | 5 + src/cairo-xml-surface.c | 40 +- src/cairo.c | 204 +- src/cairo.h | 530 +- src/cairoint.h | 73 +- src/check-doc-syntax.awk | 108 + src/check-doc-syntax.sh | 9 + src/drm/cairo-drm-gallium-surface.c | 1 + src/drm/cairo-drm-i915-private.h | 24 +- src/drm/cairo-drm-i915-surface.c | 2 + src/drm/cairo-drm-i965-shader.c | 4 +- src/drm/cairo-drm-i965-surface.c | 2 + src/drm/cairo-drm-intel-brw-eu-emit.c | 2 +- src/drm/cairo-drm-intel-brw-eu.c | 26 +- src/drm/cairo-drm-intel-brw-eu.h | 50 +- src/drm/cairo-drm-intel-ioctl-private.h | 126 +- src/drm/cairo-drm-intel-surface.c | 3 + src/drm/cairo-drm-radeon-surface.c | 3 + src/drm/cairo-drm-surface.c | 1 + src/skia/cairo-skia-context.cpp | 9 +- src/skia/cairo-skia-surface.cpp | 1 + src/test-base-compositor-surface.c | 174 +- src/test-compositor-surface.c | 1 + src/test-null-compositor-surface.c | 12 +- src/test-paginated-surface.c | 1 + src/win32/cairo-win32-debug.c | 87 + src/win32/cairo-win32-device.c | 189 + src/win32/cairo-win32-display-surface.c | 1059 + src/win32/cairo-win32-font.c | 2313 ++ src/win32/cairo-win32-gdi-compositor.c | 649 + src/win32/cairo-win32-printing-surface.c | 1917 + src/win32/cairo-win32-private.h | 226 + src/win32/cairo-win32-surface.c | 321 + src/win32/cairo-win32-system.c | 89 + test/.gitignore | 40 + test/Makefile.am | 22 +- test/Makefile.sources | 18 +- test/Makefile.win32 | 30 +- test/README | 10 +- test/any2ppm.c | 27 +- test/api-special-cases.c | 8 + test/arc-direction.c | 105 + test/buffer-diff.c | 10 +- test/bug-source-cu.c | 81 + test/cairo-test-private.h | 6 - test/cairo-test-runner.c | 54 +- test/cairo-test-trace.c | 10 +- test/cairo-test.c | 601 +- test/cairo-test.h | 9 +- test/copy-disjoint.c | 87 + test/dash-offset.c | 2 +- test/degenerate-solid-dash.c | 69 + test/fallback-resolution.c | 22 +- test/fallback.c | 79 + test/fill-disjoint.c | 63 + test/get-xrender-format.c | 10 - test/glyph-cache-pressure.c | 2 +- test/inverted-clip.c | 56 + test/line-width.c | 2 +- test/mask-glyphs.c | 2 - test/negative-stride-image.c | 71 + test/pass-through.c | 20 +- test/pdf-isolated-group.c | 73 + test/pdiff/.gitignore | 3 + test/ps-eps.c | 1 - test/raster-source.c | 134 + test/record.c | 8 +- test/record1414x.c | 498 + test/record2x.c | 493 + test/record90.c | 495 + test/rectilinear-dash-scale.c | 196 + test/reference/a1-bug.egl.argb32.ref.png | Bin 0 -> 3736 bytes test/reference/a1-bug.mask.argb32.ref.png | Bin 0 -> 3735 bytes test/reference/a1-bug.mask.rgb24.ref.png | Bin 0 -> 3735 bytes test/reference/a1-bug.ref.png | Bin 3220 -> 3736 bytes test/reference/a1-clip-fill-equal.argb32.ref.png | Bin 0 -> 120 bytes .../a1-clip-fill-equal.egl.argb32.ref.png | Bin 0 -> 120 bytes .../a1-clip-fill-equal.mask.argb32.ref.png | Bin 0 -> 120 bytes .../a1-clip-fill-equal.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-fill-equal.rgb24.ref.png | Bin 0 -> 120 bytes .../reference/a1-clip-fill-rule.egl.argb32.ref.png | Bin 0 -> 236 bytes .../a1-clip-fill-rule.mask.argb32.ref.png | Bin 0 -> 236 bytes .../reference/a1-clip-fill-rule.mask.rgb24.ref.png | Bin 0 -> 218 bytes test/reference/a1-clip-fill.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-fill.egl.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-fill.mask.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-fill.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-fill.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-paint.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-paint.egl.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-paint.mask.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-paint.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-paint.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-stroke.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-stroke.egl.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-stroke.mask.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-stroke.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-clip-stroke.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-fill.argb32.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.base.argb32.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.base.rgb24.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.egl.argb32.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.mask.argb32.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.mask.rgb24.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.rgb24.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.traps.argb32.ref.png | Bin 0 -> 328 bytes test/reference/a1-fill.traps.rgb24.ref.png | Bin 0 -> 328 bytes test/reference/a1-image-sample.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-image-sample.egl.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-image-sample.mask.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-image-sample.mask.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/a1-image-sample.rgb24.ref.png | Bin 0 -> 122 bytes .../a1-image-sample.xlib-fallback.rgb24.ref.png | Bin 0 -> 122 bytes .../a1-image-sample.xlib-window.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/a1-line-width.argb32.ref.png | Bin 0 -> 154 bytes test/reference/a1-line-width.egl.argb32.ref.png | Bin 0 -> 154 bytes test/reference/a1-line-width.mask.argb32.ref.png | Bin 0 -> 154 bytes test/reference/a1-line-width.mask.rgb24.ref.png | Bin 0 -> 154 bytes test/reference/a1-line-width.rgb24.ref.png | Bin 0 -> 154 bytes test/reference/a1-mask-sample.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-mask-sample.egl.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-mask-sample.mask.argb32.ref.png | Bin 0 -> 122 bytes test/reference/a1-mask-sample.mask.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/a1-mask-sample.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/a1-mask.argb32.ref.png | Bin 0 -> 106 bytes test/reference/a1-mask.egl.argb32.ref.png | Bin 0 -> 106 bytes test/reference/a1-mask.mask.argb32.ref.png | Bin 0 -> 106 bytes test/reference/a1-mask.mask.rgb24.ref.png | Bin 0 -> 106 bytes test/reference/a1-mask.rgb24.ref.png | Bin 0 -> 106 bytes .../a1-rasterisation-rectangles.argb32.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-rectangles.egl.argb32.ref.png | Bin 0 -> 1729 bytes ...a1-rasterisation-rectangles.mask.argb32.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-rectangles.mask.rgb24.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-rectangles.rgb24.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-triangles.argb32.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-triangles.egl.argb32.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-triangles.mask.argb32.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-triangles.mask.rgb24.ref.png | Bin 0 -> 1729 bytes .../a1-rasterisation-triangles.rgb24.ref.png | Bin 0 -> 1729 bytes test/reference/a1-rectilinear-grid.argb32.ref.png | Bin 0 -> 207 bytes .../a1-rectilinear-grid.egl.argb32.ref.png | Bin 0 -> 207 bytes .../a1-rectilinear-grid.mask.argb32.ref.png | Bin 0 -> 207 bytes .../a1-rectilinear-grid.mask.rgb24.ref.png | Bin 0 -> 207 bytes test/reference/a1-rectilinear-grid.rgb24.ref.png | Bin 0 -> 207 bytes test/reference/a1-sample.argb32.ref.png | Bin 0 -> 786 bytes test/reference/a1-sample.egl.argb32.ref.png | Bin 0 -> 786 bytes test/reference/a1-sample.mask.argb32.ref.png | Bin 0 -> 786 bytes test/reference/a1-sample.mask.rgb24.ref.png | Bin 0 -> 786 bytes test/reference/a1-sample.rgb24.ref.png | Bin 0 -> 786 bytes test/reference/a1-tiger.egl.argb32.ref.png | Bin 0 -> 30631 bytes test/reference/a1-tiger.mask.argb32.ref.png | Bin 0 -> 20328 bytes test/reference/a1-tiger.mask.rgb24.ref.png | Bin 0 -> 20328 bytes test/reference/a1-tiger.ref.png | Bin 20330 -> 20326 bytes test/reference/a1-traps-sample.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-traps-sample.egl.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-traps-sample.mask.argb32.ref.png | Bin 0 -> 120 bytes test/reference/a1-traps-sample.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a1-traps-sample.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/a8-clear.argb32.ref.png | Bin 0 -> 271 bytes test/reference/a8-clear.egl.argb32.ref.png | Bin 0 -> 271 bytes test/reference/a8-clear.mask.argb32.ref.png | Bin 0 -> 271 bytes test/reference/a8-clear.mask.rgb24.ref.png | Bin 0 -> 271 bytes test/reference/a8-clear.rgb24.ref.png | Bin 0 -> 271 bytes test/reference/a8-mask.argb32.ref.png | Bin 0 -> 103 bytes test/reference/a8-mask.egl.argb32.ref.png | Bin 0 -> 103 bytes test/reference/a8-mask.mask.argb32.ref.png | Bin 0 -> 103 bytes test/reference/a8-mask.mask.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/a8-mask.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/aliasing.argb32.ref.png | Bin 0 -> 104324 bytes test/reference/aliasing.egl.argb32.ref.png | Bin 0 -> 112556 bytes test/reference/aliasing.mask.argb32.ref.png | Bin 0 -> 104324 bytes test/reference/aliasing.mask.rgb24.ref.png | Bin 0 -> 104324 bytes test/reference/aliasing.rgb24.ref.png | Bin 0 -> 104324 bytes test/reference/alpha-similar.argb32.ref.png | Bin 0 -> 99 bytes test/reference/alpha-similar.egl.argb32.ref.png | Bin 0 -> 113 bytes test/reference/alpha-similar.mask.argb32.ref.png | Bin 0 -> 99 bytes test/reference/alpha-similar.mask.rgb24.ref.png | Bin 0 -> 88 bytes test/reference/alpha-similar.rgb24.ref.png | Bin 99 -> 88 bytes test/reference/api-special-cases.argb32.ref.png | Bin 0 -> 95 bytes .../reference/api-special-cases.egl.argb32.ref.png | Bin 0 -> 131 bytes .../api-special-cases.mask.argb32.ref.png | Bin 0 -> 95 bytes .../reference/api-special-cases.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/api-special-cases.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/arc-direction.argb32.ref.png | Bin 0 -> 6380 bytes test/reference/arc-direction.base.argb32.ref.png | Bin 0 -> 5864 bytes test/reference/arc-direction.base.ref.png | Bin 0 -> 5864 bytes test/reference/arc-direction.base.rgb24.ref.png | Bin 0 -> 5864 bytes test/reference/arc-direction.egl.argb32.ref.png | Bin 0 -> 6551 bytes test/reference/arc-direction.mask.argb32.ref.png | Bin 0 -> 6380 bytes test/reference/arc-direction.mask.rgb24.ref.png | Bin 0 -> 6380 bytes test/reference/arc-direction.ps.ref.png | Bin 0 -> 3295 bytes test/reference/arc-direction.ref.png | Bin 0 -> 4124 bytes test/reference/arc-direction.rgb24.ref.png | Bin 0 -> 6380 bytes test/reference/arc-direction.traps.argb32.ref.png | Bin 0 -> 6380 bytes test/reference/arc-direction.traps.ref.png | Bin 0 -> 5864 bytes test/reference/arc-direction.traps.rgb24.ref.png | Bin 0 -> 6380 bytes test/reference/arc-infinite-loop.argb32.ref.png | Bin 0 -> 96 bytes .../reference/arc-infinite-loop.egl.argb32.ref.png | Bin 0 -> 96 bytes .../arc-infinite-loop.mask.argb32.ref.png | Bin 0 -> 96 bytes .../reference/arc-infinite-loop.mask.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/arc-infinite-loop.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/arc-looping-dash.argb32.ref.png | Bin 0 -> 464 bytes test/reference/arc-looping-dash.egl.argb32.ref.png | Bin 0 -> 464 bytes .../reference/arc-looping-dash.mask.argb32.ref.png | Bin 0 -> 464 bytes test/reference/arc-looping-dash.mask.rgb24.ref.png | Bin 0 -> 464 bytes test/reference/arc-looping-dash.rgb24.ref.png | Bin 0 -> 464 bytes test/reference/big-empty-box.egl.argb32.ref.png | Bin 0 -> 111 bytes .../big-empty-triangle.egl.argb32.ref.png | Bin 0 -> 111 bytes .../big-empty-triangle.mask.argb32.ref.png | Bin 0 -> 111 bytes .../big-empty-triangle.mask.rgb24.ref.png | Bin 0 -> 108 bytes test/reference/big-line.argb32.ref.png | Bin 0 -> 977 bytes test/reference/big-line.egl.argb32.ref.png | Bin 0 -> 1050 bytes test/reference/big-line.mask.argb32.ref.png | Bin 0 -> 977 bytes test/reference/big-line.mask.rgb24.ref.png | Bin 0 -> 977 bytes test/reference/big-line.rgb24.ref.png | Bin 0 -> 977 bytes test/reference/big-little-box.egl.argb32.ref.png | Bin 0 -> 169 bytes test/reference/big-little-box.mask.argb32.ref.png | Bin 0 -> 169 bytes test/reference/big-little-box.mask.rgb24.ref.png | Bin 0 -> 160 bytes test/reference/big-little-triangle.argb32.ref.png | Bin 408 -> 409 bytes .../big-little-triangle.egl.argb32.ref.png | Bin 0 -> 409 bytes .../big-little-triangle.mask.argb32.ref.png | Bin 0 -> 409 bytes .../big-little-triangle.mask.rgb24.ref.png | Bin 0 -> 328 bytes test/reference/big-little-triangle.rgb24.ref.png | Bin 324 -> 328 bytes test/reference/big-trap.egl.argb32.ref.png | Bin 0 -> 319 bytes test/reference/big-trap.mask.argb32.ref.png | Bin 0 -> 319 bytes test/reference/big-trap.mask.rgb24.ref.png | Bin 0 -> 319 bytes test/reference/bilevel-image.argb32.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-image.egl.argb32.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-image.mask.argb32.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-image.mask.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-image.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-xlib-fallback.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-xlib-window.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-xlib.argb32.ref.png | Bin 0 -> 105 bytes test/reference/bilevel-xlib.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/bitmap-font.argb32.ref.png | Bin 0 -> 931 bytes test/reference/bitmap-font.egl.argb32.ref.png | Bin 0 -> 931 bytes test/reference/bitmap-font.mask.argb32.ref.png | Bin 0 -> 931 bytes test/reference/bitmap-font.mask.rgb24.ref.png | Bin 0 -> 871 bytes test/reference/bitmap-font.rgb24.ref.png | Bin 890 -> 871 bytes test/reference/bug-40410.argb32.ref.png | Bin 0 -> 429 bytes test/reference/bug-40410.egl.argb32.ref.png | Bin 0 -> 429 bytes test/reference/bug-40410.mask.argb32.ref.png | Bin 0 -> 429 bytes test/reference/bug-40410.mask.rgb24.ref.png | Bin 0 -> 429 bytes test/reference/bug-40410.rgb24.ref.png | Bin 0 -> 429 bytes test/reference/bug-bo-rectangular.argb32.ref.png | Bin 0 -> 950 bytes .../bug-bo-rectangular.egl.argb32.ref.png | Bin 0 -> 1020 bytes .../bug-bo-rectangular.mask.argb32.ref.png | Bin 0 -> 950 bytes .../bug-bo-rectangular.mask.rgb24.ref.png | Bin 0 -> 950 bytes test/reference/bug-bo-rectangular.rgb24.ref.png | Bin 0 -> 950 bytes test/reference/bug-bo-ricotz.argb32.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.base.argb32.ref.png | Bin 0 -> 2125 bytes test/reference/bug-bo-ricotz.base.rgb24.ref.png | Bin 0 -> 2125 bytes test/reference/bug-bo-ricotz.egl.argb32.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.mask.argb32.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.mask.rgb24.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.rgb24.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.traps.argb32.ref.png | Bin 0 -> 2128 bytes test/reference/bug-bo-ricotz.traps.rgb24.ref.png | Bin 0 -> 2128 bytes test/reference/bug-extents.argb32.ref.png | Bin 0 -> 9251 bytes test/reference/bug-extents.egl.argb32.ref.png | Bin 0 -> 9338 bytes test/reference/bug-extents.mask.argb32.ref.png | Bin 0 -> 9251 bytes test/reference/bug-extents.mask.rgb24.ref.png | Bin 0 -> 9251 bytes test/reference/bug-extents.rgb24.ref.png | Bin 0 -> 9251 bytes test/reference/bug-seams.argb32.ref.png | Bin 0 -> 1647 bytes test/reference/bug-seams.egl.argb32.ref.png | Bin 0 -> 1843 bytes test/reference/bug-seams.mask.argb32.ref.png | Bin 0 -> 1647 bytes test/reference/bug-seams.mask.rgb24.ref.png | Bin 0 -> 1647 bytes test/reference/bug-seams.rgb24.ref.png | Bin 0 -> 1647 bytes test/reference/bug-source-cu.argb32.ref.png | Bin 0 -> 3815 bytes test/reference/bug-source-cu.egl.argb32.ref.png | Bin 0 -> 3816 bytes test/reference/bug-source-cu.rgb24.ref.png | Bin 0 -> 3211 bytes test/reference/bug-source-cu.traps.argb32.ref.png | Bin 0 -> 3816 bytes test/reference/bug-source-cu.traps.rgb24.ref.png | Bin 0 -> 3212 bytes test/reference/caps-joins-alpha.argb32.ref.png | Bin 0 -> 2662 bytes test/reference/caps-joins-alpha.egl.argb32.ref.png | Bin 0 -> 3220 bytes .../reference/caps-joins-alpha.mask.argb32.ref.png | Bin 0 -> 2662 bytes test/reference/caps-joins-alpha.mask.rgb24.ref.png | Bin 0 -> 2662 bytes test/reference/caps-joins-alpha.rgb24.ref.png | Bin 0 -> 2662 bytes test/reference/caps-joins-curve.argb32.ref.png | Bin 0 -> 6217 bytes test/reference/caps-joins-curve.egl.argb32.ref.png | Bin 0 -> 6300 bytes .../reference/caps-joins-curve.mask.argb32.ref.png | Bin 0 -> 6217 bytes test/reference/caps-joins-curve.mask.rgb24.ref.png | Bin 0 -> 6217 bytes test/reference/caps-joins-curve.rgb24.ref.png | Bin 0 -> 6217 bytes test/reference/caps-joins.argb32.ref.png | Bin 0 -> 2893 bytes test/reference/caps-joins.egl.argb32.ref.png | Bin 0 -> 2936 bytes test/reference/caps-joins.mask.argb32.ref.png | Bin 0 -> 2893 bytes test/reference/caps-joins.mask.rgb24.ref.png | Bin 0 -> 2893 bytes test/reference/caps-joins.rgb24.ref.png | Bin 0 -> 2893 bytes test/reference/caps-sub-paths.argb32.ref.png | Bin 0 -> 168 bytes test/reference/caps-sub-paths.egl.argb32.ref.png | Bin 0 -> 174 bytes test/reference/caps-sub-paths.mask.argb32.ref.png | Bin 0 -> 168 bytes test/reference/caps-sub-paths.mask.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/caps-sub-paths.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/caps-tails-curve.argb32.ref.png | Bin 0 -> 53311 bytes test/reference/caps-tails-curve.egl.argb32.ref.png | Bin 0 -> 53567 bytes .../reference/caps-tails-curve.mask.argb32.ref.png | Bin 0 -> 53311 bytes test/reference/caps-tails-curve.mask.rgb24.ref.png | Bin 0 -> 53311 bytes test/reference/caps-tails-curve.rgb24.ref.png | Bin 0 -> 53311 bytes test/reference/caps.argb32.ref.png | Bin 0 -> 2115 bytes test/reference/caps.egl.argb32.ref.png | Bin 0 -> 2244 bytes test/reference/caps.mask.argb32.ref.png | Bin 0 -> 2115 bytes test/reference/caps.mask.rgb24.ref.png | Bin 0 -> 2115 bytes test/reference/caps.rgb24.ref.png | Bin 0 -> 2115 bytes test/reference/checkerboard.argb32.ref.png | Bin 0 -> 142 bytes test/reference/checkerboard.egl.argb32.ref.png | Bin 0 -> 142 bytes test/reference/checkerboard.mask.argb32.ref.png | Bin 0 -> 142 bytes test/reference/checkerboard.mask.rgb24.ref.png | Bin 0 -> 142 bytes test/reference/checkerboard.rgb24.ref.png | Bin 0 -> 142 bytes test/reference/clear-source.argb32.ref.png | Bin 0 -> 882 bytes test/reference/clear-source.base.argb32.ref.png | Bin 779 -> 882 bytes test/reference/clear-source.base.rgb24.ref.png | Bin 779 -> 882 bytes test/reference/clear-source.egl.argb32.ref.png | Bin 0 -> 1521 bytes test/reference/clear-source.mask.argb32.ref.png | Bin 0 -> 882 bytes test/reference/clear-source.mask.rgb24.ref.png | Bin 0 -> 882 bytes test/reference/clear-source.rgb24.ref.png | Bin 0 -> 882 bytes test/reference/clear-source.traps.argb32.ref.png | Bin 779 -> 882 bytes test/reference/clear-source.traps.rgb24.ref.png | Bin 779 -> 882 bytes test/reference/clear.argb32.ref.png | Bin 539 -> 692 bytes test/reference/clear.mask.argb32.ref.png | Bin 0 -> 692 bytes test/reference/clear.mask.rgb24.ref.png | Bin 0 -> 617 bytes test/reference/clear.rgb24.ref.png | Bin 484 -> 617 bytes test/reference/clip-all.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-all.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-all.mask.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-all.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/clip-all.rgb24.ref.png | Bin 0 -> 95 bytes .../clip-complex-shape-eo-aa.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-aa.egl.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-aa.mask.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-aa.mask.rgb24.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-aa.rgb24.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-mono.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-mono.egl.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-mono.mask.argb32.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-mono.mask.rgb24.ref.png | Bin 0 -> 325 bytes .../clip-complex-shape-eo-mono.rgb24.ref.png | Bin 0 -> 325 bytes test/reference/clip-contexts.argb32.ref.png | Bin 0 -> 98 bytes test/reference/clip-contexts.egl.argb32.ref.png | Bin 0 -> 110 bytes test/reference/clip-contexts.mask.argb32.ref.png | Bin 0 -> 98 bytes test/reference/clip-contexts.mask.rgb24.ref.png | Bin 0 -> 98 bytes test/reference/clip-contexts.rgb24.ref.png | Bin 0 -> 98 bytes .../clip-device-offset.egl.argb32.ref.png | Bin 0 -> 111 bytes .../clip-device-offset.mask.argb32.ref.png | Bin 0 -> 175 bytes .../clip-device-offset.mask.rgb24.ref.png | Bin 0 -> 168 bytes .../clip-disjoint-hatching.argb32.ref.png | Bin 0 -> 9022 bytes .../clip-disjoint-hatching.base.argb32.ref.png | Bin 8021 -> 7948 bytes .../clip-disjoint-hatching.base.rgb24.ref.png | Bin 8021 -> 7948 bytes .../clip-disjoint-hatching.egl.argb32.ref.png | Bin 0 -> 9049 bytes .../clip-disjoint-hatching.mask.argb32.ref.png | Bin 0 -> 8789 bytes .../clip-disjoint-hatching.mask.rgb24.ref.png | Bin 0 -> 8789 bytes .../reference/clip-disjoint-hatching.rgb24.ref.png | Bin 0 -> 9022 bytes test/reference/clip-disjoint.egl.argb32.ref.png | Bin 0 -> 7297 bytes test/reference/clip-disjoint.mask.argb32.ref.png | Bin 0 -> 5399 bytes test/reference/clip-disjoint.mask.rgb24.ref.png | Bin 0 -> 5399 bytes test/reference/clip-disjoint.ref.png | Bin 3934 -> 5438 bytes test/reference/clip-empty-group.argb32.ref.png | Bin 0 -> 103 bytes test/reference/clip-empty-group.egl.argb32.ref.png | Bin 0 -> 103 bytes .../reference/clip-empty-group.mask.argb32.ref.png | Bin 0 -> 103 bytes test/reference/clip-empty-group.mask.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/clip-empty-group.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/clip-empty-save.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty-save.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty-save.mask.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty-save.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty-save.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty.mask.argb32.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/clip-empty.rgb24.ref.png | Bin 0 -> 95 bytes .../clip-fill-eo-unbounded.argb32.ref.png | Bin 3970 -> 4197 bytes .../clip-fill-eo-unbounded.base.argb32.ref.png | Bin 3693 -> 3735 bytes .../clip-fill-eo-unbounded.base.rgb24.ref.png | Bin 3198 -> 3224 bytes .../clip-fill-eo-unbounded.mask.argb32.ref.png | Bin 0 -> 3769 bytes .../clip-fill-eo-unbounded.mask.rgb24.ref.png | Bin 0 -> 3211 bytes .../reference/clip-fill-eo-unbounded.rgb24.ref.png | Bin 3409 -> 3551 bytes test/reference/clip-fill-no-op.argb32.ref.png | Bin 0 -> 152 bytes test/reference/clip-fill-no-op.egl.argb32.ref.png | Bin 0 -> 152 bytes test/reference/clip-fill-no-op.mask.argb32.ref.png | Bin 0 -> 152 bytes test/reference/clip-fill-no-op.mask.rgb24.ref.png | Bin 0 -> 152 bytes test/reference/clip-fill-no-op.rgb24.ref.png | Bin 0 -> 152 bytes .../clip-fill-nz-unbounded.argb32.ref.png | Bin 3970 -> 4197 bytes .../clip-fill-nz-unbounded.base.argb32.ref.png | Bin 3693 -> 3735 bytes .../clip-fill-nz-unbounded.base.rgb24.ref.png | Bin 3198 -> 3224 bytes .../clip-fill-nz-unbounded.mask.argb32.ref.png | Bin 0 -> 3764 bytes .../clip-fill-nz-unbounded.mask.rgb24.ref.png | Bin 0 -> 3215 bytes .../reference/clip-fill-nz-unbounded.rgb24.ref.png | Bin 3409 -> 3551 bytes .../clip-fill-rule-pixel-aligned.argb32.ref.png | Bin 0 -> 176 bytes ...clip-fill-rule-pixel-aligned.egl.argb32.ref.png | Bin 0 -> 176 bytes ...lip-fill-rule-pixel-aligned.mask.argb32.ref.png | Bin 0 -> 176 bytes ...clip-fill-rule-pixel-aligned.mask.rgb24.ref.png | Bin 0 -> 165 bytes .../clip-fill-rule-pixel-aligned.rgb24.ref.png | Bin 184 -> 165 bytes test/reference/clip-fill-rule.argb32.ref.png | Bin 371 -> 437 bytes test/reference/clip-fill-rule.base.argb32.ref.png | Bin 412 -> 437 bytes test/reference/clip-fill-rule.base.rgb24.ref.png | Bin 361 -> 393 bytes test/reference/clip-fill-rule.egl.argb32.ref.png | Bin 0 -> 461 bytes test/reference/clip-fill-rule.mask.argb32.ref.png | Bin 0 -> 437 bytes test/reference/clip-fill-rule.mask.rgb24.ref.png | Bin 0 -> 393 bytes test/reference/clip-fill-rule.rgb24.ref.png | Bin 338 -> 393 bytes test/reference/clip-fill.argb32.ref.png | Bin 0 -> 1031 bytes test/reference/clip-fill.base.argb32.ref.png | Bin 1049 -> 1039 bytes test/reference/clip-fill.base.rgb24.ref.png | Bin 1049 -> 1039 bytes test/reference/clip-fill.egl.argb32.ref.png | Bin 0 -> 1199 bytes test/reference/clip-fill.mask.argb32.ref.png | Bin 0 -> 1039 bytes test/reference/clip-fill.mask.rgb24.ref.png | Bin 0 -> 1039 bytes test/reference/clip-fill.rgb24.ref.png | Bin 0 -> 1031 bytes ...-group-shapes-aligned-rectangles.argb32.ref.png | Bin 0 -> 378 bytes ...up-shapes-aligned-rectangles.egl.argb32.ref.png | Bin 0 -> 378 bytes ...p-shapes-aligned-rectangles.mask.argb32.ref.png | Bin 0 -> 378 bytes ...up-shapes-aligned-rectangles.mask.rgb24.ref.png | Bin 0 -> 378 bytes ...p-group-shapes-aligned-rectangles.rgb24.ref.png | Bin 0 -> 378 bytes .../clip-group-shapes-circles.argb32.ref.png | Bin 0 -> 1525 bytes .../clip-group-shapes-circles.base.argb32.ref.png | Bin 1534 -> 1511 bytes .../clip-group-shapes-circles.base.rgb24.ref.png | Bin 1534 -> 1511 bytes .../clip-group-shapes-circles.egl.argb32.ref.png | Bin 0 -> 1665 bytes .../clip-group-shapes-circles.mask.argb32.ref.png | Bin 0 -> 1511 bytes .../clip-group-shapes-circles.mask.rgb24.ref.png | Bin 0 -> 1511 bytes .../clip-group-shapes-circles.rgb24.ref.png | Bin 0 -> 1525 bytes ...roup-shapes-unaligned-rectangles.argb32.ref.png | Bin 0 -> 415 bytes ...shapes-unaligned-rectangles.base.argb32.ref.png | Bin 431 -> 415 bytes ...-shapes-unaligned-rectangles.base.rgb24.ref.png | Bin 431 -> 415 bytes ...-shapes-unaligned-rectangles.egl.argb32.ref.png | Bin 0 -> 415 bytes ...shapes-unaligned-rectangles.mask.argb32.ref.png | Bin 0 -> 431 bytes ...-shapes-unaligned-rectangles.mask.rgb24.ref.png | Bin 0 -> 431 bytes ...group-shapes-unaligned-rectangles.rgb24.ref.png | Bin 0 -> 415 bytes test/reference/clip-image.argb32.ref.png | Bin 0 -> 2677 bytes test/reference/clip-image.base.argb32.ref.png | Bin 2686 -> 2677 bytes test/reference/clip-image.base.rgb24.ref.png | Bin 2686 -> 2677 bytes test/reference/clip-image.egl.argb32.ref.png | Bin 0 -> 2254 bytes test/reference/clip-image.mask.argb32.ref.png | Bin 0 -> 2678 bytes test/reference/clip-image.mask.rgb24.ref.png | Bin 0 -> 2678 bytes test/reference/clip-image.rgb24.ref.png | Bin 0 -> 2677 bytes test/reference/clip-intersect.argb32.ref.png | Bin 0 -> 200 bytes test/reference/clip-intersect.base.argb32.ref.png | Bin 193 -> 200 bytes test/reference/clip-intersect.base.rgb24.ref.png | Bin 193 -> 200 bytes test/reference/clip-intersect.egl.argb32.ref.png | Bin 0 -> 200 bytes test/reference/clip-intersect.mask.argb32.ref.png | Bin 0 -> 200 bytes test/reference/clip-intersect.mask.rgb24.ref.png | Bin 0 -> 200 bytes test/reference/clip-intersect.rgb24.ref.png | Bin 0 -> 200 bytes test/reference/clip-mixed-antialias.argb32.ref.png | Bin 0 -> 1084 bytes .../clip-mixed-antialias.egl.argb32.ref.png | Bin 0 -> 1085 bytes .../clip-mixed-antialias.mask.argb32.ref.png | Bin 0 -> 1084 bytes .../clip-mixed-antialias.mask.rgb24.ref.png | Bin 0 -> 1084 bytes test/reference/clip-mixed-antialias.rgb24.ref.png | Bin 0 -> 1084 bytes test/reference/clip-nesting.argb32.ref.png | Bin 1072 -> 1044 bytes test/reference/clip-nesting.base.argb32.ref.png | Bin 1031 -> 1044 bytes test/reference/clip-nesting.base.rgb24.ref.png | Bin 936 -> 937 bytes test/reference/clip-nesting.egl.argb32.ref.png | Bin 0 -> 1164 bytes test/reference/clip-nesting.mask.argb32.ref.png | Bin 0 -> 1044 bytes test/reference/clip-nesting.mask.rgb24.ref.png | Bin 0 -> 937 bytes test/reference/clip-nesting.rgb24.ref.png | Bin 949 -> 937 bytes test/reference/clip-operator.argb32.ref.png | Bin 8180 -> 8216 bytes test/reference/clip-operator.base.argb32.ref.png | Bin 8171 -> 8182 bytes test/reference/clip-operator.base.rgb24.ref.png | Bin 3231 -> 3244 bytes test/reference/clip-operator.mask.argb32.ref.png | Bin 0 -> 8680 bytes test/reference/clip-operator.mask.rgb24.ref.png | Bin 0 -> 3519 bytes test/reference/clip-operator.rgb24.ref.png | Bin 3199 -> 3293 bytes test/reference/clip-operator.traps.argb32.ref.png | Bin 8153 -> 8160 bytes test/reference/clip-operator.traps.rgb24.ref.png | Bin 3232 -> 3245 bytes test/reference/clip-polygons.argb32.ref.png | Bin 0 -> 1352 bytes test/reference/clip-polygons.base.argb32.ref.png | Bin 0 -> 1336 bytes test/reference/clip-polygons.base.rgb24.ref.png | Bin 0 -> 1336 bytes test/reference/clip-polygons.egl.argb32.ref.png | Bin 0 -> 1352 bytes test/reference/clip-polygons.mask.argb32.ref.png | Bin 0 -> 1336 bytes test/reference/clip-polygons.mask.rgb24.ref.png | Bin 0 -> 1336 bytes test/reference/clip-polygons.rgb24.ref.png | Bin 0 -> 1352 bytes test/reference/clip-polygons.traps.argb32.ref.png | Bin 0 -> 1336 bytes test/reference/clip-polygons.traps.rgb24.ref.png | Bin 0 -> 1336 bytes test/reference/clip-push-group.argb32.ref.png | Bin 0 -> 164 bytes test/reference/clip-push-group.base.argb32.ref.png | Bin 155 -> 164 bytes test/reference/clip-push-group.base.rgb24.ref.png | Bin 155 -> 164 bytes test/reference/clip-push-group.egl.argb32.ref.png | Bin 0 -> 173 bytes test/reference/clip-push-group.mask.argb32.ref.png | Bin 0 -> 164 bytes test/reference/clip-push-group.mask.rgb24.ref.png | Bin 0 -> 164 bytes test/reference/clip-push-group.rgb24.ref.png | Bin 0 -> 164 bytes test/reference/clip-rectilinear.argb32.ref.png | Bin 0 -> 439 bytes .../reference/clip-rectilinear.base.argb32.ref.png | Bin 0 -> 439 bytes test/reference/clip-rectilinear.base.rgb24.ref.png | Bin 0 -> 439 bytes test/reference/clip-rectilinear.egl.argb32.ref.png | Bin 0 -> 439 bytes .../reference/clip-rectilinear.mask.argb32.ref.png | Bin 0 -> 440 bytes test/reference/clip-rectilinear.mask.rgb24.ref.png | Bin 0 -> 440 bytes test/reference/clip-rectilinear.rgb24.ref.png | Bin 0 -> 439 bytes .../clip-rectilinear.traps.argb32.ref.png | Bin 0 -> 440 bytes .../reference/clip-rectilinear.traps.rgb24.ref.png | Bin 0 -> 440 bytes .../clip-rotate-image-surface-paint.argb32.ref.png | Bin 0 -> 202 bytes ...p-rotate-image-surface-paint.egl.argb32.ref.png | Bin 0 -> 216 bytes ...-rotate-image-surface-paint.mask.argb32.ref.png | Bin 0 -> 202 bytes ...p-rotate-image-surface-paint.mask.rgb24.ref.png | Bin 0 -> 202 bytes .../clip-rotate-image-surface-paint.rgb24.ref.png | Bin 0 -> 202 bytes ...image-surface-paint.xlib-fallback.rgb24.ref.png | Bin 0 -> 202 bytes ...e-image-surface-paint.xlib-window.rgb24.ref.png | Bin 0 -> 202 bytes test/reference/clip-shape.argb32.ref.png | Bin 0 -> 3073 bytes test/reference/clip-shape.base.argb32.ref.png | Bin 2943 -> 2916 bytes test/reference/clip-shape.base.rgb24.ref.png | Bin 2943 -> 2916 bytes test/reference/clip-shape.egl.argb32.ref.png | Bin 0 -> 3661 bytes test/reference/clip-shape.mask.argb32.ref.png | Bin 0 -> 3094 bytes test/reference/clip-shape.mask.rgb24.ref.png | Bin 0 -> 3094 bytes test/reference/clip-shape.rgb24.ref.png | Bin 0 -> 3073 bytes test/reference/clip-stroke-no-op.argb32.ref.png | Bin 0 -> 152 bytes .../reference/clip-stroke-no-op.egl.argb32.ref.png | Bin 0 -> 152 bytes .../clip-stroke-no-op.mask.argb32.ref.png | Bin 0 -> 152 bytes .../reference/clip-stroke-no-op.mask.rgb24.ref.png | Bin 0 -> 152 bytes test/reference/clip-stroke-no-op.rgb24.ref.png | Bin 0 -> 152 bytes .../reference/clip-stroke-unbounded.argb32.ref.png | Bin 3887 -> 4128 bytes .../clip-stroke-unbounded.base.argb32.ref.png | Bin 3617 -> 3655 bytes .../clip-stroke-unbounded.base.rgb24.ref.png | Bin 3108 -> 3135 bytes .../clip-stroke-unbounded.mask.argb32.ref.png | Bin 0 -> 3991 bytes .../clip-stroke-unbounded.mask.rgb24.ref.png | Bin 0 -> 3372 bytes test/reference/clip-stroke-unbounded.rgb24.ref.png | Bin 3408 -> 3546 bytes test/reference/clip-stroke.base.argb32.ref.png | Bin 1491 -> 1444 bytes test/reference/clip-stroke.base.rgb24.ref.png | Bin 1491 -> 1444 bytes test/reference/clip-stroke.egl.argb32.ref.png | Bin 0 -> 1567 bytes test/reference/clip-stroke.mask.argb32.ref.png | Bin 0 -> 1500 bytes test/reference/clip-stroke.mask.rgb24.ref.png | Bin 0 -> 1500 bytes test/reference/clip-stroke.ref.png | Bin 1206 -> 1445 bytes test/reference/clip-text.argb32.ref.png | Bin 0 -> 928 bytes test/reference/clip-text.base.argb32.ref.png | Bin 899 -> 921 bytes test/reference/clip-text.base.rgb24.ref.png | Bin 899 -> 921 bytes test/reference/clip-text.mask.argb32.ref.png | Bin 0 -> 918 bytes test/reference/clip-text.mask.rgb24.ref.png | Bin 0 -> 918 bytes test/reference/clip-text.rgb24.ref.png | Bin 0 -> 928 bytes test/reference/clip-text.traps.argb32.ref.png | Bin 899 -> 899 bytes test/reference/clip-text.traps.rgb24.ref.png | Bin 899 -> 899 bytes test/reference/clip-twice-rectangle.argb32.ref.png | Bin 0 -> 323 bytes .../clip-twice-rectangle.egl.argb32.ref.png | Bin 0 -> 323 bytes .../clip-twice-rectangle.mask.argb32.ref.png | Bin 0 -> 323 bytes .../clip-twice-rectangle.mask.rgb24.ref.png | Bin 0 -> 323 bytes test/reference/clip-twice-rectangle.rgb24.ref.png | Bin 0 -> 323 bytes test/reference/clip-twice.argb32.ref.png | Bin 1068 -> 1358 bytes test/reference/clip-twice.base.argb32.ref.png | Bin 1343 -> 1341 bytes test/reference/clip-twice.base.rgb24.ref.png | Bin 1179 -> 1194 bytes test/reference/clip-twice.egl.argb32.ref.png | Bin 0 -> 1545 bytes test/reference/clip-twice.mask.argb32.ref.png | Bin 0 -> 1306 bytes test/reference/clip-twice.mask.rgb24.ref.png | Bin 0 -> 1215 bytes test/reference/clip-twice.rgb24.ref.png | Bin 1022 -> 1195 bytes test/reference/clip-unbounded.argb32.ref.png | Bin 0 -> 100 bytes test/reference/clip-unbounded.egl.argb32.ref.png | Bin 0 -> 100 bytes test/reference/clip-unbounded.mask.argb32.ref.png | Bin 0 -> 100 bytes test/reference/clip-unbounded.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/clip-xlib-fallback.rgb24.ref.png | Bin 0 -> 2686 bytes test/reference/clip-xlib-window.rgb24.ref.png | Bin 0 -> 2686 bytes test/reference/clip-xlib.argb32.ref.png | Bin 0 -> 2686 bytes test/reference/clip-xlib.rgb24.ref.png | Bin 0 -> 2686 bytes test/reference/clipped-group.argb32.ref.png | Bin 0 -> 342 bytes test/reference/clipped-group.base.argb32.ref.png | Bin 316 -> 316 bytes test/reference/clipped-group.base.rgb24.ref.png | Bin 316 -> 316 bytes test/reference/clipped-group.egl.argb32.ref.png | Bin 0 -> 469 bytes test/reference/clipped-group.mask.argb32.ref.png | Bin 0 -> 336 bytes test/reference/clipped-group.mask.rgb24.ref.png | Bin 0 -> 336 bytes test/reference/clipped-group.rgb24.ref.png | Bin 0 -> 342 bytes test/reference/clipped-surface.argb32.ref.png | Bin 0 -> 345 bytes test/reference/clipped-surface.egl.argb32.ref.png | Bin 0 -> 120 bytes test/reference/clipped-surface.mask.argb32.ref.png | Bin 0 -> 345 bytes test/reference/clipped-surface.mask.rgb24.ref.png | Bin 0 -> 345 bytes test/reference/clipped-surface.rgb24.ref.png | Bin 0 -> 345 bytes .../close-path-current-point.argb32.ref.png | Bin 0 -> 2324 bytes .../close-path-current-point.egl.argb32.ref.png | Bin 0 -> 2378 bytes .../close-path-current-point.mask.argb32.ref.png | Bin 0 -> 2324 bytes .../close-path-current-point.mask.rgb24.ref.png | Bin 0 -> 2324 bytes .../close-path-current-point.rgb24.ref.png | Bin 0 -> 2324 bytes test/reference/close-path.argb32.ref.png | Bin 0 -> 294 bytes test/reference/close-path.egl.argb32.ref.png | Bin 0 -> 303 bytes test/reference/close-path.mask.argb32.ref.png | Bin 0 -> 294 bytes test/reference/close-path.mask.rgb24.ref.png | Bin 0 -> 294 bytes test/reference/close-path.rgb24.ref.png | Bin 0 -> 294 bytes ...te-integer-translate-over-repeat.argb32.ref.png | Bin 0 -> 334 bytes ...nteger-translate-over-repeat.egl.argb32.ref.png | Bin 0 -> 334 bytes ...teger-translate-over-repeat.mask.argb32.ref.png | Bin 0 -> 334 bytes ...nteger-translate-over-repeat.mask.rgb24.ref.png | Bin 0 -> 334 bytes ...ite-integer-translate-over-repeat.rgb24.ref.png | Bin 0 -> 334 bytes ...composite-integer-translate-over.argb32.ref.png | Bin 0 -> 13998 bytes ...osite-integer-translate-over.egl.argb32.ref.png | Bin 0 -> 127 bytes ...site-integer-translate-over.mask.argb32.ref.png | Bin 0 -> 13998 bytes ...osite-integer-translate-over.mask.rgb24.ref.png | Bin 0 -> 13998 bytes .../composite-integer-translate-over.rgb24.ref.png | Bin 0 -> 13998 bytes ...mposite-integer-translate-source.argb32.ref.png | Bin 0 -> 13998 bytes ...ite-integer-translate-source.egl.argb32.ref.png | Bin 0 -> 127 bytes ...te-integer-translate-source.mask.argb32.ref.png | Bin 0 -> 13998 bytes ...ite-integer-translate-source.mask.rgb24.ref.png | Bin 0 -> 13998 bytes ...omposite-integer-translate-source.rgb24.ref.png | Bin 0 -> 13998 bytes test/reference/copy-disjoint.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.base.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.base.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.egl.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.mask.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.mask.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.traps.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/copy-disjoint.traps.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/copy-path.argb32.ref.png | Bin 0 -> 616 bytes test/reference/copy-path.egl.argb32.ref.png | Bin 0 -> 563 bytes test/reference/copy-path.mask.argb32.ref.png | Bin 0 -> 616 bytes test/reference/copy-path.mask.rgb24.ref.png | Bin 0 -> 616 bytes test/reference/copy-path.rgb24.ref.png | Bin 0 -> 616 bytes .../create-from-png-stream.argb32.ref.png | Bin 0 -> 96 bytes .../create-from-png-stream.egl.argb32.ref.png | Bin 0 -> 86 bytes .../create-from-png-stream.mask.argb32.ref.png | Bin 0 -> 96 bytes .../create-from-png-stream.mask.rgb24.ref.png | Bin 0 -> 96 bytes .../reference/create-from-png-stream.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/create-from-png.argb32.ref.png | Bin 0 -> 96 bytes test/reference/create-from-png.egl.argb32.ref.png | Bin 0 -> 86 bytes test/reference/create-from-png.mask.argb32.ref.png | Bin 0 -> 96 bytes test/reference/create-from-png.mask.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/create-from-png.rgb24.ref.png | Bin 0 -> 96 bytes .../reference/create-from-png.traps.argb32.ref.png | Bin 0 -> 96 bytes test/reference/create-from-png.traps.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/culled-glyphs.argb32.ref.png | Bin 0 -> 440 bytes test/reference/culled-glyphs.base.argb32.ref.png | Bin 435 -> 440 bytes test/reference/culled-glyphs.base.rgb24.ref.png | Bin 435 -> 440 bytes test/reference/culled-glyphs.mask.argb32.ref.png | Bin 0 -> 440 bytes test/reference/culled-glyphs.mask.rgb24.ref.png | Bin 0 -> 440 bytes test/reference/culled-glyphs.rgb24.ref.png | Bin 0 -> 440 bytes test/reference/culled-glyphs.traps.argb32.ref.png | Bin 435 -> 440 bytes test/reference/culled-glyphs.traps.rgb24.ref.png | Bin 435 -> 440 bytes test/reference/curve-to-as-line-to.argb32.ref.png | Bin 0 -> 109 bytes .../curve-to-as-line-to.egl.argb32.ref.png | Bin 0 -> 109 bytes .../curve-to-as-line-to.mask.argb32.ref.png | Bin 0 -> 109 bytes .../curve-to-as-line-to.mask.rgb24.ref.png | Bin 0 -> 109 bytes test/reference/curve-to-as-line-to.rgb24.ref.png | Bin 0 -> 109 bytes test/reference/dash-caps-joins.argb32.ref.png | Bin 0 -> 5157 bytes test/reference/dash-caps-joins.egl.argb32.ref.png | Bin 0 -> 5273 bytes test/reference/dash-caps-joins.mask.argb32.ref.png | Bin 0 -> 5157 bytes test/reference/dash-caps-joins.mask.rgb24.ref.png | Bin 0 -> 5157 bytes test/reference/dash-caps-joins.rgb24.ref.png | Bin 0 -> 5157 bytes test/reference/dash-curve.argb32.ref.png | Bin 0 -> 41040 bytes test/reference/dash-curve.egl.argb32.ref.png | Bin 0 -> 42857 bytes test/reference/dash-curve.mask.argb32.ref.png | Bin 0 -> 41040 bytes test/reference/dash-curve.mask.rgb24.ref.png | Bin 0 -> 41040 bytes test/reference/dash-curve.rgb24.ref.png | Bin 0 -> 41040 bytes test/reference/dash-infinite-loop.argb32.ref.png | Bin 0 -> 877 bytes .../dash-infinite-loop.egl.argb32.ref.png | Bin 0 -> 702 bytes .../dash-infinite-loop.mask.argb32.ref.png | Bin 0 -> 877 bytes .../dash-infinite-loop.mask.rgb24.ref.png | Bin 0 -> 877 bytes test/reference/dash-infinite-loop.rgb24.ref.png | Bin 0 -> 877 bytes test/reference/dash-no-dash.argb32.ref.png | Bin 0 -> 119 bytes test/reference/dash-no-dash.egl.argb32.ref.png | Bin 0 -> 119 bytes test/reference/dash-no-dash.mask.argb32.ref.png | Bin 0 -> 119 bytes test/reference/dash-no-dash.mask.rgb24.ref.png | Bin 0 -> 119 bytes test/reference/dash-no-dash.rgb24.ref.png | Bin 0 -> 119 bytes test/reference/dash-offset-negative.argb32.ref.png | Bin 0 -> 129 bytes .../dash-offset-negative.egl.argb32.ref.png | Bin 0 -> 129 bytes .../dash-offset-negative.mask.argb32.ref.png | Bin 0 -> 129 bytes .../dash-offset-negative.mask.rgb24.ref.png | Bin 0 -> 129 bytes test/reference/dash-offset-negative.rgb24.ref.png | Bin 0 -> 129 bytes test/reference/dash-offset.argb32.ref.png | Bin 0 -> 794 bytes test/reference/dash-offset.egl.argb32.ref.png | Bin 0 -> 794 bytes test/reference/dash-offset.mask.argb32.ref.png | Bin 0 -> 794 bytes test/reference/dash-offset.mask.rgb24.ref.png | Bin 0 -> 794 bytes test/reference/dash-offset.rgb24.ref.png | Bin 0 -> 794 bytes test/reference/dash-scale.argb32.ref.png | Bin 0 -> 8913 bytes test/reference/dash-scale.egl.argb32.ref.png | Bin 0 -> 8990 bytes test/reference/dash-scale.mask.argb32.ref.png | Bin 0 -> 8913 bytes test/reference/dash-scale.mask.rgb24.ref.png | Bin 0 -> 8913 bytes test/reference/dash-scale.rgb24.ref.png | Bin 0 -> 8913 bytes test/reference/dash-state.argb32.ref.png | Bin 0 -> 8027 bytes test/reference/dash-state.egl.argb32.ref.png | Bin 0 -> 10296 bytes test/reference/dash-state.mask.argb32.ref.png | Bin 0 -> 8027 bytes test/reference/dash-state.mask.rgb24.ref.png | Bin 0 -> 8027 bytes test/reference/dash-state.rgb24.ref.png | Bin 0 -> 8027 bytes test/reference/dash-zero-length.argb32.ref.png | Bin 0 -> 230 bytes test/reference/dash-zero-length.egl.argb32.ref.png | Bin 0 -> 235 bytes .../reference/dash-zero-length.mask.argb32.ref.png | Bin 0 -> 230 bytes test/reference/dash-zero-length.mask.rgb24.ref.png | Bin 0 -> 210 bytes test/reference/dash-zero-length.rgb24.ref.png | Bin 218 -> 210 bytes test/reference/degenerate-arc.egl.argb32.ref.png | Bin 0 -> 675 bytes test/reference/degenerate-arc.mask.argb32.ref.png | Bin 0 -> 653 bytes test/reference/degenerate-arc.mask.rgb24.ref.png | Bin 0 -> 653 bytes test/reference/degenerate-arc.ref.png | Bin 690 -> 646 bytes test/reference/degenerate-arcs.argb32.ref.png | Bin 0 -> 120 bytes test/reference/degenerate-arcs.egl.argb32.ref.png | Bin 0 -> 161 bytes test/reference/degenerate-arcs.mask.argb32.ref.png | Bin 0 -> 120 bytes test/reference/degenerate-arcs.mask.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/degenerate-arcs.rgb24.ref.png | Bin 0 -> 120 bytes test/reference/degenerate-curve-to.argb32.ref.png | Bin 0 -> 280 bytes .../degenerate-curve-to.egl.argb32.ref.png | Bin 0 -> 280 bytes .../degenerate-curve-to.mask.argb32.ref.png | Bin 0 -> 280 bytes .../degenerate-curve-to.mask.rgb24.ref.png | Bin 0 -> 280 bytes test/reference/degenerate-curve-to.rgb24.ref.png | Bin 0 -> 280 bytes test/reference/degenerate-dash.argb32.ref.png | Bin 0 -> 2086 bytes test/reference/degenerate-dash.egl.argb32.ref.png | Bin 0 -> 2182 bytes test/reference/degenerate-dash.mask.argb32.ref.png | Bin 0 -> 2086 bytes test/reference/degenerate-dash.mask.rgb24.ref.png | Bin 0 -> 2086 bytes test/reference/degenerate-dash.rgb24.ref.png | Bin 0 -> 2086 bytes .../degenerate-linear-gradient.argb32.ref.png | Bin 0 -> 336 bytes .../degenerate-linear-gradient.egl.argb32.ref.png | Bin 0 -> 554 bytes .../degenerate-linear-gradient.mask.argb32.ref.png | Bin 0 -> 336 bytes .../degenerate-linear-gradient.mask.rgb24.ref.png | Bin 0 -> 336 bytes .../degenerate-linear-gradient.rgb24.ref.png | Bin 0 -> 336 bytes test/reference/degenerate-path.argb32.ref.png | Bin 253 -> 250 bytes test/reference/degenerate-path.egl.argb32.ref.png | Bin 0 -> 250 bytes test/reference/degenerate-path.mask.argb32.ref.png | Bin 0 -> 250 bytes test/reference/degenerate-path.mask.rgb24.ref.png | Bin 0 -> 219 bytes test/reference/degenerate-path.rgb24.ref.png | Bin 212 -> 219 bytes test/reference/degenerate-pen.argb32.ref.png | Bin 0 -> 1019 bytes test/reference/degenerate-pen.egl.argb32.ref.png | Bin 0 -> 1054 bytes test/reference/degenerate-pen.mask.argb32.ref.png | Bin 0 -> 1019 bytes test/reference/degenerate-pen.mask.rgb24.ref.png | Bin 0 -> 1019 bytes test/reference/degenerate-pen.rgb24.ref.png | Bin 0 -> 1019 bytes .../degenerate-radial-gradient.argb32.ref.png | Bin 0 -> 428 bytes .../degenerate-radial-gradient.egl.argb32.ref.png | Bin 0 -> 428 bytes .../degenerate-radial-gradient.mask.argb32.ref.png | Bin 0 -> 428 bytes .../degenerate-radial-gradient.mask.rgb24.ref.png | Bin 0 -> 428 bytes .../degenerate-radial-gradient.rgb24.ref.png | Bin 0 -> 428 bytes .../degenerate-rel-curve-to.argb32.ref.png | Bin 0 -> 277 bytes .../degenerate-rel-curve-to.egl.argb32.ref.png | Bin 0 -> 277 bytes .../degenerate-rel-curve-to.mask.argb32.ref.png | Bin 0 -> 277 bytes .../degenerate-rel-curve-to.mask.rgb24.ref.png | Bin 0 -> 277 bytes .../degenerate-rel-curve-to.rgb24.ref.png | Bin 0 -> 277 bytes test/reference/degenerate-solid-dash.ref.png | Bin 0 -> 407 bytes .../device-offset-fractional.argb32.ref.png | Bin 0 -> 266 bytes .../device-offset-fractional.egl.argb32.ref.png | Bin 0 -> 275 bytes .../device-offset-fractional.mask.argb32.ref.png | Bin 0 -> 266 bytes .../device-offset-fractional.mask.rgb24.ref.png | Bin 0 -> 266 bytes .../device-offset-fractional.rgb24.ref.png | Bin 0 -> 266 bytes .../device-offset-positive.argb32.ref.png | Bin 0 -> 120 bytes .../device-offset-positive.egl.argb32.ref.png | Bin 0 -> 120 bytes .../device-offset-positive.mask.argb32.ref.png | Bin 0 -> 120 bytes .../device-offset-positive.mask.rgb24.ref.png | Bin 0 -> 111 bytes .../reference/device-offset-positive.rgb24.ref.png | Bin 130 -> 111 bytes test/reference/device-offset-scale.argb32.ref.png | Bin 0 -> 109 bytes .../device-offset-scale.egl.argb32.ref.png | Bin 0 -> 130 bytes .../device-offset-scale.mask.argb32.ref.png | Bin 0 -> 109 bytes .../device-offset-scale.mask.rgb24.ref.png | Bin 0 -> 109 bytes test/reference/device-offset-scale.rgb24.ref.png | Bin 0 -> 109 bytes test/reference/device-offset.argb32.ref.png | Bin 0 -> 118 bytes test/reference/device-offset.egl.argb32.ref.png | Bin 0 -> 118 bytes test/reference/device-offset.mask.argb32.ref.png | Bin 0 -> 118 bytes test/reference/device-offset.mask.rgb24.ref.png | Bin 0 -> 111 bytes test/reference/device-offset.rgb24.ref.png | Bin 130 -> 111 bytes test/reference/drunkard-tails.argb32.ref.png | Bin 0 -> 6116 bytes test/reference/drunkard-tails.egl.argb32.ref.png | Bin 0 -> 6138 bytes test/reference/drunkard-tails.mask.argb32.ref.png | Bin 0 -> 6116 bytes test/reference/drunkard-tails.mask.rgb24.ref.png | Bin 0 -> 6116 bytes test/reference/drunkard-tails.rgb24.ref.png | Bin 0 -> 6116 bytes test/reference/extend-pad-border.argb32.ref.png | Bin 0 -> 495 bytes .../reference/extend-pad-border.egl.argb32.ref.png | Bin 0 -> 545 bytes .../extend-pad-border.mask.argb32.ref.png | Bin 0 -> 495 bytes .../reference/extend-pad-border.mask.rgb24.ref.png | Bin 0 -> 495 bytes test/reference/extend-pad-border.rgb24.ref.png | Bin 0 -> 495 bytes test/reference/extend-pad-similar.argb32.ref.png | Bin 0 -> 279 bytes .../extend-pad-similar.egl.argb32.ref.png | Bin 0 -> 279 bytes .../extend-pad-similar.mask.argb32.ref.png | Bin 0 -> 279 bytes .../extend-pad-similar.mask.rgb24.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad-similar.rgb24.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad.argb32.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad.egl.argb32.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad.mask.argb32.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad.mask.rgb24.ref.png | Bin 0 -> 279 bytes test/reference/extend-pad.rgb24.ref.png | Bin 0 -> 279 bytes .../extend-reflect-similar.argb32.ref.png | Bin 0 -> 133406 bytes .../extend-reflect-similar.egl.argb32.ref.png | Bin 0 -> 336 bytes .../extend-reflect-similar.mask.argb32.ref.png | Bin 0 -> 133406 bytes .../extend-reflect-similar.mask.rgb24.ref.png | Bin 0 -> 133406 bytes .../reference/extend-reflect-similar.rgb24.ref.png | Bin 0 -> 133406 bytes test/reference/extend-reflect.argb32.ref.png | Bin 0 -> 133406 bytes test/reference/extend-reflect.egl.argb32.ref.png | Bin 0 -> 133964 bytes test/reference/extend-reflect.mask.argb32.ref.png | Bin 0 -> 133406 bytes test/reference/extend-reflect.mask.rgb24.ref.png | Bin 0 -> 133406 bytes test/reference/extend-reflect.rgb24.ref.png | Bin 0 -> 133406 bytes .../reference/extend-repeat-similar.argb32.ref.png | Bin 0 -> 108603 bytes .../extend-repeat-similar.egl.argb32.ref.png | Bin 0 -> 336 bytes .../extend-repeat-similar.mask.argb32.ref.png | Bin 0 -> 108603 bytes .../extend-repeat-similar.mask.rgb24.ref.png | Bin 0 -> 108603 bytes test/reference/extend-repeat-similar.rgb24.ref.png | Bin 0 -> 108603 bytes test/reference/extend-repeat.argb32.ref.png | Bin 0 -> 108603 bytes test/reference/extend-repeat.egl.argb32.ref.png | Bin 0 -> 108791 bytes test/reference/extend-repeat.mask.argb32.ref.png | Bin 0 -> 108603 bytes test/reference/extend-repeat.mask.rgb24.ref.png | Bin 0 -> 108603 bytes test/reference/extend-repeat.rgb24.ref.png | Bin 0 -> 108603 bytes .../extended-blend-alpha-mask.egl.argb32.ref.png | Bin 0 -> 23536 bytes .../extended-blend-alpha-mask.mask.argb32.ref.png | Bin 0 -> 9221 bytes .../extended-blend-alpha-mask.mask.rgb24.ref.png | Bin 0 -> 4597 bytes .../extended-blend-alpha.egl.argb32.ref.png | Bin 0 -> 23591 bytes .../extended-blend-alpha.mask.argb32.ref.png | Bin 0 -> 9406 bytes .../extended-blend-alpha.mask.rgb24.ref.png | Bin 0 -> 5740 bytes .../extended-blend-mask.egl.argb32.ref.png | Bin 0 -> 13332 bytes .../extended-blend-mask.mask.argb32.ref.png | Bin 0 -> 3971 bytes .../extended-blend-mask.mask.rgb24.ref.png | Bin 0 -> 3643 bytes .../extended-blend-solid-alpha.egl.argb32.ref.png | Bin 0 -> 18249 bytes .../extended-blend-solid-alpha.mask.argb32.ref.png | Bin 0 -> 9406 bytes .../extended-blend-solid-alpha.mask.rgb24.ref.png | Bin 0 -> 5740 bytes test/reference/extended-blend-solid.argb32.ref.png | Bin 4071 -> 4063 bytes .../extended-blend-solid.egl.argb32.ref.png | Bin 0 -> 9719 bytes .../extended-blend-solid.mask.argb32.ref.png | Bin 0 -> 4063 bytes .../extended-blend-solid.mask.rgb24.ref.png | Bin 0 -> 3775 bytes test/reference/extended-blend.argb32.ref.png | Bin 4071 -> 4063 bytes test/reference/extended-blend.egl.argb32.ref.png | Bin 0 -> 12545 bytes test/reference/extended-blend.mask.argb32.ref.png | Bin 0 -> 4063 bytes test/reference/extended-blend.mask.rgb24.ref.png | Bin 0 -> 3775 bytes .../fallback-resolution.ppi144x144.ref.png | Bin 8697 -> 8746 bytes .../fallback-resolution.ppi144x72.ref.png | Bin 8445 -> 8531 bytes .../fallback-resolution.ppi288x72.ref.png | Bin 7166 -> 7203 bytes .../fallback-resolution.ppi576x72.ref.png | Bin 6432 -> 6457 bytes .../fallback-resolution.ppi72x144.ref.png | Bin 8677 -> 8710 bytes .../fallback-resolution.ppi72x288.ref.png | Bin 7231 -> 7224 bytes .../fallback-resolution.ppi72x576.ref.png | Bin 6523 -> 6604 bytes .../reference/fallback-resolution.ppi72x72.ref.png | Bin 8510 -> 8579 bytes test/reference/fallback.argb32.ref.png | Bin 0 -> 4059 bytes test/reference/fallback.base.argb32.ref.png | Bin 0 -> 4156 bytes test/reference/fallback.base.rgb24.ref.png | Bin 0 -> 3332 bytes test/reference/fallback.egl.argb32.ref.png | Bin 0 -> 4299 bytes test/reference/fallback.image16.rgb24.ref.png | Bin 0 -> 2642 bytes test/reference/fallback.mask.argb32.ref.png | Bin 0 -> 4070 bytes test/reference/fallback.mask.rgb24.ref.png | Bin 0 -> 3141 bytes test/reference/fallback.rgb24.ref.png | Bin 0 -> 3139 bytes test/reference/fallback.traps.argb32.ref.png | Bin 0 -> 4070 bytes test/reference/fallback.traps.rgb24.ref.png | Bin 0 -> 3141 bytes test/reference/fill-alpha-pattern.argb32.ref.png | Bin 0 -> 3381 bytes .../fill-alpha-pattern.egl.argb32.ref.png | Bin 0 -> 4320 bytes .../fill-alpha-pattern.mask.argb32.ref.png | Bin 0 -> 3381 bytes .../fill-alpha-pattern.mask.rgb24.ref.png | Bin 0 -> 3381 bytes test/reference/fill-alpha-pattern.rgb24.ref.png | Bin 0 -> 3381 bytes test/reference/fill-alpha.argb32.ref.png | Bin 0 -> 2736 bytes test/reference/fill-alpha.egl.argb32.ref.png | Bin 0 -> 2902 bytes test/reference/fill-alpha.mask.argb32.ref.png | Bin 0 -> 2736 bytes test/reference/fill-alpha.mask.rgb24.ref.png | Bin 0 -> 2736 bytes test/reference/fill-alpha.rgb24.ref.png | Bin 0 -> 2736 bytes .../fill-and-stroke-alpha-add.argb32.ref.png | Bin 0 -> 556 bytes .../fill-and-stroke-alpha-add.egl.argb32.ref.png | Bin 0 -> 665 bytes .../fill-and-stroke-alpha-add.mask.argb32.ref.png | Bin 0 -> 556 bytes .../fill-and-stroke-alpha-add.mask.rgb24.ref.png | Bin 0 -> 556 bytes .../fill-and-stroke-alpha-add.rgb24.ref.png | Bin 0 -> 556 bytes .../reference/fill-and-stroke-alpha.argb32.ref.png | Bin 0 -> 508 bytes .../fill-and-stroke-alpha.egl.argb32.ref.png | Bin 0 -> 565 bytes .../fill-and-stroke-alpha.mask.argb32.ref.png | Bin 0 -> 508 bytes .../fill-and-stroke-alpha.mask.rgb24.ref.png | Bin 0 -> 508 bytes test/reference/fill-and-stroke-alpha.rgb24.ref.png | Bin 0 -> 508 bytes test/reference/fill-and-stroke.argb32.ref.png | Bin 269 -> 312 bytes test/reference/fill-and-stroke.egl.argb32.ref.png | Bin 0 -> 318 bytes test/reference/fill-and-stroke.mask.argb32.ref.png | Bin 0 -> 312 bytes test/reference/fill-and-stroke.mask.rgb24.ref.png | Bin 0 -> 283 bytes test/reference/fill-and-stroke.rgb24.ref.png | Bin 252 -> 283 bytes .../fill-degenerate-sort-order.argb32.ref.png | Bin 1929 -> 2400 bytes .../fill-degenerate-sort-order.egl.argb32.ref.png | Bin 0 -> 2430 bytes .../fill-degenerate-sort-order.mask.argb32.ref.png | Bin 0 -> 2400 bytes .../fill-degenerate-sort-order.mask.rgb24.ref.png | Bin 0 -> 2049 bytes .../fill-degenerate-sort-order.rgb24.ref.png | Bin 1689 -> 2049 bytes test/reference/fill-disjoint.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.base.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.base.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.egl.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.mask.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.mask.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.traps.argb32.ref.png | Bin 0 -> 1098 bytes test/reference/fill-disjoint.traps.rgb24.ref.png | Bin 0 -> 1098 bytes test/reference/fill-empty.egl.argb32.ref.png | Bin 0 -> 99 bytes test/reference/fill-empty.mask.argb32.ref.png | Bin 0 -> 99 bytes test/reference/fill-empty.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/fill-image.argb32.ref.png | Bin 0 -> 1315 bytes test/reference/fill-image.base.argb32.ref.png | Bin 1455 -> 1458 bytes test/reference/fill-image.base.rgb24.ref.png | Bin 1455 -> 1458 bytes test/reference/fill-image.egl.argb32.ref.png | Bin 0 -> 1463 bytes test/reference/fill-image.mask.argb32.ref.png | Bin 0 -> 1315 bytes test/reference/fill-image.mask.rgb24.ref.png | Bin 0 -> 1315 bytes test/reference/fill-image.rgb24.ref.png | Bin 0 -> 1315 bytes test/reference/fill-image.traps.argb32.ref.png | Bin 1455 -> 1458 bytes test/reference/fill-image.traps.rgb24.ref.png | Bin 1455 -> 1458 bytes test/reference/fill-missed-stop.argb32.ref.png | Bin 0 -> 455 bytes test/reference/fill-missed-stop.egl.argb32.ref.png | Bin 0 -> 459 bytes .../reference/fill-missed-stop.mask.argb32.ref.png | Bin 0 -> 455 bytes test/reference/fill-missed-stop.mask.rgb24.ref.png | Bin 0 -> 382 bytes test/reference/fill-missed-stop.rgb24.ref.png | Bin 382 -> 382 bytes test/reference/fill-rule.argb32.ref.png | Bin 0 -> 2065 bytes test/reference/fill-rule.egl.argb32.ref.png | Bin 0 -> 2261 bytes test/reference/fill-rule.mask.argb32.ref.png | Bin 0 -> 2065 bytes test/reference/fill-rule.mask.rgb24.ref.png | Bin 0 -> 1803 bytes test/reference/fill-rule.rgb24.ref.png | Bin 1591 -> 1803 bytes test/reference/fill-xlib-fallback.rgb24.ref.png | Bin 0 -> 1458 bytes test/reference/fill-xlib-window.rgb24.ref.png | Bin 0 -> 1458 bytes test/reference/fill-xlib.argb32.ref.png | Bin 0 -> 1458 bytes test/reference/fill-xlib.rgb24.ref.png | Bin 0 -> 1458 bytes .../filter-bilinear-extents.argb32.ref.png | Bin 0 -> 1210 bytes .../filter-bilinear-extents.egl.argb32.ref.png | Bin 0 -> 1217 bytes .../filter-bilinear-extents.mask.argb32.ref.png | Bin 0 -> 1210 bytes .../filter-bilinear-extents.mask.rgb24.ref.png | Bin 0 -> 1210 bytes .../filter-bilinear-extents.rgb24.ref.png | Bin 0 -> 1210 bytes .../reference/filter-nearest-offset.argb32.ref.png | Bin 0 -> 201 bytes .../filter-nearest-offset.egl.argb32.ref.png | Bin 0 -> 369 bytes .../filter-nearest-offset.mask.argb32.ref.png | Bin 0 -> 201 bytes .../filter-nearest-offset.mask.rgb24.ref.png | Bin 0 -> 201 bytes test/reference/filter-nearest-offset.rgb24.ref.png | Bin 0 -> 201 bytes .../filter-nearest-transformed.argb32.ref.png | Bin 0 -> 514 bytes .../filter-nearest-transformed.egl.argb32.ref.png | Bin 0 -> 460 bytes .../filter-nearest-transformed.mask.argb32.ref.png | Bin 0 -> 514 bytes .../filter-nearest-transformed.mask.rgb24.ref.png | Bin 0 -> 514 bytes .../filter-nearest-transformed.rgb24.ref.png | Bin 0 -> 514 bytes .../finer-grained-fallbacks.argb32.ref.png | Bin 993 -> 1068 bytes .../finer-grained-fallbacks.egl.argb32.ref.png | Bin 0 -> 1128 bytes .../finer-grained-fallbacks.mask.argb32.ref.png | Bin 0 -> 1167 bytes .../finer-grained-fallbacks.mask.rgb24.ref.png | Bin 0 -> 891 bytes .../finer-grained-fallbacks.rgb24.ref.png | Bin 786 -> 837 bytes .../font-matrix-translation.argb32.ref.png | Bin 0 -> 865 bytes .../font-matrix-translation.base.argb32.ref.png | Bin 874 -> 865 bytes .../font-matrix-translation.base.rgb24.ref.png | Bin 874 -> 865 bytes .../font-matrix-translation.mask.argb32.ref.png | Bin 0 -> 865 bytes .../font-matrix-translation.mask.rgb24.ref.png | Bin 0 -> 865 bytes .../font-matrix-translation.rgb24.ref.png | Bin 0 -> 865 bytes .../font-matrix-translation.traps.argb32.ref.png | Bin 874 -> 865 bytes .../font-matrix-translation.traps.ref.png | Bin 0 -> 865 bytes .../font-matrix-translation.traps.rgb24.ref.png | Bin 874 -> 865 bytes .../ft-show-glyphs-positioning.argb32.ref.png | Bin 0 -> 3243 bytes .../ft-show-glyphs-positioning.base.argb32.ref.png | Bin 3297 -> 3243 bytes .../ft-show-glyphs-positioning.base.rgb24.ref.png | Bin 3297 -> 3243 bytes .../ft-show-glyphs-positioning.mask.argb32.ref.png | Bin 0 -> 3243 bytes .../ft-show-glyphs-positioning.mask.rgb24.ref.png | Bin 0 -> 3243 bytes .../ft-show-glyphs-positioning.rgb24.ref.png | Bin 0 -> 3243 bytes ...ft-show-glyphs-positioning.traps.argb32.ref.png | Bin 3297 -> 3243 bytes .../ft-show-glyphs-positioning.traps.ref.png | Bin 0 -> 3243 bytes .../ft-show-glyphs-positioning.traps.rgb24.ref.png | Bin 3297 -> 3243 bytes test/reference/ft-show-glyphs-table.argb32.ref.png | Bin 0 -> 9975 bytes .../ft-show-glyphs-table.base.argb32.ref.png | Bin 9893 -> 9975 bytes .../ft-show-glyphs-table.base.rgb24.ref.png | Bin 9893 -> 9975 bytes .../ft-show-glyphs-table.mask.argb32.ref.png | Bin 0 -> 9975 bytes .../ft-show-glyphs-table.mask.rgb24.ref.png | Bin 0 -> 9975 bytes test/reference/ft-show-glyphs-table.rgb24.ref.png | Bin 0 -> 9975 bytes .../ft-show-glyphs-table.traps.argb32.ref.png | Bin 9893 -> 9975 bytes test/reference/ft-show-glyphs-table.traps.ref.png | Bin 0 -> 9975 bytes .../ft-show-glyphs-table.traps.rgb24.ref.png | Bin 9893 -> 9975 bytes .../ft-text-antialias-none.argb32.ref.png | Bin 0 -> 295 bytes .../ft-text-antialias-none.mask.argb32.ref.png | Bin 0 -> 295 bytes .../ft-text-antialias-none.mask.rgb24.ref.png | Bin 0 -> 295 bytes .../reference/ft-text-antialias-none.rgb24.ref.png | Bin 0 -> 295 bytes .../ft-text-vertical-layout-type1.argb32.ref.png | Bin 0 -> 3062 bytes ...-text-vertical-layout-type1.mask.argb32.ref.png | Bin 0 -> 3062 bytes ...t-text-vertical-layout-type1.mask.rgb24.ref.png | Bin 0 -> 3062 bytes .../ft-text-vertical-layout-type1.rgb24.ref.png | Bin 0 -> 3062 bytes .../ft-text-vertical-layout-type3.argb32.ref.png | Bin 0 -> 3610 bytes ...-text-vertical-layout-type3.mask.argb32.ref.png | Bin 0 -> 3610 bytes ...t-text-vertical-layout-type3.mask.rgb24.ref.png | Bin 0 -> 3610 bytes .../ft-text-vertical-layout-type3.rgb24.ref.png | Bin 0 -> 3610 bytes test/reference/get-group-target.argb32.ref.png | Bin 0 -> 113 bytes test/reference/get-group-target.egl.argb32.ref.png | Bin 0 -> 113 bytes .../reference/get-group-target.mask.argb32.ref.png | Bin 0 -> 113 bytes test/reference/get-group-target.mask.rgb24.ref.png | Bin 0 -> 113 bytes test/reference/get-group-target.rgb24.ref.png | Bin 0 -> 113 bytes .../gl-surface-source.base.argb32.ref.png | Bin 0 -> 377 bytes .../reference/gl-surface-source.base.rgb24.ref.png | Bin 0 -> 301 bytes .../gl-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../reference/gl-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes .../gl-surface-source.traps.argb32.ref.png | Bin 0 -> 377 bytes .../gl-surface-source.traps.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/glyph-cache-pressure.argb32.ref.png | Bin 0 -> 2858 bytes .../glyph-cache-pressure.base.argb32.ref.png | Bin 2863 -> 2858 bytes .../glyph-cache-pressure.base.rgb24.ref.png | Bin 2863 -> 2858 bytes .../glyph-cache-pressure.mask.argb32.ref.png | Bin 0 -> 2858 bytes .../glyph-cache-pressure.mask.rgb24.ref.png | Bin 0 -> 2858 bytes test/reference/glyph-cache-pressure.rgb24.ref.png | Bin 0 -> 2858 bytes .../glyph-cache-pressure.traps.argb32.ref.png | Bin 2863 -> 2858 bytes test/reference/glyph-cache-pressure.traps.ref.png | Bin 0 -> 2858 bytes .../glyph-cache-pressure.traps.rgb24.ref.png | Bin 2863 -> 2858 bytes test/reference/gradient-alpha.argb32.ref.png | Bin 0 -> 125 bytes test/reference/gradient-alpha.egl.argb32.ref.png | Bin 0 -> 192 bytes test/reference/gradient-alpha.mask.argb32.ref.png | Bin 0 -> 125 bytes test/reference/gradient-alpha.mask.rgb24.ref.png | Bin 0 -> 119 bytes .../gradient-constant-alpha.argb32.ref.png | Bin 0 -> 111 bytes .../gradient-constant-alpha.egl.argb32.ref.png | Bin 0 -> 165 bytes .../gradient-constant-alpha.mask.argb32.ref.png | Bin 0 -> 111 bytes .../gradient-constant-alpha.mask.rgb24.ref.png | Bin 0 -> 106 bytes .../gradient-zero-stops-mask.egl.argb32.ref.png | Bin 0 -> 86 bytes .../gradient-zero-stops-mask.mask.argb32.ref.png | Bin 0 -> 86 bytes .../gradient-zero-stops-mask.mask.rgb24.ref.png | Bin 0 -> 86 bytes test/reference/gradient-zero-stops.argb32.ref.png | Bin 0 -> 86 bytes .../gradient-zero-stops.egl.argb32.ref.png | Bin 0 -> 86 bytes .../gradient-zero-stops.mask.argb32.ref.png | Bin 0 -> 86 bytes .../gradient-zero-stops.mask.rgb24.ref.png | Bin 0 -> 86 bytes test/reference/gradient-zero-stops.rgb24.ref.png | Bin 105 -> 86 bytes test/reference/group-clip.argb32.ref.png | Bin 0 -> 191 bytes test/reference/group-clip.egl.argb32.ref.png | Bin 0 -> 200 bytes test/reference/group-clip.mask.argb32.ref.png | Bin 0 -> 191 bytes test/reference/group-clip.mask.rgb24.ref.png | Bin 0 -> 191 bytes test/reference/group-clip.rgb24.ref.png | Bin 0 -> 191 bytes test/reference/group-paint.argb32.ref.png | Bin 0 -> 95 bytes test/reference/group-paint.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/group-paint.mask.argb32.ref.png | Bin 0 -> 95 bytes test/reference/group-paint.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/group-paint.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/group-unaligned.argb32.ref.png | Bin 0 -> 427 bytes test/reference/group-unaligned.egl.argb32.ref.png | Bin 0 -> 441 bytes test/reference/group-unaligned.mask.argb32.ref.png | Bin 0 -> 427 bytes test/reference/group-unaligned.mask.rgb24.ref.png | Bin 0 -> 427 bytes test/reference/group-unaligned.rgb24.ref.png | Bin 0 -> 427 bytes test/reference/halo-transform.argb32.ref.png | Bin 0 -> 15063 bytes test/reference/halo-transform.base.argb32.ref.png | Bin 15118 -> 15122 bytes test/reference/halo-transform.base.rgb24.ref.png | Bin 15118 -> 15122 bytes test/reference/halo-transform.mask.argb32.ref.png | Bin 0 -> 15063 bytes test/reference/halo-transform.mask.rgb24.ref.png | Bin 0 -> 15063 bytes test/reference/halo-transform.rgb24.ref.png | Bin 0 -> 15063 bytes test/reference/halo-transform.traps.argb32.ref.png | Bin 15118 -> 15063 bytes test/reference/halo-transform.traps.ref.png | Bin 0 -> 15122 bytes test/reference/halo-transform.traps.rgb24.ref.png | Bin 15118 -> 15063 bytes test/reference/halo.argb32.ref.png | Bin 0 -> 8726 bytes test/reference/halo.base.argb32.ref.png | Bin 8800 -> 8594 bytes test/reference/halo.base.rgb24.ref.png | Bin 8800 -> 8594 bytes test/reference/halo.mask.argb32.ref.png | Bin 0 -> 8726 bytes test/reference/halo.mask.rgb24.ref.png | Bin 0 -> 8726 bytes test/reference/halo.rgb24.ref.png | Bin 0 -> 8726 bytes test/reference/halo.traps.argb32.ref.png | Bin 8800 -> 8726 bytes test/reference/halo.traps.ref.png | Bin 0 -> 8594 bytes test/reference/halo.traps.rgb24.ref.png | Bin 8800 -> 8726 bytes test/reference/hatchings.base.argb32.ref.png | Bin 90611 -> 94196 bytes test/reference/hatchings.base.rgb24.ref.png | Bin 90611 -> 94196 bytes test/reference/hatchings.egl.argb32.ref.png | Bin 0 -> 100946 bytes test/reference/hatchings.mask.argb32.ref.png | Bin 0 -> 94631 bytes test/reference/hatchings.mask.rgb24.ref.png | Bin 0 -> 94631 bytes test/reference/hatchings.ref.png | Bin 46499 -> 95333 bytes test/reference/horizontal-clip.argb32.ref.png | Bin 0 -> 113 bytes test/reference/horizontal-clip.egl.argb32.ref.png | Bin 0 -> 113 bytes test/reference/horizontal-clip.mask.argb32.ref.png | Bin 0 -> 113 bytes test/reference/horizontal-clip.mask.rgb24.ref.png | Bin 0 -> 113 bytes test/reference/horizontal-clip.rgb24.ref.png | Bin 0 -> 113 bytes test/reference/huge-linear.argb32.ref.png | Bin 0 -> 1600 bytes test/reference/huge-linear.egl.argb32.ref.png | Bin 0 -> 3627 bytes test/reference/huge-linear.mask.argb32.ref.png | Bin 0 -> 1600 bytes test/reference/huge-linear.mask.rgb24.ref.png | Bin 0 -> 1600 bytes test/reference/huge-linear.rgb24.ref.png | Bin 0 -> 1600 bytes test/reference/huge-radial.argb32.ref.png | Bin 0 -> 41702 bytes test/reference/huge-radial.egl.argb32.ref.png | Bin 0 -> 62629 bytes test/reference/huge-radial.mask.argb32.ref.png | Bin 0 -> 41702 bytes test/reference/huge-radial.mask.rgb24.ref.png | Bin 0 -> 41702 bytes test/reference/huge-radial.rgb24.ref.png | Bin 0 -> 41702 bytes .../image-bug-710072-aligned.argb32.ref.png | Bin 0 -> 151 bytes .../image-bug-710072-aligned.egl.argb32.ref.png | Bin 0 -> 192 bytes .../image-bug-710072-aligned.mask.argb32.ref.png | Bin 0 -> 151 bytes .../image-bug-710072-aligned.mask.rgb24.ref.png | Bin 0 -> 151 bytes .../image-bug-710072-aligned.rgb24.ref.png | Bin 0 -> 151 bytes ...-bug-710072-aligned.xlib-fallback.rgb24.ref.png | Bin 0 -> 151 bytes ...ge-bug-710072-aligned.xlib-window.rgb24.ref.png | Bin 0 -> 151 bytes .../image-bug-710072-unaligned.argb32.ref.png | Bin 0 -> 212 bytes .../image-bug-710072-unaligned.egl.argb32.ref.png | Bin 0 -> 238 bytes .../image-bug-710072-unaligned.mask.argb32.ref.png | Bin 0 -> 212 bytes .../image-bug-710072-unaligned.mask.rgb24.ref.png | Bin 0 -> 212 bytes .../image-bug-710072-unaligned.rgb24.ref.png | Bin 0 -> 212 bytes ...ug-710072-unaligned.xlib-fallback.rgb24.ref.png | Bin 0 -> 219 bytes ...-bug-710072-unaligned.xlib-window.rgb24.ref.png | Bin 0 -> 219 bytes .../image-surface-source.egl.argb32.ref.png | Bin 0 -> 125 bytes .../image-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../image-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes ...mage-surface-source.xlib-fallback.rgb24.ref.png | Bin 0 -> 301 bytes .../image-surface-source.xlib-window.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/implicit-close.argb32.ref.png | Bin 0 -> 251 bytes test/reference/implicit-close.egl.argb32.ref.png | Bin 0 -> 251 bytes test/reference/implicit-close.mask.argb32.ref.png | Bin 0 -> 251 bytes test/reference/implicit-close.mask.rgb24.ref.png | Bin 0 -> 251 bytes test/reference/implicit-close.rgb24.ref.png | Bin 0 -> 251 bytes test/reference/infinite-join.argb32.ref.png | Bin 0 -> 164 bytes test/reference/infinite-join.egl.argb32.ref.png | Bin 0 -> 164 bytes test/reference/infinite-join.mask.argb32.ref.png | Bin 0 -> 164 bytes test/reference/infinite-join.mask.rgb24.ref.png | Bin 0 -> 164 bytes test/reference/infinite-join.rgb24.ref.png | Bin 0 -> 164 bytes test/reference/inverse-text.base.argb32.ref.png | Bin 2166 -> 2162 bytes test/reference/inverse-text.base.rgb24.ref.png | Bin 2166 -> 2162 bytes test/reference/inverse-text.mask.argb32.ref.png | Bin 0 -> 2162 bytes test/reference/inverse-text.mask.rgb24.ref.png | Bin 0 -> 2162 bytes test/reference/inverse-text.traps.argb32.ref.png | Bin 2166 -> 2162 bytes test/reference/inverse-text.traps.ref.png | Bin 0 -> 2162 bytes test/reference/inverse-text.traps.rgb24.ref.png | Bin 2166 -> 2162 bytes test/reference/inverted-clip.base.xfail.png | Bin 0 -> 1293 bytes test/reference/inverted-clip.traps.xfail.png | Bin 0 -> 1283 bytes test/reference/inverted-clip.xfail.png | Bin 0 -> 1293 bytes test/reference/joins-loop.argb32.ref.png | Bin 0 -> 4492 bytes test/reference/joins-loop.egl.argb32.ref.png | Bin 0 -> 4827 bytes test/reference/joins-loop.mask.argb32.ref.png | Bin 0 -> 4492 bytes test/reference/joins-loop.mask.rgb24.ref.png | Bin 0 -> 4492 bytes test/reference/joins-loop.rgb24.ref.png | Bin 0 -> 4492 bytes test/reference/joins-retrace.argb32.ref.png | Bin 0 -> 4997 bytes test/reference/joins-retrace.egl.argb32.ref.png | Bin 0 -> 5230 bytes test/reference/joins-retrace.mask.argb32.ref.png | Bin 0 -> 4997 bytes test/reference/joins-retrace.mask.rgb24.ref.png | Bin 0 -> 4997 bytes test/reference/joins-retrace.rgb24.ref.png | Bin 0 -> 4997 bytes test/reference/joins-star.argb32.ref.png | Bin 0 -> 4914 bytes test/reference/joins-star.egl.argb32.ref.png | Bin 0 -> 5079 bytes test/reference/joins-star.mask.argb32.ref.png | Bin 0 -> 4914 bytes test/reference/joins-star.mask.rgb24.ref.png | Bin 0 -> 4914 bytes test/reference/joins-star.rgb24.ref.png | Bin 0 -> 4914 bytes test/reference/joins.argb32.ref.png | Bin 0 -> 6970 bytes test/reference/joins.egl.argb32.ref.png | Bin 0 -> 7177 bytes test/reference/joins.mask.argb32.ref.png | Bin 0 -> 6970 bytes test/reference/joins.mask.rgb24.ref.png | Bin 0 -> 6970 bytes test/reference/joins.rgb24.ref.png | Bin 0 -> 6970 bytes test/reference/large-clip.argb32.ref.png | Bin 0 -> 305 bytes test/reference/large-clip.egl.argb32.ref.png | Bin 0 -> 305 bytes test/reference/large-clip.mask.argb32.ref.png | Bin 0 -> 305 bytes test/reference/large-clip.mask.rgb24.ref.png | Bin 0 -> 305 bytes test/reference/large-clip.rgb24.ref.png | Bin 0 -> 305 bytes test/reference/large-font.argb32.ref.png | Bin 0 -> 6117 bytes test/reference/large-font.egl.argb32.ref.png | Bin 0 -> 3705 bytes test/reference/large-font.mask.argb32.ref.png | Bin 0 -> 6117 bytes test/reference/large-font.mask.rgb24.ref.png | Bin 0 -> 6117 bytes test/reference/large-font.rgb24.ref.png | Bin 0 -> 6117 bytes test/reference/large-source-roi.argb32.ref.png | Bin 0 -> 93 bytes test/reference/large-source-roi.egl.argb32.ref.png | Bin 0 -> 93 bytes .../reference/large-source-roi.mask.argb32.ref.png | Bin 0 -> 93 bytes test/reference/large-source-roi.mask.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/large-source-roi.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/large-source.argb32.ref.png | Bin 0 -> 112 bytes test/reference/large-source.egl.argb32.ref.png | Bin 0 -> 112 bytes test/reference/large-source.mask.argb32.ref.png | Bin 0 -> 112 bytes test/reference/large-source.mask.rgb24.ref.png | Bin 0 -> 112 bytes test/reference/large-source.rgb24.ref.png | Bin 0 -> 112 bytes .../large-twin-antialias-mixed.argb32.ref.png | Bin 0 -> 16660 bytes .../large-twin-antialias-mixed.base.argb32.ref.png | Bin 10740 -> 16660 bytes .../large-twin-antialias-mixed.base.rgb24.ref.png | Bin 10740 -> 16660 bytes .../large-twin-antialias-mixed.egl.argb32.ref.png | Bin 0 -> 16785 bytes .../large-twin-antialias-mixed.mask.argb32.ref.png | Bin 0 -> 16660 bytes .../large-twin-antialias-mixed.mask.rgb24.ref.png | Bin 0 -> 16660 bytes .../large-twin-antialias-mixed.rgb24.ref.png | Bin 0 -> 16660 bytes ...large-twin-antialias-mixed.traps.argb32.ref.png | Bin 10740 -> 16660 bytes .../large-twin-antialias-mixed.traps.rgb24.ref.png | Bin 10740 -> 16660 bytes test/reference/leaky-dash.argb32.ref.png | Bin 0 -> 197 bytes test/reference/leaky-dash.egl.argb32.ref.png | Bin 0 -> 197 bytes test/reference/leaky-dash.mask.argb32.ref.png | Bin 0 -> 197 bytes test/reference/leaky-dash.mask.rgb24.ref.png | Bin 0 -> 197 bytes test/reference/leaky-dash.rgb24.ref.png | Bin 0 -> 197 bytes .../leaky-dashed-rectangle.argb32.ref.png | Bin 0 -> 357 bytes .../leaky-dashed-rectangle.egl.argb32.ref.png | Bin 0 -> 356 bytes .../leaky-dashed-rectangle.mask.argb32.ref.png | Bin 0 -> 357 bytes .../leaky-dashed-rectangle.mask.rgb24.ref.png | Bin 0 -> 357 bytes .../reference/leaky-dashed-rectangle.rgb24.ref.png | Bin 0 -> 357 bytes test/reference/leaky-dashed-stroke.argb32.ref.png | Bin 0 -> 9387 bytes .../leaky-dashed-stroke.egl.argb32.ref.png | Bin 0 -> 9487 bytes .../leaky-dashed-stroke.mask.argb32.ref.png | Bin 0 -> 9387 bytes .../leaky-dashed-stroke.mask.rgb24.ref.png | Bin 0 -> 9387 bytes test/reference/leaky-dashed-stroke.rgb24.ref.png | Bin 0 -> 9387 bytes test/reference/leaky-polygon.argb32.ref.png | Bin 0 -> 337 bytes test/reference/leaky-polygon.egl.argb32.ref.png | Bin 0 -> 337 bytes test/reference/leaky-polygon.mask.argb32.ref.png | Bin 0 -> 337 bytes test/reference/leaky-polygon.mask.rgb24.ref.png | Bin 0 -> 337 bytes test/reference/leaky-polygon.rgb24.ref.png | Bin 0 -> 337 bytes ...-width-large-overlap-dashed.base.argb32.ref.png | Bin 0 -> 338 bytes ...e-width-large-overlap-dashed.base.rgb24.ref.png | Bin 0 -> 338 bytes ...e-width-large-overlap-dashed.egl.argb32.ref.png | Bin 0 -> 340 bytes ...-width-large-overlap-dashed.mask.argb32.ref.png | Bin 0 -> 343 bytes ...e-width-large-overlap-dashed.mask.rgb24.ref.png | Bin 0 -> 343 bytes .../line-width-large-overlap-dashed.ref.png | Bin 338 -> 340 bytes ...width-large-overlap-dashed.traps.argb32.ref.png | Bin 0 -> 343 bytes ...-width-large-overlap-dashed.traps.rgb24.ref.png | Bin 0 -> 343 bytes ...line-width-large-overlap-flipped.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flipped.base.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flipped.base.rgb24.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flipped.egl.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flipped.mask.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flipped.mask.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap-flipped.rgb24.ref.png | Bin 0 -> 305 bytes ...idth-large-overlap-flipped.traps.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flipped.traps.rgb24.ref.png | Bin 0 -> 305 bytes ...line-width-large-overlap-flopped.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flopped.base.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flopped.base.rgb24.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flopped.egl.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flopped.mask.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-flopped.mask.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap-flopped.rgb24.ref.png | Bin 0 -> 305 bytes ...idth-large-overlap-flopped.traps.argb32.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-flopped.traps.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap-offset.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-offset.base.argb32.ref.png | Bin 0 -> 305 bytes ...e-width-large-overlap-offset.base.rgb24.ref.png | Bin 0 -> 305 bytes ...e-width-large-overlap-offset.egl.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-offset.mask.argb32.ref.png | Bin 0 -> 305 bytes ...e-width-large-overlap-offset.mask.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap-offset.rgb24.ref.png | Bin 0 -> 305 bytes ...width-large-overlap-offset.traps.argb32.ref.png | Bin 0 -> 305 bytes ...-width-large-overlap-offset.traps.rgb24.ref.png | Bin 0 -> 305 bytes ...line-width-large-overlap-rotated.argb32.ref.png | Bin 0 -> 427 bytes ...width-large-overlap-rotated.base.argb32.ref.png | Bin 0 -> 404 bytes ...-width-large-overlap-rotated.base.rgb24.ref.png | Bin 0 -> 404 bytes ...-width-large-overlap-rotated.egl.argb32.ref.png | Bin 0 -> 451 bytes ...width-large-overlap-rotated.mask.argb32.ref.png | Bin 0 -> 427 bytes ...-width-large-overlap-rotated.mask.rgb24.ref.png | Bin 0 -> 427 bytes .../line-width-large-overlap-rotated.rgb24.ref.png | Bin 0 -> 427 bytes ...idth-large-overlap-rotated.traps.argb32.ref.png | Bin 0 -> 427 bytes ...width-large-overlap-rotated.traps.rgb24.ref.png | Bin 0 -> 427 bytes .../line-width-large-overlap.argb32.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.base.argb32.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.base.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.egl.argb32.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.mask.argb32.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.mask.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.traps.argb32.ref.png | Bin 0 -> 305 bytes .../line-width-large-overlap.traps.rgb24.ref.png | Bin 0 -> 305 bytes .../line-width-overlap-dashed.egl.argb32.ref.png | Bin 0 -> 407 bytes .../line-width-overlap-dashed.mask.argb32.ref.png | Bin 0 -> 401 bytes .../line-width-overlap-dashed.mask.rgb24.ref.png | Bin 0 -> 401 bytes test/reference/line-width-overlap-dashed.ref.png | Bin 0 -> 407 bytes .../line-width-overlap-flipped.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flipped.egl.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flipped.mask.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flipped.mask.rgb24.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flipped.rgb24.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flopped.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flopped.egl.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flopped.mask.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flopped.mask.rgb24.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-flopped.rgb24.ref.png | Bin 0 -> 324 bytes .../line-width-overlap-offset.argb32.ref.png | Bin 0 -> 348 bytes .../line-width-overlap-offset.egl.argb32.ref.png | Bin 0 -> 348 bytes .../line-width-overlap-offset.mask.argb32.ref.png | Bin 0 -> 348 bytes .../line-width-overlap-offset.mask.rgb24.ref.png | Bin 0 -> 348 bytes .../line-width-overlap-offset.rgb24.ref.png | Bin 0 -> 348 bytes .../line-width-overlap-offset.traps.argb32.ref.png | Bin 0 -> 365 bytes .../line-width-overlap-offset.traps.rgb24.ref.png | Bin 0 -> 365 bytes .../line-width-overlap-rotated.argb32.ref.png | Bin 0 -> 828 bytes .../line-width-overlap-rotated.egl.argb32.ref.png | Bin 0 -> 830 bytes .../line-width-overlap-rotated.mask.argb32.ref.png | Bin 0 -> 828 bytes .../line-width-overlap-rotated.mask.rgb24.ref.png | Bin 0 -> 828 bytes .../line-width-overlap-rotated.rgb24.ref.png | Bin 0 -> 828 bytes test/reference/line-width-overlap.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap.egl.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap.mask.argb32.ref.png | Bin 0 -> 324 bytes .../line-width-overlap.mask.rgb24.ref.png | Bin 0 -> 324 bytes test/reference/line-width-overlap.rgb24.ref.png | Bin 0 -> 324 bytes test/reference/line-width-scale.argb32.ref.png | Bin 0 -> 5721 bytes test/reference/line-width-scale.egl.argb32.ref.png | Bin 0 -> 5867 bytes .../reference/line-width-scale.mask.argb32.ref.png | Bin 0 -> 5721 bytes test/reference/line-width-scale.mask.rgb24.ref.png | Bin 0 -> 5721 bytes test/reference/line-width-scale.rgb24.ref.png | Bin 0 -> 5721 bytes test/reference/line-width-tolerance.argb32.ref.png | Bin 0 -> 168 bytes .../line-width-tolerance.egl.argb32.ref.png | Bin 0 -> 168 bytes .../line-width-tolerance.mask.argb32.ref.png | Bin 0 -> 168 bytes .../line-width-tolerance.mask.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/line-width-tolerance.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/line-width.argb32.ref.png | Bin 0 -> 178 bytes test/reference/line-width.egl.argb32.ref.png | Bin 0 -> 178 bytes test/reference/line-width.mask.argb32.ref.png | Bin 0 -> 178 bytes test/reference/line-width.mask.rgb24.ref.png | Bin 0 -> 178 bytes test/reference/line-width.rgb24.ref.png | Bin 0 -> 178 bytes .../linear-gradient-extend.argb32.ref.png | Bin 0 -> 371 bytes .../linear-gradient-extend.egl.argb32.ref.png | Bin 0 -> 371 bytes .../linear-gradient-extend.mask.argb32.ref.png | Bin 0 -> 371 bytes .../linear-gradient-extend.mask.rgb24.ref.png | Bin 0 -> 371 bytes .../reference/linear-gradient-extend.rgb24.ref.png | Bin 0 -> 371 bytes .../reference/linear-gradient-large.argb32.ref.png | Bin 0 -> 4076 bytes .../linear-gradient-large.egl.argb32.ref.png | Bin 0 -> 3050 bytes .../linear-gradient-large.mask.argb32.ref.png | Bin 0 -> 4076 bytes .../linear-gradient-large.mask.rgb24.ref.png | Bin 0 -> 4076 bytes test/reference/linear-gradient-large.rgb24.ref.png | Bin 0 -> 4076 bytes .../linear-gradient-one-stop.egl.argb32.ref.png | Bin 0 -> 225 bytes .../linear-gradient-one-stop.mask.argb32.ref.png | Bin 0 -> 225 bytes .../linear-gradient-one-stop.mask.rgb24.ref.png | Bin 0 -> 174 bytes .../linear-gradient-reflect.argb32.ref.png | Bin 0 -> 185 bytes .../linear-gradient-reflect.egl.argb32.ref.png | Bin 0 -> 298 bytes .../linear-gradient-reflect.mask.argb32.ref.png | Bin 0 -> 185 bytes .../linear-gradient-reflect.mask.rgb24.ref.png | Bin 0 -> 185 bytes .../linear-gradient-reflect.rgb24.ref.png | Bin 0 -> 185 bytes .../linear-gradient-subset.argb32.ref.png | Bin 0 -> 820 bytes .../linear-gradient-subset.egl.argb32.ref.png | Bin 0 -> 957 bytes .../linear-gradient-subset.mask.argb32.ref.png | Bin 0 -> 820 bytes .../linear-gradient-subset.mask.rgb24.ref.png | Bin 0 -> 820 bytes .../reference/linear-gradient-subset.rgb24.ref.png | Bin 0 -> 820 bytes test/reference/linear-gradient.argb32.ref.png | Bin 0 -> 974 bytes test/reference/linear-gradient.egl.argb32.ref.png | Bin 0 -> 1077 bytes test/reference/linear-gradient.mask.argb32.ref.png | Bin 0 -> 974 bytes test/reference/linear-gradient.mask.rgb24.ref.png | Bin 0 -> 974 bytes test/reference/linear-gradient.rgb24.ref.png | Bin 0 -> 974 bytes .../linear-step-function.egl.argb32.ref.png | Bin 0 -> 130 bytes .../linear-step-function.mask.argb32.ref.png | Bin 0 -> 118 bytes .../linear-step-function.mask.rgb24.ref.png | Bin 0 -> 118 bytes test/reference/linear-uniform.argb32.ref.png | Bin 0 -> 128 bytes test/reference/linear-uniform.egl.argb32.ref.png | Bin 0 -> 142 bytes test/reference/linear-uniform.mask.argb32.ref.png | Bin 0 -> 128 bytes test/reference/linear-uniform.mask.rgb24.ref.png | Bin 0 -> 128 bytes test/reference/linear-uniform.rgb24.ref.png | Bin 0 -> 128 bytes test/reference/long-dashed-lines.argb32.ref.png | Bin 0 -> 2548 bytes .../reference/long-dashed-lines.egl.argb32.ref.png | Bin 0 -> 2564 bytes .../long-dashed-lines.mask.argb32.ref.png | Bin 0 -> 2548 bytes .../reference/long-dashed-lines.mask.rgb24.ref.png | Bin 0 -> 2548 bytes test/reference/long-dashed-lines.rgb24.ref.png | Bin 0 -> 2548 bytes test/reference/long-lines.egl.argb32.ref.png | Bin 0 -> 201 bytes test/reference/long-lines.mask.argb32.ref.png | Bin 0 -> 201 bytes test/reference/long-lines.mask.rgb24.ref.png | Bin 0 -> 201 bytes test/reference/map-all-to-image.argb32.ref.png | Bin 0 -> 86 bytes .../reference/map-all-to-image.mask.argb32.ref.png | Bin 0 -> 86 bytes test/reference/map-all-to-image.mask.rgb24.ref.png | Bin 0 -> 86 bytes test/reference/map-all-to-image.rgb24.ref.png | Bin 0 -> 86 bytes .../map-all-to-xlib-fallback.rgb24.ref.png | Bin 0 -> 86 bytes .../reference/map-all-to-xlib-window.rgb24.ref.png | Bin 0 -> 86 bytes test/reference/map-all-to-xlib.argb32.ref.png | Bin 0 -> 86 bytes test/reference/map-all-to-xlib.rgb24.ref.png | Bin 0 -> 86 bytes test/reference/map-bit-to-image.argb32.ref.png | Bin 0 -> 103 bytes .../reference/map-bit-to-image.mask.argb32.ref.png | Bin 0 -> 103 bytes test/reference/map-bit-to-image.mask.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/map-bit-to-image.rgb24.ref.png | Bin 0 -> 103 bytes .../map-bit-to-xlib-fallback.rgb24.ref.png | Bin 0 -> 103 bytes .../reference/map-bit-to-xlib-window.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/map-bit-to-xlib.argb32.ref.png | Bin 0 -> 103 bytes test/reference/map-bit-to-xlib.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/map-to-image-fill.argb32.ref.png | Bin 0 -> 103 bytes .../reference/map-to-image-fill.egl.argb32.ref.png | Bin 0 -> 103 bytes .../map-to-image-fill.mask.argb32.ref.png | Bin 0 -> 103 bytes .../reference/map-to-image-fill.mask.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/map-to-image-fill.rgb24.ref.png | Bin 0 -> 103 bytes .../map-to-image-fill.xlib-fallback.rgb24.ref.png | Bin 0 -> 103 bytes .../map-to-image-fill.xlib-window.rgb24.ref.png | Bin 0 -> 103 bytes test/reference/mask-alpha.argb32.ref.png | Bin 596 -> 632 bytes test/reference/mask-alpha.egl.argb32.ref.png | Bin 0 -> 690 bytes test/reference/mask-alpha.mask.argb32.ref.png | Bin 0 -> 632 bytes test/reference/mask-alpha.mask.rgb24.ref.png | Bin 0 -> 589 bytes test/reference/mask-alpha.rgb24.ref.png | Bin 546 -> 589 bytes test/reference/mask-ctm.argb32.ref.png | Bin 0 -> 110 bytes test/reference/mask-ctm.egl.argb32.ref.png | Bin 0 -> 110 bytes test/reference/mask-ctm.mask.argb32.ref.png | Bin 0 -> 110 bytes test/reference/mask-ctm.mask.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/mask-ctm.rgb24.ref.png | Bin 124 -> 105 bytes test/reference/mask-surface-ctm.argb32.ref.png | Bin 0 -> 110 bytes test/reference/mask-surface-ctm.egl.argb32.ref.png | Bin 0 -> 110 bytes .../reference/mask-surface-ctm.mask.argb32.ref.png | Bin 0 -> 110 bytes test/reference/mask-surface-ctm.mask.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/mask-surface-ctm.rgb24.ref.png | Bin 124 -> 105 bytes .../mask-transformed-image.argb32.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-image.egl.argb32.ref.png | Bin 0 -> 3826 bytes .../mask-transformed-image.mask.argb32.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-image.mask.rgb24.ref.png | Bin 0 -> 3812 bytes .../reference/mask-transformed-image.rgb24.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-similar.argb32.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-similar.egl.argb32.ref.png | Bin 0 -> 3817 bytes .../mask-transformed-similar.mask.argb32.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-similar.mask.rgb24.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-similar.recording.ref.png | Bin 0 -> 3528 bytes .../mask-transformed-similar.rgb24.ref.png | Bin 0 -> 3812 bytes .../mask-transformed-xlib-fallback.rgb24.ref.png | Bin 0 -> 3809 bytes .../mask-transformed-xlib-window.rgb24.ref.png | Bin 0 -> 3809 bytes .../reference/mask-transformed-xlib.argb32.ref.png | Bin 0 -> 3809 bytes test/reference/mask-transformed-xlib.rgb24.ref.png | Bin 0 -> 3809 bytes test/reference/mask.argb32.ref.png | Bin 8218 -> 8579 bytes test/reference/mask.base.argb32.ref.png | Bin 8451 -> 8439 bytes test/reference/mask.base.rgb24.ref.png | Bin 7058 -> 7044 bytes test/reference/mask.egl.argb32.ref.png | Bin 0 -> 10578 bytes test/reference/mask.mask.argb32.ref.png | Bin 0 -> 8565 bytes test/reference/mask.mask.rgb24.ref.png | Bin 0 -> 7135 bytes test/reference/mask.rgb24.ref.png | Bin 7007 -> 7127 bytes .../reference/mesh-pattern-accuracy.argb32.ref.png | Bin 0 -> 8086 bytes .../mesh-pattern-accuracy.egl.argb32.ref.png | Bin 0 -> 11042 bytes .../mesh-pattern-accuracy.mask.argb32.ref.png | Bin 0 -> 8086 bytes .../mesh-pattern-accuracy.mask.rgb24.ref.png | Bin 0 -> 8086 bytes test/reference/mesh-pattern-accuracy.rgb24.ref.png | Bin 0 -> 8086 bytes test/reference/mesh-pattern-conical.argb32.ref.png | Bin 0 -> 8655 bytes .../mesh-pattern-conical.egl.argb32.ref.png | Bin 0 -> 8963 bytes .../mesh-pattern-conical.mask.argb32.ref.png | Bin 0 -> 8655 bytes .../mesh-pattern-conical.mask.rgb24.ref.png | Bin 0 -> 8655 bytes test/reference/mesh-pattern-conical.rgb24.ref.png | Bin 0 -> 8655 bytes .../mesh-pattern-control-points.argb32.ref.png | Bin 0 -> 10665 bytes .../mesh-pattern-control-points.egl.argb32.ref.png | Bin 0 -> 11771 bytes ...mesh-pattern-control-points.mask.argb32.ref.png | Bin 0 -> 10665 bytes .../mesh-pattern-control-points.mask.rgb24.ref.png | Bin 0 -> 10665 bytes .../mesh-pattern-control-points.rgb24.ref.png | Bin 0 -> 10665 bytes test/reference/mesh-pattern-fold.argb32.ref.png | Bin 0 -> 52980 bytes .../reference/mesh-pattern-fold.egl.argb32.ref.png | Bin 0 -> 55045 bytes .../mesh-pattern-fold.mask.argb32.ref.png | Bin 0 -> 52980 bytes .../reference/mesh-pattern-fold.mask.rgb24.ref.png | Bin 0 -> 52980 bytes test/reference/mesh-pattern-fold.rgb24.ref.png | Bin 0 -> 52980 bytes test/reference/mesh-pattern-overlap.argb32.ref.png | Bin 0 -> 9129 bytes .../mesh-pattern-overlap.egl.argb32.ref.png | Bin 0 -> 9614 bytes .../mesh-pattern-overlap.mask.argb32.ref.png | Bin 0 -> 9129 bytes .../mesh-pattern-overlap.mask.rgb24.ref.png | Bin 0 -> 9129 bytes test/reference/mesh-pattern-overlap.rgb24.ref.png | Bin 0 -> 9129 bytes .../mesh-pattern-transformed.argb32.ref.png | Bin 0 -> 14463 bytes .../mesh-pattern-transformed.egl.argb32.ref.png | Bin 0 -> 14785 bytes .../mesh-pattern-transformed.mask.argb32.ref.png | Bin 0 -> 14463 bytes .../mesh-pattern-transformed.mask.rgb24.ref.png | Bin 0 -> 14463 bytes .../mesh-pattern-transformed.rgb24.ref.png | Bin 0 -> 14463 bytes test/reference/mesh-pattern.argb32.ref.png | Bin 0 -> 19566 bytes test/reference/mesh-pattern.egl.argb32.ref.png | Bin 0 -> 20717 bytes test/reference/mesh-pattern.mask.argb32.ref.png | Bin 0 -> 19566 bytes test/reference/mesh-pattern.mask.rgb24.ref.png | Bin 0 -> 19566 bytes test/reference/mesh-pattern.rgb24.ref.png | Bin 0 -> 19566 bytes test/reference/mime-data.argb32.ref.png | Bin 0 -> 185 bytes test/reference/mime-data.egl.argb32.ref.png | Bin 0 -> 185 bytes test/reference/mime-data.mask.argb32.ref.png | Bin 0 -> 185 bytes test/reference/mime-data.mask.rgb24.ref.png | Bin 0 -> 185 bytes test/reference/mime-data.rgb24.ref.png | Bin 0 -> 185 bytes test/reference/miter-precision.argb32.ref.png | Bin 0 -> 1030 bytes test/reference/miter-precision.egl.argb32.ref.png | Bin 0 -> 1109 bytes test/reference/miter-precision.mask.argb32.ref.png | Bin 0 -> 1030 bytes test/reference/miter-precision.mask.rgb24.ref.png | Bin 0 -> 1030 bytes test/reference/miter-precision.rgb24.ref.png | Bin 0 -> 1030 bytes test/reference/move-to-show-surface.argb32.ref.png | Bin 0 -> 96 bytes .../move-to-show-surface.egl.argb32.ref.png | Bin 0 -> 92 bytes .../move-to-show-surface.mask.argb32.ref.png | Bin 0 -> 96 bytes .../move-to-show-surface.mask.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/move-to-show-surface.rgb24.ref.png | Bin 0 -> 96 bytes .../reference/negative-stride-image.argb32.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.base.argb32.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.base.rgb24.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.egl.argb32.ref.png | Bin 0 -> 288 bytes .../negative-stride-image.image16.ref.png | Bin 0 -> 61197 bytes .../negative-stride-image.mask.argb32.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.mask.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/negative-stride-image.ps.ref.png | Bin 0 -> 77159 bytes test/reference/negative-stride-image.ref.png | Bin 0 -> 81121 bytes test/reference/negative-stride-image.rgb24.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.traps.argb32.ref.png | Bin 0 -> 81121 bytes .../negative-stride-image.traps.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/new-sub-path.argb32.ref.png | Bin 331 -> 408 bytes test/reference/new-sub-path.egl.argb32.ref.png | Bin 0 -> 407 bytes test/reference/new-sub-path.mask.argb32.ref.png | Bin 0 -> 408 bytes test/reference/new-sub-path.mask.rgb24.ref.png | Bin 0 -> 371 bytes test/reference/new-sub-path.rgb24.ref.png | Bin 303 -> 371 bytes test/reference/nil-surface.argb32.ref.png | Bin 0 -> 88 bytes test/reference/nil-surface.egl.argb32.ref.png | Bin 0 -> 88 bytes test/reference/nil-surface.mask.argb32.ref.png | Bin 0 -> 88 bytes test/reference/nil-surface.mask.rgb24.ref.png | Bin 0 -> 87 bytes test/reference/nil-surface.rgb24.ref.png | Bin 106 -> 87 bytes test/reference/operator-alpha-alpha.argb32.ref.png | Bin 0 -> 3441 bytes .../operator-alpha-alpha.egl.argb32.ref.png | Bin 0 -> 13159 bytes .../operator-alpha-alpha.mask.argb32.ref.png | Bin 0 -> 3441 bytes .../operator-alpha-alpha.mask.rgb24.ref.png | Bin 0 -> 3441 bytes test/reference/operator-alpha-alpha.rgb24.ref.png | Bin 0 -> 3441 bytes test/reference/operator-alpha.argb32.ref.png | Bin 0 -> 280 bytes test/reference/operator-alpha.egl.argb32.ref.png | Bin 0 -> 452 bytes test/reference/operator-alpha.mask.argb32.ref.png | Bin 0 -> 280 bytes test/reference/operator-alpha.mask.rgb24.ref.png | Bin 0 -> 205 bytes test/reference/operator-alpha.rgb24.ref.png | Bin 229 -> 205 bytes test/reference/operator-clear.argb32.ref.png | Bin 1080 -> 1071 bytes test/reference/operator-clear.base.argb32.ref.png | Bin 1070 -> 1071 bytes test/reference/operator-clear.base.rgb24.ref.png | Bin 950 -> 950 bytes test/reference/operator-clear.mask.argb32.ref.png | Bin 0 -> 1071 bytes test/reference/operator-clear.mask.rgb24.ref.png | Bin 0 -> 947 bytes test/reference/operator-clear.rgb24.ref.png | Bin 948 -> 947 bytes test/reference/operator-clear.traps.argb32.ref.png | Bin 1070 -> 1071 bytes test/reference/operator-clear.traps.rgb24.ref.png | Bin 950 -> 950 bytes test/reference/operator-source.argb32.ref.png | Bin 5538 -> 5612 bytes test/reference/operator-source.base.argb32.ref.png | Bin 5630 -> 5625 bytes test/reference/operator-source.base.rgb24.ref.png | Bin 3979 -> 3979 bytes test/reference/operator-source.mask.argb32.ref.png | Bin 0 -> 5612 bytes test/reference/operator-source.mask.rgb24.ref.png | Bin 0 -> 3975 bytes test/reference/operator-source.rgb24.ref.png | Bin 3876 -> 3975 bytes .../reference/operator-source.traps.argb32.ref.png | Bin 5630 -> 5625 bytes test/reference/operator-source.traps.rgb24.ref.png | Bin 3979 -> 3979 bytes test/reference/operator.argb32.ref.png | Bin 0 -> 238 bytes test/reference/operator.egl.argb32.ref.png | Bin 0 -> 238 bytes test/reference/operator.mask.argb32.ref.png | Bin 0 -> 238 bytes test/reference/operator.mask.rgb24.ref.png | Bin 0 -> 189 bytes test/reference/operator.rgb24.ref.png | Bin 217 -> 189 bytes test/reference/over-above-source.argb32.ref.png | Bin 0 -> 564 bytes .../reference/over-above-source.egl.argb32.ref.png | Bin 0 -> 575 bytes .../over-above-source.mask.argb32.ref.png | Bin 0 -> 564 bytes .../reference/over-above-source.mask.rgb24.ref.png | Bin 0 -> 465 bytes test/reference/over-above-source.rgb24.ref.png | Bin 421 -> 465 bytes test/reference/over-around-source.argb32.ref.png | Bin 0 -> 633 bytes .../over-around-source.egl.argb32.ref.png | Bin 0 -> 683 bytes .../over-around-source.mask.argb32.ref.png | Bin 0 -> 633 bytes .../over-around-source.mask.rgb24.ref.png | Bin 0 -> 499 bytes test/reference/over-around-source.rgb24.ref.png | Bin 454 -> 499 bytes test/reference/over-below-source.argb32.ref.png | Bin 0 -> 447 bytes .../reference/over-below-source.egl.argb32.ref.png | Bin 0 -> 440 bytes .../over-below-source.mask.argb32.ref.png | Bin 0 -> 447 bytes .../reference/over-below-source.mask.rgb24.ref.png | Bin 0 -> 385 bytes test/reference/over-below-source.rgb24.ref.png | Bin 372 -> 385 bytes test/reference/over-between-source.argb32.ref.png | Bin 0 -> 596 bytes .../over-between-source.egl.argb32.ref.png | Bin 0 -> 619 bytes .../over-between-source.mask.argb32.ref.png | Bin 0 -> 596 bytes .../over-between-source.mask.rgb24.ref.png | Bin 0 -> 463 bytes test/reference/over-between-source.rgb24.ref.png | Bin 440 -> 463 bytes .../reference/overlapping-boxes.egl.argb32.ref.png | Bin 0 -> 179 bytes .../overlapping-boxes.mask.argb32.ref.png | Bin 0 -> 179 bytes .../reference/overlapping-boxes.mask.rgb24.ref.png | Bin 0 -> 170 bytes .../reference/overlapping-dash-caps.argb32.ref.png | Bin 0 -> 3986 bytes .../overlapping-dash-caps.egl.argb32.ref.png | Bin 0 -> 4111 bytes .../overlapping-dash-caps.mask.argb32.ref.png | Bin 0 -> 3986 bytes .../overlapping-dash-caps.mask.rgb24.ref.png | Bin 0 -> 3986 bytes test/reference/overlapping-dash-caps.rgb24.ref.png | Bin 0 -> 3986 bytes test/reference/overlapping-glyphs.argb32.ref.png | Bin 2258 -> 2717 bytes .../overlapping-glyphs.base.argb32.ref.png | Bin 2684 -> 2715 bytes .../overlapping-glyphs.base.rgb24.ref.png | Bin 1647 -> 1661 bytes .../overlapping-glyphs.egl.argb32.ref.png | Bin 0 -> 597 bytes .../overlapping-glyphs.mask.argb32.ref.png | Bin 0 -> 2717 bytes .../overlapping-glyphs.mask.rgb24.ref.png | Bin 0 -> 1663 bytes test/reference/overlapping-glyphs.rgb24.ref.png | Bin 1390 -> 1663 bytes .../overlapping-glyphs.traps.argb32.ref.png | Bin 2684 -> 2715 bytes .../overlapping-glyphs.traps.rgb24.ref.png | Bin 1647 -> 1661 bytes test/reference/paint-clip-fill-aa.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-aa.egl.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-aa.mask.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-aa.mask.rgb24.ref.png | Bin 0 -> 327 bytes test/reference/paint-clip-fill-aa.rgb24.ref.png | Bin 0 -> 327 bytes test/reference/paint-clip-fill-mono.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-mono.egl.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-mono.mask.argb32.ref.png | Bin 0 -> 327 bytes .../paint-clip-fill-mono.mask.rgb24.ref.png | Bin 0 -> 327 bytes test/reference/paint-clip-fill-mono.rgb24.ref.png | Bin 0 -> 327 bytes test/reference/paint-repeat.argb32.ref.png | Bin 0 -> 122 bytes test/reference/paint-repeat.egl.argb32.ref.png | Bin 0 -> 122 bytes test/reference/paint-repeat.mask.argb32.ref.png | Bin 0 -> 122 bytes test/reference/paint-repeat.mask.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/paint-repeat.rgb24.ref.png | Bin 0 -> 122 bytes test/reference/paint-source-alpha.argb32.ref.png | Bin 0 -> 224 bytes .../paint-source-alpha.egl.argb32.ref.png | Bin 0 -> 308 bytes .../paint-source-alpha.mask.argb32.ref.png | Bin 0 -> 224 bytes .../paint-source-alpha.mask.rgb24.ref.png | Bin 0 -> 224 bytes test/reference/paint-source-alpha.rgb24.ref.png | Bin 0 -> 224 bytes .../paint-with-alpha-clip-mask.argb32.ref.png | Bin 0 -> 340 bytes .../paint-with-alpha-clip-mask.base.argb32.ref.png | Bin 305 -> 330 bytes .../paint-with-alpha-clip-mask.base.rgb24.ref.png | Bin 305 -> 330 bytes .../paint-with-alpha-clip-mask.egl.argb32.ref.png | Bin 0 -> 423 bytes .../paint-with-alpha-clip-mask.mask.argb32.ref.png | Bin 0 -> 330 bytes .../paint-with-alpha-clip-mask.mask.rgb24.ref.png | Bin 0 -> 330 bytes .../paint-with-alpha-clip-mask.rgb24.ref.png | Bin 0 -> 340 bytes .../reference/paint-with-alpha-clip.argb32.ref.png | Bin 0 -> 290 bytes .../paint-with-alpha-clip.base.argb32.ref.png | Bin 303 -> 269 bytes .../paint-with-alpha-clip.base.rgb24.ref.png | Bin 303 -> 269 bytes .../paint-with-alpha-clip.egl.argb32.ref.png | Bin 0 -> 350 bytes .../paint-with-alpha-clip.mask.argb32.ref.png | Bin 0 -> 269 bytes .../paint-with-alpha-clip.mask.rgb24.ref.png | Bin 0 -> 269 bytes test/reference/paint-with-alpha-clip.rgb24.ref.png | Bin 0 -> 290 bytes .../paint-with-alpha-solid-clip.argb32.ref.png | Bin 0 -> 248 bytes ...paint-with-alpha-solid-clip.base.argb32.ref.png | Bin 266 -> 248 bytes .../paint-with-alpha-solid-clip.base.rgb24.ref.png | Bin 266 -> 248 bytes .../paint-with-alpha-solid-clip.egl.argb32.ref.png | Bin 0 -> 302 bytes ...paint-with-alpha-solid-clip.mask.argb32.ref.png | Bin 0 -> 266 bytes .../paint-with-alpha-solid-clip.mask.rgb24.ref.png | Bin 0 -> 266 bytes .../paint-with-alpha-solid-clip.rgb24.ref.png | Bin 0 -> 248 bytes test/reference/paint-with-alpha.argb32.ref.png | Bin 0 -> 224 bytes test/reference/paint-with-alpha.egl.argb32.ref.png | Bin 0 -> 272 bytes .../reference/paint-with-alpha.mask.argb32.ref.png | Bin 0 -> 224 bytes test/reference/paint-with-alpha.mask.rgb24.ref.png | Bin 0 -> 224 bytes test/reference/paint-with-alpha.rgb24.ref.png | Bin 0 -> 224 bytes test/reference/paint.argb32.ref.png | Bin 0 -> 93 bytes test/reference/paint.egl.argb32.ref.png | Bin 0 -> 93 bytes test/reference/paint.mask.argb32.ref.png | Bin 0 -> 93 bytes test/reference/paint.mask.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/paint.rgb24.ref.png | Bin 0 -> 93 bytes .../partial-clip-text-bottom.argb32.ref.png | Bin 0 -> 261 bytes .../partial-clip-text-bottom.base.argb32.ref.png | Bin 259 -> 261 bytes .../partial-clip-text-bottom.base.rgb24.ref.png | Bin 259 -> 261 bytes .../partial-clip-text-bottom.egl.argb32.ref.png | Bin 0 -> 248 bytes .../partial-clip-text-bottom.mask.argb32.ref.png | Bin 0 -> 261 bytes .../partial-clip-text-bottom.mask.rgb24.ref.png | Bin 0 -> 261 bytes .../partial-clip-text-bottom.rgb24.ref.png | Bin 0 -> 261 bytes .../partial-clip-text-bottom.traps.argb32.ref.png | Bin 259 -> 261 bytes .../partial-clip-text-bottom.traps.rgb24.ref.png | Bin 259 -> 261 bytes .../partial-clip-text-left.argb32.ref.png | Bin 0 -> 301 bytes .../partial-clip-text-left.base.argb32.ref.png | Bin 293 -> 301 bytes .../partial-clip-text-left.base.rgb24.ref.png | Bin 293 -> 301 bytes .../partial-clip-text-left.egl.argb32.ref.png | Bin 0 -> 320 bytes .../partial-clip-text-left.mask.argb32.ref.png | Bin 0 -> 301 bytes .../partial-clip-text-left.mask.rgb24.ref.png | Bin 0 -> 301 bytes .../reference/partial-clip-text-left.rgb24.ref.png | Bin 0 -> 301 bytes .../partial-clip-text-left.traps.argb32.ref.png | Bin 293 -> 301 bytes .../partial-clip-text-left.traps.rgb24.ref.png | Bin 293 -> 301 bytes .../partial-clip-text-right.argb32.ref.png | Bin 0 -> 155 bytes .../partial-clip-text-right.base.argb32.ref.png | Bin 155 -> 155 bytes .../partial-clip-text-right.base.rgb24.ref.png | Bin 155 -> 155 bytes .../partial-clip-text-right.egl.argb32.ref.png | Bin 0 -> 147 bytes .../partial-clip-text-right.mask.argb32.ref.png | Bin 0 -> 155 bytes .../partial-clip-text-right.mask.rgb24.ref.png | Bin 0 -> 155 bytes .../partial-clip-text-right.rgb24.ref.png | Bin 0 -> 155 bytes .../partial-clip-text-right.traps.argb32.ref.png | Bin 155 -> 155 bytes .../partial-clip-text-right.traps.ref.png | Bin 0 -> 155 bytes .../partial-clip-text-right.traps.rgb24.ref.png | Bin 155 -> 155 bytes .../reference/partial-clip-text-top.argb32.ref.png | Bin 0 -> 181 bytes .../partial-clip-text-top.base.argb32.ref.png | Bin 173 -> 181 bytes .../partial-clip-text-top.base.rgb24.ref.png | Bin 173 -> 181 bytes .../partial-clip-text-top.egl.argb32.ref.png | Bin 0 -> 164 bytes .../partial-clip-text-top.mask.argb32.ref.png | Bin 0 -> 181 bytes .../partial-clip-text-top.mask.rgb24.ref.png | Bin 0 -> 181 bytes test/reference/partial-clip-text-top.rgb24.ref.png | Bin 0 -> 181 bytes .../partial-clip-text-top.traps.argb32.ref.png | Bin 173 -> 181 bytes test/reference/partial-clip-text-top.traps.ref.png | Bin 0 -> 181 bytes .../partial-clip-text-top.traps.rgb24.ref.png | Bin 173 -> 181 bytes .../partial-coverage-half-reference.argb32.ref.png | Bin 0 -> 189 bytes ...tial-coverage-half-reference.egl.argb32.ref.png | Bin 0 -> 637 bytes ...ial-coverage-half-reference.mask.argb32.ref.png | Bin 0 -> 189 bytes ...tial-coverage-half-reference.mask.rgb24.ref.png | Bin 0 -> 189 bytes .../partial-coverage-half-reference.rgb24.ref.png | Bin 0 -> 189 bytes .../partial-coverage-reference.argb32.ref.png | Bin 0 -> 202 bytes .../partial-coverage-reference.egl.argb32.ref.png | Bin 0 -> 419 bytes .../partial-coverage-reference.mask.argb32.ref.png | Bin 0 -> 202 bytes .../partial-coverage-reference.mask.rgb24.ref.png | Bin 0 -> 202 bytes .../partial-coverage-reference.rgb24.ref.png | Bin 0 -> 202 bytes ...coverage-three-quarter-reference.argb32.ref.png | Bin 0 -> 186 bytes ...rage-three-quarter-reference.egl.argb32.ref.png | Bin 0 -> 544 bytes ...age-three-quarter-reference.mask.argb32.ref.png | Bin 0 -> 186 bytes ...rage-three-quarter-reference.mask.rgb24.ref.png | Bin 0 -> 186 bytes ...-coverage-three-quarter-reference.rgb24.ref.png | Bin 0 -> 186 bytes test/reference/pass-through.argb32.ref.png | Bin 0 -> 221 bytes test/reference/pass-through.base.argb32.ref.png | Bin 0 -> 221 bytes test/reference/pass-through.base.rgb24.ref.png | Bin 0 -> 158 bytes test/reference/pass-through.egl.argb32.ref.png | Bin 0 -> 307 bytes test/reference/pass-through.mask.argb32.ref.png | Bin 0 -> 221 bytes test/reference/pass-through.mask.rgb24.ref.png | Bin 0 -> 158 bytes test/reference/pass-through.rgb24.ref.png | Bin 179 -> 158 bytes test/reference/pass-through.traps.argb32.ref.png | Bin 0 -> 221 bytes test/reference/pass-through.traps.rgb24.ref.png | Bin 0 -> 158 bytes test/reference/path-append.argb32.ref.png | Bin 0 -> 6144 bytes test/reference/path-append.egl.argb32.ref.png | Bin 0 -> 6176 bytes test/reference/path-append.mask.argb32.ref.png | Bin 0 -> 6144 bytes test/reference/path-append.mask.rgb24.ref.png | Bin 0 -> 6144 bytes test/reference/path-append.rgb24.ref.png | Bin 0 -> 6144 bytes test/reference/path-stroke-twice.argb32.ref.png | Bin 0 -> 240 bytes .../reference/path-stroke-twice.egl.argb32.ref.png | Bin 0 -> 240 bytes .../path-stroke-twice.mask.argb32.ref.png | Bin 0 -> 240 bytes .../reference/path-stroke-twice.mask.rgb24.ref.png | Bin 0 -> 240 bytes test/reference/path-stroke-twice.rgb24.ref.png | Bin 0 -> 240 bytes test/reference/pattern-getters.argb32.ref.png | Bin 0 -> 87 bytes test/reference/pattern-getters.egl.argb32.ref.png | Bin 0 -> 87 bytes test/reference/pattern-getters.mask.argb32.ref.png | Bin 0 -> 87 bytes test/reference/pattern-getters.mask.rgb24.ref.png | Bin 0 -> 87 bytes test/reference/pattern-getters.rgb24.ref.png | Bin 0 -> 87 bytes .../pdf-isolated-group.base.argb32.ref.png | Bin 0 -> 217 bytes .../pdf-isolated-group.base.rgb24.ref.png | Bin 0 -> 217 bytes .../pdf-isolated-group.egl.argb32.ref.png | Bin 0 -> 231 bytes test/reference/pdf-isolated-group.ref.png | Bin 0 -> 217 bytes .../pdf-surface-source.egl.argb32.ref.png | Bin 0 -> 377 bytes .../pdf-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../pdf-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/pixman-rotate.argb32.ref.png | Bin 0 -> 260 bytes test/reference/pixman-rotate.egl.argb32.ref.png | Bin 0 -> 392 bytes test/reference/pixman-rotate.mask.argb32.ref.png | Bin 0 -> 260 bytes test/reference/pixman-rotate.mask.rgb24.ref.png | Bin 0 -> 225 bytes test/reference/pixman-rotate.rgb24.ref.png | Bin 244 -> 225 bytes .../reference/ps-surface-source.egl.argb32.ref.png | Bin 0 -> 377 bytes .../ps-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../reference/ps-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/pthread-same-source.argb32.ref.png | Bin 0 -> 1000 bytes .../pthread-same-source.egl.argb32.ref.png | Bin 0 -> 1137 bytes .../pthread-same-source.mask.argb32.ref.png | Bin 0 -> 1000 bytes .../pthread-same-source.mask.rgb24.ref.png | Bin 0 -> 1000 bytes test/reference/pthread-same-source.rgb24.ref.png | Bin 0 -> 1000 bytes test/reference/pthread-show-text.argb32.ref.png | Bin 0 -> 30199 bytes .../pthread-show-text.base.argb32.ref.png | Bin 29759 -> 30199 bytes .../reference/pthread-show-text.base.rgb24.ref.png | Bin 29759 -> 30199 bytes .../pthread-show-text.mask.argb32.ref.png | Bin 0 -> 30199 bytes .../reference/pthread-show-text.mask.rgb24.ref.png | Bin 0 -> 30199 bytes test/reference/pthread-show-text.rgb24.ref.png | Bin 0 -> 30199 bytes .../pthread-show-text.traps.argb32.ref.png | Bin 29759 -> 30199 bytes test/reference/pthread-show-text.traps.ref.png | Bin 0 -> 30199 bytes .../pthread-show-text.traps.rgb24.ref.png | Bin 29759 -> 30199 bytes test/reference/pthread-similar.argb32.ref.png | Bin 0 -> 170 bytes test/reference/pthread-similar.egl.argb32.ref.png | Bin 0 -> 523 bytes test/reference/pthread-similar.mask.argb32.ref.png | Bin 0 -> 170 bytes test/reference/pthread-similar.mask.rgb24.ref.png | Bin 0 -> 170 bytes test/reference/pthread-similar.rgb24.ref.png | Bin 0 -> 170 bytes test/reference/push-group-color.argb32.ref.png | Bin 0 -> 2892 bytes test/reference/push-group-color.egl.argb32.ref.png | Bin 0 -> 3195 bytes .../reference/push-group-color.mask.argb32.ref.png | Bin 0 -> 2892 bytes test/reference/push-group-color.mask.rgb24.ref.png | Bin 0 -> 2892 bytes test/reference/push-group-color.rgb24.ref.png | Bin 0 -> 2892 bytes .../push-group-path-offset.argb32.ref.png | Bin 0 -> 186 bytes .../push-group-path-offset.egl.argb32.ref.png | Bin 0 -> 259 bytes .../push-group-path-offset.mask.argb32.ref.png | Bin 0 -> 186 bytes .../push-group-path-offset.mask.rgb24.ref.png | Bin 0 -> 186 bytes .../reference/push-group-path-offset.rgb24.ref.png | Bin 0 -> 186 bytes test/reference/push-group.argb32.ref.png | Bin 0 -> 3062 bytes test/reference/push-group.egl.argb32.ref.png | Bin 0 -> 3934 bytes test/reference/push-group.mask.argb32.ref.png | Bin 0 -> 3062 bytes test/reference/push-group.mask.rgb24.ref.png | Bin 0 -> 2899 bytes test/reference/push-group.rgb24.ref.png | Bin 2684 -> 2899 bytes .../radial-gradient-extend.egl.argb32.ref.png | Bin 0 -> 585 bytes .../radial-gradient-extend.mask.argb32.ref.png | Bin 0 -> 466 bytes .../radial-gradient-extend.mask.rgb24.ref.png | Bin 0 -> 466 bytes .../radial-gradient-mask-source.egl.argb32.ref.png | Bin 0 -> 182841 bytes ...radial-gradient-mask-source.mask.argb32.ref.png | Bin 0 -> 145713 bytes .../radial-gradient-mask-source.mask.rgb24.ref.png | Bin 0 -> 150945 bytes ...radial-gradient-mask-source.traps.rgb24.ref.png | Bin 7747 -> 150945 bytes test/reference/radial-gradient-mask.argb32.ref.png | Bin 0 -> 286065 bytes .../radial-gradient-mask.egl.argb32.ref.png | Bin 0 -> 340688 bytes .../radial-gradient-mask.mask.argb32.ref.png | Bin 0 -> 286065 bytes .../radial-gradient-mask.mask.rgb24.ref.png | Bin 0 -> 286065 bytes test/reference/radial-gradient-mask.rgb24.ref.png | Bin 0 -> 286065 bytes .../radial-gradient-one-stop.argb32.ref.png | Bin 0 -> 6306 bytes .../radial-gradient-one-stop.egl.argb32.ref.png | Bin 0 -> 6395 bytes .../radial-gradient-one-stop.mask.argb32.ref.png | Bin 0 -> 6306 bytes .../radial-gradient-one-stop.mask.rgb24.ref.png | Bin 0 -> 6306 bytes .../radial-gradient-one-stop.rgb24.ref.png | Bin 0 -> 6306 bytes .../radial-gradient-source.egl.argb32.ref.png | Bin 0 -> 458552 bytes .../radial-gradient-source.mask.argb32.ref.png | Bin 0 -> 408848 bytes .../radial-gradient-source.mask.rgb24.ref.png | Bin 0 -> 263908 bytes test/reference/radial-gradient.argb32.ref.png | Bin 0 -> 382283 bytes test/reference/radial-gradient.egl.argb32.ref.png | Bin 0 -> 412346 bytes test/reference/radial-gradient.mask.argb32.ref.png | Bin 0 -> 382283 bytes test/reference/radial-gradient.mask.rgb24.ref.png | Bin 0 -> 382283 bytes test/reference/radial-gradient.rgb24.ref.png | Bin 0 -> 382283 bytes .../radial-outer-focus.base.argb32.ref.png | Bin 0 -> 38310 bytes .../radial-outer-focus.base.rgb24.ref.png | Bin 0 -> 38310 bytes .../radial-outer-focus.egl.argb32.ref.png | Bin 0 -> 84375 bytes .../radial-outer-focus.mask.argb32.ref.png | Bin 0 -> 38310 bytes .../radial-outer-focus.mask.rgb24.ref.png | Bin 0 -> 38310 bytes .../radial-outer-focus.traps.argb32.ref.png | Bin 0 -> 38310 bytes .../radial-outer-focus.traps.rgb24.ref.png | Bin 0 -> 38310 bytes test/reference/random-clip.base.argb32.ref.png | Bin 0 -> 521821 bytes test/reference/random-clip.base.rgb24.ref.png | Bin 0 -> 521821 bytes test/reference/random-clip.mask.argb32.ref.png | Bin 0 -> 550190 bytes test/reference/random-clip.mask.rgb24.ref.png | Bin 0 -> 550190 bytes test/reference/random-clip.ref.png | Bin 523342 -> 529871 bytes test/reference/random-clip.traps.argb32.ref.png | Bin 523342 -> 523346 bytes test/reference/random-clip.traps.rgb24.ref.png | Bin 523342 -> 523346 bytes .../random-intersections-curves-eo.argb32.ref.png | Bin 0 -> 245848 bytes ...ndom-intersections-curves-eo.egl.argb32.ref.png | Bin 0 -> 246621 bytes ...dom-intersections-curves-eo.mask.argb32.ref.png | Bin 0 -> 245848 bytes ...ndom-intersections-curves-eo.mask.rgb24.ref.png | Bin 0 -> 245848 bytes .../random-intersections-curves-eo.ref.png | Bin 156582 -> 156491 bytes .../random-intersections-curves-eo.rgb24.ref.png | Bin 0 -> 245848 bytes .../random-intersections-curves-nz.argb32.ref.png | Bin 0 -> 265249 bytes ...ndom-intersections-curves-nz.egl.argb32.ref.png | Bin 0 -> 265420 bytes ...dom-intersections-curves-nz.mask.argb32.ref.png | Bin 0 -> 265249 bytes ...ndom-intersections-curves-nz.mask.rgb24.ref.png | Bin 0 -> 265249 bytes .../random-intersections-curves-nz.ref.png | Bin 151330 -> 151310 bytes .../random-intersections-curves-nz.rgb24.ref.png | Bin 0 -> 265249 bytes .../random-intersections-eo.argb32.ref.png | Bin 0 -> 136632 bytes .../random-intersections-eo.egl.argb32.ref.png | Bin 0 -> 137030 bytes .../random-intersections-eo.mask.argb32.ref.png | Bin 0 -> 136632 bytes .../random-intersections-eo.mask.rgb24.ref.png | Bin 0 -> 136632 bytes .../random-intersections-eo.rgb24.ref.png | Bin 0 -> 136632 bytes .../random-intersections-nonzero.argb32.ref.png | Bin 0 -> 142139 bytes ...random-intersections-nonzero.egl.argb32.ref.png | Bin 0 -> 142540 bytes ...andom-intersections-nonzero.mask.argb32.ref.png | Bin 0 -> 142139 bytes ...random-intersections-nonzero.mask.rgb24.ref.png | Bin 0 -> 142139 bytes .../random-intersections-nonzero.rgb24.ref.png | Bin 0 -> 142139 bytes test/reference/raster-source.argb32.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.base.argb32.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.base.rgb24.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.egl.argb32.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.mask.argb32.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.mask.rgb24.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.ps.ref.png | Bin 0 -> 1894 bytes test/reference/raster-source.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.rgb24.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.traps.argb32.ref.png | Bin 0 -> 1209 bytes test/reference/raster-source.traps.rgb24.ref.png | Bin 0 -> 1209 bytes .../record-extend-none-similar.argb32.ref.png | Bin 0 -> 293 bytes .../record-extend-none-similar.base.argb32.ref.png | Bin 0 -> 293 bytes .../record-extend-none-similar.base.rgb24.ref.png | Bin 0 -> 293 bytes .../record-extend-none-similar.egl.argb32.ref.png | Bin 0 -> 293 bytes ...ecord-extend-none-similar.image16.rgb24.ref.png | Bin 0 -> 293 bytes .../record-extend-none-similar.rgb24.ref.png | Bin 0 -> 293 bytes test/reference/record-extend-none.argb32.ref.png | Bin 0 -> 293 bytes .../record-extend-none.base.argb32.ref.png | Bin 0 -> 293 bytes .../record-extend-none.base.rgb24.ref.png | Bin 0 -> 293 bytes .../record-extend-none.egl.argb32.ref.png | Bin 0 -> 264 bytes .../record-extend-none.image16.rgb24.ref.png | Bin 0 -> 293 bytes test/reference/record-extend-none.rgb24.ref.png | Bin 0 -> 293 bytes .../record-extend-pad-similar.argb32.ref.png | Bin 0 -> 298 bytes .../record-extend-pad-similar.base.argb32.ref.png | Bin 0 -> 298 bytes .../record-extend-pad-similar.base.rgb24.ref.png | Bin 0 -> 298 bytes .../record-extend-pad-similar.egl.argb32.ref.png | Bin 0 -> 298 bytes ...record-extend-pad-similar.image16.rgb24.ref.png | Bin 0 -> 298 bytes .../record-extend-pad-similar.rgb24.ref.png | Bin 0 -> 298 bytes test/reference/record-extend-pad.argb32.ref.png | Bin 0 -> 298 bytes .../record-extend-pad.base.argb32.ref.png | Bin 0 -> 298 bytes .../reference/record-extend-pad.base.rgb24.ref.png | Bin 0 -> 298 bytes .../reference/record-extend-pad.egl.argb32.ref.png | Bin 0 -> 314 bytes .../record-extend-pad.image16.rgb24.ref.png | Bin 0 -> 298 bytes test/reference/record-extend-pad.rgb24.ref.png | Bin 0 -> 298 bytes .../record-extend-reflect-similar.argb32.ref.png | Bin 0 -> 335 bytes ...cord-extend-reflect-similar.base.argb32.ref.png | Bin 0 -> 335 bytes ...ecord-extend-reflect-similar.base.rgb24.ref.png | Bin 0 -> 335 bytes ...ecord-extend-reflect-similar.egl.argb32.ref.png | Bin 0 -> 335 bytes ...rd-extend-reflect-similar.image16.rgb24.ref.png | Bin 0 -> 335 bytes .../record-extend-reflect-similar.rgb24.ref.png | Bin 0 -> 335 bytes .../reference/record-extend-reflect.argb32.ref.png | Bin 0 -> 335 bytes .../record-extend-reflect.base.argb32.ref.png | Bin 0 -> 335 bytes .../record-extend-reflect.base.rgb24.ref.png | Bin 0 -> 335 bytes .../record-extend-reflect.egl.argb32.ref.png | Bin 0 -> 364 bytes .../record-extend-reflect.image16.rgb24.ref.png | Bin 0 -> 335 bytes test/reference/record-extend-reflect.rgb24.ref.png | Bin 0 -> 335 bytes .../record-extend-repeat-similar.argb32.ref.png | Bin 0 -> 286 bytes ...ecord-extend-repeat-similar.base.argb32.ref.png | Bin 0 -> 286 bytes ...record-extend-repeat-similar.base.rgb24.ref.png | Bin 0 -> 286 bytes ...record-extend-repeat-similar.egl.argb32.ref.png | Bin 0 -> 286 bytes ...ord-extend-repeat-similar.image16.rgb24.ref.png | Bin 0 -> 286 bytes .../record-extend-repeat-similar.rgb24.ref.png | Bin 0 -> 286 bytes test/reference/record-extend-repeat.argb32.ref.png | Bin 0 -> 286 bytes .../record-extend-repeat.base.argb32.ref.png | Bin 0 -> 286 bytes .../record-extend-repeat.base.rgb24.ref.png | Bin 0 -> 286 bytes .../record-extend-repeat.egl.argb32.ref.png | Bin 0 -> 306 bytes .../record-extend-repeat.image16.rgb24.ref.png | Bin 0 -> 286 bytes test/reference/record-extend-repeat.rgb24.ref.png | Bin 0 -> 286 bytes test/reference/record-fill-alpha.argb32.ref.png | Bin 0 -> 2736 bytes .../record-fill-alpha.base.argb32.ref.png | Bin 0 -> 2824 bytes .../reference/record-fill-alpha.base.rgb24.ref.png | Bin 0 -> 2824 bytes test/reference/record-fill-alpha.base.xfail.png | Bin 0 -> 2853 bytes .../reference/record-fill-alpha.egl.argb32.ref.png | Bin 0 -> 2943 bytes .../record-fill-alpha.image16.rgb24.ref.png | Bin 0 -> 2232 bytes test/reference/record-fill-alpha.ref.png | Bin 2173 -> 2839 bytes test/reference/record-fill-alpha.rgb24.ref.png | Bin 0 -> 2736 bytes test/reference/record-fill-alpha.xfail.png | Bin 0 -> 2839 bytes test/reference/record-mesh.argb32.ref.png | Bin 0 -> 15229 bytes test/reference/record-mesh.base.argb32.ref.png | Bin 0 -> 15229 bytes test/reference/record-mesh.base.rgb24.ref.png | Bin 0 -> 15229 bytes test/reference/record-mesh.egl.argb32.ref.png | Bin 0 -> 15667 bytes test/reference/record-mesh.image16.rgb24.ref.png | Bin 0 -> 9027 bytes test/reference/record-mesh.rgb24.ref.png | Bin 0 -> 15229 bytes .../record-paint-alpha-clip-mask.argb32.ref.png | Bin 0 -> 340 bytes ...ecord-paint-alpha-clip-mask.base.argb32.ref.png | Bin 0 -> 330 bytes ...record-paint-alpha-clip-mask.base.rgb24.ref.png | Bin 0 -> 330 bytes .../record-paint-alpha-clip-mask.base.xfail.png | Bin 0 -> 337 bytes ...record-paint-alpha-clip-mask.egl.argb32.ref.png | Bin 0 -> 435 bytes ...ord-paint-alpha-clip-mask.image16.rgb24.ref.png | Bin 0 -> 352 bytes .../reference/record-paint-alpha-clip-mask.ref.png | Bin 325 -> 333 bytes .../record-paint-alpha-clip-mask.rgb24.ref.png | Bin 0 -> 340 bytes .../record-paint-alpha-clip-mask.xfail.png | Bin 0 -> 333 bytes .../record-paint-alpha-clip.argb32.ref.png | Bin 0 -> 290 bytes .../record-paint-alpha-clip.base.argb32.ref.png | Bin 0 -> 269 bytes .../record-paint-alpha-clip.base.rgb24.ref.png | Bin 0 -> 269 bytes .../record-paint-alpha-clip.egl.argb32.ref.png | Bin 0 -> 371 bytes .../record-paint-alpha-clip.image16.rgb24.ref.png | Bin 0 -> 313 bytes .../record-paint-alpha-clip.rgb24.ref.png | Bin 0 -> 290 bytes .../record-paint-alpha-solid-clip.argb32.ref.png | Bin 0 -> 248 bytes ...cord-paint-alpha-solid-clip.base.argb32.ref.png | Bin 0 -> 248 bytes ...ecord-paint-alpha-solid-clip.base.rgb24.ref.png | Bin 0 -> 248 bytes ...ecord-paint-alpha-solid-clip.egl.argb32.ref.png | Bin 0 -> 314 bytes ...rd-paint-alpha-solid-clip.image16.rgb24.ref.png | Bin 0 -> 274 bytes .../record-paint-alpha-solid-clip.rgb24.ref.png | Bin 0 -> 248 bytes test/reference/record-paint-alpha.argb32.ref.png | Bin 0 -> 224 bytes .../record-paint-alpha.base.argb32.ref.png | Bin 0 -> 224 bytes .../record-paint-alpha.base.rgb24.ref.png | Bin 0 -> 224 bytes .../record-paint-alpha.egl.argb32.ref.png | Bin 0 -> 287 bytes .../record-paint-alpha.image16.rgb24.ref.png | Bin 0 -> 253 bytes test/reference/record-paint-alpha.rgb24.ref.png | Bin 0 -> 224 bytes test/reference/record-paint.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record-paint.base.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record-paint.base.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/record-paint.egl.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record-paint.image16.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/record-paint.rgb24.ref.png | Bin 0 -> 93 bytes .../record-select-font-face.argb32.ref.png | Bin 0 -> 2250 bytes .../record-select-font-face.base.argb32.ref.png | Bin 0 -> 2250 bytes .../record-select-font-face.base.rgb24.ref.png | Bin 0 -> 2250 bytes .../record-select-font-face.image16.rgb24.ref.png | Bin 0 -> 1236 bytes test/reference/record-select-font-face.ref.png | Bin 2473 -> 2245 bytes .../record-select-font-face.rgb24.ref.png | Bin 0 -> 2250 bytes .../record-self-intersecting.argb32.ref.png | Bin 0 -> 168 bytes .../record-self-intersecting.base.argb32.ref.png | Bin 0 -> 208 bytes .../record-self-intersecting.base.rgb24.ref.png | Bin 0 -> 208 bytes .../record-self-intersecting.egl.argb32.ref.png | Bin 0 -> 206 bytes .../record-self-intersecting.image16.rgb24.ref.png | Bin 0 -> 228 bytes .../record-self-intersecting.rgb24.ref.png | Bin 0 -> 168 bytes .../reference/record-text-transform.argb32.ref.png | Bin 0 -> 5579 bytes .../record-text-transform.base.argb32.ref.png | Bin 0 -> 5579 bytes .../record-text-transform.base.rgb24.ref.png | Bin 0 -> 5579 bytes .../record-text-transform.image16.rgb24.ref.png | Bin 0 -> 2688 bytes test/reference/record-text-transform.ref.png | Bin 6200 -> 5281 bytes test/reference/record-text-transform.rgb24.ref.png | Bin 0 -> 5579 bytes .../record1414x-fill-alpha.argb32.ref.png | Bin 0 -> 4129 bytes .../record1414x-fill-alpha.base.argb32.ref.png | Bin 0 -> 4191 bytes .../record1414x-fill-alpha.base.rgb24.ref.png | Bin 0 -> 4191 bytes .../record1414x-fill-alpha.base.xfail.png | Bin 0 -> 4138 bytes .../record1414x-fill-alpha.egl.argb32.ref.png | Bin 0 -> 4536 bytes .../reference/record1414x-fill-alpha.rgb24.ref.png | Bin 0 -> 4129 bytes test/reference/record1414x-fill-alpha.xfail.png | Bin 0 -> 4216 bytes ...ecord1414x-paint-alpha-clip-mask.argb32.ref.png | Bin 0 -> 473 bytes ...1414x-paint-alpha-clip-mask.base.argb32.ref.png | Bin 0 -> 466 bytes ...d1414x-paint-alpha-clip-mask.base.rgb24.ref.png | Bin 0 -> 466 bytes ...d1414x-paint-alpha-clip-mask.egl.argb32.ref.png | Bin 0 -> 483 bytes ...record1414x-paint-alpha-clip-mask.rgb24.ref.png | Bin 0 -> 473 bytes .../record1414x-paint-alpha-clip.argb32.ref.png | Bin 0 -> 378 bytes ...ecord1414x-paint-alpha-clip.base.argb32.ref.png | Bin 0 -> 380 bytes ...record1414x-paint-alpha-clip.base.rgb24.ref.png | Bin 0 -> 380 bytes ...record1414x-paint-alpha-clip.egl.argb32.ref.png | Bin 0 -> 495 bytes .../record1414x-paint-alpha-clip.rgb24.ref.png | Bin 0 -> 378 bytes ...cord1414x-paint-alpha-solid-clip.argb32.ref.png | Bin 0 -> 317 bytes ...414x-paint-alpha-solid-clip.base.argb32.ref.png | Bin 0 -> 317 bytes ...1414x-paint-alpha-solid-clip.base.rgb24.ref.png | Bin 0 -> 317 bytes ...1414x-paint-alpha-solid-clip.egl.argb32.ref.png | Bin 0 -> 409 bytes ...ecord1414x-paint-alpha-solid-clip.rgb24.ref.png | Bin 0 -> 317 bytes .../record1414x-paint-alpha.argb32.ref.png | Bin 0 -> 265 bytes .../record1414x-paint-alpha.base.argb32.ref.png | Bin 0 -> 265 bytes .../record1414x-paint-alpha.base.rgb24.ref.png | Bin 0 -> 265 bytes .../record1414x-paint-alpha.egl.argb32.ref.png | Bin 0 -> 309 bytes .../record1414x-paint-alpha.rgb24.ref.png | Bin 0 -> 265 bytes test/reference/record1414x-paint.argb32.ref.png | Bin 0 -> 95 bytes .../record1414x-paint.base.argb32.ref.png | Bin 0 -> 95 bytes .../reference/record1414x-paint.base.rgb24.ref.png | Bin 0 -> 95 bytes .../reference/record1414x-paint.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/record1414x-paint.rgb24.ref.png | Bin 0 -> 95 bytes .../record1414x-select-font-face.argb32.ref.png | Bin 0 -> 3177 bytes ...ecord1414x-select-font-face.base.argb32.ref.png | Bin 0 -> 3177 bytes ...record1414x-select-font-face.base.rgb24.ref.png | Bin 0 -> 3177 bytes ...record1414x-select-font-face.egl.argb32.ref.png | Bin 0 -> 1999 bytes .../record1414x-select-font-face.rgb24.ref.png | Bin 0 -> 3177 bytes .../record1414x-self-intersecting.argb32.ref.png | Bin 0 -> 394 bytes ...cord1414x-self-intersecting.base.argb32.ref.png | Bin 0 -> 353 bytes ...ecord1414x-self-intersecting.base.rgb24.ref.png | Bin 0 -> 353 bytes ...ecord1414x-self-intersecting.egl.argb32.ref.png | Bin 0 -> 398 bytes .../record1414x-self-intersecting.rgb24.ref.png | Bin 0 -> 394 bytes .../record1414x-text-transform.base.argb32.ref.png | Bin 0 -> 8706 bytes .../record1414x-text-transform.base.rgb24.ref.png | Bin 0 -> 8706 bytes .../record1414x-text-transform.egl.argb32.ref.png | Bin 0 -> 9117 bytes test/reference/record1414x-text-transform.ref.png | Bin 0 -> 8706 bytes test/reference/record2x-fill-alpha.argb32.ref.png | Bin 0 -> 5715 bytes .../record2x-fill-alpha.base.argb32.ref.png | Bin 0 -> 5896 bytes .../record2x-fill-alpha.base.rgb24.ref.png | Bin 0 -> 5896 bytes test/reference/record2x-fill-alpha.base.xfail.png | Bin 0 -> 5724 bytes .../record2x-fill-alpha.egl.argb32.ref.png | Bin 0 -> 6019 bytes test/reference/record2x-fill-alpha.rgb24.ref.png | Bin 0 -> 5715 bytes test/reference/record2x-fill-alpha.xfail.png | Bin 0 -> 5978 bytes .../record2x-paint-alpha-clip-mask.argb32.ref.png | Bin 0 -> 503 bytes ...ord2x-paint-alpha-clip-mask.base.argb32.ref.png | Bin 0 -> 488 bytes ...cord2x-paint-alpha-clip-mask.base.rgb24.ref.png | Bin 0 -> 488 bytes ...cord2x-paint-alpha-clip-mask.egl.argb32.ref.png | Bin 0 -> 337 bytes .../record2x-paint-alpha-clip-mask.rgb24.ref.png | Bin 0 -> 503 bytes .../record2x-paint-alpha-clip.argb32.ref.png | Bin 0 -> 322 bytes .../record2x-paint-alpha-clip.base.argb32.ref.png | Bin 0 -> 322 bytes .../record2x-paint-alpha-clip.base.rgb24.ref.png | Bin 0 -> 322 bytes .../record2x-paint-alpha-clip.egl.argb32.ref.png | Bin 0 -> 389 bytes .../record2x-paint-alpha-clip.rgb24.ref.png | Bin 0 -> 322 bytes .../record2x-paint-alpha-solid-clip.argb32.ref.png | Bin 0 -> 281 bytes ...rd2x-paint-alpha-solid-clip.base.argb32.ref.png | Bin 0 -> 281 bytes ...ord2x-paint-alpha-solid-clip.base.rgb24.ref.png | Bin 0 -> 281 bytes ...ord2x-paint-alpha-solid-clip.egl.argb32.ref.png | Bin 0 -> 322 bytes .../record2x-paint-alpha-solid-clip.rgb24.ref.png | Bin 0 -> 281 bytes test/reference/record2x-paint-alpha.argb32.ref.png | Bin 0 -> 291 bytes .../record2x-paint-alpha.base.argb32.ref.png | Bin 0 -> 291 bytes .../record2x-paint-alpha.base.rgb24.ref.png | Bin 0 -> 291 bytes .../record2x-paint-alpha.egl.argb32.ref.png | Bin 0 -> 352 bytes test/reference/record2x-paint-alpha.rgb24.ref.png | Bin 0 -> 291 bytes test/reference/record2x-paint.argb32.ref.png | Bin 0 -> 98 bytes test/reference/record2x-paint.base.argb32.ref.png | Bin 0 -> 98 bytes test/reference/record2x-paint.base.rgb24.ref.png | Bin 0 -> 98 bytes test/reference/record2x-paint.egl.argb32.ref.png | Bin 0 -> 98 bytes test/reference/record2x-paint.rgb24.ref.png | Bin 0 -> 98 bytes .../record2x-select-font-face.argb32.ref.png | Bin 0 -> 4407 bytes .../record2x-select-font-face.base.argb32.ref.png | Bin 0 -> 4407 bytes .../record2x-select-font-face.base.rgb24.ref.png | Bin 0 -> 4407 bytes .../record2x-select-font-face.egl.argb32.ref.png | Bin 0 -> 2907 bytes .../record2x-select-font-face.rgb24.ref.png | Bin 0 -> 4407 bytes .../record2x-self-intersecting.argb32.ref.png | Bin 0 -> 171 bytes .../record2x-self-intersecting.base.argb32.ref.png | Bin 0 -> 171 bytes .../record2x-self-intersecting.base.rgb24.ref.png | Bin 0 -> 171 bytes .../record2x-self-intersecting.egl.argb32.ref.png | Bin 0 -> 193 bytes .../record2x-self-intersecting.rgb24.ref.png | Bin 0 -> 171 bytes .../record2x-text-transform.base.argb32.ref.png | Bin 0 -> 13476 bytes .../record2x-text-transform.base.rgb24.ref.png | Bin 0 -> 13476 bytes .../record2x-text-transform.egl.argb32.ref.png | Bin 0 -> 14217 bytes test/reference/record2x-text-transform.ref.png | Bin 0 -> 13476 bytes test/reference/record90-fill-alpha.argb32.ref.png | Bin 0 -> 2651 bytes .../record90-fill-alpha.base.argb32.ref.png | Bin 0 -> 2658 bytes .../record90-fill-alpha.base.rgb24.ref.png | Bin 0 -> 2658 bytes .../record90-fill-alpha.egl.argb32.ref.png | Bin 0 -> 2837 bytes test/reference/record90-fill-alpha.rgb24.ref.png | Bin 0 -> 2651 bytes test/reference/record90-fill-alpha.xfail.png | Bin 0 -> 2654 bytes .../record90-paint-alpha-clip-mask.argb32.ref.png | Bin 0 -> 343 bytes ...ord90-paint-alpha-clip-mask.base.argb32.ref.png | Bin 0 -> 332 bytes ...cord90-paint-alpha-clip-mask.base.rgb24.ref.png | Bin 0 -> 332 bytes ...cord90-paint-alpha-clip-mask.egl.argb32.ref.png | Bin 0 -> 425 bytes .../record90-paint-alpha-clip-mask.rgb24.ref.png | Bin 0 -> 343 bytes .../record90-paint-alpha-clip-mask.xfail.png | Bin 0 -> 324 bytes .../record90-paint-alpha-clip.argb32.ref.png | Bin 0 -> 296 bytes .../record90-paint-alpha-clip.base.argb32.ref.png | Bin 0 -> 279 bytes .../record90-paint-alpha-clip.base.rgb24.ref.png | Bin 0 -> 279 bytes .../record90-paint-alpha-clip.egl.argb32.ref.png | Bin 0 -> 384 bytes .../record90-paint-alpha-clip.rgb24.ref.png | Bin 0 -> 296 bytes test/reference/record90-paint-alpha-clip.xfail.png | Bin 0 -> 327 bytes .../record90-paint-alpha-solid-clip.argb32.ref.png | Bin 0 -> 254 bytes ...rd90-paint-alpha-solid-clip.base.argb32.ref.png | Bin 0 -> 254 bytes ...ord90-paint-alpha-solid-clip.base.rgb24.ref.png | Bin 0 -> 254 bytes ...ord90-paint-alpha-solid-clip.egl.argb32.ref.png | Bin 0 -> 323 bytes .../record90-paint-alpha-solid-clip.rgb24.ref.png | Bin 0 -> 254 bytes test/reference/record90-paint-alpha.argb32.ref.png | Bin 0 -> 105 bytes .../record90-paint-alpha.base.argb32.ref.png | Bin 0 -> 105 bytes .../record90-paint-alpha.base.rgb24.ref.png | Bin 0 -> 105 bytes .../record90-paint-alpha.egl.argb32.ref.png | Bin 0 -> 105 bytes test/reference/record90-paint-alpha.rgb24.ref.png | Bin 0 -> 105 bytes test/reference/record90-paint.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record90-paint.base.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record90-paint.base.rgb24.ref.png | Bin 0 -> 93 bytes test/reference/record90-paint.egl.argb32.ref.png | Bin 0 -> 93 bytes test/reference/record90-paint.rgb24.ref.png | Bin 0 -> 93 bytes .../record90-select-font-face.argb32.ref.png | Bin 0 -> 2272 bytes .../record90-select-font-face.base.argb32.ref.png | Bin 0 -> 2272 bytes .../record90-select-font-face.base.rgb24.ref.png | Bin 0 -> 2272 bytes .../record90-select-font-face.egl.argb32.ref.png | Bin 0 -> 1370 bytes .../record90-select-font-face.rgb24.ref.png | Bin 0 -> 2272 bytes .../record90-self-intersecting.argb32.ref.png | Bin 0 -> 167 bytes .../record90-self-intersecting.base.argb32.ref.png | Bin 0 -> 208 bytes .../record90-self-intersecting.base.rgb24.ref.png | Bin 0 -> 208 bytes .../record90-self-intersecting.egl.argb32.ref.png | Bin 0 -> 192 bytes .../record90-self-intersecting.rgb24.ref.png | Bin 0 -> 167 bytes .../record90-text-transform.argb32.ref.png | Bin 0 -> 5811 bytes .../record90-text-transform.base.argb32.ref.png | Bin 0 -> 5811 bytes .../record90-text-transform.base.rgb24.ref.png | Bin 0 -> 5811 bytes .../record90-text-transform.egl.argb32.ref.png | Bin 0 -> 5906 bytes .../record90-text-transform.rgb24.ref.png | Bin 0 -> 5811 bytes ...ecording-surface-extend-none.egl.argb32.ref.png | Bin 0 -> 3440 bytes ...recording-surface-extend-pad.egl.argb32.ref.png | Bin 0 -> 11915 bytes ...rding-surface-extend-reflect.egl.argb32.ref.png | Bin 0 -> 28123 bytes ...ording-surface-extend-repeat.egl.argb32.ref.png | Bin 0 -> 28633 bytes .../recording-surface-over.egl.argb32.ref.png | Bin 0 -> 3440 bytes .../recording-surface-source.egl.argb32.ref.png | Bin 0 -> 3438 bytes .../rectangle-rounding-error.argb32.ref.png | Bin 0 -> 212 bytes .../rectangle-rounding-error.egl.argb32.ref.png | Bin 0 -> 212 bytes .../rectangle-rounding-error.mask.argb32.ref.png | Bin 0 -> 212 bytes .../rectangle-rounding-error.mask.rgb24.ref.png | Bin 0 -> 212 bytes .../rectangle-rounding-error.rgb24.ref.png | Bin 0 -> 212 bytes .../rectilinear-dash-scale-unaligned.ref.png | Bin 0 -> 3738 bytes .../rectilinear-dash-scale-unaligned.traps.ref.png | Bin 0 -> 3289 bytes test/reference/rectilinear-dash-scale.ref.png | Bin 0 -> 651 bytes test/reference/rectilinear-dash.argb32.ref.png | Bin 0 -> 291 bytes test/reference/rectilinear-dash.egl.argb32.ref.png | Bin 0 -> 291 bytes .../reference/rectilinear-dash.mask.argb32.ref.png | Bin 0 -> 291 bytes test/reference/rectilinear-dash.mask.rgb24.ref.png | Bin 0 -> 291 bytes test/reference/rectilinear-dash.rgb24.ref.png | Bin 0 -> 291 bytes test/reference/rectilinear-fill.argb32.ref.png | Bin 0 -> 151 bytes test/reference/rectilinear-fill.egl.argb32.ref.png | Bin 0 -> 151 bytes .../reference/rectilinear-fill.mask.argb32.ref.png | Bin 0 -> 151 bytes test/reference/rectilinear-fill.mask.rgb24.ref.png | Bin 0 -> 151 bytes test/reference/rectilinear-fill.rgb24.ref.png | Bin 0 -> 151 bytes test/reference/rectilinear-grid.argb32.ref.png | Bin 0 -> 569 bytes test/reference/rectilinear-grid.egl.argb32.ref.png | Bin 0 -> 569 bytes .../reference/rectilinear-grid.mask.argb32.ref.png | Bin 0 -> 569 bytes test/reference/rectilinear-grid.mask.rgb24.ref.png | Bin 0 -> 569 bytes test/reference/rectilinear-grid.rgb24.ref.png | Bin 0 -> 569 bytes .../rectilinear-miter-limit.argb32.ref.png | Bin 0 -> 145 bytes .../rectilinear-miter-limit.egl.argb32.ref.png | Bin 0 -> 145 bytes .../rectilinear-miter-limit.mask.argb32.ref.png | Bin 0 -> 145 bytes .../rectilinear-miter-limit.mask.rgb24.ref.png | Bin 0 -> 145 bytes .../rectilinear-miter-limit.rgb24.ref.png | Bin 0 -> 145 bytes test/reference/rectilinear-stroke.argb32.ref.png | Bin 0 -> 172 bytes .../rectilinear-stroke.egl.argb32.ref.png | Bin 0 -> 172 bytes .../rectilinear-stroke.mask.argb32.ref.png | Bin 0 -> 172 bytes .../rectilinear-stroke.mask.rgb24.ref.png | Bin 0 -> 172 bytes test/reference/rectilinear-stroke.rgb24.ref.png | Bin 0 -> 172 bytes test/reference/reflected-stroke.argb32.ref.png | Bin 0 -> 5119 bytes test/reference/reflected-stroke.egl.argb32.ref.png | Bin 0 -> 5210 bytes .../reference/reflected-stroke.mask.argb32.ref.png | Bin 0 -> 5119 bytes test/reference/reflected-stroke.mask.rgb24.ref.png | Bin 0 -> 5119 bytes test/reference/reflected-stroke.rgb24.ref.png | Bin 0 -> 5119 bytes test/reference/rel-path.argb32.ref.png | Bin 0 -> 197 bytes test/reference/rel-path.egl.argb32.ref.png | Bin 0 -> 199 bytes test/reference/rel-path.mask.argb32.ref.png | Bin 0 -> 197 bytes test/reference/rel-path.mask.rgb24.ref.png | Bin 0 -> 216 bytes test/reference/rel-path.rgb24.ref.png | Bin 184 -> 216 bytes test/reference/rgb24-ignore-alpha.argb32.ref.png | Bin 0 -> 97 bytes .../rgb24-ignore-alpha.egl.argb32.ref.png | Bin 0 -> 86 bytes .../rgb24-ignore-alpha.mask.argb32.ref.png | Bin 0 -> 97 bytes .../rgb24-ignore-alpha.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/rgb24-ignore-alpha.rgb24.ref.png | Bin 0 -> 97 bytes .../rotate-clip-image-surface-paint.argb32.ref.png | Bin 0 -> 331 bytes ...te-clip-image-surface-paint.base.argb32.ref.png | Bin 303 -> 331 bytes ...ate-clip-image-surface-paint.base.rgb24.ref.png | Bin 303 -> 331 bytes ...ate-clip-image-surface-paint.egl.argb32.ref.png | Bin 0 -> 354 bytes ...te-clip-image-surface-paint.mask.argb32.ref.png | Bin 0 -> 331 bytes ...ate-clip-image-surface-paint.mask.rgb24.ref.png | Bin 0 -> 331 bytes .../rotate-clip-image-surface-paint.rgb24.ref.png | Bin 0 -> 331 bytes ...image-surface-paint.xlib-fallback.rgb24.ref.png | Bin 0 -> 303 bytes ...p-image-surface-paint.xlib-window.rgb24.ref.png | Bin 0 -> 303 bytes .../rotate-image-surface-paint.argb32.ref.png | Bin 0 -> 220 bytes .../rotate-image-surface-paint.egl.argb32.ref.png | Bin 0 -> 236 bytes .../rotate-image-surface-paint.mask.argb32.ref.png | Bin 0 -> 220 bytes .../rotate-image-surface-paint.mask.rgb24.ref.png | Bin 0 -> 220 bytes .../rotate-image-surface-paint.rgb24.ref.png | Bin 0 -> 220 bytes ...image-surface-paint.xlib-fallback.rgb24.ref.png | Bin 0 -> 220 bytes ...e-image-surface-paint.xlib-window.rgb24.ref.png | Bin 0 -> 220 bytes test/reference/rotated-clip.argb32.ref.png | Bin 0 -> 3773 bytes test/reference/rotated-clip.base.argb32.ref.png | Bin 3922 -> 3912 bytes test/reference/rotated-clip.base.rgb24.ref.png | Bin 3922 -> 3912 bytes test/reference/rotated-clip.egl.argb32.ref.png | Bin 0 -> 4055 bytes test/reference/rotated-clip.mask.argb32.ref.png | Bin 0 -> 3697 bytes test/reference/rotated-clip.mask.rgb24.ref.png | Bin 0 -> 3697 bytes test/reference/rotated-clip.rgb24.ref.png | Bin 0 -> 3773 bytes .../rounded-rectangle-fill.argb32.ref.png | Bin 0 -> 787 bytes .../rounded-rectangle-fill.egl.argb32.ref.png | Bin 0 -> 796 bytes .../rounded-rectangle-fill.mask.argb32.ref.png | Bin 0 -> 787 bytes .../rounded-rectangle-fill.mask.rgb24.ref.png | Bin 0 -> 787 bytes .../reference/rounded-rectangle-fill.rgb24.ref.png | Bin 0 -> 787 bytes .../rounded-rectangle-stroke.argb32.ref.png | Bin 0 -> 951 bytes .../rounded-rectangle-stroke.egl.argb32.ref.png | Bin 0 -> 972 bytes .../rounded-rectangle-stroke.mask.argb32.ref.png | Bin 0 -> 951 bytes .../rounded-rectangle-stroke.mask.rgb24.ref.png | Bin 0 -> 951 bytes .../rounded-rectangle-stroke.rgb24.ref.png | Bin 0 -> 951 bytes .../scale-down-source-surface-paint.argb32.ref.png | Bin 0 -> 96 bytes ...le-down-source-surface-paint.egl.argb32.ref.png | Bin 0 -> 96 bytes ...e-down-source-surface-paint.mask.argb32.ref.png | Bin 0 -> 96 bytes ...le-down-source-surface-paint.mask.rgb24.ref.png | Bin 0 -> 96 bytes .../scale-down-source-surface-paint.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/scale-offset-image.argb32.ref.png | Bin 0 -> 9748 bytes .../scale-offset-image.egl.argb32.ref.png | Bin 0 -> 9955 bytes .../scale-offset-image.mask.argb32.ref.png | Bin 0 -> 9748 bytes .../scale-offset-image.mask.rgb24.ref.png | Bin 0 -> 9748 bytes test/reference/scale-offset-image.ref.png | Bin 7695 -> 7688 bytes test/reference/scale-offset-image.rgb24.ref.png | Bin 0 -> 9748 bytes test/reference/scale-offset-similar.argb32.ref.png | Bin 0 -> 9748 bytes .../scale-offset-similar.egl.argb32.ref.png | Bin 0 -> 9334 bytes .../scale-offset-similar.mask.argb32.ref.png | Bin 0 -> 9748 bytes .../scale-offset-similar.mask.rgb24.ref.png | Bin 0 -> 9748 bytes test/reference/scale-offset-similar.ref.png | Bin 7695 -> 7688 bytes test/reference/scale-offset-similar.rgb24.ref.png | Bin 0 -> 9748 bytes .../scale-offset-xlib-fallback.rgb24.ref.png | Bin 0 -> 9120 bytes .../scale-offset-xlib-window.rgb24.ref.png | Bin 0 -> 9120 bytes test/reference/scale-offset-xlib.argb32.ref.png | Bin 0 -> 9120 bytes test/reference/scale-offset-xlib.rgb24.ref.png | Bin 0 -> 9120 bytes .../scale-source-surface-paint.argb32.ref.png | Bin 0 -> 128 bytes .../scale-source-surface-paint.egl.argb32.ref.png | Bin 0 -> 128 bytes .../scale-source-surface-paint.mask.argb32.ref.png | Bin 0 -> 128 bytes .../scale-source-surface-paint.mask.rgb24.ref.png | Bin 0 -> 117 bytes .../scale-source-surface-paint.rgb24.ref.png | Bin 136 -> 117 bytes test/reference/select-font-face.argb32.ref.png | Bin 0 -> 2250 bytes .../reference/select-font-face.base.argb32.ref.png | Bin 2245 -> 2250 bytes test/reference/select-font-face.base.rgb24.ref.png | Bin 2245 -> 2250 bytes .../reference/select-font-face.mask.argb32.ref.png | Bin 0 -> 2250 bytes test/reference/select-font-face.mask.rgb24.ref.png | Bin 0 -> 2250 bytes test/reference/select-font-face.rgb24.ref.png | Bin 0 -> 2250 bytes .../select-font-face.traps.argb32.ref.png | Bin 2245 -> 2250 bytes test/reference/select-font-face.traps.ref.png | Bin 0 -> 2250 bytes .../reference/select-font-face.traps.rgb24.ref.png | Bin 2245 -> 2250 bytes .../reference/self-copy-overlap.egl.argb32.ref.png | Bin 0 -> 2322 bytes .../self-copy-overlap.mask.argb32.ref.png | Bin 0 -> 1140 bytes .../reference/self-copy-overlap.mask.rgb24.ref.png | Bin 0 -> 213 bytes test/reference/self-copy.argb32.ref.png | Bin 0 -> 257 bytes test/reference/self-copy.egl.argb32.ref.png | Bin 0 -> 257 bytes test/reference/self-copy.mask.argb32.ref.png | Bin 0 -> 257 bytes test/reference/self-copy.mask.rgb24.ref.png | Bin 0 -> 257 bytes test/reference/self-copy.rgb24.ref.png | Bin 0 -> 257 bytes test/reference/self-intersecting.argb32.ref.png | Bin 0 -> 168 bytes .../reference/self-intersecting.egl.argb32.ref.png | Bin 0 -> 168 bytes .../self-intersecting.mask.argb32.ref.png | Bin 0 -> 168 bytes .../reference/self-intersecting.mask.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/self-intersecting.rgb24.ref.png | Bin 0 -> 168 bytes test/reference/set-source.argb32.ref.png | Bin 0 -> 101 bytes test/reference/set-source.egl.argb32.ref.png | Bin 0 -> 132 bytes test/reference/set-source.mask.argb32.ref.png | Bin 0 -> 101 bytes test/reference/set-source.mask.rgb24.ref.png | Bin 0 -> 101 bytes test/reference/set-source.rgb24.ref.png | Bin 120 -> 101 bytes test/reference/shape-general-convex.argb32.ref.png | Bin 0 -> 2742 bytes .../shape-general-convex.egl.argb32.ref.png | Bin 0 -> 2959 bytes .../shape-general-convex.mask.argb32.ref.png | Bin 0 -> 2742 bytes .../shape-general-convex.mask.rgb24.ref.png | Bin 0 -> 2742 bytes test/reference/shape-general-convex.rgb24.ref.png | Bin 0 -> 2742 bytes test/reference/shape-sierpinski.argb32.ref.png | Bin 0 -> 63714 bytes test/reference/shape-sierpinski.egl.argb32.ref.png | Bin 0 -> 63922 bytes .../reference/shape-sierpinski.mask.argb32.ref.png | Bin 0 -> 63714 bytes test/reference/shape-sierpinski.mask.rgb24.ref.png | Bin 0 -> 63714 bytes test/reference/shape-sierpinski.rgb24.ref.png | Bin 0 -> 63714 bytes test/reference/show-glyphs-advance.argb32.ref.png | Bin 0 -> 1394 bytes .../show-glyphs-advance.base.argb32.ref.png | Bin 1395 -> 1394 bytes .../show-glyphs-advance.base.rgb24.ref.png | Bin 1395 -> 1394 bytes .../show-glyphs-advance.egl.argb32.ref.png | Bin 0 -> 1393 bytes .../show-glyphs-advance.mask.argb32.ref.png | Bin 0 -> 1394 bytes .../show-glyphs-advance.mask.rgb24.ref.png | Bin 0 -> 1394 bytes test/reference/show-glyphs-advance.rgb24.ref.png | Bin 0 -> 1394 bytes .../show-glyphs-advance.traps.argb32.ref.png | Bin 1395 -> 1394 bytes test/reference/show-glyphs-advance.traps.ref.png | Bin 0 -> 1394 bytes .../show-glyphs-advance.traps.rgb24.ref.png | Bin 1395 -> 1394 bytes test/reference/show-glyphs-many.argb32.ref.png | Bin 0 -> 96 bytes test/reference/show-glyphs-many.egl.argb32.ref.png | Bin 0 -> 96 bytes .../reference/show-glyphs-many.mask.argb32.ref.png | Bin 0 -> 96 bytes test/reference/show-glyphs-many.mask.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/show-glyphs-many.rgb24.ref.png | Bin 0 -> 96 bytes .../show-text-current-point.argb32.ref.png | Bin 0 -> 2151 bytes .../show-text-current-point.base.argb32.ref.png | Bin 2185 -> 2151 bytes .../show-text-current-point.base.rgb24.ref.png | Bin 2185 -> 2151 bytes .../show-text-current-point.mask.argb32.ref.png | Bin 0 -> 2151 bytes .../show-text-current-point.mask.rgb24.ref.png | Bin 0 -> 2151 bytes .../show-text-current-point.rgb24.ref.png | Bin 0 -> 2151 bytes .../show-text-current-point.traps.argb32.ref.png | Bin 2185 -> 2151 bytes .../show-text-current-point.traps.ref.png | Bin 0 -> 2151 bytes .../show-text-current-point.traps.rgb24.ref.png | Bin 2185 -> 2151 bytes test/reference/skew-extreme.argb32.ref.png | Bin 0 -> 799 bytes test/reference/skew-extreme.egl.argb32.ref.png | Bin 0 -> 842 bytes test/reference/skew-extreme.mask.argb32.ref.png | Bin 0 -> 799 bytes test/reference/skew-extreme.mask.rgb24.ref.png | Bin 0 -> 799 bytes test/reference/skew-extreme.rgb24.ref.png | Bin 0 -> 799 bytes test/reference/smask-fill.argb32.ref.png | Bin 0 -> 1197 bytes test/reference/smask-fill.egl.argb32.ref.png | Bin 0 -> 1642 bytes test/reference/smask-fill.mask.argb32.ref.png | Bin 0 -> 1197 bytes test/reference/smask-fill.mask.rgb24.ref.png | Bin 0 -> 1197 bytes test/reference/smask-fill.rgb24.ref.png | Bin 0 -> 1197 bytes test/reference/smask-image-mask.argb32.ref.png | Bin 0 -> 619 bytes test/reference/smask-image-mask.egl.argb32.ref.png | Bin 0 -> 1258 bytes .../reference/smask-image-mask.mask.argb32.ref.png | Bin 0 -> 619 bytes test/reference/smask-image-mask.mask.rgb24.ref.png | Bin 0 -> 619 bytes test/reference/smask-image-mask.rgb24.ref.png | Bin 0 -> 619 bytes .../smask-image-mask.xlib-fallback.rgb24.ref.png | Bin 0 -> 619 bytes .../smask-image-mask.xlib-window.rgb24.ref.png | Bin 0 -> 619 bytes test/reference/smask-mask.argb32.ref.png | Bin 0 -> 2353 bytes test/reference/smask-mask.egl.argb32.ref.png | Bin 0 -> 2669 bytes test/reference/smask-mask.mask.argb32.ref.png | Bin 0 -> 2353 bytes test/reference/smask-mask.mask.rgb24.ref.png | Bin 0 -> 2353 bytes test/reference/smask-mask.rgb24.ref.png | Bin 0 -> 2353 bytes test/reference/smask-paint.argb32.ref.png | Bin 0 -> 2469 bytes test/reference/smask-paint.egl.argb32.ref.png | Bin 0 -> 2714 bytes test/reference/smask-paint.mask.argb32.ref.png | Bin 0 -> 2469 bytes test/reference/smask-paint.mask.rgb24.ref.png | Bin 0 -> 2469 bytes test/reference/smask-paint.rgb24.ref.png | Bin 0 -> 2469 bytes test/reference/smask-stroke.argb32.ref.png | Bin 0 -> 1709 bytes test/reference/smask-stroke.egl.argb32.ref.png | Bin 0 -> 1733 bytes test/reference/smask-stroke.mask.argb32.ref.png | Bin 0 -> 1709 bytes test/reference/smask-stroke.mask.rgb24.ref.png | Bin 0 -> 1709 bytes test/reference/smask-stroke.rgb24.ref.png | Bin 0 -> 1709 bytes test/reference/smask-text.argb32.ref.png | Bin 0 -> 1661 bytes test/reference/smask-text.base.argb32.ref.png | Bin 1624 -> 1660 bytes test/reference/smask-text.base.rgb24.ref.png | Bin 1624 -> 1660 bytes test/reference/smask-text.mask.argb32.ref.png | Bin 0 -> 1660 bytes test/reference/smask-text.mask.rgb24.ref.png | Bin 0 -> 1660 bytes test/reference/smask-text.rgb24.ref.png | Bin 0 -> 1661 bytes test/reference/smask-text.traps.argb32.ref.png | Bin 1623 -> 1661 bytes test/reference/smask-text.traps.ref.png | Bin 0 -> 1661 bytes test/reference/smask-text.traps.rgb24.ref.png | Bin 1623 -> 1661 bytes test/reference/smask.argb32.ref.png | Bin 0 -> 3414 bytes test/reference/smask.base.argb32.ref.png | Bin 3404 -> 3393 bytes test/reference/smask.base.rgb24.ref.png | Bin 3404 -> 3393 bytes test/reference/smask.egl.argb32.ref.png | Bin 0 -> 3874 bytes test/reference/smask.mask.argb32.ref.png | Bin 0 -> 3413 bytes test/reference/smask.mask.rgb24.ref.png | Bin 0 -> 3413 bytes test/reference/smask.rgb24.ref.png | Bin 0 -> 3414 bytes test/reference/smask.traps.argb32.ref.png | Bin 3404 -> 3393 bytes test/reference/smask.traps.ref.png | Bin 0 -> 3393 bytes test/reference/smask.traps.rgb24.ref.png | Bin 3404 -> 3393 bytes .../solid-pattern-cache-stress.argb32.ref.png | Bin 0 -> 87 bytes .../solid-pattern-cache-stress.egl.argb32.ref.png | Bin 0 -> 87 bytes .../solid-pattern-cache-stress.mask.argb32.ref.png | Bin 0 -> 87 bytes .../solid-pattern-cache-stress.mask.rgb24.ref.png | Bin 0 -> 87 bytes .../solid-pattern-cache-stress.rgb24.ref.png | Bin 0 -> 87 bytes test/reference/source-clip-scale.argb32.ref.png | Bin 0 -> 136 bytes .../reference/source-clip-scale.egl.argb32.ref.png | Bin 0 -> 182 bytes .../source-clip-scale.mask.argb32.ref.png | Bin 0 -> 136 bytes .../reference/source-clip-scale.mask.rgb24.ref.png | Bin 0 -> 136 bytes test/reference/source-clip-scale.recording.ref.png | Bin 0 -> 116 bytes test/reference/source-clip-scale.rgb24.ref.png | Bin 0 -> 136 bytes test/reference/source-clip.argb32.ref.png | Bin 0 -> 111 bytes test/reference/source-clip.egl.argb32.ref.png | Bin 0 -> 111 bytes test/reference/source-clip.mask.argb32.ref.png | Bin 0 -> 111 bytes test/reference/source-clip.mask.rgb24.ref.png | Bin 0 -> 111 bytes test/reference/source-clip.rgb24.ref.png | Bin 0 -> 111 bytes .../source-surface-scale-paint.argb32.ref.png | Bin 0 -> 120 bytes .../source-surface-scale-paint.egl.argb32.ref.png | Bin 0 -> 100 bytes .../source-surface-scale-paint.mask.argb32.ref.png | Bin 0 -> 120 bytes .../source-surface-scale-paint.mask.rgb24.ref.png | Bin 0 -> 114 bytes .../source-surface-scale-paint.rgb24.ref.png | Bin 133 -> 114 bytes test/reference/spline-decomposition.argb32.ref.png | Bin 0 -> 19520 bytes .../spline-decomposition.egl.argb32.ref.png | Bin 0 -> 19536 bytes .../spline-decomposition.mask.argb32.ref.png | Bin 0 -> 19520 bytes .../spline-decomposition.mask.rgb24.ref.png | Bin 0 -> 19520 bytes test/reference/spline-decomposition.rgb24.ref.png | Bin 0 -> 19520 bytes test/reference/stride-12-image.argb32.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.base.argb32.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.base.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.egl.argb32.ref.png | Bin 0 -> 288 bytes test/reference/stride-12-image.image16.ref.png | Bin 0 -> 61197 bytes test/reference/stride-12-image.mask.argb32.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.mask.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.ps.ref.png | Bin 0 -> 77159 bytes test/reference/stride-12-image.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.rgb24.ref.png | Bin 0 -> 81121 bytes .../reference/stride-12-image.traps.argb32.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-image.traps.rgb24.ref.png | Bin 0 -> 81121 bytes .../stride-12-xlib-fallback.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-xlib-window.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-xlib.argb32.ref.png | Bin 0 -> 81121 bytes test/reference/stride-12-xlib.rgb24.ref.png | Bin 0 -> 81121 bytes test/reference/stroke-ctm-caps.argb32.ref.png | Bin 0 -> 942 bytes test/reference/stroke-ctm-caps.egl.argb32.ref.png | Bin 0 -> 956 bytes test/reference/stroke-ctm-caps.mask.argb32.ref.png | Bin 0 -> 942 bytes test/reference/stroke-ctm-caps.mask.rgb24.ref.png | Bin 0 -> 942 bytes test/reference/stroke-ctm-caps.rgb24.ref.png | Bin 0 -> 942 bytes test/reference/stroke-image.argb32.ref.png | Bin 0 -> 1424 bytes test/reference/stroke-image.base.argb32.ref.png | Bin 1458 -> 1467 bytes test/reference/stroke-image.base.rgb24.ref.png | Bin 1458 -> 1467 bytes test/reference/stroke-image.egl.argb32.ref.png | Bin 0 -> 1485 bytes test/reference/stroke-image.mask.argb32.ref.png | Bin 0 -> 1424 bytes test/reference/stroke-image.mask.rgb24.ref.png | Bin 0 -> 1424 bytes test/reference/stroke-image.rgb24.ref.png | Bin 0 -> 1424 bytes test/reference/stroke-image.traps.argb32.ref.png | Bin 1458 -> 1467 bytes test/reference/stroke-image.traps.rgb24.ref.png | Bin 1458 -> 1467 bytes test/reference/stroke-open-box.argb32.ref.png | Bin 0 -> 148 bytes test/reference/stroke-open-box.egl.argb32.ref.png | Bin 0 -> 148 bytes test/reference/stroke-open-box.mask.argb32.ref.png | Bin 0 -> 148 bytes test/reference/stroke-open-box.mask.rgb24.ref.png | Bin 0 -> 148 bytes test/reference/stroke-open-box.rgb24.ref.png | Bin 0 -> 148 bytes test/reference/stroke-pattern.argb32.ref.png | Bin 0 -> 1491 bytes test/reference/stroke-pattern.base.argb32.ref.png | Bin 0 -> 1487 bytes test/reference/stroke-pattern.base.rgb24.ref.png | Bin 0 -> 1487 bytes test/reference/stroke-pattern.egl.argb32.ref.png | Bin 0 -> 1675 bytes test/reference/stroke-pattern.mask.argb32.ref.png | Bin 0 -> 1491 bytes test/reference/stroke-pattern.mask.rgb24.ref.png | Bin 0 -> 1491 bytes test/reference/stroke-pattern.rgb24.ref.png | Bin 0 -> 1491 bytes test/reference/stroke-pattern.traps.argb32.ref.png | Bin 0 -> 1487 bytes test/reference/stroke-pattern.traps.ref.png | Bin 0 -> 1487 bytes test/reference/stroke-pattern.traps.rgb24.ref.png | Bin 0 -> 1487 bytes test/reference/stroke-xlib-fallback.rgb24.ref.png | Bin 0 -> 1467 bytes test/reference/stroke-xlib-window.rgb24.ref.png | Bin 0 -> 1467 bytes test/reference/stroke-xlib.argb32.ref.png | Bin 0 -> 1467 bytes test/reference/stroke-xlib.rgb24.ref.png | Bin 0 -> 1467 bytes .../subsurface-image-repeat.argb32.ref.png | Bin 0 -> 915 bytes .../subsurface-image-repeat.egl.argb32.ref.png | Bin 0 -> 171 bytes .../subsurface-image-repeat.mask.argb32.ref.png | Bin 0 -> 915 bytes .../subsurface-image-repeat.mask.rgb24.ref.png | Bin 0 -> 915 bytes .../subsurface-image-repeat.rgb24.ref.png | Bin 0 -> 915 bytes ...urface-image-repeat.xlib-fallback.rgb24.ref.png | Bin 0 -> 915 bytes ...bsurface-image-repeat.xlib-window.rgb24.ref.png | Bin 0 -> 915 bytes .../subsurface-modify-child.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-child.egl.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-child.mask.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-child.mask.rgb24.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-child.rgb24.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-parent.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-parent.egl.argb32.ref.png | Bin 0 -> 214 bytes .../subsurface-modify-parent.mask.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-parent.mask.rgb24.ref.png | Bin 0 -> 197 bytes .../subsurface-modify-parent.rgb24.ref.png | Bin 0 -> 197 bytes .../subsurface-outside-target.base.argb32.ref.png | Bin 1149 -> 2063 bytes .../subsurface-outside-target.base.rgb24.ref.png | Bin 1005 -> 1648 bytes .../subsurface-outside-target.egl.argb32.ref.png | Bin 0 -> 3845 bytes .../subsurface-outside-target.mask.argb32.ref.png | Bin 0 -> 2063 bytes .../subsurface-outside-target.mask.rgb24.ref.png | Bin 0 -> 1648 bytes .../subsurface-outside-target.traps.argb32.ref.png | Bin 0 -> 2063 bytes .../subsurface-outside-target.traps.rgb24.ref.png | Bin 0 -> 1648 bytes test/reference/subsurface-pad.argb32.ref.png | Bin 0 -> 181 bytes test/reference/subsurface-pad.egl.argb32.ref.png | Bin 0 -> 214 bytes test/reference/subsurface-pad.mask.argb32.ref.png | Bin 0 -> 181 bytes test/reference/subsurface-pad.mask.rgb24.ref.png | Bin 0 -> 181 bytes test/reference/subsurface-pad.rgb24.ref.png | Bin 0 -> 181 bytes test/reference/subsurface-reflect.argb32.ref.png | Bin 0 -> 210 bytes .../subsurface-reflect.egl.argb32.ref.png | Bin 0 -> 214 bytes .../subsurface-reflect.mask.argb32.ref.png | Bin 0 -> 210 bytes .../subsurface-reflect.mask.rgb24.ref.png | Bin 0 -> 210 bytes test/reference/subsurface-reflect.rgb24.ref.png | Bin 0 -> 210 bytes test/reference/subsurface-repeat.argb32.ref.png | Bin 0 -> 197 bytes .../reference/subsurface-repeat.egl.argb32.ref.png | Bin 0 -> 214 bytes .../subsurface-repeat.mask.argb32.ref.png | Bin 0 -> 197 bytes .../reference/subsurface-repeat.mask.rgb24.ref.png | Bin 0 -> 197 bytes test/reference/subsurface-repeat.rgb24.ref.png | Bin 0 -> 197 bytes test/reference/subsurface-scale.argb32.ref.png | Bin 0 -> 5921 bytes .../reference/subsurface-scale.base.argb32.ref.png | Bin 0 -> 5921 bytes test/reference/subsurface-scale.base.rgb24.ref.png | Bin 0 -> 5921 bytes test/reference/subsurface-scale.egl.argb32.ref.png | Bin 0 -> 3285 bytes .../reference/subsurface-scale.mask.argb32.ref.png | Bin 0 -> 5921 bytes test/reference/subsurface-scale.mask.rgb24.ref.png | Bin 0 -> 5921 bytes test/reference/subsurface-scale.rgb24.ref.png | Bin 0 -> 5921 bytes .../subsurface-scale.traps.argb32.ref.png | Bin 0 -> 5921 bytes .../reference/subsurface-scale.traps.rgb24.ref.png | Bin 0 -> 5921 bytes .../subsurface-similar-repeat.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-similar-repeat.egl.argb32.ref.png | Bin 0 -> 171 bytes .../subsurface-similar-repeat.mask.argb32.ref.png | Bin 0 -> 197 bytes .../subsurface-similar-repeat.mask.rgb24.ref.png | Bin 0 -> 197 bytes .../subsurface-similar-repeat.rgb24.ref.png | Bin 0 -> 197 bytes test/reference/subsurface.argb32.ref.png | Bin 0 -> 1811 bytes test/reference/subsurface.base.argb32.ref.png | Bin 1281 -> 1811 bytes test/reference/subsurface.base.rgb24.ref.png | Bin 1281 -> 1811 bytes test/reference/subsurface.egl.argb32.ref.png | Bin 0 -> 1865 bytes test/reference/subsurface.mask.argb32.ref.png | Bin 0 -> 1811 bytes test/reference/subsurface.mask.rgb24.ref.png | Bin 0 -> 1811 bytes test/reference/subsurface.rgb24.ref.png | Bin 0 -> 1811 bytes test/reference/subsurface.traps.argb32.ref.png | Bin 1281 -> 1811 bytes test/reference/subsurface.traps.rgb24.ref.png | Bin 1281 -> 1811 bytes .../surface-pattern-big-scale-down.argb32.ref.png | Bin 0 -> 191 bytes ...rface-pattern-big-scale-down.egl.argb32.ref.png | Bin 0 -> 191 bytes ...face-pattern-big-scale-down.mask.argb32.ref.png | Bin 0 -> 191 bytes ...rface-pattern-big-scale-down.mask.rgb24.ref.png | Bin 0 -> 191 bytes .../surface-pattern-big-scale-down.rgb24.ref.png | Bin 0 -> 191 bytes .../surface-pattern-operator.argb32.ref.png | Bin 4807 -> 5217 bytes .../surface-pattern-operator.egl.argb32.ref.png | Bin 0 -> 7235 bytes .../surface-pattern-operator.mask.argb32.ref.png | Bin 0 -> 5217 bytes .../surface-pattern-operator.mask.rgb24.ref.png | Bin 0 -> 1942 bytes .../surface-pattern-operator.rgb24.ref.png | Bin 1866 -> 1942 bytes ...e-pattern-scale-down-extend-none.argb32.ref.png | Bin 0 -> 329 bytes ...ttern-scale-down-extend-none.egl.argb32.ref.png | Bin 0 -> 328 bytes ...tern-scale-down-extend-none.mask.argb32.ref.png | Bin 0 -> 329 bytes ...ttern-scale-down-extend-none.mask.rgb24.ref.png | Bin 0 -> 329 bytes ...ce-pattern-scale-down-extend-none.rgb24.ref.png | Bin 0 -> 329 bytes ...ce-pattern-scale-down-extend-pad.argb32.ref.png | Bin 0 -> 320 bytes ...attern-scale-down-extend-pad.egl.argb32.ref.png | Bin 0 -> 322 bytes ...ttern-scale-down-extend-pad.mask.argb32.ref.png | Bin 0 -> 320 bytes ...attern-scale-down-extend-pad.mask.rgb24.ref.png | Bin 0 -> 320 bytes ...ace-pattern-scale-down-extend-pad.rgb24.ref.png | Bin 0 -> 320 bytes ...attern-scale-down-extend-reflect.argb32.ref.png | Bin 0 -> 328 bytes ...rn-scale-down-extend-reflect.egl.argb32.ref.png | Bin 0 -> 332 bytes ...n-scale-down-extend-reflect.mask.argb32.ref.png | Bin 0 -> 328 bytes ...rn-scale-down-extend-reflect.mask.rgb24.ref.png | Bin 0 -> 328 bytes ...pattern-scale-down-extend-reflect.rgb24.ref.png | Bin 0 -> 328 bytes ...pattern-scale-down-extend-repeat.argb32.ref.png | Bin 0 -> 330 bytes ...ern-scale-down-extend-repeat.egl.argb32.ref.png | Bin 0 -> 333 bytes ...rn-scale-down-extend-repeat.mask.argb32.ref.png | Bin 0 -> 330 bytes ...ern-scale-down-extend-repeat.mask.rgb24.ref.png | Bin 0 -> 330 bytes ...-pattern-scale-down-extend-repeat.rgb24.ref.png | Bin 0 -> 330 bytes .../surface-pattern-scale-down.argb32.ref.png | Bin 0 -> 1326 bytes .../surface-pattern-scale-down.egl.argb32.ref.png | Bin 0 -> 1326 bytes .../surface-pattern-scale-down.mask.argb32.ref.png | Bin 0 -> 1326 bytes .../surface-pattern-scale-down.mask.rgb24.ref.png | Bin 0 -> 1326 bytes .../surface-pattern-scale-down.rgb24.ref.png | Bin 0 -> 1326 bytes .../surface-pattern-scale-up.argb32.ref.png | Bin 0 -> 4020 bytes .../surface-pattern-scale-up.egl.argb32.ref.png | Bin 0 -> 4977 bytes .../surface-pattern-scale-up.mask.argb32.ref.png | Bin 0 -> 4020 bytes .../surface-pattern-scale-up.mask.rgb24.ref.png | Bin 0 -> 4020 bytes .../surface-pattern-scale-up.rgb24.ref.png | Bin 0 -> 4020 bytes test/reference/surface-pattern.argb32.ref.png | Bin 0 -> 11088 bytes test/reference/surface-pattern.egl.argb32.ref.png | Bin 0 -> 11767 bytes test/reference/surface-pattern.mask.argb32.ref.png | Bin 0 -> 11088 bytes test/reference/surface-pattern.mask.rgb24.ref.png | Bin 0 -> 11088 bytes test/reference/surface-pattern.rgb24.ref.png | Bin 0 -> 11088 bytes .../svg-surface-source.egl.argb32.ref.png | Bin 0 -> 377 bytes .../svg-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../svg-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/text-antialias-gray.argb32.ref.png | Bin 0 -> 966 bytes .../text-antialias-gray.base.argb32.ref.png | Bin 975 -> 966 bytes .../text-antialias-gray.base.rgb24.ref.png | Bin 975 -> 966 bytes .../text-antialias-gray.mask.argb32.ref.png | Bin 0 -> 966 bytes .../text-antialias-gray.mask.rgb24.ref.png | Bin 0 -> 966 bytes test/reference/text-antialias-gray.rgb24.ref.png | Bin 0 -> 966 bytes .../text-antialias-gray.traps.argb32.ref.png | Bin 975 -> 966 bytes test/reference/text-antialias-gray.traps.ref.png | Bin 0 -> 966 bytes .../text-antialias-gray.traps.rgb24.ref.png | Bin 975 -> 966 bytes test/reference/text-antialias-none.argb32.ref.png | Bin 0 -> 265 bytes .../text-antialias-none.mask.argb32.ref.png | Bin 0 -> 265 bytes .../text-antialias-none.mask.rgb24.ref.png | Bin 0 -> 265 bytes test/reference/text-antialias-none.rgb24.ref.png | Bin 0 -> 265 bytes test/reference/text-antialias-none.traps.ref.png | Bin 0 -> 265 bytes .../text-antialias-subpixel-bgr.argb32.ref.png | Bin 0 -> 1005 bytes ...text-antialias-subpixel-bgr.base.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-bgr.base.rgb24.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-bgr.egl.argb32.ref.png | Bin 0 -> 956 bytes .../text-antialias-subpixel-bgr.image16.ref.png | Bin 0 -> 863 bytes ...text-antialias-subpixel-bgr.mask.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-bgr.mask.rgb24.ref.png | Bin 0 -> 917 bytes test/reference/text-antialias-subpixel-bgr.ref.png | Bin 0 -> 1001 bytes .../text-antialias-subpixel-bgr.rgb24.ref.png | Bin 0 -> 1005 bytes ...ext-antialias-subpixel-bgr.traps.argb32.ref.png | Bin 0 -> 1005 bytes .../text-antialias-subpixel-bgr.traps.ref.png | Bin 0 -> 1005 bytes ...text-antialias-subpixel-bgr.traps.rgb24.ref.png | Bin 0 -> 1005 bytes .../text-antialias-subpixel-rgb.argb32.ref.png | Bin 0 -> 1013 bytes ...text-antialias-subpixel-rgb.base.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-rgb.base.rgb24.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-rgb.egl.argb32.ref.png | Bin 0 -> 956 bytes .../text-antialias-subpixel-rgb.image16.ref.png | Bin 0 -> 863 bytes ...text-antialias-subpixel-rgb.mask.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel-rgb.mask.rgb24.ref.png | Bin 0 -> 917 bytes test/reference/text-antialias-subpixel-rgb.ref.png | Bin 0 -> 1004 bytes .../text-antialias-subpixel-rgb.rgb24.ref.png | Bin 0 -> 1013 bytes ...ext-antialias-subpixel-rgb.traps.argb32.ref.png | Bin 0 -> 1013 bytes .../text-antialias-subpixel-rgb.traps.ref.png | Bin 0 -> 1013 bytes ...text-antialias-subpixel-rgb.traps.rgb24.ref.png | Bin 0 -> 1013 bytes .../text-antialias-subpixel-vbgr.argb32.ref.png | Bin 0 -> 985 bytes ...ext-antialias-subpixel-vbgr.base.argb32.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vbgr.base.rgb24.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vbgr.egl.argb32.ref.png | Bin 0 -> 956 bytes .../text-antialias-subpixel-vbgr.image16.ref.png | Bin 0 -> 864 bytes ...ext-antialias-subpixel-vbgr.mask.argb32.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vbgr.mask.rgb24.ref.png | Bin 0 -> 932 bytes .../reference/text-antialias-subpixel-vbgr.ref.png | Bin 0 -> 992 bytes .../text-antialias-subpixel-vbgr.rgb24.ref.png | Bin 0 -> 985 bytes ...xt-antialias-subpixel-vbgr.traps.argb32.ref.png | Bin 0 -> 985 bytes .../text-antialias-subpixel-vbgr.traps.ref.png | Bin 0 -> 985 bytes ...ext-antialias-subpixel-vbgr.traps.rgb24.ref.png | Bin 0 -> 985 bytes .../text-antialias-subpixel-vrgb.argb32.ref.png | Bin 0 -> 1009 bytes ...ext-antialias-subpixel-vrgb.base.argb32.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vrgb.base.rgb24.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vrgb.egl.argb32.ref.png | Bin 0 -> 956 bytes .../text-antialias-subpixel-vrgb.image16.ref.png | Bin 0 -> 862 bytes ...ext-antialias-subpixel-vrgb.mask.argb32.ref.png | Bin 0 -> 932 bytes ...text-antialias-subpixel-vrgb.mask.rgb24.ref.png | Bin 0 -> 932 bytes .../reference/text-antialias-subpixel-vrgb.ref.png | Bin 0 -> 1004 bytes .../text-antialias-subpixel-vrgb.rgb24.ref.png | Bin 0 -> 1009 bytes ...xt-antialias-subpixel-vrgb.traps.argb32.ref.png | Bin 0 -> 1009 bytes .../text-antialias-subpixel-vrgb.traps.ref.png | Bin 0 -> 1009 bytes ...ext-antialias-subpixel-vrgb.traps.rgb24.ref.png | Bin 0 -> 1009 bytes .../text-antialias-subpixel.argb32.ref.png | Bin 0 -> 1013 bytes .../text-antialias-subpixel.base.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel.base.rgb24.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel.mask.argb32.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel.mask.rgb24.ref.png | Bin 0 -> 917 bytes .../text-antialias-subpixel.rgb24.ref.png | Bin 0 -> 1013 bytes .../text-antialias-subpixel.traps.argb32.ref.png | Bin 1004 -> 1013 bytes .../text-antialias-subpixel.traps.ref.png | Bin 0 -> 1013 bytes .../text-antialias-subpixel.traps.rgb24.ref.png | Bin 1004 -> 1013 bytes test/reference/text-glyph-range.argb32.ref.png | Bin 0 -> 1928 bytes .../reference/text-glyph-range.base.argb32.ref.png | Bin 1991 -> 1979 bytes test/reference/text-glyph-range.base.rgb24.ref.png | Bin 1991 -> 1979 bytes test/reference/text-glyph-range.egl.argb32.ref.png | Bin 0 -> 2284 bytes .../reference/text-glyph-range.mask.argb32.ref.png | Bin 0 -> 1928 bytes test/reference/text-glyph-range.mask.rgb24.ref.png | Bin 0 -> 1928 bytes test/reference/text-glyph-range.rgb24.ref.png | Bin 0 -> 1928 bytes .../text-glyph-range.traps.argb32.ref.png | Bin 1991 -> 1979 bytes test/reference/text-glyph-range.traps.ref.png | Bin 0 -> 1979 bytes .../reference/text-glyph-range.traps.rgb24.ref.png | Bin 1991 -> 1979 bytes test/reference/text-pattern.argb32.ref.png | Bin 0 -> 3455 bytes test/reference/text-pattern.base.argb32.ref.png | Bin 1695 -> 3497 bytes test/reference/text-pattern.base.rgb24.ref.png | Bin 1397 -> 2707 bytes test/reference/text-pattern.mask.argb32.ref.png | Bin 0 -> 3455 bytes test/reference/text-pattern.mask.rgb24.ref.png | Bin 0 -> 2684 bytes test/reference/text-pattern.rgb24.ref.png | Bin 0 -> 2684 bytes test/reference/text-pattern.traps.argb32.ref.png | Bin 1695 -> 3497 bytes test/reference/text-pattern.traps.rgb24.ref.png | Bin 1397 -> 2707 bytes test/reference/text-rotate.base.argb32.ref.png | Bin 16599 -> 16597 bytes test/reference/text-rotate.base.rgb24.ref.png | Bin 16599 -> 16597 bytes test/reference/text-rotate.mask.argb32.ref.png | Bin 0 -> 16655 bytes test/reference/text-rotate.mask.rgb24.ref.png | Bin 0 -> 16655 bytes test/reference/text-rotate.ref.png | Bin 14682 -> 16667 bytes test/reference/text-rotate.traps.argb32.ref.png | Bin 16599 -> 16597 bytes test/reference/text-rotate.traps.ref.png | Bin 0 -> 16597 bytes test/reference/text-rotate.traps.rgb24.ref.png | Bin 16599 -> 16597 bytes test/reference/text-transform.argb32.ref.png | Bin 0 -> 5579 bytes test/reference/text-transform.mask.argb32.ref.png | Bin 0 -> 5579 bytes test/reference/text-transform.mask.rgb24.ref.png | Bin 0 -> 5579 bytes test/reference/text-transform.rgb24.ref.png | Bin 0 -> 5579 bytes test/reference/tiger.argb32.ref.png | Bin 0 -> 93916 bytes test/reference/tiger.egl.argb32.ref.png | Bin 0 -> 100690 bytes test/reference/tiger.mask.argb32.ref.png | Bin 0 -> 93916 bytes test/reference/tiger.mask.rgb24.ref.png | Bin 0 -> 93916 bytes test/reference/tiger.ref.png | Bin 71110 -> 71094 bytes test/reference/tiger.rgb24.ref.png | Bin 0 -> 93916 bytes test/reference/tighten-bounds.argb32.ref.png | Bin 8972 -> 9115 bytes test/reference/tighten-bounds.base.argb32.ref.png | Bin 8486 -> 8490 bytes test/reference/tighten-bounds.base.rgb24.ref.png | Bin 7856 -> 7847 bytes test/reference/tighten-bounds.rgb24.ref.png | Bin 8188 -> 8256 bytes test/reference/transforms.argb32.ref.png | Bin 0 -> 348 bytes test/reference/transforms.egl.argb32.ref.png | Bin 0 -> 350 bytes test/reference/transforms.mask.argb32.ref.png | Bin 0 -> 348 bytes test/reference/transforms.mask.rgb24.ref.png | Bin 0 -> 348 bytes test/reference/transforms.rgb24.ref.png | Bin 0 -> 348 bytes .../translate-show-surface.argb32.ref.png | Bin 0 -> 96 bytes .../translate-show-surface.egl.argb32.ref.png | Bin 0 -> 92 bytes .../translate-show-surface.mask.argb32.ref.png | Bin 0 -> 96 bytes .../translate-show-surface.mask.rgb24.ref.png | Bin 0 -> 96 bytes .../reference/translate-show-surface.rgb24.ref.png | Bin 0 -> 96 bytes test/reference/trap-clip.argb32.ref.png | Bin 0 -> 5810 bytes test/reference/trap-clip.base.argb32.ref.png | Bin 5753 -> 5651 bytes test/reference/trap-clip.base.rgb24.ref.png | Bin 5379 -> 5351 bytes test/reference/trap-clip.egl.argb32.ref.png | Bin 0 -> 6543 bytes test/reference/trap-clip.mask.argb32.ref.png | Bin 0 -> 6162 bytes test/reference/trap-clip.mask.rgb24.ref.png | Bin 0 -> 5606 bytes test/reference/trap-clip.rgb24.ref.png | Bin 5328 -> 5433 bytes test/reference/twin-antialias-gray.argb32.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-gray.base.argb32.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-gray.base.rgb24.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-gray.egl.argb32.ref.png | Bin 0 -> 4062 bytes .../twin-antialias-gray.mask.argb32.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-gray.mask.rgb24.ref.png | Bin 0 -> 3990 bytes test/reference/twin-antialias-gray.rgb24.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-gray.traps.argb32.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-gray.traps.rgb24.ref.png | Bin 4053 -> 4392 bytes test/reference/twin-antialias-mixed.argb32.ref.png | Bin 0 -> 2230 bytes .../twin-antialias-mixed.base.argb32.ref.png | Bin 1639 -> 2230 bytes .../twin-antialias-mixed.base.rgb24.ref.png | Bin 1639 -> 2230 bytes .../twin-antialias-mixed.egl.argb32.ref.png | Bin 0 -> 2354 bytes .../twin-antialias-mixed.mask.argb32.ref.png | Bin 0 -> 2230 bytes .../twin-antialias-mixed.mask.rgb24.ref.png | Bin 0 -> 2230 bytes test/reference/twin-antialias-mixed.rgb24.ref.png | Bin 0 -> 2230 bytes .../twin-antialias-mixed.traps.argb32.ref.png | Bin 1639 -> 2230 bytes .../twin-antialias-mixed.traps.rgb24.ref.png | Bin 1639 -> 2230 bytes test/reference/twin-antialias-none.argb32.ref.png | Bin 0 -> 690 bytes .../twin-antialias-none.base.argb32.ref.png | Bin 747 -> 738 bytes .../twin-antialias-none.base.rgb24.ref.png | Bin 747 -> 738 bytes .../twin-antialias-none.egl.argb32.ref.png | Bin 0 -> 690 bytes .../twin-antialias-none.mask.argb32.ref.png | Bin 0 -> 690 bytes .../twin-antialias-none.mask.rgb24.ref.png | Bin 0 -> 690 bytes test/reference/twin-antialias-none.rgb24.ref.png | Bin 0 -> 690 bytes .../twin-antialias-none.traps.argb32.ref.png | Bin 747 -> 738 bytes .../twin-antialias-none.traps.rgb24.ref.png | Bin 747 -> 738 bytes .../twin-antialias-subpixel.argb32.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-subpixel.base.argb32.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-subpixel.base.rgb24.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-subpixel.egl.argb32.ref.png | Bin 0 -> 4062 bytes .../twin-antialias-subpixel.mask.argb32.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-subpixel.mask.rgb24.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-subpixel.rgb24.ref.png | Bin 0 -> 3990 bytes .../twin-antialias-subpixel.traps.argb32.ref.png | Bin 4053 -> 4392 bytes .../twin-antialias-subpixel.traps.rgb24.ref.png | Bin 4053 -> 4392 bytes test/reference/twin.argb32.ref.png | Bin 0 -> 3990 bytes test/reference/twin.base.argb32.ref.png | Bin 4053 -> 4392 bytes test/reference/twin.base.rgb24.ref.png | Bin 4053 -> 4392 bytes test/reference/twin.egl.argb32.ref.png | Bin 0 -> 4062 bytes test/reference/twin.mask.argb32.ref.png | Bin 0 -> 3990 bytes test/reference/twin.mask.rgb24.ref.png | Bin 0 -> 3990 bytes test/reference/twin.rgb24.ref.png | Bin 0 -> 3990 bytes test/reference/twin.traps.argb32.ref.png | Bin 4053 -> 4392 bytes test/reference/twin.traps.rgb24.ref.png | Bin 4053 -> 4392 bytes test/reference/unaligned-box.argb32.ref.png | Bin 0 -> 496 bytes test/reference/unaligned-box.egl.argb32.ref.png | Bin 0 -> 496 bytes test/reference/unaligned-box.mask.argb32.ref.png | Bin 0 -> 496 bytes test/reference/unaligned-box.mask.rgb24.ref.png | Bin 0 -> 496 bytes test/reference/unaligned-box.rgb24.ref.png | Bin 0 -> 496 bytes test/reference/unantialiased-shapes.argb32.ref.png | Bin 0 -> 3926 bytes .../unantialiased-shapes.egl.argb32.ref.png | Bin 0 -> 3926 bytes .../unantialiased-shapes.mask.argb32.ref.png | Bin 0 -> 3926 bytes .../unantialiased-shapes.mask.rgb24.ref.png | Bin 0 -> 3926 bytes test/reference/unantialiased-shapes.rgb24.ref.png | Bin 0 -> 3926 bytes test/reference/unbounded-operator.argb32.ref.png | Bin 2618 -> 2666 bytes .../unbounded-operator.base.argb32.ref.png | Bin 2756 -> 2764 bytes .../unbounded-operator.base.rgb24.ref.png | Bin 1289 -> 1302 bytes .../unbounded-operator.mask.argb32.ref.png | Bin 0 -> 2666 bytes .../unbounded-operator.mask.rgb24.ref.png | Bin 0 -> 1300 bytes test/reference/unbounded-operator.rgb24.ref.png | Bin 1223 -> 1300 bytes .../unbounded-operator.traps.argb32.ref.png | Bin 2640 -> 2648 bytes .../unbounded-operator.traps.rgb24.ref.png | Bin 1254 -> 1269 bytes test/reference/unclosed-strokes.argb32.ref.png | Bin 0 -> 1901 bytes test/reference/unclosed-strokes.egl.argb32.ref.png | Bin 0 -> 2019 bytes .../reference/unclosed-strokes.mask.argb32.ref.png | Bin 0 -> 1901 bytes test/reference/unclosed-strokes.mask.rgb24.ref.png | Bin 0 -> 1901 bytes test/reference/unclosed-strokes.rgb24.ref.png | Bin 0 -> 1901 bytes test/reference/user-font-mask.argb32.ref.png | Bin 0 -> 5476 bytes test/reference/user-font-mask.egl.argb32.ref.png | Bin 0 -> 5688 bytes test/reference/user-font-mask.mask.argb32.ref.png | Bin 0 -> 5476 bytes test/reference/user-font-mask.mask.rgb24.ref.png | Bin 0 -> 5476 bytes test/reference/user-font-mask.rgb24.ref.png | Bin 0 -> 5476 bytes test/reference/user-font-proxy.argb32.ref.png | Bin 0 -> 16941 bytes test/reference/user-font-proxy.base.argb32.ref.png | Bin 16798 -> 16854 bytes test/reference/user-font-proxy.base.rgb24.ref.png | Bin 16798 -> 16854 bytes test/reference/user-font-proxy.mask.argb32.ref.png | Bin 0 -> 16941 bytes test/reference/user-font-proxy.mask.rgb24.ref.png | Bin 0 -> 16941 bytes test/reference/user-font-proxy.rgb24.ref.png | Bin 0 -> 16941 bytes .../reference/user-font-proxy.traps.argb32.ref.png | Bin 16798 -> 16854 bytes test/reference/user-font-proxy.traps.ref.png | Bin 0 -> 16854 bytes test/reference/user-font-proxy.traps.rgb24.ref.png | Bin 16798 -> 16854 bytes test/reference/user-font-rescale.argb32.ref.png | Bin 0 -> 14883 bytes .../user-font-rescale.base.argb32.ref.png | Bin 14852 -> 14883 bytes .../reference/user-font-rescale.base.rgb24.ref.png | Bin 14852 -> 14883 bytes .../user-font-rescale.mask.argb32.ref.png | Bin 0 -> 14883 bytes .../reference/user-font-rescale.mask.rgb24.ref.png | Bin 0 -> 14883 bytes test/reference/user-font-rescale.rgb24.ref.png | Bin 0 -> 14883 bytes .../user-font-rescale.traps.argb32.ref.png | Bin 14852 -> 14883 bytes test/reference/user-font-rescale.traps.ref.png | Bin 0 -> 14883 bytes .../user-font-rescale.traps.rgb24.ref.png | Bin 14852 -> 14883 bytes test/reference/user-font.argb32.ref.png | Bin 0 -> 6478 bytes test/reference/user-font.base.argb32.ref.png | Bin 5439 -> 6080 bytes test/reference/user-font.base.rgb24.ref.png | Bin 5439 -> 6080 bytes test/reference/user-font.egl.argb32.ref.png | Bin 0 -> 6499 bytes test/reference/user-font.mask.argb32.ref.png | Bin 0 -> 6478 bytes test/reference/user-font.mask.rgb24.ref.png | Bin 0 -> 6478 bytes test/reference/user-font.rgb24.ref.png | Bin 0 -> 6478 bytes test/reference/user-font.traps.argb32.ref.png | Bin 5439 -> 6080 bytes test/reference/user-font.traps.rgb24.ref.png | Bin 5439 -> 6080 bytes test/reference/white-in-noop.argb32.ref.png | Bin 0 -> 95 bytes test/reference/white-in-noop.egl.argb32.ref.png | Bin 0 -> 95 bytes test/reference/white-in-noop.mask.argb32.ref.png | Bin 0 -> 95 bytes test/reference/white-in-noop.mask.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/white-in-noop.rgb24.ref.png | Bin 0 -> 95 bytes test/reference/world-map-fill.argb32.ref.png | Bin 0 -> 57308 bytes test/reference/world-map-fill.egl.argb32.ref.png | Bin 0 -> 66154 bytes test/reference/world-map-fill.mask.argb32.ref.png | Bin 0 -> 57308 bytes test/reference/world-map-fill.mask.rgb24.ref.png | Bin 0 -> 57308 bytes test/reference/world-map-fill.rgb24.ref.png | Bin 0 -> 57308 bytes test/reference/world-map-stroke.argb32.ref.png | Bin 0 -> 65152 bytes test/reference/world-map-stroke.egl.argb32.ref.png | Bin 0 -> 75614 bytes .../reference/world-map-stroke.mask.argb32.ref.png | Bin 0 -> 65149 bytes test/reference/world-map-stroke.mask.rgb24.ref.png | Bin 0 -> 65149 bytes test/reference/world-map-stroke.rgb24.ref.png | Bin 0 -> 65152 bytes test/reference/world-map.argb32.ref.png | Bin 0 -> 70463 bytes test/reference/world-map.egl.argb32.ref.png | Bin 0 -> 77963 bytes test/reference/world-map.mask.argb32.ref.png | Bin 0 -> 70474 bytes test/reference/world-map.mask.rgb24.ref.png | Bin 0 -> 70474 bytes test/reference/world-map.rgb24.ref.png | Bin 0 -> 70463 bytes test/reference/xcb-huge-image-shm.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-huge-image-shm.egl.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-huge-image-shm.mask.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-huge-image-shm.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/xcb-huge-image-shm.rgb24.ref.png | Bin 0 -> 97 bytes .../xcb-huge-image-shm.xlib-fallback.rgb24.ref.png | Bin 0 -> 97 bytes .../xcb-huge-image-shm.xlib-window.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/xcb-snapshot-assert.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-snapshot-assert.egl.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-snapshot-assert.mask.argb32.ref.png | Bin 0 -> 97 bytes .../xcb-snapshot-assert.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/xcb-snapshot-assert.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/xcb-stress-cache.argb32.ref.png | Bin 0 -> 97 bytes test/reference/xcb-stress-cache.egl.argb32.ref.png | Bin 0 -> 97 bytes .../reference/xcb-stress-cache.mask.argb32.ref.png | Bin 0 -> 97 bytes test/reference/xcb-stress-cache.mask.rgb24.ref.png | Bin 0 -> 97 bytes test/reference/xcb-stress-cache.rgb24.ref.png | Bin 0 -> 97 bytes .../xcb-surface-source.egl.argb32.ref.png | Bin 0 -> 377 bytes .../xcb-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../xcb-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes .../reference/xcomposite-projection.argb32.ref.png | Bin 0 -> 1108 bytes .../xcomposite-projection.egl.argb32.ref.png | Bin 0 -> 1353 bytes .../xcomposite-projection.mask.argb32.ref.png | Bin 0 -> 1109 bytes .../xcomposite-projection.mask.rgb24.ref.png | Bin 0 -> 1109 bytes test/reference/xcomposite-projection.rgb24.ref.png | Bin 0 -> 1108 bytes test/reference/xlib-expose-event.argb32.ref.png | Bin 0 -> 40717 bytes .../reference/xlib-expose-event.egl.argb32.ref.png | Bin 0 -> 172 bytes .../xlib-expose-event.mask.argb32.ref.png | Bin 0 -> 40717 bytes .../reference/xlib-expose-event.mask.rgb24.ref.png | Bin 0 -> 40717 bytes test/reference/xlib-expose-event.rgb24.ref.png | Bin 0 -> 40717 bytes .../xlib-surface-source.egl.argb32.ref.png | Bin 0 -> 377 bytes .../xlib-surface-source.mask.argb32.ref.png | Bin 0 -> 377 bytes .../xlib-surface-source.mask.rgb24.ref.png | Bin 0 -> 301 bytes test/reference/zero-alpha.argb32.ref.png | Bin 0 -> 91 bytes test/reference/zero-alpha.egl.argb32.ref.png | Bin 0 -> 91 bytes test/reference/zero-alpha.mask.argb32.ref.png | Bin 0 -> 91 bytes test/reference/zero-alpha.mask.rgb24.ref.png | Bin 0 -> 91 bytes test/reference/zero-alpha.rgb24.ref.png | Bin 0 -> 91 bytes test/reference/zero-mask.argb32.ref.png | Bin 0 -> 402 bytes test/reference/zero-mask.egl.argb32.ref.png | Bin 0 -> 750 bytes test/reference/zero-mask.mask.argb32.ref.png | Bin 0 -> 402 bytes test/reference/zero-mask.mask.rgb24.ref.png | Bin 0 -> 382 bytes test/stride-12-image.c | 71 + test/subsurface-image-repeat.c | 2 +- test/subsurface-modify-child.c | 2 +- test/subsurface-modify-parent.c | 2 +- test/subsurface-outside-target.c | 2 +- test/subsurface-pad.c | 2 +- test/subsurface-reflect.c | 2 +- test/subsurface-repeat.c | 2 +- test/subsurface-scale.c | 2 +- test/subsurface-similar-repeat.c | 2 +- test/subsurface.c | 2 +- test/text-antialias-subpixel.c | 123 + test/xlib-surface.c | 23 +- util/.gitignore | 24 + util/Makefile.am | 4 + util/cairo-missing/cairo-missing.h | 2 + util/cairo-script/.gitignore | 3 + util/cairo-script/cairo-script-operators.c | 158 +- util/cairo-script/cairo-script-scanner.c | 2 +- util/cairo-sphinx/.gitignore | 1 + util/cairo-sphinx/sphinx.c | 2 +- util/cairo-trace/.gitignore | 1 + util/cairo-trace/cairo-trace.in | 2 +- util/cairo-trace/trace.c | 233 +- 4047 files changed, 150182 insertions(+), 7690 deletions(-) create mode 100644 Makefile.in create mode 100755 TC/_export_env.sh create mode 100755 TC/_export_target_env.sh create mode 100755 TC/build.sh create mode 100755 TC/clean.sh create mode 100755 TC/config create mode 100755 TC/execute.sh create mode 100644 TC/perf/Makefile create mode 100755 TC/perf/common.c create mode 100755 TC/perf/common.h create mode 100755 TC/perf/fill create mode 100755 TC/perf/fill.c create mode 100755 TC/perf/image create mode 100755 TC/perf/image.c create mode 100755 TC/perf/image1.png create mode 100755 TC/perf/image2.png create mode 100755 TC/perf/main.c create mode 100755 TC/perf/stroke create mode 100755 TC/perf/stroke.c create mode 100755 TC/testcase/Makefile create mode 100644 TC/testcase/cairo-test.h create mode 100644 TC/testcase/tslist create mode 100644 TC/testcase/utc_a1_bug_gl.c create mode 100644 TC/testcase/utc_a1_bug_image.c create mode 100644 TC/testcase/utc_a1_clip_fill_equal_gl.c create mode 100644 TC/testcase/utc_a1_clip_fill_equal_image.c create mode 100644 TC/testcase/utc_a1_clip_fill_gl.c create mode 100644 TC/testcase/utc_a1_clip_fill_image.c create mode 100644 TC/testcase/utc_a1_clip_fill_rule_gl.c create mode 100644 TC/testcase/utc_a1_clip_fill_rule_image.c create mode 100644 TC/testcase/utc_a1_clip_paint_gl.c create mode 100644 TC/testcase/utc_a1_clip_paint_image.c create mode 100644 TC/testcase/utc_a1_clip_stroke_gl.c create mode 100644 TC/testcase/utc_a1_clip_stroke_image.c create mode 100644 TC/testcase/utc_a1_fill_gl.c create mode 100644 TC/testcase/utc_a1_fill_image.c create mode 100644 TC/testcase/utc_a1_image_sample_gl.c create mode 100644 TC/testcase/utc_a1_image_sample_image.c create mode 100644 TC/testcase/utc_a1_line_width_gl.c create mode 100644 TC/testcase/utc_a1_line_width_image.c create mode 100644 TC/testcase/utc_a1_mask_gl.c create mode 100644 TC/testcase/utc_a1_mask_image.c create mode 100644 TC/testcase/utc_a1_mask_sample_gl.c create mode 100644 TC/testcase/utc_a1_mask_sample_image.c create mode 100644 TC/testcase/utc_a1_rasterisation_rectangles_gl.c create mode 100644 TC/testcase/utc_a1_rasterisation_rectangles_image.c create mode 100644 TC/testcase/utc_a1_rasterisation_triangles_gl.c create mode 100644 TC/testcase/utc_a1_rasterisation_triangles_image.c create mode 100644 TC/testcase/utc_a1_rectilinear_grid_gl.c create mode 100644 TC/testcase/utc_a1_rectilinear_grid_image.c create mode 100644 TC/testcase/utc_a1_sample_gl.c create mode 100644 TC/testcase/utc_a1_sample_image.c create mode 100644 TC/testcase/utc_a1_tiger_gl.c create mode 100644 TC/testcase/utc_a1_tiger_image.c create mode 100644 TC/testcase/utc_a1_traps_sample_gl.c create mode 100644 TC/testcase/utc_a1_traps_sample_image.c create mode 100644 TC/testcase/utc_a8_clear_gl.c create mode 100644 TC/testcase/utc_a8_clear_image.c create mode 100644 TC/testcase/utc_a8_mask_gl.c create mode 100644 TC/testcase/utc_a8_mask_image.c create mode 100644 TC/testcase/utc_aliasing_gl.c create mode 100644 TC/testcase/utc_aliasing_image.c create mode 100644 TC/testcase/utc_alpha_similar_gl.c create mode 100644 TC/testcase/utc_alpha_similar_image.c create mode 100644 TC/testcase/utc_api_special_cases_gl.c create mode 100644 TC/testcase/utc_api_special_cases_image.c create mode 100644 TC/testcase/utc_arc_direction_gl.c create mode 100644 TC/testcase/utc_arc_direction_image.c create mode 100644 TC/testcase/utc_arc_infinite_loop_gl.c create mode 100644 TC/testcase/utc_arc_infinite_loop_image.c create mode 100644 TC/testcase/utc_arc_looping_dash_gl.c create mode 100644 TC/testcase/utc_arc_looping_dash_image.c create mode 100644 TC/testcase/utc_big_empty_box_gl.c create mode 100644 TC/testcase/utc_big_empty_box_image.c create mode 100644 TC/testcase/utc_big_empty_triangle_gl.c create mode 100644 TC/testcase/utc_big_empty_triangle_image.c create mode 100644 TC/testcase/utc_big_line_gl.c create mode 100644 TC/testcase/utc_big_line_image.c create mode 100644 TC/testcase/utc_big_little_box_gl.c create mode 100644 TC/testcase/utc_big_little_box_image.c create mode 100644 TC/testcase/utc_big_little_triangle_gl.c create mode 100644 TC/testcase/utc_big_little_triangle_image.c create mode 100644 TC/testcase/utc_big_trap_gl.c create mode 100644 TC/testcase/utc_big_trap_image.c create mode 100644 TC/testcase/utc_bilevel_image_gl.c create mode 100644 TC/testcase/utc_bilevel_image_image.c create mode 100644 TC/testcase/utc_bitmap_font_gl.c create mode 100644 TC/testcase/utc_bitmap_font_image.c create mode 100644 TC/testcase/utc_bug_40410_gl.c create mode 100644 TC/testcase/utc_bug_40410_image.c create mode 100644 TC/testcase/utc_bug_bo_rectangular_gl.c create mode 100644 TC/testcase/utc_bug_bo_rectangular_image.c create mode 100644 TC/testcase/utc_bug_bo_ricotz_gl.c create mode 100644 TC/testcase/utc_bug_bo_ricotz_image.c create mode 100644 TC/testcase/utc_bug_extents_gl.c create mode 100644 TC/testcase/utc_bug_extents_image.c create mode 100644 TC/testcase/utc_bug_seams_gl.c create mode 100644 TC/testcase/utc_bug_seams_image.c create mode 100644 TC/testcase/utc_bug_source_cu_gl.c create mode 100644 TC/testcase/utc_bug_source_cu_image.c create mode 100644 TC/testcase/utc_caps_gl.c create mode 100644 TC/testcase/utc_caps_image.c create mode 100644 TC/testcase/utc_caps_joins_alpha_gl.c create mode 100644 TC/testcase/utc_caps_joins_alpha_image.c create mode 100644 TC/testcase/utc_caps_joins_curve_gl.c create mode 100644 TC/testcase/utc_caps_joins_curve_image.c create mode 100644 TC/testcase/utc_caps_joins_gl.c create mode 100644 TC/testcase/utc_caps_joins_image.c create mode 100644 TC/testcase/utc_caps_sub_paths_gl.c create mode 100644 TC/testcase/utc_caps_sub_paths_image.c create mode 100644 TC/testcase/utc_caps_tails_curve_gl.c create mode 100644 TC/testcase/utc_caps_tails_curve_image.c create mode 100644 TC/testcase/utc_checkerboard_gl.c create mode 100644 TC/testcase/utc_checkerboard_image.c create mode 100644 TC/testcase/utc_clear_gl.c create mode 100644 TC/testcase/utc_clear_image.c create mode 100644 TC/testcase/utc_clear_source_gl.c create mode 100644 TC/testcase/utc_clear_source_image.c create mode 100644 TC/testcase/utc_clip_all_gl.c create mode 100644 TC/testcase/utc_clip_all_image.c create mode 100644 TC/testcase/utc_clip_complex_shape_eo_aa_gl.c create mode 100644 TC/testcase/utc_clip_complex_shape_eo_aa_image.c create mode 100644 TC/testcase/utc_clip_complex_shape_eo_mono_gl.c create mode 100644 TC/testcase/utc_clip_complex_shape_eo_mono_image.c create mode 100644 TC/testcase/utc_clip_contexts_gl.c create mode 100644 TC/testcase/utc_clip_contexts_image.c create mode 100644 TC/testcase/utc_clip_device_offset_gl.c create mode 100644 TC/testcase/utc_clip_device_offset_image.c create mode 100644 TC/testcase/utc_clip_disjoint_gl.c create mode 100644 TC/testcase/utc_clip_disjoint_hatching_gl.c create mode 100644 TC/testcase/utc_clip_disjoint_hatching_image.c create mode 100644 TC/testcase/utc_clip_disjoint_image.c create mode 100644 TC/testcase/utc_clip_double_free_gl.c create mode 100644 TC/testcase/utc_clip_double_free_image.c create mode 100644 TC/testcase/utc_clip_empty_gl.c create mode 100644 TC/testcase/utc_clip_empty_group_gl.c create mode 100644 TC/testcase/utc_clip_empty_group_image.c create mode 100644 TC/testcase/utc_clip_empty_image.c create mode 100644 TC/testcase/utc_clip_empty_save_gl.c create mode 100644 TC/testcase/utc_clip_empty_save_image.c create mode 100644 TC/testcase/utc_clip_fill_eo_unbounded_gl.c create mode 100644 TC/testcase/utc_clip_fill_eo_unbounded_image.c create mode 100644 TC/testcase/utc_clip_fill_gl.c create mode 100644 TC/testcase/utc_clip_fill_image.c create mode 100644 TC/testcase/utc_clip_fill_no_op_gl.c create mode 100644 TC/testcase/utc_clip_fill_no_op_image.c create mode 100644 TC/testcase/utc_clip_fill_nz_unbounded_gl.c create mode 100644 TC/testcase/utc_clip_fill_nz_unbounded_image.c create mode 100644 TC/testcase/utc_clip_fill_rule_gl.c create mode 100644 TC/testcase/utc_clip_fill_rule_image.c create mode 100644 TC/testcase/utc_clip_fill_rule_pixel_aligned_gl.c create mode 100644 TC/testcase/utc_clip_fill_rule_pixel_aligned_image.c create mode 100644 TC/testcase/utc_clip_group_shapes_aligned_rectangles_gl.c create mode 100644 TC/testcase/utc_clip_group_shapes_aligned_rectangles_image.c create mode 100644 TC/testcase/utc_clip_group_shapes_circles_gl.c create mode 100644 TC/testcase/utc_clip_group_shapes_circles_image.c create mode 100644 TC/testcase/utc_clip_group_shapes_unaligned_rectangles_gl.c create mode 100644 TC/testcase/utc_clip_group_shapes_unaligned_rectangles_image.c create mode 100644 TC/testcase/utc_clip_image_gl.c create mode 100644 TC/testcase/utc_clip_image_image.c create mode 100644 TC/testcase/utc_clip_intersect_gl.c create mode 100644 TC/testcase/utc_clip_intersect_image.c create mode 100644 TC/testcase/utc_clip_mixed_antialias_gl.c create mode 100644 TC/testcase/utc_clip_mixed_antialias_image.c create mode 100644 TC/testcase/utc_clip_nesting_gl.c create mode 100644 TC/testcase/utc_clip_nesting_image.c create mode 100644 TC/testcase/utc_clip_operator_gl.c create mode 100644 TC/testcase/utc_clip_operator_image.c create mode 100644 TC/testcase/utc_clip_polygons_gl.c create mode 100644 TC/testcase/utc_clip_polygons_image.c create mode 100644 TC/testcase/utc_clip_push_group_gl.c create mode 100644 TC/testcase/utc_clip_push_group_image.c create mode 100644 TC/testcase/utc_clip_rectilinear_gl.c create mode 100644 TC/testcase/utc_clip_rectilinear_image.c create mode 100644 TC/testcase/utc_clip_rotate_image_surface_paint_gl.c create mode 100644 TC/testcase/utc_clip_rotate_image_surface_paint_image.c create mode 100644 TC/testcase/utc_clip_shape_gl.c create mode 100644 TC/testcase/utc_clip_shape_image.c create mode 100644 TC/testcase/utc_clip_stroke_gl.c create mode 100644 TC/testcase/utc_clip_stroke_image.c create mode 100644 TC/testcase/utc_clip_stroke_no_op_gl.c create mode 100644 TC/testcase/utc_clip_stroke_no_op_image.c create mode 100644 TC/testcase/utc_clip_stroke_unbounded_gl.c create mode 100644 TC/testcase/utc_clip_stroke_unbounded_image.c create mode 100644 TC/testcase/utc_clip_text_gl.c create mode 100644 TC/testcase/utc_clip_text_image.c create mode 100644 TC/testcase/utc_clip_twice_gl.c create mode 100644 TC/testcase/utc_clip_twice_image.c create mode 100644 TC/testcase/utc_clip_twice_rectangle_gl.c create mode 100644 TC/testcase/utc_clip_twice_rectangle_image.c create mode 100644 TC/testcase/utc_clip_unbounded_gl.c create mode 100644 TC/testcase/utc_clip_unbounded_image.c create mode 100644 TC/testcase/utc_clip_zero_gl.c create mode 100644 TC/testcase/utc_clip_zero_image.c create mode 100644 TC/testcase/utc_clipped_group_gl.c create mode 100644 TC/testcase/utc_clipped_group_image.c create mode 100644 TC/testcase/utc_clipped_surface_gl.c create mode 100644 TC/testcase/utc_clipped_surface_image.c create mode 100644 TC/testcase/utc_clipped_trapezoids_gl.c create mode 100644 TC/testcase/utc_clipped_trapezoids_image.c create mode 100644 TC/testcase/utc_close_path_current_point_gl.c create mode 100644 TC/testcase/utc_close_path_current_point_image.c create mode 100644 TC/testcase/utc_close_path_gl.c create mode 100644 TC/testcase/utc_close_path_image.c create mode 100644 TC/testcase/utc_composite_integer_translate_over_gl.c create mode 100644 TC/testcase/utc_composite_integer_translate_over_image.c create mode 100644 TC/testcase/utc_composite_integer_translate_over_repeat_gl.c create mode 100644 TC/testcase/utc_composite_integer_translate_over_repeat_image.c create mode 100644 TC/testcase/utc_composite_integer_translate_source_gl.c create mode 100644 TC/testcase/utc_composite_integer_translate_source_image.c create mode 100644 TC/testcase/utc_copy_disjoint_gl.c create mode 100644 TC/testcase/utc_copy_disjoint_image.c create mode 100644 TC/testcase/utc_copy_path_gl.c create mode 100644 TC/testcase/utc_copy_path_image.c create mode 100644 TC/testcase/utc_coverage_column_triangles_gl.c create mode 100644 TC/testcase/utc_coverage_column_triangles_image.c create mode 100644 TC/testcase/utc_coverage_intersecting_quads_gl.c create mode 100644 TC/testcase/utc_coverage_intersecting_quads_image.c create mode 100644 TC/testcase/utc_coverage_intersecting_triangles_gl.c create mode 100644 TC/testcase/utc_coverage_intersecting_triangles_image.c create mode 100644 TC/testcase/utc_coverage_rectangles_gl.c create mode 100644 TC/testcase/utc_coverage_rectangles_image.c create mode 100644 TC/testcase/utc_coverage_row_triangles_gl.c create mode 100644 TC/testcase/utc_coverage_row_triangles_image.c create mode 100644 TC/testcase/utc_coverage_triangles_gl.c create mode 100644 TC/testcase/utc_coverage_triangles_image.c create mode 100644 TC/testcase/utc_create_for_stream_gl.c create mode 100644 TC/testcase/utc_create_for_stream_image.c create mode 100644 TC/testcase/utc_create_from_png_gl.c create mode 100644 TC/testcase/utc_create_from_png_image.c create mode 100644 TC/testcase/utc_create_from_png_stream_gl.c create mode 100644 TC/testcase/utc_create_from_png_stream_image.c create mode 100644 TC/testcase/utc_culled_glyphs_gl.c create mode 100644 TC/testcase/utc_culled_glyphs_image.c create mode 100644 TC/testcase/utc_curve_to_as_line_to_gl.c create mode 100644 TC/testcase/utc_curve_to_as_line_to_image.c create mode 100644 TC/testcase/utc_dash_caps_joins_gl.c create mode 100644 TC/testcase/utc_dash_caps_joins_image.c create mode 100644 TC/testcase/utc_dash_curve_gl.c create mode 100644 TC/testcase/utc_dash_curve_image.c create mode 100644 TC/testcase/utc_dash_infinite_loop_gl.c create mode 100644 TC/testcase/utc_dash_infinite_loop_image.c create mode 100644 TC/testcase/utc_dash_no_dash_gl.c create mode 100644 TC/testcase/utc_dash_no_dash_image.c create mode 100644 TC/testcase/utc_dash_offset_gl.c create mode 100644 TC/testcase/utc_dash_offset_image.c create mode 100644 TC/testcase/utc_dash_offset_negative_gl.c create mode 100644 TC/testcase/utc_dash_offset_negative_image.c create mode 100644 TC/testcase/utc_dash_scale_gl.c create mode 100644 TC/testcase/utc_dash_scale_image.c create mode 100644 TC/testcase/utc_dash_state_gl.c create mode 100644 TC/testcase/utc_dash_state_image.c create mode 100644 TC/testcase/utc_dash_zero_length_gl.c create mode 100644 TC/testcase/utc_dash_zero_length_image.c create mode 100644 TC/testcase/utc_degenerate_arc_gl.c create mode 100644 TC/testcase/utc_degenerate_arc_image.c create mode 100644 TC/testcase/utc_degenerate_arcs_gl.c create mode 100644 TC/testcase/utc_degenerate_arcs_image.c create mode 100644 TC/testcase/utc_degenerate_curve_to_gl.c create mode 100644 TC/testcase/utc_degenerate_curve_to_image.c create mode 100644 TC/testcase/utc_degenerate_dash_gl.c create mode 100644 TC/testcase/utc_degenerate_dash_image.c create mode 100644 TC/testcase/utc_degenerate_linear_gradient_gl.c create mode 100644 TC/testcase/utc_degenerate_linear_gradient_image.c create mode 100644 TC/testcase/utc_degenerate_path_gl.c create mode 100644 TC/testcase/utc_degenerate_path_image.c create mode 100644 TC/testcase/utc_degenerate_pen_gl.c create mode 100644 TC/testcase/utc_degenerate_pen_image.c create mode 100644 TC/testcase/utc_degenerate_radial_gradient_gl.c create mode 100644 TC/testcase/utc_degenerate_radial_gradient_image.c create mode 100644 TC/testcase/utc_degenerate_rel_curve_to_gl.c create mode 100644 TC/testcase/utc_degenerate_rel_curve_to_image.c create mode 100644 TC/testcase/utc_degenerate_solid_dash_gl.c create mode 100644 TC/testcase/utc_degenerate_solid_dash_image.c create mode 100644 TC/testcase/utc_device_offset_fractional_gl.c create mode 100644 TC/testcase/utc_device_offset_fractional_image.c create mode 100644 TC/testcase/utc_device_offset_gl.c create mode 100644 TC/testcase/utc_device_offset_image.c create mode 100644 TC/testcase/utc_device_offset_positive_gl.c create mode 100644 TC/testcase/utc_device_offset_positive_image.c create mode 100644 TC/testcase/utc_device_offset_scale_gl.c create mode 100644 TC/testcase/utc_device_offset_scale_image.c create mode 100644 TC/testcase/utc_drunkard_tails_gl.c create mode 100644 TC/testcase/utc_drunkard_tails_image.c create mode 100644 TC/testcase/utc_error_setters_gl.c create mode 100644 TC/testcase/utc_error_setters_image.c create mode 100644 TC/testcase/utc_extend_pad_border_gl.c create mode 100644 TC/testcase/utc_extend_pad_border_image.c create mode 100644 TC/testcase/utc_extend_pad_gl.c create mode 100644 TC/testcase/utc_extend_pad_image.c create mode 100644 TC/testcase/utc_extend_pad_similar_gl.c create mode 100644 TC/testcase/utc_extend_pad_similar_image.c create mode 100644 TC/testcase/utc_extend_reflect_gl.c create mode 100644 TC/testcase/utc_extend_reflect_image.c create mode 100644 TC/testcase/utc_extend_reflect_similar_gl.c create mode 100644 TC/testcase/utc_extend_reflect_similar_image.c create mode 100644 TC/testcase/utc_extend_repeat_gl.c create mode 100644 TC/testcase/utc_extend_repeat_image.c create mode 100644 TC/testcase/utc_extend_repeat_similar_gl.c create mode 100644 TC/testcase/utc_extend_repeat_similar_image.c create mode 100644 TC/testcase/utc_extended_blend_alpha_gl.c create mode 100644 TC/testcase/utc_extended_blend_alpha_image.c create mode 100644 TC/testcase/utc_extended_blend_alpha_mask_gl.c create mode 100644 TC/testcase/utc_extended_blend_alpha_mask_image.c create mode 100644 TC/testcase/utc_extended_blend_gl.c create mode 100644 TC/testcase/utc_extended_blend_image.c create mode 100644 TC/testcase/utc_extended_blend_mask_gl.c create mode 100644 TC/testcase/utc_extended_blend_mask_image.c create mode 100644 TC/testcase/utc_extended_blend_solid_alpha_gl.c create mode 100644 TC/testcase/utc_extended_blend_solid_alpha_image.c create mode 100644 TC/testcase/utc_extended_blend_solid_gl.c create mode 100644 TC/testcase/utc_extended_blend_solid_image.c create mode 100644 TC/testcase/utc_fallback_gl.c create mode 100644 TC/testcase/utc_fallback_image.c create mode 100644 TC/testcase/utc_fallback_resolution_gl.c create mode 100644 TC/testcase/utc_fallback_resolution_image.c create mode 100644 TC/testcase/utc_fill_alpha_gl.c create mode 100644 TC/testcase/utc_fill_alpha_image.c create mode 100644 TC/testcase/utc_fill_alpha_pattern_gl.c create mode 100644 TC/testcase/utc_fill_alpha_pattern_image.c create mode 100644 TC/testcase/utc_fill_and_stroke_alpha_add_gl.c create mode 100644 TC/testcase/utc_fill_and_stroke_alpha_add_image.c create mode 100644 TC/testcase/utc_fill_and_stroke_alpha_gl.c create mode 100644 TC/testcase/utc_fill_and_stroke_alpha_image.c create mode 100644 TC/testcase/utc_fill_and_stroke_gl.c create mode 100644 TC/testcase/utc_fill_and_stroke_image.c create mode 100644 TC/testcase/utc_fill_degenerate_sort_order_gl.c create mode 100644 TC/testcase/utc_fill_degenerate_sort_order_image.c create mode 100644 TC/testcase/utc_fill_disjoint_gl.c create mode 100644 TC/testcase/utc_fill_disjoint_image.c create mode 100644 TC/testcase/utc_fill_empty_gl.c create mode 100644 TC/testcase/utc_fill_empty_image.c create mode 100644 TC/testcase/utc_fill_image_gl.c create mode 100644 TC/testcase/utc_fill_image_image.c create mode 100644 TC/testcase/utc_fill_missed_stop_gl.c create mode 100644 TC/testcase/utc_fill_missed_stop_image.c create mode 100644 TC/testcase/utc_fill_rule_gl.c create mode 100644 TC/testcase/utc_fill_rule_image.c create mode 100644 TC/testcase/utc_filter_bilinear_extents_gl.c create mode 100644 TC/testcase/utc_filter_bilinear_extents_image.c create mode 100644 TC/testcase/utc_filter_nearest_offset_gl.c create mode 100644 TC/testcase/utc_filter_nearest_offset_image.c create mode 100644 TC/testcase/utc_filter_nearest_transformed_gl.c create mode 100644 TC/testcase/utc_filter_nearest_transformed_image.c create mode 100644 TC/testcase/utc_finer_grained_fallbacks_gl.c create mode 100644 TC/testcase/utc_finer_grained_fallbacks_image.c create mode 100644 TC/testcase/utc_font_face_get_type_gl.c create mode 100644 TC/testcase/utc_font_face_get_type_image.c create mode 100644 TC/testcase/utc_font_matrix_translation_gl.c create mode 100644 TC/testcase/utc_font_matrix_translation_image.c create mode 100644 TC/testcase/utc_font_options_gl.c create mode 100644 TC/testcase/utc_font_options_image.c create mode 100644 TC/testcase/utc_ft_font_create_for_ft_face_gl.c create mode 100644 TC/testcase/utc_ft_font_create_for_ft_face_image.c create mode 100644 TC/testcase/utc_ft_show_glyphs_positioning_gl.c create mode 100644 TC/testcase/utc_ft_show_glyphs_positioning_image.c create mode 100644 TC/testcase/utc_ft_show_glyphs_table_gl.c create mode 100644 TC/testcase/utc_ft_show_glyphs_table_image.c create mode 100644 TC/testcase/utc_ft_text_antialias_none_gl.c create mode 100644 TC/testcase/utc_ft_text_antialias_none_image.c create mode 100644 TC/testcase/utc_ft_text_vertical_layout_type1_gl.c create mode 100644 TC/testcase/utc_ft_text_vertical_layout_type1_image.c create mode 100644 TC/testcase/utc_ft_text_vertical_layout_type3_gl.c create mode 100644 TC/testcase/utc_ft_text_vertical_layout_type3_image.c create mode 100644 TC/testcase/utc_get_and_set_gl.c create mode 100644 TC/testcase/utc_get_and_set_image.c create mode 100644 TC/testcase/utc_get_clip_gl.c create mode 100644 TC/testcase/utc_get_clip_image.c create mode 100644 TC/testcase/utc_get_group_target_gl.c create mode 100644 TC/testcase/utc_get_group_target_image.c create mode 100644 TC/testcase/utc_get_path_extents_gl.c create mode 100644 TC/testcase/utc_get_path_extents_image.c create mode 100644 TC/testcase/utc_get_xrender_format_gl.c create mode 100644 TC/testcase/utc_get_xrender_format_image.c create mode 100644 TC/testcase/utc_gl_surface_source_gl.c create mode 100644 TC/testcase/utc_gl_surface_source_image.c create mode 100644 TC/testcase/utc_glyph_cache_pressure_gl.c create mode 100644 TC/testcase/utc_glyph_cache_pressure_image.c create mode 100644 TC/testcase/utc_gradient_alpha_gl.c create mode 100644 TC/testcase/utc_gradient_alpha_image.c create mode 100644 TC/testcase/utc_gradient_constant_alpha_gl.c create mode 100644 TC/testcase/utc_gradient_constant_alpha_image.c create mode 100644 TC/testcase/utc_gradient_zero_stops_gl.c create mode 100644 TC/testcase/utc_gradient_zero_stops_image.c create mode 100644 TC/testcase/utc_gradient_zero_stops_mask_gl.c create mode 100644 TC/testcase/utc_gradient_zero_stops_mask_image.c create mode 100644 TC/testcase/utc_group_clip_gl.c create mode 100644 TC/testcase/utc_group_clip_image.c create mode 100644 TC/testcase/utc_group_paint_gl.c create mode 100644 TC/testcase/utc_group_paint_image.c create mode 100644 TC/testcase/utc_group_state_gl.c create mode 100644 TC/testcase/utc_group_state_image.c create mode 100644 TC/testcase/utc_group_unaligned_gl.c create mode 100644 TC/testcase/utc_group_unaligned_image.c create mode 100644 TC/testcase/utc_half_coverage_rectangles_gl.c create mode 100644 TC/testcase/utc_half_coverage_rectangles_image.c create mode 100644 TC/testcase/utc_half_coverage_triangles_gl.c create mode 100644 TC/testcase/utc_half_coverage_triangles_image.c create mode 100644 TC/testcase/utc_halo_gl.c create mode 100644 TC/testcase/utc_halo_image.c create mode 100644 TC/testcase/utc_halo_transform_gl.c create mode 100644 TC/testcase/utc_halo_transform_image.c create mode 100644 TC/testcase/utc_hatchings_gl.c create mode 100644 TC/testcase/utc_hatchings_image.c create mode 100644 TC/testcase/utc_horizontal_clip_gl.c create mode 100644 TC/testcase/utc_horizontal_clip_image.c create mode 100644 TC/testcase/utc_huge_linear_gl.c create mode 100644 TC/testcase/utc_huge_linear_image.c create mode 100644 TC/testcase/utc_huge_radial_gl.c create mode 100644 TC/testcase/utc_huge_radial_image.c create mode 100644 TC/testcase/utc_image_bug_710072_aligned_gl.c create mode 100644 TC/testcase/utc_image_bug_710072_aligned_image.c create mode 100644 TC/testcase/utc_image_bug_710072_unaligned_gl.c create mode 100644 TC/testcase/utc_image_bug_710072_unaligned_image.c create mode 100644 TC/testcase/utc_image_surface_source_gl.c create mode 100644 TC/testcase/utc_image_surface_source_image.c create mode 100644 TC/testcase/utc_implicit_close_gl.c create mode 100644 TC/testcase/utc_implicit_close_image.c create mode 100644 TC/testcase/utc_in_fill_empty_trapezoid_gl.c create mode 100644 TC/testcase/utc_in_fill_empty_trapezoid_image.c create mode 100644 TC/testcase/utc_in_fill_trapezoid_gl.c create mode 100644 TC/testcase/utc_in_fill_trapezoid_image.c create mode 100644 TC/testcase/utc_infinite_join_gl.c create mode 100644 TC/testcase/utc_infinite_join_image.c create mode 100644 TC/testcase/utc_invalid_matrix_gl.c create mode 100644 TC/testcase/utc_invalid_matrix_image.c create mode 100644 TC/testcase/utc_inverse_text_gl.c create mode 100644 TC/testcase/utc_inverse_text_image.c create mode 100644 TC/testcase/utc_inverted_clip_gl.c create mode 100644 TC/testcase/utc_inverted_clip_image.c create mode 100644 TC/testcase/utc_joins_gl.c create mode 100644 TC/testcase/utc_joins_image.c create mode 100644 TC/testcase/utc_joins_loop_gl.c create mode 100644 TC/testcase/utc_joins_loop_image.c create mode 100644 TC/testcase/utc_joins_retrace_gl.c create mode 100644 TC/testcase/utc_joins_retrace_image.c create mode 100644 TC/testcase/utc_joins_star_gl.c create mode 100644 TC/testcase/utc_joins_star_image.c create mode 100644 TC/testcase/utc_large_clip_gl.c create mode 100644 TC/testcase/utc_large_clip_image.c create mode 100644 TC/testcase/utc_large_font_gl.c create mode 100644 TC/testcase/utc_large_font_image.c create mode 100644 TC/testcase/utc_large_source_gl.c create mode 100644 TC/testcase/utc_large_source_image.c create mode 100644 TC/testcase/utc_large_source_roi_gl.c create mode 100644 TC/testcase/utc_large_source_roi_image.c create mode 100644 TC/testcase/utc_large_twin_antialias_mixed_gl.c create mode 100644 TC/testcase/utc_large_twin_antialias_mixed_image.c create mode 100644 TC/testcase/utc_leaky_dash_gl.c create mode 100644 TC/testcase/utc_leaky_dash_image.c create mode 100644 TC/testcase/utc_leaky_dashed_rectangle_gl.c create mode 100644 TC/testcase/utc_leaky_dashed_rectangle_image.c create mode 100644 TC/testcase/utc_leaky_dashed_stroke_gl.c create mode 100644 TC/testcase/utc_leaky_dashed_stroke_image.c create mode 100644 TC/testcase/utc_leaky_polygon_gl.c create mode 100644 TC/testcase/utc_leaky_polygon_image.c create mode 100644 TC/testcase/utc_line_width_gl.c create mode 100644 TC/testcase/utc_line_width_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_dashed_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_dashed_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_flipped_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_flipped_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_flopped_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_flopped_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_offset_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_offset_image.c create mode 100644 TC/testcase/utc_line_width_large_overlap_rotated_gl.c create mode 100644 TC/testcase/utc_line_width_large_overlap_rotated_image.c create mode 100644 TC/testcase/utc_line_width_overlap_dashed_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_dashed_image.c create mode 100644 TC/testcase/utc_line_width_overlap_flipped_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_flipped_image.c create mode 100644 TC/testcase/utc_line_width_overlap_flopped_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_flopped_image.c create mode 100644 TC/testcase/utc_line_width_overlap_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_image.c create mode 100644 TC/testcase/utc_line_width_overlap_offset_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_offset_image.c create mode 100644 TC/testcase/utc_line_width_overlap_rotated_gl.c create mode 100644 TC/testcase/utc_line_width_overlap_rotated_image.c create mode 100644 TC/testcase/utc_line_width_scale_gl.c create mode 100644 TC/testcase/utc_line_width_scale_image.c create mode 100644 TC/testcase/utc_line_width_tolerance_gl.c create mode 100644 TC/testcase/utc_line_width_tolerance_image.c create mode 100644 TC/testcase/utc_line_width_zero_gl.c create mode 100644 TC/testcase/utc_line_width_zero_image.c create mode 100644 TC/testcase/utc_linear_gradient_extend_gl.c create mode 100644 TC/testcase/utc_linear_gradient_extend_image.c create mode 100644 TC/testcase/utc_linear_gradient_gl.c create mode 100644 TC/testcase/utc_linear_gradient_image.c create mode 100644 TC/testcase/utc_linear_gradient_large_gl.c create mode 100644 TC/testcase/utc_linear_gradient_large_image.c create mode 100644 TC/testcase/utc_linear_gradient_one_stop_gl.c create mode 100644 TC/testcase/utc_linear_gradient_one_stop_image.c create mode 100644 TC/testcase/utc_linear_gradient_reflect_gl.c create mode 100644 TC/testcase/utc_linear_gradient_reflect_image.c create mode 100644 TC/testcase/utc_linear_gradient_subset_gl.c create mode 100644 TC/testcase/utc_linear_gradient_subset_image.c create mode 100644 TC/testcase/utc_linear_step_function_gl.c create mode 100644 TC/testcase/utc_linear_step_function_image.c create mode 100644 TC/testcase/utc_linear_uniform_gl.c create mode 100644 TC/testcase/utc_linear_uniform_image.c create mode 100644 TC/testcase/utc_long_dashed_lines_gl.c create mode 100644 TC/testcase/utc_long_dashed_lines_image.c create mode 100644 TC/testcase/utc_long_lines_gl.c create mode 100644 TC/testcase/utc_long_lines_image.c create mode 100644 TC/testcase/utc_map_all_to_image_gl.c create mode 100644 TC/testcase/utc_map_all_to_image_image.c create mode 100644 TC/testcase/utc_map_bit_to_image_gl.c create mode 100644 TC/testcase/utc_map_bit_to_image_image.c create mode 100644 TC/testcase/utc_map_to_image_fill_gl.c create mode 100644 TC/testcase/utc_map_to_image_fill_image.c create mode 100644 TC/testcase/utc_mask_alpha_gl.c create mode 100644 TC/testcase/utc_mask_alpha_image.c create mode 100644 TC/testcase/utc_mask_ctm_gl.c create mode 100644 TC/testcase/utc_mask_ctm_image.c create mode 100644 TC/testcase/utc_mask_gl.c create mode 100644 TC/testcase/utc_mask_glyphs_gl.c create mode 100644 TC/testcase/utc_mask_glyphs_image.c create mode 100644 TC/testcase/utc_mask_image.c create mode 100644 TC/testcase/utc_mask_surface_ctm_gl.c create mode 100644 TC/testcase/utc_mask_surface_ctm_image.c create mode 100644 TC/testcase/utc_mask_transformed_image_gl.c create mode 100644 TC/testcase/utc_mask_transformed_image_image.c create mode 100644 TC/testcase/utc_mask_transformed_similar_gl.c create mode 100644 TC/testcase/utc_mask_transformed_similar_image.c create mode 100644 TC/testcase/utc_mesh_pattern_accuracy_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_accuracy_image.c create mode 100644 TC/testcase/utc_mesh_pattern_conical_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_conical_image.c create mode 100644 TC/testcase/utc_mesh_pattern_control_points_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_control_points_image.c create mode 100644 TC/testcase/utc_mesh_pattern_fold_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_fold_image.c create mode 100644 TC/testcase/utc_mesh_pattern_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_image.c create mode 100644 TC/testcase/utc_mesh_pattern_overlap_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_overlap_image.c create mode 100644 TC/testcase/utc_mesh_pattern_transformed_gl.c create mode 100644 TC/testcase/utc_mesh_pattern_transformed_image.c create mode 100644 TC/testcase/utc_mime_data_gl.c create mode 100644 TC/testcase/utc_mime_data_image.c create mode 100644 TC/testcase/utc_mime_surface_api_gl.c create mode 100644 TC/testcase/utc_mime_surface_api_image.c create mode 100644 TC/testcase/utc_mime_surface_gl.c create mode 100644 TC/testcase/utc_mime_surface_image.c create mode 100644 TC/testcase/utc_miter_precision_gl.c create mode 100644 TC/testcase/utc_miter_precision_image.c create mode 100644 TC/testcase/utc_move_to_show_surface_gl.c create mode 100644 TC/testcase/utc_move_to_show_surface_image.c create mode 100644 TC/testcase/utc_multi_page_gl.c create mode 100644 TC/testcase/utc_multi_page_image.c create mode 100644 TC/testcase/utc_negative_stride_image_gl.c create mode 100644 TC/testcase/utc_negative_stride_image_image.c create mode 100644 TC/testcase/utc_new_sub_path_gl.c create mode 100644 TC/testcase/utc_new_sub_path_image.c create mode 100644 TC/testcase/utc_nil_surface_gl.c create mode 100644 TC/testcase/utc_nil_surface_image.c create mode 100644 TC/testcase/utc_operator_alpha_alpha_gl.c create mode 100644 TC/testcase/utc_operator_alpha_alpha_image.c create mode 100644 TC/testcase/utc_operator_alpha_gl.c create mode 100644 TC/testcase/utc_operator_alpha_image.c create mode 100644 TC/testcase/utc_operator_clear_gl.c create mode 100644 TC/testcase/utc_operator_clear_image.c create mode 100644 TC/testcase/utc_operator_gl.c create mode 100644 TC/testcase/utc_operator_image.c create mode 100644 TC/testcase/utc_operator_source_gl.c create mode 100644 TC/testcase/utc_operator_source_image.c create mode 100644 TC/testcase/utc_over_above_source_gl.c create mode 100644 TC/testcase/utc_over_above_source_image.c create mode 100644 TC/testcase/utc_over_around_source_gl.c create mode 100644 TC/testcase/utc_over_around_source_image.c create mode 100644 TC/testcase/utc_over_below_source_gl.c create mode 100644 TC/testcase/utc_over_below_source_image.c create mode 100644 TC/testcase/utc_over_between_source_gl.c create mode 100644 TC/testcase/utc_over_between_source_image.c create mode 100644 TC/testcase/utc_overlapping_boxes_gl.c create mode 100644 TC/testcase/utc_overlapping_boxes_image.c create mode 100644 TC/testcase/utc_overlapping_dash_caps_gl.c create mode 100644 TC/testcase/utc_overlapping_dash_caps_image.c create mode 100644 TC/testcase/utc_overlapping_glyphs_gl.c create mode 100644 TC/testcase/utc_overlapping_glyphs_image.c create mode 100644 TC/testcase/utc_paint_clip_fill_aa_gl.c create mode 100644 TC/testcase/utc_paint_clip_fill_aa_image.c create mode 100644 TC/testcase/utc_paint_clip_fill_mono_gl.c create mode 100644 TC/testcase/utc_paint_clip_fill_mono_image.c create mode 100644 TC/testcase/utc_paint_gl.c create mode 100644 TC/testcase/utc_paint_image.c create mode 100644 TC/testcase/utc_paint_repeat_gl.c create mode 100644 TC/testcase/utc_paint_repeat_image.c create mode 100644 TC/testcase/utc_paint_source_alpha_gl.c create mode 100644 TC/testcase/utc_paint_source_alpha_image.c create mode 100644 TC/testcase/utc_paint_with_alpha_clip_gl.c create mode 100644 TC/testcase/utc_paint_with_alpha_clip_image.c create mode 100644 TC/testcase/utc_paint_with_alpha_clip_mask_gl.c create mode 100644 TC/testcase/utc_paint_with_alpha_clip_mask_image.c create mode 100644 TC/testcase/utc_paint_with_alpha_gl.c create mode 100644 TC/testcase/utc_paint_with_alpha_image.c create mode 100644 TC/testcase/utc_paint_with_alpha_solid_clip_gl.c create mode 100644 TC/testcase/utc_paint_with_alpha_solid_clip_image.c create mode 100644 TC/testcase/utc_partial_clip_text_bottom_gl.c create mode 100644 TC/testcase/utc_partial_clip_text_bottom_image.c create mode 100644 TC/testcase/utc_partial_clip_text_left_gl.c create mode 100644 TC/testcase/utc_partial_clip_text_left_image.c create mode 100644 TC/testcase/utc_partial_clip_text_right_gl.c create mode 100644 TC/testcase/utc_partial_clip_text_right_image.c create mode 100644 TC/testcase/utc_partial_clip_text_top_gl.c create mode 100644 TC/testcase/utc_partial_clip_text_top_image.c create mode 100644 TC/testcase/utc_partial_coverage_half_reference_gl.c create mode 100644 TC/testcase/utc_partial_coverage_half_reference_image.c create mode 100644 TC/testcase/utc_partial_coverage_half_triangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_half_triangles_image.c create mode 100644 TC/testcase/utc_partial_coverage_intersecting_quads_gl.c create mode 100644 TC/testcase/utc_partial_coverage_intersecting_quads_image.c create mode 100644 TC/testcase/utc_partial_coverage_intersecting_triangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_intersecting_triangles_image.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_gl.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_image.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_half_triangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_half_triangles_image.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_image.c create mode 100644 TC/testcase/utc_partial_coverage_rectangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_rectangles_image.c create mode 100644 TC/testcase/utc_partial_coverage_reference_gl.c create mode 100644 TC/testcase/utc_partial_coverage_reference_image.c create mode 100644 TC/testcase/utc_partial_coverage_three_quarter_reference_gl.c create mode 100644 TC/testcase/utc_partial_coverage_three_quarter_reference_image.c create mode 100644 TC/testcase/utc_partial_coverage_triangles_gl.c create mode 100644 TC/testcase/utc_partial_coverage_triangles_image.c create mode 100644 TC/testcase/utc_pass_through_gl.c create mode 100644 TC/testcase/utc_pass_through_image.c create mode 100644 TC/testcase/utc_path_append_gl.c create mode 100644 TC/testcase/utc_path_append_image.c create mode 100644 TC/testcase/utc_path_precision_gl.c create mode 100644 TC/testcase/utc_path_precision_image.c create mode 100644 TC/testcase/utc_path_stroke_twice_gl.c create mode 100644 TC/testcase/utc_path_stroke_twice_image.c create mode 100644 TC/testcase/utc_pattern_get_type_gl.c create mode 100644 TC/testcase/utc_pattern_get_type_image.c create mode 100644 TC/testcase/utc_pattern_getters_gl.c create mode 100644 TC/testcase/utc_pattern_getters_image.c create mode 100644 TC/testcase/utc_pdf_features_gl.c create mode 100644 TC/testcase/utc_pdf_features_image.c create mode 100644 TC/testcase/utc_pdf_isolated_group_gl.c create mode 100644 TC/testcase/utc_pdf_isolated_group_image.c create mode 100644 TC/testcase/utc_pdf_mime_data_gl.c create mode 100644 TC/testcase/utc_pdf_mime_data_image.c create mode 100644 TC/testcase/utc_pdf_surface_source_gl.c create mode 100644 TC/testcase/utc_pdf_surface_source_image.c create mode 100644 TC/testcase/utc_pixman_rotate_gl.c create mode 100644 TC/testcase/utc_pixman_rotate_image.c create mode 100644 TC/testcase/utc_png_gl.c create mode 100644 TC/testcase/utc_png_image.c create mode 100644 TC/testcase/utc_ps_eps_gl.c create mode 100644 TC/testcase/utc_ps_eps_image.c create mode 100644 TC/testcase/utc_ps_features_gl.c create mode 100644 TC/testcase/utc_ps_features_image.c create mode 100644 TC/testcase/utc_ps_surface_source_gl.c create mode 100644 TC/testcase/utc_ps_surface_source_image.c create mode 100644 TC/testcase/utc_pthread_same_source_gl.c create mode 100644 TC/testcase/utc_pthread_same_source_image.c create mode 100644 TC/testcase/utc_pthread_show_text_gl.c create mode 100644 TC/testcase/utc_pthread_show_text_image.c create mode 100644 TC/testcase/utc_pthread_similar_gl.c create mode 100644 TC/testcase/utc_pthread_similar_image.c create mode 100644 TC/testcase/utc_push_group_color_gl.c create mode 100644 TC/testcase/utc_push_group_color_image.c create mode 100644 TC/testcase/utc_push_group_gl.c create mode 100644 TC/testcase/utc_push_group_image.c create mode 100644 TC/testcase/utc_push_group_path_offset_gl.c create mode 100644 TC/testcase/utc_push_group_path_offset_image.c create mode 100644 TC/testcase/utc_quartz_surface_source_gl.c create mode 100644 TC/testcase/utc_quartz_surface_source_image.c create mode 100644 TC/testcase/utc_radial_gradient_extend_gl.c create mode 100644 TC/testcase/utc_radial_gradient_extend_image.c create mode 100644 TC/testcase/utc_radial_gradient_gl.c create mode 100644 TC/testcase/utc_radial_gradient_image.c create mode 100644 TC/testcase/utc_radial_gradient_mask_gl.c create mode 100644 TC/testcase/utc_radial_gradient_mask_image.c create mode 100644 TC/testcase/utc_radial_gradient_mask_source_gl.c create mode 100644 TC/testcase/utc_radial_gradient_mask_source_image.c create mode 100644 TC/testcase/utc_radial_gradient_one_stop_gl.c create mode 100644 TC/testcase/utc_radial_gradient_one_stop_image.c create mode 100644 TC/testcase/utc_radial_gradient_source_gl.c create mode 100644 TC/testcase/utc_radial_gradient_source_image.c create mode 100644 TC/testcase/utc_radial_outer_focus_gl.c create mode 100644 TC/testcase/utc_radial_outer_focus_image.c create mode 100644 TC/testcase/utc_random_clip_gl.c create mode 100644 TC/testcase/utc_random_clip_image.c create mode 100644 TC/testcase/utc_random_intersections_curves_eo_gl.c create mode 100644 TC/testcase/utc_random_intersections_curves_eo_image.c create mode 100644 TC/testcase/utc_random_intersections_curves_nz_gl.c create mode 100644 TC/testcase/utc_random_intersections_curves_nz_image.c create mode 100644 TC/testcase/utc_random_intersections_eo_gl.c create mode 100644 TC/testcase/utc_random_intersections_eo_image.c create mode 100644 TC/testcase/utc_random_intersections_nonzero_gl.c create mode 100644 TC/testcase/utc_random_intersections_nonzero_image.c create mode 100644 TC/testcase/utc_raster_source_gl.c create mode 100644 TC/testcase/utc_raster_source_image.c create mode 100644 TC/testcase/utc_record1414x_fill_alpha_gl.c create mode 100644 TC/testcase/utc_record1414x_fill_alpha_image.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_clip_gl.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_clip_image.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_clip_mask_gl.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_clip_mask_image.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_gl.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_image.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_solid_clip_gl.c create mode 100644 TC/testcase/utc_record1414x_paint_alpha_solid_clip_image.c create mode 100644 TC/testcase/utc_record1414x_paint_gl.c create mode 100644 TC/testcase/utc_record1414x_paint_image.c create mode 100644 TC/testcase/utc_record1414x_select_font_face_gl.c create mode 100644 TC/testcase/utc_record1414x_select_font_face_image.c create mode 100644 TC/testcase/utc_record1414x_self_intersecting_gl.c create mode 100644 TC/testcase/utc_record1414x_self_intersecting_image.c create mode 100644 TC/testcase/utc_record1414x_text_transform_gl.c create mode 100644 TC/testcase/utc_record1414x_text_transform_image.c create mode 100644 TC/testcase/utc_record2x_fill_alpha_gl.c create mode 100644 TC/testcase/utc_record2x_fill_alpha_image.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_clip_gl.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_clip_image.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_clip_mask_gl.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_clip_mask_image.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_gl.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_image.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_solid_clip_gl.c create mode 100644 TC/testcase/utc_record2x_paint_alpha_solid_clip_image.c create mode 100644 TC/testcase/utc_record2x_paint_gl.c create mode 100644 TC/testcase/utc_record2x_paint_image.c create mode 100644 TC/testcase/utc_record2x_select_font_face_gl.c create mode 100644 TC/testcase/utc_record2x_select_font_face_image.c create mode 100644 TC/testcase/utc_record2x_self_intersecting_gl.c create mode 100644 TC/testcase/utc_record2x_self_intersecting_image.c create mode 100644 TC/testcase/utc_record2x_text_transform_gl.c create mode 100644 TC/testcase/utc_record2x_text_transform_image.c create mode 100644 TC/testcase/utc_record90_fill_alpha_gl.c create mode 100644 TC/testcase/utc_record90_fill_alpha_image.c create mode 100644 TC/testcase/utc_record90_paint_alpha_clip_gl.c create mode 100644 TC/testcase/utc_record90_paint_alpha_clip_image.c create mode 100644 TC/testcase/utc_record90_paint_alpha_clip_mask_gl.c create mode 100644 TC/testcase/utc_record90_paint_alpha_clip_mask_image.c create mode 100644 TC/testcase/utc_record90_paint_alpha_gl.c create mode 100644 TC/testcase/utc_record90_paint_alpha_image.c create mode 100644 TC/testcase/utc_record90_paint_alpha_solid_clip_gl.c create mode 100644 TC/testcase/utc_record90_paint_alpha_solid_clip_image.c create mode 100644 TC/testcase/utc_record90_paint_gl.c create mode 100644 TC/testcase/utc_record90_paint_image.c create mode 100644 TC/testcase/utc_record90_select_font_face_gl.c create mode 100644 TC/testcase/utc_record90_select_font_face_image.c create mode 100644 TC/testcase/utc_record90_self_intersecting_gl.c create mode 100644 TC/testcase/utc_record90_self_intersecting_image.c create mode 100644 TC/testcase/utc_record90_text_transform_gl.c create mode 100644 TC/testcase/utc_record90_text_transform_image.c create mode 100644 TC/testcase/utc_record_extend_none_gl.c create mode 100644 TC/testcase/utc_record_extend_none_image.c create mode 100644 TC/testcase/utc_record_extend_none_similar_gl.c create mode 100644 TC/testcase/utc_record_extend_none_similar_image.c create mode 100644 TC/testcase/utc_record_extend_pad_gl.c create mode 100644 TC/testcase/utc_record_extend_pad_image.c create mode 100644 TC/testcase/utc_record_extend_pad_similar_gl.c create mode 100644 TC/testcase/utc_record_extend_pad_similar_image.c create mode 100644 TC/testcase/utc_record_extend_reflect_gl.c create mode 100644 TC/testcase/utc_record_extend_reflect_image.c create mode 100644 TC/testcase/utc_record_extend_reflect_similar_gl.c create mode 100644 TC/testcase/utc_record_extend_reflect_similar_image.c create mode 100644 TC/testcase/utc_record_extend_repeat_gl.c create mode 100644 TC/testcase/utc_record_extend_repeat_image.c create mode 100644 TC/testcase/utc_record_extend_repeat_similar_gl.c create mode 100644 TC/testcase/utc_record_extend_repeat_similar_image.c create mode 100644 TC/testcase/utc_record_fill_alpha_gl.c create mode 100644 TC/testcase/utc_record_fill_alpha_image.c create mode 100644 TC/testcase/utc_record_mesh_gl.c create mode 100644 TC/testcase/utc_record_mesh_image.c create mode 100644 TC/testcase/utc_record_paint_alpha_clip_gl.c create mode 100644 TC/testcase/utc_record_paint_alpha_clip_image.c create mode 100644 TC/testcase/utc_record_paint_alpha_clip_mask_gl.c create mode 100644 TC/testcase/utc_record_paint_alpha_clip_mask_image.c create mode 100644 TC/testcase/utc_record_paint_alpha_gl.c create mode 100644 TC/testcase/utc_record_paint_alpha_image.c create mode 100644 TC/testcase/utc_record_paint_alpha_solid_clip_gl.c create mode 100644 TC/testcase/utc_record_paint_alpha_solid_clip_image.c create mode 100644 TC/testcase/utc_record_paint_gl.c create mode 100644 TC/testcase/utc_record_paint_image.c create mode 100644 TC/testcase/utc_record_select_font_face_gl.c create mode 100644 TC/testcase/utc_record_select_font_face_image.c create mode 100644 TC/testcase/utc_record_self_intersecting_gl.c create mode 100644 TC/testcase/utc_record_self_intersecting_image.c create mode 100644 TC/testcase/utc_record_text_transform_gl.c create mode 100644 TC/testcase/utc_record_text_transform_image.c create mode 100644 TC/testcase/utc_recording_surface_extend_none_gl.c create mode 100644 TC/testcase/utc_recording_surface_extend_none_image.c create mode 100644 TC/testcase/utc_recording_surface_extend_pad_gl.c create mode 100644 TC/testcase/utc_recording_surface_extend_pad_image.c create mode 100644 TC/testcase/utc_recording_surface_extend_reflect_gl.c create mode 100644 TC/testcase/utc_recording_surface_extend_reflect_image.c create mode 100644 TC/testcase/utc_recording_surface_extend_repeat_gl.c create mode 100644 TC/testcase/utc_recording_surface_extend_repeat_image.c create mode 100644 TC/testcase/utc_recording_surface_over_gl.c create mode 100644 TC/testcase/utc_recording_surface_over_image.c create mode 100644 TC/testcase/utc_recording_surface_source_gl.c create mode 100644 TC/testcase/utc_recording_surface_source_image.c create mode 100644 TC/testcase/utc_rectangle_rounding_error_gl.c create mode 100644 TC/testcase/utc_rectangle_rounding_error_image.c create mode 100644 TC/testcase/utc_rectilinear_dash_gl.c create mode 100644 TC/testcase/utc_rectilinear_dash_image.c create mode 100644 TC/testcase/utc_rectilinear_dash_scale_gl.c create mode 100644 TC/testcase/utc_rectilinear_dash_scale_image.c create mode 100644 TC/testcase/utc_rectilinear_dash_scale_unaligned_gl.c create mode 100644 TC/testcase/utc_rectilinear_dash_scale_unaligned_image.c create mode 100644 TC/testcase/utc_rectilinear_fill_gl.c create mode 100644 TC/testcase/utc_rectilinear_fill_image.c create mode 100644 TC/testcase/utc_rectilinear_grid_gl.c create mode 100644 TC/testcase/utc_rectilinear_grid_image.c create mode 100644 TC/testcase/utc_rectilinear_miter_limit_gl.c create mode 100644 TC/testcase/utc_rectilinear_miter_limit_image.c create mode 100644 TC/testcase/utc_rectilinear_stroke_gl.c create mode 100644 TC/testcase/utc_rectilinear_stroke_image.c create mode 100644 TC/testcase/utc_reflected_stroke_gl.c create mode 100644 TC/testcase/utc_reflected_stroke_image.c create mode 100644 TC/testcase/utc_rel_path_gl.c create mode 100644 TC/testcase/utc_rel_path_image.c create mode 100644 TC/testcase/utc_rgb24_ignore_alpha_gl.c create mode 100644 TC/testcase/utc_rgb24_ignore_alpha_image.c create mode 100644 TC/testcase/utc_rotate_clip_image_surface_paint_gl.c create mode 100644 TC/testcase/utc_rotate_clip_image_surface_paint_image.c create mode 100644 TC/testcase/utc_rotate_image_surface_paint_gl.c create mode 100644 TC/testcase/utc_rotate_image_surface_paint_image.c create mode 100644 TC/testcase/utc_rotated_clip_gl.c create mode 100644 TC/testcase/utc_rotated_clip_image.c create mode 100644 TC/testcase/utc_rounded_rectangle_fill_gl.c create mode 100644 TC/testcase/utc_rounded_rectangle_fill_image.c create mode 100644 TC/testcase/utc_rounded_rectangle_stroke_gl.c create mode 100644 TC/testcase/utc_rounded_rectangle_stroke_image.c create mode 100644 TC/testcase/utc_scale_down_source_surface_paint_gl.c create mode 100644 TC/testcase/utc_scale_down_source_surface_paint_image.c create mode 100644 TC/testcase/utc_scale_offset_image_gl.c create mode 100644 TC/testcase/utc_scale_offset_image_image.c create mode 100644 TC/testcase/utc_scale_offset_similar_gl.c create mode 100644 TC/testcase/utc_scale_offset_similar_image.c create mode 100644 TC/testcase/utc_scale_source_surface_paint_gl.c create mode 100644 TC/testcase/utc_scale_source_surface_paint_image.c create mode 100644 TC/testcase/utc_scaled_font_zero_matrix_gl.c create mode 100644 TC/testcase/utc_scaled_font_zero_matrix_image.c create mode 100644 TC/testcase/utc_select_font_face_gl.c create mode 100644 TC/testcase/utc_select_font_face_image.c create mode 100644 TC/testcase/utc_select_font_no_show_text_gl.c create mode 100644 TC/testcase/utc_select_font_no_show_text_image.c create mode 100644 TC/testcase/utc_self_copy_gl.c create mode 100644 TC/testcase/utc_self_copy_image.c create mode 100644 TC/testcase/utc_self_copy_overlap_gl.c create mode 100644 TC/testcase/utc_self_copy_overlap_image.c create mode 100644 TC/testcase/utc_self_intersecting_gl.c create mode 100644 TC/testcase/utc_self_intersecting_image.c create mode 100644 TC/testcase/utc_set_source_gl.c create mode 100644 TC/testcase/utc_set_source_image.c create mode 100644 TC/testcase/utc_shape_general_convex_gl.c create mode 100644 TC/testcase/utc_shape_general_convex_image.c create mode 100644 TC/testcase/utc_shape_sierpinski_gl.c create mode 100644 TC/testcase/utc_shape_sierpinski_image.c create mode 100644 TC/testcase/utc_show_glyphs_advance_gl.c create mode 100644 TC/testcase/utc_show_glyphs_advance_image.c create mode 100644 TC/testcase/utc_show_glyphs_many_gl.c create mode 100644 TC/testcase/utc_show_glyphs_many_image.c create mode 100644 TC/testcase/utc_show_text_current_point_gl.c create mode 100644 TC/testcase/utc_show_text_current_point_image.c create mode 100644 TC/testcase/utc_skew_extreme_gl.c create mode 100644 TC/testcase/utc_skew_extreme_image.c create mode 100644 TC/testcase/utc_smask_fill_gl.c create mode 100644 TC/testcase/utc_smask_fill_image.c create mode 100644 TC/testcase/utc_smask_gl.c create mode 100644 TC/testcase/utc_smask_image.c create mode 100644 TC/testcase/utc_smask_image_mask_gl.c create mode 100644 TC/testcase/utc_smask_image_mask_image.c create mode 100644 TC/testcase/utc_smask_mask_gl.c create mode 100644 TC/testcase/utc_smask_mask_image.c create mode 100644 TC/testcase/utc_smask_paint_gl.c create mode 100644 TC/testcase/utc_smask_paint_image.c create mode 100644 TC/testcase/utc_smask_stroke_gl.c create mode 100644 TC/testcase/utc_smask_stroke_image.c create mode 100644 TC/testcase/utc_smask_text_gl.c create mode 100644 TC/testcase/utc_smask_text_image.c create mode 100644 TC/testcase/utc_solid_pattern_cache_stress_gl.c create mode 100644 TC/testcase/utc_solid_pattern_cache_stress_image.c create mode 100644 TC/testcase/utc_source_clip_gl.c create mode 100644 TC/testcase/utc_source_clip_image.c create mode 100644 TC/testcase/utc_source_clip_scale_gl.c create mode 100644 TC/testcase/utc_source_clip_scale_image.c create mode 100644 TC/testcase/utc_source_surface_scale_paint_gl.c create mode 100644 TC/testcase/utc_source_surface_scale_paint_image.c create mode 100644 TC/testcase/utc_spline_decomposition_gl.c create mode 100644 TC/testcase/utc_spline_decomposition_image.c create mode 100644 TC/testcase/utc_stride_12_image_gl.c create mode 100644 TC/testcase/utc_stride_12_image_image.c create mode 100644 TC/testcase/utc_stroke_ctm_caps_gl.c create mode 100644 TC/testcase/utc_stroke_ctm_caps_image.c create mode 100644 TC/testcase/utc_stroke_image_gl.c create mode 100644 TC/testcase/utc_stroke_image_image.c create mode 100644 TC/testcase/utc_stroke_open_box_gl.c create mode 100644 TC/testcase/utc_stroke_open_box_image.c create mode 100644 TC/testcase/utc_stroke_pattern_gl.c create mode 100644 TC/testcase/utc_stroke_pattern_image.c create mode 100644 TC/testcase/utc_subsurface_gl.c create mode 100644 TC/testcase/utc_subsurface_image.c create mode 100644 TC/testcase/utc_subsurface_image_repeat_gl.c create mode 100644 TC/testcase/utc_subsurface_image_repeat_image.c create mode 100644 TC/testcase/utc_subsurface_modify_child_gl.c create mode 100644 TC/testcase/utc_subsurface_modify_child_image.c create mode 100644 TC/testcase/utc_subsurface_modify_parent_gl.c create mode 100644 TC/testcase/utc_subsurface_modify_parent_image.c create mode 100644 TC/testcase/utc_subsurface_outside_target_gl.c create mode 100644 TC/testcase/utc_subsurface_outside_target_image.c create mode 100644 TC/testcase/utc_subsurface_pad_gl.c create mode 100644 TC/testcase/utc_subsurface_pad_image.c create mode 100644 TC/testcase/utc_subsurface_reflect_gl.c create mode 100644 TC/testcase/utc_subsurface_reflect_image.c create mode 100644 TC/testcase/utc_subsurface_repeat_gl.c create mode 100644 TC/testcase/utc_subsurface_repeat_image.c create mode 100644 TC/testcase/utc_subsurface_scale_gl.c create mode 100644 TC/testcase/utc_subsurface_scale_image.c create mode 100644 TC/testcase/utc_subsurface_similar_repeat_gl.c create mode 100644 TC/testcase/utc_subsurface_similar_repeat_image.c create mode 100644 TC/testcase/utc_surface_finish_twice_gl.c create mode 100644 TC/testcase/utc_surface_finish_twice_image.c create mode 100644 TC/testcase/utc_surface_pattern_big_scale_down_gl.c create mode 100644 TC/testcase/utc_surface_pattern_big_scale_down_image.c create mode 100644 TC/testcase/utc_surface_pattern_gl.c create mode 100644 TC/testcase/utc_surface_pattern_image.c create mode 100644 TC/testcase/utc_surface_pattern_operator_gl.c create mode 100644 TC/testcase/utc_surface_pattern_operator_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_none_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_none_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_pad_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_pad_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_reflect_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_reflect_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_repeat_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_extend_repeat_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_down_image.c create mode 100644 TC/testcase/utc_surface_pattern_scale_up_gl.c create mode 100644 TC/testcase/utc_surface_pattern_scale_up_image.c create mode 100644 TC/testcase/utc_svg_clip_gl.c create mode 100644 TC/testcase/utc_svg_clip_image.c create mode 100644 TC/testcase/utc_svg_surface_gl.c create mode 100644 TC/testcase/utc_svg_surface_image.c create mode 100644 TC/testcase/utc_svg_surface_source_gl.c create mode 100644 TC/testcase/utc_svg_surface_source_image.c create mode 100644 TC/testcase/utc_text_antialias_gray_gl.c create mode 100644 TC/testcase/utc_text_antialias_gray_image.c create mode 100644 TC/testcase/utc_text_antialias_none_gl.c create mode 100644 TC/testcase/utc_text_antialias_none_image.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_bgr_gl.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_bgr_image.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_gl.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_image.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_rgb_gl.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_rgb_image.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_vbgr_gl.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_vbgr_image.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_vrgb_gl.c create mode 100644 TC/testcase/utc_text_antialias_subpixel_vrgb_image.c create mode 100644 TC/testcase/utc_text_cache_crash_gl.c create mode 100644 TC/testcase/utc_text_cache_crash_image.c create mode 100644 TC/testcase/utc_text_glyph_range_gl.c create mode 100644 TC/testcase/utc_text_glyph_range_image.c create mode 100644 TC/testcase/utc_text_pattern_gl.c create mode 100644 TC/testcase/utc_text_pattern_image.c create mode 100644 TC/testcase/utc_text_rotate_gl.c create mode 100644 TC/testcase/utc_text_rotate_image.c create mode 100644 TC/testcase/utc_text_transform_gl.c create mode 100644 TC/testcase/utc_text_transform_image.c create mode 100644 TC/testcase/utc_text_zero_len_gl.c create mode 100644 TC/testcase/utc_text_zero_len_image.c create mode 100644 TC/testcase/utc_tiger_gl.c create mode 100644 TC/testcase/utc_tiger_image.c create mode 100644 TC/testcase/utc_tighten_bounds_gl.c create mode 100644 TC/testcase/utc_tighten_bounds_image.c create mode 100644 TC/testcase/utc_toy_font_face_gl.c create mode 100644 TC/testcase/utc_toy_font_face_image.c create mode 100644 TC/testcase/utc_transforms_gl.c create mode 100644 TC/testcase/utc_transforms_image.c create mode 100644 TC/testcase/utc_translate_show_surface_gl.c create mode 100644 TC/testcase/utc_translate_show_surface_image.c create mode 100644 TC/testcase/utc_trap_clip_gl.c create mode 100644 TC/testcase/utc_trap_clip_image.c create mode 100644 TC/testcase/utc_twin_antialias_gray_gl.c create mode 100644 TC/testcase/utc_twin_antialias_gray_image.c create mode 100644 TC/testcase/utc_twin_antialias_mixed_gl.c create mode 100644 TC/testcase/utc_twin_antialias_mixed_image.c create mode 100644 TC/testcase/utc_twin_antialias_none_gl.c create mode 100644 TC/testcase/utc_twin_antialias_none_image.c create mode 100644 TC/testcase/utc_twin_antialias_subpixel_gl.c create mode 100644 TC/testcase/utc_twin_antialias_subpixel_image.c create mode 100644 TC/testcase/utc_twin_gl.c create mode 100644 TC/testcase/utc_twin_image.c create mode 100644 TC/testcase/utc_unaligned_box_gl.c create mode 100644 TC/testcase/utc_unaligned_box_image.c create mode 100644 TC/testcase/utc_unantialiased_shapes_gl.c create mode 100644 TC/testcase/utc_unantialiased_shapes_image.c create mode 100644 TC/testcase/utc_unbounded_operator_gl.c create mode 100644 TC/testcase/utc_unbounded_operator_image.c create mode 100644 TC/testcase/utc_unclosed_strokes_gl.c create mode 100644 TC/testcase/utc_unclosed_strokes_image.c create mode 100644 TC/testcase/utc_user_data_gl.c create mode 100644 TC/testcase/utc_user_data_image.c create mode 100644 TC/testcase/utc_user_font_gl.c create mode 100644 TC/testcase/utc_user_font_image.c create mode 100644 TC/testcase/utc_user_font_mask_gl.c create mode 100644 TC/testcase/utc_user_font_mask_image.c create mode 100644 TC/testcase/utc_user_font_proxy_gl.c create mode 100644 TC/testcase/utc_user_font_proxy_image.c create mode 100644 TC/testcase/utc_user_font_rescale_gl.c create mode 100644 TC/testcase/utc_user_font_rescale_image.c create mode 100644 TC/testcase/utc_white_in_noop_gl.c create mode 100644 TC/testcase/utc_white_in_noop_image.c create mode 100644 TC/testcase/utc_world_map_fill_gl.c create mode 100644 TC/testcase/utc_world_map_fill_image.c create mode 100644 TC/testcase/utc_world_map_gl.c create mode 100644 TC/testcase/utc_world_map_image.c create mode 100644 TC/testcase/utc_world_map_stroke_gl.c create mode 100644 TC/testcase/utc_world_map_stroke_image.c create mode 100644 TC/testcase/utc_xcb_huge_image_shm_gl.c create mode 100644 TC/testcase/utc_xcb_huge_image_shm_image.c create mode 100644 TC/testcase/utc_xcb_snapshot_assert_gl.c create mode 100644 TC/testcase/utc_xcb_snapshot_assert_image.c create mode 100644 TC/testcase/utc_xcb_stress_cache_gl.c create mode 100644 TC/testcase/utc_xcb_stress_cache_image.c create mode 100644 TC/testcase/utc_xcb_surface_source_gl.c create mode 100644 TC/testcase/utc_xcb_surface_source_image.c create mode 100644 TC/testcase/utc_xcomposite_projection_gl.c create mode 100644 TC/testcase/utc_xcomposite_projection_image.c create mode 100644 TC/testcase/utc_xlib_expose_event_gl.c create mode 100644 TC/testcase/utc_xlib_expose_event_image.c create mode 100644 TC/testcase/utc_xlib_surface_gl.c create mode 100644 TC/testcase/utc_xlib_surface_image.c create mode 100644 TC/testcase/utc_xlib_surface_source_gl.c create mode 100644 TC/testcase/utc_xlib_surface_source_image.c create mode 100644 TC/testcase/utc_zero_alpha_gl.c create mode 100644 TC/testcase/utc_zero_alpha_image.c create mode 100644 TC/testcase/utc_zero_mask_gl.c create mode 100644 TC/testcase/utc_zero_mask_image.c create mode 100755 TC/tet_scen create mode 100755 TC/tetbuild.cfg create mode 100755 TC/tetclean.cfg create mode 100755 TC/tetexec.cfg create mode 100644 aclocal.m4 create mode 100644 boilerplate/.gitignore create mode 100644 boilerplate/cairo-boilerplate-cogl.c create mode 100644 build/.gitignore create mode 100644 build/Makefile.win32.inform create mode 100644 config.h.in create mode 100755 configure create mode 100644 doc/.gitignore create mode 100644 doc/public/.gitignore create mode 100644 doc/tutorial/slides/.gitignore create mode 100644 doc/tutorial/src/.gitignore create mode 100644 packaging/cairo.manifest create mode 100644 perf/.gitignore create mode 100644 perf/Makefile.in create mode 100644 perf/micro/Makefile.in create mode 100644 src/.gitignore create mode 100644 src/cairo-box-inline.h create mode 100644 src/cairo-clip-inline.h create mode 100644 src/cairo-cogl-context-private.h create mode 100644 src/cairo-cogl-context.c create mode 100644 src/cairo-cogl-gradient-private.h create mode 100644 src/cairo-cogl-gradient.c create mode 100644 src/cairo-cogl-private.h create mode 100644 src/cairo-cogl-surface.c create mode 100644 src/cairo-cogl-utils-private.h create mode 100644 src/cairo-cogl-utils.c create mode 100644 src/cairo-cogl.h create mode 100644 src/cairo-combsort-inline.h create mode 100644 src/cairo-contour-inline.h create mode 100644 src/cairo-damage-private.h create mode 100644 src/cairo-damage.c create mode 100644 src/cairo-error-inline.h create mode 100644 src/cairo-gl-hairline-stroke.c create mode 100755 src/cairo-gl-msaa-compositor.c create mode 100644 src/cairo-gl-source.c create mode 100644 src/cairo-image-surface-inline.h create mode 100644 src/cairo-list-inline.h create mode 100644 src/cairo-pattern-inline.h create mode 100644 src/cairo-raster-source-pattern.c create mode 100644 src/cairo-recording-surface-inline.h create mode 100644 src/cairo-shape-mask-compositor.c create mode 100644 src/cairo-surface-inline.h create mode 100644 src/cairo-surface-observer-inline.h create mode 100644 src/cairo-surface-snapshot-inline.h create mode 100644 src/cairo-surface-subsurface-inline.h create mode 100755 src/check-doc-syntax.awk create mode 100644 src/win32/cairo-win32-debug.c create mode 100644 src/win32/cairo-win32-device.c create mode 100644 src/win32/cairo-win32-display-surface.c create mode 100644 src/win32/cairo-win32-font.c create mode 100644 src/win32/cairo-win32-gdi-compositor.c create mode 100644 src/win32/cairo-win32-printing-surface.c create mode 100644 src/win32/cairo-win32-private.h create mode 100644 src/win32/cairo-win32-surface.c create mode 100644 src/win32/cairo-win32-system.c create mode 100644 test/.gitignore create mode 100644 test/arc-direction.c create mode 100644 test/bug-source-cu.c create mode 100644 test/copy-disjoint.c create mode 100644 test/degenerate-solid-dash.c create mode 100644 test/fallback.c create mode 100644 test/fill-disjoint.c create mode 100644 test/inverted-clip.c create mode 100644 test/negative-stride-image.c create mode 100644 test/pdf-isolated-group.c create mode 100644 test/pdiff/.gitignore create mode 100644 test/raster-source.c create mode 100644 test/record1414x.c create mode 100644 test/record2x.c create mode 100644 test/record90.c create mode 100644 test/rectilinear-dash-scale.c create mode 100644 test/reference/a1-bug.egl.argb32.ref.png create mode 100644 test/reference/a1-bug.mask.argb32.ref.png create mode 100644 test/reference/a1-bug.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-fill-equal.argb32.ref.png create mode 100644 test/reference/a1-clip-fill-equal.egl.argb32.ref.png create mode 100644 test/reference/a1-clip-fill-equal.mask.argb32.ref.png create mode 100644 test/reference/a1-clip-fill-equal.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-fill-equal.rgb24.ref.png create mode 100644 test/reference/a1-clip-fill-rule.egl.argb32.ref.png create mode 100644 test/reference/a1-clip-fill-rule.mask.argb32.ref.png create mode 100644 test/reference/a1-clip-fill-rule.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-fill.argb32.ref.png create mode 100644 test/reference/a1-clip-fill.egl.argb32.ref.png create mode 100644 test/reference/a1-clip-fill.mask.argb32.ref.png create mode 100644 test/reference/a1-clip-fill.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-fill.rgb24.ref.png create mode 100644 test/reference/a1-clip-paint.argb32.ref.png create mode 100644 test/reference/a1-clip-paint.egl.argb32.ref.png create mode 100644 test/reference/a1-clip-paint.mask.argb32.ref.png create mode 100644 test/reference/a1-clip-paint.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-paint.rgb24.ref.png create mode 100644 test/reference/a1-clip-stroke.argb32.ref.png create mode 100644 test/reference/a1-clip-stroke.egl.argb32.ref.png create mode 100644 test/reference/a1-clip-stroke.mask.argb32.ref.png create mode 100644 test/reference/a1-clip-stroke.mask.rgb24.ref.png create mode 100644 test/reference/a1-clip-stroke.rgb24.ref.png create mode 100644 test/reference/a1-fill.argb32.ref.png create mode 100644 test/reference/a1-fill.base.argb32.ref.png create mode 100644 test/reference/a1-fill.base.rgb24.ref.png create mode 100644 test/reference/a1-fill.egl.argb32.ref.png create mode 100644 test/reference/a1-fill.mask.argb32.ref.png create mode 100644 test/reference/a1-fill.mask.rgb24.ref.png create mode 100644 test/reference/a1-fill.rgb24.ref.png create mode 100644 test/reference/a1-fill.traps.argb32.ref.png create mode 100644 test/reference/a1-fill.traps.rgb24.ref.png create mode 100644 test/reference/a1-image-sample.argb32.ref.png create mode 100644 test/reference/a1-image-sample.egl.argb32.ref.png create mode 100644 test/reference/a1-image-sample.mask.argb32.ref.png create mode 100644 test/reference/a1-image-sample.mask.rgb24.ref.png create mode 100644 test/reference/a1-image-sample.rgb24.ref.png create mode 100644 test/reference/a1-image-sample.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/a1-image-sample.xlib-window.rgb24.ref.png create mode 100644 test/reference/a1-line-width.argb32.ref.png create mode 100644 test/reference/a1-line-width.egl.argb32.ref.png create mode 100644 test/reference/a1-line-width.mask.argb32.ref.png create mode 100644 test/reference/a1-line-width.mask.rgb24.ref.png create mode 100644 test/reference/a1-line-width.rgb24.ref.png create mode 100644 test/reference/a1-mask-sample.argb32.ref.png create mode 100644 test/reference/a1-mask-sample.egl.argb32.ref.png create mode 100644 test/reference/a1-mask-sample.mask.argb32.ref.png create mode 100644 test/reference/a1-mask-sample.mask.rgb24.ref.png create mode 100644 test/reference/a1-mask-sample.rgb24.ref.png create mode 100644 test/reference/a1-mask.argb32.ref.png create mode 100644 test/reference/a1-mask.egl.argb32.ref.png create mode 100644 test/reference/a1-mask.mask.argb32.ref.png create mode 100644 test/reference/a1-mask.mask.rgb24.ref.png create mode 100644 test/reference/a1-mask.rgb24.ref.png create mode 100644 test/reference/a1-rasterisation-rectangles.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-rectangles.egl.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-rectangles.mask.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-rectangles.mask.rgb24.ref.png create mode 100644 test/reference/a1-rasterisation-rectangles.rgb24.ref.png create mode 100644 test/reference/a1-rasterisation-triangles.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-triangles.egl.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-triangles.mask.argb32.ref.png create mode 100644 test/reference/a1-rasterisation-triangles.mask.rgb24.ref.png create mode 100644 test/reference/a1-rasterisation-triangles.rgb24.ref.png create mode 100644 test/reference/a1-rectilinear-grid.argb32.ref.png create mode 100644 test/reference/a1-rectilinear-grid.egl.argb32.ref.png create mode 100644 test/reference/a1-rectilinear-grid.mask.argb32.ref.png create mode 100644 test/reference/a1-rectilinear-grid.mask.rgb24.ref.png create mode 100644 test/reference/a1-rectilinear-grid.rgb24.ref.png create mode 100644 test/reference/a1-sample.argb32.ref.png create mode 100644 test/reference/a1-sample.egl.argb32.ref.png create mode 100644 test/reference/a1-sample.mask.argb32.ref.png create mode 100644 test/reference/a1-sample.mask.rgb24.ref.png create mode 100644 test/reference/a1-sample.rgb24.ref.png create mode 100644 test/reference/a1-tiger.egl.argb32.ref.png create mode 100644 test/reference/a1-tiger.mask.argb32.ref.png create mode 100644 test/reference/a1-tiger.mask.rgb24.ref.png create mode 100644 test/reference/a1-traps-sample.argb32.ref.png create mode 100644 test/reference/a1-traps-sample.egl.argb32.ref.png create mode 100644 test/reference/a1-traps-sample.mask.argb32.ref.png create mode 100644 test/reference/a1-traps-sample.mask.rgb24.ref.png create mode 100644 test/reference/a1-traps-sample.rgb24.ref.png create mode 100644 test/reference/a8-clear.argb32.ref.png create mode 100644 test/reference/a8-clear.egl.argb32.ref.png create mode 100644 test/reference/a8-clear.mask.argb32.ref.png create mode 100644 test/reference/a8-clear.mask.rgb24.ref.png create mode 100644 test/reference/a8-clear.rgb24.ref.png create mode 100644 test/reference/a8-mask.argb32.ref.png create mode 100644 test/reference/a8-mask.egl.argb32.ref.png create mode 100644 test/reference/a8-mask.mask.argb32.ref.png create mode 100644 test/reference/a8-mask.mask.rgb24.ref.png create mode 100644 test/reference/a8-mask.rgb24.ref.png create mode 100644 test/reference/aliasing.argb32.ref.png create mode 100644 test/reference/aliasing.egl.argb32.ref.png create mode 100644 test/reference/aliasing.mask.argb32.ref.png create mode 100644 test/reference/aliasing.mask.rgb24.ref.png create mode 100644 test/reference/aliasing.rgb24.ref.png create mode 100644 test/reference/alpha-similar.argb32.ref.png create mode 100644 test/reference/alpha-similar.egl.argb32.ref.png create mode 100644 test/reference/alpha-similar.mask.argb32.ref.png create mode 100644 test/reference/alpha-similar.mask.rgb24.ref.png create mode 100644 test/reference/api-special-cases.argb32.ref.png create mode 100644 test/reference/api-special-cases.egl.argb32.ref.png create mode 100644 test/reference/api-special-cases.mask.argb32.ref.png create mode 100644 test/reference/api-special-cases.mask.rgb24.ref.png create mode 100644 test/reference/api-special-cases.rgb24.ref.png create mode 100644 test/reference/arc-direction.argb32.ref.png create mode 100644 test/reference/arc-direction.base.argb32.ref.png create mode 100644 test/reference/arc-direction.base.ref.png create mode 100644 test/reference/arc-direction.base.rgb24.ref.png create mode 100644 test/reference/arc-direction.egl.argb32.ref.png create mode 100644 test/reference/arc-direction.mask.argb32.ref.png create mode 100644 test/reference/arc-direction.mask.rgb24.ref.png create mode 100644 test/reference/arc-direction.ps.ref.png create mode 100644 test/reference/arc-direction.ref.png create mode 100644 test/reference/arc-direction.rgb24.ref.png create mode 100644 test/reference/arc-direction.traps.argb32.ref.png create mode 100644 test/reference/arc-direction.traps.ref.png create mode 100644 test/reference/arc-direction.traps.rgb24.ref.png create mode 100644 test/reference/arc-infinite-loop.argb32.ref.png create mode 100644 test/reference/arc-infinite-loop.egl.argb32.ref.png create mode 100644 test/reference/arc-infinite-loop.mask.argb32.ref.png create mode 100644 test/reference/arc-infinite-loop.mask.rgb24.ref.png create mode 100644 test/reference/arc-infinite-loop.rgb24.ref.png create mode 100644 test/reference/arc-looping-dash.argb32.ref.png create mode 100644 test/reference/arc-looping-dash.egl.argb32.ref.png create mode 100644 test/reference/arc-looping-dash.mask.argb32.ref.png create mode 100644 test/reference/arc-looping-dash.mask.rgb24.ref.png create mode 100644 test/reference/arc-looping-dash.rgb24.ref.png create mode 100644 test/reference/big-empty-box.egl.argb32.ref.png create mode 100644 test/reference/big-empty-triangle.egl.argb32.ref.png create mode 100644 test/reference/big-empty-triangle.mask.argb32.ref.png create mode 100644 test/reference/big-empty-triangle.mask.rgb24.ref.png create mode 100644 test/reference/big-line.argb32.ref.png create mode 100644 test/reference/big-line.egl.argb32.ref.png create mode 100644 test/reference/big-line.mask.argb32.ref.png create mode 100644 test/reference/big-line.mask.rgb24.ref.png create mode 100644 test/reference/big-line.rgb24.ref.png create mode 100644 test/reference/big-little-box.egl.argb32.ref.png create mode 100644 test/reference/big-little-box.mask.argb32.ref.png create mode 100644 test/reference/big-little-box.mask.rgb24.ref.png create mode 100644 test/reference/big-little-triangle.egl.argb32.ref.png create mode 100644 test/reference/big-little-triangle.mask.argb32.ref.png create mode 100644 test/reference/big-little-triangle.mask.rgb24.ref.png create mode 100644 test/reference/big-trap.egl.argb32.ref.png create mode 100644 test/reference/big-trap.mask.argb32.ref.png create mode 100644 test/reference/big-trap.mask.rgb24.ref.png create mode 100644 test/reference/bilevel-image.argb32.ref.png create mode 100644 test/reference/bilevel-image.egl.argb32.ref.png create mode 100644 test/reference/bilevel-image.mask.argb32.ref.png create mode 100644 test/reference/bilevel-image.mask.rgb24.ref.png create mode 100644 test/reference/bilevel-image.rgb24.ref.png create mode 100644 test/reference/bilevel-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/bilevel-xlib-window.rgb24.ref.png create mode 100644 test/reference/bilevel-xlib.argb32.ref.png create mode 100644 test/reference/bilevel-xlib.rgb24.ref.png create mode 100644 test/reference/bitmap-font.argb32.ref.png create mode 100644 test/reference/bitmap-font.egl.argb32.ref.png create mode 100644 test/reference/bitmap-font.mask.argb32.ref.png create mode 100644 test/reference/bitmap-font.mask.rgb24.ref.png create mode 100644 test/reference/bug-40410.argb32.ref.png create mode 100644 test/reference/bug-40410.egl.argb32.ref.png create mode 100644 test/reference/bug-40410.mask.argb32.ref.png create mode 100644 test/reference/bug-40410.mask.rgb24.ref.png create mode 100644 test/reference/bug-40410.rgb24.ref.png create mode 100644 test/reference/bug-bo-rectangular.argb32.ref.png create mode 100644 test/reference/bug-bo-rectangular.egl.argb32.ref.png create mode 100644 test/reference/bug-bo-rectangular.mask.argb32.ref.png create mode 100644 test/reference/bug-bo-rectangular.mask.rgb24.ref.png create mode 100644 test/reference/bug-bo-rectangular.rgb24.ref.png create mode 100644 test/reference/bug-bo-ricotz.argb32.ref.png create mode 100644 test/reference/bug-bo-ricotz.base.argb32.ref.png create mode 100644 test/reference/bug-bo-ricotz.base.rgb24.ref.png create mode 100644 test/reference/bug-bo-ricotz.egl.argb32.ref.png create mode 100644 test/reference/bug-bo-ricotz.mask.argb32.ref.png create mode 100644 test/reference/bug-bo-ricotz.mask.rgb24.ref.png create mode 100644 test/reference/bug-bo-ricotz.rgb24.ref.png create mode 100644 test/reference/bug-bo-ricotz.traps.argb32.ref.png create mode 100644 test/reference/bug-bo-ricotz.traps.rgb24.ref.png create mode 100644 test/reference/bug-extents.argb32.ref.png create mode 100644 test/reference/bug-extents.egl.argb32.ref.png create mode 100644 test/reference/bug-extents.mask.argb32.ref.png create mode 100644 test/reference/bug-extents.mask.rgb24.ref.png create mode 100644 test/reference/bug-extents.rgb24.ref.png create mode 100644 test/reference/bug-seams.argb32.ref.png create mode 100644 test/reference/bug-seams.egl.argb32.ref.png create mode 100644 test/reference/bug-seams.mask.argb32.ref.png create mode 100644 test/reference/bug-seams.mask.rgb24.ref.png create mode 100644 test/reference/bug-seams.rgb24.ref.png create mode 100644 test/reference/bug-source-cu.argb32.ref.png create mode 100644 test/reference/bug-source-cu.egl.argb32.ref.png create mode 100644 test/reference/bug-source-cu.rgb24.ref.png create mode 100644 test/reference/bug-source-cu.traps.argb32.ref.png create mode 100644 test/reference/bug-source-cu.traps.rgb24.ref.png create mode 100644 test/reference/caps-joins-alpha.argb32.ref.png create mode 100644 test/reference/caps-joins-alpha.egl.argb32.ref.png create mode 100644 test/reference/caps-joins-alpha.mask.argb32.ref.png create mode 100644 test/reference/caps-joins-alpha.mask.rgb24.ref.png create mode 100644 test/reference/caps-joins-alpha.rgb24.ref.png create mode 100644 test/reference/caps-joins-curve.argb32.ref.png create mode 100644 test/reference/caps-joins-curve.egl.argb32.ref.png create mode 100644 test/reference/caps-joins-curve.mask.argb32.ref.png create mode 100644 test/reference/caps-joins-curve.mask.rgb24.ref.png create mode 100644 test/reference/caps-joins-curve.rgb24.ref.png create mode 100644 test/reference/caps-joins.argb32.ref.png create mode 100644 test/reference/caps-joins.egl.argb32.ref.png create mode 100644 test/reference/caps-joins.mask.argb32.ref.png create mode 100644 test/reference/caps-joins.mask.rgb24.ref.png create mode 100644 test/reference/caps-joins.rgb24.ref.png create mode 100644 test/reference/caps-sub-paths.argb32.ref.png create mode 100644 test/reference/caps-sub-paths.egl.argb32.ref.png create mode 100644 test/reference/caps-sub-paths.mask.argb32.ref.png create mode 100644 test/reference/caps-sub-paths.mask.rgb24.ref.png create mode 100644 test/reference/caps-sub-paths.rgb24.ref.png create mode 100644 test/reference/caps-tails-curve.argb32.ref.png create mode 100644 test/reference/caps-tails-curve.egl.argb32.ref.png create mode 100644 test/reference/caps-tails-curve.mask.argb32.ref.png create mode 100644 test/reference/caps-tails-curve.mask.rgb24.ref.png create mode 100644 test/reference/caps-tails-curve.rgb24.ref.png create mode 100644 test/reference/caps.argb32.ref.png create mode 100644 test/reference/caps.egl.argb32.ref.png create mode 100644 test/reference/caps.mask.argb32.ref.png create mode 100644 test/reference/caps.mask.rgb24.ref.png create mode 100644 test/reference/caps.rgb24.ref.png create mode 100644 test/reference/checkerboard.argb32.ref.png create mode 100644 test/reference/checkerboard.egl.argb32.ref.png create mode 100644 test/reference/checkerboard.mask.argb32.ref.png create mode 100644 test/reference/checkerboard.mask.rgb24.ref.png create mode 100644 test/reference/checkerboard.rgb24.ref.png create mode 100644 test/reference/clear-source.argb32.ref.png create mode 100644 test/reference/clear-source.egl.argb32.ref.png create mode 100644 test/reference/clear-source.mask.argb32.ref.png create mode 100644 test/reference/clear-source.mask.rgb24.ref.png create mode 100644 test/reference/clear-source.rgb24.ref.png create mode 100644 test/reference/clear.mask.argb32.ref.png create mode 100644 test/reference/clear.mask.rgb24.ref.png create mode 100644 test/reference/clip-all.argb32.ref.png create mode 100644 test/reference/clip-all.egl.argb32.ref.png create mode 100644 test/reference/clip-all.mask.argb32.ref.png create mode 100644 test/reference/clip-all.mask.rgb24.ref.png create mode 100644 test/reference/clip-all.rgb24.ref.png create mode 100644 test/reference/clip-complex-shape-eo-aa.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-aa.egl.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png create mode 100644 test/reference/clip-complex-shape-eo-aa.rgb24.ref.png create mode 100644 test/reference/clip-complex-shape-eo-mono.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-mono.egl.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png create mode 100644 test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png create mode 100644 test/reference/clip-complex-shape-eo-mono.rgb24.ref.png create mode 100644 test/reference/clip-contexts.argb32.ref.png create mode 100644 test/reference/clip-contexts.egl.argb32.ref.png create mode 100644 test/reference/clip-contexts.mask.argb32.ref.png create mode 100644 test/reference/clip-contexts.mask.rgb24.ref.png create mode 100644 test/reference/clip-contexts.rgb24.ref.png create mode 100644 test/reference/clip-device-offset.egl.argb32.ref.png create mode 100644 test/reference/clip-device-offset.mask.argb32.ref.png create mode 100644 test/reference/clip-device-offset.mask.rgb24.ref.png create mode 100644 test/reference/clip-disjoint-hatching.argb32.ref.png create mode 100644 test/reference/clip-disjoint-hatching.egl.argb32.ref.png create mode 100644 test/reference/clip-disjoint-hatching.mask.argb32.ref.png create mode 100644 test/reference/clip-disjoint-hatching.mask.rgb24.ref.png create mode 100644 test/reference/clip-disjoint-hatching.rgb24.ref.png create mode 100644 test/reference/clip-disjoint.egl.argb32.ref.png create mode 100644 test/reference/clip-disjoint.mask.argb32.ref.png create mode 100644 test/reference/clip-disjoint.mask.rgb24.ref.png create mode 100644 test/reference/clip-empty-group.argb32.ref.png create mode 100644 test/reference/clip-empty-group.egl.argb32.ref.png create mode 100644 test/reference/clip-empty-group.mask.argb32.ref.png create mode 100644 test/reference/clip-empty-group.mask.rgb24.ref.png create mode 100644 test/reference/clip-empty-group.rgb24.ref.png create mode 100644 test/reference/clip-empty-save.argb32.ref.png create mode 100644 test/reference/clip-empty-save.egl.argb32.ref.png create mode 100644 test/reference/clip-empty-save.mask.argb32.ref.png create mode 100644 test/reference/clip-empty-save.mask.rgb24.ref.png create mode 100644 test/reference/clip-empty-save.rgb24.ref.png create mode 100644 test/reference/clip-empty.argb32.ref.png create mode 100644 test/reference/clip-empty.egl.argb32.ref.png create mode 100644 test/reference/clip-empty.mask.argb32.ref.png create mode 100644 test/reference/clip-empty.mask.rgb24.ref.png create mode 100644 test/reference/clip-empty.rgb24.ref.png create mode 100644 test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png create mode 100644 test/reference/clip-fill-eo-unbounded.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill-no-op.argb32.ref.png create mode 100644 test/reference/clip-fill-no-op.egl.argb32.ref.png create mode 100644 test/reference/clip-fill-no-op.mask.argb32.ref.png create mode 100644 test/reference/clip-fill-no-op.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill-no-op.rgb24.ref.png create mode 100644 test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png create mode 100644 test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png create mode 100644 test/reference/clip-fill-rule-pixel-aligned.egl.argb32.ref.png create mode 100644 test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png create mode 100644 test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill-rule.egl.argb32.ref.png create mode 100644 test/reference/clip-fill-rule.mask.argb32.ref.png create mode 100644 test/reference/clip-fill-rule.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill.argb32.ref.png create mode 100644 test/reference/clip-fill.egl.argb32.ref.png create mode 100644 test/reference/clip-fill.mask.argb32.ref.png create mode 100644 test/reference/clip-fill.mask.rgb24.ref.png create mode 100644 test/reference/clip-fill.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-aligned-rectangles.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-aligned-rectangles.egl.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-aligned-rectangles.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-circles.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-circles.egl.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-circles.mask.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-circles.mask.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-circles.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-unaligned-rectangles.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-unaligned-rectangles.egl.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png create mode 100644 test/reference/clip-group-shapes-unaligned-rectangles.mask.rgb24.ref.png create mode 100644 test/reference/clip-group-shapes-unaligned-rectangles.rgb24.ref.png create mode 100644 test/reference/clip-image.argb32.ref.png create mode 100644 test/reference/clip-image.egl.argb32.ref.png create mode 100644 test/reference/clip-image.mask.argb32.ref.png create mode 100644 test/reference/clip-image.mask.rgb24.ref.png create mode 100644 test/reference/clip-image.rgb24.ref.png create mode 100644 test/reference/clip-intersect.argb32.ref.png create mode 100644 test/reference/clip-intersect.egl.argb32.ref.png create mode 100644 test/reference/clip-intersect.mask.argb32.ref.png create mode 100644 test/reference/clip-intersect.mask.rgb24.ref.png create mode 100644 test/reference/clip-intersect.rgb24.ref.png create mode 100644 test/reference/clip-mixed-antialias.argb32.ref.png create mode 100644 test/reference/clip-mixed-antialias.egl.argb32.ref.png create mode 100644 test/reference/clip-mixed-antialias.mask.argb32.ref.png create mode 100644 test/reference/clip-mixed-antialias.mask.rgb24.ref.png create mode 100644 test/reference/clip-mixed-antialias.rgb24.ref.png create mode 100644 test/reference/clip-nesting.egl.argb32.ref.png create mode 100644 test/reference/clip-nesting.mask.argb32.ref.png create mode 100644 test/reference/clip-nesting.mask.rgb24.ref.png create mode 100644 test/reference/clip-operator.mask.argb32.ref.png create mode 100644 test/reference/clip-operator.mask.rgb24.ref.png create mode 100644 test/reference/clip-polygons.argb32.ref.png create mode 100644 test/reference/clip-polygons.base.argb32.ref.png create mode 100644 test/reference/clip-polygons.base.rgb24.ref.png create mode 100644 test/reference/clip-polygons.egl.argb32.ref.png create mode 100644 test/reference/clip-polygons.mask.argb32.ref.png create mode 100644 test/reference/clip-polygons.mask.rgb24.ref.png create mode 100644 test/reference/clip-polygons.rgb24.ref.png create mode 100644 test/reference/clip-polygons.traps.argb32.ref.png create mode 100644 test/reference/clip-polygons.traps.rgb24.ref.png create mode 100644 test/reference/clip-push-group.argb32.ref.png create mode 100644 test/reference/clip-push-group.egl.argb32.ref.png create mode 100644 test/reference/clip-push-group.mask.argb32.ref.png create mode 100644 test/reference/clip-push-group.mask.rgb24.ref.png create mode 100644 test/reference/clip-push-group.rgb24.ref.png create mode 100644 test/reference/clip-rectilinear.argb32.ref.png create mode 100644 test/reference/clip-rectilinear.base.argb32.ref.png create mode 100644 test/reference/clip-rectilinear.base.rgb24.ref.png create mode 100644 test/reference/clip-rectilinear.egl.argb32.ref.png create mode 100644 test/reference/clip-rectilinear.mask.argb32.ref.png create mode 100644 test/reference/clip-rectilinear.mask.rgb24.ref.png create mode 100644 test/reference/clip-rectilinear.rgb24.ref.png create mode 100644 test/reference/clip-rectilinear.traps.argb32.ref.png create mode 100644 test/reference/clip-rectilinear.traps.rgb24.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.argb32.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.egl.argb32.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.mask.argb32.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.mask.rgb24.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.rgb24.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/clip-rotate-image-surface-paint.xlib-window.rgb24.ref.png create mode 100644 test/reference/clip-shape.argb32.ref.png create mode 100644 test/reference/clip-shape.egl.argb32.ref.png create mode 100644 test/reference/clip-shape.mask.argb32.ref.png create mode 100644 test/reference/clip-shape.mask.rgb24.ref.png create mode 100644 test/reference/clip-shape.rgb24.ref.png create mode 100644 test/reference/clip-stroke-no-op.argb32.ref.png create mode 100644 test/reference/clip-stroke-no-op.egl.argb32.ref.png create mode 100644 test/reference/clip-stroke-no-op.mask.argb32.ref.png create mode 100644 test/reference/clip-stroke-no-op.mask.rgb24.ref.png create mode 100644 test/reference/clip-stroke-no-op.rgb24.ref.png create mode 100644 test/reference/clip-stroke-unbounded.mask.argb32.ref.png create mode 100644 test/reference/clip-stroke-unbounded.mask.rgb24.ref.png create mode 100644 test/reference/clip-stroke.egl.argb32.ref.png create mode 100644 test/reference/clip-stroke.mask.argb32.ref.png create mode 100644 test/reference/clip-stroke.mask.rgb24.ref.png create mode 100644 test/reference/clip-text.argb32.ref.png create mode 100644 test/reference/clip-text.mask.argb32.ref.png create mode 100644 test/reference/clip-text.mask.rgb24.ref.png create mode 100644 test/reference/clip-text.rgb24.ref.png create mode 100644 test/reference/clip-twice-rectangle.argb32.ref.png create mode 100644 test/reference/clip-twice-rectangle.egl.argb32.ref.png create mode 100644 test/reference/clip-twice-rectangle.mask.argb32.ref.png create mode 100644 test/reference/clip-twice-rectangle.mask.rgb24.ref.png create mode 100644 test/reference/clip-twice-rectangle.rgb24.ref.png create mode 100644 test/reference/clip-twice.egl.argb32.ref.png create mode 100644 test/reference/clip-twice.mask.argb32.ref.png create mode 100644 test/reference/clip-twice.mask.rgb24.ref.png create mode 100644 test/reference/clip-unbounded.argb32.ref.png create mode 100644 test/reference/clip-unbounded.egl.argb32.ref.png create mode 100644 test/reference/clip-unbounded.mask.argb32.ref.png create mode 100644 test/reference/clip-unbounded.mask.rgb24.ref.png create mode 100644 test/reference/clip-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/clip-xlib-window.rgb24.ref.png create mode 100644 test/reference/clip-xlib.argb32.ref.png create mode 100644 test/reference/clip-xlib.rgb24.ref.png create mode 100644 test/reference/clipped-group.argb32.ref.png create mode 100644 test/reference/clipped-group.egl.argb32.ref.png create mode 100644 test/reference/clipped-group.mask.argb32.ref.png create mode 100644 test/reference/clipped-group.mask.rgb24.ref.png create mode 100644 test/reference/clipped-group.rgb24.ref.png create mode 100644 test/reference/clipped-surface.argb32.ref.png create mode 100644 test/reference/clipped-surface.egl.argb32.ref.png create mode 100644 test/reference/clipped-surface.mask.argb32.ref.png create mode 100644 test/reference/clipped-surface.mask.rgb24.ref.png create mode 100644 test/reference/clipped-surface.rgb24.ref.png create mode 100644 test/reference/close-path-current-point.argb32.ref.png create mode 100644 test/reference/close-path-current-point.egl.argb32.ref.png create mode 100644 test/reference/close-path-current-point.mask.argb32.ref.png create mode 100644 test/reference/close-path-current-point.mask.rgb24.ref.png create mode 100644 test/reference/close-path-current-point.rgb24.ref.png create mode 100644 test/reference/close-path.argb32.ref.png create mode 100644 test/reference/close-path.egl.argb32.ref.png create mode 100644 test/reference/close-path.mask.argb32.ref.png create mode 100644 test/reference/close-path.mask.rgb24.ref.png create mode 100644 test/reference/close-path.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-over-repeat.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over-repeat.egl.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-over-repeat.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-over.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over.egl.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over.mask.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-over.mask.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-over.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-source.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-source.egl.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-source.mask.argb32.ref.png create mode 100644 test/reference/composite-integer-translate-source.mask.rgb24.ref.png create mode 100644 test/reference/composite-integer-translate-source.rgb24.ref.png create mode 100644 test/reference/copy-disjoint.argb32.ref.png create mode 100644 test/reference/copy-disjoint.base.argb32.ref.png create mode 100644 test/reference/copy-disjoint.base.rgb24.ref.png create mode 100644 test/reference/copy-disjoint.egl.argb32.ref.png create mode 100644 test/reference/copy-disjoint.mask.argb32.ref.png create mode 100644 test/reference/copy-disjoint.mask.rgb24.ref.png create mode 100644 test/reference/copy-disjoint.ref.png create mode 100644 test/reference/copy-disjoint.rgb24.ref.png create mode 100644 test/reference/copy-disjoint.traps.argb32.ref.png create mode 100644 test/reference/copy-disjoint.traps.rgb24.ref.png create mode 100644 test/reference/copy-path.argb32.ref.png create mode 100644 test/reference/copy-path.egl.argb32.ref.png create mode 100644 test/reference/copy-path.mask.argb32.ref.png create mode 100644 test/reference/copy-path.mask.rgb24.ref.png create mode 100644 test/reference/copy-path.rgb24.ref.png create mode 100644 test/reference/create-from-png-stream.argb32.ref.png create mode 100644 test/reference/create-from-png-stream.egl.argb32.ref.png create mode 100644 test/reference/create-from-png-stream.mask.argb32.ref.png create mode 100644 test/reference/create-from-png-stream.mask.rgb24.ref.png create mode 100644 test/reference/create-from-png-stream.rgb24.ref.png create mode 100644 test/reference/create-from-png.argb32.ref.png create mode 100644 test/reference/create-from-png.egl.argb32.ref.png create mode 100644 test/reference/create-from-png.mask.argb32.ref.png create mode 100644 test/reference/create-from-png.mask.rgb24.ref.png create mode 100644 test/reference/create-from-png.rgb24.ref.png create mode 100644 test/reference/create-from-png.traps.argb32.ref.png create mode 100644 test/reference/create-from-png.traps.rgb24.ref.png create mode 100644 test/reference/culled-glyphs.argb32.ref.png create mode 100644 test/reference/culled-glyphs.mask.argb32.ref.png create mode 100644 test/reference/culled-glyphs.mask.rgb24.ref.png create mode 100644 test/reference/culled-glyphs.rgb24.ref.png create mode 100644 test/reference/curve-to-as-line-to.argb32.ref.png create mode 100644 test/reference/curve-to-as-line-to.egl.argb32.ref.png create mode 100644 test/reference/curve-to-as-line-to.mask.argb32.ref.png create mode 100644 test/reference/curve-to-as-line-to.mask.rgb24.ref.png create mode 100644 test/reference/curve-to-as-line-to.rgb24.ref.png create mode 100644 test/reference/dash-caps-joins.argb32.ref.png create mode 100644 test/reference/dash-caps-joins.egl.argb32.ref.png create mode 100644 test/reference/dash-caps-joins.mask.argb32.ref.png create mode 100644 test/reference/dash-caps-joins.mask.rgb24.ref.png create mode 100644 test/reference/dash-caps-joins.rgb24.ref.png create mode 100644 test/reference/dash-curve.argb32.ref.png create mode 100644 test/reference/dash-curve.egl.argb32.ref.png create mode 100644 test/reference/dash-curve.mask.argb32.ref.png create mode 100644 test/reference/dash-curve.mask.rgb24.ref.png create mode 100644 test/reference/dash-curve.rgb24.ref.png create mode 100644 test/reference/dash-infinite-loop.argb32.ref.png create mode 100644 test/reference/dash-infinite-loop.egl.argb32.ref.png create mode 100644 test/reference/dash-infinite-loop.mask.argb32.ref.png create mode 100644 test/reference/dash-infinite-loop.mask.rgb24.ref.png create mode 100644 test/reference/dash-infinite-loop.rgb24.ref.png create mode 100644 test/reference/dash-no-dash.argb32.ref.png create mode 100644 test/reference/dash-no-dash.egl.argb32.ref.png create mode 100644 test/reference/dash-no-dash.mask.argb32.ref.png create mode 100644 test/reference/dash-no-dash.mask.rgb24.ref.png create mode 100644 test/reference/dash-no-dash.rgb24.ref.png create mode 100644 test/reference/dash-offset-negative.argb32.ref.png create mode 100644 test/reference/dash-offset-negative.egl.argb32.ref.png create mode 100644 test/reference/dash-offset-negative.mask.argb32.ref.png create mode 100644 test/reference/dash-offset-negative.mask.rgb24.ref.png create mode 100644 test/reference/dash-offset-negative.rgb24.ref.png create mode 100644 test/reference/dash-offset.argb32.ref.png create mode 100644 test/reference/dash-offset.egl.argb32.ref.png create mode 100644 test/reference/dash-offset.mask.argb32.ref.png create mode 100644 test/reference/dash-offset.mask.rgb24.ref.png create mode 100644 test/reference/dash-offset.rgb24.ref.png create mode 100644 test/reference/dash-scale.argb32.ref.png create mode 100644 test/reference/dash-scale.egl.argb32.ref.png create mode 100644 test/reference/dash-scale.mask.argb32.ref.png create mode 100644 test/reference/dash-scale.mask.rgb24.ref.png create mode 100644 test/reference/dash-scale.rgb24.ref.png create mode 100644 test/reference/dash-state.argb32.ref.png create mode 100644 test/reference/dash-state.egl.argb32.ref.png create mode 100644 test/reference/dash-state.mask.argb32.ref.png create mode 100644 test/reference/dash-state.mask.rgb24.ref.png create mode 100644 test/reference/dash-state.rgb24.ref.png create mode 100644 test/reference/dash-zero-length.argb32.ref.png create mode 100644 test/reference/dash-zero-length.egl.argb32.ref.png create mode 100644 test/reference/dash-zero-length.mask.argb32.ref.png create mode 100644 test/reference/dash-zero-length.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-arc.egl.argb32.ref.png create mode 100644 test/reference/degenerate-arc.mask.argb32.ref.png create mode 100644 test/reference/degenerate-arc.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-arcs.argb32.ref.png create mode 100644 test/reference/degenerate-arcs.egl.argb32.ref.png create mode 100644 test/reference/degenerate-arcs.mask.argb32.ref.png create mode 100644 test/reference/degenerate-arcs.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-arcs.rgb24.ref.png create mode 100644 test/reference/degenerate-curve-to.argb32.ref.png create mode 100644 test/reference/degenerate-curve-to.egl.argb32.ref.png create mode 100644 test/reference/degenerate-curve-to.mask.argb32.ref.png create mode 100644 test/reference/degenerate-curve-to.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-curve-to.rgb24.ref.png create mode 100644 test/reference/degenerate-dash.argb32.ref.png create mode 100644 test/reference/degenerate-dash.egl.argb32.ref.png create mode 100644 test/reference/degenerate-dash.mask.argb32.ref.png create mode 100644 test/reference/degenerate-dash.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-dash.rgb24.ref.png create mode 100644 test/reference/degenerate-linear-gradient.argb32.ref.png create mode 100644 test/reference/degenerate-linear-gradient.egl.argb32.ref.png create mode 100644 test/reference/degenerate-linear-gradient.mask.argb32.ref.png create mode 100644 test/reference/degenerate-linear-gradient.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-linear-gradient.rgb24.ref.png create mode 100644 test/reference/degenerate-path.egl.argb32.ref.png create mode 100644 test/reference/degenerate-path.mask.argb32.ref.png create mode 100644 test/reference/degenerate-path.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-pen.argb32.ref.png create mode 100644 test/reference/degenerate-pen.egl.argb32.ref.png create mode 100644 test/reference/degenerate-pen.mask.argb32.ref.png create mode 100644 test/reference/degenerate-pen.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-pen.rgb24.ref.png create mode 100644 test/reference/degenerate-radial-gradient.argb32.ref.png create mode 100644 test/reference/degenerate-radial-gradient.egl.argb32.ref.png create mode 100644 test/reference/degenerate-radial-gradient.mask.argb32.ref.png create mode 100644 test/reference/degenerate-radial-gradient.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-radial-gradient.rgb24.ref.png create mode 100644 test/reference/degenerate-rel-curve-to.argb32.ref.png create mode 100644 test/reference/degenerate-rel-curve-to.egl.argb32.ref.png create mode 100644 test/reference/degenerate-rel-curve-to.mask.argb32.ref.png create mode 100644 test/reference/degenerate-rel-curve-to.mask.rgb24.ref.png create mode 100644 test/reference/degenerate-rel-curve-to.rgb24.ref.png create mode 100644 test/reference/degenerate-solid-dash.ref.png create mode 100644 test/reference/device-offset-fractional.argb32.ref.png create mode 100644 test/reference/device-offset-fractional.egl.argb32.ref.png create mode 100644 test/reference/device-offset-fractional.mask.argb32.ref.png create mode 100644 test/reference/device-offset-fractional.mask.rgb24.ref.png create mode 100644 test/reference/device-offset-fractional.rgb24.ref.png create mode 100644 test/reference/device-offset-positive.argb32.ref.png create mode 100644 test/reference/device-offset-positive.egl.argb32.ref.png create mode 100644 test/reference/device-offset-positive.mask.argb32.ref.png create mode 100644 test/reference/device-offset-positive.mask.rgb24.ref.png create mode 100644 test/reference/device-offset-scale.argb32.ref.png create mode 100644 test/reference/device-offset-scale.egl.argb32.ref.png create mode 100644 test/reference/device-offset-scale.mask.argb32.ref.png create mode 100644 test/reference/device-offset-scale.mask.rgb24.ref.png create mode 100644 test/reference/device-offset-scale.rgb24.ref.png create mode 100644 test/reference/device-offset.argb32.ref.png create mode 100644 test/reference/device-offset.egl.argb32.ref.png create mode 100644 test/reference/device-offset.mask.argb32.ref.png create mode 100644 test/reference/device-offset.mask.rgb24.ref.png create mode 100644 test/reference/drunkard-tails.argb32.ref.png create mode 100644 test/reference/drunkard-tails.egl.argb32.ref.png create mode 100644 test/reference/drunkard-tails.mask.argb32.ref.png create mode 100644 test/reference/drunkard-tails.mask.rgb24.ref.png create mode 100644 test/reference/drunkard-tails.rgb24.ref.png create mode 100644 test/reference/extend-pad-border.argb32.ref.png create mode 100644 test/reference/extend-pad-border.egl.argb32.ref.png create mode 100644 test/reference/extend-pad-border.mask.argb32.ref.png create mode 100644 test/reference/extend-pad-border.mask.rgb24.ref.png create mode 100644 test/reference/extend-pad-border.rgb24.ref.png create mode 100644 test/reference/extend-pad-similar.argb32.ref.png create mode 100644 test/reference/extend-pad-similar.egl.argb32.ref.png create mode 100644 test/reference/extend-pad-similar.mask.argb32.ref.png create mode 100644 test/reference/extend-pad-similar.mask.rgb24.ref.png create mode 100644 test/reference/extend-pad-similar.rgb24.ref.png create mode 100644 test/reference/extend-pad.argb32.ref.png create mode 100644 test/reference/extend-pad.egl.argb32.ref.png create mode 100644 test/reference/extend-pad.mask.argb32.ref.png create mode 100644 test/reference/extend-pad.mask.rgb24.ref.png create mode 100644 test/reference/extend-pad.rgb24.ref.png create mode 100644 test/reference/extend-reflect-similar.argb32.ref.png create mode 100644 test/reference/extend-reflect-similar.egl.argb32.ref.png create mode 100644 test/reference/extend-reflect-similar.mask.argb32.ref.png create mode 100644 test/reference/extend-reflect-similar.mask.rgb24.ref.png create mode 100644 test/reference/extend-reflect-similar.rgb24.ref.png create mode 100644 test/reference/extend-reflect.argb32.ref.png create mode 100644 test/reference/extend-reflect.egl.argb32.ref.png create mode 100644 test/reference/extend-reflect.mask.argb32.ref.png create mode 100644 test/reference/extend-reflect.mask.rgb24.ref.png create mode 100644 test/reference/extend-reflect.rgb24.ref.png create mode 100644 test/reference/extend-repeat-similar.argb32.ref.png create mode 100644 test/reference/extend-repeat-similar.egl.argb32.ref.png create mode 100644 test/reference/extend-repeat-similar.mask.argb32.ref.png create mode 100644 test/reference/extend-repeat-similar.mask.rgb24.ref.png create mode 100644 test/reference/extend-repeat-similar.rgb24.ref.png create mode 100644 test/reference/extend-repeat.argb32.ref.png create mode 100644 test/reference/extend-repeat.egl.argb32.ref.png create mode 100644 test/reference/extend-repeat.mask.argb32.ref.png create mode 100644 test/reference/extend-repeat.mask.rgb24.ref.png create mode 100644 test/reference/extend-repeat.rgb24.ref.png create mode 100644 test/reference/extended-blend-alpha-mask.egl.argb32.ref.png create mode 100644 test/reference/extended-blend-alpha-mask.mask.argb32.ref.png create mode 100644 test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png create mode 100644 test/reference/extended-blend-alpha.egl.argb32.ref.png create mode 100644 test/reference/extended-blend-alpha.mask.argb32.ref.png create mode 100644 test/reference/extended-blend-alpha.mask.rgb24.ref.png create mode 100644 test/reference/extended-blend-mask.egl.argb32.ref.png create mode 100644 test/reference/extended-blend-mask.mask.argb32.ref.png create mode 100644 test/reference/extended-blend-mask.mask.rgb24.ref.png create mode 100644 test/reference/extended-blend-solid-alpha.egl.argb32.ref.png create mode 100644 test/reference/extended-blend-solid-alpha.mask.argb32.ref.png create mode 100644 test/reference/extended-blend-solid-alpha.mask.rgb24.ref.png create mode 100644 test/reference/extended-blend-solid.egl.argb32.ref.png create mode 100644 test/reference/extended-blend-solid.mask.argb32.ref.png create mode 100644 test/reference/extended-blend-solid.mask.rgb24.ref.png create mode 100644 test/reference/extended-blend.egl.argb32.ref.png create mode 100644 test/reference/extended-blend.mask.argb32.ref.png create mode 100644 test/reference/extended-blend.mask.rgb24.ref.png create mode 100644 test/reference/fallback.argb32.ref.png create mode 100644 test/reference/fallback.base.argb32.ref.png create mode 100644 test/reference/fallback.base.rgb24.ref.png create mode 100644 test/reference/fallback.egl.argb32.ref.png create mode 100644 test/reference/fallback.image16.rgb24.ref.png create mode 100644 test/reference/fallback.mask.argb32.ref.png create mode 100644 test/reference/fallback.mask.rgb24.ref.png create mode 100644 test/reference/fallback.rgb24.ref.png create mode 100644 test/reference/fallback.traps.argb32.ref.png create mode 100644 test/reference/fallback.traps.rgb24.ref.png create mode 100644 test/reference/fill-alpha-pattern.argb32.ref.png create mode 100644 test/reference/fill-alpha-pattern.egl.argb32.ref.png create mode 100644 test/reference/fill-alpha-pattern.mask.argb32.ref.png create mode 100644 test/reference/fill-alpha-pattern.mask.rgb24.ref.png create mode 100644 test/reference/fill-alpha-pattern.rgb24.ref.png create mode 100644 test/reference/fill-alpha.argb32.ref.png create mode 100644 test/reference/fill-alpha.egl.argb32.ref.png create mode 100644 test/reference/fill-alpha.mask.argb32.ref.png create mode 100644 test/reference/fill-alpha.mask.rgb24.ref.png create mode 100644 test/reference/fill-alpha.rgb24.ref.png create mode 100644 test/reference/fill-and-stroke-alpha-add.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha-add.egl.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha-add.mask.rgb24.ref.png create mode 100644 test/reference/fill-and-stroke-alpha-add.rgb24.ref.png create mode 100644 test/reference/fill-and-stroke-alpha.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha.egl.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha.mask.argb32.ref.png create mode 100644 test/reference/fill-and-stroke-alpha.mask.rgb24.ref.png create mode 100644 test/reference/fill-and-stroke-alpha.rgb24.ref.png create mode 100644 test/reference/fill-and-stroke.egl.argb32.ref.png create mode 100644 test/reference/fill-and-stroke.mask.argb32.ref.png create mode 100644 test/reference/fill-and-stroke.mask.rgb24.ref.png create mode 100644 test/reference/fill-degenerate-sort-order.egl.argb32.ref.png create mode 100644 test/reference/fill-degenerate-sort-order.mask.argb32.ref.png create mode 100644 test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png create mode 100644 test/reference/fill-disjoint.argb32.ref.png create mode 100644 test/reference/fill-disjoint.base.argb32.ref.png create mode 100644 test/reference/fill-disjoint.base.rgb24.ref.png create mode 100644 test/reference/fill-disjoint.egl.argb32.ref.png create mode 100644 test/reference/fill-disjoint.mask.argb32.ref.png create mode 100644 test/reference/fill-disjoint.mask.rgb24.ref.png create mode 100644 test/reference/fill-disjoint.ref.png create mode 100644 test/reference/fill-disjoint.rgb24.ref.png create mode 100644 test/reference/fill-disjoint.traps.argb32.ref.png create mode 100644 test/reference/fill-disjoint.traps.rgb24.ref.png create mode 100644 test/reference/fill-empty.egl.argb32.ref.png create mode 100644 test/reference/fill-empty.mask.argb32.ref.png create mode 100644 test/reference/fill-empty.mask.rgb24.ref.png create mode 100644 test/reference/fill-image.argb32.ref.png create mode 100644 test/reference/fill-image.egl.argb32.ref.png create mode 100644 test/reference/fill-image.mask.argb32.ref.png create mode 100644 test/reference/fill-image.mask.rgb24.ref.png create mode 100644 test/reference/fill-image.rgb24.ref.png create mode 100644 test/reference/fill-missed-stop.argb32.ref.png create mode 100644 test/reference/fill-missed-stop.egl.argb32.ref.png create mode 100644 test/reference/fill-missed-stop.mask.argb32.ref.png create mode 100644 test/reference/fill-missed-stop.mask.rgb24.ref.png create mode 100644 test/reference/fill-rule.argb32.ref.png create mode 100644 test/reference/fill-rule.egl.argb32.ref.png create mode 100644 test/reference/fill-rule.mask.argb32.ref.png create mode 100644 test/reference/fill-rule.mask.rgb24.ref.png create mode 100644 test/reference/fill-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/fill-xlib-window.rgb24.ref.png create mode 100644 test/reference/fill-xlib.argb32.ref.png create mode 100644 test/reference/fill-xlib.rgb24.ref.png create mode 100644 test/reference/filter-bilinear-extents.argb32.ref.png create mode 100644 test/reference/filter-bilinear-extents.egl.argb32.ref.png create mode 100644 test/reference/filter-bilinear-extents.mask.argb32.ref.png create mode 100644 test/reference/filter-bilinear-extents.mask.rgb24.ref.png create mode 100644 test/reference/filter-bilinear-extents.rgb24.ref.png create mode 100644 test/reference/filter-nearest-offset.argb32.ref.png create mode 100644 test/reference/filter-nearest-offset.egl.argb32.ref.png create mode 100644 test/reference/filter-nearest-offset.mask.argb32.ref.png create mode 100644 test/reference/filter-nearest-offset.mask.rgb24.ref.png create mode 100644 test/reference/filter-nearest-offset.rgb24.ref.png create mode 100644 test/reference/filter-nearest-transformed.argb32.ref.png create mode 100644 test/reference/filter-nearest-transformed.egl.argb32.ref.png create mode 100644 test/reference/filter-nearest-transformed.mask.argb32.ref.png create mode 100644 test/reference/filter-nearest-transformed.mask.rgb24.ref.png create mode 100644 test/reference/filter-nearest-transformed.rgb24.ref.png create mode 100644 test/reference/finer-grained-fallbacks.egl.argb32.ref.png create mode 100644 test/reference/finer-grained-fallbacks.mask.argb32.ref.png create mode 100644 test/reference/finer-grained-fallbacks.mask.rgb24.ref.png create mode 100644 test/reference/font-matrix-translation.argb32.ref.png create mode 100644 test/reference/font-matrix-translation.mask.argb32.ref.png create mode 100644 test/reference/font-matrix-translation.mask.rgb24.ref.png create mode 100644 test/reference/font-matrix-translation.rgb24.ref.png create mode 100644 test/reference/font-matrix-translation.traps.ref.png create mode 100644 test/reference/ft-show-glyphs-positioning.argb32.ref.png create mode 100644 test/reference/ft-show-glyphs-positioning.mask.argb32.ref.png create mode 100644 test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png create mode 100644 test/reference/ft-show-glyphs-positioning.rgb24.ref.png create mode 100644 test/reference/ft-show-glyphs-positioning.traps.ref.png create mode 100644 test/reference/ft-show-glyphs-table.argb32.ref.png create mode 100644 test/reference/ft-show-glyphs-table.mask.argb32.ref.png create mode 100644 test/reference/ft-show-glyphs-table.mask.rgb24.ref.png create mode 100644 test/reference/ft-show-glyphs-table.rgb24.ref.png create mode 100644 test/reference/ft-show-glyphs-table.traps.ref.png create mode 100644 test/reference/ft-text-antialias-none.argb32.ref.png create mode 100644 test/reference/ft-text-antialias-none.mask.argb32.ref.png create mode 100644 test/reference/ft-text-antialias-none.mask.rgb24.ref.png create mode 100644 test/reference/ft-text-antialias-none.rgb24.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type1.argb32.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type1.mask.argb32.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type1.mask.rgb24.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type1.rgb24.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type3.argb32.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png create mode 100644 test/reference/ft-text-vertical-layout-type3.rgb24.ref.png create mode 100644 test/reference/get-group-target.argb32.ref.png create mode 100644 test/reference/get-group-target.egl.argb32.ref.png create mode 100644 test/reference/get-group-target.mask.argb32.ref.png create mode 100644 test/reference/get-group-target.mask.rgb24.ref.png create mode 100644 test/reference/get-group-target.rgb24.ref.png create mode 100644 test/reference/gl-surface-source.base.argb32.ref.png create mode 100644 test/reference/gl-surface-source.base.rgb24.ref.png create mode 100644 test/reference/gl-surface-source.mask.argb32.ref.png create mode 100644 test/reference/gl-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/gl-surface-source.traps.argb32.ref.png create mode 100644 test/reference/gl-surface-source.traps.rgb24.ref.png create mode 100644 test/reference/glyph-cache-pressure.argb32.ref.png create mode 100644 test/reference/glyph-cache-pressure.mask.argb32.ref.png create mode 100644 test/reference/glyph-cache-pressure.mask.rgb24.ref.png create mode 100644 test/reference/glyph-cache-pressure.rgb24.ref.png create mode 100644 test/reference/glyph-cache-pressure.traps.ref.png create mode 100644 test/reference/gradient-alpha.argb32.ref.png create mode 100644 test/reference/gradient-alpha.egl.argb32.ref.png create mode 100644 test/reference/gradient-alpha.mask.argb32.ref.png create mode 100644 test/reference/gradient-alpha.mask.rgb24.ref.png create mode 100644 test/reference/gradient-constant-alpha.argb32.ref.png create mode 100644 test/reference/gradient-constant-alpha.egl.argb32.ref.png create mode 100644 test/reference/gradient-constant-alpha.mask.argb32.ref.png create mode 100644 test/reference/gradient-constant-alpha.mask.rgb24.ref.png create mode 100644 test/reference/gradient-zero-stops-mask.egl.argb32.ref.png create mode 100644 test/reference/gradient-zero-stops-mask.mask.argb32.ref.png create mode 100644 test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png create mode 100644 test/reference/gradient-zero-stops.argb32.ref.png create mode 100644 test/reference/gradient-zero-stops.egl.argb32.ref.png create mode 100644 test/reference/gradient-zero-stops.mask.argb32.ref.png create mode 100644 test/reference/gradient-zero-stops.mask.rgb24.ref.png create mode 100644 test/reference/group-clip.argb32.ref.png create mode 100644 test/reference/group-clip.egl.argb32.ref.png create mode 100644 test/reference/group-clip.mask.argb32.ref.png create mode 100644 test/reference/group-clip.mask.rgb24.ref.png create mode 100644 test/reference/group-clip.rgb24.ref.png create mode 100644 test/reference/group-paint.argb32.ref.png create mode 100644 test/reference/group-paint.egl.argb32.ref.png create mode 100644 test/reference/group-paint.mask.argb32.ref.png create mode 100644 test/reference/group-paint.mask.rgb24.ref.png create mode 100644 test/reference/group-paint.rgb24.ref.png create mode 100644 test/reference/group-unaligned.argb32.ref.png create mode 100644 test/reference/group-unaligned.egl.argb32.ref.png create mode 100644 test/reference/group-unaligned.mask.argb32.ref.png create mode 100644 test/reference/group-unaligned.mask.rgb24.ref.png create mode 100644 test/reference/group-unaligned.rgb24.ref.png create mode 100644 test/reference/halo-transform.argb32.ref.png create mode 100644 test/reference/halo-transform.mask.argb32.ref.png create mode 100644 test/reference/halo-transform.mask.rgb24.ref.png create mode 100644 test/reference/halo-transform.rgb24.ref.png create mode 100644 test/reference/halo-transform.traps.ref.png create mode 100644 test/reference/halo.argb32.ref.png create mode 100644 test/reference/halo.mask.argb32.ref.png create mode 100644 test/reference/halo.mask.rgb24.ref.png create mode 100644 test/reference/halo.rgb24.ref.png create mode 100644 test/reference/halo.traps.ref.png create mode 100644 test/reference/hatchings.egl.argb32.ref.png create mode 100644 test/reference/hatchings.mask.argb32.ref.png create mode 100644 test/reference/hatchings.mask.rgb24.ref.png create mode 100644 test/reference/horizontal-clip.argb32.ref.png create mode 100644 test/reference/horizontal-clip.egl.argb32.ref.png create mode 100644 test/reference/horizontal-clip.mask.argb32.ref.png create mode 100644 test/reference/horizontal-clip.mask.rgb24.ref.png create mode 100644 test/reference/horizontal-clip.rgb24.ref.png create mode 100644 test/reference/huge-linear.argb32.ref.png create mode 100644 test/reference/huge-linear.egl.argb32.ref.png create mode 100644 test/reference/huge-linear.mask.argb32.ref.png create mode 100644 test/reference/huge-linear.mask.rgb24.ref.png create mode 100644 test/reference/huge-linear.rgb24.ref.png create mode 100644 test/reference/huge-radial.argb32.ref.png create mode 100644 test/reference/huge-radial.egl.argb32.ref.png create mode 100644 test/reference/huge-radial.mask.argb32.ref.png create mode 100644 test/reference/huge-radial.mask.rgb24.ref.png create mode 100644 test/reference/huge-radial.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-aligned.argb32.ref.png create mode 100644 test/reference/image-bug-710072-aligned.egl.argb32.ref.png create mode 100644 test/reference/image-bug-710072-aligned.mask.argb32.ref.png create mode 100644 test/reference/image-bug-710072-aligned.mask.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-aligned.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-aligned.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-aligned.xlib-window.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.argb32.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.egl.argb32.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.mask.argb32.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/image-bug-710072-unaligned.xlib-window.rgb24.ref.png create mode 100644 test/reference/image-surface-source.egl.argb32.ref.png create mode 100644 test/reference/image-surface-source.mask.argb32.ref.png create mode 100644 test/reference/image-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/image-surface-source.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/image-surface-source.xlib-window.rgb24.ref.png create mode 100644 test/reference/implicit-close.argb32.ref.png create mode 100644 test/reference/implicit-close.egl.argb32.ref.png create mode 100644 test/reference/implicit-close.mask.argb32.ref.png create mode 100644 test/reference/implicit-close.mask.rgb24.ref.png create mode 100644 test/reference/implicit-close.rgb24.ref.png create mode 100644 test/reference/infinite-join.argb32.ref.png create mode 100644 test/reference/infinite-join.egl.argb32.ref.png create mode 100644 test/reference/infinite-join.mask.argb32.ref.png create mode 100644 test/reference/infinite-join.mask.rgb24.ref.png create mode 100644 test/reference/infinite-join.rgb24.ref.png create mode 100644 test/reference/inverse-text.mask.argb32.ref.png create mode 100644 test/reference/inverse-text.mask.rgb24.ref.png create mode 100644 test/reference/inverse-text.traps.ref.png create mode 100644 test/reference/inverted-clip.base.xfail.png create mode 100644 test/reference/inverted-clip.traps.xfail.png create mode 100644 test/reference/inverted-clip.xfail.png create mode 100644 test/reference/joins-loop.argb32.ref.png create mode 100644 test/reference/joins-loop.egl.argb32.ref.png create mode 100644 test/reference/joins-loop.mask.argb32.ref.png create mode 100644 test/reference/joins-loop.mask.rgb24.ref.png create mode 100644 test/reference/joins-loop.rgb24.ref.png create mode 100644 test/reference/joins-retrace.argb32.ref.png create mode 100644 test/reference/joins-retrace.egl.argb32.ref.png create mode 100644 test/reference/joins-retrace.mask.argb32.ref.png create mode 100644 test/reference/joins-retrace.mask.rgb24.ref.png create mode 100644 test/reference/joins-retrace.rgb24.ref.png create mode 100644 test/reference/joins-star.argb32.ref.png create mode 100644 test/reference/joins-star.egl.argb32.ref.png create mode 100644 test/reference/joins-star.mask.argb32.ref.png create mode 100644 test/reference/joins-star.mask.rgb24.ref.png create mode 100644 test/reference/joins-star.rgb24.ref.png create mode 100644 test/reference/joins.argb32.ref.png create mode 100644 test/reference/joins.egl.argb32.ref.png create mode 100644 test/reference/joins.mask.argb32.ref.png create mode 100644 test/reference/joins.mask.rgb24.ref.png create mode 100644 test/reference/joins.rgb24.ref.png create mode 100644 test/reference/large-clip.argb32.ref.png create mode 100644 test/reference/large-clip.egl.argb32.ref.png create mode 100644 test/reference/large-clip.mask.argb32.ref.png create mode 100644 test/reference/large-clip.mask.rgb24.ref.png create mode 100644 test/reference/large-clip.rgb24.ref.png create mode 100644 test/reference/large-font.argb32.ref.png create mode 100644 test/reference/large-font.egl.argb32.ref.png create mode 100644 test/reference/large-font.mask.argb32.ref.png create mode 100644 test/reference/large-font.mask.rgb24.ref.png create mode 100644 test/reference/large-font.rgb24.ref.png create mode 100644 test/reference/large-source-roi.argb32.ref.png create mode 100644 test/reference/large-source-roi.egl.argb32.ref.png create mode 100644 test/reference/large-source-roi.mask.argb32.ref.png create mode 100644 test/reference/large-source-roi.mask.rgb24.ref.png create mode 100644 test/reference/large-source-roi.rgb24.ref.png create mode 100644 test/reference/large-source.argb32.ref.png create mode 100644 test/reference/large-source.egl.argb32.ref.png create mode 100644 test/reference/large-source.mask.argb32.ref.png create mode 100644 test/reference/large-source.mask.rgb24.ref.png create mode 100644 test/reference/large-source.rgb24.ref.png create mode 100644 test/reference/large-twin-antialias-mixed.argb32.ref.png create mode 100644 test/reference/large-twin-antialias-mixed.egl.argb32.ref.png create mode 100644 test/reference/large-twin-antialias-mixed.mask.argb32.ref.png create mode 100644 test/reference/large-twin-antialias-mixed.mask.rgb24.ref.png create mode 100644 test/reference/large-twin-antialias-mixed.rgb24.ref.png create mode 100644 test/reference/leaky-dash.argb32.ref.png create mode 100644 test/reference/leaky-dash.egl.argb32.ref.png create mode 100644 test/reference/leaky-dash.mask.argb32.ref.png create mode 100644 test/reference/leaky-dash.mask.rgb24.ref.png create mode 100644 test/reference/leaky-dash.rgb24.ref.png create mode 100644 test/reference/leaky-dashed-rectangle.argb32.ref.png create mode 100644 test/reference/leaky-dashed-rectangle.egl.argb32.ref.png create mode 100644 test/reference/leaky-dashed-rectangle.mask.argb32.ref.png create mode 100644 test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png create mode 100644 test/reference/leaky-dashed-rectangle.rgb24.ref.png create mode 100644 test/reference/leaky-dashed-stroke.argb32.ref.png create mode 100644 test/reference/leaky-dashed-stroke.egl.argb32.ref.png create mode 100644 test/reference/leaky-dashed-stroke.mask.argb32.ref.png create mode 100644 test/reference/leaky-dashed-stroke.mask.rgb24.ref.png create mode 100644 test/reference/leaky-dashed-stroke.rgb24.ref.png create mode 100644 test/reference/leaky-polygon.argb32.ref.png create mode 100644 test/reference/leaky-polygon.egl.argb32.ref.png create mode 100644 test/reference/leaky-polygon.mask.argb32.ref.png create mode 100644 test/reference/leaky-polygon.mask.rgb24.ref.png create mode 100644 test/reference/leaky-polygon.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flipped.traps.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-flopped.traps.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-offset.traps.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap.base.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap.base.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap.egl.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap.mask.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap.mask.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap.rgb24.ref.png create mode 100644 test/reference/line-width-large-overlap.traps.argb32.ref.png create mode 100644 test/reference/line-width-large-overlap.traps.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-dashed.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap-dashed.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap-dashed.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-dashed.ref.png create mode 100644 test/reference/line-width-overlap-flipped.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flipped.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flipped.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flipped.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-flipped.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-flopped.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flopped.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flopped.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap-flopped.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-flopped.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-offset.argb32.ref.png create mode 100644 test/reference/line-width-overlap-offset.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap-offset.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap-offset.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-offset.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-offset.traps.argb32.ref.png create mode 100644 test/reference/line-width-overlap-offset.traps.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-rotated.argb32.ref.png create mode 100644 test/reference/line-width-overlap-rotated.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap-rotated.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap-rotated.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap-rotated.rgb24.ref.png create mode 100644 test/reference/line-width-overlap.argb32.ref.png create mode 100644 test/reference/line-width-overlap.egl.argb32.ref.png create mode 100644 test/reference/line-width-overlap.mask.argb32.ref.png create mode 100644 test/reference/line-width-overlap.mask.rgb24.ref.png create mode 100644 test/reference/line-width-overlap.rgb24.ref.png create mode 100644 test/reference/line-width-scale.argb32.ref.png create mode 100644 test/reference/line-width-scale.egl.argb32.ref.png create mode 100644 test/reference/line-width-scale.mask.argb32.ref.png create mode 100644 test/reference/line-width-scale.mask.rgb24.ref.png create mode 100644 test/reference/line-width-scale.rgb24.ref.png create mode 100644 test/reference/line-width-tolerance.argb32.ref.png create mode 100644 test/reference/line-width-tolerance.egl.argb32.ref.png create mode 100644 test/reference/line-width-tolerance.mask.argb32.ref.png create mode 100644 test/reference/line-width-tolerance.mask.rgb24.ref.png create mode 100644 test/reference/line-width-tolerance.rgb24.ref.png create mode 100644 test/reference/line-width.argb32.ref.png create mode 100644 test/reference/line-width.egl.argb32.ref.png create mode 100644 test/reference/line-width.mask.argb32.ref.png create mode 100644 test/reference/line-width.mask.rgb24.ref.png create mode 100644 test/reference/line-width.rgb24.ref.png create mode 100644 test/reference/linear-gradient-extend.argb32.ref.png create mode 100644 test/reference/linear-gradient-extend.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient-extend.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient-extend.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient-extend.rgb24.ref.png create mode 100644 test/reference/linear-gradient-large.argb32.ref.png create mode 100644 test/reference/linear-gradient-large.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient-large.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient-large.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient-large.rgb24.ref.png create mode 100644 test/reference/linear-gradient-one-stop.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient-one-stop.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient-one-stop.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient-reflect.argb32.ref.png create mode 100644 test/reference/linear-gradient-reflect.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient-reflect.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient-reflect.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient-reflect.rgb24.ref.png create mode 100644 test/reference/linear-gradient-subset.argb32.ref.png create mode 100644 test/reference/linear-gradient-subset.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient-subset.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient-subset.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient-subset.rgb24.ref.png create mode 100644 test/reference/linear-gradient.argb32.ref.png create mode 100644 test/reference/linear-gradient.egl.argb32.ref.png create mode 100644 test/reference/linear-gradient.mask.argb32.ref.png create mode 100644 test/reference/linear-gradient.mask.rgb24.ref.png create mode 100644 test/reference/linear-gradient.rgb24.ref.png create mode 100644 test/reference/linear-step-function.egl.argb32.ref.png create mode 100644 test/reference/linear-step-function.mask.argb32.ref.png create mode 100644 test/reference/linear-step-function.mask.rgb24.ref.png create mode 100644 test/reference/linear-uniform.argb32.ref.png create mode 100644 test/reference/linear-uniform.egl.argb32.ref.png create mode 100644 test/reference/linear-uniform.mask.argb32.ref.png create mode 100644 test/reference/linear-uniform.mask.rgb24.ref.png create mode 100644 test/reference/linear-uniform.rgb24.ref.png create mode 100644 test/reference/long-dashed-lines.argb32.ref.png create mode 100644 test/reference/long-dashed-lines.egl.argb32.ref.png create mode 100644 test/reference/long-dashed-lines.mask.argb32.ref.png create mode 100644 test/reference/long-dashed-lines.mask.rgb24.ref.png create mode 100644 test/reference/long-dashed-lines.rgb24.ref.png create mode 100644 test/reference/long-lines.egl.argb32.ref.png create mode 100644 test/reference/long-lines.mask.argb32.ref.png create mode 100644 test/reference/long-lines.mask.rgb24.ref.png create mode 100644 test/reference/map-all-to-image.argb32.ref.png create mode 100644 test/reference/map-all-to-image.mask.argb32.ref.png create mode 100644 test/reference/map-all-to-image.mask.rgb24.ref.png create mode 100644 test/reference/map-all-to-image.rgb24.ref.png create mode 100644 test/reference/map-all-to-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/map-all-to-xlib-window.rgb24.ref.png create mode 100644 test/reference/map-all-to-xlib.argb32.ref.png create mode 100644 test/reference/map-all-to-xlib.rgb24.ref.png create mode 100644 test/reference/map-bit-to-image.argb32.ref.png create mode 100644 test/reference/map-bit-to-image.mask.argb32.ref.png create mode 100644 test/reference/map-bit-to-image.mask.rgb24.ref.png create mode 100644 test/reference/map-bit-to-image.rgb24.ref.png create mode 100644 test/reference/map-bit-to-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/map-bit-to-xlib-window.rgb24.ref.png create mode 100644 test/reference/map-bit-to-xlib.argb32.ref.png create mode 100644 test/reference/map-bit-to-xlib.rgb24.ref.png create mode 100644 test/reference/map-to-image-fill.argb32.ref.png create mode 100644 test/reference/map-to-image-fill.egl.argb32.ref.png create mode 100644 test/reference/map-to-image-fill.mask.argb32.ref.png create mode 100644 test/reference/map-to-image-fill.mask.rgb24.ref.png create mode 100644 test/reference/map-to-image-fill.rgb24.ref.png create mode 100644 test/reference/map-to-image-fill.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/map-to-image-fill.xlib-window.rgb24.ref.png create mode 100644 test/reference/mask-alpha.egl.argb32.ref.png create mode 100644 test/reference/mask-alpha.mask.argb32.ref.png create mode 100644 test/reference/mask-alpha.mask.rgb24.ref.png create mode 100644 test/reference/mask-ctm.argb32.ref.png create mode 100644 test/reference/mask-ctm.egl.argb32.ref.png create mode 100644 test/reference/mask-ctm.mask.argb32.ref.png create mode 100644 test/reference/mask-ctm.mask.rgb24.ref.png create mode 100644 test/reference/mask-surface-ctm.argb32.ref.png create mode 100644 test/reference/mask-surface-ctm.egl.argb32.ref.png create mode 100644 test/reference/mask-surface-ctm.mask.argb32.ref.png create mode 100644 test/reference/mask-surface-ctm.mask.rgb24.ref.png create mode 100644 test/reference/mask-transformed-image.argb32.ref.png create mode 100644 test/reference/mask-transformed-image.egl.argb32.ref.png create mode 100644 test/reference/mask-transformed-image.mask.argb32.ref.png create mode 100644 test/reference/mask-transformed-image.mask.rgb24.ref.png create mode 100644 test/reference/mask-transformed-image.rgb24.ref.png create mode 100644 test/reference/mask-transformed-similar.argb32.ref.png create mode 100644 test/reference/mask-transformed-similar.egl.argb32.ref.png create mode 100644 test/reference/mask-transformed-similar.mask.argb32.ref.png create mode 100644 test/reference/mask-transformed-similar.mask.rgb24.ref.png create mode 100644 test/reference/mask-transformed-similar.recording.ref.png create mode 100644 test/reference/mask-transformed-similar.rgb24.ref.png create mode 100644 test/reference/mask-transformed-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/mask-transformed-xlib-window.rgb24.ref.png create mode 100644 test/reference/mask-transformed-xlib.argb32.ref.png create mode 100644 test/reference/mask-transformed-xlib.rgb24.ref.png create mode 100644 test/reference/mask.egl.argb32.ref.png create mode 100644 test/reference/mask.mask.argb32.ref.png create mode 100644 test/reference/mask.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-accuracy.argb32.ref.png create mode 100644 test/reference/mesh-pattern-accuracy.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-accuracy.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-accuracy.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-conical.argb32.ref.png create mode 100644 test/reference/mesh-pattern-conical.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-conical.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-conical.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-conical.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-control-points.argb32.ref.png create mode 100644 test/reference/mesh-pattern-control-points.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-control-points.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-control-points.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-control-points.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-fold.argb32.ref.png create mode 100644 test/reference/mesh-pattern-fold.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-fold.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-fold.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-fold.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-overlap.argb32.ref.png create mode 100644 test/reference/mesh-pattern-overlap.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-overlap.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-overlap.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-overlap.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-transformed.argb32.ref.png create mode 100644 test/reference/mesh-pattern-transformed.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern-transformed.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern-transformed.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern-transformed.rgb24.ref.png create mode 100644 test/reference/mesh-pattern.argb32.ref.png create mode 100644 test/reference/mesh-pattern.egl.argb32.ref.png create mode 100644 test/reference/mesh-pattern.mask.argb32.ref.png create mode 100644 test/reference/mesh-pattern.mask.rgb24.ref.png create mode 100644 test/reference/mesh-pattern.rgb24.ref.png create mode 100644 test/reference/mime-data.argb32.ref.png create mode 100644 test/reference/mime-data.egl.argb32.ref.png create mode 100644 test/reference/mime-data.mask.argb32.ref.png create mode 100644 test/reference/mime-data.mask.rgb24.ref.png create mode 100644 test/reference/mime-data.rgb24.ref.png create mode 100644 test/reference/miter-precision.argb32.ref.png create mode 100644 test/reference/miter-precision.egl.argb32.ref.png create mode 100644 test/reference/miter-precision.mask.argb32.ref.png create mode 100644 test/reference/miter-precision.mask.rgb24.ref.png create mode 100644 test/reference/miter-precision.rgb24.ref.png create mode 100644 test/reference/move-to-show-surface.argb32.ref.png create mode 100644 test/reference/move-to-show-surface.egl.argb32.ref.png create mode 100644 test/reference/move-to-show-surface.mask.argb32.ref.png create mode 100644 test/reference/move-to-show-surface.mask.rgb24.ref.png create mode 100644 test/reference/move-to-show-surface.rgb24.ref.png create mode 100644 test/reference/negative-stride-image.argb32.ref.png create mode 100644 test/reference/negative-stride-image.base.argb32.ref.png create mode 100644 test/reference/negative-stride-image.base.rgb24.ref.png create mode 100644 test/reference/negative-stride-image.egl.argb32.ref.png create mode 100644 test/reference/negative-stride-image.image16.ref.png create mode 100644 test/reference/negative-stride-image.mask.argb32.ref.png create mode 100644 test/reference/negative-stride-image.mask.rgb24.ref.png create mode 100644 test/reference/negative-stride-image.ps.ref.png create mode 100644 test/reference/negative-stride-image.ref.png create mode 100644 test/reference/negative-stride-image.rgb24.ref.png create mode 100644 test/reference/negative-stride-image.traps.argb32.ref.png create mode 100644 test/reference/negative-stride-image.traps.rgb24.ref.png create mode 100644 test/reference/new-sub-path.egl.argb32.ref.png create mode 100644 test/reference/new-sub-path.mask.argb32.ref.png create mode 100644 test/reference/new-sub-path.mask.rgb24.ref.png create mode 100644 test/reference/nil-surface.argb32.ref.png create mode 100644 test/reference/nil-surface.egl.argb32.ref.png create mode 100644 test/reference/nil-surface.mask.argb32.ref.png create mode 100644 test/reference/nil-surface.mask.rgb24.ref.png create mode 100644 test/reference/operator-alpha-alpha.argb32.ref.png create mode 100644 test/reference/operator-alpha-alpha.egl.argb32.ref.png create mode 100644 test/reference/operator-alpha-alpha.mask.argb32.ref.png create mode 100644 test/reference/operator-alpha-alpha.mask.rgb24.ref.png create mode 100644 test/reference/operator-alpha-alpha.rgb24.ref.png create mode 100644 test/reference/operator-alpha.argb32.ref.png create mode 100644 test/reference/operator-alpha.egl.argb32.ref.png create mode 100644 test/reference/operator-alpha.mask.argb32.ref.png create mode 100644 test/reference/operator-alpha.mask.rgb24.ref.png create mode 100644 test/reference/operator-clear.mask.argb32.ref.png create mode 100644 test/reference/operator-clear.mask.rgb24.ref.png create mode 100644 test/reference/operator-source.mask.argb32.ref.png create mode 100644 test/reference/operator-source.mask.rgb24.ref.png create mode 100644 test/reference/operator.argb32.ref.png create mode 100644 test/reference/operator.egl.argb32.ref.png create mode 100644 test/reference/operator.mask.argb32.ref.png create mode 100644 test/reference/operator.mask.rgb24.ref.png create mode 100644 test/reference/over-above-source.argb32.ref.png create mode 100644 test/reference/over-above-source.egl.argb32.ref.png create mode 100644 test/reference/over-above-source.mask.argb32.ref.png create mode 100644 test/reference/over-above-source.mask.rgb24.ref.png create mode 100644 test/reference/over-around-source.argb32.ref.png create mode 100644 test/reference/over-around-source.egl.argb32.ref.png create mode 100644 test/reference/over-around-source.mask.argb32.ref.png create mode 100644 test/reference/over-around-source.mask.rgb24.ref.png create mode 100644 test/reference/over-below-source.argb32.ref.png create mode 100644 test/reference/over-below-source.egl.argb32.ref.png create mode 100644 test/reference/over-below-source.mask.argb32.ref.png create mode 100644 test/reference/over-below-source.mask.rgb24.ref.png create mode 100644 test/reference/over-between-source.argb32.ref.png create mode 100644 test/reference/over-between-source.egl.argb32.ref.png create mode 100644 test/reference/over-between-source.mask.argb32.ref.png create mode 100644 test/reference/over-between-source.mask.rgb24.ref.png create mode 100644 test/reference/overlapping-boxes.egl.argb32.ref.png create mode 100644 test/reference/overlapping-boxes.mask.argb32.ref.png create mode 100644 test/reference/overlapping-boxes.mask.rgb24.ref.png create mode 100644 test/reference/overlapping-dash-caps.argb32.ref.png create mode 100644 test/reference/overlapping-dash-caps.egl.argb32.ref.png create mode 100644 test/reference/overlapping-dash-caps.mask.argb32.ref.png create mode 100644 test/reference/overlapping-dash-caps.mask.rgb24.ref.png create mode 100644 test/reference/overlapping-dash-caps.rgb24.ref.png create mode 100644 test/reference/overlapping-glyphs.egl.argb32.ref.png create mode 100644 test/reference/overlapping-glyphs.mask.argb32.ref.png create mode 100644 test/reference/overlapping-glyphs.mask.rgb24.ref.png create mode 100644 test/reference/paint-clip-fill-aa.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-aa.egl.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-aa.mask.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-aa.mask.rgb24.ref.png create mode 100644 test/reference/paint-clip-fill-aa.rgb24.ref.png create mode 100644 test/reference/paint-clip-fill-mono.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-mono.egl.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-mono.mask.argb32.ref.png create mode 100644 test/reference/paint-clip-fill-mono.mask.rgb24.ref.png create mode 100644 test/reference/paint-clip-fill-mono.rgb24.ref.png create mode 100644 test/reference/paint-repeat.argb32.ref.png create mode 100644 test/reference/paint-repeat.egl.argb32.ref.png create mode 100644 test/reference/paint-repeat.mask.argb32.ref.png create mode 100644 test/reference/paint-repeat.mask.rgb24.ref.png create mode 100644 test/reference/paint-repeat.rgb24.ref.png create mode 100644 test/reference/paint-source-alpha.argb32.ref.png create mode 100644 test/reference/paint-source-alpha.egl.argb32.ref.png create mode 100644 test/reference/paint-source-alpha.mask.argb32.ref.png create mode 100644 test/reference/paint-source-alpha.mask.rgb24.ref.png create mode 100644 test/reference/paint-source-alpha.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-clip-mask.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip-mask.egl.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-clip-mask.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-clip.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip.egl.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip.mask.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-clip.mask.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-clip.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-solid-clip.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-solid-clip.egl.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png create mode 100644 test/reference/paint-with-alpha-solid-clip.mask.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha-solid-clip.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha.argb32.ref.png create mode 100644 test/reference/paint-with-alpha.egl.argb32.ref.png create mode 100644 test/reference/paint-with-alpha.mask.argb32.ref.png create mode 100644 test/reference/paint-with-alpha.mask.rgb24.ref.png create mode 100644 test/reference/paint-with-alpha.rgb24.ref.png create mode 100644 test/reference/paint.argb32.ref.png create mode 100644 test/reference/paint.egl.argb32.ref.png create mode 100644 test/reference/paint.mask.argb32.ref.png create mode 100644 test/reference/paint.mask.rgb24.ref.png create mode 100644 test/reference/paint.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-bottom.argb32.ref.png create mode 100644 test/reference/partial-clip-text-bottom.egl.argb32.ref.png create mode 100644 test/reference/partial-clip-text-bottom.mask.argb32.ref.png create mode 100644 test/reference/partial-clip-text-bottom.mask.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-bottom.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-left.argb32.ref.png create mode 100644 test/reference/partial-clip-text-left.egl.argb32.ref.png create mode 100644 test/reference/partial-clip-text-left.mask.argb32.ref.png create mode 100644 test/reference/partial-clip-text-left.mask.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-left.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-right.argb32.ref.png create mode 100644 test/reference/partial-clip-text-right.egl.argb32.ref.png create mode 100644 test/reference/partial-clip-text-right.mask.argb32.ref.png create mode 100644 test/reference/partial-clip-text-right.mask.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-right.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-right.traps.ref.png create mode 100644 test/reference/partial-clip-text-top.argb32.ref.png create mode 100644 test/reference/partial-clip-text-top.egl.argb32.ref.png create mode 100644 test/reference/partial-clip-text-top.mask.argb32.ref.png create mode 100644 test/reference/partial-clip-text-top.mask.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-top.rgb24.ref.png create mode 100644 test/reference/partial-clip-text-top.traps.ref.png create mode 100644 test/reference/partial-coverage-half-reference.argb32.ref.png create mode 100644 test/reference/partial-coverage-half-reference.egl.argb32.ref.png create mode 100644 test/reference/partial-coverage-half-reference.mask.argb32.ref.png create mode 100644 test/reference/partial-coverage-half-reference.mask.rgb24.ref.png create mode 100644 test/reference/partial-coverage-half-reference.rgb24.ref.png create mode 100644 test/reference/partial-coverage-reference.argb32.ref.png create mode 100644 test/reference/partial-coverage-reference.egl.argb32.ref.png create mode 100644 test/reference/partial-coverage-reference.mask.argb32.ref.png create mode 100644 test/reference/partial-coverage-reference.mask.rgb24.ref.png create mode 100644 test/reference/partial-coverage-reference.rgb24.ref.png create mode 100644 test/reference/partial-coverage-three-quarter-reference.argb32.ref.png create mode 100644 test/reference/partial-coverage-three-quarter-reference.egl.argb32.ref.png create mode 100644 test/reference/partial-coverage-three-quarter-reference.mask.argb32.ref.png create mode 100644 test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png create mode 100644 test/reference/partial-coverage-three-quarter-reference.rgb24.ref.png create mode 100644 test/reference/pass-through.argb32.ref.png create mode 100644 test/reference/pass-through.base.argb32.ref.png create mode 100644 test/reference/pass-through.base.rgb24.ref.png create mode 100644 test/reference/pass-through.egl.argb32.ref.png create mode 100644 test/reference/pass-through.mask.argb32.ref.png create mode 100644 test/reference/pass-through.mask.rgb24.ref.png create mode 100644 test/reference/pass-through.traps.argb32.ref.png create mode 100644 test/reference/pass-through.traps.rgb24.ref.png create mode 100644 test/reference/path-append.argb32.ref.png create mode 100644 test/reference/path-append.egl.argb32.ref.png create mode 100644 test/reference/path-append.mask.argb32.ref.png create mode 100644 test/reference/path-append.mask.rgb24.ref.png create mode 100644 test/reference/path-append.rgb24.ref.png create mode 100644 test/reference/path-stroke-twice.argb32.ref.png create mode 100644 test/reference/path-stroke-twice.egl.argb32.ref.png create mode 100644 test/reference/path-stroke-twice.mask.argb32.ref.png create mode 100644 test/reference/path-stroke-twice.mask.rgb24.ref.png create mode 100644 test/reference/path-stroke-twice.rgb24.ref.png create mode 100644 test/reference/pattern-getters.argb32.ref.png create mode 100644 test/reference/pattern-getters.egl.argb32.ref.png create mode 100644 test/reference/pattern-getters.mask.argb32.ref.png create mode 100644 test/reference/pattern-getters.mask.rgb24.ref.png create mode 100644 test/reference/pattern-getters.rgb24.ref.png create mode 100644 test/reference/pdf-isolated-group.base.argb32.ref.png create mode 100644 test/reference/pdf-isolated-group.base.rgb24.ref.png create mode 100644 test/reference/pdf-isolated-group.egl.argb32.ref.png create mode 100644 test/reference/pdf-isolated-group.ref.png create mode 100644 test/reference/pdf-surface-source.egl.argb32.ref.png create mode 100644 test/reference/pdf-surface-source.mask.argb32.ref.png create mode 100644 test/reference/pdf-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/pixman-rotate.argb32.ref.png create mode 100644 test/reference/pixman-rotate.egl.argb32.ref.png create mode 100644 test/reference/pixman-rotate.mask.argb32.ref.png create mode 100644 test/reference/pixman-rotate.mask.rgb24.ref.png create mode 100644 test/reference/ps-surface-source.egl.argb32.ref.png create mode 100644 test/reference/ps-surface-source.mask.argb32.ref.png create mode 100644 test/reference/ps-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/pthread-same-source.argb32.ref.png create mode 100644 test/reference/pthread-same-source.egl.argb32.ref.png create mode 100644 test/reference/pthread-same-source.mask.argb32.ref.png create mode 100644 test/reference/pthread-same-source.mask.rgb24.ref.png create mode 100644 test/reference/pthread-same-source.rgb24.ref.png create mode 100644 test/reference/pthread-show-text.argb32.ref.png create mode 100644 test/reference/pthread-show-text.mask.argb32.ref.png create mode 100644 test/reference/pthread-show-text.mask.rgb24.ref.png create mode 100644 test/reference/pthread-show-text.rgb24.ref.png create mode 100644 test/reference/pthread-show-text.traps.ref.png create mode 100644 test/reference/pthread-similar.argb32.ref.png create mode 100644 test/reference/pthread-similar.egl.argb32.ref.png create mode 100644 test/reference/pthread-similar.mask.argb32.ref.png create mode 100644 test/reference/pthread-similar.mask.rgb24.ref.png create mode 100644 test/reference/pthread-similar.rgb24.ref.png create mode 100644 test/reference/push-group-color.argb32.ref.png create mode 100644 test/reference/push-group-color.egl.argb32.ref.png create mode 100644 test/reference/push-group-color.mask.argb32.ref.png create mode 100644 test/reference/push-group-color.mask.rgb24.ref.png create mode 100644 test/reference/push-group-color.rgb24.ref.png create mode 100644 test/reference/push-group-path-offset.argb32.ref.png create mode 100644 test/reference/push-group-path-offset.egl.argb32.ref.png create mode 100644 test/reference/push-group-path-offset.mask.argb32.ref.png create mode 100644 test/reference/push-group-path-offset.mask.rgb24.ref.png create mode 100644 test/reference/push-group-path-offset.rgb24.ref.png create mode 100644 test/reference/push-group.argb32.ref.png create mode 100644 test/reference/push-group.egl.argb32.ref.png create mode 100644 test/reference/push-group.mask.argb32.ref.png create mode 100644 test/reference/push-group.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-extend.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient-extend.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-extend.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-mask-source.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient-mask-source.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-mask-source.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-mask.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient-mask.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-mask.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-one-stop.argb32.ref.png create mode 100644 test/reference/radial-gradient-one-stop.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient-one-stop.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-one-stop.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient-one-stop.rgb24.ref.png create mode 100644 test/reference/radial-gradient-source.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient-source.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient-source.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient.argb32.ref.png create mode 100644 test/reference/radial-gradient.egl.argb32.ref.png create mode 100644 test/reference/radial-gradient.mask.argb32.ref.png create mode 100644 test/reference/radial-gradient.mask.rgb24.ref.png create mode 100644 test/reference/radial-gradient.rgb24.ref.png create mode 100644 test/reference/radial-outer-focus.base.argb32.ref.png create mode 100644 test/reference/radial-outer-focus.base.rgb24.ref.png create mode 100644 test/reference/radial-outer-focus.egl.argb32.ref.png create mode 100644 test/reference/radial-outer-focus.mask.argb32.ref.png create mode 100644 test/reference/radial-outer-focus.mask.rgb24.ref.png create mode 100644 test/reference/radial-outer-focus.traps.argb32.ref.png create mode 100644 test/reference/radial-outer-focus.traps.rgb24.ref.png create mode 100644 test/reference/random-clip.base.argb32.ref.png create mode 100644 test/reference/random-clip.base.rgb24.ref.png create mode 100644 test/reference/random-clip.mask.argb32.ref.png create mode 100644 test/reference/random-clip.mask.rgb24.ref.png create mode 100644 test/reference/random-intersections-curves-eo.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-eo.egl.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-eo.mask.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-eo.mask.rgb24.ref.png create mode 100644 test/reference/random-intersections-curves-eo.rgb24.ref.png create mode 100644 test/reference/random-intersections-curves-nz.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-nz.egl.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-nz.mask.argb32.ref.png create mode 100644 test/reference/random-intersections-curves-nz.mask.rgb24.ref.png create mode 100644 test/reference/random-intersections-curves-nz.rgb24.ref.png create mode 100644 test/reference/random-intersections-eo.argb32.ref.png create mode 100644 test/reference/random-intersections-eo.egl.argb32.ref.png create mode 100644 test/reference/random-intersections-eo.mask.argb32.ref.png create mode 100644 test/reference/random-intersections-eo.mask.rgb24.ref.png create mode 100644 test/reference/random-intersections-eo.rgb24.ref.png create mode 100644 test/reference/random-intersections-nonzero.argb32.ref.png create mode 100644 test/reference/random-intersections-nonzero.egl.argb32.ref.png create mode 100644 test/reference/random-intersections-nonzero.mask.argb32.ref.png create mode 100644 test/reference/random-intersections-nonzero.mask.rgb24.ref.png create mode 100644 test/reference/random-intersections-nonzero.rgb24.ref.png create mode 100644 test/reference/raster-source.argb32.ref.png create mode 100644 test/reference/raster-source.base.argb32.ref.png create mode 100644 test/reference/raster-source.base.rgb24.ref.png create mode 100644 test/reference/raster-source.egl.argb32.ref.png create mode 100644 test/reference/raster-source.mask.argb32.ref.png create mode 100644 test/reference/raster-source.mask.rgb24.ref.png create mode 100644 test/reference/raster-source.ps.ref.png create mode 100644 test/reference/raster-source.ref.png create mode 100644 test/reference/raster-source.rgb24.ref.png create mode 100644 test/reference/raster-source.traps.argb32.ref.png create mode 100644 test/reference/raster-source.traps.rgb24.ref.png create mode 100644 test/reference/record-extend-none-similar.argb32.ref.png create mode 100644 test/reference/record-extend-none-similar.base.argb32.ref.png create mode 100644 test/reference/record-extend-none-similar.base.rgb24.ref.png create mode 100644 test/reference/record-extend-none-similar.egl.argb32.ref.png create mode 100644 test/reference/record-extend-none-similar.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-none-similar.rgb24.ref.png create mode 100644 test/reference/record-extend-none.argb32.ref.png create mode 100644 test/reference/record-extend-none.base.argb32.ref.png create mode 100644 test/reference/record-extend-none.base.rgb24.ref.png create mode 100644 test/reference/record-extend-none.egl.argb32.ref.png create mode 100644 test/reference/record-extend-none.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-none.rgb24.ref.png create mode 100644 test/reference/record-extend-pad-similar.argb32.ref.png create mode 100644 test/reference/record-extend-pad-similar.base.argb32.ref.png create mode 100644 test/reference/record-extend-pad-similar.base.rgb24.ref.png create mode 100644 test/reference/record-extend-pad-similar.egl.argb32.ref.png create mode 100644 test/reference/record-extend-pad-similar.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-pad-similar.rgb24.ref.png create mode 100644 test/reference/record-extend-pad.argb32.ref.png create mode 100644 test/reference/record-extend-pad.base.argb32.ref.png create mode 100644 test/reference/record-extend-pad.base.rgb24.ref.png create mode 100644 test/reference/record-extend-pad.egl.argb32.ref.png create mode 100644 test/reference/record-extend-pad.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-pad.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect-similar.argb32.ref.png create mode 100644 test/reference/record-extend-reflect-similar.base.argb32.ref.png create mode 100644 test/reference/record-extend-reflect-similar.base.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect-similar.egl.argb32.ref.png create mode 100644 test/reference/record-extend-reflect-similar.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect-similar.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect.argb32.ref.png create mode 100644 test/reference/record-extend-reflect.base.argb32.ref.png create mode 100644 test/reference/record-extend-reflect.base.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect.egl.argb32.ref.png create mode 100644 test/reference/record-extend-reflect.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-reflect.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat-similar.argb32.ref.png create mode 100644 test/reference/record-extend-repeat-similar.base.argb32.ref.png create mode 100644 test/reference/record-extend-repeat-similar.base.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat-similar.egl.argb32.ref.png create mode 100644 test/reference/record-extend-repeat-similar.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat-similar.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat.argb32.ref.png create mode 100644 test/reference/record-extend-repeat.base.argb32.ref.png create mode 100644 test/reference/record-extend-repeat.base.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat.egl.argb32.ref.png create mode 100644 test/reference/record-extend-repeat.image16.rgb24.ref.png create mode 100644 test/reference/record-extend-repeat.rgb24.ref.png create mode 100644 test/reference/record-fill-alpha.argb32.ref.png create mode 100644 test/reference/record-fill-alpha.base.argb32.ref.png create mode 100644 test/reference/record-fill-alpha.base.rgb24.ref.png create mode 100644 test/reference/record-fill-alpha.base.xfail.png create mode 100644 test/reference/record-fill-alpha.egl.argb32.ref.png create mode 100644 test/reference/record-fill-alpha.image16.rgb24.ref.png create mode 100644 test/reference/record-fill-alpha.rgb24.ref.png create mode 100644 test/reference/record-fill-alpha.xfail.png create mode 100644 test/reference/record-mesh.argb32.ref.png create mode 100644 test/reference/record-mesh.base.argb32.ref.png create mode 100644 test/reference/record-mesh.base.rgb24.ref.png create mode 100644 test/reference/record-mesh.egl.argb32.ref.png create mode 100644 test/reference/record-mesh.image16.rgb24.ref.png create mode 100644 test/reference/record-mesh.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.base.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.base.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.base.xfail.png create mode 100644 test/reference/record-paint-alpha-clip-mask.egl.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.image16.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip-mask.xfail.png create mode 100644 test/reference/record-paint-alpha-clip.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip.base.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip.base.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip.egl.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-clip.image16.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-clip.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.base.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.base.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.egl.argb32.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.image16.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha-solid-clip.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha.argb32.ref.png create mode 100644 test/reference/record-paint-alpha.base.argb32.ref.png create mode 100644 test/reference/record-paint-alpha.base.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha.egl.argb32.ref.png create mode 100644 test/reference/record-paint-alpha.image16.rgb24.ref.png create mode 100644 test/reference/record-paint-alpha.rgb24.ref.png create mode 100644 test/reference/record-paint.argb32.ref.png create mode 100644 test/reference/record-paint.base.argb32.ref.png create mode 100644 test/reference/record-paint.base.rgb24.ref.png create mode 100644 test/reference/record-paint.egl.argb32.ref.png create mode 100644 test/reference/record-paint.image16.rgb24.ref.png create mode 100644 test/reference/record-paint.rgb24.ref.png create mode 100644 test/reference/record-select-font-face.argb32.ref.png create mode 100644 test/reference/record-select-font-face.base.argb32.ref.png create mode 100644 test/reference/record-select-font-face.base.rgb24.ref.png create mode 100644 test/reference/record-select-font-face.image16.rgb24.ref.png create mode 100644 test/reference/record-select-font-face.rgb24.ref.png create mode 100644 test/reference/record-self-intersecting.argb32.ref.png create mode 100644 test/reference/record-self-intersecting.base.argb32.ref.png create mode 100644 test/reference/record-self-intersecting.base.rgb24.ref.png create mode 100644 test/reference/record-self-intersecting.egl.argb32.ref.png create mode 100644 test/reference/record-self-intersecting.image16.rgb24.ref.png create mode 100644 test/reference/record-self-intersecting.rgb24.ref.png create mode 100644 test/reference/record-text-transform.argb32.ref.png create mode 100644 test/reference/record-text-transform.base.argb32.ref.png create mode 100644 test/reference/record-text-transform.base.rgb24.ref.png create mode 100644 test/reference/record-text-transform.image16.rgb24.ref.png create mode 100644 test/reference/record-text-transform.rgb24.ref.png create mode 100644 test/reference/record1414x-fill-alpha.argb32.ref.png create mode 100644 test/reference/record1414x-fill-alpha.base.argb32.ref.png create mode 100644 test/reference/record1414x-fill-alpha.base.rgb24.ref.png create mode 100644 test/reference/record1414x-fill-alpha.base.xfail.png create mode 100644 test/reference/record1414x-fill-alpha.egl.argb32.ref.png create mode 100644 test/reference/record1414x-fill-alpha.rgb24.ref.png create mode 100644 test/reference/record1414x-fill-alpha.xfail.png create mode 100644 test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip-mask.base.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip-mask.base.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip-mask.egl.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip.base.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip.base.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip.egl.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-clip.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha-solid-clip.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-solid-clip.base.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-solid-clip.base.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha-solid-clip.egl.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha-solid-clip.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha.base.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha.base.rgb24.ref.png create mode 100644 test/reference/record1414x-paint-alpha.egl.argb32.ref.png create mode 100644 test/reference/record1414x-paint-alpha.rgb24.ref.png create mode 100644 test/reference/record1414x-paint.argb32.ref.png create mode 100644 test/reference/record1414x-paint.base.argb32.ref.png create mode 100644 test/reference/record1414x-paint.base.rgb24.ref.png create mode 100644 test/reference/record1414x-paint.egl.argb32.ref.png create mode 100644 test/reference/record1414x-paint.rgb24.ref.png create mode 100644 test/reference/record1414x-select-font-face.argb32.ref.png create mode 100644 test/reference/record1414x-select-font-face.base.argb32.ref.png create mode 100644 test/reference/record1414x-select-font-face.base.rgb24.ref.png create mode 100644 test/reference/record1414x-select-font-face.egl.argb32.ref.png create mode 100644 test/reference/record1414x-select-font-face.rgb24.ref.png create mode 100644 test/reference/record1414x-self-intersecting.argb32.ref.png create mode 100644 test/reference/record1414x-self-intersecting.base.argb32.ref.png create mode 100644 test/reference/record1414x-self-intersecting.base.rgb24.ref.png create mode 100644 test/reference/record1414x-self-intersecting.egl.argb32.ref.png create mode 100644 test/reference/record1414x-self-intersecting.rgb24.ref.png create mode 100644 test/reference/record1414x-text-transform.base.argb32.ref.png create mode 100644 test/reference/record1414x-text-transform.base.rgb24.ref.png create mode 100644 test/reference/record1414x-text-transform.egl.argb32.ref.png create mode 100644 test/reference/record1414x-text-transform.ref.png create mode 100644 test/reference/record2x-fill-alpha.argb32.ref.png create mode 100644 test/reference/record2x-fill-alpha.base.argb32.ref.png create mode 100644 test/reference/record2x-fill-alpha.base.rgb24.ref.png create mode 100644 test/reference/record2x-fill-alpha.base.xfail.png create mode 100644 test/reference/record2x-fill-alpha.egl.argb32.ref.png create mode 100644 test/reference/record2x-fill-alpha.rgb24.ref.png create mode 100644 test/reference/record2x-fill-alpha.xfail.png create mode 100644 test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip-mask.base.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip-mask.base.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip-mask.egl.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip.base.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip.base.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip.egl.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-clip.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha-solid-clip.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-solid-clip.base.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-solid-clip.base.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha-solid-clip.egl.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha-solid-clip.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha.base.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha.base.rgb24.ref.png create mode 100644 test/reference/record2x-paint-alpha.egl.argb32.ref.png create mode 100644 test/reference/record2x-paint-alpha.rgb24.ref.png create mode 100644 test/reference/record2x-paint.argb32.ref.png create mode 100644 test/reference/record2x-paint.base.argb32.ref.png create mode 100644 test/reference/record2x-paint.base.rgb24.ref.png create mode 100644 test/reference/record2x-paint.egl.argb32.ref.png create mode 100644 test/reference/record2x-paint.rgb24.ref.png create mode 100644 test/reference/record2x-select-font-face.argb32.ref.png create mode 100644 test/reference/record2x-select-font-face.base.argb32.ref.png create mode 100644 test/reference/record2x-select-font-face.base.rgb24.ref.png create mode 100644 test/reference/record2x-select-font-face.egl.argb32.ref.png create mode 100644 test/reference/record2x-select-font-face.rgb24.ref.png create mode 100644 test/reference/record2x-self-intersecting.argb32.ref.png create mode 100644 test/reference/record2x-self-intersecting.base.argb32.ref.png create mode 100644 test/reference/record2x-self-intersecting.base.rgb24.ref.png create mode 100644 test/reference/record2x-self-intersecting.egl.argb32.ref.png create mode 100644 test/reference/record2x-self-intersecting.rgb24.ref.png create mode 100644 test/reference/record2x-text-transform.base.argb32.ref.png create mode 100644 test/reference/record2x-text-transform.base.rgb24.ref.png create mode 100644 test/reference/record2x-text-transform.egl.argb32.ref.png create mode 100644 test/reference/record2x-text-transform.ref.png create mode 100644 test/reference/record90-fill-alpha.argb32.ref.png create mode 100644 test/reference/record90-fill-alpha.base.argb32.ref.png create mode 100644 test/reference/record90-fill-alpha.base.rgb24.ref.png create mode 100644 test/reference/record90-fill-alpha.egl.argb32.ref.png create mode 100644 test/reference/record90-fill-alpha.rgb24.ref.png create mode 100644 test/reference/record90-fill-alpha.xfail.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.base.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.base.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.egl.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha-clip-mask.xfail.png create mode 100644 test/reference/record90-paint-alpha-clip.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip.base.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip.base.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha-clip.egl.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-clip.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha-clip.xfail.png create mode 100644 test/reference/record90-paint-alpha-solid-clip.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-solid-clip.base.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-solid-clip.base.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha-solid-clip.egl.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha.base.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha.base.rgb24.ref.png create mode 100644 test/reference/record90-paint-alpha.egl.argb32.ref.png create mode 100644 test/reference/record90-paint-alpha.rgb24.ref.png create mode 100644 test/reference/record90-paint.argb32.ref.png create mode 100644 test/reference/record90-paint.base.argb32.ref.png create mode 100644 test/reference/record90-paint.base.rgb24.ref.png create mode 100644 test/reference/record90-paint.egl.argb32.ref.png create mode 100644 test/reference/record90-paint.rgb24.ref.png create mode 100644 test/reference/record90-select-font-face.argb32.ref.png create mode 100644 test/reference/record90-select-font-face.base.argb32.ref.png create mode 100644 test/reference/record90-select-font-face.base.rgb24.ref.png create mode 100644 test/reference/record90-select-font-face.egl.argb32.ref.png create mode 100644 test/reference/record90-select-font-face.rgb24.ref.png create mode 100644 test/reference/record90-self-intersecting.argb32.ref.png create mode 100644 test/reference/record90-self-intersecting.base.argb32.ref.png create mode 100644 test/reference/record90-self-intersecting.base.rgb24.ref.png create mode 100644 test/reference/record90-self-intersecting.egl.argb32.ref.png create mode 100644 test/reference/record90-self-intersecting.rgb24.ref.png create mode 100644 test/reference/record90-text-transform.argb32.ref.png create mode 100644 test/reference/record90-text-transform.base.argb32.ref.png create mode 100644 test/reference/record90-text-transform.base.rgb24.ref.png create mode 100644 test/reference/record90-text-transform.egl.argb32.ref.png create mode 100644 test/reference/record90-text-transform.rgb24.ref.png create mode 100644 test/reference/recording-surface-extend-none.egl.argb32.ref.png create mode 100644 test/reference/recording-surface-extend-pad.egl.argb32.ref.png create mode 100644 test/reference/recording-surface-extend-reflect.egl.argb32.ref.png create mode 100644 test/reference/recording-surface-extend-repeat.egl.argb32.ref.png create mode 100644 test/reference/recording-surface-over.egl.argb32.ref.png create mode 100644 test/reference/recording-surface-source.egl.argb32.ref.png create mode 100644 test/reference/rectangle-rounding-error.argb32.ref.png create mode 100644 test/reference/rectangle-rounding-error.egl.argb32.ref.png create mode 100644 test/reference/rectangle-rounding-error.mask.argb32.ref.png create mode 100644 test/reference/rectangle-rounding-error.mask.rgb24.ref.png create mode 100644 test/reference/rectangle-rounding-error.rgb24.ref.png create mode 100644 test/reference/rectilinear-dash-scale-unaligned.ref.png create mode 100644 test/reference/rectilinear-dash-scale-unaligned.traps.ref.png create mode 100644 test/reference/rectilinear-dash-scale.ref.png create mode 100644 test/reference/rectilinear-dash.argb32.ref.png create mode 100644 test/reference/rectilinear-dash.egl.argb32.ref.png create mode 100644 test/reference/rectilinear-dash.mask.argb32.ref.png create mode 100644 test/reference/rectilinear-dash.mask.rgb24.ref.png create mode 100644 test/reference/rectilinear-dash.rgb24.ref.png create mode 100644 test/reference/rectilinear-fill.argb32.ref.png create mode 100644 test/reference/rectilinear-fill.egl.argb32.ref.png create mode 100644 test/reference/rectilinear-fill.mask.argb32.ref.png create mode 100644 test/reference/rectilinear-fill.mask.rgb24.ref.png create mode 100644 test/reference/rectilinear-fill.rgb24.ref.png create mode 100644 test/reference/rectilinear-grid.argb32.ref.png create mode 100644 test/reference/rectilinear-grid.egl.argb32.ref.png create mode 100644 test/reference/rectilinear-grid.mask.argb32.ref.png create mode 100644 test/reference/rectilinear-grid.mask.rgb24.ref.png create mode 100644 test/reference/rectilinear-grid.rgb24.ref.png create mode 100644 test/reference/rectilinear-miter-limit.argb32.ref.png create mode 100644 test/reference/rectilinear-miter-limit.egl.argb32.ref.png create mode 100644 test/reference/rectilinear-miter-limit.mask.argb32.ref.png create mode 100644 test/reference/rectilinear-miter-limit.mask.rgb24.ref.png create mode 100644 test/reference/rectilinear-miter-limit.rgb24.ref.png create mode 100644 test/reference/rectilinear-stroke.argb32.ref.png create mode 100644 test/reference/rectilinear-stroke.egl.argb32.ref.png create mode 100644 test/reference/rectilinear-stroke.mask.argb32.ref.png create mode 100644 test/reference/rectilinear-stroke.mask.rgb24.ref.png create mode 100644 test/reference/rectilinear-stroke.rgb24.ref.png create mode 100644 test/reference/reflected-stroke.argb32.ref.png create mode 100644 test/reference/reflected-stroke.egl.argb32.ref.png create mode 100644 test/reference/reflected-stroke.mask.argb32.ref.png create mode 100644 test/reference/reflected-stroke.mask.rgb24.ref.png create mode 100644 test/reference/reflected-stroke.rgb24.ref.png create mode 100644 test/reference/rel-path.argb32.ref.png create mode 100644 test/reference/rel-path.egl.argb32.ref.png create mode 100644 test/reference/rel-path.mask.argb32.ref.png create mode 100644 test/reference/rel-path.mask.rgb24.ref.png create mode 100644 test/reference/rgb24-ignore-alpha.argb32.ref.png create mode 100644 test/reference/rgb24-ignore-alpha.egl.argb32.ref.png create mode 100644 test/reference/rgb24-ignore-alpha.mask.argb32.ref.png create mode 100644 test/reference/rgb24-ignore-alpha.mask.rgb24.ref.png create mode 100644 test/reference/rgb24-ignore-alpha.rgb24.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.argb32.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.egl.argb32.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.mask.argb32.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.mask.rgb24.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.rgb24.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/rotate-clip-image-surface-paint.xlib-window.rgb24.ref.png create mode 100644 test/reference/rotate-image-surface-paint.argb32.ref.png create mode 100644 test/reference/rotate-image-surface-paint.egl.argb32.ref.png create mode 100644 test/reference/rotate-image-surface-paint.mask.argb32.ref.png create mode 100644 test/reference/rotate-image-surface-paint.mask.rgb24.ref.png create mode 100644 test/reference/rotate-image-surface-paint.rgb24.ref.png create mode 100644 test/reference/rotate-image-surface-paint.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/rotate-image-surface-paint.xlib-window.rgb24.ref.png create mode 100644 test/reference/rotated-clip.argb32.ref.png create mode 100644 test/reference/rotated-clip.egl.argb32.ref.png create mode 100644 test/reference/rotated-clip.mask.argb32.ref.png create mode 100644 test/reference/rotated-clip.mask.rgb24.ref.png create mode 100644 test/reference/rotated-clip.rgb24.ref.png create mode 100644 test/reference/rounded-rectangle-fill.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-fill.egl.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-fill.mask.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-fill.mask.rgb24.ref.png create mode 100644 test/reference/rounded-rectangle-fill.rgb24.ref.png create mode 100644 test/reference/rounded-rectangle-stroke.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-stroke.egl.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-stroke.mask.argb32.ref.png create mode 100644 test/reference/rounded-rectangle-stroke.mask.rgb24.ref.png create mode 100644 test/reference/rounded-rectangle-stroke.rgb24.ref.png create mode 100644 test/reference/scale-down-source-surface-paint.argb32.ref.png create mode 100644 test/reference/scale-down-source-surface-paint.egl.argb32.ref.png create mode 100644 test/reference/scale-down-source-surface-paint.mask.argb32.ref.png create mode 100644 test/reference/scale-down-source-surface-paint.mask.rgb24.ref.png create mode 100644 test/reference/scale-down-source-surface-paint.rgb24.ref.png create mode 100644 test/reference/scale-offset-image.argb32.ref.png create mode 100644 test/reference/scale-offset-image.egl.argb32.ref.png create mode 100644 test/reference/scale-offset-image.mask.argb32.ref.png create mode 100644 test/reference/scale-offset-image.mask.rgb24.ref.png create mode 100644 test/reference/scale-offset-image.rgb24.ref.png create mode 100644 test/reference/scale-offset-similar.argb32.ref.png create mode 100644 test/reference/scale-offset-similar.egl.argb32.ref.png create mode 100644 test/reference/scale-offset-similar.mask.argb32.ref.png create mode 100644 test/reference/scale-offset-similar.mask.rgb24.ref.png create mode 100644 test/reference/scale-offset-similar.rgb24.ref.png create mode 100644 test/reference/scale-offset-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/scale-offset-xlib-window.rgb24.ref.png create mode 100644 test/reference/scale-offset-xlib.argb32.ref.png create mode 100644 test/reference/scale-offset-xlib.rgb24.ref.png create mode 100644 test/reference/scale-source-surface-paint.argb32.ref.png create mode 100644 test/reference/scale-source-surface-paint.egl.argb32.ref.png create mode 100644 test/reference/scale-source-surface-paint.mask.argb32.ref.png create mode 100644 test/reference/scale-source-surface-paint.mask.rgb24.ref.png create mode 100644 test/reference/select-font-face.argb32.ref.png create mode 100644 test/reference/select-font-face.mask.argb32.ref.png create mode 100644 test/reference/select-font-face.mask.rgb24.ref.png create mode 100644 test/reference/select-font-face.rgb24.ref.png create mode 100644 test/reference/select-font-face.traps.ref.png create mode 100644 test/reference/self-copy-overlap.egl.argb32.ref.png create mode 100644 test/reference/self-copy-overlap.mask.argb32.ref.png create mode 100644 test/reference/self-copy-overlap.mask.rgb24.ref.png create mode 100644 test/reference/self-copy.argb32.ref.png create mode 100644 test/reference/self-copy.egl.argb32.ref.png create mode 100644 test/reference/self-copy.mask.argb32.ref.png create mode 100644 test/reference/self-copy.mask.rgb24.ref.png create mode 100644 test/reference/self-copy.rgb24.ref.png create mode 100644 test/reference/self-intersecting.argb32.ref.png create mode 100644 test/reference/self-intersecting.egl.argb32.ref.png create mode 100644 test/reference/self-intersecting.mask.argb32.ref.png create mode 100644 test/reference/self-intersecting.mask.rgb24.ref.png create mode 100644 test/reference/self-intersecting.rgb24.ref.png create mode 100644 test/reference/set-source.argb32.ref.png create mode 100644 test/reference/set-source.egl.argb32.ref.png create mode 100644 test/reference/set-source.mask.argb32.ref.png create mode 100644 test/reference/set-source.mask.rgb24.ref.png create mode 100644 test/reference/shape-general-convex.argb32.ref.png create mode 100644 test/reference/shape-general-convex.egl.argb32.ref.png create mode 100644 test/reference/shape-general-convex.mask.argb32.ref.png create mode 100644 test/reference/shape-general-convex.mask.rgb24.ref.png create mode 100644 test/reference/shape-general-convex.rgb24.ref.png create mode 100644 test/reference/shape-sierpinski.argb32.ref.png create mode 100644 test/reference/shape-sierpinski.egl.argb32.ref.png create mode 100644 test/reference/shape-sierpinski.mask.argb32.ref.png create mode 100644 test/reference/shape-sierpinski.mask.rgb24.ref.png create mode 100644 test/reference/shape-sierpinski.rgb24.ref.png create mode 100644 test/reference/show-glyphs-advance.argb32.ref.png create mode 100644 test/reference/show-glyphs-advance.egl.argb32.ref.png create mode 100644 test/reference/show-glyphs-advance.mask.argb32.ref.png create mode 100644 test/reference/show-glyphs-advance.mask.rgb24.ref.png create mode 100644 test/reference/show-glyphs-advance.rgb24.ref.png create mode 100644 test/reference/show-glyphs-advance.traps.ref.png create mode 100644 test/reference/show-glyphs-many.argb32.ref.png create mode 100644 test/reference/show-glyphs-many.egl.argb32.ref.png create mode 100644 test/reference/show-glyphs-many.mask.argb32.ref.png create mode 100644 test/reference/show-glyphs-many.mask.rgb24.ref.png create mode 100644 test/reference/show-glyphs-many.rgb24.ref.png create mode 100644 test/reference/show-text-current-point.argb32.ref.png create mode 100644 test/reference/show-text-current-point.mask.argb32.ref.png create mode 100644 test/reference/show-text-current-point.mask.rgb24.ref.png create mode 100644 test/reference/show-text-current-point.rgb24.ref.png create mode 100644 test/reference/show-text-current-point.traps.ref.png create mode 100644 test/reference/skew-extreme.argb32.ref.png create mode 100644 test/reference/skew-extreme.egl.argb32.ref.png create mode 100644 test/reference/skew-extreme.mask.argb32.ref.png create mode 100644 test/reference/skew-extreme.mask.rgb24.ref.png create mode 100644 test/reference/skew-extreme.rgb24.ref.png create mode 100644 test/reference/smask-fill.argb32.ref.png create mode 100644 test/reference/smask-fill.egl.argb32.ref.png create mode 100644 test/reference/smask-fill.mask.argb32.ref.png create mode 100644 test/reference/smask-fill.mask.rgb24.ref.png create mode 100644 test/reference/smask-fill.rgb24.ref.png create mode 100644 test/reference/smask-image-mask.argb32.ref.png create mode 100644 test/reference/smask-image-mask.egl.argb32.ref.png create mode 100644 test/reference/smask-image-mask.mask.argb32.ref.png create mode 100644 test/reference/smask-image-mask.mask.rgb24.ref.png create mode 100644 test/reference/smask-image-mask.rgb24.ref.png create mode 100644 test/reference/smask-image-mask.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/smask-image-mask.xlib-window.rgb24.ref.png create mode 100644 test/reference/smask-mask.argb32.ref.png create mode 100644 test/reference/smask-mask.egl.argb32.ref.png create mode 100644 test/reference/smask-mask.mask.argb32.ref.png create mode 100644 test/reference/smask-mask.mask.rgb24.ref.png create mode 100644 test/reference/smask-mask.rgb24.ref.png create mode 100644 test/reference/smask-paint.argb32.ref.png create mode 100644 test/reference/smask-paint.egl.argb32.ref.png create mode 100644 test/reference/smask-paint.mask.argb32.ref.png create mode 100644 test/reference/smask-paint.mask.rgb24.ref.png create mode 100644 test/reference/smask-paint.rgb24.ref.png create mode 100644 test/reference/smask-stroke.argb32.ref.png create mode 100644 test/reference/smask-stroke.egl.argb32.ref.png create mode 100644 test/reference/smask-stroke.mask.argb32.ref.png create mode 100644 test/reference/smask-stroke.mask.rgb24.ref.png create mode 100644 test/reference/smask-stroke.rgb24.ref.png create mode 100644 test/reference/smask-text.argb32.ref.png create mode 100644 test/reference/smask-text.mask.argb32.ref.png create mode 100644 test/reference/smask-text.mask.rgb24.ref.png create mode 100644 test/reference/smask-text.rgb24.ref.png create mode 100644 test/reference/smask-text.traps.ref.png create mode 100644 test/reference/smask.argb32.ref.png create mode 100644 test/reference/smask.egl.argb32.ref.png create mode 100644 test/reference/smask.mask.argb32.ref.png create mode 100644 test/reference/smask.mask.rgb24.ref.png create mode 100644 test/reference/smask.rgb24.ref.png create mode 100644 test/reference/smask.traps.ref.png create mode 100644 test/reference/solid-pattern-cache-stress.argb32.ref.png create mode 100644 test/reference/solid-pattern-cache-stress.egl.argb32.ref.png create mode 100644 test/reference/solid-pattern-cache-stress.mask.argb32.ref.png create mode 100644 test/reference/solid-pattern-cache-stress.mask.rgb24.ref.png create mode 100644 test/reference/solid-pattern-cache-stress.rgb24.ref.png create mode 100644 test/reference/source-clip-scale.argb32.ref.png create mode 100644 test/reference/source-clip-scale.egl.argb32.ref.png create mode 100644 test/reference/source-clip-scale.mask.argb32.ref.png create mode 100644 test/reference/source-clip-scale.mask.rgb24.ref.png create mode 100644 test/reference/source-clip-scale.recording.ref.png create mode 100644 test/reference/source-clip-scale.rgb24.ref.png create mode 100644 test/reference/source-clip.argb32.ref.png create mode 100644 test/reference/source-clip.egl.argb32.ref.png create mode 100644 test/reference/source-clip.mask.argb32.ref.png create mode 100644 test/reference/source-clip.mask.rgb24.ref.png create mode 100644 test/reference/source-clip.rgb24.ref.png create mode 100644 test/reference/source-surface-scale-paint.argb32.ref.png create mode 100644 test/reference/source-surface-scale-paint.egl.argb32.ref.png create mode 100644 test/reference/source-surface-scale-paint.mask.argb32.ref.png create mode 100644 test/reference/source-surface-scale-paint.mask.rgb24.ref.png create mode 100644 test/reference/spline-decomposition.argb32.ref.png create mode 100644 test/reference/spline-decomposition.egl.argb32.ref.png create mode 100644 test/reference/spline-decomposition.mask.argb32.ref.png create mode 100644 test/reference/spline-decomposition.mask.rgb24.ref.png create mode 100644 test/reference/spline-decomposition.rgb24.ref.png create mode 100644 test/reference/stride-12-image.argb32.ref.png create mode 100644 test/reference/stride-12-image.base.argb32.ref.png create mode 100644 test/reference/stride-12-image.base.rgb24.ref.png create mode 100644 test/reference/stride-12-image.egl.argb32.ref.png create mode 100644 test/reference/stride-12-image.image16.ref.png create mode 100644 test/reference/stride-12-image.mask.argb32.ref.png create mode 100644 test/reference/stride-12-image.mask.rgb24.ref.png create mode 100644 test/reference/stride-12-image.ps.ref.png create mode 100644 test/reference/stride-12-image.ref.png create mode 100644 test/reference/stride-12-image.rgb24.ref.png create mode 100644 test/reference/stride-12-image.traps.argb32.ref.png create mode 100644 test/reference/stride-12-image.traps.rgb24.ref.png create mode 100644 test/reference/stride-12-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/stride-12-xlib-window.rgb24.ref.png create mode 100644 test/reference/stride-12-xlib.argb32.ref.png create mode 100644 test/reference/stride-12-xlib.rgb24.ref.png create mode 100644 test/reference/stroke-ctm-caps.argb32.ref.png create mode 100644 test/reference/stroke-ctm-caps.egl.argb32.ref.png create mode 100644 test/reference/stroke-ctm-caps.mask.argb32.ref.png create mode 100644 test/reference/stroke-ctm-caps.mask.rgb24.ref.png create mode 100644 test/reference/stroke-ctm-caps.rgb24.ref.png create mode 100644 test/reference/stroke-image.argb32.ref.png create mode 100644 test/reference/stroke-image.egl.argb32.ref.png create mode 100644 test/reference/stroke-image.mask.argb32.ref.png create mode 100644 test/reference/stroke-image.mask.rgb24.ref.png create mode 100644 test/reference/stroke-image.rgb24.ref.png create mode 100644 test/reference/stroke-open-box.argb32.ref.png create mode 100644 test/reference/stroke-open-box.egl.argb32.ref.png create mode 100644 test/reference/stroke-open-box.mask.argb32.ref.png create mode 100644 test/reference/stroke-open-box.mask.rgb24.ref.png create mode 100644 test/reference/stroke-open-box.rgb24.ref.png create mode 100644 test/reference/stroke-pattern.argb32.ref.png create mode 100644 test/reference/stroke-pattern.base.argb32.ref.png create mode 100644 test/reference/stroke-pattern.base.rgb24.ref.png create mode 100644 test/reference/stroke-pattern.egl.argb32.ref.png create mode 100644 test/reference/stroke-pattern.mask.argb32.ref.png create mode 100644 test/reference/stroke-pattern.mask.rgb24.ref.png create mode 100644 test/reference/stroke-pattern.rgb24.ref.png create mode 100644 test/reference/stroke-pattern.traps.argb32.ref.png create mode 100644 test/reference/stroke-pattern.traps.ref.png create mode 100644 test/reference/stroke-pattern.traps.rgb24.ref.png create mode 100644 test/reference/stroke-xlib-fallback.rgb24.ref.png create mode 100644 test/reference/stroke-xlib-window.rgb24.ref.png create mode 100644 test/reference/stroke-xlib.argb32.ref.png create mode 100644 test/reference/stroke-xlib.rgb24.ref.png create mode 100644 test/reference/subsurface-image-repeat.argb32.ref.png create mode 100644 test/reference/subsurface-image-repeat.egl.argb32.ref.png create mode 100644 test/reference/subsurface-image-repeat.mask.argb32.ref.png create mode 100644 test/reference/subsurface-image-repeat.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-image-repeat.rgb24.ref.png create mode 100644 test/reference/subsurface-image-repeat.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/subsurface-image-repeat.xlib-window.rgb24.ref.png create mode 100644 test/reference/subsurface-modify-child.argb32.ref.png create mode 100644 test/reference/subsurface-modify-child.egl.argb32.ref.png create mode 100644 test/reference/subsurface-modify-child.mask.argb32.ref.png create mode 100644 test/reference/subsurface-modify-child.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-modify-child.rgb24.ref.png create mode 100644 test/reference/subsurface-modify-parent.argb32.ref.png create mode 100644 test/reference/subsurface-modify-parent.egl.argb32.ref.png create mode 100644 test/reference/subsurface-modify-parent.mask.argb32.ref.png create mode 100644 test/reference/subsurface-modify-parent.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-modify-parent.rgb24.ref.png create mode 100644 test/reference/subsurface-outside-target.egl.argb32.ref.png create mode 100644 test/reference/subsurface-outside-target.mask.argb32.ref.png create mode 100644 test/reference/subsurface-outside-target.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-outside-target.traps.argb32.ref.png create mode 100644 test/reference/subsurface-outside-target.traps.rgb24.ref.png create mode 100644 test/reference/subsurface-pad.argb32.ref.png create mode 100644 test/reference/subsurface-pad.egl.argb32.ref.png create mode 100644 test/reference/subsurface-pad.mask.argb32.ref.png create mode 100644 test/reference/subsurface-pad.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-pad.rgb24.ref.png create mode 100644 test/reference/subsurface-reflect.argb32.ref.png create mode 100644 test/reference/subsurface-reflect.egl.argb32.ref.png create mode 100644 test/reference/subsurface-reflect.mask.argb32.ref.png create mode 100644 test/reference/subsurface-reflect.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-reflect.rgb24.ref.png create mode 100644 test/reference/subsurface-repeat.argb32.ref.png create mode 100644 test/reference/subsurface-repeat.egl.argb32.ref.png create mode 100644 test/reference/subsurface-repeat.mask.argb32.ref.png create mode 100644 test/reference/subsurface-repeat.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-repeat.rgb24.ref.png create mode 100644 test/reference/subsurface-scale.argb32.ref.png create mode 100644 test/reference/subsurface-scale.base.argb32.ref.png create mode 100644 test/reference/subsurface-scale.base.rgb24.ref.png create mode 100644 test/reference/subsurface-scale.egl.argb32.ref.png create mode 100644 test/reference/subsurface-scale.mask.argb32.ref.png create mode 100644 test/reference/subsurface-scale.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-scale.rgb24.ref.png create mode 100644 test/reference/subsurface-scale.traps.argb32.ref.png create mode 100644 test/reference/subsurface-scale.traps.rgb24.ref.png create mode 100644 test/reference/subsurface-similar-repeat.argb32.ref.png create mode 100644 test/reference/subsurface-similar-repeat.egl.argb32.ref.png create mode 100644 test/reference/subsurface-similar-repeat.mask.argb32.ref.png create mode 100644 test/reference/subsurface-similar-repeat.mask.rgb24.ref.png create mode 100644 test/reference/subsurface-similar-repeat.rgb24.ref.png create mode 100644 test/reference/subsurface.argb32.ref.png create mode 100644 test/reference/subsurface.egl.argb32.ref.png create mode 100644 test/reference/subsurface.mask.argb32.ref.png create mode 100644 test/reference/subsurface.mask.rgb24.ref.png create mode 100644 test/reference/subsurface.rgb24.ref.png create mode 100644 test/reference/surface-pattern-big-scale-down.argb32.ref.png create mode 100644 test/reference/surface-pattern-big-scale-down.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-big-scale-down.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-big-scale-down.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-big-scale-down.rgb24.ref.png create mode 100644 test/reference/surface-pattern-operator.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-operator.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-operator.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-none.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-none.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-none.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-none.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-none.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-pad.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-pad.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-pad.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-pad.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-pad.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-reflect.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-reflect.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-reflect.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-reflect.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-reflect.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-repeat.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-repeat.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-repeat.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-repeat.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down-extend-repeat.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-down.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-down.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-up.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-up.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-up.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern-scale-up.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern-scale-up.rgb24.ref.png create mode 100644 test/reference/surface-pattern.argb32.ref.png create mode 100644 test/reference/surface-pattern.egl.argb32.ref.png create mode 100644 test/reference/surface-pattern.mask.argb32.ref.png create mode 100644 test/reference/surface-pattern.mask.rgb24.ref.png create mode 100644 test/reference/surface-pattern.rgb24.ref.png create mode 100644 test/reference/svg-surface-source.egl.argb32.ref.png create mode 100644 test/reference/svg-surface-source.mask.argb32.ref.png create mode 100644 test/reference/svg-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-gray.argb32.ref.png create mode 100644 test/reference/text-antialias-gray.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-gray.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-gray.rgb24.ref.png create mode 100644 test/reference/text-antialias-gray.traps.ref.png create mode 100644 test/reference/text-antialias-none.argb32.ref.png create mode 100644 test/reference/text-antialias-none.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-none.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-none.rgb24.ref.png create mode 100644 test/reference/text-antialias-none.traps.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.base.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.base.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.egl.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.image16.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.traps.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.traps.ref.png create mode 100644 test/reference/text-antialias-subpixel-bgr.traps.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.base.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.base.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.egl.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.image16.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.traps.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.traps.ref.png create mode 100644 test/reference/text-antialias-subpixel-rgb.traps.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.base.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.base.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.egl.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.image16.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.traps.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.traps.ref.png create mode 100644 test/reference/text-antialias-subpixel-vbgr.traps.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.base.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.base.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.egl.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.image16.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.traps.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.traps.ref.png create mode 100644 test/reference/text-antialias-subpixel-vrgb.traps.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel.base.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel.base.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel.mask.argb32.ref.png create mode 100644 test/reference/text-antialias-subpixel.mask.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel.rgb24.ref.png create mode 100644 test/reference/text-antialias-subpixel.traps.ref.png create mode 100644 test/reference/text-glyph-range.argb32.ref.png create mode 100644 test/reference/text-glyph-range.egl.argb32.ref.png create mode 100644 test/reference/text-glyph-range.mask.argb32.ref.png create mode 100644 test/reference/text-glyph-range.mask.rgb24.ref.png create mode 100644 test/reference/text-glyph-range.rgb24.ref.png create mode 100644 test/reference/text-glyph-range.traps.ref.png create mode 100644 test/reference/text-pattern.argb32.ref.png create mode 100644 test/reference/text-pattern.mask.argb32.ref.png create mode 100644 test/reference/text-pattern.mask.rgb24.ref.png create mode 100644 test/reference/text-pattern.rgb24.ref.png create mode 100644 test/reference/text-rotate.mask.argb32.ref.png create mode 100644 test/reference/text-rotate.mask.rgb24.ref.png create mode 100644 test/reference/text-rotate.traps.ref.png create mode 100644 test/reference/text-transform.argb32.ref.png create mode 100644 test/reference/text-transform.mask.argb32.ref.png create mode 100644 test/reference/text-transform.mask.rgb24.ref.png create mode 100644 test/reference/text-transform.rgb24.ref.png create mode 100644 test/reference/tiger.argb32.ref.png create mode 100644 test/reference/tiger.egl.argb32.ref.png create mode 100644 test/reference/tiger.mask.argb32.ref.png create mode 100644 test/reference/tiger.mask.rgb24.ref.png create mode 100644 test/reference/tiger.rgb24.ref.png create mode 100644 test/reference/transforms.argb32.ref.png create mode 100644 test/reference/transforms.egl.argb32.ref.png create mode 100644 test/reference/transforms.mask.argb32.ref.png create mode 100644 test/reference/transforms.mask.rgb24.ref.png create mode 100644 test/reference/transforms.rgb24.ref.png create mode 100644 test/reference/translate-show-surface.argb32.ref.png create mode 100644 test/reference/translate-show-surface.egl.argb32.ref.png create mode 100644 test/reference/translate-show-surface.mask.argb32.ref.png create mode 100644 test/reference/translate-show-surface.mask.rgb24.ref.png create mode 100644 test/reference/translate-show-surface.rgb24.ref.png create mode 100644 test/reference/trap-clip.argb32.ref.png create mode 100644 test/reference/trap-clip.egl.argb32.ref.png create mode 100644 test/reference/trap-clip.mask.argb32.ref.png create mode 100644 test/reference/trap-clip.mask.rgb24.ref.png create mode 100644 test/reference/twin-antialias-gray.argb32.ref.png create mode 100644 test/reference/twin-antialias-gray.egl.argb32.ref.png create mode 100644 test/reference/twin-antialias-gray.mask.argb32.ref.png create mode 100644 test/reference/twin-antialias-gray.mask.rgb24.ref.png create mode 100644 test/reference/twin-antialias-gray.rgb24.ref.png create mode 100644 test/reference/twin-antialias-mixed.argb32.ref.png create mode 100644 test/reference/twin-antialias-mixed.egl.argb32.ref.png create mode 100644 test/reference/twin-antialias-mixed.mask.argb32.ref.png create mode 100644 test/reference/twin-antialias-mixed.mask.rgb24.ref.png create mode 100644 test/reference/twin-antialias-mixed.rgb24.ref.png create mode 100644 test/reference/twin-antialias-none.argb32.ref.png create mode 100644 test/reference/twin-antialias-none.egl.argb32.ref.png create mode 100644 test/reference/twin-antialias-none.mask.argb32.ref.png create mode 100644 test/reference/twin-antialias-none.mask.rgb24.ref.png create mode 100644 test/reference/twin-antialias-none.rgb24.ref.png create mode 100644 test/reference/twin-antialias-subpixel.argb32.ref.png create mode 100644 test/reference/twin-antialias-subpixel.egl.argb32.ref.png create mode 100644 test/reference/twin-antialias-subpixel.mask.argb32.ref.png create mode 100644 test/reference/twin-antialias-subpixel.mask.rgb24.ref.png create mode 100644 test/reference/twin-antialias-subpixel.rgb24.ref.png create mode 100644 test/reference/twin.argb32.ref.png create mode 100644 test/reference/twin.egl.argb32.ref.png create mode 100644 test/reference/twin.mask.argb32.ref.png create mode 100644 test/reference/twin.mask.rgb24.ref.png create mode 100644 test/reference/twin.rgb24.ref.png create mode 100644 test/reference/unaligned-box.argb32.ref.png create mode 100644 test/reference/unaligned-box.egl.argb32.ref.png create mode 100644 test/reference/unaligned-box.mask.argb32.ref.png create mode 100644 test/reference/unaligned-box.mask.rgb24.ref.png create mode 100644 test/reference/unaligned-box.rgb24.ref.png create mode 100644 test/reference/unantialiased-shapes.argb32.ref.png create mode 100644 test/reference/unantialiased-shapes.egl.argb32.ref.png create mode 100644 test/reference/unantialiased-shapes.mask.argb32.ref.png create mode 100644 test/reference/unantialiased-shapes.mask.rgb24.ref.png create mode 100644 test/reference/unantialiased-shapes.rgb24.ref.png create mode 100644 test/reference/unbounded-operator.mask.argb32.ref.png create mode 100644 test/reference/unbounded-operator.mask.rgb24.ref.png create mode 100644 test/reference/unclosed-strokes.argb32.ref.png create mode 100644 test/reference/unclosed-strokes.egl.argb32.ref.png create mode 100644 test/reference/unclosed-strokes.mask.argb32.ref.png create mode 100644 test/reference/unclosed-strokes.mask.rgb24.ref.png create mode 100644 test/reference/unclosed-strokes.rgb24.ref.png create mode 100644 test/reference/user-font-mask.argb32.ref.png create mode 100644 test/reference/user-font-mask.egl.argb32.ref.png create mode 100644 test/reference/user-font-mask.mask.argb32.ref.png create mode 100644 test/reference/user-font-mask.mask.rgb24.ref.png create mode 100644 test/reference/user-font-mask.rgb24.ref.png create mode 100644 test/reference/user-font-proxy.argb32.ref.png create mode 100644 test/reference/user-font-proxy.mask.argb32.ref.png create mode 100644 test/reference/user-font-proxy.mask.rgb24.ref.png create mode 100644 test/reference/user-font-proxy.rgb24.ref.png create mode 100644 test/reference/user-font-proxy.traps.ref.png create mode 100644 test/reference/user-font-rescale.argb32.ref.png create mode 100644 test/reference/user-font-rescale.mask.argb32.ref.png create mode 100644 test/reference/user-font-rescale.mask.rgb24.ref.png create mode 100644 test/reference/user-font-rescale.rgb24.ref.png create mode 100644 test/reference/user-font-rescale.traps.ref.png create mode 100644 test/reference/user-font.argb32.ref.png create mode 100644 test/reference/user-font.egl.argb32.ref.png create mode 100644 test/reference/user-font.mask.argb32.ref.png create mode 100644 test/reference/user-font.mask.rgb24.ref.png create mode 100644 test/reference/user-font.rgb24.ref.png create mode 100644 test/reference/white-in-noop.argb32.ref.png create mode 100644 test/reference/white-in-noop.egl.argb32.ref.png create mode 100644 test/reference/white-in-noop.mask.argb32.ref.png create mode 100644 test/reference/white-in-noop.mask.rgb24.ref.png create mode 100644 test/reference/white-in-noop.rgb24.ref.png create mode 100644 test/reference/world-map-fill.argb32.ref.png create mode 100644 test/reference/world-map-fill.egl.argb32.ref.png create mode 100644 test/reference/world-map-fill.mask.argb32.ref.png create mode 100644 test/reference/world-map-fill.mask.rgb24.ref.png create mode 100644 test/reference/world-map-fill.rgb24.ref.png create mode 100644 test/reference/world-map-stroke.argb32.ref.png create mode 100644 test/reference/world-map-stroke.egl.argb32.ref.png create mode 100644 test/reference/world-map-stroke.mask.argb32.ref.png create mode 100644 test/reference/world-map-stroke.mask.rgb24.ref.png create mode 100644 test/reference/world-map-stroke.rgb24.ref.png create mode 100644 test/reference/world-map.argb32.ref.png create mode 100644 test/reference/world-map.egl.argb32.ref.png create mode 100644 test/reference/world-map.mask.argb32.ref.png create mode 100644 test/reference/world-map.mask.rgb24.ref.png create mode 100644 test/reference/world-map.rgb24.ref.png create mode 100644 test/reference/xcb-huge-image-shm.argb32.ref.png create mode 100644 test/reference/xcb-huge-image-shm.egl.argb32.ref.png create mode 100644 test/reference/xcb-huge-image-shm.mask.argb32.ref.png create mode 100644 test/reference/xcb-huge-image-shm.mask.rgb24.ref.png create mode 100644 test/reference/xcb-huge-image-shm.rgb24.ref.png create mode 100644 test/reference/xcb-huge-image-shm.xlib-fallback.rgb24.ref.png create mode 100644 test/reference/xcb-huge-image-shm.xlib-window.rgb24.ref.png create mode 100644 test/reference/xcb-snapshot-assert.argb32.ref.png create mode 100644 test/reference/xcb-snapshot-assert.egl.argb32.ref.png create mode 100644 test/reference/xcb-snapshot-assert.mask.argb32.ref.png create mode 100644 test/reference/xcb-snapshot-assert.mask.rgb24.ref.png create mode 100644 test/reference/xcb-snapshot-assert.rgb24.ref.png create mode 100644 test/reference/xcb-stress-cache.argb32.ref.png create mode 100644 test/reference/xcb-stress-cache.egl.argb32.ref.png create mode 100644 test/reference/xcb-stress-cache.mask.argb32.ref.png create mode 100644 test/reference/xcb-stress-cache.mask.rgb24.ref.png create mode 100644 test/reference/xcb-stress-cache.rgb24.ref.png create mode 100644 test/reference/xcb-surface-source.egl.argb32.ref.png create mode 100644 test/reference/xcb-surface-source.mask.argb32.ref.png create mode 100644 test/reference/xcb-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/xcomposite-projection.argb32.ref.png create mode 100644 test/reference/xcomposite-projection.egl.argb32.ref.png create mode 100644 test/reference/xcomposite-projection.mask.argb32.ref.png create mode 100644 test/reference/xcomposite-projection.mask.rgb24.ref.png create mode 100644 test/reference/xcomposite-projection.rgb24.ref.png create mode 100644 test/reference/xlib-expose-event.argb32.ref.png create mode 100644 test/reference/xlib-expose-event.egl.argb32.ref.png create mode 100644 test/reference/xlib-expose-event.mask.argb32.ref.png create mode 100644 test/reference/xlib-expose-event.mask.rgb24.ref.png create mode 100644 test/reference/xlib-expose-event.rgb24.ref.png create mode 100644 test/reference/xlib-surface-source.egl.argb32.ref.png create mode 100644 test/reference/xlib-surface-source.mask.argb32.ref.png create mode 100644 test/reference/xlib-surface-source.mask.rgb24.ref.png create mode 100644 test/reference/zero-alpha.argb32.ref.png create mode 100644 test/reference/zero-alpha.egl.argb32.ref.png create mode 100644 test/reference/zero-alpha.mask.argb32.ref.png create mode 100644 test/reference/zero-alpha.mask.rgb24.ref.png create mode 100644 test/reference/zero-alpha.rgb24.ref.png create mode 100644 test/reference/zero-mask.argb32.ref.png create mode 100644 test/reference/zero-mask.egl.argb32.ref.png create mode 100644 test/reference/zero-mask.mask.argb32.ref.png create mode 100644 test/reference/zero-mask.mask.rgb24.ref.png create mode 100644 test/stride-12-image.c create mode 100644 test/text-antialias-subpixel.c create mode 100644 util/.gitignore create mode 100644 util/cairo-script/.gitignore create mode 100644 util/cairo-sphinx/.gitignore create mode 100644 util/cairo-trace/.gitignore diff --git a/Makefile.am b/Makefile.am index 7c03294..03fa352 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,6 +5,7 @@ EXTRA_DIST += \ README.win32 \ Makefile.win32 \ build/Makefile.win32.common \ + build/Makefile.win32.inform \ build/Makefile.win32.features \ build/Makefile.win32.features-h \ $(NULL) @@ -13,7 +14,7 @@ EXTRA_DIST += \ # $(srcdir)/build/Makefile.win32.features-h \ # $(NULL) -ACLOCAL_AMFLAGS = -I build +ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS} DIST_SUBDIRS = src doc util boilerplate test perf SUBDIRS = src doc util diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..3e2055d --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1393 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Creating ChangeLog files from git log: + +# We always create a ChangeLog that contains the most recent changes, and +# multiple others for changes between major releases (other than the last such +# segment that we put in 'ChangeLog'. The old ones are named +# ChangeLog.pre-X.Y where X.Y is the version number of the major release. + +# Some custom targets to make it easier to release things. +# +# To make real stable releases or devel snapshots, use either: +# make release-check +# or make release-publish +# +# To make a quick properly named (date and git hash stamped) tarball: +# make snapshot +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/build/Makefile.am.analysis \ + $(srcdir)/build/Makefile.am.changelog \ + $(srcdir)/build/Makefile.am.releasing $(srcdir)/config.h.in \ + $(top_srcdir)/build/Makefile.am.common $(top_srcdir)/configure \ + $(top_srcdir)/src/cairo-features-uninstalled.pc.in \ + $(top_srcdir)/src/cairo-uninstalled.pc.in AUTHORS COPYING \ + ChangeLog INSTALL NEWS build/compile build/config.guess \ + build/config.sub build/depcomp build/install-sh \ + build/ltmain.sh build/missing config.guess config.sub +EXTRA_PROGRAMS = +TESTS = +check_PROGRAMS = +# libpng is required for our test programs +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_1 = boilerplate test perf +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ + $(top_srcdir)/build/aclocal.compare.m4 \ + $(top_srcdir)/build/aclocal.enable.m4 \ + $(top_srcdir)/build/aclocal.float.m4 \ + $(top_srcdir)/build/aclocal.makefile.m4 \ + $(top_srcdir)/build/aclocal.pkg.m4 \ + $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \ + $(top_srcdir)/build/ltoptions.m4 \ + $(top_srcdir)/build/ltsugar.m4 \ + $(top_srcdir)/build/ltversion.m4 \ + $(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/cairo-version.h \ + $(top_srcdir)/build/configure.ac.version \ + $(top_srcdir)/build/configure.ac.tools \ + $(top_srcdir)/build/configure.ac.features \ + $(top_srcdir)/build/configure.ac.warnings \ + $(top_srcdir)/build/configure.ac.system \ + $(top_srcdir)/build/configure.ac.analysis \ + $(top_srcdir)/build/configure.ac.noversion \ + $(top_srcdir)/build/configure.ac.pthread \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = cairo-uninstalled.pc cairo-xlib-uninstalled.pc \ + cairo-xlib-xrender-uninstalled.pc cairo-xcb-uninstalled.pc \ + cairo-xlib-xcb-uninstalled.pc cairo-xcb-shm-uninstalled.pc \ + cairo-qt-uninstalled.pc cairo-quartz-uninstalled.pc \ + cairo-quartz-font-uninstalled.pc \ + cairo-quartz-image-uninstalled.pc cairo-win32-uninstalled.pc \ + cairo-win32-font-uninstalled.pc cairo-skia-uninstalled.pc \ + cairo-os2-uninstalled.pc cairo-beos-uninstalled.pc \ + cairo-drm-uninstalled.pc cairo-gallium-uninstalled.pc \ + cairo-png-uninstalled.pc cairo-gl-uninstalled.pc \ + cairo-glesv2-uninstalled.pc cairo-cogl-uninstalled.pc \ + cairo-directfb-uninstalled.pc cairo-vg-uninstalled.pc \ + cairo-egl-uninstalled.pc cairo-glx-uninstalled.pc \ + cairo-wgl-uninstalled.pc cairo-script-uninstalled.pc \ + cairo-ft-uninstalled.pc cairo-fc-uninstalled.pc \ + cairo-ps-uninstalled.pc cairo-pdf-uninstalled.pc \ + cairo-svg-uninstalled.pc cairo-tee-uninstalled.pc \ + cairo-xml-uninstalled.pc cairo-gobject-uninstalled.pc +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BFD_LIBS = @BFD_LIBS@ +CAIROBOILERPLATE_LIBS = @CAIROBOILERPLATE_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LDFLAGS = @CAIRO_LDFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_LIBTOOL_VERSION_INFO = @CAIRO_LIBTOOL_VERSION_INFO@ +CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@ +CAIRO_NONPKGCONFIG_LIBS = @CAIRO_NONPKGCONFIG_LIBS@ +CAIRO_RELEASE_STATUS = @CAIRO_RELEASE_STATUS@ +CAIRO_REQUIRES = @CAIRO_REQUIRES@ +CAIRO_TEST_MODE = @CAIRO_TEST_MODE@ +CAIRO_TEST_UNDEFINED_LDFLAGS = @CAIRO_TEST_UNDEFINED_LDFLAGS@ +CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@ +CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@ +CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@ +CAIRO_VERSION_SONUM = @CAIRO_VERSION_SONUM@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIND = @FIND@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_CONFIG = @FREETYPE_CONFIG@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ +GOBJECT_LIBS = @GOBJECT_LIBS@ +GREP = @GREP@ +GS = @GS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@ +LIBRSVG_LIBS = @LIBRSVG_LIBS@ +LIBS = @LIBS@ +LIBSPECTRE_CFLAGS = @LIBSPECTRE_CFLAGS@ +LIBSPECTRE_LIBS = @LIBSPECTRE_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LTP = @LTP@ +LTP_GENHTML = @LTP_GENHTML@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ +PKG_CONFIG = @PKG_CONFIG@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_LIBS = @POPPLER_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHLIB_EXT = @SHLIB_EXT@ +SHM_LIBS = @SHM_LIBS@ +SHTOOL = @SHTOOL@ +STRIP = @STRIP@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VERSION = @VERSION@ +XARGS = @XARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cogl_CFLAGS = @cogl_CFLAGS@ +cogl_LIBS = @cogl_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +directfb_CFLAGS = @directfb_CFLAGS@ +directfb_LIBS = @directfb_LIBS@ +docdir = @docdir@ +drm_CFLAGS = @drm_CFLAGS@ +drm_LIBS = @drm_LIBS@ +dvidir = @dvidir@ +egl_CFLAGS = @egl_CFLAGS@ +egl_LIBS = @egl_LIBS@ +exec_prefix = @exec_prefix@ +gallium_DIR = @gallium_DIR@ +gl_CFLAGS = @gl_CFLAGS@ +gl_LIBS = @gl_LIBS@ +glesv2_CFLAGS = @glesv2_CFLAGS@ +glesv2_LIBS = @glesv2_LIBS@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +gtk_CFLAGS = @gtk_CFLAGS@ +gtk_LIBS = @gtk_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mesa_DIR = @mesa_DIR@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pixman_CFLAGS = @pixman_CFLAGS@ +pixman_LIBS = @pixman_LIBS@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +png_REQUIRES = @png_REQUIRES@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_CFLAGS = @pthread_CFLAGS@ +pthread_LIBS = @pthread_LIBS@ +qt_CFLAGS = @qt_CFLAGS@ +qt_LIBS = @qt_LIBS@ +real_pthread_CFLAGS = @real_pthread_CFLAGS@ +real_pthread_LIBS = @real_pthread_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +shm_LIBS = @shm_LIBS@ +skia_DIR = @skia_DIR@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xcb_CFLAGS = @xcb_CFLAGS@ +xcb_LIBS = @xcb_LIBS@ +xcb_shm_CFLAGS = @xcb_shm_CFLAGS@ +xcb_shm_LIBS = @xcb_shm_LIBS@ +xlib_CFLAGS = @xlib_CFLAGS@ +xlib_LIBS = @xlib_LIBS@ +xlib_xcb_CFLAGS = @xlib_xcb_CFLAGS@ +xlib_xcb_LIBS = @xlib_xcb_LIBS@ +xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@ +xlib_xrender_LIBS = @xlib_xrender_LIBS@ +BUILT_SOURCES = +CLEANFILES = *.i *.s *.gch $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) \ + $(check_PROGRAMS) +DISTCLEANFILES = $(BUILT_SOURCES) config.cache \ + $(srcdir)/ChangeLog.cache-* ChangeLog.cache-* +EXTRA_DIST = KNOWN_ISSUES README.win32 Makefile.win32 \ + build/Makefile.win32.common build/Makefile.win32.inform \ + build/Makefile.win32.features build/Makefile.win32.features-h \ + $(NULL) AUTHORS BIBLIOGRAPHY BUGS CODING_STYLE COPYING \ + COPYING-LGPL-2.1 COPYING-MPL-1.1 HACKING INSTALL NEWS \ + PORTING_GUIDE README RELEASING autogen.sh cairo-version.h \ + $(NULL) +EXTRA_LTLIBRARIES = +MAINTAINERCLEANFILES = Makefile.in $(srcdir)/aclocal.m4 \ + $(srcdir)/autoscan.log $(srcdir)/build/compile \ + $(srcdir)/build/config.guess $(srcdir)/build/config.sub \ + $(srcdir)/build/depcomp $(srcdir)/build/install-sh \ + $(srcdir)/build/ltmain.sh $(srcdir)/build/missing \ + $(srcdir)/build/mkinstalldirs $(srcdir)/config.h.in \ + $(srcdir)/configure.scan $(NULL) $(srcdir)/ChangeLog \ + $(srcdir)/ChangeLog.pre-* +#MAINTAINERCLEANFILES += \ +# $(srcdir)/build/Makefile.win32.features \ +# $(srcdir)/build/Makefile.win32.features-h \ +# $(NULL) +ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS} +DIST_SUBDIRS = src doc util boilerplate test perf +SUBDIRS = src doc util $(am__append_1) +DISTCHECK_CONFIGURE_FLAGS = \ + --enable-gtk-doc \ + --enable-test-surfaces \ + --enable-full-testing \ + $(NULL) + +CURR_CHANGELOG_VERSION = $(CAIRO_VERSION_MAJOR).$$(echo "($(CAIRO_VERSION_MINOR)+1)/2*2" | bc) +# examines $version +PREV_CHANGELOG_VERSION = $$(if test "x$$(echo "($$version-0.1)*2/2"|bc)" = "x$$(echo "$$version*2/2"|bc)"; \ + then echo "$$version-$$(echo "$$version" | sed 's/[0-9]/0/g;s/[0-9]$$/2/')"; \ + else echo "$$version-1.0"; \ + fi | bc | sed 's/[.]0*/./;s/^0[.]\?$$/initial/;s/[.]$$/.0/') + +CHANGELOGS = ChangeLog \ + `version=$(CURR_CHANGELOG_VERSION); \ + version=$(PREV_CHANGELOG_VERSION); \ + while test "x$$version" != xinitial; do \ + echo ChangeLog.pre-$$version; \ + version=$(PREV_CHANGELOG_VERSION); \ + done` + +TAR_OPTIONS = --owner=0 --group=0 +RELEASE_OR_SNAPSHOT = $$(if test "x$(CAIRO_VERSION_MINOR)" = "x$$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc)" ; then echo release; else echo snapshot; fi) +RELEASE_UPLOAD_HOST = cairographics.org +RELEASE_UPLOAD_BASE = /srv/cairo.freedesktop.org/www +RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/$(RELEASE_OR_SNAPSHOT)s +RELEASE_URL_BASE = http://cairographics.org/$(RELEASE_OR_SNAPSHOT)s +RELEASE_ANNOUNCE_LIST = cairo-announce@cairographics.org (and CC gnome-announce-list@gnome.org) +MANUAL_VERSIONED = manual-$(VERSION) +MANUAL_TAR_FILE = $(MANUAL_VERSIONED).tar.gz +MANUAL_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE) +tar_file = $(PACKAGE)-$(VERSION).tar.xz +sha1_file = $(tar_file).sha1 +gpg_file = $(sha1_file).asc + +# Win32 package zipfiles +@OS_WIN32_TRUE@runtime_zip_file = $(PACKAGE)-$(VERSION).zip +@OS_WIN32_TRUE@developer_zip_file = $(PACKAGE)-dev-$(VERSION).zip +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/Makefile.am.common $(srcdir)/build/Makefile.am.changelog $(srcdir)/build/Makefile.am.releasing $(srcdir)/build/Makefile.am.analysis $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +cairo-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xlib-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xlib-xrender-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xcb-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xlib-xcb-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xcb-shm-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-qt-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-quartz-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-quartz-font-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-quartz-image-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-win32-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-win32-font-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-skia-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-os2-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-beos-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-drm-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-gallium-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-png-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-gl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-glesv2-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-cogl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-directfb-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-vg-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-egl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-glx-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-wgl-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-script-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-ft-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-fc-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-ps-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-pdf-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-svg-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-tee-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-xml-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +cairo-gobject-uninstalled.pc: $(top_builddir)/config.status $(top_srcdir)/src/cairo-features-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + echo "$$grn$$dashes"; \ + else \ + echo "$$red$$dashes"; \ + fi; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes$$std"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +@CAIRO_HAS_LCOV_FALSE@html-local: +clean: clean-recursive + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-local distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: html-local + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + check-am ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool ctags \ + ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \ + dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ + distclean distclean-generic distclean-hdr distclean-libtool \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am html-local info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +configure: cairo-version.h + +doc: + cd doc && $(MAKE) $(AM_MAKEFLAGS) $@ +test retest recheck: all + cd test && $(MAKE) $(AM_MAKEFLAGS) $@ +perf: all + cd perf && $(MAKE) $(AM_MAKEFLAGS) $@ +check-valgrind: all + cd test && $(MAKE) $(AM_MAKEFLAGS) check-valgrind + cd perf && $(MAKE) $(AM_MAKEFLAGS) check-valgrind +.PHONY: doc test retest recheck perf check-valgrind + +changelogs: + @$(MAKE) $(AM_MAKEFLAGS) $(CHANGELOGS) + +dist-hook: changelogs + changelogs="$(CHANGELOGS)"; \ + for changelog in $$changelogs; do \ + cp $(srcdir)/$$changelog $(distdir)/ 2>/dev/null || \ + cp $$changelog $(distdir)/; \ + done + +$(srcdir)/ChangeLog: + @if test -d "$(srcdir)/.git"; then \ + version=$(CURR_CHANGELOG_VERSION); \ + prev=$(PREV_CHANGELOG_VERSION).0; \ + nearest_tag=`git describe | sed 's/-.*//'`; \ + before=$(srcdir)/ChangeLog.cache-$$prev..$$nearest_tag; \ + after=$(srcdir)/ChangeLog.cache-$$nearest_tag..; \ + $(MAKE) $(AM_MAKEFLAGS) $$before $$after && \ + echo Creating $@ && \ + { echo '# Generated by configure. Do not edit.'; echo; \ + cat $$after; echo; cat $$before; } > $@; \ + else \ + test -f $@ || \ + (echo A git checkout is required to generate $@ >&2 && \ + echo A git checkout is required to generate this file >> $@); \ + fi + +ChangeLog.cache-*..: .git + +ChangeLog%: $(srcdir)/ChangeLog% + +$(srcdir)/ChangeLog.cache-% $(srcdir)/ChangeLog.pre-%: + @echo Creating $@ + @if test -d "$(srcdir)/.git"; then \ + (cd "$(srcdir)" && \ + version=$$(echo "$@" | sed 's/.*ChangeLog\([.].*-\)\?//'); \ + if echo "$@" | grep -q '^ChangeLog[.]cache'; then \ + spec=$$version; \ + else \ + to=$$version; \ + test "x$$version" = x && version=$(CURR_CHANGELOG_VERSION); \ + from=$(PREV_CHANGELOG_VERSION); \ + test "x$$to" = x || to=$$to.0; \ + test "x$$from" = xinitial || from=$$from.0; \ + spec=$$from..$$to; \ + fi; \ + $(top_srcdir)/build/missing --run git log --stat "$$spec") > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate $@, your $@ may be outdated >&2); \ + else \ + echo A git checkout is required to generate $@ >&2; \ + fi + +.PHONY: changelogs ChangeLog $(srcdir)/ChangeLog + +dist-hook: dist-clear-sticky-bits + +# Clean up any sticky bits we may inherit from parent dir +dist-clear-sticky-bits: + chmod -R a-s $(distdir) + +snapshot: + distdir="$(distdir)-`date '+%Y%m%d'`"; \ + test -d "$(srcdir)/.git" && distdir=$$distdir-`cd "$(srcdir)" && git rev-parse HEAD | cut -c 1-6`; \ + TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distdir="$$distdir" snapshot-dist + +snapshot-dist: dist + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' + +$(sha1_file): $(tar_file) + sha1sum $^ > $@ + +$(gpg_file): $(sha1_file) + @echo "Please enter your GPG password to sign the checksum." + gpg --armor --sign $^ + +release-verify-sane-changelogs: changelogs + @echo -n "Checking that the ChangeLog files are sane..." + @if grep -q "is required to generate" $(CHANGELOGS); then \ + (echo "Ouch." && echo "Some of the ChangeLogs are not generated correctly." \ + && echo "Remove ChangeLog* and make changelogs" \ + && false); else :; fi + @echo "Good." + +release-verify-sane-tests: + @echo "Checking that the test suite is sane..." + @cd test && $(MAKE) $(AM_MAKEFLAGS) release-verify-sane-tests + +release-verify-even-micro: + @echo -n "Checking that $(VERSION) has an even micro component..." + @test "$(CAIRO_VERSION_MICRO)" = "`echo $(CAIRO_VERSION_MICRO)/2*2 | bc`" \ + || (echo "Ouch." && echo "The version micro component '$(CAIRO_VERSION_MICRO)' is not an even number." \ + && echo "The version in configure.in must be incremented before a new release." \ + && false) + @echo "Good." + +release-verify-newer: + @echo -n "Checking that no $(VERSION) release already exists..." + @ssh $(RELEASE_UPLOAD_HOST) test ! -e $(RELEASE_UPLOAD_DIR)/$(tar_file) \ + || (echo "Ouch." && echo "Found: $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)/$(tar_file)" \ + && echo "Are you sure you have an updated checkout?" \ + && echo "This should never happen." \ + && false) + @echo "Good." + +release-remove-old: + $(RM) $(tar_file) $(sha1_file) $(gpg_file) + +# Strict ordering enforced for parallel make to work +release-check: \ + release-verify-even-micro \ + release-verify-sane-changelogs \ + release-verify-sane-tests \ + release-verify-newer \ + $(NULL) + $(MAKE) $(AM_MAKEFLAGS) release-remove-old + TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distcheck + +release-upload: $(tar_file) $(sha1_file) $(gpg_file) + mkdir -p releases + scp $(tar_file) $(sha1_file) $(gpg_file) $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR) + mv $(tar_file) $(sha1_file) $(gpg_file) releases + ssh $(RELEASE_UPLOAD_HOST) "rm -f $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(tar_file) $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-$(VERSION)" + git tag -s -m "cairo $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) release" $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) + +release-publish-message: releases/$(sha1_file) + @echo "Please follow the instructions in RELEASING to push stuff out and" + @echo "send out the announcement mails. Here is the excerpt you need:" + @echo "" + @echo "Subject: $(PACKAGE) $(RELEASE_OR_SNAPSHOT) $(VERSION) now available" + @echo "" + @echo "============================== CUT HERE ==============================" + @echo "A new $(PACKAGE) $(RELEASE_OR_SNAPSHOT) $(VERSION) is now available from:" + @echo "" + @echo " $(RELEASE_URL_BASE)/$(tar_file)" + @echo "" + @echo " which can be verified with:" + @echo "" + @echo " $(RELEASE_URL_BASE)/$(sha1_file)" + @echo -n " " + @cat releases/$(sha1_file) + @echo "" + @echo " $(RELEASE_URL_BASE)/$(gpg_file)" + @echo " (signed by `getent passwd "$$USER" | cut -d: -f 5 | cut -d, -f 1`)" + @echo "" + @echo " Additionally, a git clone of the source tree:" + @echo "" + @echo " git clone git://git.cairographics.org/git/cairo" + @echo "" + @echo " will include a signed $(VERSION) tag which points to a commit named:" + @echo " `git cat-file tag $(VERSION) | grep ^object | sed -e 's,object ,,'`" + @echo "" + @echo " which can be verified with:" + @echo " git verify-tag $(VERSION)" + @echo "" + @echo " and can be checked out with a command such as:" + @echo " git checkout -b build $(VERSION)" + @echo "" + @echo "============================== CUT HERE ==============================" + +doc-publish-versioned: doc + rm -rf ./$(MANUAL_VERSIONED) + cp -a doc/public/html $(MANUAL_VERSIONED) + tar czf $(MANUAL_TAR_FILE) $(MANUAL_VERSIONED) + scp $(MANUAL_TAR_FILE) $(RELEASE_UPLOAD_HOST):$(MANUAL_UPLOAD_DIR) + ssh $(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && tar xzf $(MANUAL_TAR_FILE) && ln -sf $(MANUAL_TAR_FILE) cairo-$(MANUAL_TAR_FILE)" + +doc-publish-symlinks: + ssh $(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && rm -f manual && ln -s $(MANUAL_VERSIONED) manual && ln -sf $(MANUAL_TAR_FILE) cairo-manual.tar.gz" + +doc-publish: + $(MAKE) $(AM_MAKEFLAGS) doc-publish-versioned + @if test "$(RELEASE_OR_SNAPSHOT)" = release; then $(MAKE) $(AM_MAKEFLAGS) doc-publish-symlinks; fi + +# Strict ordering enforced for parallel make to work +release-publish: release-check + $(MAKE) $(AM_MAKEFLAGS) release-upload + $(MAKE) $(AM_MAKEFLAGS) doc-publish + $(MAKE) $(AM_MAKEFLAGS) release-publish-message + +@OS_WIN32_TRUE@$(runtime_zip_file): install +@OS_WIN32_TRUE@ -$(RM) $@ +@OS_WIN32_TRUE@ pwd=`pwd`; cd $(prefix); \ +@OS_WIN32_TRUE@ zip "$$pwd"/$@ bin/libcairo-$(CAIRO_VERSION_SONUM).dll + +@OS_WIN32_TRUE@$(developer_zip_file): install +@OS_WIN32_TRUE@ -$(RM) $@ +@OS_WIN32_TRUE@ pwd=`pwd`; cd $(prefix); \ +@OS_WIN32_TRUE@ zip -r "$$pwd"/$@ include/cairo lib/libcairo.dll.a lib/cairo.lib lib/pkgconfig/cairo.pc lib/pkgconfig/cairo-*.pc share/gtk-doc/html/cairo + +@OS_WIN32_TRUE@zips: $(runtime_zip_file) $(developer_zip_file) + +.PHONY: \ + dist-clear-sticky-bits \ + doc-publish \ + doc-publish-symlinks \ + doc-publish-versioned \ + release-check \ + release-publish \ + release-publish-message \ + release-remove-old \ + release-upload \ + release-verify-even-micro \ + release-verify-newer \ + release-verify-sane-changelogs \ + release-verify-sane-tests \ + snapshot \ + snapshot-dist \ + $(NULL) +# use recursive makes in order to ignore errors during check/perf +@CAIRO_HAS_LCOV_TRUE@lcov: +@CAIRO_HAS_LCOV_TRUE@ -$(MAKE) $(AM_MAKEFLAGS) check +@CAIRO_HAS_LCOV_TRUE@ $(MAKE) $(AM_MAKEFLAGS) genlcov +@CAIRO_HAS_LCOV_TRUE@lcov-perf: +@CAIRO_HAS_LCOV_TRUE@ -$(MAKE) $(AM_MAKEFLAGS) perf +@CAIRO_HAS_LCOV_TRUE@ $(MAKE) $(AM_MAKEFLAGS) genlcov + +# we have to massage the lcov.info file slightly to hide the effect of libtool +# placing the objects files in the .libs/ directory separate from the *.c +@CAIRO_HAS_LCOV_TRUE@genlcov: +@CAIRO_HAS_LCOV_TRUE@ $(LTP) --directory $(top_builddir) --path $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_TEST --no-checksum +@CAIRO_HAS_LCOV_TRUE@ $(SED) -e 's#.libs/##' \ +@CAIRO_HAS_LCOV_TRUE@ -e 's#boilerplate/src#src#' \ +@CAIRO_HAS_LCOV_TRUE@ -e 's#$(shell pwd)#$(shell cd $(top_srcdir) && pwd)#' \ +@CAIRO_HAS_LCOV_TRUE@ < cairo-lcov.info > cairo-lcov.info.tmp +@CAIRO_HAS_LCOV_TRUE@ LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory cairo-lcov --title "Cairo Code Coverage" --show-details cairo-lcov.info.tmp +@CAIRO_HAS_LCOV_TRUE@ $(RM) cairo-lcov.info.tmp + +@CAIRO_HAS_LCOV_TRUE@html-local: lcov +@CAIRO_HAS_LCOV_FALSE@lcov lcov-perf genlcov: +@CAIRO_HAS_LCOV_FALSE@ @echo You need to configure Cairo with support for gcov enabled. +@CAIRO_HAS_LCOV_FALSE@ @echo e.g, ./configure --enable-gcov + +lcov-clean: +@CAIRO_HAS_LCOV_TRUE@ -$(LTP) --directory $(top_builddir) -z + -$(RM) -r cairo-lcov.info cairo-lcov + -$(FIND) -name '*.gcda' -print | $(XARGS) $(RM) + +distclean-local: lcov-clean + +.PHONY: lcov lcov-perf genlcov lcov-clean + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Makefile.win32 b/Makefile.win32 index f475246..fbad7f3 100644 --- a/Makefile.win32 +++ b/Makefile.win32 @@ -1,8 +1,10 @@ +default: all + # Do not edit this file. # Edit build/Makefile.win32.common for customization top_srcdir = . -include $(top_srcdir)/build/Makefile.win32.common +include $(top_srcdir)/build/Makefile.win32.inform all: cairo @@ -14,3 +16,9 @@ perf: inform test: inform @$(MAKE) -C test -f Makefile.win32 test + +clean: + @$(MAKE) -C boilerplate -f Makefile.win32 clean + @$(MAKE) -C perf -f Makefile.win32 clean + @$(MAKE) -C src -f Makefile.win32 clean + @$(MAKE) -C test -f Makefile.win32 clean diff --git a/NEWS b/NEWS index 8ec1577..7f1e5cc 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,211 @@ +Release 1.12.2 (2012-04-29 Chris Wilson ) +=================================================================== +After such a long gestation period for the release of Cairo 1.12, we +inevitably accumulated a few bugs that were flushed out by broadening the +test base. Thanks to everybody who tried the release, apologies to any one +unfortunate enough to encounter a bug and many thanks for reporting it. As +a result Adrian Johnson, Alexandros Frantzis, Andrea Canciani, Kalev +Lember, Maarten Bosman, Marcus Meissner, Nis Martensen and Uli Schlachter +have squashed many more bugs and improved the documentation. I would +strongly recommend everyone to upgrade to cairo-1.12.2. +-Chris + +Bug fixes +--------- + + Allow applications to create 0x0 xlib surfaces, such as used by LibreOffice. + https://bugs.freedesktop.org/show_bug.cgi?id=49118 + + Trim composite extents for SOURCE/CLEAR operators to the mask. + + Use fallback fonts in PDF for unhandled computed glyph widths + https://bugs.freedesktop.org/show_bug.cgi?id=48349 + + Handle snapshots of recording surfaces for analysing pattern extents. + Fixes a regression of reporting the PDF bounding box as being the page size. + + Fix allocation size for PDF pattern ids. + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49089 + + Fix emission of rectilinear dashed segments, with and without scaling, and + application of degenerate line joins. + + Clamp unbounded fixup polygons to the clip extents. + + Prevent infinite loop due to rounding errors whilst incrementing along dashes. + + Prevent overflow for inline a8 span filling. + + Miscellaneous build fixes for Cygwin on Windows and Solaris. + +Release 1.12.0 (2012-03-23 Chris Wilson ) +=================================================================== +It's taken over 18 months, but the wait is finally over. A new cairo release! +We are pleased to annouce a new stable release of Cairo that brings many +new features and performance improvements, all whilst maintaining +compatibility with cairo-1.0 and all releases since. We recommend anyone +using a previous release of Cairo to upgrade to 1.12.0. + +The major feature of this release is the introduction of a new procedural +pattern; the mesh gradient. This, albeit complex, gradient is constructed +from a set of cubic Bezier patches and is a superset of all other gradient +surfaces which allows for the construction of incredibily detailed patterns. +In PDF parlance, the mesh gradient corresponds with type 7 patterns. Many +thanks to Andrea Canciani for bringing this to Cairo, and for his work on +making gradient handling robust. + +Not content with just adding another procedural pattern, Cairo 1.12 also +adds new API to create a callback pattern, +cairo_pattern_create_raster_source, that allows the application to +provide the pixel data for the region of interest at the time of +rendering. This can be used for instance, by an application to decode +compressed images on demand and to keep a cache of those decompressed +images, independently of Cairo. When combined with the recording +surface, it should form a useful basis for a deferred renderer. + +With the release of cairo-1.12, we also introduce a new supported +backend for interoperating with X using XCB. Uli Schlachter, also +maintainer of awesome and contributor to libxcb, has volunteered to +maintain cairo-xcb for us. Thanks Uli! + +For cairo-1.12, we have also added some common API to address any +surface as an image and so allow direct modification of the raster data. +Previously, only the Quartz and Win32 backends supported a very narrow +interface to allow for efficient pixel upload. Now with +cairo_surface_create_similar_image, cairo_surface_map_to_image, and +cairo_surface_unmap_image, Cairo exports a consistent method for +treating those surfaces as an image and so allow modification inplace. +These are the same routines used internally, and should support +efficient transfer or direct mapping of the target surfaces as +applicable. + +Another focus over the past year has been to address many performance +issues, without sacrificing the composition model. To accomplish the +goal, once again the rasterisation pipeline was overhauled and made +explicit, giving the backends the freedom to implement their own +specific pipeline whilst also providing a library of common routines +from which to build the pipeline. For instance, this allows the image +backend and the gl backend to composite scan line primitives inplace, +and to then implement custom fallbacks to catch the corner cases that do +not map onto their fastest paths. Similarly, this allows for the Xlib +backend to implement trapezoidation without compromising the other +backends, yet still allow for the pipeline to be used elsewhere for +testing and fallbacks. Clipping was once again overhauled, so that the +common cases for the raster pipelines could be captured and processed +with fast paths with the emphasis on performing geometric clipping to +reduce the frequency of using multi-pass clipmasks. Stroking was made +faster, both by providing specialised fast-paths for simple, yet frequent, +cases (such as stroking around a rectangle) and by reducing the number +of edges generated by the general stroker. + +As part of the focus on performance, Cairo 1.12 introduces some +antialias hints (NONE,FAST, GOOD, BEST) that are interpolated by the +raserisers to fine tune their performance versus quality. Cairo 1.12 +also introduces a new observation architecture, +cairo_surface_observer_t, which can be used to analyse the amount of +time consumed by drawing commands and help identify inefficiencies in +both Cairo and the application. + +Last, but by no means least, the OpenGL backend has seen significant +work including the port to GLESv2 and the exploitation of advanced +hardware features. Interesting times. + +As always, I would like to thank everyone who contributed to Cairo, +not only through writing code, but also submitting documentation, bug +reports, suggestions and generally having fun with Cairo! In particular +though this release could not have happened without the efforts of +Adrian Johnson, Alexandros Frantiz, Andrea Canicani, Martin Robinson, +Nis Martensen, and Uli Schlachter. Thanks. +-Chris + +Snapshot 1.11.4 (2012-13-12) +============================ +The cairo community is pleased to finally announce the long aniticpated +release candidate for 1.12, 1.11.4, of the cairo graphics library. This +is the first major update to cairo in over a year and brings a large +number of new features; undoubtably a few bugs as well. + +While many people have contributed and have helped to test the release, +providing feedback on 1.10 and suggesting improvements, this release +is the result of a few persevering souls who deserve recognition for their +outstanding contributions: Andrea Canciani (all round bug fixing, +performance tuning and master of the gradients), Adrian Johnson (PDF +supremo) and Uli Schlachter (who stepped forward as maintainer for the +XCB backend). + +Major additions since 1.11.2: + + * cairo_surface_map_to_image API for pixel level access to any surface + + * New antialias hints to control the trade-off between speed and quality + + * A callback pattern, cairo_pattern_create_raster_source, for lazy + decoding of image data. + + * cairo_surface_observer_t, a new type of surface to gather performance + statistics + + * XCB as a supported backend + + * A rewritten compositor pipeline for performance improvements for, but not + limited to, the xlib and image backends. + From ION and PineView through to SandyBridge, every machine I have shows + across the board performance improvement on the cairo-traces: + + i5-2520m gnome-system-monitor: 5.97x speedup + pnv gnome-system-monitor: 4.86x speedup + i5-2520m firefox-asteroids: 4.66x speedup + pnv firefox-asteroids: 4.43x speedup + image firefox-canvas: 3.82x speedup + i5-2520m firefox-canvas-alpha: 3.49x speedup + image firefox-asteroids: 2.87x speedup + pnv firefox-talos-svg: 2.83x speedup + ion grads-heat-map: 2.75x speedup + pnv firefox-canvas-alpha: 2.66x speedup + image gnome-system-monitor: 2.66x speedup + image swfdec-giant-steps: 2.46x speedup + image firefox-canvas-alpha: 2.14x speedup + i5-2520m firefox-talos-svg: 2.03x speedup + image grads-heat-map: 2.02x speedup + ion gnome-system-monitor: 2.00x speedup + pnv firefox-particles: 1.99x speedup + i5-2520m grads-heat-map: 1.96x speedup + pnv firefox-canvas: 1.92x speedup + ion firefox-particles: 1.80x speedup + image poppler-reseau: 1.77x speedup + pnv xfce4-terminal-a1: 1.72x speedup + image firefox-talos-svg: 1.65x speedup + pnv grads-heat-map: 1.63x speedup + i5-2520m firefox-canvas: 1.63x speedup + pnv swfdec-youtube: 1.62x speedup + image ocitysmap: 1.59x speedup + i5-2520m firefox-fishbowl: 1.56x speedup + i5-2520m poppler-reseau: 1.50x speedup + i5-2520m evolution: 1.50x speedup + i5-2520m midori-zoomed: 1.43x speedup + pnv firefox-planet-gnome: 1.42x speedup + i5-2520m firefox-talos-gfx: 1.41x speedup + i5-2520m gvim: 1.41x speedup + pnv ocitysmap: 1.37x speedup + image poppler: 1.31x speedup + ion firefox-canvas-alpha: 1.35x speedup + ion firefox-talos-svg: 1.34x speedup + i5-2520m ocitysmap: 1.32x speedup + pnv poppler-reseau: 1.31x speedup + i5-2520m firefox-planet-gnome: 1.31x speedup + pnv firefox-fishbowl: 1.30x speedup + pnv evolution: 1.28x speedup + image gvim: 1.27x speedup + i5-2520m swfdec-youtube: 1.25x speedup + pnv gnome-terminal-vim: 1.27x speedup + pnv gvim: 1.25x speedup + image firefox-planet-gnome: 1.25x speedup + image swfdec-youtube: 1.25x speedup + ... + +And a plethora of minor improvements everywhere! +-Chris + Snapshot 1.11.2 (2011-01-23) =========================== diff --git a/README b/README index ee7bd50..67ce4f5 100644 --- a/README +++ b/README @@ -5,9 +5,9 @@ What is cairo ============= Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window -System, quartz, win32, and image buffers, as well as PDF, PostScript, -and SVG file output. Experimental backends include OpenGL, XCB, BeOS, -OS/2, and DirectFB. +System (via both Xlib and XCB), quartz, win32, and image buffers, +as well as PDF, PostScript, and SVG file output. Experimental backends +include OpenGL, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available @@ -125,6 +125,10 @@ Supported, "platform" surface backends ------------- Microsoft Windows 2000 or newer[*]. + xcb backend + ----------- + XCB http://xcb.freedesktop.org + Font backends (required to have at least one) --------------------------------------------- freetype font backend @@ -163,10 +167,6 @@ Font backends (required to have at least one) Experimental surface backends ----------------------------- - xcb backend - ----------- - XCB http://xcb.freedesktop.org - beos backend ------------ No dependencies in itself other than an installed BeOS system, but cairo diff --git a/TC/_export_env.sh b/TC/_export_env.sh new file mode 100755 index 0000000..5b67c3b --- /dev/null +++ b/TC/_export_env.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +. ./config +export TET_INSTALL_PATH=$TET_INSTALL_HOST_PATH # tetware root path +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target # tetware target path +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH +export CAIRO_TC_ROOT_PATH=/mnt/nfs/DTS/cairo/test diff --git a/TC/_export_target_env.sh b/TC/_export_target_env.sh new file mode 100755 index 0000000..5ddaa53 --- /dev/null +++ b/TC/_export_target_env.sh @@ -0,0 +1,7 @@ +#!/bin/sh +. ./config +export TET_INSTALL_PATH=$TET_INSTALL_TARGET_PATH # path to path +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH diff --git a/TC/build.sh b/TC/build.sh new file mode 100755 index 0000000..72aad6c --- /dev/null +++ b/TC/build.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +. ./_export_env.sh # setting environment variables + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -c -p ./ +tcc -b -j $JOURNAL_RESULT -p ./ +grw -c 7 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/clean.sh b/TC/clean.sh new file mode 100755 index 0000000..29743e0 --- /dev/null +++ b/TC/clean.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +. ./_export_env.sh # setting environment variables + +export TET_SUITE_ROOT=`pwd` +RESULT_DIR=results + +tcc -c -p ./ # executing tcc, with clean option (-c) +rm -r $RESULT_DIR +rm -r tet_tmp_dir +rm testcase/tet_captured diff --git a/TC/config b/TC/config new file mode 100755 index 0000000..e8c668e --- /dev/null +++ b/TC/config @@ -0,0 +1,2 @@ +TET_INSTALL_HOST_PATH=/view/DTS/TETware +TET_INSTALL_TARGET_PATH=/mnt/nfs/DTS/TETware diff --git a/TC/execute.sh b/TC/execute.sh new file mode 100755 index 0000000..a4f6095 --- /dev/null +++ b/TC/execute.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +. ./_export_target_env.sh # setting environment variables + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -e -j $JOURNAL_RESULT -p ./ +grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/perf/Makefile b/TC/perf/Makefile new file mode 100644 index 0000000..bc9ebc5 --- /dev/null +++ b/TC/perf/Makefile @@ -0,0 +1,15 @@ +CC = gcc + +all : fill stroke image + +fill: main.c common.c fill.c + $(CC) main.c common.c fill.c -g -o fill `pkg-config --cflags --libs cairo elementary opengl-es-20` -lecore_x -levas -lecore + +stroke: main.c common.c stroke.c + $(CC) main.c common.c stroke.c -g -o stroke `pkg-config --cflags --libs cairo elementary opengl-es-20` -lecore_x -levas -lecore + +image: main.c common.c image.c + $(CC) main.c common.c image.c -g -o image `pkg-config --cflags --libs cairo elementary opengl-es-20` -lecore_x -levas -lecore + +clean: + rm -rf *.0 fill stroke image diff --git a/TC/perf/common.c b/TC/perf/common.c new file mode 100755 index 0000000..8b2818b --- /dev/null +++ b/TC/perf/common.c @@ -0,0 +1,65 @@ +/* + * Cairo Performance Test Framework + * (c) 2012 Samsung Electronics, Inc. + * All rights reserved. + * + * Measures rendering performance for image, gl backends + * + * This software is a confidential and proprietary information of Samsung + * Electronics, Inc. ("Confidential Information"). You shall not disclose such + * Confidential Information and shall use it only in accordance with the terms + * of the license agreement you entered into with Samsung Electronics. + * + * Author: Dongyeon Kim + */ + +#include "common.h" + +void clearCairo(cairo_t *cr, double width, double height) +{ + cairo_set_source_rgba(cr, 1, 1, 1, 1); + cairo_rectangle(cr, 0.0, 0.0, width, height); + cairo_fill(cr); +} + +void cairoSquare(cairo_t *cr, double x, double y, double length) +{ + cairo_rectangle(cr, x, y, length, length); + cairo_fill(cr); +} + +void cairoSquareStroke(cairo_t *cr, double x, double y, double length) +{ + cairo_rectangle(cr, x, y, length, length); + cairo_stroke(cr); +} + +void cairoCircle(cairo_t *cr, double x, double y, double radius) +{ + cairo_arc(cr, x, y, radius, 0.0, 2.0 * M_PI); + cairo_fill(cr); +} + +void cairoCircleStroke(cairo_t *cr, double x, double y, double radius) +{ + cairo_arc(cr, x, y, radius, 0.0, 2.0 * M_PI); + cairo_stroke(cr); +} + +void cairoTriangle(cairo_t *cr, double x, double y, double side) +{ + cairo_move_to(cr, x, y); + cairo_line_to(cr, x + side, y + side); + cairo_line_to(cr, x, y + side); + cairo_close_path(cr); + cairo_fill(cr); +} + +void cairoTriangleStroke(cairo_t *cr, double x, double y, double side) +{ + cairo_move_to(cr, x, y); + cairo_line_to(cr, x + side, y); + cairo_line_to(cr, x, y + side); + cairo_close_path(cr); + cairo_stroke(cr); +} diff --git a/TC/perf/common.h b/TC/perf/common.h new file mode 100755 index 0000000..647a6d7 --- /dev/null +++ b/TC/perf/common.h @@ -0,0 +1,28 @@ +/* + * Cairo Performance Test Framework + * (c) 2012 Samsung Electronics, Inc. + * All rights reserved. + * + * Measures rendering performance for image, gl backends + * + * This software is a confidential and proprietary information of Samsung + * Electronics, Inc. ("Confidential Information"). You shall not disclose such + * Confidential Information and shall use it only in accordance with the terms + * of the license agreement you entered into with Samsung Electronics. + * + * Author: Dongyeon Kim + */ + +#include +#include +#include +#include + +void clearCairo(cairo_t *cr, double width, double height); +void cairoSquare(cairo_t *cr, double x, double y, double length); +void cairoSquareStroke(cairo_t *cr, double x, double y, double length); +void cairoCircle(cairo_t *cr, double x, double y, double radius); +void cairoCircleStroke(cairo_t *cr, double x, double y, double radius); +void cairoTriangle(cairo_t *cr, double x, double y, double side); +void cairoTriangleStroke(cairo_t *cr, double x, double y, double side); + diff --git a/TC/perf/fill b/TC/perf/fill new file mode 100755 index 0000000000000000000000000000000000000000..c44d12f35f3a2fcc628b5723cc146a975426f446 GIT binary patch literal 37487 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 + */ + +#include "common.h" + +#define RENDER_LOOP 100 + +extern int WIDTH, HEIGHT; + +int preRender(cairo_t *cr) +{ + return 1; +} + +int render(cairo_t *cr) +{ + int i; + double r, g, b, a; + + clearCairo(cr, WIDTH, HEIGHT); + cairo_set_operator(cr, CAIRO_OPERATOR_OVER); + + for(i = 0; i < RENDER_LOOP; i++) + { + r = drand48(); + g = drand48(); + b = drand48(); + a = drand48(); + float x = drand48() * WIDTH; + float y = drand48() * HEIGHT; + float side = drand48() * 300; + int shape = drand48() * 3; + + cairo_set_source_rgba(cr, r, g, b, a); + + if(shape == 0) + cairoSquare(cr, x, y, side); + else if(shape == 1) + cairoCircle(cr, x, y, side/2); + else + cairoTriangle(cr, x, y, side); + } + + return 1; +} + +int postRender(cairo_t *cr) +{ + return 1; +} + diff --git a/TC/perf/image b/TC/perf/image new file mode 100755 index 0000000000000000000000000000000000000000..5df743dcc2e46ec77bb3daca8434021f4b109384 GIT binary patch literal 40823 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 + */ + +#include "common.h" + +#define RENDER_LOOP 100 + +extern int WIDTH, HEIGHT; + +extern cairo_device_t *cairo_device; +cairo_pattern_t *pattern1, *pattern2; +int image_width, image_height; + +int preRender(cairo_t *cr) +{ + { // Image 1 + cairo_surface_t *image_surface = cairo_image_surface_create_from_png("./image1.png"); + image_width = cairo_image_surface_get_width(image_surface); + image_height = cairo_image_surface_get_height(image_surface); + + if(cairo_surface_get_type(cairo_get_target(cr)) == CAIRO_SURFACE_TYPE_IMAGE) { + pattern1 = cairo_pattern_create_for_surface(image_surface); + } else { + cairo_surface_t *gl_surface = cairo_gl_surface_create(cairo_device, CAIRO_CONTENT_COLOR_ALPHA, + image_width, image_height); + cairo_t *cr_gl = cairo_create(gl_surface); + cairo_set_source_surface(cr_gl, image_surface, 0, 0); + cairo_paint(cr_gl); + + pattern1 = cairo_pattern_create_for_surface(gl_surface); + + cairo_surface_destroy(gl_surface); + cairo_destroy(cr_gl); + } + cairo_surface_destroy(image_surface); + } + { // Image 2 + cairo_surface_t *image_surface = cairo_image_surface_create_from_png("./image2.png"); + image_width = cairo_image_surface_get_width(image_surface); + image_height = cairo_image_surface_get_height(image_surface); + + if(cairo_surface_get_type(cairo_get_target(cr)) == CAIRO_SURFACE_TYPE_IMAGE) { + pattern2 = cairo_pattern_create_for_surface(image_surface); + } else { + cairo_surface_t *gl_surface = cairo_gl_surface_create(cairo_device, CAIRO_CONTENT_COLOR_ALPHA, + image_width, image_height); + cairo_t *cr_gl = cairo_create(gl_surface); + cairo_set_source_surface(cr_gl, image_surface, 0, 0); + cairo_paint(cr_gl); + + pattern2 = cairo_pattern_create_for_surface(gl_surface); + + cairo_surface_destroy(gl_surface); + cairo_destroy(cr_gl); + } + cairo_surface_destroy(image_surface); + } + + return 1; +} + +int render(cairo_t *cr) +{ + int i; + + clearCairo(cr, WIDTH, HEIGHT); + cairo_set_operator(cr, CAIRO_OPERATOR_OVER); + + for(i = 0; i < RENDER_LOOP; i++) + { + float x = drand48() * WIDTH - image_width / 2; + float y = drand48() * HEIGHT - image_height / 2; + int index = drand48() * 2; + + cairo_identity_matrix(cr); + cairo_translate(cr, x, y); + if(index == 0) + cairo_set_source(cr, pattern1); + else + cairo_set_source(cr, pattern2); + cairoSquare(cr, 0, 0, image_width); + } + + return 1; +} + +int postRender(cairo_t *cr) +{ + cairo_pattern_destroy(pattern1); + cairo_pattern_destroy(pattern2); + return 1; +} + diff --git a/TC/perf/image1.png b/TC/perf/image1.png new file mode 100755 index 0000000000000000000000000000000000000000..b45c7bd7cf7de9547209b57c54b6464583d8f0de GIT binary patch literal 45272 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 literal 0 HcmV?d00001 diff --git a/TC/perf/image2.png b/TC/perf/image2.png new file mode 100755 index 0000000000000000000000000000000000000000..0ec9cf562de59ee30780eac7a096a3b4c6b26fc6 GIT binary patch literal 59984 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 n^&;+N5Jn0ySPFxoP-+$fQdXp@9Oh|# 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℘MGTmTZ%h2yQZ`VI&DHwwpvwR(6CUu(OC`H~g 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 + */ + +#include +#include +#include +#include +#include +#include + +#define SURFACE_TYPE_IMAGE 0 +#define SURFACE_TYPE_GL 1 +#define TOTAL_TIME 100 + +int WIDTH, HEIGHT; + +//Ecore Evas variables +Ecore_X_Window window; +Evas_Object *img; + +//EGL variables +EGLDisplay egl_display; +EGLSurface egl_surface; +EGLContext egl_context; + +//Cairo variables +cairo_device_t *cairo_device; +cairo_surface_t *cairo_surface; +cairo_t *cr; + +Eina_Bool renderMain(void *data) +{ + static int counter = 0; + static float totalTime = 0; + static float totalPaint = 0; + static float totalUpdate = 0; + struct timeval paintStart, paintStop, updateStop; + + cairo_save(cr); + gettimeofday(&paintStart, NULL); + /* ########## PAINT : START ########## */ + render(cr); + /* ########## PAINT : END ########## */ + gettimeofday(&paintStop, NULL); + /* ########## UPDATE : START ########## */ + if(cairo_surface_get_type(cairo_get_target(cr)) == CAIRO_SURFACE_TYPE_GL) { + cairo_gl_surface_swapbuffers(cairo_get_target(cr)); + } else { + unsigned char *imageData = cairo_image_surface_get_data(cairo_get_target(cr)); + evas_object_image_data_set(img, imageData); + evas_object_image_data_update_add(img, 0, 0, WIDTH, HEIGHT); + ecore_x_sync(); + } + /* ########## UPDATE : END ########## */ + gettimeofday(&updateStop, NULL); + cairo_restore(cr); + + totalTime += updateStop.tv_usec - paintStart.tv_usec; + totalTime += (updateStop.tv_sec - paintStart.tv_sec)*1000000; + totalPaint += (paintStop.tv_usec - paintStart.tv_usec); + totalPaint += (paintStop.tv_sec - paintStart.tv_sec)*1000000; + totalUpdate += (updateStop.tv_usec - paintStop.tv_usec); + totalUpdate += (updateStop.tv_sec - paintStop.tv_sec)*1000000; + counter++; + + if(counter == TOTAL_TIME) + { + float fps = TOTAL_TIME / totalTime * 1000000.0f; + printf("fps = %0.2f\n", fps); + printf("average paint time = %0.1f usec, update time = %0.1f usec\n", totalPaint/TOTAL_TIME, totalUpdate/TOTAL_TIME); + + elm_exit(); + return 0; + } +} + +void initELMWindow(int surface_type) +{ + Evas_Object *win = elm_win_add(NULL, "cairotest", ELM_WIN_BASIC); + elm_win_autodel_set(win, EINA_TRUE); + ecore_x_screen_size_get(ecore_x_default_screen_get(), &WIDTH, &HEIGHT); + evas_object_resize(win, WIDTH, HEIGHT); + evas_object_show(win); + + if (surface_type == SURFACE_TYPE_IMAGE) { + Evas_Object *img_win = elm_image_add(win); + img = evas_object_image_filled_add(evas_object_evas_get(img_win)); + elm_win_resize_object_add(win, img); + evas_object_image_content_hint_set(img, EVAS_IMAGE_CONTENT_HINT_DYNAMIC); + evas_object_image_size_set(img, WIDTH, HEIGHT); + evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888); + evas_object_image_alpha_set(img, 0); + evas_object_show(img_win); + evas_object_show(img); + } else if(surface_type == SURFACE_TYPE_GL) { + window = ecore_x_window_new(0, 0, 0, WIDTH, HEIGHT); + ecore_x_icccm_title_set(window, "window"); + ecore_x_netwm_name_set(window, "window"); + ecore_x_input_multi_select(window); + ecore_x_icccm_transient_for_set(window, elm_win_xwindow_get(win)); + ecore_x_window_show(window); + } +} + +void initEGL(int surface_type) +{ + if(surface_type != SURFACE_TYPE_GL) + return; + + setenv("ELM_ENGINE", "gl", 1); + + egl_display = eglGetDisplay((EGLNativeDisplayType) ecore_x_display_get()); + if(egl_display == EGL_NO_DISPLAY) + { + printf("cannot get egl display\n"); + exit(1); + } + + EGLint major, minor; + if(!eglInitialize(egl_display, &major, &minor)) + { + printf("cannot initialize egl\n"); + exit(-1); + } + + if(!eglBindAPI(EGL_OPENGL_ES_API)) + { + printf("cannot bind egl to gles2 API\n"); + exit(-1); + } + + EGLConfig egl_config; + EGLint num; + + EGLint attr[] = + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_STENCIL_SIZE, 0, + EGL_SAMPLES, 4, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_NONE + }; + + + if(!eglChooseConfig(egl_display, attr, &egl_config, 1, &num)) + { + printf("cannot choose config\n"); + exit(-1); + } + + if(num != 1) + { + printf("did not get exactly one config = %d\n", num); + exit(-1); + } + + egl_surface = eglCreateWindowSurface(egl_display, + egl_config, (NativeWindowType) window, NULL); + if(egl_surface == EGL_NO_SURFACE) + { + printf("cannot create surface\n"); + exit(-1); + } + + EGLint e = eglGetError(); + //printf("egl error = %x\n", e); + + EGLint ctxattr[] = + { + EGL_CONTEXT_CLIENT_VERSION, 2, + EGL_NONE + }; + + egl_context = eglCreateContext(egl_display, egl_config, EGL_NO_CONTEXT, ctxattr); + if(egl_context == EGL_NO_CONTEXT) + { + EGLint e = eglGetError(); + printf("cannot create context, error = %x\n", e); + exit(-1); + } + + EGLint value; + EGLBoolean result = eglQueryContext(egl_display, egl_context, EGL_CONTEXT_CLIENT_VERSION, &value); + //printf("Context version = %x, result = %d\n", value, result); + + eglMakeCurrent(egl_display, egl_surface, egl_surface, egl_context); +} + +void destroyEGL(int surface_type) +{ + if(surface_type != SURFACE_TYPE_GL) + return; + + eglDestroyContext(egl_display, egl_context); + eglDestroySurface(egl_display, egl_surface); + eglTerminate(egl_display); +} + +void initCairo(int surface_type) +{ + if(surface_type == SURFACE_TYPE_IMAGE) { + printf("== CREATE IMAGE SURFACE ==\n"); + cairo_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, WIDTH, HEIGHT); + } else if(surface_type == SURFACE_TYPE_GL) { + printf("== CREATE GL SURFACE ==\n"); + setenv("CAIRO_GL_COMPOSITOR", "msaa", 1); + cairo_device = cairo_egl_device_create(egl_display, egl_context); + cairo_gl_device_set_thread_aware(cairo_device, 0); + cairo_surface = cairo_gl_surface_create_for_egl(cairo_device, egl_surface, WIDTH, HEIGHT); + } + cr = cairo_create(cairo_surface); +} + +void destroyCairo(int surface_type) +{ + cairo_surface_destroy(cairo_surface); + cairo_destroy(cr); + + if(surface_type == SURFACE_TYPE_GL) { + cairo_device_destroy(cairo_device); + } +} + +int main(int argc, char **argv) +{ + int surface_type = SURFACE_TYPE_GL; + + if(argc == 2) + surface_type = atoi(argv[1]); + + elm_init(argc, argv); + + initELMWindow(surface_type); + initEGL(surface_type); + initCairo(surface_type); + + preRender(cr); + Ecore_Animator *animator = ecore_animator_add(renderMain, (void *)cr); + elm_run(); + postRender(cr); + + destroyCairo(surface_type); + destroyEGL(surface_type); + elm_shutdown(); + + return 0; +} + diff --git a/TC/perf/stroke b/TC/perf/stroke new file mode 100755 index 0000000000000000000000000000000000000000..809ad22e8ef7a652ccdb82aa878093b261871905 GIT binary patch literal 38808 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 D + */ + +#include "common.h" + +#define RENDER_LOOP 100 + +extern int WIDTH, HEIGHT; + +int preRender(cairo_t *cr) +{ + return 1; +} + +int render(cairo_t *cr) +{ + int i; + double r, g, b, a; + + clearCairo(cr, WIDTH, HEIGHT); + cairo_set_operator(cr, CAIRO_OPERATOR_OVER); + + for(i = 0; i < RENDER_LOOP; i++) + { + r = drand48(); + g = drand48(); + b = drand48(); + a = drand48(); + float x = drand48() * WIDTH; + float y = drand48() * HEIGHT; + float side = drand48() * 300; + int shape = drand48() *3; + float width = drand48() * 50 + 1; + int line_cap = drand48() * 3; + cairo_line_cap_t line_cap_style = CAIRO_LINE_CAP_BUTT; + if(line_cap == 1) + line_cap_style = CAIRO_LINE_CAP_ROUND; + else if(line_cap == 2) + line_cap_style = CAIRO_LINE_CAP_SQUARE; + int line_join = drand48() * 3; + cairo_line_join_t line_join_style = CAIRO_LINE_JOIN_MITER; + if(line_join == 1) + line_join_style = CAIRO_LINE_JOIN_ROUND; + else if(line_join == 2) + line_join_style = CAIRO_LINE_JOIN_BEVEL; + + double dash[] = {0.0, 0.0}; + dash[0] = drand48() * 50; + dash[1] = drand48() * 50; + + cairo_set_dash(cr, dash, 2, 0); + cairo_set_line_width(cr, width); + cairo_set_line_join(cr, line_join_style); + cairo_set_line_cap(cr, line_cap_style); + + cairo_set_source_rgba(cr, r, g, b, a); + + if(shape == 0) + cairoSquareStroke(cr, x, y, side); + else if(shape == 1) + cairoCircleStroke(cr, x, y, side/2); + else + cairoTriangleStroke(cr, x, y, side); + } + + return 1; +} + +int postRender(cairo_t *cr) +{ + return 1; +} + diff --git a/TC/testcase/Makefile b/TC/testcase/Makefile new file mode 100755 index 0000000..d4f833e --- /dev/null +++ b/TC/testcase/Makefile @@ -0,0 +1,24 @@ +CC ?= gcc + +C_FILES = $(shell ls *.c) + +PKGS = cairo capi-base-common dlog gthread-2.0 + +LDFLAGS = `pkg-config --libs $(PKGS)` +LDFLAGS += $(TET_ROOT)/lib/tet3/tcm_s.o +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -ltcm_s +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -lapi_s + +CFLAGS = -I. `pkg-config --cflags $(PKGS)` +CFLAGS += -I$(TET_ROOT)/inc/tet3 +CFLAGS += -Wall + +TCS := $(shell ls -1 *.c | cut -d. -f1) + +all: $(TCS) + +%: %.c + $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) + +clean: + rm -f $(TCS) diff --git a/TC/testcase/cairo-test.h b/TC/testcase/cairo-test.h new file mode 100644 index 0000000..24ff827 --- /dev/null +++ b/TC/testcase/cairo-test.h @@ -0,0 +1,66 @@ +#ifndef _CAIRO_COMMON_H_ +#define _CAIRO_COMMON_H_ + +//#include "cairo-boilerplate.h" + +#include +#include +#include + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define ARRAY_LENGTH(__array) ((int) (sizeof (__array) / sizeof (__array[0]))) + +#define CAIRO_TEST_OUTPUT_DIR "output" +#define CAIRO_TEST_LOG_SUFFIX ".log" +#define CAIRO_TEST_FONT_FAMILY "DejaVu" + +/* What is a fail and what isn't? + * When running the test suite we want to detect unexpected output. This + * can be caused by a change we have made to cairo itself, or a change + * in our environment. To capture this we classify the expected output into 3 + * classes: + * + * REF -- Perfect output. + * Might be different for each backend, due to slight implementation + * differences. + * + * NEW -- A new failure. We have uncovered a bug within cairo and have + * recorded the current failure (along with the expected output + * if possible!) so we can detect any changes in our attempt to + * fix the bug. + * + * XFAIL -- An external failure. We believe the cairo output is perfect, + * but an external renderer is causing gross failure. + * (We also use this to capture current WONTFIX issues within cairo, + * such as overflow in internal coordinates, so as not to distract + * us when regression testing.) + * + * If no REF is given for a test, then it is assumed to be XFAIL. + */ +#define CAIRO_TEST_REF_SUFFIX ".ref" +#define CAIRO_TEST_XFAIL_SUFFIX ".xfail" +#define CAIRO_TEST_NEW_SUFFIX ".new" + +#define CAIRO_TEST_OUT_SUFFIX ".out" +#define CAIRO_TEST_DIFF_SUFFIX ".diff" + +#define CAIRO_TEST_PNG_EXTENSION ".png" +#define CAIRO_TEST_OUT_PNG CAIRO_TEST_OUT_SUFFIX CAIRO_TEST_PNG_EXTENSION +#define CAIRO_TEST_REF_PNG CAIRO_TEST_REF_SUFFIX CAIRO_TEST_PNG_EXTENSION +#define CAIRO_TEST_DIFF_PNG CAIRO_TEST_DIFF_SUFFIX CAIRO_TEST_PNG_EXTENSION + +typedef enum cairo_test_status { + CAIRO_TEST_SUCCESS = 0, + CAIRO_TEST_NO_MEMORY, + CAIRO_TEST_FAILURE, + CAIRO_TEST_NEW, + CAIRO_TEST_XFAILURE, + CAIRO_TEST_ERROR, + CAIRO_TEST_CRASHED, + CAIRO_TEST_UNTESTED = 77 /* match automake's skipped exit status */ +} cairo_test_status_t; + +#define CAIRO_TEST_DOUBLE_EQUALS(a,b) (fabs((a)-(b)) < 0.00001) + +#endif diff --git a/TC/testcase/tslist b/TC/testcase/tslist new file mode 100644 index 0000000..c3e5d9d --- /dev/null +++ b/TC/testcase/tslist @@ -0,0 +1,1022 @@ +/testcase/utc_a1_bug_image +/testcase/utc_a1_clip_paint_image +/testcase/utc_a1_clip_fill_image +/testcase/utc_a1_clip_fill_equal_image +/testcase/utc_a1_clip_stroke_image +/testcase/utc_a1_fill_image +/testcase/utc_a1_image_sample_image +/testcase/utc_a1_mask_image +/testcase/utc_a1_mask_sample_image +/testcase/utc_a1_rasterisation_rectangles_image +/testcase/utc_a1_rasterisation_triangles_image +/testcase/utc_a1_sample_image +/testcase/utc_a1_traps_sample_image +/testcase/utc_a8_clear_image +/testcase/utc_a8_mask_image +/testcase/utc_aliasing_image +/testcase/utc_alpha_similar_image +/testcase/utc_api_special_cases_image +/testcase/utc_arc_infinite_loop_image +/testcase/utc_arc_looping_dash_image +/testcase/utc_big_empty_box_image +/testcase/utc_big_empty_triangle_image +/testcase/utc_big_line_image +/testcase/utc_big_little_box_image +/testcase/utc_big_little_triangle_image +#/testcase/utc_big_trap_image +/testcase/utc_bilevel_image_image +/testcase/utc_bitmap_font_image +/testcase/utc_bug_40410_image +/testcase/utc_bug_bo_rectangular_image +/testcase/utc_bug_bo_ricotz_image +/testcase/utc_bug_extents_image +/testcase/utc_bug_seams_image +/testcase/utc_bug_source_cu_image +/testcase/utc_caps_image +/testcase/utc_caps_joins_alpha_image +/testcase/utc_caps_joins_image +/testcase/utc_caps_joins_curve_image +/testcase/utc_caps_sub_paths_image +/testcase/utc_caps_tails_curve_image +/testcase/utc_checkerboard_image +#/testcase/utc_clear_image +/testcase/utc_clear_source_image +/testcase/utc_clip_all_image +/testcase/utc_clip_complex_shape_eo_mono_image +/testcase/utc_clip_complex_shape_eo_aa_image +/testcase/utc_clip_contexts_image +/testcase/utc_clip_device_offset_image +/testcase/utc_clip_disjoint_image +/testcase/utc_clip_disjoint_hatching_image +/testcase/utc_clip_double_free_image +/testcase/utc_clip_stroke_unbounded_image +/testcase/utc_clip_fill_nz_unbounded_image +/testcase/utc_clip_fill_eo_unbounded_image +/testcase/utc_clip_empty_image +/testcase/utc_clip_empty_group_image +/testcase/utc_clip_empty_save_image +/testcase/utc_clip_fill_image +/testcase/utc_clip_fill_no_op_image +/testcase/utc_clip_fill_rule_image +/testcase/utc_a1_clip_fill_rule_image +/testcase/utc_clip_fill_rule_pixel_aligned_image +/testcase/utc_clip_group_shapes_aligned_rectangles_image +/testcase/utc_clip_group_shapes_unaligned_rectangles_image +/testcase/utc_clip_group_shapes_circles_image +/testcase/utc_clip_image_image +/testcase/utc_clip_intersect_image +/testcase/utc_clip_mixed_antialias_image +/testcase/utc_clip_nesting_image +#/testcase/utc_clip_operator_image +/testcase/utc_clipped_group_image +/testcase/utc_clipped_surface_image +#/testcase/utc_clipped_trapezoids_image +/testcase/utc_clip_polygons_image +/testcase/utc_clip_push_group_image +/testcase/utc_clip_rectilinear_image +/testcase/utc_clip_shape_image +/testcase/utc_clip_stroke_image +/testcase/utc_clip_stroke_no_op_image +#/testcase/utc_clip_text_image +/testcase/utc_clip_twice_image +/testcase/utc_clip_twice_rectangle_image +/testcase/utc_clip_unbounded_image +/testcase/utc_clip_zero_image +/testcase/utc_close_path_image +/testcase/utc_close_path_current_point_image +/testcase/utc_composite_integer_translate_over_image +/testcase/utc_composite_integer_translate_over_repeat_image +/testcase/utc_composite_integer_translate_source_image +/testcase/utc_copy_disjoint_image +/testcase/utc_copy_path_image +#/testcase/utc_coverage_rectangles_image +#/testcase/utc_coverage_intersecting_quads_image +#/testcase/utc_coverage_intersecting_triangles_image +#/testcase/utc_coverage_row_triangles_image +#/testcase/utc_coverage_column_triangles_image +#/testcase/utc_coverage_triangles_image +#/testcase/utc_create_for_stream_image +/testcase/utc_create_from_png_image +/testcase/utc_create_from_png_stream_image +#/testcase/utc_culled_glyphs_image +/testcase/utc_curve_to_as_line_to_image +/testcase/utc_dash_caps_joins_image +/testcase/utc_dash_curve_image +/testcase/utc_dash_infinite_loop_image +/testcase/utc_dash_no_dash_image +/testcase/utc_dash_offset_image +/testcase/utc_dash_offset_negative_image +/testcase/utc_dash_scale_image +/testcase/utc_dash_state_image +/testcase/utc_dash_zero_length_image +/testcase/utc_degenerate_arc_image +/testcase/utc_degenerate_arcs_image +/testcase/utc_degenerate_curve_to_image +/testcase/utc_degenerate_dash_image +/testcase/utc_degenerate_linear_gradient_image +/testcase/utc_degenerate_path_image +/testcase/utc_degenerate_pen_image +/testcase/utc_degenerate_radial_gradient_image +/testcase/utc_degenerate_rel_curve_to_image +/testcase/utc_degenerate_solid_dash_image +/testcase/utc_device_offset_image +/testcase/utc_device_offset_fractional_image +/testcase/utc_device_offset_positive_image +/testcase/utc_device_offset_scale_image +/testcase/utc_drunkard_tails_image +/testcase/utc_error_setters_image +/testcase/utc_extended_blend_image +/testcase/utc_extended_blend_alpha_image +/testcase/utc_extended_blend_mask_image +/testcase/utc_extended_blend_alpha_mask_image +/testcase/utc_extended_blend_solid_image +/testcase/utc_extended_blend_solid_alpha_image +/testcase/utc_extend_pad_border_image +/testcase/utc_extend_pad_image +/testcase/utc_extend_pad_similar_image +/testcase/utc_extend_reflect_image +/testcase/utc_extend_reflect_similar_image +/testcase/utc_extend_repeat_image +/testcase/utc_extend_repeat_similar_image +/testcase/utc_fallback_image +#/testcase/utc_fallback_resolution_image +/testcase/utc_fill_alpha_image +/testcase/utc_fill_alpha_pattern_image +/testcase/utc_fill_and_stroke_alpha_add_image +/testcase/utc_fill_and_stroke_alpha_image +/testcase/utc_fill_and_stroke_image +/testcase/utc_fill_degenerate_sort_order_image +/testcase/utc_fill_disjoint_image +/testcase/utc_fill_empty_image +/testcase/utc_fill_image_image +/testcase/utc_fill_missed_stop_image +/testcase/utc_fill_rule_image +/testcase/utc_filter_bilinear_extents_image +/testcase/utc_filter_nearest_offset_image +/testcase/utc_filter_nearest_transformed_image +/testcase/utc_finer_grained_fallbacks_image +/testcase/utc_font_face_get_type_image +#/testcase/utc_font_matrix_translation_image +/testcase/utc_font_options_image +/testcase/utc_ft_font_create_for_ft_face_image +#/testcase/utc_ft_show_glyphs_positioning_image +#/testcase/utc_ft_show_glyphs_table_image +#/testcase/utc_ft_text_antialias_none_image +#/testcase/utc_ft_text_vertical_layout_type1_image +#/testcase/utc_ft_text_vertical_layout_type3_image +/testcase/utc_get_and_set_image +/testcase/utc_get_clip_image +/testcase/utc_get_group_target_image +#/testcase/utc_get_path_extents_image +#/testcase/utc_get_xrender_format_image +#/testcase/utc_gl_surface_source_image +#/testcase/utc_glyph_cache_pressure_image +/testcase/utc_gradient_alpha_image +/testcase/utc_gradient_constant_alpha_image +/testcase/utc_gradient_zero_stops_image +/testcase/utc_gradient_zero_stops_mask_image +/testcase/utc_group_clip_image +/testcase/utc_group_paint_image +/testcase/utc_group_state_image +/testcase/utc_group_unaligned_image +#/testcase/utc_half_coverage_rectangles_image +#/testcase/utc_half_coverage_triangles_image +#/testcase/utc_halo_image +#/testcase/utc_halo_transform_image +/testcase/utc_hatchings_image +/testcase/utc_horizontal_clip_image +/testcase/utc_huge_linear_image +/testcase/utc_huge_radial_image +/testcase/utc_image_bug_710072_aligned_image +/testcase/utc_image_bug_710072_unaligned_image +/testcase/utc_image_surface_source_image +/testcase/utc_implicit_close_image +#/testcase/utc_in_fill_empty_trapezoid_image +/testcase/utc_in_fill_trapezoid_image +/testcase/utc_infinite_join_image +/testcase/utc_invalid_matrix_image +#/testcase/utc_inverse_text_image +#/testcase/utc_inverted_clip_image +/testcase/utc_joins_image +/testcase/utc_joins_loop_image +/testcase/utc_joins_retrace_image +/testcase/utc_joins_star_image +/testcase/utc_large_clip_image +/testcase/utc_large_font_image +/testcase/utc_large_source_image +/testcase/utc_large_source_roi_image +/testcase/utc_large_twin_antialias_mixed_image +/testcase/utc_leaky_dash_image +/testcase/utc_leaky_dashed_rectangle_image +/testcase/utc_leaky_dashed_stroke_image +/testcase/utc_leaky_polygon_image +/testcase/utc_linear_gradient_image +/testcase/utc_linear_gradient_extend_image +/testcase/utc_linear_gradient_large_image +/testcase/utc_linear_gradient_one_stop_image +/testcase/utc_linear_gradient_reflect_image +/testcase/utc_linear_gradient_subset_image +#/testcase/utc_linear_step_function_image +/testcase/utc_linear_uniform_image +/testcase/utc_line_width_image +/testcase/utc_a1_line_width_image +/testcase/utc_line_width_large_overlap_image +/testcase/utc_line_width_large_overlap_offset_image +/testcase/utc_line_width_large_overlap_rotated_image +/testcase/utc_line_width_large_overlap_flipped_image +/testcase/utc_line_width_large_overlap_flopped_image +/testcase/utc_line_width_large_overlap_dashed_image +/testcase/utc_line_width_overlap_image +/testcase/utc_line_width_overlap_offset_image +/testcase/utc_line_width_overlap_rotated_image +/testcase/utc_line_width_overlap_flipped_image +/testcase/utc_line_width_overlap_flopped_image +/testcase/utc_line_width_overlap_dashed_image +/testcase/utc_line_width_scale_image +/testcase/utc_line_width_tolerance_image +/testcase/utc_line_width_zero_image +/testcase/utc_long_dashed_lines_image +#/testcase/utc_long_lines_image +/testcase/utc_map_all_to_image_image +/testcase/utc_map_bit_to_image_image +/testcase/utc_map_to_image_fill_image +/testcase/utc_mask_alpha_image +/testcase/utc_mask_image +/testcase/utc_mask_ctm_image +#/testcase/utc_mask_glyphs_image +/testcase/utc_mask_surface_ctm_image +/testcase/utc_mask_transformed_image_image +/testcase/utc_mask_transformed_similar_image +/testcase/utc_mesh_pattern_accuracy_image +/testcase/utc_mesh_pattern_image +/testcase/utc_mesh_pattern_conical_image +/testcase/utc_mesh_pattern_control_points_image +/testcase/utc_mesh_pattern_fold_image +/testcase/utc_mesh_pattern_overlap_image +/testcase/utc_mesh_pattern_transformed_image +/testcase/utc_mime_data_image +/testcase/utc_mime_surface_api_image +#/testcase/utc_mime_surface_image +/testcase/utc_miter_precision_image +/testcase/utc_move_to_show_surface_image +#/testcase/utc_multi_page_image +/testcase/utc_negative_stride_image_image +/testcase/utc_new_sub_path_image +/testcase/utc_nil_surface_image +/testcase/utc_operator_alpha_alpha_image +/testcase/utc_operator_alpha_image +/testcase/utc_operator_image +#/testcase/utc_operator_clear_image +#/testcase/utc_operator_source_image +/testcase/utc_over_above_source_image +/testcase/utc_over_around_source_image +/testcase/utc_over_below_source_image +/testcase/utc_over_between_source_image +/testcase/utc_overlapping_boxes_image +/testcase/utc_overlapping_dash_caps_image +/testcase/utc_overlapping_glyphs_image +/testcase/utc_paint_image +/testcase/utc_paint_clip_fill_mono_image +/testcase/utc_paint_clip_fill_aa_image +/testcase/utc_paint_repeat_image +/testcase/utc_paint_source_alpha_image +/testcase/utc_paint_with_alpha_image +/testcase/utc_paint_with_alpha_solid_clip_image +/testcase/utc_paint_with_alpha_clip_image +/testcase/utc_paint_with_alpha_clip_mask_image +/testcase/utc_partial_clip_text_top_image +/testcase/utc_partial_clip_text_bottom_image +/testcase/utc_partial_clip_text_left_image +/testcase/utc_partial_clip_text_right_image +#/testcase/utc_partial_coverage_rectangles_image +#/testcase/utc_partial_coverage_intersecting_quads_image +#/testcase/utc_partial_coverage_intersecting_triangles_image +#/testcase/utc_partial_coverage_triangles_image +#/testcase/utc_partial_coverage_overlap_three_quarter_triangles_image +#/testcase/utc_partial_coverage_overlap_half_triangles_eo_image +#/testcase/utc_partial_coverage_overlap_half_triangles_image +#/testcase/utc_partial_coverage_half_triangles_image +/testcase/utc_partial_coverage_reference_image +/testcase/utc_partial_coverage_three_quarter_reference_image +/testcase/utc_partial_coverage_half_reference_image +/testcase/utc_pass_through_image +/testcase/utc_path_append_image +#/testcase/utc_path_precision_image +/testcase/utc_path_stroke_twice_image +/testcase/utc_pattern_getters_image +/testcase/utc_pattern_get_type_image +#/testcase/utc_pdf_features_image +/testcase/utc_pdf_isolated_group_image +#/testcase/utc_pdf_mime_data_image +/testcase/utc_pdf_surface_source_image +/testcase/utc_pixman_rotate_image +/testcase/utc_png_image +#/testcase/utc_ps_eps_image +#/testcase/utc_ps_features_image +/testcase/utc_ps_surface_source_image +/testcase/utc_pthread_same_source_image +#/testcase/utc_pthread_show_text_image +/testcase/utc_pthread_similar_image +/testcase/utc_push_group_image +/testcase/utc_push_group_color_image +/testcase/utc_push_group_path_offset_image +#/testcase/utc_quartz_surface_source_image +/testcase/utc_radial_gradient_image +/testcase/utc_radial_gradient_mask_image +/testcase/utc_radial_gradient_source_image +#/testcase/utc_radial_gradient_mask_source_image +/testcase/utc_radial_gradient_one_stop_image +/testcase/utc_radial_gradient_extend_image +#/testcase/utc_radial_outer_focus_image +/testcase/utc_random_clip_image +/testcase/utc_random_intersections_curves_eo_image +/testcase/utc_random_intersections_curves_nz_image +/testcase/utc_random_intersections_eo_image +/testcase/utc_random_intersections_nonzero_image +/testcase/utc_record_paint_image +/testcase/utc_record_paint_alpha_image +/testcase/utc_record_paint_alpha_solid_clip_image +/testcase/utc_record_paint_alpha_clip_image +#/testcase/utc_record_paint_alpha_clip_mask_image +#/testcase/utc_record_fill_alpha_image +#/testcase/utc_record_select_font_face_image +/testcase/utc_record_self_intersecting_image +#/testcase/utc_record_text_transform_image +#/testcase/utc_record1414x_fill_alpha_image +/testcase/utc_record1414x_paint_image +/testcase/utc_record1414x_paint_alpha_image +#/testcase/utc_record1414x_paint_alpha_clip_image +#/testcase/utc_record1414x_paint_alpha_clip_mask_image +/testcase/utc_record1414x_paint_alpha_solid_clip_image +#/testcase/utc_record1414x_select_font_face_image +#/testcase/utc_record1414x_self_intersecting_image +#/testcase/utc_record1414x_text_transform_image +#/testcase/utc_record2x_fill_alpha_image +/testcase/utc_record2x_paint_image +/testcase/utc_record2x_paint_alpha_image +/testcase/utc_record2x_paint_alpha_clip_image +#/testcase/utc_record2x_paint_alpha_clip_mask_image +/testcase/utc_record2x_paint_alpha_solid_clip_image +#/testcase/utc_record2x_select_font_face_image +/testcase/utc_record2x_self_intersecting_image +#/testcase/utc_record2x_text_transform_image +#/testcase/utc_record90_fill_alpha_image +/testcase/utc_record90_paint_image +/testcase/utc_record90_paint_alpha_image +#/testcase/utc_record90_paint_alpha_clip_image +#/testcase/utc_record90_paint_alpha_clip_mask_image +/testcase/utc_record90_paint_alpha_solid_clip_image +#/testcase/utc_record90_select_font_face_image +#/testcase/utc_record90_self_intersecting_image +#/testcase/utc_record90_text_transform_image +/testcase/utc_raster_source_image +/testcase/utc_record_extend_none_image +/testcase/utc_record_extend_pad_image +/testcase/utc_record_extend_repeat_image +/testcase/utc_record_extend_reflect_image +/testcase/utc_record_extend_none_similar_image +/testcase/utc_record_extend_pad_similar_image +/testcase/utc_record_extend_repeat_similar_image +/testcase/utc_record_extend_reflect_similar_image +/testcase/utc_recording_surface_extend_none_image +/testcase/utc_recording_surface_extend_repeat_image +/testcase/utc_recording_surface_extend_reflect_image +/testcase/utc_recording_surface_extend_pad_image +/testcase/utc_recording_surface_over_image +/testcase/utc_recording_surface_source_image +/testcase/utc_record_mesh_image +/testcase/utc_rectangle_rounding_error_image +/testcase/utc_rectilinear_dash_image +/testcase/utc_rectilinear_dash_scale_image +/testcase/utc_rectilinear_dash_scale_unaligned_image +/testcase/utc_rectilinear_fill_image +/testcase/utc_rectilinear_grid_image +/testcase/utc_a1_rectilinear_grid_image +/testcase/utc_rectilinear_miter_limit_image +/testcase/utc_rectilinear_stroke_image +/testcase/utc_reflected_stroke_image +/testcase/utc_rel_path_image +/testcase/utc_rgb24_ignore_alpha_image +/testcase/utc_rotated_clip_image +/testcase/utc_rotate_image_surface_paint_image +/testcase/utc_clip_rotate_image_surface_paint_image +/testcase/utc_rotate_clip_image_surface_paint_image +/testcase/utc_rounded_rectangle_fill_image +/testcase/utc_rounded_rectangle_stroke_image +/testcase/utc_scaled_font_zero_matrix_image +/testcase/utc_scale_down_source_surface_paint_image +/testcase/utc_scale_offset_image_image +/testcase/utc_scale_offset_similar_image +/testcase/utc_scale_source_surface_paint_image +#/testcase/utc_select_font_face_image +/testcase/utc_select_font_no_show_text_image +/testcase/utc_self_copy_image +#/testcase/utc_self_copy_overlap_image +/testcase/utc_self_intersecting_image +/testcase/utc_set_source_image +/testcase/utc_shape_general_convex_image +/testcase/utc_shape_sierpinski_image +/testcase/utc_show_glyphs_advance_image +/testcase/utc_show_glyphs_many_image +#/testcase/utc_show_text_current_point_image +/testcase/utc_skew_extreme_image +/testcase/utc_smask_image +/testcase/utc_smask_fill_image +/testcase/utc_smask_image_mask_image +/testcase/utc_smask_mask_image +/testcase/utc_smask_paint_image +/testcase/utc_smask_stroke_image +#/testcase/utc_smask_text_image +/testcase/utc_solid_pattern_cache_stress_image +/testcase/utc_source_clip_image +/testcase/utc_source_clip_scale_image +/testcase/utc_source_surface_scale_paint_image +/testcase/utc_spline_decomposition_image +/testcase/utc_stride_12_image_image +/testcase/utc_stroke_ctm_caps_image +/testcase/utc_stroke_image_image +/testcase/utc_stroke_open_box_image +/testcase/utc_stroke_pattern_image +/testcase/utc_subsurface_image +/testcase/utc_subsurface_image_repeat_image +/testcase/utc_subsurface_modify_child_image +/testcase/utc_subsurface_modify_parent_image +/testcase/utc_subsurface_outside_target_image +/testcase/utc_subsurface_pad_image +/testcase/utc_subsurface_reflect_image +/testcase/utc_subsurface_repeat_image +/testcase/utc_subsurface_scale_image +/testcase/utc_subsurface_similar_repeat_image +/testcase/utc_surface_finish_twice_image +/testcase/utc_surface_pattern_big_scale_down_image +/testcase/utc_surface_pattern_image +/testcase/utc_surface_pattern_operator_image +/testcase/utc_surface_pattern_scale_down_image +/testcase/utc_surface_pattern_scale_down_extend_repeat_image +/testcase/utc_surface_pattern_scale_down_extend_none_image +/testcase/utc_surface_pattern_scale_down_extend_reflect_image +/testcase/utc_surface_pattern_scale_down_extend_pad_image +/testcase/utc_surface_pattern_scale_up_image +#/testcase/utc_svg_clip_image +#/testcase/utc_svg_surface_image +/testcase/utc_svg_surface_source_image +#/testcase/utc_text_antialias_gray_image +#/testcase/utc_text_antialias_none_image +#/testcase/utc_text_antialias_subpixel_image +#/testcase/utc_text_antialias_subpixel_bgr_image +#/testcase/utc_text_antialias_subpixel_rgb_image +#/testcase/utc_text_antialias_subpixel_vbgr_image +#/testcase/utc_text_antialias_subpixel_vrgb_image +/testcase/utc_text_cache_crash_image +/testcase/utc_text_glyph_range_image +#/testcase/utc_text_pattern_image +#/testcase/utc_text_rotate_image +#/testcase/utc_text_transform_image +/testcase/utc_text_zero_len_image +/testcase/utc_tiger_image +#/testcase/utc_tighten_bounds_image +/testcase/utc_a1_tiger_image +/testcase/utc_toy_font_face_image +/testcase/utc_transforms_image +/testcase/utc_translate_show_surface_image +#/testcase/utc_trap_clip_image +/testcase/utc_twin_antialias_gray_image +/testcase/utc_twin_antialias_mixed_image +/testcase/utc_twin_antialias_none_image +/testcase/utc_twin_antialias_subpixel_image +/testcase/utc_twin_image +/testcase/utc_unaligned_box_image +/testcase/utc_unantialiased_shapes_image +#/testcase/utc_unbounded_operator_image +/testcase/utc_unclosed_strokes_image +/testcase/utc_user_data_image +/testcase/utc_user_font_image +/testcase/utc_user_font_mask_image +#/testcase/utc_user_font_proxy_image +#/testcase/utc_user_font_rescale_image +/testcase/utc_white_in_noop_image +/testcase/utc_world_map_image +/testcase/utc_world_map_stroke_image +/testcase/utc_world_map_fill_image +/testcase/utc_xcb_huge_image_shm_image +/testcase/utc_xcb_snapshot_assert_image +/testcase/utc_xcb_stress_cache_image +#/testcase/utc_xcb_surface_source_image +/testcase/utc_xcomposite_projection_image +/testcase/utc_xlib_expose_event_image +#/testcase/utc_xlib_surface_image +#/testcase/utc_xlib_surface_source_image +/testcase/utc_zero_alpha_image +/testcase/utc_zero_mask_image +/testcase/utc_arc_direction_image +/testcase/utc_a1_bug_gl +/testcase/utc_a1_clip_paint_gl +/testcase/utc_a1_clip_fill_gl +/testcase/utc_a1_clip_fill_equal_gl +/testcase/utc_a1_clip_stroke_gl +/testcase/utc_a1_fill_gl +/testcase/utc_a1_image_sample_gl +/testcase/utc_a1_mask_gl +/testcase/utc_a1_mask_sample_gl +/testcase/utc_a1_rasterisation_rectangles_gl +/testcase/utc_a1_rasterisation_triangles_gl +/testcase/utc_a1_sample_gl +/testcase/utc_a1_traps_sample_gl +/testcase/utc_a8_clear_gl +/testcase/utc_a8_mask_gl +#/testcase/utc_aliasing_gl +/testcase/utc_alpha_similar_gl +/testcase/utc_api_special_cases_gl +/testcase/utc_arc_infinite_loop_gl +/testcase/utc_arc_looping_dash_gl +/testcase/utc_big_empty_box_gl +/testcase/utc_big_empty_triangle_gl +#/testcase/utc_big_line_gl +/testcase/utc_big_little_box_gl +/testcase/utc_big_little_triangle_gl +/testcase/utc_big_trap_gl +/testcase/utc_bilevel_image_gl +/testcase/utc_bitmap_font_gl +/testcase/utc_bug_40410_gl +/testcase/utc_bug_bo_rectangular_gl +/testcase/utc_bug_bo_ricotz_gl +/testcase/utc_bug_extents_gl +/testcase/utc_bug_seams_gl +/testcase/utc_bug_source_cu_gl +/testcase/utc_caps_gl +/testcase/utc_caps_joins_alpha_gl +/testcase/utc_caps_joins_gl +/testcase/utc_caps_joins_curve_gl +/testcase/utc_caps_sub_paths_gl +/testcase/utc_caps_tails_curve_gl +/testcase/utc_checkerboard_gl +/testcase/utc_clear_gl +/testcase/utc_clear_source_gl +/testcase/utc_clip_all_gl +/testcase/utc_clip_complex_shape_eo_mono_gl +/testcase/utc_clip_complex_shape_eo_aa_gl +/testcase/utc_clip_contexts_gl +/testcase/utc_clip_device_offset_gl +/testcase/utc_clip_disjoint_gl +#/testcase/utc_clip_disjoint_hatching_gl +/testcase/utc_clip_double_free_gl +/testcase/utc_clip_stroke_unbounded_gl +/testcase/utc_clip_fill_nz_unbounded_gl +/testcase/utc_clip_fill_eo_unbounded_gl +/testcase/utc_clip_empty_gl +/testcase/utc_clip_empty_group_gl +/testcase/utc_clip_empty_save_gl +#/testcase/utc_clip_fill_gl +/testcase/utc_clip_fill_no_op_gl +/testcase/utc_clip_fill_rule_gl +#/testcase/utc_a1_clip_fill_rule_gl +/testcase/utc_clip_fill_rule_pixel_aligned_gl +/testcase/utc_clip_group_shapes_aligned_rectangles_gl +/testcase/utc_clip_group_shapes_unaligned_rectangles_gl +/testcase/utc_clip_group_shapes_circles_gl +/testcase/utc_clip_image_gl +/testcase/utc_clip_intersect_gl +/testcase/utc_clip_mixed_antialias_gl +/testcase/utc_clip_nesting_gl +#/testcase/utc_clip_operator_gl +#/testcase/utc_clipped_group_gl +/testcase/utc_clipped_surface_gl +#/testcase/utc_clipped_trapezoids_gl +/testcase/utc_clip_polygons_gl +#/testcase/utc_clip_push_group_gl +/testcase/utc_clip_rectilinear_gl +/testcase/utc_clip_shape_gl +#/testcase/utc_clip_stroke_gl +/testcase/utc_clip_stroke_no_op_gl +#/testcase/utc_clip_text_gl +/testcase/utc_clip_twice_gl +/testcase/utc_clip_twice_rectangle_gl +/testcase/utc_clip_unbounded_gl +/testcase/utc_clip_zero_gl +/testcase/utc_close_path_gl +/testcase/utc_close_path_current_point_gl +/testcase/utc_composite_integer_translate_over_gl +/testcase/utc_composite_integer_translate_over_repeat_gl +/testcase/utc_composite_integer_translate_source_gl +/testcase/utc_copy_disjoint_gl +/testcase/utc_copy_path_gl +#/testcase/utc_coverage_rectangles_gl +#/testcase/utc_coverage_intersecting_quads_gl +#/testcase/utc_coverage_intersecting_triangles_gl +#/testcase/utc_coverage_row_triangles_gl +#/testcase/utc_coverage_column_triangles_gl +#/testcase/utc_coverage_triangles_gl +#/testcase/utc_create_for_stream_gl +#/testcase/utc_create_from_png_gl +/testcase/utc_create_from_png_stream_gl +#/testcase/utc_culled_glyphs_gl +/testcase/utc_curve_to_as_line_to_gl +/testcase/utc_dash_caps_joins_gl +/testcase/utc_dash_curve_gl +/testcase/utc_dash_infinite_loop_gl +/testcase/utc_dash_no_dash_gl +/testcase/utc_dash_offset_gl +/testcase/utc_dash_offset_negative_gl +/testcase/utc_dash_scale_gl +/testcase/utc_dash_state_gl +/testcase/utc_dash_zero_length_gl +#/testcase/utc_degenerate_arc_gl +/testcase/utc_degenerate_arcs_gl +/testcase/utc_degenerate_curve_to_gl +/testcase/utc_degenerate_dash_gl +/testcase/utc_degenerate_linear_gradient_gl +/testcase/utc_degenerate_path_gl +/testcase/utc_degenerate_pen_gl +/testcase/utc_degenerate_radial_gradient_gl +/testcase/utc_degenerate_rel_curve_to_gl +/testcase/utc_degenerate_solid_dash_gl +/testcase/utc_device_offset_gl +/testcase/utc_device_offset_fractional_gl +/testcase/utc_device_offset_positive_gl +/testcase/utc_device_offset_scale_gl +/testcase/utc_drunkard_tails_gl +/testcase/utc_error_setters_gl +/testcase/utc_extended_blend_gl +/testcase/utc_extended_blend_alpha_gl +/testcase/utc_extended_blend_mask_gl +/testcase/utc_extended_blend_alpha_mask_gl +/testcase/utc_extended_blend_solid_gl +/testcase/utc_extended_blend_solid_alpha_gl +/testcase/utc_extend_pad_border_gl +/testcase/utc_extend_pad_gl +/testcase/utc_extend_pad_similar_gl +/testcase/utc_extend_reflect_gl +/testcase/utc_extend_reflect_similar_gl +/testcase/utc_extend_repeat_gl +/testcase/utc_extend_repeat_similar_gl +/testcase/utc_fallback_gl +#/testcase/utc_fallback_resolution_gl +/testcase/utc_fill_alpha_gl +/testcase/utc_fill_alpha_pattern_gl +#/testcase/utc_fill_and_stroke_alpha_add_gl +#/testcase/utc_fill_and_stroke_alpha_gl +#/testcase/utc_fill_and_stroke_gl +/testcase/utc_fill_degenerate_sort_order_gl +/testcase/utc_fill_disjoint_gl +/testcase/utc_fill_empty_gl +/testcase/utc_fill_image_gl +/testcase/utc_fill_missed_stop_gl +/testcase/utc_fill_rule_gl +/testcase/utc_filter_bilinear_extents_gl +/testcase/utc_filter_nearest_offset_gl +/testcase/utc_filter_nearest_transformed_gl +/testcase/utc_finer_grained_fallbacks_gl +/testcase/utc_font_face_get_type_gl +#/testcase/utc_font_matrix_translation_gl +/testcase/utc_font_options_gl +/testcase/utc_ft_font_create_for_ft_face_gl +#/testcase/utc_ft_show_glyphs_positioning_gl +#/testcase/utc_ft_show_glyphs_table_gl +#/testcase/utc_ft_text_antialias_none_gl +#/testcase/utc_ft_text_vertical_layout_type1_gl +#/testcase/utc_ft_text_vertical_layout_type3_gl +/testcase/utc_get_and_set_gl +/testcase/utc_get_clip_gl +/testcase/utc_get_group_target_gl +#/testcase/utc_get_path_extents_gl +#/testcase/utc_get_xrender_format_gl +#/testcase/utc_gl_surface_source_gl +#/testcase/utc_glyph_cache_pressure_gl +/testcase/utc_gradient_alpha_gl +/testcase/utc_gradient_constant_alpha_gl +/testcase/utc_gradient_zero_stops_gl +/testcase/utc_gradient_zero_stops_mask_gl +/testcase/utc_group_clip_gl +/testcase/utc_group_paint_gl +/testcase/utc_group_state_gl +#/testcase/utc_group_unaligned_gl +#/testcase/utc_half_coverage_rectangles_gl +#/testcase/utc_half_coverage_triangles_gl +#/testcase/utc_halo_gl +#/testcase/utc_halo_transform_gl +#/testcase/utc_hatchings_gl +/testcase/utc_horizontal_clip_gl +/testcase/utc_huge_linear_gl +/testcase/utc_huge_radial_gl +/testcase/utc_image_bug_710072_aligned_gl +/testcase/utc_image_bug_710072_unaligned_gl +/testcase/utc_image_surface_source_gl +/testcase/utc_implicit_close_gl +/testcase/utc_in_fill_empty_trapezoid_gl +/testcase/utc_in_fill_trapezoid_gl +/testcase/utc_infinite_join_gl +/testcase/utc_invalid_matrix_gl +#/testcase/utc_inverse_text_gl +/testcase/utc_inverted_clip_gl +/testcase/utc_joins_gl +/testcase/utc_joins_loop_gl +/testcase/utc_joins_retrace_gl +/testcase/utc_joins_star_gl +/testcase/utc_large_clip_gl +/testcase/utc_large_font_gl +/testcase/utc_large_source_gl +/testcase/utc_large_source_roi_gl +#/testcase/utc_large_twin_antialias_mixed_gl +/testcase/utc_leaky_dash_gl +/testcase/utc_leaky_dashed_rectangle_gl +/testcase/utc_leaky_dashed_stroke_gl +/testcase/utc_leaky_polygon_gl +/testcase/utc_linear_gradient_gl +/testcase/utc_linear_gradient_extend_gl +#/testcase/utc_linear_gradient_large_gl +/testcase/utc_linear_gradient_one_stop_gl +/testcase/utc_linear_gradient_reflect_gl +/testcase/utc_linear_gradient_subset_gl +/testcase/utc_linear_step_function_gl +/testcase/utc_linear_uniform_gl +/testcase/utc_line_width_gl +/testcase/utc_a1_line_width_gl +/testcase/utc_line_width_large_overlap_gl +/testcase/utc_line_width_large_overlap_offset_gl +/testcase/utc_line_width_large_overlap_rotated_gl +/testcase/utc_line_width_large_overlap_flipped_gl +/testcase/utc_line_width_large_overlap_flopped_gl +#/testcase/utc_line_width_large_overlap_dashed_gl +/testcase/utc_line_width_overlap_gl +/testcase/utc_line_width_overlap_offset_gl +/testcase/utc_line_width_overlap_rotated_gl +/testcase/utc_line_width_overlap_flipped_gl +/testcase/utc_line_width_overlap_flopped_gl +#/testcase/utc_line_width_overlap_dashed_gl +/testcase/utc_line_width_scale_gl +/testcase/utc_line_width_tolerance_gl +/testcase/utc_line_width_zero_gl +/testcase/utc_long_dashed_lines_gl +#/testcase/utc_long_lines_gl +#/testcase/utc_map_all_to_image_gl +#/testcase/utc_map_bit_to_image_gl +/testcase/utc_map_to_image_fill_gl +/testcase/utc_mask_alpha_gl +#/testcase/utc_mask_gl +/testcase/utc_mask_ctm_gl +#/testcase/utc_mask_glyphs_gl +/testcase/utc_mask_surface_ctm_gl +/testcase/utc_mask_transformed_image_gl +/testcase/utc_mask_transformed_similar_gl +/testcase/utc_mesh_pattern_accuracy_gl +/testcase/utc_mesh_pattern_gl +/testcase/utc_mesh_pattern_conical_gl +/testcase/utc_mesh_pattern_control_points_gl +/testcase/utc_mesh_pattern_fold_gl +/testcase/utc_mesh_pattern_overlap_gl +/testcase/utc_mesh_pattern_transformed_gl +/testcase/utc_mime_data_gl +/testcase/utc_mime_surface_api_gl +#/testcase/utc_mime_surface_gl +/testcase/utc_miter_precision_gl +/testcase/utc_move_to_show_surface_gl +#/testcase/utc_multi_page_gl +/testcase/utc_negative_stride_image_gl +/testcase/utc_new_sub_path_gl +/testcase/utc_nil_surface_gl +/testcase/utc_operator_alpha_alpha_gl +/testcase/utc_operator_alpha_gl +/testcase/utc_operator_gl +/testcase/utc_operator_clear_gl +#/testcase/utc_operator_source_gl +/testcase/utc_over_above_source_gl +/testcase/utc_over_around_source_gl +/testcase/utc_over_below_source_gl +/testcase/utc_over_between_source_gl +/testcase/utc_overlapping_boxes_gl +#/testcase/utc_overlapping_dash_caps_gl +/testcase/utc_overlapping_glyphs_gl +/testcase/utc_paint_gl +/testcase/utc_paint_clip_fill_mono_gl +/testcase/utc_paint_clip_fill_aa_gl +/testcase/utc_paint_repeat_gl +/testcase/utc_paint_source_alpha_gl +/testcase/utc_paint_with_alpha_gl +/testcase/utc_paint_with_alpha_solid_clip_gl +/testcase/utc_paint_with_alpha_clip_gl +/testcase/utc_paint_with_alpha_clip_mask_gl +/testcase/utc_partial_clip_text_top_gl +/testcase/utc_partial_clip_text_bottom_gl +/testcase/utc_partial_clip_text_left_gl +/testcase/utc_partial_clip_text_right_gl +#/testcase/utc_partial_coverage_rectangles_gl +#/testcase/utc_partial_coverage_intersecting_quads_gl +#/testcase/utc_partial_coverage_intersecting_triangles_gl +#/testcase/utc_partial_coverage_triangles_gl +#/testcase/utc_partial_coverage_overlap_three_quarter_triangles_gl +#/testcase/utc_partial_coverage_overlap_half_triangles_eo_gl +#/testcase/utc_partial_coverage_overlap_half_triangles_gl +#/testcase/utc_partial_coverage_half_triangles_gl +/testcase/utc_partial_coverage_reference_gl +/testcase/utc_partial_coverage_three_quarter_reference_gl +/testcase/utc_partial_coverage_half_reference_gl +/testcase/utc_pass_through_gl +/testcase/utc_path_append_gl +/testcase/utc_path_precision_gl +/testcase/utc_path_stroke_twice_gl +/testcase/utc_pattern_getters_gl +/testcase/utc_pattern_get_type_gl +#/testcase/utc_pdf_features_gl +/testcase/utc_pdf_isolated_group_gl +#/testcase/utc_pdf_mime_data_gl +#/testcase/utc_pdf_surface_source_gl +/testcase/utc_pixman_rotate_gl +#/testcase/utc_png_gl +#/testcase/utc_ps_eps_gl +#/testcase/utc_ps_features_gl +#/testcase/utc_ps_surface_source_gl +/testcase/utc_pthread_same_source_gl +#/testcase/utc_pthread_show_text_gl +/testcase/utc_pthread_similar_gl +/testcase/utc_push_group_gl +/testcase/utc_push_group_color_gl +/testcase/utc_push_group_path_offset_gl +#/testcase/utc_quartz_surface_source_gl +/testcase/utc_radial_gradient_gl +/testcase/utc_radial_gradient_mask_gl +#/testcase/utc_radial_gradient_source_gl +/testcase/utc_radial_gradient_mask_source_gl +/testcase/utc_radial_gradient_one_stop_gl +/testcase/utc_radial_gradient_extend_gl +#/testcase/utc_radial_outer_focus_gl +#/testcase/utc_random_clip_gl +#/testcase/utc_random_intersections_curves_eo_gl +#/testcase/utc_random_intersections_curves_nz_gl +#/testcase/utc_random_intersections_eo_gl +#/testcase/utc_random_intersections_nonzero_gl +/testcase/utc_record_paint_gl +/testcase/utc_record_paint_alpha_gl +/testcase/utc_record_paint_alpha_solid_clip_gl +/testcase/utc_record_paint_alpha_clip_gl +/testcase/utc_record_paint_alpha_clip_mask_gl +/testcase/utc_record_fill_alpha_gl +#/testcase/utc_record_select_font_face_gl +/testcase/utc_record_self_intersecting_gl +#/testcase/utc_record_text_transform_gl +/testcase/utc_record1414x_fill_alpha_gl +/testcase/utc_record1414x_paint_gl +/testcase/utc_record1414x_paint_alpha_gl +/testcase/utc_record1414x_paint_alpha_clip_gl +#/testcase/utc_record1414x_paint_alpha_clip_mask_gl +/testcase/utc_record1414x_paint_alpha_solid_clip_gl +#/testcase/utc_record1414x_select_font_face_gl +/testcase/utc_record1414x_self_intersecting_gl +/testcase/utc_record1414x_text_transform_gl +/testcase/utc_record2x_fill_alpha_gl +/testcase/utc_record2x_paint_gl +/testcase/utc_record2x_paint_alpha_gl +/testcase/utc_record2x_paint_alpha_clip_gl +/testcase/utc_record2x_paint_alpha_clip_mask_gl +/testcase/utc_record2x_paint_alpha_solid_clip_gl +#/testcase/utc_record2x_select_font_face_gl +/testcase/utc_record2x_self_intersecting_gl +/testcase/utc_record2x_text_transform_gl +/testcase/utc_record90_fill_alpha_gl +/testcase/utc_record90_paint_gl +/testcase/utc_record90_paint_alpha_gl +/testcase/utc_record90_paint_alpha_clip_gl +#/testcase/utc_record90_paint_alpha_clip_mask_gl +/testcase/utc_record90_paint_alpha_solid_clip_gl +#/testcase/utc_record90_select_font_face_gl +/testcase/utc_record90_self_intersecting_gl +/testcase/utc_record90_text_transform_gl +/testcase/utc_raster_source_gl +/testcase/utc_record_extend_none_gl +/testcase/utc_record_extend_pad_gl +/testcase/utc_record_extend_repeat_gl +/testcase/utc_record_extend_reflect_gl +/testcase/utc_record_extend_none_similar_gl +/testcase/utc_record_extend_pad_similar_gl +/testcase/utc_record_extend_repeat_similar_gl +/testcase/utc_record_extend_reflect_similar_gl +/testcase/utc_recording_surface_extend_none_gl +/testcase/utc_recording_surface_extend_repeat_gl +/testcase/utc_recording_surface_extend_reflect_gl +#/testcase/utc_recording_surface_extend_pad_gl +/testcase/utc_recording_surface_over_gl +/testcase/utc_recording_surface_source_gl +/testcase/utc_record_mesh_gl +/testcase/utc_rectangle_rounding_error_gl +/testcase/utc_rectilinear_dash_gl +/testcase/utc_rectilinear_dash_scale_gl +#/testcase/utc_rectilinear_dash_scale_unaligned_gl +/testcase/utc_rectilinear_fill_gl +/testcase/utc_rectilinear_grid_gl +/testcase/utc_a1_rectilinear_grid_gl +/testcase/utc_rectilinear_miter_limit_gl +/testcase/utc_rectilinear_stroke_gl +/testcase/utc_reflected_stroke_gl +#/testcase/utc_rel_path_gl +/testcase/utc_rgb24_ignore_alpha_gl +/testcase/utc_rotated_clip_gl +/testcase/utc_rotate_image_surface_paint_gl +/testcase/utc_clip_rotate_image_surface_paint_gl +#/testcase/utc_rotate_clip_image_surface_paint_gl +/testcase/utc_rounded_rectangle_fill_gl +/testcase/utc_rounded_rectangle_stroke_gl +/testcase/utc_scaled_font_zero_matrix_gl +/testcase/utc_scale_down_source_surface_paint_gl +/testcase/utc_scale_offset_image_gl +/testcase/utc_scale_offset_similar_gl +/testcase/utc_scale_source_surface_paint_gl +#/testcase/utc_select_font_face_gl +/testcase/utc_select_font_no_show_text_gl +/testcase/utc_self_copy_gl +#/testcase/utc_self_copy_overlap_gl +/testcase/utc_self_intersecting_gl +/testcase/utc_set_source_gl +/testcase/utc_shape_general_convex_gl +/testcase/utc_shape_sierpinski_gl +/testcase/utc_show_glyphs_advance_gl +/testcase/utc_show_glyphs_many_gl +#/testcase/utc_show_text_current_point_gl +/testcase/utc_skew_extreme_gl +/testcase/utc_smask_gl +/testcase/utc_smask_fill_gl +/testcase/utc_smask_image_mask_gl +/testcase/utc_smask_mask_gl +/testcase/utc_smask_paint_gl +/testcase/utc_smask_stroke_gl +#/testcase/utc_smask_text_gl +/testcase/utc_solid_pattern_cache_stress_gl +/testcase/utc_source_clip_gl +/testcase/utc_source_clip_scale_gl +/testcase/utc_source_surface_scale_paint_gl +/testcase/utc_spline_decomposition_gl +/testcase/utc_stride_12_image_gl +/testcase/utc_stroke_ctm_caps_gl +/testcase/utc_stroke_image_gl +/testcase/utc_stroke_open_box_gl +/testcase/utc_stroke_pattern_gl +/testcase/utc_subsurface_gl +/testcase/utc_subsurface_image_repeat_gl +/testcase/utc_subsurface_modify_child_gl +/testcase/utc_subsurface_modify_parent_gl +/testcase/utc_subsurface_outside_target_gl +/testcase/utc_subsurface_pad_gl +/testcase/utc_subsurface_reflect_gl +/testcase/utc_subsurface_repeat_gl +/testcase/utc_subsurface_scale_gl +/testcase/utc_subsurface_similar_repeat_gl +/testcase/utc_surface_finish_twice_gl +/testcase/utc_surface_pattern_big_scale_down_gl +/testcase/utc_surface_pattern_gl +/testcase/utc_surface_pattern_operator_gl +/testcase/utc_surface_pattern_scale_down_gl +/testcase/utc_surface_pattern_scale_down_extend_repeat_gl +/testcase/utc_surface_pattern_scale_down_extend_none_gl +/testcase/utc_surface_pattern_scale_down_extend_reflect_gl +/testcase/utc_surface_pattern_scale_down_extend_pad_gl +/testcase/utc_surface_pattern_scale_up_gl +#/testcase/utc_svg_clip_gl +#/testcase/utc_svg_surface_gl +#/testcase/utc_svg_surface_source_gl +#/testcase/utc_text_antialias_gray_gl +#/testcase/utc_text_antialias_none_gl +#/testcase/utc_text_antialias_subpixel_gl +#/testcase/utc_text_antialias_subpixel_bgr_gl +#/testcase/utc_text_antialias_subpixel_rgb_gl +#/testcase/utc_text_antialias_subpixel_vbgr_gl +#/testcase/utc_text_antialias_subpixel_vrgb_gl +/testcase/utc_text_cache_crash_gl +/testcase/utc_text_glyph_range_gl +#/testcase/utc_text_pattern_gl +#/testcase/utc_text_rotate_gl +#/testcase/utc_text_transform_gl +/testcase/utc_text_zero_len_gl +/testcase/utc_tiger_gl +/testcase/utc_a1_tiger_gl +/testcase/utc_tighten_bounds_gl +/testcase/utc_toy_font_face_gl +/testcase/utc_transforms_gl +/testcase/utc_translate_show_surface_gl +/testcase/utc_trap_clip_gl +/testcase/utc_twin_antialias_gray_gl +#/testcase/utc_twin_antialias_mixed_gl +/testcase/utc_twin_antialias_none_gl +#/testcase/utc_twin_antialias_subpixel_gl +/testcase/utc_twin_gl +/testcase/utc_unaligned_box_gl +/testcase/utc_unantialiased_shapes_gl +/testcase/utc_unbounded_operator_gl +/testcase/utc_unclosed_strokes_gl +/testcase/utc_user_data_gl +/testcase/utc_user_font_gl +/testcase/utc_user_font_mask_gl +#/testcase/utc_user_font_proxy_gl +#/testcase/utc_user_font_rescale_gl +/testcase/utc_white_in_noop_gl +/testcase/utc_world_map_gl +/testcase/utc_world_map_stroke_gl +/testcase/utc_world_map_fill_gl +/testcase/utc_xcb_huge_image_shm_gl +/testcase/utc_xcb_snapshot_assert_gl +/testcase/utc_xcb_stress_cache_gl +/testcase/utc_xcb_surface_source_gl +/testcase/utc_xcomposite_projection_gl +/testcase/utc_xlib_expose_event_gl +#/testcase/utc_xlib_surface_gl +/testcase/utc_xlib_surface_source_gl +/testcase/utc_zero_alpha_gl +/testcase/utc_zero_mask_gl +/testcase/utc_arc_direction_gl diff --git a/TC/testcase/utc_a1_bug_gl.c b/TC/testcase/utc_a1_bug_gl.c new file mode 100644 index 0000000..7056917 --- /dev/null +++ b/TC/testcase/utc_a1_bug_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_bug1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_bug1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_bug1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-bug", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_bug1"); + else + dts_fail("utc_cairo_a1_bug1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_bug_image.c b/TC/testcase/utc_a1_bug_image.c new file mode 100644 index 0000000..42b5ae0 --- /dev/null +++ b/TC/testcase/utc_a1_bug_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_bug1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_bug1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_bug1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-bug", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_bug1"); + else + dts_fail("utc_cairo_a1_bug1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_equal_gl.c b/TC/testcase/utc_a1_clip_fill_equal_gl.c new file mode 100644 index 0000000..abdab0e --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_equal_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill_equal1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill_equal1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill_equal1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill-equal", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill_equal1"); + else + dts_fail("utc_cairo_a1_clip_fill_equal1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_equal_image.c b/TC/testcase/utc_a1_clip_fill_equal_image.c new file mode 100644 index 0000000..cb6f5bf --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_equal_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill_equal1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill_equal1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill_equal1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill-equal", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill_equal1"); + else + dts_fail("utc_cairo_a1_clip_fill_equal1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_gl.c b/TC/testcase/utc_a1_clip_fill_gl.c new file mode 100644 index 0000000..74eaff9 --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill1"); + else + dts_fail("utc_cairo_a1_clip_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_image.c b/TC/testcase/utc_a1_clip_fill_image.c new file mode 100644 index 0000000..14d9cdf --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill1"); + else + dts_fail("utc_cairo_a1_clip_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_rule_gl.c b/TC/testcase/utc_a1_clip_fill_rule_gl.c new file mode 100644 index 0000000..c884e92 --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_rule_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill_rule1"); + else + dts_fail("utc_cairo_a1_clip_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_fill_rule_image.c b/TC/testcase/utc_a1_clip_fill_rule_image.c new file mode 100644 index 0000000..6801c8f --- /dev/null +++ b/TC/testcase/utc_a1_clip_fill_rule_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_fill_rule1"); + else + dts_fail("utc_cairo_a1_clip_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_paint_gl.c b/TC/testcase/utc_a1_clip_paint_gl.c new file mode 100644 index 0000000..5d77aee --- /dev/null +++ b/TC/testcase/utc_a1_clip_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_paint1"); + else + dts_fail("utc_cairo_a1_clip_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_paint_image.c b/TC/testcase/utc_a1_clip_paint_image.c new file mode 100644 index 0000000..c47f5ca --- /dev/null +++ b/TC/testcase/utc_a1_clip_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_paint1"); + else + dts_fail("utc_cairo_a1_clip_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_stroke_gl.c b/TC/testcase/utc_a1_clip_stroke_gl.c new file mode 100644 index 0000000..1651ca4 --- /dev/null +++ b/TC/testcase/utc_a1_clip_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_stroke1"); + else + dts_fail("utc_cairo_a1_clip_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_clip_stroke_image.c b/TC/testcase/utc_a1_clip_stroke_image.c new file mode 100644 index 0000000..c2dc2e4 --- /dev/null +++ b/TC/testcase/utc_a1_clip_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_clip_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_clip_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_clip_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-clip-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_clip_stroke1"); + else + dts_fail("utc_cairo_a1_clip_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_fill_gl.c b/TC/testcase/utc_a1_fill_gl.c new file mode 100644 index 0000000..373f06f --- /dev/null +++ b/TC/testcase/utc_a1_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_fill1"); + else + dts_fail("utc_cairo_a1_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_fill_image.c b/TC/testcase/utc_a1_fill_image.c new file mode 100644 index 0000000..de60900 --- /dev/null +++ b/TC/testcase/utc_a1_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_fill1"); + else + dts_fail("utc_cairo_a1_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_image_sample_gl.c b/TC/testcase/utc_a1_image_sample_gl.c new file mode 100644 index 0000000..10ee5b1 --- /dev/null +++ b/TC/testcase/utc_a1_image_sample_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_image_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_image_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_image_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-image-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_image_sample1"); + else + dts_fail("utc_cairo_a1_image_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_image_sample_image.c b/TC/testcase/utc_a1_image_sample_image.c new file mode 100644 index 0000000..e22c238 --- /dev/null +++ b/TC/testcase/utc_a1_image_sample_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_image_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_image_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_image_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-image-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_image_sample1"); + else + dts_fail("utc_cairo_a1_image_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_line_width_gl.c b/TC/testcase/utc_a1_line_width_gl.c new file mode 100644 index 0000000..304b32f --- /dev/null +++ b/TC/testcase/utc_a1_line_width_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_line_width1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_line_width1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_line_width1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-line-width", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_line_width1"); + else + dts_fail("utc_cairo_a1_line_width1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_line_width_image.c b/TC/testcase/utc_a1_line_width_image.c new file mode 100644 index 0000000..8de9023 --- /dev/null +++ b/TC/testcase/utc_a1_line_width_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_line_width1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_line_width1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_line_width1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-line-width", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_line_width1"); + else + dts_fail("utc_cairo_a1_line_width1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_mask_gl.c b/TC/testcase/utc_a1_mask_gl.c new file mode 100644 index 0000000..7927b71 --- /dev/null +++ b/TC/testcase/utc_a1_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_mask1"); + else + dts_fail("utc_cairo_a1_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_mask_image.c b/TC/testcase/utc_a1_mask_image.c new file mode 100644 index 0000000..3b55f58 --- /dev/null +++ b/TC/testcase/utc_a1_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_mask1"); + else + dts_fail("utc_cairo_a1_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_mask_sample_gl.c b/TC/testcase/utc_a1_mask_sample_gl.c new file mode 100644 index 0000000..17d96f9 --- /dev/null +++ b/TC/testcase/utc_a1_mask_sample_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_mask_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_mask_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_mask_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-mask-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_mask_sample1"); + else + dts_fail("utc_cairo_a1_mask_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_mask_sample_image.c b/TC/testcase/utc_a1_mask_sample_image.c new file mode 100644 index 0000000..cb4386a --- /dev/null +++ b/TC/testcase/utc_a1_mask_sample_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_mask_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_mask_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_mask_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-mask-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_mask_sample1"); + else + dts_fail("utc_cairo_a1_mask_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rasterisation_rectangles_gl.c b/TC/testcase/utc_a1_rasterisation_rectangles_gl.c new file mode 100644 index 0000000..db96e94 --- /dev/null +++ b/TC/testcase/utc_a1_rasterisation_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rasterisation_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rasterisation_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rasterisation_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rasterisation-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rasterisation_rectangles1"); + else + dts_fail("utc_cairo_a1_rasterisation_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rasterisation_rectangles_image.c b/TC/testcase/utc_a1_rasterisation_rectangles_image.c new file mode 100644 index 0000000..b4dc16a --- /dev/null +++ b/TC/testcase/utc_a1_rasterisation_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rasterisation_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rasterisation_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rasterisation_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rasterisation-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rasterisation_rectangles1"); + else + dts_fail("utc_cairo_a1_rasterisation_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rasterisation_triangles_gl.c b/TC/testcase/utc_a1_rasterisation_triangles_gl.c new file mode 100644 index 0000000..cc3dd7a --- /dev/null +++ b/TC/testcase/utc_a1_rasterisation_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rasterisation_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rasterisation_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rasterisation_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rasterisation-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rasterisation_triangles1"); + else + dts_fail("utc_cairo_a1_rasterisation_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rasterisation_triangles_image.c b/TC/testcase/utc_a1_rasterisation_triangles_image.c new file mode 100644 index 0000000..004cbf8 --- /dev/null +++ b/TC/testcase/utc_a1_rasterisation_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rasterisation_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rasterisation_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rasterisation_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rasterisation-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rasterisation_triangles1"); + else + dts_fail("utc_cairo_a1_rasterisation_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rectilinear_grid_gl.c b/TC/testcase/utc_a1_rectilinear_grid_gl.c new file mode 100644 index 0000000..3bf52e2 --- /dev/null +++ b/TC/testcase/utc_a1_rectilinear_grid_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rectilinear_grid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rectilinear_grid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rectilinear_grid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rectilinear-grid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rectilinear_grid1"); + else + dts_fail("utc_cairo_a1_rectilinear_grid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_rectilinear_grid_image.c b/TC/testcase/utc_a1_rectilinear_grid_image.c new file mode 100644 index 0000000..9d18876 --- /dev/null +++ b/TC/testcase/utc_a1_rectilinear_grid_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_rectilinear_grid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_rectilinear_grid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_rectilinear_grid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-rectilinear-grid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_rectilinear_grid1"); + else + dts_fail("utc_cairo_a1_rectilinear_grid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_sample_gl.c b/TC/testcase/utc_a1_sample_gl.c new file mode 100644 index 0000000..99cae72 --- /dev/null +++ b/TC/testcase/utc_a1_sample_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_sample1"); + else + dts_fail("utc_cairo_a1_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_sample_image.c b/TC/testcase/utc_a1_sample_image.c new file mode 100644 index 0000000..57c0051 --- /dev/null +++ b/TC/testcase/utc_a1_sample_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_sample1"); + else + dts_fail("utc_cairo_a1_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_tiger_gl.c b/TC/testcase/utc_a1_tiger_gl.c new file mode 100644 index 0000000..39627ed --- /dev/null +++ b/TC/testcase/utc_a1_tiger_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_tiger1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_tiger1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_tiger1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-tiger", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_tiger1"); + else + dts_fail("utc_cairo_a1_tiger1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_tiger_image.c b/TC/testcase/utc_a1_tiger_image.c new file mode 100644 index 0000000..f00d096 --- /dev/null +++ b/TC/testcase/utc_a1_tiger_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_tiger1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_tiger1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_tiger1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-tiger", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_tiger1"); + else + dts_fail("utc_cairo_a1_tiger1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_traps_sample_gl.c b/TC/testcase/utc_a1_traps_sample_gl.c new file mode 100644 index 0000000..4d451a5 --- /dev/null +++ b/TC/testcase/utc_a1_traps_sample_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_traps_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_traps_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_traps_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-traps-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_traps_sample1"); + else + dts_fail("utc_cairo_a1_traps_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a1_traps_sample_image.c b/TC/testcase/utc_a1_traps_sample_image.c new file mode 100644 index 0000000..3f10704 --- /dev/null +++ b/TC/testcase/utc_a1_traps_sample_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a1_traps_sample1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a1_traps_sample1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a1_traps_sample1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a1-traps-sample", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a1_traps_sample1"); + else + dts_fail("utc_cairo_a1_traps_sample1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a8_clear_gl.c b/TC/testcase/utc_a8_clear_gl.c new file mode 100644 index 0000000..7e45230 --- /dev/null +++ b/TC/testcase/utc_a8_clear_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a8_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a8_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a8_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a8-clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a8_clear1"); + else + dts_fail("utc_cairo_a8_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a8_clear_image.c b/TC/testcase/utc_a8_clear_image.c new file mode 100644 index 0000000..738681c --- /dev/null +++ b/TC/testcase/utc_a8_clear_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a8_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a8_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a8_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a8-clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a8_clear1"); + else + dts_fail("utc_cairo_a8_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a8_mask_gl.c b/TC/testcase/utc_a8_mask_gl.c new file mode 100644 index 0000000..7c22e80 --- /dev/null +++ b/TC/testcase/utc_a8_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a8_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a8_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a8_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a8-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a8_mask1"); + else + dts_fail("utc_cairo_a8_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_a8_mask_image.c b/TC/testcase/utc_a8_mask_image.c new file mode 100644 index 0000000..9712190 --- /dev/null +++ b/TC/testcase/utc_a8_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_a8_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_a8_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_a8_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite a8-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_a8_mask1"); + else + dts_fail("utc_cairo_a8_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_aliasing_gl.c b/TC/testcase/utc_aliasing_gl.c new file mode 100644 index 0000000..1d02baf --- /dev/null +++ b/TC/testcase/utc_aliasing_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_aliasing1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_aliasing1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_aliasing1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite aliasing", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_aliasing1"); + else + dts_fail("utc_cairo_aliasing1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_aliasing_image.c b/TC/testcase/utc_aliasing_image.c new file mode 100644 index 0000000..540c8a8 --- /dev/null +++ b/TC/testcase/utc_aliasing_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_aliasing1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_aliasing1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_aliasing1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite aliasing", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_aliasing1"); + else + dts_fail("utc_cairo_aliasing1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_alpha_similar_gl.c b/TC/testcase/utc_alpha_similar_gl.c new file mode 100644 index 0000000..505b534 --- /dev/null +++ b/TC/testcase/utc_alpha_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_alpha_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_alpha_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_alpha_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite alpha-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_alpha_similar1"); + else + dts_fail("utc_cairo_alpha_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_alpha_similar_image.c b/TC/testcase/utc_alpha_similar_image.c new file mode 100644 index 0000000..84751e9 --- /dev/null +++ b/TC/testcase/utc_alpha_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_alpha_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_alpha_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_alpha_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite alpha-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_alpha_similar1"); + else + dts_fail("utc_cairo_alpha_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_api_special_cases_gl.c b/TC/testcase/utc_api_special_cases_gl.c new file mode 100644 index 0000000..dfce48e --- /dev/null +++ b/TC/testcase/utc_api_special_cases_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_api_special_cases1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_api_special_cases1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_api_special_cases1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite api-special-cases", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_api_special_cases1"); + else + dts_fail("utc_cairo_api_special_cases1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_api_special_cases_image.c b/TC/testcase/utc_api_special_cases_image.c new file mode 100644 index 0000000..d2733dd --- /dev/null +++ b/TC/testcase/utc_api_special_cases_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_api_special_cases1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_api_special_cases1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_api_special_cases1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite api-special-cases", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_api_special_cases1"); + else + dts_fail("utc_cairo_api_special_cases1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_direction_gl.c b/TC/testcase/utc_arc_direction_gl.c new file mode 100644 index 0000000..fa68589 --- /dev/null +++ b/TC/testcase/utc_arc_direction_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_direction1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_direction1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_direction1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-direction", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_direction1"); + else + dts_fail("utc_cairo_arc_direction1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_direction_image.c b/TC/testcase/utc_arc_direction_image.c new file mode 100644 index 0000000..9e80ab2 --- /dev/null +++ b/TC/testcase/utc_arc_direction_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_direction1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_direction1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_direction1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-direction", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_direction1"); + else + dts_fail("utc_cairo_arc_direction1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_infinite_loop_gl.c b/TC/testcase/utc_arc_infinite_loop_gl.c new file mode 100644 index 0000000..1efeb1e --- /dev/null +++ b/TC/testcase/utc_arc_infinite_loop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_infinite_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_infinite_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_infinite_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-infinite-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_infinite_loop1"); + else + dts_fail("utc_cairo_arc_infinite_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_infinite_loop_image.c b/TC/testcase/utc_arc_infinite_loop_image.c new file mode 100644 index 0000000..83353c3 --- /dev/null +++ b/TC/testcase/utc_arc_infinite_loop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_infinite_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_infinite_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_infinite_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-infinite-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_infinite_loop1"); + else + dts_fail("utc_cairo_arc_infinite_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_looping_dash_gl.c b/TC/testcase/utc_arc_looping_dash_gl.c new file mode 100644 index 0000000..6bc458a --- /dev/null +++ b/TC/testcase/utc_arc_looping_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_looping_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_looping_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_looping_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-looping-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_looping_dash1"); + else + dts_fail("utc_cairo_arc_looping_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_arc_looping_dash_image.c b/TC/testcase/utc_arc_looping_dash_image.c new file mode 100644 index 0000000..eda0dc6 --- /dev/null +++ b/TC/testcase/utc_arc_looping_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_arc_looping_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_arc_looping_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_arc_looping_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite arc-looping-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_arc_looping_dash1"); + else + dts_fail("utc_cairo_arc_looping_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_empty_box_gl.c b/TC/testcase/utc_big_empty_box_gl.c new file mode 100644 index 0000000..2cad36e --- /dev/null +++ b/TC/testcase/utc_big_empty_box_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_empty_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_empty_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_empty_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-empty-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_empty_box1"); + else + dts_fail("utc_cairo_big_empty_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_empty_box_image.c b/TC/testcase/utc_big_empty_box_image.c new file mode 100644 index 0000000..087e24a --- /dev/null +++ b/TC/testcase/utc_big_empty_box_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_empty_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_empty_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_empty_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-empty-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_empty_box1"); + else + dts_fail("utc_cairo_big_empty_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_empty_triangle_gl.c b/TC/testcase/utc_big_empty_triangle_gl.c new file mode 100644 index 0000000..77f8c3f --- /dev/null +++ b/TC/testcase/utc_big_empty_triangle_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_empty_triangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_empty_triangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_empty_triangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-empty-triangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_empty_triangle1"); + else + dts_fail("utc_cairo_big_empty_triangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_empty_triangle_image.c b/TC/testcase/utc_big_empty_triangle_image.c new file mode 100644 index 0000000..993c4d4 --- /dev/null +++ b/TC/testcase/utc_big_empty_triangle_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_empty_triangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_empty_triangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_empty_triangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-empty-triangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_empty_triangle1"); + else + dts_fail("utc_cairo_big_empty_triangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_line_gl.c b/TC/testcase/utc_big_line_gl.c new file mode 100644 index 0000000..b35ed29 --- /dev/null +++ b/TC/testcase/utc_big_line_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_line1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_line1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_line1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-line", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_line1"); + else + dts_fail("utc_cairo_big_line1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_line_image.c b/TC/testcase/utc_big_line_image.c new file mode 100644 index 0000000..0917466 --- /dev/null +++ b/TC/testcase/utc_big_line_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_line1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_line1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_line1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-line", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_line1"); + else + dts_fail("utc_cairo_big_line1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_little_box_gl.c b/TC/testcase/utc_big_little_box_gl.c new file mode 100644 index 0000000..abc235a --- /dev/null +++ b/TC/testcase/utc_big_little_box_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_little_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_little_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_little_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-little-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_little_box1"); + else + dts_fail("utc_cairo_big_little_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_little_box_image.c b/TC/testcase/utc_big_little_box_image.c new file mode 100644 index 0000000..f0c4ad9 --- /dev/null +++ b/TC/testcase/utc_big_little_box_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_little_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_little_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_little_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-little-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_little_box1"); + else + dts_fail("utc_cairo_big_little_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_little_triangle_gl.c b/TC/testcase/utc_big_little_triangle_gl.c new file mode 100644 index 0000000..00e6d59 --- /dev/null +++ b/TC/testcase/utc_big_little_triangle_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_little_triangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_little_triangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_little_triangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-little-triangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_little_triangle1"); + else + dts_fail("utc_cairo_big_little_triangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_little_triangle_image.c b/TC/testcase/utc_big_little_triangle_image.c new file mode 100644 index 0000000..7c58ed8 --- /dev/null +++ b/TC/testcase/utc_big_little_triangle_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_little_triangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_little_triangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_little_triangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-little-triangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_little_triangle1"); + else + dts_fail("utc_cairo_big_little_triangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_trap_gl.c b/TC/testcase/utc_big_trap_gl.c new file mode 100644 index 0000000..77e87cc --- /dev/null +++ b/TC/testcase/utc_big_trap_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_trap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_trap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_trap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-trap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_trap1"); + else + dts_fail("utc_cairo_big_trap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_big_trap_image.c b/TC/testcase/utc_big_trap_image.c new file mode 100644 index 0000000..f6be38f --- /dev/null +++ b/TC/testcase/utc_big_trap_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_big_trap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_big_trap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_big_trap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite big-trap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_big_trap1"); + else + dts_fail("utc_cairo_big_trap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bilevel_image_gl.c b/TC/testcase/utc_bilevel_image_gl.c new file mode 100644 index 0000000..9659005 --- /dev/null +++ b/TC/testcase/utc_bilevel_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bilevel_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bilevel_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bilevel_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bilevel-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bilevel_image1"); + else + dts_fail("utc_cairo_bilevel_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bilevel_image_image.c b/TC/testcase/utc_bilevel_image_image.c new file mode 100644 index 0000000..756d148 --- /dev/null +++ b/TC/testcase/utc_bilevel_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bilevel_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bilevel_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bilevel_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bilevel-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bilevel_image1"); + else + dts_fail("utc_cairo_bilevel_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bitmap_font_gl.c b/TC/testcase/utc_bitmap_font_gl.c new file mode 100644 index 0000000..78cd9e8 --- /dev/null +++ b/TC/testcase/utc_bitmap_font_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bitmap_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bitmap_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bitmap_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bitmap-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bitmap_font1"); + else + dts_fail("utc_cairo_bitmap_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bitmap_font_image.c b/TC/testcase/utc_bitmap_font_image.c new file mode 100644 index 0000000..e775e42 --- /dev/null +++ b/TC/testcase/utc_bitmap_font_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bitmap_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bitmap_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bitmap_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bitmap-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bitmap_font1"); + else + dts_fail("utc_cairo_bitmap_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_40410_gl.c b/TC/testcase/utc_bug_40410_gl.c new file mode 100644 index 0000000..7d6b453 --- /dev/null +++ b/TC/testcase/utc_bug_40410_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_404101(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_404101, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_404101(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-40410", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_404101"); + else + dts_fail("utc_cairo_bug_404101"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_40410_image.c b/TC/testcase/utc_bug_40410_image.c new file mode 100644 index 0000000..6b4d588 --- /dev/null +++ b/TC/testcase/utc_bug_40410_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_404101(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_404101, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_404101(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-40410", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_404101"); + else + dts_fail("utc_cairo_bug_404101"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_bo_rectangular_gl.c b/TC/testcase/utc_bug_bo_rectangular_gl.c new file mode 100644 index 0000000..d450461 --- /dev/null +++ b/TC/testcase/utc_bug_bo_rectangular_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_bo_rectangular1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_bo_rectangular1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_bo_rectangular1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-bo-rectangular", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_bo_rectangular1"); + else + dts_fail("utc_cairo_bug_bo_rectangular1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_bo_rectangular_image.c b/TC/testcase/utc_bug_bo_rectangular_image.c new file mode 100644 index 0000000..9638090 --- /dev/null +++ b/TC/testcase/utc_bug_bo_rectangular_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_bo_rectangular1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_bo_rectangular1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_bo_rectangular1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-bo-rectangular", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_bo_rectangular1"); + else + dts_fail("utc_cairo_bug_bo_rectangular1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_bo_ricotz_gl.c b/TC/testcase/utc_bug_bo_ricotz_gl.c new file mode 100644 index 0000000..fa42ed4 --- /dev/null +++ b/TC/testcase/utc_bug_bo_ricotz_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_bo_ricotz1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_bo_ricotz1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_bo_ricotz1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-bo-ricotz", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_bo_ricotz1"); + else + dts_fail("utc_cairo_bug_bo_ricotz1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_bo_ricotz_image.c b/TC/testcase/utc_bug_bo_ricotz_image.c new file mode 100644 index 0000000..22f41bf --- /dev/null +++ b/TC/testcase/utc_bug_bo_ricotz_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_bo_ricotz1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_bo_ricotz1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_bo_ricotz1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-bo-ricotz", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_bo_ricotz1"); + else + dts_fail("utc_cairo_bug_bo_ricotz1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_extents_gl.c b/TC/testcase/utc_bug_extents_gl.c new file mode 100644 index 0000000..87d0dfc --- /dev/null +++ b/TC/testcase/utc_bug_extents_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_extents1"); + else + dts_fail("utc_cairo_bug_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_extents_image.c b/TC/testcase/utc_bug_extents_image.c new file mode 100644 index 0000000..7e4e4c6 --- /dev/null +++ b/TC/testcase/utc_bug_extents_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_extents1"); + else + dts_fail("utc_cairo_bug_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_seams_gl.c b/TC/testcase/utc_bug_seams_gl.c new file mode 100644 index 0000000..6300cf0 --- /dev/null +++ b/TC/testcase/utc_bug_seams_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_seams1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_seams1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_seams1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-seams", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_seams1"); + else + dts_fail("utc_cairo_bug_seams1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_seams_image.c b/TC/testcase/utc_bug_seams_image.c new file mode 100644 index 0000000..bb6e06f --- /dev/null +++ b/TC/testcase/utc_bug_seams_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_seams1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_seams1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_seams1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-seams", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_seams1"); + else + dts_fail("utc_cairo_bug_seams1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_source_cu_gl.c b/TC/testcase/utc_bug_source_cu_gl.c new file mode 100644 index 0000000..48f596c --- /dev/null +++ b/TC/testcase/utc_bug_source_cu_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_source_cu1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_source_cu1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_source_cu1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-source-cu", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_source_cu1"); + else + dts_fail("utc_cairo_bug_source_cu1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_bug_source_cu_image.c b/TC/testcase/utc_bug_source_cu_image.c new file mode 100644 index 0000000..ed6682a --- /dev/null +++ b/TC/testcase/utc_bug_source_cu_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_bug_source_cu1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_bug_source_cu1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_bug_source_cu1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite bug-source-cu", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_bug_source_cu1"); + else + dts_fail("utc_cairo_bug_source_cu1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_gl.c b/TC/testcase/utc_caps_gl.c new file mode 100644 index 0000000..5b4fb33 --- /dev/null +++ b/TC/testcase/utc_caps_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps1"); + else + dts_fail("utc_cairo_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_image.c b/TC/testcase/utc_caps_image.c new file mode 100644 index 0000000..ff4d982 --- /dev/null +++ b/TC/testcase/utc_caps_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps1"); + else + dts_fail("utc_cairo_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_alpha_gl.c b/TC/testcase/utc_caps_joins_alpha_gl.c new file mode 100644 index 0000000..8ff22c5 --- /dev/null +++ b/TC/testcase/utc_caps_joins_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins_alpha1"); + else + dts_fail("utc_cairo_caps_joins_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_alpha_image.c b/TC/testcase/utc_caps_joins_alpha_image.c new file mode 100644 index 0000000..79f9465 --- /dev/null +++ b/TC/testcase/utc_caps_joins_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins_alpha1"); + else + dts_fail("utc_cairo_caps_joins_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_curve_gl.c b/TC/testcase/utc_caps_joins_curve_gl.c new file mode 100644 index 0000000..c3bdbb2 --- /dev/null +++ b/TC/testcase/utc_caps_joins_curve_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins_curve1"); + else + dts_fail("utc_cairo_caps_joins_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_curve_image.c b/TC/testcase/utc_caps_joins_curve_image.c new file mode 100644 index 0000000..1de2ebe --- /dev/null +++ b/TC/testcase/utc_caps_joins_curve_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins_curve1"); + else + dts_fail("utc_cairo_caps_joins_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_gl.c b/TC/testcase/utc_caps_joins_gl.c new file mode 100644 index 0000000..b571088 --- /dev/null +++ b/TC/testcase/utc_caps_joins_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins1"); + else + dts_fail("utc_cairo_caps_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_joins_image.c b/TC/testcase/utc_caps_joins_image.c new file mode 100644 index 0000000..a3b78ab --- /dev/null +++ b/TC/testcase/utc_caps_joins_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_joins1"); + else + dts_fail("utc_cairo_caps_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_sub_paths_gl.c b/TC/testcase/utc_caps_sub_paths_gl.c new file mode 100644 index 0000000..3a3c695 --- /dev/null +++ b/TC/testcase/utc_caps_sub_paths_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_sub_paths1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_sub_paths1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_sub_paths1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-sub-paths", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_sub_paths1"); + else + dts_fail("utc_cairo_caps_sub_paths1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_sub_paths_image.c b/TC/testcase/utc_caps_sub_paths_image.c new file mode 100644 index 0000000..b03ceab --- /dev/null +++ b/TC/testcase/utc_caps_sub_paths_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_sub_paths1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_sub_paths1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_sub_paths1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-sub-paths", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_sub_paths1"); + else + dts_fail("utc_cairo_caps_sub_paths1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_tails_curve_gl.c b/TC/testcase/utc_caps_tails_curve_gl.c new file mode 100644 index 0000000..f79caa3 --- /dev/null +++ b/TC/testcase/utc_caps_tails_curve_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_tails_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_tails_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_tails_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-tails-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_tails_curve1"); + else + dts_fail("utc_cairo_caps_tails_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_caps_tails_curve_image.c b/TC/testcase/utc_caps_tails_curve_image.c new file mode 100644 index 0000000..8465177 --- /dev/null +++ b/TC/testcase/utc_caps_tails_curve_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_caps_tails_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_caps_tails_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_caps_tails_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite caps-tails-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_caps_tails_curve1"); + else + dts_fail("utc_cairo_caps_tails_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_checkerboard_gl.c b/TC/testcase/utc_checkerboard_gl.c new file mode 100644 index 0000000..c1d4b9c --- /dev/null +++ b/TC/testcase/utc_checkerboard_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_checkerboard1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_checkerboard1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_checkerboard1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite checkerboard", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_checkerboard1"); + else + dts_fail("utc_cairo_checkerboard1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_checkerboard_image.c b/TC/testcase/utc_checkerboard_image.c new file mode 100644 index 0000000..56420bb --- /dev/null +++ b/TC/testcase/utc_checkerboard_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_checkerboard1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_checkerboard1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_checkerboard1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite checkerboard", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_checkerboard1"); + else + dts_fail("utc_cairo_checkerboard1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clear_gl.c b/TC/testcase/utc_clear_gl.c new file mode 100644 index 0000000..6fc13df --- /dev/null +++ b/TC/testcase/utc_clear_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clear1"); + else + dts_fail("utc_cairo_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clear_image.c b/TC/testcase/utc_clear_image.c new file mode 100644 index 0000000..6c7b2e7 --- /dev/null +++ b/TC/testcase/utc_clear_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clear1"); + else + dts_fail("utc_cairo_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clear_source_gl.c b/TC/testcase/utc_clear_source_gl.c new file mode 100644 index 0000000..4dc7533 --- /dev/null +++ b/TC/testcase/utc_clear_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clear_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clear_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clear_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clear-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clear_source1"); + else + dts_fail("utc_cairo_clear_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clear_source_image.c b/TC/testcase/utc_clear_source_image.c new file mode 100644 index 0000000..7cb0dd3 --- /dev/null +++ b/TC/testcase/utc_clear_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clear_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clear_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clear_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clear-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clear_source1"); + else + dts_fail("utc_cairo_clear_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_all_gl.c b/TC/testcase/utc_clip_all_gl.c new file mode 100644 index 0000000..e89c731 --- /dev/null +++ b/TC/testcase/utc_clip_all_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_all1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_all1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_all1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-all", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_all1"); + else + dts_fail("utc_cairo_clip_all1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_all_image.c b/TC/testcase/utc_clip_all_image.c new file mode 100644 index 0000000..2ba9aa6 --- /dev/null +++ b/TC/testcase/utc_clip_all_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_all1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_all1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_all1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-all", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_all1"); + else + dts_fail("utc_cairo_clip_all1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_complex_shape_eo_aa_gl.c b/TC/testcase/utc_clip_complex_shape_eo_aa_gl.c new file mode 100644 index 0000000..c9abfd1 --- /dev/null +++ b/TC/testcase/utc_clip_complex_shape_eo_aa_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_complex_shape_eo_aa1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_complex_shape_eo_aa1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_complex_shape_eo_aa1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-complex-shape-eo-aa", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_complex_shape_eo_aa1"); + else + dts_fail("utc_cairo_clip_complex_shape_eo_aa1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_complex_shape_eo_aa_image.c b/TC/testcase/utc_clip_complex_shape_eo_aa_image.c new file mode 100644 index 0000000..7500e0f --- /dev/null +++ b/TC/testcase/utc_clip_complex_shape_eo_aa_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_complex_shape_eo_aa1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_complex_shape_eo_aa1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_complex_shape_eo_aa1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-complex-shape-eo-aa", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_complex_shape_eo_aa1"); + else + dts_fail("utc_cairo_clip_complex_shape_eo_aa1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_complex_shape_eo_mono_gl.c b/TC/testcase/utc_clip_complex_shape_eo_mono_gl.c new file mode 100644 index 0000000..d1cd8f9 --- /dev/null +++ b/TC/testcase/utc_clip_complex_shape_eo_mono_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_complex_shape_eo_mono1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_complex_shape_eo_mono1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_complex_shape_eo_mono1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-complex-shape-eo-mono", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_complex_shape_eo_mono1"); + else + dts_fail("utc_cairo_clip_complex_shape_eo_mono1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_complex_shape_eo_mono_image.c b/TC/testcase/utc_clip_complex_shape_eo_mono_image.c new file mode 100644 index 0000000..cbafdcd --- /dev/null +++ b/TC/testcase/utc_clip_complex_shape_eo_mono_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_complex_shape_eo_mono1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_complex_shape_eo_mono1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_complex_shape_eo_mono1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-complex-shape-eo-mono", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_complex_shape_eo_mono1"); + else + dts_fail("utc_cairo_clip_complex_shape_eo_mono1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_contexts_gl.c b/TC/testcase/utc_clip_contexts_gl.c new file mode 100644 index 0000000..991c4a4 --- /dev/null +++ b/TC/testcase/utc_clip_contexts_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_contexts1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_contexts1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_contexts1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-contexts", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_contexts1"); + else + dts_fail("utc_cairo_clip_contexts1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_contexts_image.c b/TC/testcase/utc_clip_contexts_image.c new file mode 100644 index 0000000..2ed3ca6 --- /dev/null +++ b/TC/testcase/utc_clip_contexts_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_contexts1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_contexts1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_contexts1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-contexts", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_contexts1"); + else + dts_fail("utc_cairo_clip_contexts1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_device_offset_gl.c b/TC/testcase/utc_clip_device_offset_gl.c new file mode 100644 index 0000000..695a99d --- /dev/null +++ b/TC/testcase/utc_clip_device_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_device_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_device_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_device_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-device-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_device_offset1"); + else + dts_fail("utc_cairo_clip_device_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_device_offset_image.c b/TC/testcase/utc_clip_device_offset_image.c new file mode 100644 index 0000000..987472a --- /dev/null +++ b/TC/testcase/utc_clip_device_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_device_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_device_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_device_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-device-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_device_offset1"); + else + dts_fail("utc_cairo_clip_device_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_disjoint_gl.c b/TC/testcase/utc_clip_disjoint_gl.c new file mode 100644 index 0000000..432f1ae --- /dev/null +++ b/TC/testcase/utc_clip_disjoint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_disjoint1"); + else + dts_fail("utc_cairo_clip_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_disjoint_hatching_gl.c b/TC/testcase/utc_clip_disjoint_hatching_gl.c new file mode 100644 index 0000000..e77d848 --- /dev/null +++ b/TC/testcase/utc_clip_disjoint_hatching_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_disjoint_hatching1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_disjoint_hatching1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_disjoint_hatching1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-disjoint-hatching", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_disjoint_hatching1"); + else + dts_fail("utc_cairo_clip_disjoint_hatching1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_disjoint_hatching_image.c b/TC/testcase/utc_clip_disjoint_hatching_image.c new file mode 100644 index 0000000..d13f96d --- /dev/null +++ b/TC/testcase/utc_clip_disjoint_hatching_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_disjoint_hatching1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_disjoint_hatching1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_disjoint_hatching1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-disjoint-hatching", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_disjoint_hatching1"); + else + dts_fail("utc_cairo_clip_disjoint_hatching1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_disjoint_image.c b/TC/testcase/utc_clip_disjoint_image.c new file mode 100644 index 0000000..ef48b36 --- /dev/null +++ b/TC/testcase/utc_clip_disjoint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_disjoint1"); + else + dts_fail("utc_cairo_clip_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_double_free_gl.c b/TC/testcase/utc_clip_double_free_gl.c new file mode 100644 index 0000000..7c1f006 --- /dev/null +++ b/TC/testcase/utc_clip_double_free_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_double_free1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_double_free1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_double_free1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-double-free", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_double_free1"); + else + dts_fail("utc_cairo_clip_double_free1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_double_free_image.c b/TC/testcase/utc_clip_double_free_image.c new file mode 100644 index 0000000..c9089ea --- /dev/null +++ b/TC/testcase/utc_clip_double_free_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_double_free1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_double_free1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_double_free1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-double-free", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_double_free1"); + else + dts_fail("utc_cairo_clip_double_free1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_gl.c b/TC/testcase/utc_clip_empty_gl.c new file mode 100644 index 0000000..e541f8b --- /dev/null +++ b/TC/testcase/utc_clip_empty_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty1"); + else + dts_fail("utc_cairo_clip_empty1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_group_gl.c b/TC/testcase/utc_clip_empty_group_gl.c new file mode 100644 index 0000000..8e3ca81 --- /dev/null +++ b/TC/testcase/utc_clip_empty_group_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty_group1"); + else + dts_fail("utc_cairo_clip_empty_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_group_image.c b/TC/testcase/utc_clip_empty_group_image.c new file mode 100644 index 0000000..7084a9c --- /dev/null +++ b/TC/testcase/utc_clip_empty_group_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty_group1"); + else + dts_fail("utc_cairo_clip_empty_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_image.c b/TC/testcase/utc_clip_empty_image.c new file mode 100644 index 0000000..be66f5d --- /dev/null +++ b/TC/testcase/utc_clip_empty_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty1"); + else + dts_fail("utc_cairo_clip_empty1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_save_gl.c b/TC/testcase/utc_clip_empty_save_gl.c new file mode 100644 index 0000000..716e5a0 --- /dev/null +++ b/TC/testcase/utc_clip_empty_save_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty_save1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty_save1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty_save1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty-save", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty_save1"); + else + dts_fail("utc_cairo_clip_empty_save1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_empty_save_image.c b/TC/testcase/utc_clip_empty_save_image.c new file mode 100644 index 0000000..0e5b997 --- /dev/null +++ b/TC/testcase/utc_clip_empty_save_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_empty_save1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_empty_save1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_empty_save1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-empty-save", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_empty_save1"); + else + dts_fail("utc_cairo_clip_empty_save1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_eo_unbounded_gl.c b/TC/testcase/utc_clip_fill_eo_unbounded_gl.c new file mode 100644 index 0000000..6d5279b --- /dev/null +++ b/TC/testcase/utc_clip_fill_eo_unbounded_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_eo_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_eo_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_eo_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-eo-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_eo_unbounded1"); + else + dts_fail("utc_cairo_clip_fill_eo_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_eo_unbounded_image.c b/TC/testcase/utc_clip_fill_eo_unbounded_image.c new file mode 100644 index 0000000..77a18f8 --- /dev/null +++ b/TC/testcase/utc_clip_fill_eo_unbounded_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_eo_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_eo_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_eo_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-eo-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_eo_unbounded1"); + else + dts_fail("utc_cairo_clip_fill_eo_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_gl.c b/TC/testcase/utc_clip_fill_gl.c new file mode 100644 index 0000000..181b221 --- /dev/null +++ b/TC/testcase/utc_clip_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill1"); + else + dts_fail("utc_cairo_clip_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_image.c b/TC/testcase/utc_clip_fill_image.c new file mode 100644 index 0000000..1385bae --- /dev/null +++ b/TC/testcase/utc_clip_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill1"); + else + dts_fail("utc_cairo_clip_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_no_op_gl.c b/TC/testcase/utc_clip_fill_no_op_gl.c new file mode 100644 index 0000000..ddacf93 --- /dev/null +++ b/TC/testcase/utc_clip_fill_no_op_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_no_op1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_no_op1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_no_op1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-no-op", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_no_op1"); + else + dts_fail("utc_cairo_clip_fill_no_op1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_no_op_image.c b/TC/testcase/utc_clip_fill_no_op_image.c new file mode 100644 index 0000000..b89b719 --- /dev/null +++ b/TC/testcase/utc_clip_fill_no_op_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_no_op1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_no_op1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_no_op1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-no-op", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_no_op1"); + else + dts_fail("utc_cairo_clip_fill_no_op1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_nz_unbounded_gl.c b/TC/testcase/utc_clip_fill_nz_unbounded_gl.c new file mode 100644 index 0000000..cfbf684 --- /dev/null +++ b/TC/testcase/utc_clip_fill_nz_unbounded_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_nz_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_nz_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_nz_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-nz-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_nz_unbounded1"); + else + dts_fail("utc_cairo_clip_fill_nz_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_nz_unbounded_image.c b/TC/testcase/utc_clip_fill_nz_unbounded_image.c new file mode 100644 index 0000000..ab881fc --- /dev/null +++ b/TC/testcase/utc_clip_fill_nz_unbounded_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_nz_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_nz_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_nz_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-nz-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_nz_unbounded1"); + else + dts_fail("utc_cairo_clip_fill_nz_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_rule_gl.c b/TC/testcase/utc_clip_fill_rule_gl.c new file mode 100644 index 0000000..25546e0 --- /dev/null +++ b/TC/testcase/utc_clip_fill_rule_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_rule1"); + else + dts_fail("utc_cairo_clip_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_rule_image.c b/TC/testcase/utc_clip_fill_rule_image.c new file mode 100644 index 0000000..6ca4258 --- /dev/null +++ b/TC/testcase/utc_clip_fill_rule_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_rule1"); + else + dts_fail("utc_cairo_clip_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_rule_pixel_aligned_gl.c b/TC/testcase/utc_clip_fill_rule_pixel_aligned_gl.c new file mode 100644 index 0000000..ee6b340 --- /dev/null +++ b/TC/testcase/utc_clip_fill_rule_pixel_aligned_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_rule_pixel_aligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_rule_pixel_aligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_rule_pixel_aligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-rule-pixel-aligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_rule_pixel_aligned1"); + else + dts_fail("utc_cairo_clip_fill_rule_pixel_aligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_fill_rule_pixel_aligned_image.c b/TC/testcase/utc_clip_fill_rule_pixel_aligned_image.c new file mode 100644 index 0000000..3777685 --- /dev/null +++ b/TC/testcase/utc_clip_fill_rule_pixel_aligned_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_fill_rule_pixel_aligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_fill_rule_pixel_aligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_fill_rule_pixel_aligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-fill-rule-pixel-aligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_fill_rule_pixel_aligned1"); + else + dts_fail("utc_cairo_clip_fill_rule_pixel_aligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_aligned_rectangles_gl.c b/TC/testcase/utc_clip_group_shapes_aligned_rectangles_gl.c new file mode 100644 index 0000000..fdd6f9c --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_aligned_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_aligned_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_aligned_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_aligned_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-aligned-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_aligned_rectangles1"); + else + dts_fail("utc_cairo_clip_group_shapes_aligned_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_aligned_rectangles_image.c b/TC/testcase/utc_clip_group_shapes_aligned_rectangles_image.c new file mode 100644 index 0000000..e599ed5 --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_aligned_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_aligned_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_aligned_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_aligned_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-aligned-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_aligned_rectangles1"); + else + dts_fail("utc_cairo_clip_group_shapes_aligned_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_circles_gl.c b/TC/testcase/utc_clip_group_shapes_circles_gl.c new file mode 100644 index 0000000..aa12afe --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_circles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_circles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_circles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_circles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-circles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_circles1"); + else + dts_fail("utc_cairo_clip_group_shapes_circles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_circles_image.c b/TC/testcase/utc_clip_group_shapes_circles_image.c new file mode 100644 index 0000000..9b222c0 --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_circles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_circles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_circles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_circles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-circles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_circles1"); + else + dts_fail("utc_cairo_clip_group_shapes_circles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_gl.c b/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_gl.c new file mode 100644 index 0000000..17b9f12 --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_unaligned_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_unaligned_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_unaligned_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-unaligned-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_unaligned_rectangles1"); + else + dts_fail("utc_cairo_clip_group_shapes_unaligned_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_image.c b/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_image.c new file mode 100644 index 0000000..93a4034 --- /dev/null +++ b/TC/testcase/utc_clip_group_shapes_unaligned_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_group_shapes_unaligned_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_group_shapes_unaligned_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_group_shapes_unaligned_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-group-shapes-unaligned-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_group_shapes_unaligned_rectangles1"); + else + dts_fail("utc_cairo_clip_group_shapes_unaligned_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_image_gl.c b/TC/testcase/utc_clip_image_gl.c new file mode 100644 index 0000000..0f6704a --- /dev/null +++ b/TC/testcase/utc_clip_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_image1"); + else + dts_fail("utc_cairo_clip_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_image_image.c b/TC/testcase/utc_clip_image_image.c new file mode 100644 index 0000000..68e5390 --- /dev/null +++ b/TC/testcase/utc_clip_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_image1"); + else + dts_fail("utc_cairo_clip_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_intersect_gl.c b/TC/testcase/utc_clip_intersect_gl.c new file mode 100644 index 0000000..4395b83 --- /dev/null +++ b/TC/testcase/utc_clip_intersect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_intersect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_intersect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_intersect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-intersect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_intersect1"); + else + dts_fail("utc_cairo_clip_intersect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_intersect_image.c b/TC/testcase/utc_clip_intersect_image.c new file mode 100644 index 0000000..4715feb --- /dev/null +++ b/TC/testcase/utc_clip_intersect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_intersect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_intersect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_intersect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-intersect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_intersect1"); + else + dts_fail("utc_cairo_clip_intersect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_mixed_antialias_gl.c b/TC/testcase/utc_clip_mixed_antialias_gl.c new file mode 100644 index 0000000..b03f6f8 --- /dev/null +++ b/TC/testcase/utc_clip_mixed_antialias_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_mixed_antialias1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_mixed_antialias1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_mixed_antialias1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-mixed-antialias", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_mixed_antialias1"); + else + dts_fail("utc_cairo_clip_mixed_antialias1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_mixed_antialias_image.c b/TC/testcase/utc_clip_mixed_antialias_image.c new file mode 100644 index 0000000..3b87f8e --- /dev/null +++ b/TC/testcase/utc_clip_mixed_antialias_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_mixed_antialias1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_mixed_antialias1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_mixed_antialias1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-mixed-antialias", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_mixed_antialias1"); + else + dts_fail("utc_cairo_clip_mixed_antialias1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_nesting_gl.c b/TC/testcase/utc_clip_nesting_gl.c new file mode 100644 index 0000000..966a759 --- /dev/null +++ b/TC/testcase/utc_clip_nesting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_nesting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_nesting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_nesting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-nesting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_nesting1"); + else + dts_fail("utc_cairo_clip_nesting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_nesting_image.c b/TC/testcase/utc_clip_nesting_image.c new file mode 100644 index 0000000..6179320 --- /dev/null +++ b/TC/testcase/utc_clip_nesting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_nesting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_nesting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_nesting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-nesting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_nesting1"); + else + dts_fail("utc_cairo_clip_nesting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_operator_gl.c b/TC/testcase/utc_clip_operator_gl.c new file mode 100644 index 0000000..e78377f --- /dev/null +++ b/TC/testcase/utc_clip_operator_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_operator1"); + else + dts_fail("utc_cairo_clip_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_operator_image.c b/TC/testcase/utc_clip_operator_image.c new file mode 100644 index 0000000..b4e9f8e --- /dev/null +++ b/TC/testcase/utc_clip_operator_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_operator1"); + else + dts_fail("utc_cairo_clip_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_polygons_gl.c b/TC/testcase/utc_clip_polygons_gl.c new file mode 100644 index 0000000..7b7086d --- /dev/null +++ b/TC/testcase/utc_clip_polygons_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_polygons1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_polygons1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_polygons1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-polygons", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_polygons1"); + else + dts_fail("utc_cairo_clip_polygons1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_polygons_image.c b/TC/testcase/utc_clip_polygons_image.c new file mode 100644 index 0000000..54b93b4 --- /dev/null +++ b/TC/testcase/utc_clip_polygons_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_polygons1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_polygons1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_polygons1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-polygons", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_polygons1"); + else + dts_fail("utc_cairo_clip_polygons1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_push_group_gl.c b/TC/testcase/utc_clip_push_group_gl.c new file mode 100644 index 0000000..293d2e5 --- /dev/null +++ b/TC/testcase/utc_clip_push_group_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_push_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_push_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_push_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-push-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_push_group1"); + else + dts_fail("utc_cairo_clip_push_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_push_group_image.c b/TC/testcase/utc_clip_push_group_image.c new file mode 100644 index 0000000..4ca8229 --- /dev/null +++ b/TC/testcase/utc_clip_push_group_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_push_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_push_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_push_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-push-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_push_group1"); + else + dts_fail("utc_cairo_clip_push_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_rectilinear_gl.c b/TC/testcase/utc_clip_rectilinear_gl.c new file mode 100644 index 0000000..2d90830 --- /dev/null +++ b/TC/testcase/utc_clip_rectilinear_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_rectilinear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_rectilinear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_rectilinear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-rectilinear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_rectilinear1"); + else + dts_fail("utc_cairo_clip_rectilinear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_rectilinear_image.c b/TC/testcase/utc_clip_rectilinear_image.c new file mode 100644 index 0000000..a545113 --- /dev/null +++ b/TC/testcase/utc_clip_rectilinear_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_rectilinear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_rectilinear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_rectilinear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-rectilinear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_rectilinear1"); + else + dts_fail("utc_cairo_clip_rectilinear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_rotate_image_surface_paint_gl.c b/TC/testcase/utc_clip_rotate_image_surface_paint_gl.c new file mode 100644 index 0000000..f976ed2 --- /dev/null +++ b/TC/testcase/utc_clip_rotate_image_surface_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_rotate_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_rotate_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_rotate_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-rotate-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_rotate_image_surface_paint1"); + else + dts_fail("utc_cairo_clip_rotate_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_rotate_image_surface_paint_image.c b/TC/testcase/utc_clip_rotate_image_surface_paint_image.c new file mode 100644 index 0000000..9ee861e --- /dev/null +++ b/TC/testcase/utc_clip_rotate_image_surface_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_rotate_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_rotate_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_rotate_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-rotate-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_rotate_image_surface_paint1"); + else + dts_fail("utc_cairo_clip_rotate_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_shape_gl.c b/TC/testcase/utc_clip_shape_gl.c new file mode 100644 index 0000000..35b82a6 --- /dev/null +++ b/TC/testcase/utc_clip_shape_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_shape1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_shape1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_shape1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-shape", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_shape1"); + else + dts_fail("utc_cairo_clip_shape1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_shape_image.c b/TC/testcase/utc_clip_shape_image.c new file mode 100644 index 0000000..b79d96a --- /dev/null +++ b/TC/testcase/utc_clip_shape_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_shape1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_shape1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_shape1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-shape", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_shape1"); + else + dts_fail("utc_cairo_clip_shape1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_gl.c b/TC/testcase/utc_clip_stroke_gl.c new file mode 100644 index 0000000..fdc0bee --- /dev/null +++ b/TC/testcase/utc_clip_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke1"); + else + dts_fail("utc_cairo_clip_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_image.c b/TC/testcase/utc_clip_stroke_image.c new file mode 100644 index 0000000..5062e6e --- /dev/null +++ b/TC/testcase/utc_clip_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke1"); + else + dts_fail("utc_cairo_clip_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_no_op_gl.c b/TC/testcase/utc_clip_stroke_no_op_gl.c new file mode 100644 index 0000000..9d03559 --- /dev/null +++ b/TC/testcase/utc_clip_stroke_no_op_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke_no_op1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke_no_op1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke_no_op1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke-no-op", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke_no_op1"); + else + dts_fail("utc_cairo_clip_stroke_no_op1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_no_op_image.c b/TC/testcase/utc_clip_stroke_no_op_image.c new file mode 100644 index 0000000..8301f22 --- /dev/null +++ b/TC/testcase/utc_clip_stroke_no_op_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke_no_op1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke_no_op1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke_no_op1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke-no-op", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke_no_op1"); + else + dts_fail("utc_cairo_clip_stroke_no_op1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_unbounded_gl.c b/TC/testcase/utc_clip_stroke_unbounded_gl.c new file mode 100644 index 0000000..6573b80 --- /dev/null +++ b/TC/testcase/utc_clip_stroke_unbounded_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke_unbounded1"); + else + dts_fail("utc_cairo_clip_stroke_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_stroke_unbounded_image.c b/TC/testcase/utc_clip_stroke_unbounded_image.c new file mode 100644 index 0000000..83af302 --- /dev/null +++ b/TC/testcase/utc_clip_stroke_unbounded_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_stroke_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_stroke_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_stroke_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-stroke-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_stroke_unbounded1"); + else + dts_fail("utc_cairo_clip_stroke_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_text_gl.c b/TC/testcase/utc_clip_text_gl.c new file mode 100644 index 0000000..9effd72 --- /dev/null +++ b/TC/testcase/utc_clip_text_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_text1"); + else + dts_fail("utc_cairo_clip_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_text_image.c b/TC/testcase/utc_clip_text_image.c new file mode 100644 index 0000000..917e465 --- /dev/null +++ b/TC/testcase/utc_clip_text_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_text1"); + else + dts_fail("utc_cairo_clip_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_twice_gl.c b/TC/testcase/utc_clip_twice_gl.c new file mode 100644 index 0000000..967b92c --- /dev/null +++ b/TC/testcase/utc_clip_twice_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_twice1"); + else + dts_fail("utc_cairo_clip_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_twice_image.c b/TC/testcase/utc_clip_twice_image.c new file mode 100644 index 0000000..ae19566 --- /dev/null +++ b/TC/testcase/utc_clip_twice_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_twice1"); + else + dts_fail("utc_cairo_clip_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_twice_rectangle_gl.c b/TC/testcase/utc_clip_twice_rectangle_gl.c new file mode 100644 index 0000000..20b45bc --- /dev/null +++ b/TC/testcase/utc_clip_twice_rectangle_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_twice_rectangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_twice_rectangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_twice_rectangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-twice-rectangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_twice_rectangle1"); + else + dts_fail("utc_cairo_clip_twice_rectangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_twice_rectangle_image.c b/TC/testcase/utc_clip_twice_rectangle_image.c new file mode 100644 index 0000000..1e7a381 --- /dev/null +++ b/TC/testcase/utc_clip_twice_rectangle_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_twice_rectangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_twice_rectangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_twice_rectangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-twice-rectangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_twice_rectangle1"); + else + dts_fail("utc_cairo_clip_twice_rectangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_unbounded_gl.c b/TC/testcase/utc_clip_unbounded_gl.c new file mode 100644 index 0000000..6a5d01d --- /dev/null +++ b/TC/testcase/utc_clip_unbounded_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_unbounded1"); + else + dts_fail("utc_cairo_clip_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_unbounded_image.c b/TC/testcase/utc_clip_unbounded_image.c new file mode 100644 index 0000000..8465a3d --- /dev/null +++ b/TC/testcase/utc_clip_unbounded_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_unbounded1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_unbounded1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_unbounded1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-unbounded", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_unbounded1"); + else + dts_fail("utc_cairo_clip_unbounded1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_zero_gl.c b/TC/testcase/utc_clip_zero_gl.c new file mode 100644 index 0000000..a9bbe5c --- /dev/null +++ b/TC/testcase/utc_clip_zero_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_zero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_zero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_zero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-zero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_zero1"); + else + dts_fail("utc_cairo_clip_zero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clip_zero_image.c b/TC/testcase/utc_clip_zero_image.c new file mode 100644 index 0000000..65e7f89 --- /dev/null +++ b/TC/testcase/utc_clip_zero_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clip_zero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clip_zero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clip_zero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clip-zero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clip_zero1"); + else + dts_fail("utc_cairo_clip_zero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_group_gl.c b/TC/testcase/utc_clipped_group_gl.c new file mode 100644 index 0000000..df81a43 --- /dev/null +++ b/TC/testcase/utc_clipped_group_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_group1"); + else + dts_fail("utc_cairo_clipped_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_group_image.c b/TC/testcase/utc_clipped_group_image.c new file mode 100644 index 0000000..f8055ef --- /dev/null +++ b/TC/testcase/utc_clipped_group_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_group1"); + else + dts_fail("utc_cairo_clipped_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_surface_gl.c b/TC/testcase/utc_clipped_surface_gl.c new file mode 100644 index 0000000..bc3cf51 --- /dev/null +++ b/TC/testcase/utc_clipped_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_surface1"); + else + dts_fail("utc_cairo_clipped_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_surface_image.c b/TC/testcase/utc_clipped_surface_image.c new file mode 100644 index 0000000..b838953 --- /dev/null +++ b/TC/testcase/utc_clipped_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_surface1"); + else + dts_fail("utc_cairo_clipped_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_trapezoids_gl.c b/TC/testcase/utc_clipped_trapezoids_gl.c new file mode 100644 index 0000000..bab4d7c --- /dev/null +++ b/TC/testcase/utc_clipped_trapezoids_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_trapezoids1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_trapezoids1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_trapezoids1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-trapezoids", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_trapezoids1"); + else + dts_fail("utc_cairo_clipped_trapezoids1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_clipped_trapezoids_image.c b/TC/testcase/utc_clipped_trapezoids_image.c new file mode 100644 index 0000000..d012ae0 --- /dev/null +++ b/TC/testcase/utc_clipped_trapezoids_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_clipped_trapezoids1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_clipped_trapezoids1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_clipped_trapezoids1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite clipped-trapezoids", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_clipped_trapezoids1"); + else + dts_fail("utc_cairo_clipped_trapezoids1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_close_path_current_point_gl.c b/TC/testcase/utc_close_path_current_point_gl.c new file mode 100644 index 0000000..98b766b --- /dev/null +++ b/TC/testcase/utc_close_path_current_point_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_close_path_current_point1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_close_path_current_point1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_close_path_current_point1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite close-path-current-point", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_close_path_current_point1"); + else + dts_fail("utc_cairo_close_path_current_point1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_close_path_current_point_image.c b/TC/testcase/utc_close_path_current_point_image.c new file mode 100644 index 0000000..c7e6251 --- /dev/null +++ b/TC/testcase/utc_close_path_current_point_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_close_path_current_point1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_close_path_current_point1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_close_path_current_point1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite close-path-current-point", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_close_path_current_point1"); + else + dts_fail("utc_cairo_close_path_current_point1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_close_path_gl.c b/TC/testcase/utc_close_path_gl.c new file mode 100644 index 0000000..7081bd1 --- /dev/null +++ b/TC/testcase/utc_close_path_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_close_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_close_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_close_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite close-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_close_path1"); + else + dts_fail("utc_cairo_close_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_close_path_image.c b/TC/testcase/utc_close_path_image.c new file mode 100644 index 0000000..b2c0e1d --- /dev/null +++ b/TC/testcase/utc_close_path_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_close_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_close_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_close_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite close-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_close_path1"); + else + dts_fail("utc_cairo_close_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_over_gl.c b/TC/testcase/utc_composite_integer_translate_over_gl.c new file mode 100644 index 0000000..022376d --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_over_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_over1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_over1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_over1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-over", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_over1"); + else + dts_fail("utc_cairo_composite_integer_translate_over1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_over_image.c b/TC/testcase/utc_composite_integer_translate_over_image.c new file mode 100644 index 0000000..690509f --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_over_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_over1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_over1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_over1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-over", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_over1"); + else + dts_fail("utc_cairo_composite_integer_translate_over1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_over_repeat_gl.c b/TC/testcase/utc_composite_integer_translate_over_repeat_gl.c new file mode 100644 index 0000000..80e22da --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_over_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_over_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_over_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_over_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-over-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_over_repeat1"); + else + dts_fail("utc_cairo_composite_integer_translate_over_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_over_repeat_image.c b/TC/testcase/utc_composite_integer_translate_over_repeat_image.c new file mode 100644 index 0000000..85c23eb --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_over_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_over_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_over_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_over_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-over-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_over_repeat1"); + else + dts_fail("utc_cairo_composite_integer_translate_over_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_source_gl.c b/TC/testcase/utc_composite_integer_translate_source_gl.c new file mode 100644 index 0000000..1fa0601 --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_source1"); + else + dts_fail("utc_cairo_composite_integer_translate_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_composite_integer_translate_source_image.c b/TC/testcase/utc_composite_integer_translate_source_image.c new file mode 100644 index 0000000..a5021a9 --- /dev/null +++ b/TC/testcase/utc_composite_integer_translate_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_composite_integer_translate_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_composite_integer_translate_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_composite_integer_translate_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite composite-integer-translate-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_composite_integer_translate_source1"); + else + dts_fail("utc_cairo_composite_integer_translate_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_copy_disjoint_gl.c b/TC/testcase/utc_copy_disjoint_gl.c new file mode 100644 index 0000000..53a23c0 --- /dev/null +++ b/TC/testcase/utc_copy_disjoint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_copy_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_copy_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_copy_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite copy-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_copy_disjoint1"); + else + dts_fail("utc_cairo_copy_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_copy_disjoint_image.c b/TC/testcase/utc_copy_disjoint_image.c new file mode 100644 index 0000000..a7e05fa --- /dev/null +++ b/TC/testcase/utc_copy_disjoint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_copy_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_copy_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_copy_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite copy-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_copy_disjoint1"); + else + dts_fail("utc_cairo_copy_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_copy_path_gl.c b/TC/testcase/utc_copy_path_gl.c new file mode 100644 index 0000000..775617e --- /dev/null +++ b/TC/testcase/utc_copy_path_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_copy_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_copy_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_copy_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite copy-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_copy_path1"); + else + dts_fail("utc_cairo_copy_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_copy_path_image.c b/TC/testcase/utc_copy_path_image.c new file mode 100644 index 0000000..3b5e830 --- /dev/null +++ b/TC/testcase/utc_copy_path_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_copy_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_copy_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_copy_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite copy-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_copy_path1"); + else + dts_fail("utc_cairo_copy_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_column_triangles_gl.c b/TC/testcase/utc_coverage_column_triangles_gl.c new file mode 100644 index 0000000..ce1aa5a --- /dev/null +++ b/TC/testcase/utc_coverage_column_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_column_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_column_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_column_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-column-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_column_triangles1"); + else + dts_fail("utc_cairo_coverage_column_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_column_triangles_image.c b/TC/testcase/utc_coverage_column_triangles_image.c new file mode 100644 index 0000000..f31e722 --- /dev/null +++ b/TC/testcase/utc_coverage_column_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_column_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_column_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_column_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-column-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_column_triangles1"); + else + dts_fail("utc_cairo_coverage_column_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_intersecting_quads_gl.c b/TC/testcase/utc_coverage_intersecting_quads_gl.c new file mode 100644 index 0000000..c9378c5 --- /dev/null +++ b/TC/testcase/utc_coverage_intersecting_quads_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_intersecting_quads1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_intersecting_quads1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_intersecting_quads1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-intersecting-quads", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_intersecting_quads1"); + else + dts_fail("utc_cairo_coverage_intersecting_quads1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_intersecting_quads_image.c b/TC/testcase/utc_coverage_intersecting_quads_image.c new file mode 100644 index 0000000..e79c5fa --- /dev/null +++ b/TC/testcase/utc_coverage_intersecting_quads_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_intersecting_quads1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_intersecting_quads1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_intersecting_quads1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-intersecting-quads", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_intersecting_quads1"); + else + dts_fail("utc_cairo_coverage_intersecting_quads1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_intersecting_triangles_gl.c b/TC/testcase/utc_coverage_intersecting_triangles_gl.c new file mode 100644 index 0000000..9e0a395 --- /dev/null +++ b/TC/testcase/utc_coverage_intersecting_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_intersecting_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_intersecting_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_intersecting_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-intersecting-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_intersecting_triangles1"); + else + dts_fail("utc_cairo_coverage_intersecting_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_intersecting_triangles_image.c b/TC/testcase/utc_coverage_intersecting_triangles_image.c new file mode 100644 index 0000000..20a2f2e --- /dev/null +++ b/TC/testcase/utc_coverage_intersecting_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_intersecting_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_intersecting_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_intersecting_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-intersecting-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_intersecting_triangles1"); + else + dts_fail("utc_cairo_coverage_intersecting_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_rectangles_gl.c b/TC/testcase/utc_coverage_rectangles_gl.c new file mode 100644 index 0000000..ef7166d --- /dev/null +++ b/TC/testcase/utc_coverage_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_rectangles1"); + else + dts_fail("utc_cairo_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_rectangles_image.c b/TC/testcase/utc_coverage_rectangles_image.c new file mode 100644 index 0000000..ac1c4ef --- /dev/null +++ b/TC/testcase/utc_coverage_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_rectangles1"); + else + dts_fail("utc_cairo_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_row_triangles_gl.c b/TC/testcase/utc_coverage_row_triangles_gl.c new file mode 100644 index 0000000..cf2fdb6 --- /dev/null +++ b/TC/testcase/utc_coverage_row_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_row_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_row_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_row_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-row-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_row_triangles1"); + else + dts_fail("utc_cairo_coverage_row_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_row_triangles_image.c b/TC/testcase/utc_coverage_row_triangles_image.c new file mode 100644 index 0000000..fe8b49b --- /dev/null +++ b/TC/testcase/utc_coverage_row_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_row_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_row_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_row_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-row-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_row_triangles1"); + else + dts_fail("utc_cairo_coverage_row_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_triangles_gl.c b/TC/testcase/utc_coverage_triangles_gl.c new file mode 100644 index 0000000..b2afbdf --- /dev/null +++ b/TC/testcase/utc_coverage_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_triangles1"); + else + dts_fail("utc_cairo_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_coverage_triangles_image.c b/TC/testcase/utc_coverage_triangles_image.c new file mode 100644 index 0000000..4383d1d --- /dev/null +++ b/TC/testcase/utc_coverage_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_coverage_triangles1"); + else + dts_fail("utc_cairo_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_for_stream_gl.c b/TC/testcase/utc_create_for_stream_gl.c new file mode 100644 index 0000000..585959a --- /dev/null +++ b/TC/testcase/utc_create_for_stream_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_for_stream1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_for_stream1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_for_stream1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-for-stream", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_for_stream1"); + else + dts_fail("utc_cairo_create_for_stream1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_for_stream_image.c b/TC/testcase/utc_create_for_stream_image.c new file mode 100644 index 0000000..aa7c7eb --- /dev/null +++ b/TC/testcase/utc_create_for_stream_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_for_stream1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_for_stream1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_for_stream1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-for-stream", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_for_stream1"); + else + dts_fail("utc_cairo_create_for_stream1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_from_png_gl.c b/TC/testcase/utc_create_from_png_gl.c new file mode 100644 index 0000000..340bb05 --- /dev/null +++ b/TC/testcase/utc_create_from_png_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_from_png1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_from_png1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_from_png1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-from-png", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_from_png1"); + else + dts_fail("utc_cairo_create_from_png1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_from_png_image.c b/TC/testcase/utc_create_from_png_image.c new file mode 100644 index 0000000..ae6ce0e --- /dev/null +++ b/TC/testcase/utc_create_from_png_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_from_png1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_from_png1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_from_png1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-from-png", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_from_png1"); + else + dts_fail("utc_cairo_create_from_png1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_from_png_stream_gl.c b/TC/testcase/utc_create_from_png_stream_gl.c new file mode 100644 index 0000000..86d57dd --- /dev/null +++ b/TC/testcase/utc_create_from_png_stream_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_from_png_stream1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_from_png_stream1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_from_png_stream1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-from-png-stream", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_from_png_stream1"); + else + dts_fail("utc_cairo_create_from_png_stream1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_create_from_png_stream_image.c b/TC/testcase/utc_create_from_png_stream_image.c new file mode 100644 index 0000000..6fe5eb5 --- /dev/null +++ b/TC/testcase/utc_create_from_png_stream_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_create_from_png_stream1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_create_from_png_stream1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_create_from_png_stream1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite create-from-png-stream", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_create_from_png_stream1"); + else + dts_fail("utc_cairo_create_from_png_stream1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_culled_glyphs_gl.c b/TC/testcase/utc_culled_glyphs_gl.c new file mode 100644 index 0000000..1752e8e --- /dev/null +++ b/TC/testcase/utc_culled_glyphs_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_culled_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_culled_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_culled_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite culled-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_culled_glyphs1"); + else + dts_fail("utc_cairo_culled_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_culled_glyphs_image.c b/TC/testcase/utc_culled_glyphs_image.c new file mode 100644 index 0000000..bd497be --- /dev/null +++ b/TC/testcase/utc_culled_glyphs_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_culled_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_culled_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_culled_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite culled-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_culled_glyphs1"); + else + dts_fail("utc_cairo_culled_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_curve_to_as_line_to_gl.c b/TC/testcase/utc_curve_to_as_line_to_gl.c new file mode 100644 index 0000000..0b53340 --- /dev/null +++ b/TC/testcase/utc_curve_to_as_line_to_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_curve_to_as_line_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_curve_to_as_line_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_curve_to_as_line_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite curve-to-as-line-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_curve_to_as_line_to1"); + else + dts_fail("utc_cairo_curve_to_as_line_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_curve_to_as_line_to_image.c b/TC/testcase/utc_curve_to_as_line_to_image.c new file mode 100644 index 0000000..a816519 --- /dev/null +++ b/TC/testcase/utc_curve_to_as_line_to_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_curve_to_as_line_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_curve_to_as_line_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_curve_to_as_line_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite curve-to-as-line-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_curve_to_as_line_to1"); + else + dts_fail("utc_cairo_curve_to_as_line_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_caps_joins_gl.c b/TC/testcase/utc_dash_caps_joins_gl.c new file mode 100644 index 0000000..3271a5a --- /dev/null +++ b/TC/testcase/utc_dash_caps_joins_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_caps_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_caps_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_caps_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-caps-joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_caps_joins1"); + else + dts_fail("utc_cairo_dash_caps_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_caps_joins_image.c b/TC/testcase/utc_dash_caps_joins_image.c new file mode 100644 index 0000000..3b9738b --- /dev/null +++ b/TC/testcase/utc_dash_caps_joins_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_caps_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_caps_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_caps_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-caps-joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_caps_joins1"); + else + dts_fail("utc_cairo_dash_caps_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_curve_gl.c b/TC/testcase/utc_dash_curve_gl.c new file mode 100644 index 0000000..6f7f188 --- /dev/null +++ b/TC/testcase/utc_dash_curve_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_curve1"); + else + dts_fail("utc_cairo_dash_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_curve_image.c b/TC/testcase/utc_dash_curve_image.c new file mode 100644 index 0000000..31193d2 --- /dev/null +++ b/TC/testcase/utc_dash_curve_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_curve1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_curve1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_curve1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-curve", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_curve1"); + else + dts_fail("utc_cairo_dash_curve1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_infinite_loop_gl.c b/TC/testcase/utc_dash_infinite_loop_gl.c new file mode 100644 index 0000000..93f18cf --- /dev/null +++ b/TC/testcase/utc_dash_infinite_loop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_infinite_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_infinite_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_infinite_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-infinite-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_infinite_loop1"); + else + dts_fail("utc_cairo_dash_infinite_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_infinite_loop_image.c b/TC/testcase/utc_dash_infinite_loop_image.c new file mode 100644 index 0000000..a0e50f6 --- /dev/null +++ b/TC/testcase/utc_dash_infinite_loop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_infinite_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_infinite_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_infinite_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-infinite-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_infinite_loop1"); + else + dts_fail("utc_cairo_dash_infinite_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_no_dash_gl.c b/TC/testcase/utc_dash_no_dash_gl.c new file mode 100644 index 0000000..40f0e2d --- /dev/null +++ b/TC/testcase/utc_dash_no_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_no_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_no_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_no_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-no-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_no_dash1"); + else + dts_fail("utc_cairo_dash_no_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_no_dash_image.c b/TC/testcase/utc_dash_no_dash_image.c new file mode 100644 index 0000000..806663a --- /dev/null +++ b/TC/testcase/utc_dash_no_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_no_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_no_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_no_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-no-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_no_dash1"); + else + dts_fail("utc_cairo_dash_no_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_offset_gl.c b/TC/testcase/utc_dash_offset_gl.c new file mode 100644 index 0000000..77692f8 --- /dev/null +++ b/TC/testcase/utc_dash_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_offset1"); + else + dts_fail("utc_cairo_dash_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_offset_image.c b/TC/testcase/utc_dash_offset_image.c new file mode 100644 index 0000000..9fcb9ce --- /dev/null +++ b/TC/testcase/utc_dash_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_offset1"); + else + dts_fail("utc_cairo_dash_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_offset_negative_gl.c b/TC/testcase/utc_dash_offset_negative_gl.c new file mode 100644 index 0000000..35044c2 --- /dev/null +++ b/TC/testcase/utc_dash_offset_negative_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_offset_negative1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_offset_negative1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_offset_negative1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-offset-negative", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_offset_negative1"); + else + dts_fail("utc_cairo_dash_offset_negative1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_offset_negative_image.c b/TC/testcase/utc_dash_offset_negative_image.c new file mode 100644 index 0000000..eb2b606 --- /dev/null +++ b/TC/testcase/utc_dash_offset_negative_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_offset_negative1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_offset_negative1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_offset_negative1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-offset-negative", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_offset_negative1"); + else + dts_fail("utc_cairo_dash_offset_negative1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_scale_gl.c b/TC/testcase/utc_dash_scale_gl.c new file mode 100644 index 0000000..4d85f7d --- /dev/null +++ b/TC/testcase/utc_dash_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_scale1"); + else + dts_fail("utc_cairo_dash_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_scale_image.c b/TC/testcase/utc_dash_scale_image.c new file mode 100644 index 0000000..e730e1f --- /dev/null +++ b/TC/testcase/utc_dash_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_scale1"); + else + dts_fail("utc_cairo_dash_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_state_gl.c b/TC/testcase/utc_dash_state_gl.c new file mode 100644 index 0000000..29d25b3 --- /dev/null +++ b/TC/testcase/utc_dash_state_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_state1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_state1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_state1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-state", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_state1"); + else + dts_fail("utc_cairo_dash_state1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_state_image.c b/TC/testcase/utc_dash_state_image.c new file mode 100644 index 0000000..8ec76c5 --- /dev/null +++ b/TC/testcase/utc_dash_state_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_state1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_state1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_state1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-state", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_state1"); + else + dts_fail("utc_cairo_dash_state1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_zero_length_gl.c b/TC/testcase/utc_dash_zero_length_gl.c new file mode 100644 index 0000000..694c955 --- /dev/null +++ b/TC/testcase/utc_dash_zero_length_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_zero_length1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_zero_length1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_zero_length1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-zero-length", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_zero_length1"); + else + dts_fail("utc_cairo_dash_zero_length1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_dash_zero_length_image.c b/TC/testcase/utc_dash_zero_length_image.c new file mode 100644 index 0000000..c7d0071 --- /dev/null +++ b/TC/testcase/utc_dash_zero_length_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_dash_zero_length1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_dash_zero_length1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_dash_zero_length1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite dash-zero-length", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_dash_zero_length1"); + else + dts_fail("utc_cairo_dash_zero_length1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_arc_gl.c b/TC/testcase/utc_degenerate_arc_gl.c new file mode 100644 index 0000000..44b1367 --- /dev/null +++ b/TC/testcase/utc_degenerate_arc_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_arc1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_arc1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_arc1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-arc", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_arc1"); + else + dts_fail("utc_cairo_degenerate_arc1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_arc_image.c b/TC/testcase/utc_degenerate_arc_image.c new file mode 100644 index 0000000..2943067 --- /dev/null +++ b/TC/testcase/utc_degenerate_arc_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_arc1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_arc1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_arc1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-arc", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_arc1"); + else + dts_fail("utc_cairo_degenerate_arc1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_arcs_gl.c b/TC/testcase/utc_degenerate_arcs_gl.c new file mode 100644 index 0000000..d6212cf --- /dev/null +++ b/TC/testcase/utc_degenerate_arcs_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_arcs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_arcs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_arcs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-arcs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_arcs1"); + else + dts_fail("utc_cairo_degenerate_arcs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_arcs_image.c b/TC/testcase/utc_degenerate_arcs_image.c new file mode 100644 index 0000000..31b8908 --- /dev/null +++ b/TC/testcase/utc_degenerate_arcs_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_arcs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_arcs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_arcs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-arcs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_arcs1"); + else + dts_fail("utc_cairo_degenerate_arcs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_curve_to_gl.c b/TC/testcase/utc_degenerate_curve_to_gl.c new file mode 100644 index 0000000..973c81a --- /dev/null +++ b/TC/testcase/utc_degenerate_curve_to_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_curve_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_curve_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_curve_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-curve-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_curve_to1"); + else + dts_fail("utc_cairo_degenerate_curve_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_curve_to_image.c b/TC/testcase/utc_degenerate_curve_to_image.c new file mode 100644 index 0000000..d0072de --- /dev/null +++ b/TC/testcase/utc_degenerate_curve_to_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_curve_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_curve_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_curve_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-curve-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_curve_to1"); + else + dts_fail("utc_cairo_degenerate_curve_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_dash_gl.c b/TC/testcase/utc_degenerate_dash_gl.c new file mode 100644 index 0000000..07ef919 --- /dev/null +++ b/TC/testcase/utc_degenerate_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_dash1"); + else + dts_fail("utc_cairo_degenerate_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_dash_image.c b/TC/testcase/utc_degenerate_dash_image.c new file mode 100644 index 0000000..53f8161 --- /dev/null +++ b/TC/testcase/utc_degenerate_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_dash1"); + else + dts_fail("utc_cairo_degenerate_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_linear_gradient_gl.c b/TC/testcase/utc_degenerate_linear_gradient_gl.c new file mode 100644 index 0000000..bddb1bc --- /dev/null +++ b/TC/testcase/utc_degenerate_linear_gradient_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_linear_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_linear_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_linear_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-linear-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_linear_gradient1"); + else + dts_fail("utc_cairo_degenerate_linear_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_linear_gradient_image.c b/TC/testcase/utc_degenerate_linear_gradient_image.c new file mode 100644 index 0000000..9ab9e67 --- /dev/null +++ b/TC/testcase/utc_degenerate_linear_gradient_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_linear_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_linear_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_linear_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-linear-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_linear_gradient1"); + else + dts_fail("utc_cairo_degenerate_linear_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_path_gl.c b/TC/testcase/utc_degenerate_path_gl.c new file mode 100644 index 0000000..2c0f751 --- /dev/null +++ b/TC/testcase/utc_degenerate_path_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_path1"); + else + dts_fail("utc_cairo_degenerate_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_path_image.c b/TC/testcase/utc_degenerate_path_image.c new file mode 100644 index 0000000..8614b22 --- /dev/null +++ b/TC/testcase/utc_degenerate_path_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_path1"); + else + dts_fail("utc_cairo_degenerate_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_pen_gl.c b/TC/testcase/utc_degenerate_pen_gl.c new file mode 100644 index 0000000..fcee7fa --- /dev/null +++ b/TC/testcase/utc_degenerate_pen_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_pen1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_pen1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_pen1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-pen", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_pen1"); + else + dts_fail("utc_cairo_degenerate_pen1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_pen_image.c b/TC/testcase/utc_degenerate_pen_image.c new file mode 100644 index 0000000..2c80da2 --- /dev/null +++ b/TC/testcase/utc_degenerate_pen_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_pen1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_pen1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_pen1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-pen", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_pen1"); + else + dts_fail("utc_cairo_degenerate_pen1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_radial_gradient_gl.c b/TC/testcase/utc_degenerate_radial_gradient_gl.c new file mode 100644 index 0000000..28f619b --- /dev/null +++ b/TC/testcase/utc_degenerate_radial_gradient_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_radial_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_radial_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_radial_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-radial-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_radial_gradient1"); + else + dts_fail("utc_cairo_degenerate_radial_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_radial_gradient_image.c b/TC/testcase/utc_degenerate_radial_gradient_image.c new file mode 100644 index 0000000..1ff223a --- /dev/null +++ b/TC/testcase/utc_degenerate_radial_gradient_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_radial_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_radial_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_radial_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-radial-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_radial_gradient1"); + else + dts_fail("utc_cairo_degenerate_radial_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_rel_curve_to_gl.c b/TC/testcase/utc_degenerate_rel_curve_to_gl.c new file mode 100644 index 0000000..20df1ec --- /dev/null +++ b/TC/testcase/utc_degenerate_rel_curve_to_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_rel_curve_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_rel_curve_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_rel_curve_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-rel-curve-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_rel_curve_to1"); + else + dts_fail("utc_cairo_degenerate_rel_curve_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_rel_curve_to_image.c b/TC/testcase/utc_degenerate_rel_curve_to_image.c new file mode 100644 index 0000000..68f4a87 --- /dev/null +++ b/TC/testcase/utc_degenerate_rel_curve_to_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_rel_curve_to1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_rel_curve_to1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_rel_curve_to1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-rel-curve-to", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_rel_curve_to1"); + else + dts_fail("utc_cairo_degenerate_rel_curve_to1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_solid_dash_gl.c b/TC/testcase/utc_degenerate_solid_dash_gl.c new file mode 100644 index 0000000..e744050 --- /dev/null +++ b/TC/testcase/utc_degenerate_solid_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_solid_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_solid_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_solid_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-solid-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_solid_dash1"); + else + dts_fail("utc_cairo_degenerate_solid_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_degenerate_solid_dash_image.c b/TC/testcase/utc_degenerate_solid_dash_image.c new file mode 100644 index 0000000..2c55cd2 --- /dev/null +++ b/TC/testcase/utc_degenerate_solid_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_degenerate_solid_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_degenerate_solid_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_degenerate_solid_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite degenerate-solid-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_degenerate_solid_dash1"); + else + dts_fail("utc_cairo_degenerate_solid_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_fractional_gl.c b/TC/testcase/utc_device_offset_fractional_gl.c new file mode 100644 index 0000000..3c6bb9e --- /dev/null +++ b/TC/testcase/utc_device_offset_fractional_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_fractional1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_fractional1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_fractional1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-fractional", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_fractional1"); + else + dts_fail("utc_cairo_device_offset_fractional1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_fractional_image.c b/TC/testcase/utc_device_offset_fractional_image.c new file mode 100644 index 0000000..4228bce --- /dev/null +++ b/TC/testcase/utc_device_offset_fractional_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_fractional1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_fractional1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_fractional1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-fractional", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_fractional1"); + else + dts_fail("utc_cairo_device_offset_fractional1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_gl.c b/TC/testcase/utc_device_offset_gl.c new file mode 100644 index 0000000..5975b49 --- /dev/null +++ b/TC/testcase/utc_device_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset1"); + else + dts_fail("utc_cairo_device_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_image.c b/TC/testcase/utc_device_offset_image.c new file mode 100644 index 0000000..c0e784f --- /dev/null +++ b/TC/testcase/utc_device_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset1"); + else + dts_fail("utc_cairo_device_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_positive_gl.c b/TC/testcase/utc_device_offset_positive_gl.c new file mode 100644 index 0000000..07f7e92 --- /dev/null +++ b/TC/testcase/utc_device_offset_positive_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_positive1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_positive1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_positive1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-positive", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_positive1"); + else + dts_fail("utc_cairo_device_offset_positive1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_positive_image.c b/TC/testcase/utc_device_offset_positive_image.c new file mode 100644 index 0000000..dcbafe4 --- /dev/null +++ b/TC/testcase/utc_device_offset_positive_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_positive1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_positive1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_positive1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-positive", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_positive1"); + else + dts_fail("utc_cairo_device_offset_positive1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_scale_gl.c b/TC/testcase/utc_device_offset_scale_gl.c new file mode 100644 index 0000000..e1b10dd --- /dev/null +++ b/TC/testcase/utc_device_offset_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_scale1"); + else + dts_fail("utc_cairo_device_offset_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_device_offset_scale_image.c b/TC/testcase/utc_device_offset_scale_image.c new file mode 100644 index 0000000..cd2d82b --- /dev/null +++ b/TC/testcase/utc_device_offset_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_device_offset_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_device_offset_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_device_offset_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite device-offset-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_device_offset_scale1"); + else + dts_fail("utc_cairo_device_offset_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_drunkard_tails_gl.c b/TC/testcase/utc_drunkard_tails_gl.c new file mode 100644 index 0000000..b71a773 --- /dev/null +++ b/TC/testcase/utc_drunkard_tails_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_drunkard_tails1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_drunkard_tails1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_drunkard_tails1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite drunkard-tails", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_drunkard_tails1"); + else + dts_fail("utc_cairo_drunkard_tails1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_drunkard_tails_image.c b/TC/testcase/utc_drunkard_tails_image.c new file mode 100644 index 0000000..704af14 --- /dev/null +++ b/TC/testcase/utc_drunkard_tails_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_drunkard_tails1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_drunkard_tails1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_drunkard_tails1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite drunkard-tails", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_drunkard_tails1"); + else + dts_fail("utc_cairo_drunkard_tails1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_error_setters_gl.c b/TC/testcase/utc_error_setters_gl.c new file mode 100644 index 0000000..27d22c5 --- /dev/null +++ b/TC/testcase/utc_error_setters_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_error_setters1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_error_setters1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_error_setters1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite error-setters", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_error_setters1"); + else + dts_fail("utc_cairo_error_setters1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_error_setters_image.c b/TC/testcase/utc_error_setters_image.c new file mode 100644 index 0000000..d943ee9 --- /dev/null +++ b/TC/testcase/utc_error_setters_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_error_setters1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_error_setters1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_error_setters1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite error-setters", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_error_setters1"); + else + dts_fail("utc_cairo_error_setters1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_border_gl.c b/TC/testcase/utc_extend_pad_border_gl.c new file mode 100644 index 0000000..dae4ee2 --- /dev/null +++ b/TC/testcase/utc_extend_pad_border_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad_border1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad_border1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad_border1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad-border", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad_border1"); + else + dts_fail("utc_cairo_extend_pad_border1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_border_image.c b/TC/testcase/utc_extend_pad_border_image.c new file mode 100644 index 0000000..edafad5 --- /dev/null +++ b/TC/testcase/utc_extend_pad_border_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad_border1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad_border1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad_border1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad-border", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad_border1"); + else + dts_fail("utc_cairo_extend_pad_border1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_gl.c b/TC/testcase/utc_extend_pad_gl.c new file mode 100644 index 0000000..9df0ecb --- /dev/null +++ b/TC/testcase/utc_extend_pad_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad1"); + else + dts_fail("utc_cairo_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_image.c b/TC/testcase/utc_extend_pad_image.c new file mode 100644 index 0000000..87f2b67 --- /dev/null +++ b/TC/testcase/utc_extend_pad_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad1"); + else + dts_fail("utc_cairo_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_similar_gl.c b/TC/testcase/utc_extend_pad_similar_gl.c new file mode 100644 index 0000000..573f7df --- /dev/null +++ b/TC/testcase/utc_extend_pad_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad_similar1"); + else + dts_fail("utc_cairo_extend_pad_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_pad_similar_image.c b/TC/testcase/utc_extend_pad_similar_image.c new file mode 100644 index 0000000..b5c33d7 --- /dev/null +++ b/TC/testcase/utc_extend_pad_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_pad_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_pad_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_pad_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-pad-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_pad_similar1"); + else + dts_fail("utc_cairo_extend_pad_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_reflect_gl.c b/TC/testcase/utc_extend_reflect_gl.c new file mode 100644 index 0000000..cb2a0d7 --- /dev/null +++ b/TC/testcase/utc_extend_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_reflect1"); + else + dts_fail("utc_cairo_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_reflect_image.c b/TC/testcase/utc_extend_reflect_image.c new file mode 100644 index 0000000..aa89ca1 --- /dev/null +++ b/TC/testcase/utc_extend_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_reflect1"); + else + dts_fail("utc_cairo_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_reflect_similar_gl.c b/TC/testcase/utc_extend_reflect_similar_gl.c new file mode 100644 index 0000000..616355e --- /dev/null +++ b/TC/testcase/utc_extend_reflect_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_reflect_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_reflect_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_reflect_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-reflect-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_reflect_similar1"); + else + dts_fail("utc_cairo_extend_reflect_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_reflect_similar_image.c b/TC/testcase/utc_extend_reflect_similar_image.c new file mode 100644 index 0000000..fd9ff6b --- /dev/null +++ b/TC/testcase/utc_extend_reflect_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_reflect_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_reflect_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_reflect_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-reflect-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_reflect_similar1"); + else + dts_fail("utc_cairo_extend_reflect_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_repeat_gl.c b/TC/testcase/utc_extend_repeat_gl.c new file mode 100644 index 0000000..c8ab75f --- /dev/null +++ b/TC/testcase/utc_extend_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_repeat1"); + else + dts_fail("utc_cairo_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_repeat_image.c b/TC/testcase/utc_extend_repeat_image.c new file mode 100644 index 0000000..c0cad28 --- /dev/null +++ b/TC/testcase/utc_extend_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_repeat1"); + else + dts_fail("utc_cairo_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_repeat_similar_gl.c b/TC/testcase/utc_extend_repeat_similar_gl.c new file mode 100644 index 0000000..6e27b26 --- /dev/null +++ b/TC/testcase/utc_extend_repeat_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_repeat_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_repeat_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_repeat_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-repeat-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_repeat_similar1"); + else + dts_fail("utc_cairo_extend_repeat_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extend_repeat_similar_image.c b/TC/testcase/utc_extend_repeat_similar_image.c new file mode 100644 index 0000000..2d561e3 --- /dev/null +++ b/TC/testcase/utc_extend_repeat_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extend_repeat_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extend_repeat_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extend_repeat_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extend-repeat-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extend_repeat_similar1"); + else + dts_fail("utc_cairo_extend_repeat_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_alpha_gl.c b/TC/testcase/utc_extended_blend_alpha_gl.c new file mode 100644 index 0000000..7bee662 --- /dev/null +++ b/TC/testcase/utc_extended_blend_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_alpha1"); + else + dts_fail("utc_cairo_extended_blend_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_alpha_image.c b/TC/testcase/utc_extended_blend_alpha_image.c new file mode 100644 index 0000000..3214160 --- /dev/null +++ b/TC/testcase/utc_extended_blend_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_alpha1"); + else + dts_fail("utc_cairo_extended_blend_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_alpha_mask_gl.c b/TC/testcase/utc_extended_blend_alpha_mask_gl.c new file mode 100644 index 0000000..ed02698 --- /dev/null +++ b/TC/testcase/utc_extended_blend_alpha_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_alpha_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_alpha_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_alpha_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-alpha-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_alpha_mask1"); + else + dts_fail("utc_cairo_extended_blend_alpha_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_alpha_mask_image.c b/TC/testcase/utc_extended_blend_alpha_mask_image.c new file mode 100644 index 0000000..fdea88f --- /dev/null +++ b/TC/testcase/utc_extended_blend_alpha_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_alpha_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_alpha_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_alpha_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-alpha-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_alpha_mask1"); + else + dts_fail("utc_cairo_extended_blend_alpha_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_gl.c b/TC/testcase/utc_extended_blend_gl.c new file mode 100644 index 0000000..b70244b --- /dev/null +++ b/TC/testcase/utc_extended_blend_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend1"); + else + dts_fail("utc_cairo_extended_blend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_image.c b/TC/testcase/utc_extended_blend_image.c new file mode 100644 index 0000000..c5e5c5e --- /dev/null +++ b/TC/testcase/utc_extended_blend_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend1"); + else + dts_fail("utc_cairo_extended_blend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_mask_gl.c b/TC/testcase/utc_extended_blend_mask_gl.c new file mode 100644 index 0000000..00f904c --- /dev/null +++ b/TC/testcase/utc_extended_blend_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_mask1"); + else + dts_fail("utc_cairo_extended_blend_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_mask_image.c b/TC/testcase/utc_extended_blend_mask_image.c new file mode 100644 index 0000000..1a19354 --- /dev/null +++ b/TC/testcase/utc_extended_blend_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_mask1"); + else + dts_fail("utc_cairo_extended_blend_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_solid_alpha_gl.c b/TC/testcase/utc_extended_blend_solid_alpha_gl.c new file mode 100644 index 0000000..be66dfb --- /dev/null +++ b/TC/testcase/utc_extended_blend_solid_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_solid_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_solid_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_solid_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-solid-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_solid_alpha1"); + else + dts_fail("utc_cairo_extended_blend_solid_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_solid_alpha_image.c b/TC/testcase/utc_extended_blend_solid_alpha_image.c new file mode 100644 index 0000000..812a5eb --- /dev/null +++ b/TC/testcase/utc_extended_blend_solid_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_solid_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_solid_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_solid_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-solid-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_solid_alpha1"); + else + dts_fail("utc_cairo_extended_blend_solid_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_solid_gl.c b/TC/testcase/utc_extended_blend_solid_gl.c new file mode 100644 index 0000000..e7fe24c --- /dev/null +++ b/TC/testcase/utc_extended_blend_solid_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_solid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_solid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_solid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-solid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_solid1"); + else + dts_fail("utc_cairo_extended_blend_solid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_extended_blend_solid_image.c b/TC/testcase/utc_extended_blend_solid_image.c new file mode 100644 index 0000000..10ddb8b --- /dev/null +++ b/TC/testcase/utc_extended_blend_solid_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_extended_blend_solid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_extended_blend_solid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_extended_blend_solid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite extended-blend-solid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_extended_blend_solid1"); + else + dts_fail("utc_cairo_extended_blend_solid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fallback_gl.c b/TC/testcase/utc_fallback_gl.c new file mode 100644 index 0000000..0ab8651 --- /dev/null +++ b/TC/testcase/utc_fallback_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fallback1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fallback1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fallback1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fallback", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fallback1"); + else + dts_fail("utc_cairo_fallback1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fallback_image.c b/TC/testcase/utc_fallback_image.c new file mode 100644 index 0000000..058b32c --- /dev/null +++ b/TC/testcase/utc_fallback_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fallback1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fallback1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fallback1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fallback", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fallback1"); + else + dts_fail("utc_cairo_fallback1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fallback_resolution_gl.c b/TC/testcase/utc_fallback_resolution_gl.c new file mode 100644 index 0000000..f89413b --- /dev/null +++ b/TC/testcase/utc_fallback_resolution_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fallback_resolution1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fallback_resolution1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fallback_resolution1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fallback-resolution", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fallback_resolution1"); + else + dts_fail("utc_cairo_fallback_resolution1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fallback_resolution_image.c b/TC/testcase/utc_fallback_resolution_image.c new file mode 100644 index 0000000..fc533e3 --- /dev/null +++ b/TC/testcase/utc_fallback_resolution_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fallback_resolution1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fallback_resolution1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fallback_resolution1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fallback-resolution", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fallback_resolution1"); + else + dts_fail("utc_cairo_fallback_resolution1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_alpha_gl.c b/TC/testcase/utc_fill_alpha_gl.c new file mode 100644 index 0000000..3adba1a --- /dev/null +++ b/TC/testcase/utc_fill_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_alpha1"); + else + dts_fail("utc_cairo_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_alpha_image.c b/TC/testcase/utc_fill_alpha_image.c new file mode 100644 index 0000000..89e38c0 --- /dev/null +++ b/TC/testcase/utc_fill_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_alpha1"); + else + dts_fail("utc_cairo_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_alpha_pattern_gl.c b/TC/testcase/utc_fill_alpha_pattern_gl.c new file mode 100644 index 0000000..cded0e6 --- /dev/null +++ b/TC/testcase/utc_fill_alpha_pattern_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_alpha_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_alpha_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_alpha_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-alpha-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_alpha_pattern1"); + else + dts_fail("utc_cairo_fill_alpha_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_alpha_pattern_image.c b/TC/testcase/utc_fill_alpha_pattern_image.c new file mode 100644 index 0000000..364456f --- /dev/null +++ b/TC/testcase/utc_fill_alpha_pattern_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_alpha_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_alpha_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_alpha_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-alpha-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_alpha_pattern1"); + else + dts_fail("utc_cairo_fill_alpha_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_alpha_add_gl.c b/TC/testcase/utc_fill_and_stroke_alpha_add_gl.c new file mode 100644 index 0000000..017a36c --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_alpha_add_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke_alpha_add1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke_alpha_add1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke_alpha_add1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke-alpha-add", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke_alpha_add1"); + else + dts_fail("utc_cairo_fill_and_stroke_alpha_add1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_alpha_add_image.c b/TC/testcase/utc_fill_and_stroke_alpha_add_image.c new file mode 100644 index 0000000..9a6721c --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_alpha_add_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke_alpha_add1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke_alpha_add1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke_alpha_add1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke-alpha-add", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke_alpha_add1"); + else + dts_fail("utc_cairo_fill_and_stroke_alpha_add1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_alpha_gl.c b/TC/testcase/utc_fill_and_stroke_alpha_gl.c new file mode 100644 index 0000000..3a2cd03 --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke_alpha1"); + else + dts_fail("utc_cairo_fill_and_stroke_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_alpha_image.c b/TC/testcase/utc_fill_and_stroke_alpha_image.c new file mode 100644 index 0000000..892ff11 --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke_alpha1"); + else + dts_fail("utc_cairo_fill_and_stroke_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_gl.c b/TC/testcase/utc_fill_and_stroke_gl.c new file mode 100644 index 0000000..57ca296 --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke1"); + else + dts_fail("utc_cairo_fill_and_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_and_stroke_image.c b/TC/testcase/utc_fill_and_stroke_image.c new file mode 100644 index 0000000..db74286 --- /dev/null +++ b/TC/testcase/utc_fill_and_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_and_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_and_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_and_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-and-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_and_stroke1"); + else + dts_fail("utc_cairo_fill_and_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_degenerate_sort_order_gl.c b/TC/testcase/utc_fill_degenerate_sort_order_gl.c new file mode 100644 index 0000000..4851a9b --- /dev/null +++ b/TC/testcase/utc_fill_degenerate_sort_order_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_degenerate_sort_order1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_degenerate_sort_order1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_degenerate_sort_order1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-degenerate-sort-order", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_degenerate_sort_order1"); + else + dts_fail("utc_cairo_fill_degenerate_sort_order1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_degenerate_sort_order_image.c b/TC/testcase/utc_fill_degenerate_sort_order_image.c new file mode 100644 index 0000000..7f34cef --- /dev/null +++ b/TC/testcase/utc_fill_degenerate_sort_order_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_degenerate_sort_order1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_degenerate_sort_order1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_degenerate_sort_order1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-degenerate-sort-order", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_degenerate_sort_order1"); + else + dts_fail("utc_cairo_fill_degenerate_sort_order1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_disjoint_gl.c b/TC/testcase/utc_fill_disjoint_gl.c new file mode 100644 index 0000000..ea7aab3 --- /dev/null +++ b/TC/testcase/utc_fill_disjoint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_disjoint1"); + else + dts_fail("utc_cairo_fill_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_disjoint_image.c b/TC/testcase/utc_fill_disjoint_image.c new file mode 100644 index 0000000..1f45b85 --- /dev/null +++ b/TC/testcase/utc_fill_disjoint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_disjoint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_disjoint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_disjoint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-disjoint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_disjoint1"); + else + dts_fail("utc_cairo_fill_disjoint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_empty_gl.c b/TC/testcase/utc_fill_empty_gl.c new file mode 100644 index 0000000..ba81b14 --- /dev/null +++ b/TC/testcase/utc_fill_empty_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_empty1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_empty1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_empty1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-empty", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_empty1"); + else + dts_fail("utc_cairo_fill_empty1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_empty_image.c b/TC/testcase/utc_fill_empty_image.c new file mode 100644 index 0000000..d40c60e --- /dev/null +++ b/TC/testcase/utc_fill_empty_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_empty1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_empty1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_empty1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-empty", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_empty1"); + else + dts_fail("utc_cairo_fill_empty1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_image_gl.c b/TC/testcase/utc_fill_image_gl.c new file mode 100644 index 0000000..66184fd --- /dev/null +++ b/TC/testcase/utc_fill_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_image1"); + else + dts_fail("utc_cairo_fill_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_image_image.c b/TC/testcase/utc_fill_image_image.c new file mode 100644 index 0000000..0cdf9b5 --- /dev/null +++ b/TC/testcase/utc_fill_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_image1"); + else + dts_fail("utc_cairo_fill_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_missed_stop_gl.c b/TC/testcase/utc_fill_missed_stop_gl.c new file mode 100644 index 0000000..456ea56 --- /dev/null +++ b/TC/testcase/utc_fill_missed_stop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_missed_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_missed_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_missed_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-missed-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_missed_stop1"); + else + dts_fail("utc_cairo_fill_missed_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_missed_stop_image.c b/TC/testcase/utc_fill_missed_stop_image.c new file mode 100644 index 0000000..6b9c70f --- /dev/null +++ b/TC/testcase/utc_fill_missed_stop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_missed_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_missed_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_missed_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-missed-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_missed_stop1"); + else + dts_fail("utc_cairo_fill_missed_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_rule_gl.c b/TC/testcase/utc_fill_rule_gl.c new file mode 100644 index 0000000..b5515a5 --- /dev/null +++ b/TC/testcase/utc_fill_rule_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_rule1"); + else + dts_fail("utc_cairo_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_fill_rule_image.c b/TC/testcase/utc_fill_rule_image.c new file mode 100644 index 0000000..5c56a13 --- /dev/null +++ b/TC/testcase/utc_fill_rule_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_fill_rule1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_fill_rule1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_fill_rule1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite fill-rule", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_fill_rule1"); + else + dts_fail("utc_cairo_fill_rule1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_bilinear_extents_gl.c b/TC/testcase/utc_filter_bilinear_extents_gl.c new file mode 100644 index 0000000..968b371 --- /dev/null +++ b/TC/testcase/utc_filter_bilinear_extents_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_bilinear_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_bilinear_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_bilinear_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-bilinear-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_bilinear_extents1"); + else + dts_fail("utc_cairo_filter_bilinear_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_bilinear_extents_image.c b/TC/testcase/utc_filter_bilinear_extents_image.c new file mode 100644 index 0000000..1f4df27 --- /dev/null +++ b/TC/testcase/utc_filter_bilinear_extents_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_bilinear_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_bilinear_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_bilinear_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-bilinear-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_bilinear_extents1"); + else + dts_fail("utc_cairo_filter_bilinear_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_nearest_offset_gl.c b/TC/testcase/utc_filter_nearest_offset_gl.c new file mode 100644 index 0000000..cccabea --- /dev/null +++ b/TC/testcase/utc_filter_nearest_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_nearest_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_nearest_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_nearest_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-nearest-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_nearest_offset1"); + else + dts_fail("utc_cairo_filter_nearest_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_nearest_offset_image.c b/TC/testcase/utc_filter_nearest_offset_image.c new file mode 100644 index 0000000..b4c1228 --- /dev/null +++ b/TC/testcase/utc_filter_nearest_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_nearest_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_nearest_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_nearest_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-nearest-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_nearest_offset1"); + else + dts_fail("utc_cairo_filter_nearest_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_nearest_transformed_gl.c b/TC/testcase/utc_filter_nearest_transformed_gl.c new file mode 100644 index 0000000..63bf0fb --- /dev/null +++ b/TC/testcase/utc_filter_nearest_transformed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_nearest_transformed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_nearest_transformed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_nearest_transformed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-nearest-transformed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_nearest_transformed1"); + else + dts_fail("utc_cairo_filter_nearest_transformed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_filter_nearest_transformed_image.c b/TC/testcase/utc_filter_nearest_transformed_image.c new file mode 100644 index 0000000..a012700 --- /dev/null +++ b/TC/testcase/utc_filter_nearest_transformed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_filter_nearest_transformed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_filter_nearest_transformed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_filter_nearest_transformed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite filter-nearest-transformed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_filter_nearest_transformed1"); + else + dts_fail("utc_cairo_filter_nearest_transformed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_finer_grained_fallbacks_gl.c b/TC/testcase/utc_finer_grained_fallbacks_gl.c new file mode 100644 index 0000000..f592982 --- /dev/null +++ b/TC/testcase/utc_finer_grained_fallbacks_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_finer_grained_fallbacks1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_finer_grained_fallbacks1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_finer_grained_fallbacks1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite finer-grained-fallbacks", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_finer_grained_fallbacks1"); + else + dts_fail("utc_cairo_finer_grained_fallbacks1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_finer_grained_fallbacks_image.c b/TC/testcase/utc_finer_grained_fallbacks_image.c new file mode 100644 index 0000000..3131041 --- /dev/null +++ b/TC/testcase/utc_finer_grained_fallbacks_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_finer_grained_fallbacks1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_finer_grained_fallbacks1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_finer_grained_fallbacks1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite finer-grained-fallbacks", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_finer_grained_fallbacks1"); + else + dts_fail("utc_cairo_finer_grained_fallbacks1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_face_get_type_gl.c b/TC/testcase/utc_font_face_get_type_gl.c new file mode 100644 index 0000000..6427939 --- /dev/null +++ b/TC/testcase/utc_font_face_get_type_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_face_get_type1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_face_get_type1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_face_get_type1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-face-get-type", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_face_get_type1"); + else + dts_fail("utc_cairo_font_face_get_type1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_face_get_type_image.c b/TC/testcase/utc_font_face_get_type_image.c new file mode 100644 index 0000000..d41ca83 --- /dev/null +++ b/TC/testcase/utc_font_face_get_type_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_face_get_type1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_face_get_type1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_face_get_type1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-face-get-type", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_face_get_type1"); + else + dts_fail("utc_cairo_font_face_get_type1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_matrix_translation_gl.c b/TC/testcase/utc_font_matrix_translation_gl.c new file mode 100644 index 0000000..c6ace7d --- /dev/null +++ b/TC/testcase/utc_font_matrix_translation_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_matrix_translation1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_matrix_translation1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_matrix_translation1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-matrix-translation", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_matrix_translation1"); + else + dts_fail("utc_cairo_font_matrix_translation1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_matrix_translation_image.c b/TC/testcase/utc_font_matrix_translation_image.c new file mode 100644 index 0000000..46eb9ef --- /dev/null +++ b/TC/testcase/utc_font_matrix_translation_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_matrix_translation1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_matrix_translation1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_matrix_translation1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-matrix-translation", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_matrix_translation1"); + else + dts_fail("utc_cairo_font_matrix_translation1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_options_gl.c b/TC/testcase/utc_font_options_gl.c new file mode 100644 index 0000000..cabc5d3 --- /dev/null +++ b/TC/testcase/utc_font_options_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_options1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_options1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_options1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-options", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_options1"); + else + dts_fail("utc_cairo_font_options1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_font_options_image.c b/TC/testcase/utc_font_options_image.c new file mode 100644 index 0000000..72e07e7 --- /dev/null +++ b/TC/testcase/utc_font_options_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_font_options1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_font_options1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_font_options1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite font-options", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_font_options1"); + else + dts_fail("utc_cairo_font_options1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_font_create_for_ft_face_gl.c b/TC/testcase/utc_ft_font_create_for_ft_face_gl.c new file mode 100644 index 0000000..93993cd --- /dev/null +++ b/TC/testcase/utc_ft_font_create_for_ft_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_font_create_for_ft_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_font_create_for_ft_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_font_create_for_ft_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-font-create-for-ft-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_font_create_for_ft_face1"); + else + dts_fail("utc_cairo_ft_font_create_for_ft_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_font_create_for_ft_face_image.c b/TC/testcase/utc_ft_font_create_for_ft_face_image.c new file mode 100644 index 0000000..7810bcf --- /dev/null +++ b/TC/testcase/utc_ft_font_create_for_ft_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_font_create_for_ft_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_font_create_for_ft_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_font_create_for_ft_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-font-create-for-ft-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_font_create_for_ft_face1"); + else + dts_fail("utc_cairo_ft_font_create_for_ft_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_show_glyphs_positioning_gl.c b/TC/testcase/utc_ft_show_glyphs_positioning_gl.c new file mode 100644 index 0000000..d21fd1f --- /dev/null +++ b/TC/testcase/utc_ft_show_glyphs_positioning_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_show_glyphs_positioning1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_show_glyphs_positioning1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_show_glyphs_positioning1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-show-glyphs-positioning", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_show_glyphs_positioning1"); + else + dts_fail("utc_cairo_ft_show_glyphs_positioning1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_show_glyphs_positioning_image.c b/TC/testcase/utc_ft_show_glyphs_positioning_image.c new file mode 100644 index 0000000..baaa7a5 --- /dev/null +++ b/TC/testcase/utc_ft_show_glyphs_positioning_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_show_glyphs_positioning1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_show_glyphs_positioning1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_show_glyphs_positioning1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-show-glyphs-positioning", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_show_glyphs_positioning1"); + else + dts_fail("utc_cairo_ft_show_glyphs_positioning1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_show_glyphs_table_gl.c b/TC/testcase/utc_ft_show_glyphs_table_gl.c new file mode 100644 index 0000000..6ca8fd6 --- /dev/null +++ b/TC/testcase/utc_ft_show_glyphs_table_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_show_glyphs_table1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_show_glyphs_table1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_show_glyphs_table1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-show-glyphs-table", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_show_glyphs_table1"); + else + dts_fail("utc_cairo_ft_show_glyphs_table1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_show_glyphs_table_image.c b/TC/testcase/utc_ft_show_glyphs_table_image.c new file mode 100644 index 0000000..eb7e656 --- /dev/null +++ b/TC/testcase/utc_ft_show_glyphs_table_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_show_glyphs_table1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_show_glyphs_table1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_show_glyphs_table1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-show-glyphs-table", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_show_glyphs_table1"); + else + dts_fail("utc_cairo_ft_show_glyphs_table1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_antialias_none_gl.c b/TC/testcase/utc_ft_text_antialias_none_gl.c new file mode 100644 index 0000000..5a0e860 --- /dev/null +++ b/TC/testcase/utc_ft_text_antialias_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_antialias_none1"); + else + dts_fail("utc_cairo_ft_text_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_antialias_none_image.c b/TC/testcase/utc_ft_text_antialias_none_image.c new file mode 100644 index 0000000..5c5fcf6 --- /dev/null +++ b/TC/testcase/utc_ft_text_antialias_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_antialias_none1"); + else + dts_fail("utc_cairo_ft_text_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_vertical_layout_type1_gl.c b/TC/testcase/utc_ft_text_vertical_layout_type1_gl.c new file mode 100644 index 0000000..c766881 --- /dev/null +++ b/TC/testcase/utc_ft_text_vertical_layout_type1_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_vertical_layout_type11(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_vertical_layout_type11, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_vertical_layout_type11(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-vertical-layout-type1", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_vertical_layout_type11"); + else + dts_fail("utc_cairo_ft_text_vertical_layout_type11"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_vertical_layout_type1_image.c b/TC/testcase/utc_ft_text_vertical_layout_type1_image.c new file mode 100644 index 0000000..bb24f2e --- /dev/null +++ b/TC/testcase/utc_ft_text_vertical_layout_type1_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_vertical_layout_type11(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_vertical_layout_type11, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_vertical_layout_type11(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-vertical-layout-type1", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_vertical_layout_type11"); + else + dts_fail("utc_cairo_ft_text_vertical_layout_type11"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_vertical_layout_type3_gl.c b/TC/testcase/utc_ft_text_vertical_layout_type3_gl.c new file mode 100644 index 0000000..b0bc7e5 --- /dev/null +++ b/TC/testcase/utc_ft_text_vertical_layout_type3_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_vertical_layout_type31(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_vertical_layout_type31, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_vertical_layout_type31(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-vertical-layout-type3", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_vertical_layout_type31"); + else + dts_fail("utc_cairo_ft_text_vertical_layout_type31"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ft_text_vertical_layout_type3_image.c b/TC/testcase/utc_ft_text_vertical_layout_type3_image.c new file mode 100644 index 0000000..ad55b52 --- /dev/null +++ b/TC/testcase/utc_ft_text_vertical_layout_type3_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ft_text_vertical_layout_type31(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ft_text_vertical_layout_type31, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ft_text_vertical_layout_type31(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ft-text-vertical-layout-type3", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ft_text_vertical_layout_type31"); + else + dts_fail("utc_cairo_ft_text_vertical_layout_type31"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_and_set_gl.c b/TC/testcase/utc_get_and_set_gl.c new file mode 100644 index 0000000..005c0e3 --- /dev/null +++ b/TC/testcase/utc_get_and_set_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_and_set1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_and_set1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_and_set1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-and-set", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_and_set1"); + else + dts_fail("utc_cairo_get_and_set1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_and_set_image.c b/TC/testcase/utc_get_and_set_image.c new file mode 100644 index 0000000..b90e953 --- /dev/null +++ b/TC/testcase/utc_get_and_set_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_and_set1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_and_set1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_and_set1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-and-set", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_and_set1"); + else + dts_fail("utc_cairo_get_and_set1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_clip_gl.c b/TC/testcase/utc_get_clip_gl.c new file mode 100644 index 0000000..6f43b91 --- /dev/null +++ b/TC/testcase/utc_get_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_clip1"); + else + dts_fail("utc_cairo_get_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_clip_image.c b/TC/testcase/utc_get_clip_image.c new file mode 100644 index 0000000..80944d8 --- /dev/null +++ b/TC/testcase/utc_get_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_clip1"); + else + dts_fail("utc_cairo_get_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_group_target_gl.c b/TC/testcase/utc_get_group_target_gl.c new file mode 100644 index 0000000..6a36e26 --- /dev/null +++ b/TC/testcase/utc_get_group_target_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_group_target1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_group_target1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_group_target1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-group-target", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_group_target1"); + else + dts_fail("utc_cairo_get_group_target1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_group_target_image.c b/TC/testcase/utc_get_group_target_image.c new file mode 100644 index 0000000..5568aa2 --- /dev/null +++ b/TC/testcase/utc_get_group_target_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_group_target1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_group_target1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_group_target1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-group-target", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_group_target1"); + else + dts_fail("utc_cairo_get_group_target1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_path_extents_gl.c b/TC/testcase/utc_get_path_extents_gl.c new file mode 100644 index 0000000..4b22685 --- /dev/null +++ b/TC/testcase/utc_get_path_extents_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_path_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_path_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_path_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-path-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_path_extents1"); + else + dts_fail("utc_cairo_get_path_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_path_extents_image.c b/TC/testcase/utc_get_path_extents_image.c new file mode 100644 index 0000000..f193f82 --- /dev/null +++ b/TC/testcase/utc_get_path_extents_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_path_extents1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_path_extents1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_path_extents1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-path-extents", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_path_extents1"); + else + dts_fail("utc_cairo_get_path_extents1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_xrender_format_gl.c b/TC/testcase/utc_get_xrender_format_gl.c new file mode 100644 index 0000000..426c024 --- /dev/null +++ b/TC/testcase/utc_get_xrender_format_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_xrender_format1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_xrender_format1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_xrender_format1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-xrender-format", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_xrender_format1"); + else + dts_fail("utc_cairo_get_xrender_format1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_get_xrender_format_image.c b/TC/testcase/utc_get_xrender_format_image.c new file mode 100644 index 0000000..c020e1c --- /dev/null +++ b/TC/testcase/utc_get_xrender_format_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_get_xrender_format1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_get_xrender_format1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_get_xrender_format1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite get-xrender-format", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_get_xrender_format1"); + else + dts_fail("utc_cairo_get_xrender_format1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gl_surface_source_gl.c b/TC/testcase/utc_gl_surface_source_gl.c new file mode 100644 index 0000000..da35e83 --- /dev/null +++ b/TC/testcase/utc_gl_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gl_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gl_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gl_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gl-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gl_surface_source1"); + else + dts_fail("utc_cairo_gl_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gl_surface_source_image.c b/TC/testcase/utc_gl_surface_source_image.c new file mode 100644 index 0000000..ca99091 --- /dev/null +++ b/TC/testcase/utc_gl_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gl_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gl_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gl_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gl-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gl_surface_source1"); + else + dts_fail("utc_cairo_gl_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_glyph_cache_pressure_gl.c b/TC/testcase/utc_glyph_cache_pressure_gl.c new file mode 100644 index 0000000..8f4cbeb --- /dev/null +++ b/TC/testcase/utc_glyph_cache_pressure_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_glyph_cache_pressure1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_glyph_cache_pressure1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_glyph_cache_pressure1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite glyph-cache-pressure", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_glyph_cache_pressure1"); + else + dts_fail("utc_cairo_glyph_cache_pressure1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_glyph_cache_pressure_image.c b/TC/testcase/utc_glyph_cache_pressure_image.c new file mode 100644 index 0000000..2b4c1b8 --- /dev/null +++ b/TC/testcase/utc_glyph_cache_pressure_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_glyph_cache_pressure1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_glyph_cache_pressure1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_glyph_cache_pressure1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite glyph-cache-pressure", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_glyph_cache_pressure1"); + else + dts_fail("utc_cairo_glyph_cache_pressure1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_alpha_gl.c b/TC/testcase/utc_gradient_alpha_gl.c new file mode 100644 index 0000000..de5fb23 --- /dev/null +++ b/TC/testcase/utc_gradient_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_alpha1"); + else + dts_fail("utc_cairo_gradient_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_alpha_image.c b/TC/testcase/utc_gradient_alpha_image.c new file mode 100644 index 0000000..5c8c4a1 --- /dev/null +++ b/TC/testcase/utc_gradient_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_alpha1"); + else + dts_fail("utc_cairo_gradient_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_constant_alpha_gl.c b/TC/testcase/utc_gradient_constant_alpha_gl.c new file mode 100644 index 0000000..c75e542 --- /dev/null +++ b/TC/testcase/utc_gradient_constant_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_constant_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_constant_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_constant_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-constant-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_constant_alpha1"); + else + dts_fail("utc_cairo_gradient_constant_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_constant_alpha_image.c b/TC/testcase/utc_gradient_constant_alpha_image.c new file mode 100644 index 0000000..3d5ef0a --- /dev/null +++ b/TC/testcase/utc_gradient_constant_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_constant_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_constant_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_constant_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-constant-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_constant_alpha1"); + else + dts_fail("utc_cairo_gradient_constant_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_zero_stops_gl.c b/TC/testcase/utc_gradient_zero_stops_gl.c new file mode 100644 index 0000000..1f805a1 --- /dev/null +++ b/TC/testcase/utc_gradient_zero_stops_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_zero_stops1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_zero_stops1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_zero_stops1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-zero-stops", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_zero_stops1"); + else + dts_fail("utc_cairo_gradient_zero_stops1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_zero_stops_image.c b/TC/testcase/utc_gradient_zero_stops_image.c new file mode 100644 index 0000000..a22f627 --- /dev/null +++ b/TC/testcase/utc_gradient_zero_stops_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_zero_stops1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_zero_stops1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_zero_stops1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-zero-stops", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_zero_stops1"); + else + dts_fail("utc_cairo_gradient_zero_stops1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_zero_stops_mask_gl.c b/TC/testcase/utc_gradient_zero_stops_mask_gl.c new file mode 100644 index 0000000..480ff24 --- /dev/null +++ b/TC/testcase/utc_gradient_zero_stops_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_zero_stops_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_zero_stops_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_zero_stops_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-zero-stops-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_zero_stops_mask1"); + else + dts_fail("utc_cairo_gradient_zero_stops_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_gradient_zero_stops_mask_image.c b/TC/testcase/utc_gradient_zero_stops_mask_image.c new file mode 100644 index 0000000..7af9096 --- /dev/null +++ b/TC/testcase/utc_gradient_zero_stops_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_gradient_zero_stops_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_gradient_zero_stops_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_gradient_zero_stops_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite gradient-zero-stops-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_gradient_zero_stops_mask1"); + else + dts_fail("utc_cairo_gradient_zero_stops_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_clip_gl.c b/TC/testcase/utc_group_clip_gl.c new file mode 100644 index 0000000..a5c34cf --- /dev/null +++ b/TC/testcase/utc_group_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_clip1"); + else + dts_fail("utc_cairo_group_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_clip_image.c b/TC/testcase/utc_group_clip_image.c new file mode 100644 index 0000000..35c4a06 --- /dev/null +++ b/TC/testcase/utc_group_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_clip1"); + else + dts_fail("utc_cairo_group_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_paint_gl.c b/TC/testcase/utc_group_paint_gl.c new file mode 100644 index 0000000..b7a9f42 --- /dev/null +++ b/TC/testcase/utc_group_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_paint1"); + else + dts_fail("utc_cairo_group_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_paint_image.c b/TC/testcase/utc_group_paint_image.c new file mode 100644 index 0000000..ec23101 --- /dev/null +++ b/TC/testcase/utc_group_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_paint1"); + else + dts_fail("utc_cairo_group_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_state_gl.c b/TC/testcase/utc_group_state_gl.c new file mode 100644 index 0000000..3089363 --- /dev/null +++ b/TC/testcase/utc_group_state_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_state1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_state1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_state1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-state", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_state1"); + else + dts_fail("utc_cairo_group_state1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_state_image.c b/TC/testcase/utc_group_state_image.c new file mode 100644 index 0000000..43e0b6c --- /dev/null +++ b/TC/testcase/utc_group_state_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_state1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_state1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_state1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-state", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_state1"); + else + dts_fail("utc_cairo_group_state1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_unaligned_gl.c b/TC/testcase/utc_group_unaligned_gl.c new file mode 100644 index 0000000..e167ec7 --- /dev/null +++ b/TC/testcase/utc_group_unaligned_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_unaligned1"); + else + dts_fail("utc_cairo_group_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_group_unaligned_image.c b/TC/testcase/utc_group_unaligned_image.c new file mode 100644 index 0000000..f04d041 --- /dev/null +++ b/TC/testcase/utc_group_unaligned_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_group_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_group_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_group_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite group-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_group_unaligned1"); + else + dts_fail("utc_cairo_group_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_half_coverage_rectangles_gl.c b/TC/testcase/utc_half_coverage_rectangles_gl.c new file mode 100644 index 0000000..cef97e9 --- /dev/null +++ b/TC/testcase/utc_half_coverage_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_half_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_half_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_half_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite half-coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_half_coverage_rectangles1"); + else + dts_fail("utc_cairo_half_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_half_coverage_rectangles_image.c b/TC/testcase/utc_half_coverage_rectangles_image.c new file mode 100644 index 0000000..d16026f --- /dev/null +++ b/TC/testcase/utc_half_coverage_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_half_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_half_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_half_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite half-coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_half_coverage_rectangles1"); + else + dts_fail("utc_cairo_half_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_half_coverage_triangles_gl.c b/TC/testcase/utc_half_coverage_triangles_gl.c new file mode 100644 index 0000000..7dffc85 --- /dev/null +++ b/TC/testcase/utc_half_coverage_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_half_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_half_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_half_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite half-coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_half_coverage_triangles1"); + else + dts_fail("utc_cairo_half_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_half_coverage_triangles_image.c b/TC/testcase/utc_half_coverage_triangles_image.c new file mode 100644 index 0000000..7384acf --- /dev/null +++ b/TC/testcase/utc_half_coverage_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_half_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_half_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_half_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite half-coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_half_coverage_triangles1"); + else + dts_fail("utc_cairo_half_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_halo_gl.c b/TC/testcase/utc_halo_gl.c new file mode 100644 index 0000000..b35283e --- /dev/null +++ b/TC/testcase/utc_halo_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_halo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_halo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_halo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite halo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_halo1"); + else + dts_fail("utc_cairo_halo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_halo_image.c b/TC/testcase/utc_halo_image.c new file mode 100644 index 0000000..4fa14a2 --- /dev/null +++ b/TC/testcase/utc_halo_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_halo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_halo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_halo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite halo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_halo1"); + else + dts_fail("utc_cairo_halo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_halo_transform_gl.c b/TC/testcase/utc_halo_transform_gl.c new file mode 100644 index 0000000..6ad9084 --- /dev/null +++ b/TC/testcase/utc_halo_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_halo_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_halo_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_halo_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite halo-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_halo_transform1"); + else + dts_fail("utc_cairo_halo_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_halo_transform_image.c b/TC/testcase/utc_halo_transform_image.c new file mode 100644 index 0000000..a893ed5 --- /dev/null +++ b/TC/testcase/utc_halo_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_halo_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_halo_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_halo_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite halo-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_halo_transform1"); + else + dts_fail("utc_cairo_halo_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_hatchings_gl.c b/TC/testcase/utc_hatchings_gl.c new file mode 100644 index 0000000..b36cca6 --- /dev/null +++ b/TC/testcase/utc_hatchings_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_hatchings1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_hatchings1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_hatchings1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite hatchings", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_hatchings1"); + else + dts_fail("utc_cairo_hatchings1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_hatchings_image.c b/TC/testcase/utc_hatchings_image.c new file mode 100644 index 0000000..183fdd2 --- /dev/null +++ b/TC/testcase/utc_hatchings_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_hatchings1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_hatchings1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_hatchings1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite hatchings", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_hatchings1"); + else + dts_fail("utc_cairo_hatchings1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_horizontal_clip_gl.c b/TC/testcase/utc_horizontal_clip_gl.c new file mode 100644 index 0000000..9ed6848 --- /dev/null +++ b/TC/testcase/utc_horizontal_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_horizontal_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_horizontal_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_horizontal_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite horizontal-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_horizontal_clip1"); + else + dts_fail("utc_cairo_horizontal_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_horizontal_clip_image.c b/TC/testcase/utc_horizontal_clip_image.c new file mode 100644 index 0000000..4653cae --- /dev/null +++ b/TC/testcase/utc_horizontal_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_horizontal_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_horizontal_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_horizontal_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite horizontal-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_horizontal_clip1"); + else + dts_fail("utc_cairo_horizontal_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_huge_linear_gl.c b/TC/testcase/utc_huge_linear_gl.c new file mode 100644 index 0000000..0eed646 --- /dev/null +++ b/TC/testcase/utc_huge_linear_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_huge_linear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_huge_linear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_huge_linear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite huge-linear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_huge_linear1"); + else + dts_fail("utc_cairo_huge_linear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_huge_linear_image.c b/TC/testcase/utc_huge_linear_image.c new file mode 100644 index 0000000..47b813a --- /dev/null +++ b/TC/testcase/utc_huge_linear_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_huge_linear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_huge_linear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_huge_linear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite huge-linear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_huge_linear1"); + else + dts_fail("utc_cairo_huge_linear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_huge_radial_gl.c b/TC/testcase/utc_huge_radial_gl.c new file mode 100644 index 0000000..8ca59ed --- /dev/null +++ b/TC/testcase/utc_huge_radial_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_huge_radial1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_huge_radial1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_huge_radial1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite huge-radial", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_huge_radial1"); + else + dts_fail("utc_cairo_huge_radial1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_huge_radial_image.c b/TC/testcase/utc_huge_radial_image.c new file mode 100644 index 0000000..cc2f898 --- /dev/null +++ b/TC/testcase/utc_huge_radial_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_huge_radial1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_huge_radial1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_huge_radial1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite huge-radial", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_huge_radial1"); + else + dts_fail("utc_cairo_huge_radial1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_bug_710072_aligned_gl.c b/TC/testcase/utc_image_bug_710072_aligned_gl.c new file mode 100644 index 0000000..5319bf5 --- /dev/null +++ b/TC/testcase/utc_image_bug_710072_aligned_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_bug_710072_aligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_bug_710072_aligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_bug_710072_aligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-bug-710072-aligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_bug_710072_aligned1"); + else + dts_fail("utc_cairo_image_bug_710072_aligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_bug_710072_aligned_image.c b/TC/testcase/utc_image_bug_710072_aligned_image.c new file mode 100644 index 0000000..0fc8fae --- /dev/null +++ b/TC/testcase/utc_image_bug_710072_aligned_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_bug_710072_aligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_bug_710072_aligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_bug_710072_aligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-bug-710072-aligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_bug_710072_aligned1"); + else + dts_fail("utc_cairo_image_bug_710072_aligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_bug_710072_unaligned_gl.c b/TC/testcase/utc_image_bug_710072_unaligned_gl.c new file mode 100644 index 0000000..e0d8e95 --- /dev/null +++ b/TC/testcase/utc_image_bug_710072_unaligned_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_bug_710072_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_bug_710072_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_bug_710072_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-bug-710072-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_bug_710072_unaligned1"); + else + dts_fail("utc_cairo_image_bug_710072_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_bug_710072_unaligned_image.c b/TC/testcase/utc_image_bug_710072_unaligned_image.c new file mode 100644 index 0000000..2b160e2 --- /dev/null +++ b/TC/testcase/utc_image_bug_710072_unaligned_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_bug_710072_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_bug_710072_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_bug_710072_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-bug-710072-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_bug_710072_unaligned1"); + else + dts_fail("utc_cairo_image_bug_710072_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_surface_source_gl.c b/TC/testcase/utc_image_surface_source_gl.c new file mode 100644 index 0000000..2888a33 --- /dev/null +++ b/TC/testcase/utc_image_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_surface_source1"); + else + dts_fail("utc_cairo_image_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_image_surface_source_image.c b/TC/testcase/utc_image_surface_source_image.c new file mode 100644 index 0000000..c7f1a70 --- /dev/null +++ b/TC/testcase/utc_image_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_image_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_image_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_image_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite image-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_image_surface_source1"); + else + dts_fail("utc_cairo_image_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_implicit_close_gl.c b/TC/testcase/utc_implicit_close_gl.c new file mode 100644 index 0000000..9686c2f --- /dev/null +++ b/TC/testcase/utc_implicit_close_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_implicit_close1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_implicit_close1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_implicit_close1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite implicit-close", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_implicit_close1"); + else + dts_fail("utc_cairo_implicit_close1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_implicit_close_image.c b/TC/testcase/utc_implicit_close_image.c new file mode 100644 index 0000000..15e4067 --- /dev/null +++ b/TC/testcase/utc_implicit_close_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_implicit_close1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_implicit_close1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_implicit_close1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite implicit-close", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_implicit_close1"); + else + dts_fail("utc_cairo_implicit_close1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_in_fill_empty_trapezoid_gl.c b/TC/testcase/utc_in_fill_empty_trapezoid_gl.c new file mode 100644 index 0000000..ec810c4 --- /dev/null +++ b/TC/testcase/utc_in_fill_empty_trapezoid_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_in_fill_empty_trapezoid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_in_fill_empty_trapezoid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_in_fill_empty_trapezoid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite in-fill-empty-trapezoid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_in_fill_empty_trapezoid1"); + else + dts_fail("utc_cairo_in_fill_empty_trapezoid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_in_fill_empty_trapezoid_image.c b/TC/testcase/utc_in_fill_empty_trapezoid_image.c new file mode 100644 index 0000000..8b18923 --- /dev/null +++ b/TC/testcase/utc_in_fill_empty_trapezoid_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_in_fill_empty_trapezoid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_in_fill_empty_trapezoid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_in_fill_empty_trapezoid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite in-fill-empty-trapezoid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_in_fill_empty_trapezoid1"); + else + dts_fail("utc_cairo_in_fill_empty_trapezoid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_in_fill_trapezoid_gl.c b/TC/testcase/utc_in_fill_trapezoid_gl.c new file mode 100644 index 0000000..df46565 --- /dev/null +++ b/TC/testcase/utc_in_fill_trapezoid_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_in_fill_trapezoid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_in_fill_trapezoid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_in_fill_trapezoid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite in-fill-trapezoid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_in_fill_trapezoid1"); + else + dts_fail("utc_cairo_in_fill_trapezoid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_in_fill_trapezoid_image.c b/TC/testcase/utc_in_fill_trapezoid_image.c new file mode 100644 index 0000000..d95f13e --- /dev/null +++ b/TC/testcase/utc_in_fill_trapezoid_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_in_fill_trapezoid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_in_fill_trapezoid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_in_fill_trapezoid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite in-fill-trapezoid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_in_fill_trapezoid1"); + else + dts_fail("utc_cairo_in_fill_trapezoid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_infinite_join_gl.c b/TC/testcase/utc_infinite_join_gl.c new file mode 100644 index 0000000..13555fd --- /dev/null +++ b/TC/testcase/utc_infinite_join_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_infinite_join1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_infinite_join1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_infinite_join1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite infinite-join", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_infinite_join1"); + else + dts_fail("utc_cairo_infinite_join1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_infinite_join_image.c b/TC/testcase/utc_infinite_join_image.c new file mode 100644 index 0000000..1624038 --- /dev/null +++ b/TC/testcase/utc_infinite_join_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_infinite_join1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_infinite_join1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_infinite_join1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite infinite-join", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_infinite_join1"); + else + dts_fail("utc_cairo_infinite_join1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_invalid_matrix_gl.c b/TC/testcase/utc_invalid_matrix_gl.c new file mode 100644 index 0000000..cb52fec --- /dev/null +++ b/TC/testcase/utc_invalid_matrix_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_invalid_matrix1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_invalid_matrix1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_invalid_matrix1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite invalid-matrix", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_invalid_matrix1"); + else + dts_fail("utc_cairo_invalid_matrix1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_invalid_matrix_image.c b/TC/testcase/utc_invalid_matrix_image.c new file mode 100644 index 0000000..1bd7580 --- /dev/null +++ b/TC/testcase/utc_invalid_matrix_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_invalid_matrix1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_invalid_matrix1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_invalid_matrix1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite invalid-matrix", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_invalid_matrix1"); + else + dts_fail("utc_cairo_invalid_matrix1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_inverse_text_gl.c b/TC/testcase/utc_inverse_text_gl.c new file mode 100644 index 0000000..c4baf2c --- /dev/null +++ b/TC/testcase/utc_inverse_text_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_inverse_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_inverse_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_inverse_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite inverse-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_inverse_text1"); + else + dts_fail("utc_cairo_inverse_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_inverse_text_image.c b/TC/testcase/utc_inverse_text_image.c new file mode 100644 index 0000000..ad65930 --- /dev/null +++ b/TC/testcase/utc_inverse_text_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_inverse_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_inverse_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_inverse_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite inverse-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_inverse_text1"); + else + dts_fail("utc_cairo_inverse_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_inverted_clip_gl.c b/TC/testcase/utc_inverted_clip_gl.c new file mode 100644 index 0000000..ea01ea1 --- /dev/null +++ b/TC/testcase/utc_inverted_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_inverted_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_inverted_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_inverted_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite inverted-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_inverted_clip1"); + else + dts_fail("utc_cairo_inverted_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_inverted_clip_image.c b/TC/testcase/utc_inverted_clip_image.c new file mode 100644 index 0000000..2957392 --- /dev/null +++ b/TC/testcase/utc_inverted_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_inverted_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_inverted_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_inverted_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite inverted-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_inverted_clip1"); + else + dts_fail("utc_cairo_inverted_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_gl.c b/TC/testcase/utc_joins_gl.c new file mode 100644 index 0000000..e974093 --- /dev/null +++ b/TC/testcase/utc_joins_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins1"); + else + dts_fail("utc_cairo_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_image.c b/TC/testcase/utc_joins_image.c new file mode 100644 index 0000000..3055a60 --- /dev/null +++ b/TC/testcase/utc_joins_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins1"); + else + dts_fail("utc_cairo_joins1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_loop_gl.c b/TC/testcase/utc_joins_loop_gl.c new file mode 100644 index 0000000..bf26abe --- /dev/null +++ b/TC/testcase/utc_joins_loop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_loop1"); + else + dts_fail("utc_cairo_joins_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_loop_image.c b/TC/testcase/utc_joins_loop_image.c new file mode 100644 index 0000000..8abf973 --- /dev/null +++ b/TC/testcase/utc_joins_loop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_loop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_loop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_loop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-loop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_loop1"); + else + dts_fail("utc_cairo_joins_loop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_retrace_gl.c b/TC/testcase/utc_joins_retrace_gl.c new file mode 100644 index 0000000..cbaa15d --- /dev/null +++ b/TC/testcase/utc_joins_retrace_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_retrace1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_retrace1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_retrace1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-retrace", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_retrace1"); + else + dts_fail("utc_cairo_joins_retrace1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_retrace_image.c b/TC/testcase/utc_joins_retrace_image.c new file mode 100644 index 0000000..1ccd5a8 --- /dev/null +++ b/TC/testcase/utc_joins_retrace_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_retrace1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_retrace1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_retrace1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-retrace", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_retrace1"); + else + dts_fail("utc_cairo_joins_retrace1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_star_gl.c b/TC/testcase/utc_joins_star_gl.c new file mode 100644 index 0000000..f3acbe3 --- /dev/null +++ b/TC/testcase/utc_joins_star_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_star1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_star1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_star1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-star", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_star1"); + else + dts_fail("utc_cairo_joins_star1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_joins_star_image.c b/TC/testcase/utc_joins_star_image.c new file mode 100644 index 0000000..a54c282 --- /dev/null +++ b/TC/testcase/utc_joins_star_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_joins_star1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_joins_star1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_joins_star1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite joins-star", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_joins_star1"); + else + dts_fail("utc_cairo_joins_star1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_clip_gl.c b/TC/testcase/utc_large_clip_gl.c new file mode 100644 index 0000000..6584e2f --- /dev/null +++ b/TC/testcase/utc_large_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_clip1"); + else + dts_fail("utc_cairo_large_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_clip_image.c b/TC/testcase/utc_large_clip_image.c new file mode 100644 index 0000000..f08a666 --- /dev/null +++ b/TC/testcase/utc_large_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_clip1"); + else + dts_fail("utc_cairo_large_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_font_gl.c b/TC/testcase/utc_large_font_gl.c new file mode 100644 index 0000000..08b622f --- /dev/null +++ b/TC/testcase/utc_large_font_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_font1"); + else + dts_fail("utc_cairo_large_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_font_image.c b/TC/testcase/utc_large_font_image.c new file mode 100644 index 0000000..7804d97 --- /dev/null +++ b/TC/testcase/utc_large_font_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_font1"); + else + dts_fail("utc_cairo_large_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_source_gl.c b/TC/testcase/utc_large_source_gl.c new file mode 100644 index 0000000..76c99f0 --- /dev/null +++ b/TC/testcase/utc_large_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_source1"); + else + dts_fail("utc_cairo_large_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_source_image.c b/TC/testcase/utc_large_source_image.c new file mode 100644 index 0000000..4b2e51b --- /dev/null +++ b/TC/testcase/utc_large_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_source1"); + else + dts_fail("utc_cairo_large_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_source_roi_gl.c b/TC/testcase/utc_large_source_roi_gl.c new file mode 100644 index 0000000..09e2d63 --- /dev/null +++ b/TC/testcase/utc_large_source_roi_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_source_roi1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_source_roi1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_source_roi1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-source-roi", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_source_roi1"); + else + dts_fail("utc_cairo_large_source_roi1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_source_roi_image.c b/TC/testcase/utc_large_source_roi_image.c new file mode 100644 index 0000000..0256e55 --- /dev/null +++ b/TC/testcase/utc_large_source_roi_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_source_roi1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_source_roi1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_source_roi1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-source-roi", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_source_roi1"); + else + dts_fail("utc_cairo_large_source_roi1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_twin_antialias_mixed_gl.c b/TC/testcase/utc_large_twin_antialias_mixed_gl.c new file mode 100644 index 0000000..bb6a692 --- /dev/null +++ b/TC/testcase/utc_large_twin_antialias_mixed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_twin_antialias_mixed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_twin_antialias_mixed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_twin_antialias_mixed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-twin-antialias-mixed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_twin_antialias_mixed1"); + else + dts_fail("utc_cairo_large_twin_antialias_mixed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_large_twin_antialias_mixed_image.c b/TC/testcase/utc_large_twin_antialias_mixed_image.c new file mode 100644 index 0000000..60b5fb1 --- /dev/null +++ b/TC/testcase/utc_large_twin_antialias_mixed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_large_twin_antialias_mixed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_large_twin_antialias_mixed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_large_twin_antialias_mixed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite large-twin-antialias-mixed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_large_twin_antialias_mixed1"); + else + dts_fail("utc_cairo_large_twin_antialias_mixed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dash_gl.c b/TC/testcase/utc_leaky_dash_gl.c new file mode 100644 index 0000000..e8dd210 --- /dev/null +++ b/TC/testcase/utc_leaky_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dash1"); + else + dts_fail("utc_cairo_leaky_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dash_image.c b/TC/testcase/utc_leaky_dash_image.c new file mode 100644 index 0000000..5ca6082 --- /dev/null +++ b/TC/testcase/utc_leaky_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dash1"); + else + dts_fail("utc_cairo_leaky_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dashed_rectangle_gl.c b/TC/testcase/utc_leaky_dashed_rectangle_gl.c new file mode 100644 index 0000000..678fb59 --- /dev/null +++ b/TC/testcase/utc_leaky_dashed_rectangle_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dashed_rectangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dashed_rectangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dashed_rectangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dashed-rectangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dashed_rectangle1"); + else + dts_fail("utc_cairo_leaky_dashed_rectangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dashed_rectangle_image.c b/TC/testcase/utc_leaky_dashed_rectangle_image.c new file mode 100644 index 0000000..c1da47b --- /dev/null +++ b/TC/testcase/utc_leaky_dashed_rectangle_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dashed_rectangle1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dashed_rectangle1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dashed_rectangle1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dashed-rectangle", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dashed_rectangle1"); + else + dts_fail("utc_cairo_leaky_dashed_rectangle1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dashed_stroke_gl.c b/TC/testcase/utc_leaky_dashed_stroke_gl.c new file mode 100644 index 0000000..5901b16 --- /dev/null +++ b/TC/testcase/utc_leaky_dashed_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dashed_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dashed_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dashed_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dashed-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dashed_stroke1"); + else + dts_fail("utc_cairo_leaky_dashed_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_dashed_stroke_image.c b/TC/testcase/utc_leaky_dashed_stroke_image.c new file mode 100644 index 0000000..950e05f --- /dev/null +++ b/TC/testcase/utc_leaky_dashed_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_dashed_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_dashed_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_dashed_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-dashed-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_dashed_stroke1"); + else + dts_fail("utc_cairo_leaky_dashed_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_polygon_gl.c b/TC/testcase/utc_leaky_polygon_gl.c new file mode 100644 index 0000000..e7051f7 --- /dev/null +++ b/TC/testcase/utc_leaky_polygon_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_polygon1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_polygon1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_polygon1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-polygon", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_polygon1"); + else + dts_fail("utc_cairo_leaky_polygon1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_leaky_polygon_image.c b/TC/testcase/utc_leaky_polygon_image.c new file mode 100644 index 0000000..63e601c --- /dev/null +++ b/TC/testcase/utc_leaky_polygon_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_leaky_polygon1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_leaky_polygon1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_leaky_polygon1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite leaky-polygon", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_leaky_polygon1"); + else + dts_fail("utc_cairo_leaky_polygon1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_gl.c b/TC/testcase/utc_line_width_gl.c new file mode 100644 index 0000000..aefddd5 --- /dev/null +++ b/TC/testcase/utc_line_width_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width1"); + else + dts_fail("utc_cairo_line_width1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_image.c b/TC/testcase/utc_line_width_image.c new file mode 100644 index 0000000..2dde797 --- /dev/null +++ b/TC/testcase/utc_line_width_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width1"); + else + dts_fail("utc_cairo_line_width1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_dashed_gl.c b/TC/testcase/utc_line_width_large_overlap_dashed_gl.c new file mode 100644 index 0000000..415e3cf --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_dashed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_dashed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_dashed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_dashed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-dashed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_dashed1"); + else + dts_fail("utc_cairo_line_width_large_overlap_dashed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_dashed_image.c b/TC/testcase/utc_line_width_large_overlap_dashed_image.c new file mode 100644 index 0000000..1091d1a --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_dashed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_dashed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_dashed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_dashed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-dashed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_dashed1"); + else + dts_fail("utc_cairo_line_width_large_overlap_dashed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_flipped_gl.c b/TC/testcase/utc_line_width_large_overlap_flipped_gl.c new file mode 100644 index 0000000..f2e3d2b --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_flipped_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_flipped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_flipped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_flipped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-flipped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_flipped1"); + else + dts_fail("utc_cairo_line_width_large_overlap_flipped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_flipped_image.c b/TC/testcase/utc_line_width_large_overlap_flipped_image.c new file mode 100644 index 0000000..4e662ce --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_flipped_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_flipped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_flipped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_flipped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-flipped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_flipped1"); + else + dts_fail("utc_cairo_line_width_large_overlap_flipped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_flopped_gl.c b/TC/testcase/utc_line_width_large_overlap_flopped_gl.c new file mode 100644 index 0000000..b0ead48 --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_flopped_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_flopped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_flopped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_flopped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-flopped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_flopped1"); + else + dts_fail("utc_cairo_line_width_large_overlap_flopped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_flopped_image.c b/TC/testcase/utc_line_width_large_overlap_flopped_image.c new file mode 100644 index 0000000..9b9d74f --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_flopped_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_flopped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_flopped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_flopped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-flopped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_flopped1"); + else + dts_fail("utc_cairo_line_width_large_overlap_flopped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_gl.c b/TC/testcase/utc_line_width_large_overlap_gl.c new file mode 100644 index 0000000..9d7309d --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap1"); + else + dts_fail("utc_cairo_line_width_large_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_image.c b/TC/testcase/utc_line_width_large_overlap_image.c new file mode 100644 index 0000000..8efea2c --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap1"); + else + dts_fail("utc_cairo_line_width_large_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_offset_gl.c b/TC/testcase/utc_line_width_large_overlap_offset_gl.c new file mode 100644 index 0000000..4d3bbbd --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_offset1"); + else + dts_fail("utc_cairo_line_width_large_overlap_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_offset_image.c b/TC/testcase/utc_line_width_large_overlap_offset_image.c new file mode 100644 index 0000000..e220b98 --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_offset1"); + else + dts_fail("utc_cairo_line_width_large_overlap_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_rotated_gl.c b/TC/testcase/utc_line_width_large_overlap_rotated_gl.c new file mode 100644 index 0000000..c9a1a0d --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_rotated_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_rotated1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_rotated1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_rotated1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-rotated", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_rotated1"); + else + dts_fail("utc_cairo_line_width_large_overlap_rotated1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_large_overlap_rotated_image.c b/TC/testcase/utc_line_width_large_overlap_rotated_image.c new file mode 100644 index 0000000..ea7ae29 --- /dev/null +++ b/TC/testcase/utc_line_width_large_overlap_rotated_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_large_overlap_rotated1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_large_overlap_rotated1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_large_overlap_rotated1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-large-overlap-rotated", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_large_overlap_rotated1"); + else + dts_fail("utc_cairo_line_width_large_overlap_rotated1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_dashed_gl.c b/TC/testcase/utc_line_width_overlap_dashed_gl.c new file mode 100644 index 0000000..0e991e1 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_dashed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_dashed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_dashed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_dashed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-dashed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_dashed1"); + else + dts_fail("utc_cairo_line_width_overlap_dashed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_dashed_image.c b/TC/testcase/utc_line_width_overlap_dashed_image.c new file mode 100644 index 0000000..d9780ad --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_dashed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_dashed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_dashed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_dashed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-dashed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_dashed1"); + else + dts_fail("utc_cairo_line_width_overlap_dashed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_flipped_gl.c b/TC/testcase/utc_line_width_overlap_flipped_gl.c new file mode 100644 index 0000000..f0edb4d --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_flipped_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_flipped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_flipped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_flipped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-flipped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_flipped1"); + else + dts_fail("utc_cairo_line_width_overlap_flipped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_flipped_image.c b/TC/testcase/utc_line_width_overlap_flipped_image.c new file mode 100644 index 0000000..2149491 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_flipped_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_flipped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_flipped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_flipped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-flipped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_flipped1"); + else + dts_fail("utc_cairo_line_width_overlap_flipped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_flopped_gl.c b/TC/testcase/utc_line_width_overlap_flopped_gl.c new file mode 100644 index 0000000..7c26af5 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_flopped_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_flopped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_flopped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_flopped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-flopped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_flopped1"); + else + dts_fail("utc_cairo_line_width_overlap_flopped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_flopped_image.c b/TC/testcase/utc_line_width_overlap_flopped_image.c new file mode 100644 index 0000000..fafeccb --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_flopped_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_flopped1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_flopped1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_flopped1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-flopped", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_flopped1"); + else + dts_fail("utc_cairo_line_width_overlap_flopped1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_gl.c b/TC/testcase/utc_line_width_overlap_gl.c new file mode 100644 index 0000000..6471563 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap1"); + else + dts_fail("utc_cairo_line_width_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_image.c b/TC/testcase/utc_line_width_overlap_image.c new file mode 100644 index 0000000..2ff9968 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap1"); + else + dts_fail("utc_cairo_line_width_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_offset_gl.c b/TC/testcase/utc_line_width_overlap_offset_gl.c new file mode 100644 index 0000000..e0ff2c5 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_offset1"); + else + dts_fail("utc_cairo_line_width_overlap_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_offset_image.c b/TC/testcase/utc_line_width_overlap_offset_image.c new file mode 100644 index 0000000..c3c87b8 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_offset1"); + else + dts_fail("utc_cairo_line_width_overlap_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_rotated_gl.c b/TC/testcase/utc_line_width_overlap_rotated_gl.c new file mode 100644 index 0000000..d3002ea --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_rotated_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_rotated1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_rotated1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_rotated1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-rotated", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_rotated1"); + else + dts_fail("utc_cairo_line_width_overlap_rotated1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_overlap_rotated_image.c b/TC/testcase/utc_line_width_overlap_rotated_image.c new file mode 100644 index 0000000..96475a7 --- /dev/null +++ b/TC/testcase/utc_line_width_overlap_rotated_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_overlap_rotated1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_overlap_rotated1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_overlap_rotated1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-overlap-rotated", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_overlap_rotated1"); + else + dts_fail("utc_cairo_line_width_overlap_rotated1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_scale_gl.c b/TC/testcase/utc_line_width_scale_gl.c new file mode 100644 index 0000000..862a382 --- /dev/null +++ b/TC/testcase/utc_line_width_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_scale1"); + else + dts_fail("utc_cairo_line_width_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_scale_image.c b/TC/testcase/utc_line_width_scale_image.c new file mode 100644 index 0000000..eb9b524 --- /dev/null +++ b/TC/testcase/utc_line_width_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_scale1"); + else + dts_fail("utc_cairo_line_width_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_tolerance_gl.c b/TC/testcase/utc_line_width_tolerance_gl.c new file mode 100644 index 0000000..fa298ad --- /dev/null +++ b/TC/testcase/utc_line_width_tolerance_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_tolerance1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_tolerance1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_tolerance1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-tolerance", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_tolerance1"); + else + dts_fail("utc_cairo_line_width_tolerance1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_tolerance_image.c b/TC/testcase/utc_line_width_tolerance_image.c new file mode 100644 index 0000000..f8fa55c --- /dev/null +++ b/TC/testcase/utc_line_width_tolerance_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_tolerance1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_tolerance1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_tolerance1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-tolerance", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_tolerance1"); + else + dts_fail("utc_cairo_line_width_tolerance1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_zero_gl.c b/TC/testcase/utc_line_width_zero_gl.c new file mode 100644 index 0000000..5342509 --- /dev/null +++ b/TC/testcase/utc_line_width_zero_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_zero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_zero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_zero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-zero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_zero1"); + else + dts_fail("utc_cairo_line_width_zero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_line_width_zero_image.c b/TC/testcase/utc_line_width_zero_image.c new file mode 100644 index 0000000..b281e4f --- /dev/null +++ b/TC/testcase/utc_line_width_zero_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_line_width_zero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_line_width_zero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_line_width_zero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite line-width-zero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_line_width_zero1"); + else + dts_fail("utc_cairo_line_width_zero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_extend_gl.c b/TC/testcase/utc_linear_gradient_extend_gl.c new file mode 100644 index 0000000..73bd18d --- /dev/null +++ b/TC/testcase/utc_linear_gradient_extend_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_extend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_extend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_extend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-extend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_extend1"); + else + dts_fail("utc_cairo_linear_gradient_extend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_extend_image.c b/TC/testcase/utc_linear_gradient_extend_image.c new file mode 100644 index 0000000..4b9bef4 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_extend_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_extend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_extend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_extend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-extend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_extend1"); + else + dts_fail("utc_cairo_linear_gradient_extend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_gl.c b/TC/testcase/utc_linear_gradient_gl.c new file mode 100644 index 0000000..c7a3920 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient1"); + else + dts_fail("utc_cairo_linear_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_image.c b/TC/testcase/utc_linear_gradient_image.c new file mode 100644 index 0000000..75b9293 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient1"); + else + dts_fail("utc_cairo_linear_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_large_gl.c b/TC/testcase/utc_linear_gradient_large_gl.c new file mode 100644 index 0000000..367d678 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_large_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_large1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_large1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_large1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-large", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_large1"); + else + dts_fail("utc_cairo_linear_gradient_large1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_large_image.c b/TC/testcase/utc_linear_gradient_large_image.c new file mode 100644 index 0000000..eed480f --- /dev/null +++ b/TC/testcase/utc_linear_gradient_large_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_large1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_large1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_large1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-large", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_large1"); + else + dts_fail("utc_cairo_linear_gradient_large1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_one_stop_gl.c b/TC/testcase/utc_linear_gradient_one_stop_gl.c new file mode 100644 index 0000000..50d1763 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_one_stop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_one_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_one_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_one_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-one-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_one_stop1"); + else + dts_fail("utc_cairo_linear_gradient_one_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_one_stop_image.c b/TC/testcase/utc_linear_gradient_one_stop_image.c new file mode 100644 index 0000000..920576d --- /dev/null +++ b/TC/testcase/utc_linear_gradient_one_stop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_one_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_one_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_one_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-one-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_one_stop1"); + else + dts_fail("utc_cairo_linear_gradient_one_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_reflect_gl.c b/TC/testcase/utc_linear_gradient_reflect_gl.c new file mode 100644 index 0000000..559a303 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_reflect1"); + else + dts_fail("utc_cairo_linear_gradient_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_reflect_image.c b/TC/testcase/utc_linear_gradient_reflect_image.c new file mode 100644 index 0000000..2163918 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_reflect1"); + else + dts_fail("utc_cairo_linear_gradient_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_subset_gl.c b/TC/testcase/utc_linear_gradient_subset_gl.c new file mode 100644 index 0000000..081a9f5 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_subset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_subset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_subset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_subset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-subset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_subset1"); + else + dts_fail("utc_cairo_linear_gradient_subset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_gradient_subset_image.c b/TC/testcase/utc_linear_gradient_subset_image.c new file mode 100644 index 0000000..ff7c879 --- /dev/null +++ b/TC/testcase/utc_linear_gradient_subset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_gradient_subset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_gradient_subset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_gradient_subset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-gradient-subset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_gradient_subset1"); + else + dts_fail("utc_cairo_linear_gradient_subset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_step_function_gl.c b/TC/testcase/utc_linear_step_function_gl.c new file mode 100644 index 0000000..a63bf8a --- /dev/null +++ b/TC/testcase/utc_linear_step_function_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_step_function1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_step_function1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_step_function1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-step-function", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_step_function1"); + else + dts_fail("utc_cairo_linear_step_function1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_step_function_image.c b/TC/testcase/utc_linear_step_function_image.c new file mode 100644 index 0000000..ebd00f5 --- /dev/null +++ b/TC/testcase/utc_linear_step_function_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_step_function1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_step_function1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_step_function1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-step-function", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_step_function1"); + else + dts_fail("utc_cairo_linear_step_function1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_uniform_gl.c b/TC/testcase/utc_linear_uniform_gl.c new file mode 100644 index 0000000..3f79468 --- /dev/null +++ b/TC/testcase/utc_linear_uniform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_uniform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_uniform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_uniform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-uniform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_uniform1"); + else + dts_fail("utc_cairo_linear_uniform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_linear_uniform_image.c b/TC/testcase/utc_linear_uniform_image.c new file mode 100644 index 0000000..7f2ec15 --- /dev/null +++ b/TC/testcase/utc_linear_uniform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_linear_uniform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_linear_uniform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_linear_uniform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite linear-uniform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_linear_uniform1"); + else + dts_fail("utc_cairo_linear_uniform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_long_dashed_lines_gl.c b/TC/testcase/utc_long_dashed_lines_gl.c new file mode 100644 index 0000000..14b5289 --- /dev/null +++ b/TC/testcase/utc_long_dashed_lines_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_long_dashed_lines1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_long_dashed_lines1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_long_dashed_lines1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite long-dashed-lines", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_long_dashed_lines1"); + else + dts_fail("utc_cairo_long_dashed_lines1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_long_dashed_lines_image.c b/TC/testcase/utc_long_dashed_lines_image.c new file mode 100644 index 0000000..c8d5262 --- /dev/null +++ b/TC/testcase/utc_long_dashed_lines_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_long_dashed_lines1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_long_dashed_lines1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_long_dashed_lines1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite long-dashed-lines", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_long_dashed_lines1"); + else + dts_fail("utc_cairo_long_dashed_lines1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_long_lines_gl.c b/TC/testcase/utc_long_lines_gl.c new file mode 100644 index 0000000..aaedad4 --- /dev/null +++ b/TC/testcase/utc_long_lines_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_long_lines1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_long_lines1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_long_lines1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite long-lines", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_long_lines1"); + else + dts_fail("utc_cairo_long_lines1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_long_lines_image.c b/TC/testcase/utc_long_lines_image.c new file mode 100644 index 0000000..65ca58c --- /dev/null +++ b/TC/testcase/utc_long_lines_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_long_lines1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_long_lines1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_long_lines1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite long-lines", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_long_lines1"); + else + dts_fail("utc_cairo_long_lines1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_all_to_image_gl.c b/TC/testcase/utc_map_all_to_image_gl.c new file mode 100644 index 0000000..b89f989 --- /dev/null +++ b/TC/testcase/utc_map_all_to_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_all_to_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_all_to_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_all_to_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-all-to-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_all_to_image1"); + else + dts_fail("utc_cairo_map_all_to_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_all_to_image_image.c b/TC/testcase/utc_map_all_to_image_image.c new file mode 100644 index 0000000..4bf37ba --- /dev/null +++ b/TC/testcase/utc_map_all_to_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_all_to_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_all_to_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_all_to_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-all-to-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_all_to_image1"); + else + dts_fail("utc_cairo_map_all_to_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_bit_to_image_gl.c b/TC/testcase/utc_map_bit_to_image_gl.c new file mode 100644 index 0000000..8f01110 --- /dev/null +++ b/TC/testcase/utc_map_bit_to_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_bit_to_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_bit_to_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_bit_to_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-bit-to-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_bit_to_image1"); + else + dts_fail("utc_cairo_map_bit_to_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_bit_to_image_image.c b/TC/testcase/utc_map_bit_to_image_image.c new file mode 100644 index 0000000..57299e3 --- /dev/null +++ b/TC/testcase/utc_map_bit_to_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_bit_to_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_bit_to_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_bit_to_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-bit-to-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_bit_to_image1"); + else + dts_fail("utc_cairo_map_bit_to_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_to_image_fill_gl.c b/TC/testcase/utc_map_to_image_fill_gl.c new file mode 100644 index 0000000..62e932c --- /dev/null +++ b/TC/testcase/utc_map_to_image_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_to_image_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_to_image_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_to_image_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-to-image-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_to_image_fill1"); + else + dts_fail("utc_cairo_map_to_image_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_map_to_image_fill_image.c b/TC/testcase/utc_map_to_image_fill_image.c new file mode 100644 index 0000000..88f1610 --- /dev/null +++ b/TC/testcase/utc_map_to_image_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_map_to_image_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_map_to_image_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_map_to_image_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite map-to-image-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_map_to_image_fill1"); + else + dts_fail("utc_cairo_map_to_image_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_alpha_gl.c b/TC/testcase/utc_mask_alpha_gl.c new file mode 100644 index 0000000..e568eb1 --- /dev/null +++ b/TC/testcase/utc_mask_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_alpha1"); + else + dts_fail("utc_cairo_mask_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_alpha_image.c b/TC/testcase/utc_mask_alpha_image.c new file mode 100644 index 0000000..cbc1252 --- /dev/null +++ b/TC/testcase/utc_mask_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_alpha1"); + else + dts_fail("utc_cairo_mask_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_ctm_gl.c b/TC/testcase/utc_mask_ctm_gl.c new file mode 100644 index 0000000..749e3d2 --- /dev/null +++ b/TC/testcase/utc_mask_ctm_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_ctm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_ctm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_ctm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-ctm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_ctm1"); + else + dts_fail("utc_cairo_mask_ctm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_ctm_image.c b/TC/testcase/utc_mask_ctm_image.c new file mode 100644 index 0000000..d66668f --- /dev/null +++ b/TC/testcase/utc_mask_ctm_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_ctm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_ctm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_ctm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-ctm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_ctm1"); + else + dts_fail("utc_cairo_mask_ctm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_gl.c b/TC/testcase/utc_mask_gl.c new file mode 100644 index 0000000..5109e3b --- /dev/null +++ b/TC/testcase/utc_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask1"); + else + dts_fail("utc_cairo_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_glyphs_gl.c b/TC/testcase/utc_mask_glyphs_gl.c new file mode 100644 index 0000000..72e2b60 --- /dev/null +++ b/TC/testcase/utc_mask_glyphs_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_glyphs1"); + else + dts_fail("utc_cairo_mask_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_glyphs_image.c b/TC/testcase/utc_mask_glyphs_image.c new file mode 100644 index 0000000..fbeac2a --- /dev/null +++ b/TC/testcase/utc_mask_glyphs_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_glyphs1"); + else + dts_fail("utc_cairo_mask_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_image.c b/TC/testcase/utc_mask_image.c new file mode 100644 index 0000000..6b4733f --- /dev/null +++ b/TC/testcase/utc_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask1"); + else + dts_fail("utc_cairo_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_surface_ctm_gl.c b/TC/testcase/utc_mask_surface_ctm_gl.c new file mode 100644 index 0000000..681a637 --- /dev/null +++ b/TC/testcase/utc_mask_surface_ctm_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_surface_ctm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_surface_ctm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_surface_ctm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-surface-ctm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_surface_ctm1"); + else + dts_fail("utc_cairo_mask_surface_ctm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_surface_ctm_image.c b/TC/testcase/utc_mask_surface_ctm_image.c new file mode 100644 index 0000000..a2185d7 --- /dev/null +++ b/TC/testcase/utc_mask_surface_ctm_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_surface_ctm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_surface_ctm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_surface_ctm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-surface-ctm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_surface_ctm1"); + else + dts_fail("utc_cairo_mask_surface_ctm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_transformed_image_gl.c b/TC/testcase/utc_mask_transformed_image_gl.c new file mode 100644 index 0000000..012e9ca --- /dev/null +++ b/TC/testcase/utc_mask_transformed_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_transformed_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_transformed_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_transformed_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-transformed-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_transformed_image1"); + else + dts_fail("utc_cairo_mask_transformed_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_transformed_image_image.c b/TC/testcase/utc_mask_transformed_image_image.c new file mode 100644 index 0000000..bf9717c --- /dev/null +++ b/TC/testcase/utc_mask_transformed_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_transformed_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_transformed_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_transformed_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-transformed-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_transformed_image1"); + else + dts_fail("utc_cairo_mask_transformed_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_transformed_similar_gl.c b/TC/testcase/utc_mask_transformed_similar_gl.c new file mode 100644 index 0000000..dd5f452 --- /dev/null +++ b/TC/testcase/utc_mask_transformed_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_transformed_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_transformed_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_transformed_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-transformed-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_transformed_similar1"); + else + dts_fail("utc_cairo_mask_transformed_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mask_transformed_similar_image.c b/TC/testcase/utc_mask_transformed_similar_image.c new file mode 100644 index 0000000..eea585b --- /dev/null +++ b/TC/testcase/utc_mask_transformed_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mask_transformed_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mask_transformed_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mask_transformed_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mask-transformed-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mask_transformed_similar1"); + else + dts_fail("utc_cairo_mask_transformed_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_accuracy_gl.c b/TC/testcase/utc_mesh_pattern_accuracy_gl.c new file mode 100644 index 0000000..df91179 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_accuracy_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_accuracy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_accuracy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_accuracy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-accuracy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_accuracy1"); + else + dts_fail("utc_cairo_mesh_pattern_accuracy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_accuracy_image.c b/TC/testcase/utc_mesh_pattern_accuracy_image.c new file mode 100644 index 0000000..ee8cb90 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_accuracy_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_accuracy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_accuracy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_accuracy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-accuracy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_accuracy1"); + else + dts_fail("utc_cairo_mesh_pattern_accuracy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_conical_gl.c b/TC/testcase/utc_mesh_pattern_conical_gl.c new file mode 100644 index 0000000..4c46eb3 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_conical_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_conical1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_conical1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_conical1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-conical", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_conical1"); + else + dts_fail("utc_cairo_mesh_pattern_conical1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_conical_image.c b/TC/testcase/utc_mesh_pattern_conical_image.c new file mode 100644 index 0000000..69cf5b0 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_conical_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_conical1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_conical1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_conical1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-conical", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_conical1"); + else + dts_fail("utc_cairo_mesh_pattern_conical1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_control_points_gl.c b/TC/testcase/utc_mesh_pattern_control_points_gl.c new file mode 100644 index 0000000..f8cace8 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_control_points_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_control_points1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_control_points1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_control_points1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-control-points", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_control_points1"); + else + dts_fail("utc_cairo_mesh_pattern_control_points1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_control_points_image.c b/TC/testcase/utc_mesh_pattern_control_points_image.c new file mode 100644 index 0000000..3508246 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_control_points_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_control_points1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_control_points1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_control_points1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-control-points", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_control_points1"); + else + dts_fail("utc_cairo_mesh_pattern_control_points1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_fold_gl.c b/TC/testcase/utc_mesh_pattern_fold_gl.c new file mode 100644 index 0000000..b2c6986 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_fold_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_fold1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_fold1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_fold1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-fold", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_fold1"); + else + dts_fail("utc_cairo_mesh_pattern_fold1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_fold_image.c b/TC/testcase/utc_mesh_pattern_fold_image.c new file mode 100644 index 0000000..bcecce0 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_fold_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_fold1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_fold1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_fold1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-fold", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_fold1"); + else + dts_fail("utc_cairo_mesh_pattern_fold1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_gl.c b/TC/testcase/utc_mesh_pattern_gl.c new file mode 100644 index 0000000..6a6e275 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern1"); + else + dts_fail("utc_cairo_mesh_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_image.c b/TC/testcase/utc_mesh_pattern_image.c new file mode 100644 index 0000000..e7b191f --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern1"); + else + dts_fail("utc_cairo_mesh_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_overlap_gl.c b/TC/testcase/utc_mesh_pattern_overlap_gl.c new file mode 100644 index 0000000..ba11a5e --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_overlap_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_overlap1"); + else + dts_fail("utc_cairo_mesh_pattern_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_overlap_image.c b/TC/testcase/utc_mesh_pattern_overlap_image.c new file mode 100644 index 0000000..b46b717 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_overlap_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_overlap1"); + else + dts_fail("utc_cairo_mesh_pattern_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_transformed_gl.c b/TC/testcase/utc_mesh_pattern_transformed_gl.c new file mode 100644 index 0000000..ea3a865 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_transformed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_transformed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_transformed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_transformed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-transformed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_transformed1"); + else + dts_fail("utc_cairo_mesh_pattern_transformed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mesh_pattern_transformed_image.c b/TC/testcase/utc_mesh_pattern_transformed_image.c new file mode 100644 index 0000000..5a2d064 --- /dev/null +++ b/TC/testcase/utc_mesh_pattern_transformed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mesh_pattern_transformed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mesh_pattern_transformed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mesh_pattern_transformed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mesh-pattern-transformed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mesh_pattern_transformed1"); + else + dts_fail("utc_cairo_mesh_pattern_transformed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_data_gl.c b/TC/testcase/utc_mime_data_gl.c new file mode 100644 index 0000000..ca0abba --- /dev/null +++ b/TC/testcase/utc_mime_data_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_data1"); + else + dts_fail("utc_cairo_mime_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_data_image.c b/TC/testcase/utc_mime_data_image.c new file mode 100644 index 0000000..69c23da --- /dev/null +++ b/TC/testcase/utc_mime_data_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_data1"); + else + dts_fail("utc_cairo_mime_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_surface_api_gl.c b/TC/testcase/utc_mime_surface_api_gl.c new file mode 100644 index 0000000..9e49c6f --- /dev/null +++ b/TC/testcase/utc_mime_surface_api_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_surface_api1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_surface_api1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_surface_api1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-surface-api", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_surface_api1"); + else + dts_fail("utc_cairo_mime_surface_api1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_surface_api_image.c b/TC/testcase/utc_mime_surface_api_image.c new file mode 100644 index 0000000..2e66027 --- /dev/null +++ b/TC/testcase/utc_mime_surface_api_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_surface_api1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_surface_api1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_surface_api1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-surface-api", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_surface_api1"); + else + dts_fail("utc_cairo_mime_surface_api1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_surface_gl.c b/TC/testcase/utc_mime_surface_gl.c new file mode 100644 index 0000000..b1387f7 --- /dev/null +++ b/TC/testcase/utc_mime_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_surface1"); + else + dts_fail("utc_cairo_mime_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_mime_surface_image.c b/TC/testcase/utc_mime_surface_image.c new file mode 100644 index 0000000..aaa3fff --- /dev/null +++ b/TC/testcase/utc_mime_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_mime_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_mime_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_mime_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite mime-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_mime_surface1"); + else + dts_fail("utc_cairo_mime_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_miter_precision_gl.c b/TC/testcase/utc_miter_precision_gl.c new file mode 100644 index 0000000..f780428 --- /dev/null +++ b/TC/testcase/utc_miter_precision_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_miter_precision1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_miter_precision1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_miter_precision1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite miter-precision", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_miter_precision1"); + else + dts_fail("utc_cairo_miter_precision1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_miter_precision_image.c b/TC/testcase/utc_miter_precision_image.c new file mode 100644 index 0000000..76b67a8 --- /dev/null +++ b/TC/testcase/utc_miter_precision_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_miter_precision1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_miter_precision1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_miter_precision1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite miter-precision", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_miter_precision1"); + else + dts_fail("utc_cairo_miter_precision1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_move_to_show_surface_gl.c b/TC/testcase/utc_move_to_show_surface_gl.c new file mode 100644 index 0000000..061e903 --- /dev/null +++ b/TC/testcase/utc_move_to_show_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_move_to_show_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_move_to_show_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_move_to_show_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite move-to-show-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_move_to_show_surface1"); + else + dts_fail("utc_cairo_move_to_show_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_move_to_show_surface_image.c b/TC/testcase/utc_move_to_show_surface_image.c new file mode 100644 index 0000000..c7f9f95 --- /dev/null +++ b/TC/testcase/utc_move_to_show_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_move_to_show_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_move_to_show_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_move_to_show_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite move-to-show-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_move_to_show_surface1"); + else + dts_fail("utc_cairo_move_to_show_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_multi_page_gl.c b/TC/testcase/utc_multi_page_gl.c new file mode 100644 index 0000000..15623fd --- /dev/null +++ b/TC/testcase/utc_multi_page_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_multi_page1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_multi_page1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_multi_page1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite multi-page", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_multi_page1"); + else + dts_fail("utc_cairo_multi_page1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_multi_page_image.c b/TC/testcase/utc_multi_page_image.c new file mode 100644 index 0000000..448b4de --- /dev/null +++ b/TC/testcase/utc_multi_page_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_multi_page1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_multi_page1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_multi_page1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite multi-page", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_multi_page1"); + else + dts_fail("utc_cairo_multi_page1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_negative_stride_image_gl.c b/TC/testcase/utc_negative_stride_image_gl.c new file mode 100644 index 0000000..1bc561a --- /dev/null +++ b/TC/testcase/utc_negative_stride_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_negative_stride_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_negative_stride_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_negative_stride_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite negative-stride-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_negative_stride_image1"); + else + dts_fail("utc_cairo_negative_stride_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_negative_stride_image_image.c b/TC/testcase/utc_negative_stride_image_image.c new file mode 100644 index 0000000..aca6d10 --- /dev/null +++ b/TC/testcase/utc_negative_stride_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_negative_stride_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_negative_stride_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_negative_stride_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite negative-stride-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_negative_stride_image1"); + else + dts_fail("utc_cairo_negative_stride_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_new_sub_path_gl.c b/TC/testcase/utc_new_sub_path_gl.c new file mode 100644 index 0000000..b6e5507 --- /dev/null +++ b/TC/testcase/utc_new_sub_path_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_new_sub_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_new_sub_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_new_sub_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite new-sub-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_new_sub_path1"); + else + dts_fail("utc_cairo_new_sub_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_new_sub_path_image.c b/TC/testcase/utc_new_sub_path_image.c new file mode 100644 index 0000000..75cd3df --- /dev/null +++ b/TC/testcase/utc_new_sub_path_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_new_sub_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_new_sub_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_new_sub_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite new-sub-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_new_sub_path1"); + else + dts_fail("utc_cairo_new_sub_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_nil_surface_gl.c b/TC/testcase/utc_nil_surface_gl.c new file mode 100644 index 0000000..644c195 --- /dev/null +++ b/TC/testcase/utc_nil_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_nil_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_nil_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_nil_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite nil-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_nil_surface1"); + else + dts_fail("utc_cairo_nil_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_nil_surface_image.c b/TC/testcase/utc_nil_surface_image.c new file mode 100644 index 0000000..ef08b6b --- /dev/null +++ b/TC/testcase/utc_nil_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_nil_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_nil_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_nil_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite nil-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_nil_surface1"); + else + dts_fail("utc_cairo_nil_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_alpha_alpha_gl.c b/TC/testcase/utc_operator_alpha_alpha_gl.c new file mode 100644 index 0000000..700122a --- /dev/null +++ b/TC/testcase/utc_operator_alpha_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_alpha_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_alpha_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_alpha_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-alpha-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_alpha_alpha1"); + else + dts_fail("utc_cairo_operator_alpha_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_alpha_alpha_image.c b/TC/testcase/utc_operator_alpha_alpha_image.c new file mode 100644 index 0000000..059ad55 --- /dev/null +++ b/TC/testcase/utc_operator_alpha_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_alpha_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_alpha_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_alpha_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-alpha-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_alpha_alpha1"); + else + dts_fail("utc_cairo_operator_alpha_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_alpha_gl.c b/TC/testcase/utc_operator_alpha_gl.c new file mode 100644 index 0000000..de36850 --- /dev/null +++ b/TC/testcase/utc_operator_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_alpha1"); + else + dts_fail("utc_cairo_operator_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_alpha_image.c b/TC/testcase/utc_operator_alpha_image.c new file mode 100644 index 0000000..9a3e3f0 --- /dev/null +++ b/TC/testcase/utc_operator_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_alpha1"); + else + dts_fail("utc_cairo_operator_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_clear_gl.c b/TC/testcase/utc_operator_clear_gl.c new file mode 100644 index 0000000..a3e344a --- /dev/null +++ b/TC/testcase/utc_operator_clear_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_clear1"); + else + dts_fail("utc_cairo_operator_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_clear_image.c b/TC/testcase/utc_operator_clear_image.c new file mode 100644 index 0000000..0eb8944 --- /dev/null +++ b/TC/testcase/utc_operator_clear_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_clear1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_clear1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_clear1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-clear", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_clear1"); + else + dts_fail("utc_cairo_operator_clear1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_gl.c b/TC/testcase/utc_operator_gl.c new file mode 100644 index 0000000..2384c82 --- /dev/null +++ b/TC/testcase/utc_operator_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator1"); + else + dts_fail("utc_cairo_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_image.c b/TC/testcase/utc_operator_image.c new file mode 100644 index 0000000..299896f --- /dev/null +++ b/TC/testcase/utc_operator_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator1"); + else + dts_fail("utc_cairo_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_source_gl.c b/TC/testcase/utc_operator_source_gl.c new file mode 100644 index 0000000..147be1e --- /dev/null +++ b/TC/testcase/utc_operator_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_source1"); + else + dts_fail("utc_cairo_operator_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_operator_source_image.c b/TC/testcase/utc_operator_source_image.c new file mode 100644 index 0000000..275fee8 --- /dev/null +++ b/TC/testcase/utc_operator_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_operator_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_operator_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_operator_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite operator-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_operator_source1"); + else + dts_fail("utc_cairo_operator_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_above_source_gl.c b/TC/testcase/utc_over_above_source_gl.c new file mode 100644 index 0000000..d04f0ac --- /dev/null +++ b/TC/testcase/utc_over_above_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_above_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_above_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_above_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-above-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_above_source1"); + else + dts_fail("utc_cairo_over_above_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_above_source_image.c b/TC/testcase/utc_over_above_source_image.c new file mode 100644 index 0000000..4c11716 --- /dev/null +++ b/TC/testcase/utc_over_above_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_above_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_above_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_above_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-above-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_above_source1"); + else + dts_fail("utc_cairo_over_above_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_around_source_gl.c b/TC/testcase/utc_over_around_source_gl.c new file mode 100644 index 0000000..1d38aa4 --- /dev/null +++ b/TC/testcase/utc_over_around_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_around_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_around_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_around_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-around-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_around_source1"); + else + dts_fail("utc_cairo_over_around_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_around_source_image.c b/TC/testcase/utc_over_around_source_image.c new file mode 100644 index 0000000..a551e1c --- /dev/null +++ b/TC/testcase/utc_over_around_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_around_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_around_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_around_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-around-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_around_source1"); + else + dts_fail("utc_cairo_over_around_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_below_source_gl.c b/TC/testcase/utc_over_below_source_gl.c new file mode 100644 index 0000000..83005dc --- /dev/null +++ b/TC/testcase/utc_over_below_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_below_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_below_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_below_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-below-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_below_source1"); + else + dts_fail("utc_cairo_over_below_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_below_source_image.c b/TC/testcase/utc_over_below_source_image.c new file mode 100644 index 0000000..f0b0187 --- /dev/null +++ b/TC/testcase/utc_over_below_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_below_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_below_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_below_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-below-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_below_source1"); + else + dts_fail("utc_cairo_over_below_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_between_source_gl.c b/TC/testcase/utc_over_between_source_gl.c new file mode 100644 index 0000000..2be9317 --- /dev/null +++ b/TC/testcase/utc_over_between_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_between_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_between_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_between_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-between-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_between_source1"); + else + dts_fail("utc_cairo_over_between_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_over_between_source_image.c b/TC/testcase/utc_over_between_source_image.c new file mode 100644 index 0000000..88b700b --- /dev/null +++ b/TC/testcase/utc_over_between_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_over_between_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_over_between_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_over_between_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite over-between-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_over_between_source1"); + else + dts_fail("utc_cairo_over_between_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_boxes_gl.c b/TC/testcase/utc_overlapping_boxes_gl.c new file mode 100644 index 0000000..5e17c96 --- /dev/null +++ b/TC/testcase/utc_overlapping_boxes_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_boxes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_boxes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_boxes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-boxes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_boxes1"); + else + dts_fail("utc_cairo_overlapping_boxes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_boxes_image.c b/TC/testcase/utc_overlapping_boxes_image.c new file mode 100644 index 0000000..f9c1d1b --- /dev/null +++ b/TC/testcase/utc_overlapping_boxes_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_boxes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_boxes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_boxes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-boxes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_boxes1"); + else + dts_fail("utc_cairo_overlapping_boxes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_dash_caps_gl.c b/TC/testcase/utc_overlapping_dash_caps_gl.c new file mode 100644 index 0000000..1b89359 --- /dev/null +++ b/TC/testcase/utc_overlapping_dash_caps_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_dash_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_dash_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_dash_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-dash-caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_dash_caps1"); + else + dts_fail("utc_cairo_overlapping_dash_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_dash_caps_image.c b/TC/testcase/utc_overlapping_dash_caps_image.c new file mode 100644 index 0000000..1ffe657 --- /dev/null +++ b/TC/testcase/utc_overlapping_dash_caps_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_dash_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_dash_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_dash_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-dash-caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_dash_caps1"); + else + dts_fail("utc_cairo_overlapping_dash_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_glyphs_gl.c b/TC/testcase/utc_overlapping_glyphs_gl.c new file mode 100644 index 0000000..55012e0 --- /dev/null +++ b/TC/testcase/utc_overlapping_glyphs_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_glyphs1"); + else + dts_fail("utc_cairo_overlapping_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_overlapping_glyphs_image.c b/TC/testcase/utc_overlapping_glyphs_image.c new file mode 100644 index 0000000..28ef220 --- /dev/null +++ b/TC/testcase/utc_overlapping_glyphs_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_overlapping_glyphs1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_overlapping_glyphs1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_overlapping_glyphs1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite overlapping-glyphs", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_overlapping_glyphs1"); + else + dts_fail("utc_cairo_overlapping_glyphs1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_clip_fill_aa_gl.c b/TC/testcase/utc_paint_clip_fill_aa_gl.c new file mode 100644 index 0000000..bff58d9 --- /dev/null +++ b/TC/testcase/utc_paint_clip_fill_aa_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_clip_fill_aa1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_clip_fill_aa1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_clip_fill_aa1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-clip-fill-aa", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_clip_fill_aa1"); + else + dts_fail("utc_cairo_paint_clip_fill_aa1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_clip_fill_aa_image.c b/TC/testcase/utc_paint_clip_fill_aa_image.c new file mode 100644 index 0000000..9d69575 --- /dev/null +++ b/TC/testcase/utc_paint_clip_fill_aa_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_clip_fill_aa1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_clip_fill_aa1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_clip_fill_aa1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-clip-fill-aa", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_clip_fill_aa1"); + else + dts_fail("utc_cairo_paint_clip_fill_aa1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_clip_fill_mono_gl.c b/TC/testcase/utc_paint_clip_fill_mono_gl.c new file mode 100644 index 0000000..7d5032c --- /dev/null +++ b/TC/testcase/utc_paint_clip_fill_mono_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_clip_fill_mono1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_clip_fill_mono1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_clip_fill_mono1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-clip-fill-mono", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_clip_fill_mono1"); + else + dts_fail("utc_cairo_paint_clip_fill_mono1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_clip_fill_mono_image.c b/TC/testcase/utc_paint_clip_fill_mono_image.c new file mode 100644 index 0000000..c1987d6 --- /dev/null +++ b/TC/testcase/utc_paint_clip_fill_mono_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_clip_fill_mono1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_clip_fill_mono1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_clip_fill_mono1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-clip-fill-mono", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_clip_fill_mono1"); + else + dts_fail("utc_cairo_paint_clip_fill_mono1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_gl.c b/TC/testcase/utc_paint_gl.c new file mode 100644 index 0000000..5d33457 --- /dev/null +++ b/TC/testcase/utc_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint1"); + else + dts_fail("utc_cairo_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_image.c b/TC/testcase/utc_paint_image.c new file mode 100644 index 0000000..535518b --- /dev/null +++ b/TC/testcase/utc_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint1"); + else + dts_fail("utc_cairo_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_repeat_gl.c b/TC/testcase/utc_paint_repeat_gl.c new file mode 100644 index 0000000..dd0026c --- /dev/null +++ b/TC/testcase/utc_paint_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_repeat1"); + else + dts_fail("utc_cairo_paint_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_repeat_image.c b/TC/testcase/utc_paint_repeat_image.c new file mode 100644 index 0000000..1119589 --- /dev/null +++ b/TC/testcase/utc_paint_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_repeat1"); + else + dts_fail("utc_cairo_paint_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_source_alpha_gl.c b/TC/testcase/utc_paint_source_alpha_gl.c new file mode 100644 index 0000000..7e3e0fa --- /dev/null +++ b/TC/testcase/utc_paint_source_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_source_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_source_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_source_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-source-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_source_alpha1"); + else + dts_fail("utc_cairo_paint_source_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_source_alpha_image.c b/TC/testcase/utc_paint_source_alpha_image.c new file mode 100644 index 0000000..e6ec3f2 --- /dev/null +++ b/TC/testcase/utc_paint_source_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_source_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_source_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_source_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-source-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_source_alpha1"); + else + dts_fail("utc_cairo_paint_source_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_clip_gl.c b/TC/testcase/utc_paint_with_alpha_clip_gl.c new file mode 100644 index 0000000..98e646e --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_clip1"); + else + dts_fail("utc_cairo_paint_with_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_clip_image.c b/TC/testcase/utc_paint_with_alpha_clip_image.c new file mode 100644 index 0000000..cf5adf4 --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_clip1"); + else + dts_fail("utc_cairo_paint_with_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_clip_mask_gl.c b/TC/testcase/utc_paint_with_alpha_clip_mask_gl.c new file mode 100644 index 0000000..4f8a9ee --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_clip_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_clip_mask1"); + else + dts_fail("utc_cairo_paint_with_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_clip_mask_image.c b/TC/testcase/utc_paint_with_alpha_clip_mask_image.c new file mode 100644 index 0000000..112a580 --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_clip_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_clip_mask1"); + else + dts_fail("utc_cairo_paint_with_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_gl.c b/TC/testcase/utc_paint_with_alpha_gl.c new file mode 100644 index 0000000..17256fa --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha1"); + else + dts_fail("utc_cairo_paint_with_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_image.c b/TC/testcase/utc_paint_with_alpha_image.c new file mode 100644 index 0000000..85a1ba5 --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha1"); + else + dts_fail("utc_cairo_paint_with_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_solid_clip_gl.c b/TC/testcase/utc_paint_with_alpha_solid_clip_gl.c new file mode 100644 index 0000000..8c18060 --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_solid_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_solid_clip1"); + else + dts_fail("utc_cairo_paint_with_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_paint_with_alpha_solid_clip_image.c b/TC/testcase/utc_paint_with_alpha_solid_clip_image.c new file mode 100644 index 0000000..856f399 --- /dev/null +++ b/TC/testcase/utc_paint_with_alpha_solid_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_paint_with_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_paint_with_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_paint_with_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite paint-with-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_paint_with_alpha_solid_clip1"); + else + dts_fail("utc_cairo_paint_with_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_bottom_gl.c b/TC/testcase/utc_partial_clip_text_bottom_gl.c new file mode 100644 index 0000000..57671f1 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_bottom_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_bottom1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_bottom1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_bottom1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-bottom", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_bottom1"); + else + dts_fail("utc_cairo_partial_clip_text_bottom1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_bottom_image.c b/TC/testcase/utc_partial_clip_text_bottom_image.c new file mode 100644 index 0000000..5fba26d --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_bottom_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_bottom1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_bottom1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_bottom1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-bottom", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_bottom1"); + else + dts_fail("utc_cairo_partial_clip_text_bottom1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_left_gl.c b/TC/testcase/utc_partial_clip_text_left_gl.c new file mode 100644 index 0000000..29b19d2 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_left_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_left1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_left1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_left1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-left", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_left1"); + else + dts_fail("utc_cairo_partial_clip_text_left1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_left_image.c b/TC/testcase/utc_partial_clip_text_left_image.c new file mode 100644 index 0000000..fb4f044 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_left_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_left1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_left1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_left1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-left", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_left1"); + else + dts_fail("utc_cairo_partial_clip_text_left1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_right_gl.c b/TC/testcase/utc_partial_clip_text_right_gl.c new file mode 100644 index 0000000..f3e6847 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_right_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_right1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_right1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_right1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-right", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_right1"); + else + dts_fail("utc_cairo_partial_clip_text_right1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_right_image.c b/TC/testcase/utc_partial_clip_text_right_image.c new file mode 100644 index 0000000..56c4404 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_right_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_right1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_right1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_right1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-right", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_right1"); + else + dts_fail("utc_cairo_partial_clip_text_right1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_top_gl.c b/TC/testcase/utc_partial_clip_text_top_gl.c new file mode 100644 index 0000000..dd01438 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_top_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_top1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_top1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_top1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-top", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_top1"); + else + dts_fail("utc_cairo_partial_clip_text_top1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_clip_text_top_image.c b/TC/testcase/utc_partial_clip_text_top_image.c new file mode 100644 index 0000000..8d9c1f1 --- /dev/null +++ b/TC/testcase/utc_partial_clip_text_top_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_clip_text_top1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_clip_text_top1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_clip_text_top1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-clip-text-top", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_clip_text_top1"); + else + dts_fail("utc_cairo_partial_clip_text_top1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_half_reference_gl.c b/TC/testcase/utc_partial_coverage_half_reference_gl.c new file mode 100644 index 0000000..16cd007 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_half_reference_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_half_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_half_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_half_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-half-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_half_reference1"); + else + dts_fail("utc_cairo_partial_coverage_half_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_half_reference_image.c b/TC/testcase/utc_partial_coverage_half_reference_image.c new file mode 100644 index 0000000..9310dc5 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_half_reference_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_half_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_half_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_half_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-half-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_half_reference1"); + else + dts_fail("utc_cairo_partial_coverage_half_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_half_triangles_gl.c b/TC/testcase/utc_partial_coverage_half_triangles_gl.c new file mode 100644 index 0000000..0a32316 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_half_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_half_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_half_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_half_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-half-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_half_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_half_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_half_triangles_image.c b/TC/testcase/utc_partial_coverage_half_triangles_image.c new file mode 100644 index 0000000..6a23c08 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_half_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_half_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_half_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_half_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-half-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_half_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_half_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_intersecting_quads_gl.c b/TC/testcase/utc_partial_coverage_intersecting_quads_gl.c new file mode 100644 index 0000000..20c4120 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_intersecting_quads_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_intersecting_quads1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_intersecting_quads1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_intersecting_quads1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-intersecting-quads", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_intersecting_quads1"); + else + dts_fail("utc_cairo_partial_coverage_intersecting_quads1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_intersecting_quads_image.c b/TC/testcase/utc_partial_coverage_intersecting_quads_image.c new file mode 100644 index 0000000..24c4b8f --- /dev/null +++ b/TC/testcase/utc_partial_coverage_intersecting_quads_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_intersecting_quads1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_intersecting_quads1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_intersecting_quads1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-intersecting-quads", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_intersecting_quads1"); + else + dts_fail("utc_cairo_partial_coverage_intersecting_quads1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_intersecting_triangles_gl.c b/TC/testcase/utc_partial_coverage_intersecting_triangles_gl.c new file mode 100644 index 0000000..3d9aabb --- /dev/null +++ b/TC/testcase/utc_partial_coverage_intersecting_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_intersecting_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_intersecting_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_intersecting_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-intersecting-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_intersecting_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_intersecting_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_intersecting_triangles_image.c b/TC/testcase/utc_partial_coverage_intersecting_triangles_image.c new file mode 100644 index 0000000..cdd68e3 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_intersecting_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_intersecting_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_intersecting_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_intersecting_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-intersecting-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_intersecting_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_intersecting_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_gl.c b/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_gl.c new file mode 100644 index 0000000..09b31b6 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_half_triangles_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_half_triangles_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_half_triangles_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-half-triangles-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_half_triangles_eo1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_half_triangles_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_image.c b/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_image.c new file mode 100644 index 0000000..e1526ed --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_half_triangles_eo_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_half_triangles_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_half_triangles_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_half_triangles_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-half-triangles-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_half_triangles_eo1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_half_triangles_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_half_triangles_gl.c b/TC/testcase/utc_partial_coverage_overlap_half_triangles_gl.c new file mode 100644 index 0000000..6ae8f30 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_half_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_half_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_half_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_half_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-half-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_half_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_half_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_half_triangles_image.c b/TC/testcase/utc_partial_coverage_overlap_half_triangles_image.c new file mode 100644 index 0000000..0eae267 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_half_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_half_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_half_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_half_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-half-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_half_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_half_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_gl.c b/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_gl.c new file mode 100644 index 0000000..0f0a140 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_three_quarter_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_three_quarter_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_three_quarter_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-three-quarter-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_three_quarter_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_three_quarter_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_image.c b/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_image.c new file mode 100644 index 0000000..dae2788 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_overlap_three_quarter_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_overlap_three_quarter_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_overlap_three_quarter_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_overlap_three_quarter_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-overlap-three-quarter-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_overlap_three_quarter_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_overlap_three_quarter_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_rectangles_gl.c b/TC/testcase/utc_partial_coverage_rectangles_gl.c new file mode 100644 index 0000000..7772a9a --- /dev/null +++ b/TC/testcase/utc_partial_coverage_rectangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_rectangles1"); + else + dts_fail("utc_cairo_partial_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_rectangles_image.c b/TC/testcase/utc_partial_coverage_rectangles_image.c new file mode 100644 index 0000000..922fa24 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_rectangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_rectangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_rectangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_rectangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-rectangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_rectangles1"); + else + dts_fail("utc_cairo_partial_coverage_rectangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_reference_gl.c b/TC/testcase/utc_partial_coverage_reference_gl.c new file mode 100644 index 0000000..8319ece --- /dev/null +++ b/TC/testcase/utc_partial_coverage_reference_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_reference1"); + else + dts_fail("utc_cairo_partial_coverage_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_reference_image.c b/TC/testcase/utc_partial_coverage_reference_image.c new file mode 100644 index 0000000..79bfe3d --- /dev/null +++ b/TC/testcase/utc_partial_coverage_reference_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_reference1"); + else + dts_fail("utc_cairo_partial_coverage_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_three_quarter_reference_gl.c b/TC/testcase/utc_partial_coverage_three_quarter_reference_gl.c new file mode 100644 index 0000000..82b1782 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_three_quarter_reference_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_three_quarter_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_three_quarter_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_three_quarter_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-three-quarter-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_three_quarter_reference1"); + else + dts_fail("utc_cairo_partial_coverage_three_quarter_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_three_quarter_reference_image.c b/TC/testcase/utc_partial_coverage_three_quarter_reference_image.c new file mode 100644 index 0000000..f24a375 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_three_quarter_reference_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_three_quarter_reference1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_three_quarter_reference1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_three_quarter_reference1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-three-quarter-reference", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_three_quarter_reference1"); + else + dts_fail("utc_cairo_partial_coverage_three_quarter_reference1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_triangles_gl.c b/TC/testcase/utc_partial_coverage_triangles_gl.c new file mode 100644 index 0000000..bc1e5e4 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_triangles_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_partial_coverage_triangles_image.c b/TC/testcase/utc_partial_coverage_triangles_image.c new file mode 100644 index 0000000..70be118 --- /dev/null +++ b/TC/testcase/utc_partial_coverage_triangles_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_partial_coverage_triangles1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_partial_coverage_triangles1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_partial_coverage_triangles1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite partial-coverage-triangles", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_partial_coverage_triangles1"); + else + dts_fail("utc_cairo_partial_coverage_triangles1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pass_through_gl.c b/TC/testcase/utc_pass_through_gl.c new file mode 100644 index 0000000..fc334c0 --- /dev/null +++ b/TC/testcase/utc_pass_through_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pass_through1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pass_through1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pass_through1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pass-through", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pass_through1"); + else + dts_fail("utc_cairo_pass_through1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pass_through_image.c b/TC/testcase/utc_pass_through_image.c new file mode 100644 index 0000000..0b1ea6d --- /dev/null +++ b/TC/testcase/utc_pass_through_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pass_through1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pass_through1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pass_through1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pass-through", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pass_through1"); + else + dts_fail("utc_cairo_pass_through1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_append_gl.c b/TC/testcase/utc_path_append_gl.c new file mode 100644 index 0000000..f20a26e --- /dev/null +++ b/TC/testcase/utc_path_append_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_append1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_append1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_append1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-append", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_append1"); + else + dts_fail("utc_cairo_path_append1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_append_image.c b/TC/testcase/utc_path_append_image.c new file mode 100644 index 0000000..8b8fdaa --- /dev/null +++ b/TC/testcase/utc_path_append_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_append1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_append1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_append1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-append", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_append1"); + else + dts_fail("utc_cairo_path_append1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_precision_gl.c b/TC/testcase/utc_path_precision_gl.c new file mode 100644 index 0000000..41df5ca --- /dev/null +++ b/TC/testcase/utc_path_precision_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_precision1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_precision1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_precision1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-precision", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_precision1"); + else + dts_fail("utc_cairo_path_precision1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_precision_image.c b/TC/testcase/utc_path_precision_image.c new file mode 100644 index 0000000..f9edebd --- /dev/null +++ b/TC/testcase/utc_path_precision_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_precision1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_precision1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_precision1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-precision", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_precision1"); + else + dts_fail("utc_cairo_path_precision1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_stroke_twice_gl.c b/TC/testcase/utc_path_stroke_twice_gl.c new file mode 100644 index 0000000..38684c2 --- /dev/null +++ b/TC/testcase/utc_path_stroke_twice_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_stroke_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_stroke_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_stroke_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-stroke-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_stroke_twice1"); + else + dts_fail("utc_cairo_path_stroke_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_path_stroke_twice_image.c b/TC/testcase/utc_path_stroke_twice_image.c new file mode 100644 index 0000000..b93e2df --- /dev/null +++ b/TC/testcase/utc_path_stroke_twice_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_path_stroke_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_path_stroke_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_path_stroke_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite path-stroke-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_path_stroke_twice1"); + else + dts_fail("utc_cairo_path_stroke_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pattern_get_type_gl.c b/TC/testcase/utc_pattern_get_type_gl.c new file mode 100644 index 0000000..7805b9f --- /dev/null +++ b/TC/testcase/utc_pattern_get_type_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pattern_get_type1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pattern_get_type1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pattern_get_type1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pattern-get-type", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pattern_get_type1"); + else + dts_fail("utc_cairo_pattern_get_type1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pattern_get_type_image.c b/TC/testcase/utc_pattern_get_type_image.c new file mode 100644 index 0000000..de5a5d1 --- /dev/null +++ b/TC/testcase/utc_pattern_get_type_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pattern_get_type1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pattern_get_type1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pattern_get_type1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pattern-get-type", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pattern_get_type1"); + else + dts_fail("utc_cairo_pattern_get_type1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pattern_getters_gl.c b/TC/testcase/utc_pattern_getters_gl.c new file mode 100644 index 0000000..cd138c7 --- /dev/null +++ b/TC/testcase/utc_pattern_getters_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pattern_getters1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pattern_getters1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pattern_getters1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pattern-getters", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pattern_getters1"); + else + dts_fail("utc_cairo_pattern_getters1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pattern_getters_image.c b/TC/testcase/utc_pattern_getters_image.c new file mode 100644 index 0000000..da12772 --- /dev/null +++ b/TC/testcase/utc_pattern_getters_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pattern_getters1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pattern_getters1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pattern_getters1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pattern-getters", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pattern_getters1"); + else + dts_fail("utc_cairo_pattern_getters1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_features_gl.c b/TC/testcase/utc_pdf_features_gl.c new file mode 100644 index 0000000..e035f3e --- /dev/null +++ b/TC/testcase/utc_pdf_features_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_features1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_features1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_features1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-features", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_features1"); + else + dts_fail("utc_cairo_pdf_features1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_features_image.c b/TC/testcase/utc_pdf_features_image.c new file mode 100644 index 0000000..77813ca --- /dev/null +++ b/TC/testcase/utc_pdf_features_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_features1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_features1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_features1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-features", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_features1"); + else + dts_fail("utc_cairo_pdf_features1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_isolated_group_gl.c b/TC/testcase/utc_pdf_isolated_group_gl.c new file mode 100644 index 0000000..596d3f4 --- /dev/null +++ b/TC/testcase/utc_pdf_isolated_group_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_isolated_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_isolated_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_isolated_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-isolated-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_isolated_group1"); + else + dts_fail("utc_cairo_pdf_isolated_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_isolated_group_image.c b/TC/testcase/utc_pdf_isolated_group_image.c new file mode 100644 index 0000000..e0860bb --- /dev/null +++ b/TC/testcase/utc_pdf_isolated_group_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_isolated_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_isolated_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_isolated_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-isolated-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_isolated_group1"); + else + dts_fail("utc_cairo_pdf_isolated_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_mime_data_gl.c b/TC/testcase/utc_pdf_mime_data_gl.c new file mode 100644 index 0000000..863f1bb --- /dev/null +++ b/TC/testcase/utc_pdf_mime_data_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_mime_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_mime_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_mime_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-mime-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_mime_data1"); + else + dts_fail("utc_cairo_pdf_mime_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_mime_data_image.c b/TC/testcase/utc_pdf_mime_data_image.c new file mode 100644 index 0000000..c0cde32 --- /dev/null +++ b/TC/testcase/utc_pdf_mime_data_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_mime_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_mime_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_mime_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-mime-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_mime_data1"); + else + dts_fail("utc_cairo_pdf_mime_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_surface_source_gl.c b/TC/testcase/utc_pdf_surface_source_gl.c new file mode 100644 index 0000000..453eb78 --- /dev/null +++ b/TC/testcase/utc_pdf_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_surface_source1"); + else + dts_fail("utc_cairo_pdf_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pdf_surface_source_image.c b/TC/testcase/utc_pdf_surface_source_image.c new file mode 100644 index 0000000..1de35b8 --- /dev/null +++ b/TC/testcase/utc_pdf_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pdf_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pdf_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pdf_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pdf-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pdf_surface_source1"); + else + dts_fail("utc_cairo_pdf_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pixman_rotate_gl.c b/TC/testcase/utc_pixman_rotate_gl.c new file mode 100644 index 0000000..d575c84 --- /dev/null +++ b/TC/testcase/utc_pixman_rotate_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pixman_rotate1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pixman_rotate1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pixman_rotate1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pixman-rotate", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pixman_rotate1"); + else + dts_fail("utc_cairo_pixman_rotate1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pixman_rotate_image.c b/TC/testcase/utc_pixman_rotate_image.c new file mode 100644 index 0000000..7845e5c --- /dev/null +++ b/TC/testcase/utc_pixman_rotate_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pixman_rotate1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pixman_rotate1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pixman_rotate1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pixman-rotate", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pixman_rotate1"); + else + dts_fail("utc_cairo_pixman_rotate1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_png_gl.c b/TC/testcase/utc_png_gl.c new file mode 100644 index 0000000..d0ed8a4 --- /dev/null +++ b/TC/testcase/utc_png_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_png1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_png1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_png1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite png", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_png1"); + else + dts_fail("utc_cairo_png1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_png_image.c b/TC/testcase/utc_png_image.c new file mode 100644 index 0000000..e45721c --- /dev/null +++ b/TC/testcase/utc_png_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_png1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_png1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_png1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite png", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_png1"); + else + dts_fail("utc_cairo_png1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_eps_gl.c b/TC/testcase/utc_ps_eps_gl.c new file mode 100644 index 0000000..3de0839 --- /dev/null +++ b/TC/testcase/utc_ps_eps_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_eps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_eps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_eps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-eps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_eps1"); + else + dts_fail("utc_cairo_ps_eps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_eps_image.c b/TC/testcase/utc_ps_eps_image.c new file mode 100644 index 0000000..ca37c39 --- /dev/null +++ b/TC/testcase/utc_ps_eps_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_eps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_eps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_eps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-eps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_eps1"); + else + dts_fail("utc_cairo_ps_eps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_features_gl.c b/TC/testcase/utc_ps_features_gl.c new file mode 100644 index 0000000..731391c --- /dev/null +++ b/TC/testcase/utc_ps_features_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_features1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_features1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_features1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-features", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_features1"); + else + dts_fail("utc_cairo_ps_features1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_features_image.c b/TC/testcase/utc_ps_features_image.c new file mode 100644 index 0000000..5cfcdad --- /dev/null +++ b/TC/testcase/utc_ps_features_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_features1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_features1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_features1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-features", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_features1"); + else + dts_fail("utc_cairo_ps_features1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_surface_source_gl.c b/TC/testcase/utc_ps_surface_source_gl.c new file mode 100644 index 0000000..ef156b8 --- /dev/null +++ b/TC/testcase/utc_ps_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_surface_source1"); + else + dts_fail("utc_cairo_ps_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_ps_surface_source_image.c b/TC/testcase/utc_ps_surface_source_image.c new file mode 100644 index 0000000..8a67fc9 --- /dev/null +++ b/TC/testcase/utc_ps_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_ps_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_ps_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_ps_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite ps-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_ps_surface_source1"); + else + dts_fail("utc_cairo_ps_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_same_source_gl.c b/TC/testcase/utc_pthread_same_source_gl.c new file mode 100644 index 0000000..1088cef --- /dev/null +++ b/TC/testcase/utc_pthread_same_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_same_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_same_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_same_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-same-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_same_source1"); + else + dts_fail("utc_cairo_pthread_same_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_same_source_image.c b/TC/testcase/utc_pthread_same_source_image.c new file mode 100644 index 0000000..f9d6032 --- /dev/null +++ b/TC/testcase/utc_pthread_same_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_same_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_same_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_same_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-same-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_same_source1"); + else + dts_fail("utc_cairo_pthread_same_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_show_text_gl.c b/TC/testcase/utc_pthread_show_text_gl.c new file mode 100644 index 0000000..8602d67 --- /dev/null +++ b/TC/testcase/utc_pthread_show_text_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_show_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_show_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_show_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-show-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_show_text1"); + else + dts_fail("utc_cairo_pthread_show_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_show_text_image.c b/TC/testcase/utc_pthread_show_text_image.c new file mode 100644 index 0000000..f36e843 --- /dev/null +++ b/TC/testcase/utc_pthread_show_text_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_show_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_show_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_show_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-show-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_show_text1"); + else + dts_fail("utc_cairo_pthread_show_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_similar_gl.c b/TC/testcase/utc_pthread_similar_gl.c new file mode 100644 index 0000000..2abc572 --- /dev/null +++ b/TC/testcase/utc_pthread_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_similar1"); + else + dts_fail("utc_cairo_pthread_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_pthread_similar_image.c b/TC/testcase/utc_pthread_similar_image.c new file mode 100644 index 0000000..89a5ccc --- /dev/null +++ b/TC/testcase/utc_pthread_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_pthread_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_pthread_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_pthread_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite pthread-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_pthread_similar1"); + else + dts_fail("utc_cairo_pthread_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_color_gl.c b/TC/testcase/utc_push_group_color_gl.c new file mode 100644 index 0000000..f88564d --- /dev/null +++ b/TC/testcase/utc_push_group_color_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group_color1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group_color1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group_color1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group-color", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group_color1"); + else + dts_fail("utc_cairo_push_group_color1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_color_image.c b/TC/testcase/utc_push_group_color_image.c new file mode 100644 index 0000000..3c541bb --- /dev/null +++ b/TC/testcase/utc_push_group_color_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group_color1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group_color1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group_color1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group-color", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group_color1"); + else + dts_fail("utc_cairo_push_group_color1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_gl.c b/TC/testcase/utc_push_group_gl.c new file mode 100644 index 0000000..d721aaf --- /dev/null +++ b/TC/testcase/utc_push_group_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group1"); + else + dts_fail("utc_cairo_push_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_image.c b/TC/testcase/utc_push_group_image.c new file mode 100644 index 0000000..485d221 --- /dev/null +++ b/TC/testcase/utc_push_group_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group1"); + else + dts_fail("utc_cairo_push_group1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_path_offset_gl.c b/TC/testcase/utc_push_group_path_offset_gl.c new file mode 100644 index 0000000..761fbee --- /dev/null +++ b/TC/testcase/utc_push_group_path_offset_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group_path_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group_path_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group_path_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group-path-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group_path_offset1"); + else + dts_fail("utc_cairo_push_group_path_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_push_group_path_offset_image.c b/TC/testcase/utc_push_group_path_offset_image.c new file mode 100644 index 0000000..b7a0643 --- /dev/null +++ b/TC/testcase/utc_push_group_path_offset_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_push_group_path_offset1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_push_group_path_offset1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_push_group_path_offset1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite push-group-path-offset", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_push_group_path_offset1"); + else + dts_fail("utc_cairo_push_group_path_offset1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_quartz_surface_source_gl.c b/TC/testcase/utc_quartz_surface_source_gl.c new file mode 100644 index 0000000..ecc8f2b --- /dev/null +++ b/TC/testcase/utc_quartz_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_quartz_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_quartz_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_quartz_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite quartz-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_quartz_surface_source1"); + else + dts_fail("utc_cairo_quartz_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_quartz_surface_source_image.c b/TC/testcase/utc_quartz_surface_source_image.c new file mode 100644 index 0000000..7dc9a46 --- /dev/null +++ b/TC/testcase/utc_quartz_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_quartz_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_quartz_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_quartz_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite quartz-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_quartz_surface_source1"); + else + dts_fail("utc_cairo_quartz_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_extend_gl.c b/TC/testcase/utc_radial_gradient_extend_gl.c new file mode 100644 index 0000000..c71ecfc --- /dev/null +++ b/TC/testcase/utc_radial_gradient_extend_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_extend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_extend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_extend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-extend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_extend1"); + else + dts_fail("utc_cairo_radial_gradient_extend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_extend_image.c b/TC/testcase/utc_radial_gradient_extend_image.c new file mode 100644 index 0000000..2f16ca8 --- /dev/null +++ b/TC/testcase/utc_radial_gradient_extend_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_extend1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_extend1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_extend1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-extend", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_extend1"); + else + dts_fail("utc_cairo_radial_gradient_extend1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_gl.c b/TC/testcase/utc_radial_gradient_gl.c new file mode 100644 index 0000000..3e933fe --- /dev/null +++ b/TC/testcase/utc_radial_gradient_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient1"); + else + dts_fail("utc_cairo_radial_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_image.c b/TC/testcase/utc_radial_gradient_image.c new file mode 100644 index 0000000..7eaea2e --- /dev/null +++ b/TC/testcase/utc_radial_gradient_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient1"); + else + dts_fail("utc_cairo_radial_gradient1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_mask_gl.c b/TC/testcase/utc_radial_gradient_mask_gl.c new file mode 100644 index 0000000..b6a65e6 --- /dev/null +++ b/TC/testcase/utc_radial_gradient_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_mask1"); + else + dts_fail("utc_cairo_radial_gradient_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_mask_image.c b/TC/testcase/utc_radial_gradient_mask_image.c new file mode 100644 index 0000000..7c7145a --- /dev/null +++ b/TC/testcase/utc_radial_gradient_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_mask1"); + else + dts_fail("utc_cairo_radial_gradient_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_mask_source_gl.c b/TC/testcase/utc_radial_gradient_mask_source_gl.c new file mode 100644 index 0000000..3f6659a --- /dev/null +++ b/TC/testcase/utc_radial_gradient_mask_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_mask_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_mask_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_mask_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-mask-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_mask_source1"); + else + dts_fail("utc_cairo_radial_gradient_mask_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_mask_source_image.c b/TC/testcase/utc_radial_gradient_mask_source_image.c new file mode 100644 index 0000000..adfa803 --- /dev/null +++ b/TC/testcase/utc_radial_gradient_mask_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_mask_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_mask_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_mask_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-mask-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_mask_source1"); + else + dts_fail("utc_cairo_radial_gradient_mask_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_one_stop_gl.c b/TC/testcase/utc_radial_gradient_one_stop_gl.c new file mode 100644 index 0000000..692a583 --- /dev/null +++ b/TC/testcase/utc_radial_gradient_one_stop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_one_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_one_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_one_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-one-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_one_stop1"); + else + dts_fail("utc_cairo_radial_gradient_one_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_one_stop_image.c b/TC/testcase/utc_radial_gradient_one_stop_image.c new file mode 100644 index 0000000..19e951f --- /dev/null +++ b/TC/testcase/utc_radial_gradient_one_stop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_one_stop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_one_stop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_one_stop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-one-stop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_one_stop1"); + else + dts_fail("utc_cairo_radial_gradient_one_stop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_source_gl.c b/TC/testcase/utc_radial_gradient_source_gl.c new file mode 100644 index 0000000..643fa81 --- /dev/null +++ b/TC/testcase/utc_radial_gradient_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_source1"); + else + dts_fail("utc_cairo_radial_gradient_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_gradient_source_image.c b/TC/testcase/utc_radial_gradient_source_image.c new file mode 100644 index 0000000..dbee49b --- /dev/null +++ b/TC/testcase/utc_radial_gradient_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_gradient_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_gradient_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_gradient_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-gradient-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_gradient_source1"); + else + dts_fail("utc_cairo_radial_gradient_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_outer_focus_gl.c b/TC/testcase/utc_radial_outer_focus_gl.c new file mode 100644 index 0000000..9884ecf --- /dev/null +++ b/TC/testcase/utc_radial_outer_focus_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_outer_focus1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_outer_focus1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_outer_focus1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-outer-focus", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_outer_focus1"); + else + dts_fail("utc_cairo_radial_outer_focus1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_radial_outer_focus_image.c b/TC/testcase/utc_radial_outer_focus_image.c new file mode 100644 index 0000000..604b60a --- /dev/null +++ b/TC/testcase/utc_radial_outer_focus_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_radial_outer_focus1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_radial_outer_focus1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_radial_outer_focus1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite radial-outer-focus", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_radial_outer_focus1"); + else + dts_fail("utc_cairo_radial_outer_focus1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_clip_gl.c b/TC/testcase/utc_random_clip_gl.c new file mode 100644 index 0000000..0e92476 --- /dev/null +++ b/TC/testcase/utc_random_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_clip1"); + else + dts_fail("utc_cairo_random_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_clip_image.c b/TC/testcase/utc_random_clip_image.c new file mode 100644 index 0000000..ca9f591 --- /dev/null +++ b/TC/testcase/utc_random_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_clip1"); + else + dts_fail("utc_cairo_random_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_curves_eo_gl.c b/TC/testcase/utc_random_intersections_curves_eo_gl.c new file mode 100644 index 0000000..b10998d --- /dev/null +++ b/TC/testcase/utc_random_intersections_curves_eo_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_curves_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_curves_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_curves_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-curves-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_curves_eo1"); + else + dts_fail("utc_cairo_random_intersections_curves_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_curves_eo_image.c b/TC/testcase/utc_random_intersections_curves_eo_image.c new file mode 100644 index 0000000..81e26f5 --- /dev/null +++ b/TC/testcase/utc_random_intersections_curves_eo_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_curves_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_curves_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_curves_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-curves-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_curves_eo1"); + else + dts_fail("utc_cairo_random_intersections_curves_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_curves_nz_gl.c b/TC/testcase/utc_random_intersections_curves_nz_gl.c new file mode 100644 index 0000000..c17e1c0 --- /dev/null +++ b/TC/testcase/utc_random_intersections_curves_nz_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_curves_nz1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_curves_nz1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_curves_nz1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-curves-nz", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_curves_nz1"); + else + dts_fail("utc_cairo_random_intersections_curves_nz1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_curves_nz_image.c b/TC/testcase/utc_random_intersections_curves_nz_image.c new file mode 100644 index 0000000..0b8e571 --- /dev/null +++ b/TC/testcase/utc_random_intersections_curves_nz_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_curves_nz1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_curves_nz1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_curves_nz1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-curves-nz", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_curves_nz1"); + else + dts_fail("utc_cairo_random_intersections_curves_nz1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_eo_gl.c b/TC/testcase/utc_random_intersections_eo_gl.c new file mode 100644 index 0000000..be5435e --- /dev/null +++ b/TC/testcase/utc_random_intersections_eo_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_eo1"); + else + dts_fail("utc_cairo_random_intersections_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_eo_image.c b/TC/testcase/utc_random_intersections_eo_image.c new file mode 100644 index 0000000..21e896b --- /dev/null +++ b/TC/testcase/utc_random_intersections_eo_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_eo1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_eo1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_eo1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-eo", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_eo1"); + else + dts_fail("utc_cairo_random_intersections_eo1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_nonzero_gl.c b/TC/testcase/utc_random_intersections_nonzero_gl.c new file mode 100644 index 0000000..d95ce8d --- /dev/null +++ b/TC/testcase/utc_random_intersections_nonzero_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_nonzero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_nonzero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_nonzero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-nonzero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_nonzero1"); + else + dts_fail("utc_cairo_random_intersections_nonzero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_random_intersections_nonzero_image.c b/TC/testcase/utc_random_intersections_nonzero_image.c new file mode 100644 index 0000000..d5a0687 --- /dev/null +++ b/TC/testcase/utc_random_intersections_nonzero_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_random_intersections_nonzero1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_random_intersections_nonzero1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_random_intersections_nonzero1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite random-intersections-nonzero", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_random_intersections_nonzero1"); + else + dts_fail("utc_cairo_random_intersections_nonzero1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_raster_source_gl.c b/TC/testcase/utc_raster_source_gl.c new file mode 100644 index 0000000..dd3182c --- /dev/null +++ b/TC/testcase/utc_raster_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_raster_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_raster_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_raster_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite raster-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_raster_source1"); + else + dts_fail("utc_cairo_raster_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_raster_source_image.c b/TC/testcase/utc_raster_source_image.c new file mode 100644 index 0000000..188239d --- /dev/null +++ b/TC/testcase/utc_raster_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_raster_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_raster_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_raster_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite raster-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_raster_source1"); + else + dts_fail("utc_cairo_raster_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_fill_alpha_gl.c b/TC/testcase/utc_record1414x_fill_alpha_gl.c new file mode 100644 index 0000000..7151ed6 --- /dev/null +++ b/TC/testcase/utc_record1414x_fill_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_fill_alpha1"); + else + dts_fail("utc_cairo_record1414x_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_fill_alpha_image.c b/TC/testcase/utc_record1414x_fill_alpha_image.c new file mode 100644 index 0000000..473c928 --- /dev/null +++ b/TC/testcase/utc_record1414x_fill_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_fill_alpha1"); + else + dts_fail("utc_cairo_record1414x_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_clip_gl.c b/TC/testcase/utc_record1414x_paint_alpha_clip_gl.c new file mode 100644 index 0000000..d1fd7c3 --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_clip_image.c b/TC/testcase/utc_record1414x_paint_alpha_clip_image.c new file mode 100644 index 0000000..02b65c9 --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_clip_mask_gl.c b/TC/testcase/utc_record1414x_paint_alpha_clip_mask_gl.c new file mode 100644 index 0000000..ebfcfdf --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_clip_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_clip_mask_image.c b/TC/testcase/utc_record1414x_paint_alpha_clip_mask_image.c new file mode 100644 index 0000000..d81da4d --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_clip_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_gl.c b/TC/testcase/utc_record1414x_paint_alpha_gl.c new file mode 100644 index 0000000..569b354 --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_image.c b/TC/testcase/utc_record1414x_paint_alpha_image.c new file mode 100644 index 0000000..64165a0 --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_solid_clip_gl.c b/TC/testcase/utc_record1414x_paint_alpha_solid_clip_gl.c new file mode 100644 index 0000000..0af8fea --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_solid_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_alpha_solid_clip_image.c b/TC/testcase/utc_record1414x_paint_alpha_solid_clip_image.c new file mode 100644 index 0000000..6912ef8 --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_alpha_solid_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record1414x_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_gl.c b/TC/testcase/utc_record1414x_paint_gl.c new file mode 100644 index 0000000..641cede --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint1"); + else + dts_fail("utc_cairo_record1414x_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_paint_image.c b/TC/testcase/utc_record1414x_paint_image.c new file mode 100644 index 0000000..741c51b --- /dev/null +++ b/TC/testcase/utc_record1414x_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_paint1"); + else + dts_fail("utc_cairo_record1414x_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_select_font_face_gl.c b/TC/testcase/utc_record1414x_select_font_face_gl.c new file mode 100644 index 0000000..1363019 --- /dev/null +++ b/TC/testcase/utc_record1414x_select_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_select_font_face1"); + else + dts_fail("utc_cairo_record1414x_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_select_font_face_image.c b/TC/testcase/utc_record1414x_select_font_face_image.c new file mode 100644 index 0000000..c0ef82f --- /dev/null +++ b/TC/testcase/utc_record1414x_select_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_select_font_face1"); + else + dts_fail("utc_cairo_record1414x_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_self_intersecting_gl.c b/TC/testcase/utc_record1414x_self_intersecting_gl.c new file mode 100644 index 0000000..c3d199c --- /dev/null +++ b/TC/testcase/utc_record1414x_self_intersecting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_self_intersecting1"); + else + dts_fail("utc_cairo_record1414x_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_self_intersecting_image.c b/TC/testcase/utc_record1414x_self_intersecting_image.c new file mode 100644 index 0000000..ed81571 --- /dev/null +++ b/TC/testcase/utc_record1414x_self_intersecting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_self_intersecting1"); + else + dts_fail("utc_cairo_record1414x_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_text_transform_gl.c b/TC/testcase/utc_record1414x_text_transform_gl.c new file mode 100644 index 0000000..f92b021 --- /dev/null +++ b/TC/testcase/utc_record1414x_text_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_text_transform1"); + else + dts_fail("utc_cairo_record1414x_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record1414x_text_transform_image.c b/TC/testcase/utc_record1414x_text_transform_image.c new file mode 100644 index 0000000..b6e80f6 --- /dev/null +++ b/TC/testcase/utc_record1414x_text_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record1414x_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record1414x_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record1414x_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record1414x-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record1414x_text_transform1"); + else + dts_fail("utc_cairo_record1414x_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_fill_alpha_gl.c b/TC/testcase/utc_record2x_fill_alpha_gl.c new file mode 100644 index 0000000..e672a0d --- /dev/null +++ b/TC/testcase/utc_record2x_fill_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_fill_alpha1"); + else + dts_fail("utc_cairo_record2x_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_fill_alpha_image.c b/TC/testcase/utc_record2x_fill_alpha_image.c new file mode 100644 index 0000000..9940a07 --- /dev/null +++ b/TC/testcase/utc_record2x_fill_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_fill_alpha1"); + else + dts_fail("utc_cairo_record2x_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_clip_gl.c b/TC/testcase/utc_record2x_paint_alpha_clip_gl.c new file mode 100644 index 0000000..cbda6fb --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_clip_image.c b/TC/testcase/utc_record2x_paint_alpha_clip_image.c new file mode 100644 index 0000000..955ec52 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_clip_mask_gl.c b/TC/testcase/utc_record2x_paint_alpha_clip_mask_gl.c new file mode 100644 index 0000000..be54a56 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_clip_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_clip_mask_image.c b/TC/testcase/utc_record2x_paint_alpha_clip_mask_image.c new file mode 100644 index 0000000..74e19fb --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_clip_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_gl.c b/TC/testcase/utc_record2x_paint_alpha_gl.c new file mode 100644 index 0000000..84b0508 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha1"); + else + dts_fail("utc_cairo_record2x_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_image.c b/TC/testcase/utc_record2x_paint_alpha_image.c new file mode 100644 index 0000000..acee312 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha1"); + else + dts_fail("utc_cairo_record2x_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_solid_clip_gl.c b/TC/testcase/utc_record2x_paint_alpha_solid_clip_gl.c new file mode 100644 index 0000000..3a4273c --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_solid_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_alpha_solid_clip_image.c b/TC/testcase/utc_record2x_paint_alpha_solid_clip_image.c new file mode 100644 index 0000000..402160d --- /dev/null +++ b/TC/testcase/utc_record2x_paint_alpha_solid_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record2x_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_gl.c b/TC/testcase/utc_record2x_paint_gl.c new file mode 100644 index 0000000..bfdfe24 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint1"); + else + dts_fail("utc_cairo_record2x_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_paint_image.c b/TC/testcase/utc_record2x_paint_image.c new file mode 100644 index 0000000..049e862 --- /dev/null +++ b/TC/testcase/utc_record2x_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_paint1"); + else + dts_fail("utc_cairo_record2x_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_select_font_face_gl.c b/TC/testcase/utc_record2x_select_font_face_gl.c new file mode 100644 index 0000000..b777462 --- /dev/null +++ b/TC/testcase/utc_record2x_select_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_select_font_face1"); + else + dts_fail("utc_cairo_record2x_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_select_font_face_image.c b/TC/testcase/utc_record2x_select_font_face_image.c new file mode 100644 index 0000000..88db5b6 --- /dev/null +++ b/TC/testcase/utc_record2x_select_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_select_font_face1"); + else + dts_fail("utc_cairo_record2x_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_self_intersecting_gl.c b/TC/testcase/utc_record2x_self_intersecting_gl.c new file mode 100644 index 0000000..145493a --- /dev/null +++ b/TC/testcase/utc_record2x_self_intersecting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_self_intersecting1"); + else + dts_fail("utc_cairo_record2x_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_self_intersecting_image.c b/TC/testcase/utc_record2x_self_intersecting_image.c new file mode 100644 index 0000000..10099a9 --- /dev/null +++ b/TC/testcase/utc_record2x_self_intersecting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_self_intersecting1"); + else + dts_fail("utc_cairo_record2x_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_text_transform_gl.c b/TC/testcase/utc_record2x_text_transform_gl.c new file mode 100644 index 0000000..bb38611 --- /dev/null +++ b/TC/testcase/utc_record2x_text_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_text_transform1"); + else + dts_fail("utc_cairo_record2x_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record2x_text_transform_image.c b/TC/testcase/utc_record2x_text_transform_image.c new file mode 100644 index 0000000..ca5d776 --- /dev/null +++ b/TC/testcase/utc_record2x_text_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record2x_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record2x_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record2x_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record2x-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record2x_text_transform1"); + else + dts_fail("utc_cairo_record2x_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_fill_alpha_gl.c b/TC/testcase/utc_record90_fill_alpha_gl.c new file mode 100644 index 0000000..af96141 --- /dev/null +++ b/TC/testcase/utc_record90_fill_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_fill_alpha1"); + else + dts_fail("utc_cairo_record90_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_fill_alpha_image.c b/TC/testcase/utc_record90_fill_alpha_image.c new file mode 100644 index 0000000..2e9cd63 --- /dev/null +++ b/TC/testcase/utc_record90_fill_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_fill_alpha1"); + else + dts_fail("utc_cairo_record90_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_clip_gl.c b/TC/testcase/utc_record90_paint_alpha_clip_gl.c new file mode 100644 index 0000000..c8b56d0 --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record90_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_clip_image.c b/TC/testcase/utc_record90_paint_alpha_clip_image.c new file mode 100644 index 0000000..81c3a47 --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record90_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_clip_mask_gl.c b/TC/testcase/utc_record90_paint_alpha_clip_mask_gl.c new file mode 100644 index 0000000..a2cd2d7 --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_clip_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record90_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_clip_mask_image.c b/TC/testcase/utc_record90_paint_alpha_clip_mask_image.c new file mode 100644 index 0000000..72aac9a --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_clip_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record90_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_gl.c b/TC/testcase/utc_record90_paint_alpha_gl.c new file mode 100644 index 0000000..8f82afb --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha1"); + else + dts_fail("utc_cairo_record90_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_image.c b/TC/testcase/utc_record90_paint_alpha_image.c new file mode 100644 index 0000000..9917c3c --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha1"); + else + dts_fail("utc_cairo_record90_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_solid_clip_gl.c b/TC/testcase/utc_record90_paint_alpha_solid_clip_gl.c new file mode 100644 index 0000000..e83bba3 --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_solid_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record90_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_alpha_solid_clip_image.c b/TC/testcase/utc_record90_paint_alpha_solid_clip_image.c new file mode 100644 index 0000000..c99ec20 --- /dev/null +++ b/TC/testcase/utc_record90_paint_alpha_solid_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record90_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_gl.c b/TC/testcase/utc_record90_paint_gl.c new file mode 100644 index 0000000..e1dd2bd --- /dev/null +++ b/TC/testcase/utc_record90_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint1"); + else + dts_fail("utc_cairo_record90_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_paint_image.c b/TC/testcase/utc_record90_paint_image.c new file mode 100644 index 0000000..3a23f97 --- /dev/null +++ b/TC/testcase/utc_record90_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_paint1"); + else + dts_fail("utc_cairo_record90_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_select_font_face_gl.c b/TC/testcase/utc_record90_select_font_face_gl.c new file mode 100644 index 0000000..67533d2 --- /dev/null +++ b/TC/testcase/utc_record90_select_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_select_font_face1"); + else + dts_fail("utc_cairo_record90_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_select_font_face_image.c b/TC/testcase/utc_record90_select_font_face_image.c new file mode 100644 index 0000000..fc6e166 --- /dev/null +++ b/TC/testcase/utc_record90_select_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_select_font_face1"); + else + dts_fail("utc_cairo_record90_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_self_intersecting_gl.c b/TC/testcase/utc_record90_self_intersecting_gl.c new file mode 100644 index 0000000..2b76ca2 --- /dev/null +++ b/TC/testcase/utc_record90_self_intersecting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_self_intersecting1"); + else + dts_fail("utc_cairo_record90_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_self_intersecting_image.c b/TC/testcase/utc_record90_self_intersecting_image.c new file mode 100644 index 0000000..9ab9b44 --- /dev/null +++ b/TC/testcase/utc_record90_self_intersecting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_self_intersecting1"); + else + dts_fail("utc_cairo_record90_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_text_transform_gl.c b/TC/testcase/utc_record90_text_transform_gl.c new file mode 100644 index 0000000..993c3ae --- /dev/null +++ b/TC/testcase/utc_record90_text_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_text_transform1"); + else + dts_fail("utc_cairo_record90_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record90_text_transform_image.c b/TC/testcase/utc_record90_text_transform_image.c new file mode 100644 index 0000000..6e614f1 --- /dev/null +++ b/TC/testcase/utc_record90_text_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record90_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record90_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record90_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record90-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record90_text_transform1"); + else + dts_fail("utc_cairo_record90_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_none_gl.c b/TC/testcase/utc_record_extend_none_gl.c new file mode 100644 index 0000000..b108706 --- /dev/null +++ b/TC/testcase/utc_record_extend_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_none1"); + else + dts_fail("utc_cairo_record_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_none_image.c b/TC/testcase/utc_record_extend_none_image.c new file mode 100644 index 0000000..c84e587 --- /dev/null +++ b/TC/testcase/utc_record_extend_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_none1"); + else + dts_fail("utc_cairo_record_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_none_similar_gl.c b/TC/testcase/utc_record_extend_none_similar_gl.c new file mode 100644 index 0000000..78f307a --- /dev/null +++ b/TC/testcase/utc_record_extend_none_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_none_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_none_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_none_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-none-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_none_similar1"); + else + dts_fail("utc_cairo_record_extend_none_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_none_similar_image.c b/TC/testcase/utc_record_extend_none_similar_image.c new file mode 100644 index 0000000..970ba10 --- /dev/null +++ b/TC/testcase/utc_record_extend_none_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_none_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_none_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_none_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-none-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_none_similar1"); + else + dts_fail("utc_cairo_record_extend_none_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_pad_gl.c b/TC/testcase/utc_record_extend_pad_gl.c new file mode 100644 index 0000000..eb37913 --- /dev/null +++ b/TC/testcase/utc_record_extend_pad_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_pad1"); + else + dts_fail("utc_cairo_record_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_pad_image.c b/TC/testcase/utc_record_extend_pad_image.c new file mode 100644 index 0000000..5124a22 --- /dev/null +++ b/TC/testcase/utc_record_extend_pad_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_pad1"); + else + dts_fail("utc_cairo_record_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_pad_similar_gl.c b/TC/testcase/utc_record_extend_pad_similar_gl.c new file mode 100644 index 0000000..57eae4f --- /dev/null +++ b/TC/testcase/utc_record_extend_pad_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_pad_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_pad_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_pad_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-pad-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_pad_similar1"); + else + dts_fail("utc_cairo_record_extend_pad_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_pad_similar_image.c b/TC/testcase/utc_record_extend_pad_similar_image.c new file mode 100644 index 0000000..77e13da --- /dev/null +++ b/TC/testcase/utc_record_extend_pad_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_pad_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_pad_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_pad_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-pad-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_pad_similar1"); + else + dts_fail("utc_cairo_record_extend_pad_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_reflect_gl.c b/TC/testcase/utc_record_extend_reflect_gl.c new file mode 100644 index 0000000..9b15109 --- /dev/null +++ b/TC/testcase/utc_record_extend_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_reflect1"); + else + dts_fail("utc_cairo_record_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_reflect_image.c b/TC/testcase/utc_record_extend_reflect_image.c new file mode 100644 index 0000000..0536d62 --- /dev/null +++ b/TC/testcase/utc_record_extend_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_reflect1"); + else + dts_fail("utc_cairo_record_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_reflect_similar_gl.c b/TC/testcase/utc_record_extend_reflect_similar_gl.c new file mode 100644 index 0000000..d0da69d --- /dev/null +++ b/TC/testcase/utc_record_extend_reflect_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_reflect_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_reflect_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_reflect_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-reflect-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_reflect_similar1"); + else + dts_fail("utc_cairo_record_extend_reflect_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_reflect_similar_image.c b/TC/testcase/utc_record_extend_reflect_similar_image.c new file mode 100644 index 0000000..ad2466b --- /dev/null +++ b/TC/testcase/utc_record_extend_reflect_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_reflect_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_reflect_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_reflect_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-reflect-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_reflect_similar1"); + else + dts_fail("utc_cairo_record_extend_reflect_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_repeat_gl.c b/TC/testcase/utc_record_extend_repeat_gl.c new file mode 100644 index 0000000..90ce69f --- /dev/null +++ b/TC/testcase/utc_record_extend_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_repeat1"); + else + dts_fail("utc_cairo_record_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_repeat_image.c b/TC/testcase/utc_record_extend_repeat_image.c new file mode 100644 index 0000000..bed66b1 --- /dev/null +++ b/TC/testcase/utc_record_extend_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_repeat1"); + else + dts_fail("utc_cairo_record_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_repeat_similar_gl.c b/TC/testcase/utc_record_extend_repeat_similar_gl.c new file mode 100644 index 0000000..23e7099 --- /dev/null +++ b/TC/testcase/utc_record_extend_repeat_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_repeat_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_repeat_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_repeat_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-repeat-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_repeat_similar1"); + else + dts_fail("utc_cairo_record_extend_repeat_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_extend_repeat_similar_image.c b/TC/testcase/utc_record_extend_repeat_similar_image.c new file mode 100644 index 0000000..d1d7d80 --- /dev/null +++ b/TC/testcase/utc_record_extend_repeat_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_extend_repeat_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_extend_repeat_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_extend_repeat_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-extend-repeat-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_extend_repeat_similar1"); + else + dts_fail("utc_cairo_record_extend_repeat_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_fill_alpha_gl.c b/TC/testcase/utc_record_fill_alpha_gl.c new file mode 100644 index 0000000..36764ac --- /dev/null +++ b/TC/testcase/utc_record_fill_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_fill_alpha1"); + else + dts_fail("utc_cairo_record_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_fill_alpha_image.c b/TC/testcase/utc_record_fill_alpha_image.c new file mode 100644 index 0000000..2a065f0 --- /dev/null +++ b/TC/testcase/utc_record_fill_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_fill_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_fill_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_fill_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-fill-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_fill_alpha1"); + else + dts_fail("utc_cairo_record_fill_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_mesh_gl.c b/TC/testcase/utc_record_mesh_gl.c new file mode 100644 index 0000000..8a906d5 --- /dev/null +++ b/TC/testcase/utc_record_mesh_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_mesh1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_mesh1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_mesh1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-mesh", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_mesh1"); + else + dts_fail("utc_cairo_record_mesh1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_mesh_image.c b/TC/testcase/utc_record_mesh_image.c new file mode 100644 index 0000000..f8bcb6c --- /dev/null +++ b/TC/testcase/utc_record_mesh_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_mesh1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_mesh1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_mesh1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-mesh", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_mesh1"); + else + dts_fail("utc_cairo_record_mesh1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_clip_gl.c b/TC/testcase/utc_record_paint_alpha_clip_gl.c new file mode 100644 index 0000000..b584ebb --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_clip_image.c b/TC/testcase/utc_record_paint_alpha_clip_image.c new file mode 100644 index 0000000..7283b8f --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_clip1"); + else + dts_fail("utc_cairo_record_paint_alpha_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_clip_mask_gl.c b/TC/testcase/utc_record_paint_alpha_clip_mask_gl.c new file mode 100644 index 0000000..ff1112b --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_clip_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_clip_mask_image.c b/TC/testcase/utc_record_paint_alpha_clip_mask_image.c new file mode 100644 index 0000000..570421b --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_clip_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_clip_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_clip_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_clip_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-clip-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_clip_mask1"); + else + dts_fail("utc_cairo_record_paint_alpha_clip_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_gl.c b/TC/testcase/utc_record_paint_alpha_gl.c new file mode 100644 index 0000000..606d176 --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha1"); + else + dts_fail("utc_cairo_record_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_image.c b/TC/testcase/utc_record_paint_alpha_image.c new file mode 100644 index 0000000..7d24fcc --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha1"); + else + dts_fail("utc_cairo_record_paint_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_solid_clip_gl.c b/TC/testcase/utc_record_paint_alpha_solid_clip_gl.c new file mode 100644 index 0000000..6751e1a --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_solid_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_alpha_solid_clip_image.c b/TC/testcase/utc_record_paint_alpha_solid_clip_image.c new file mode 100644 index 0000000..e7c1c87 --- /dev/null +++ b/TC/testcase/utc_record_paint_alpha_solid_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint_alpha_solid_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint_alpha_solid_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint_alpha_solid_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint-alpha-solid-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint_alpha_solid_clip1"); + else + dts_fail("utc_cairo_record_paint_alpha_solid_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_gl.c b/TC/testcase/utc_record_paint_gl.c new file mode 100644 index 0000000..d8fa35b --- /dev/null +++ b/TC/testcase/utc_record_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint1"); + else + dts_fail("utc_cairo_record_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_paint_image.c b/TC/testcase/utc_record_paint_image.c new file mode 100644 index 0000000..7bf318a --- /dev/null +++ b/TC/testcase/utc_record_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_paint1"); + else + dts_fail("utc_cairo_record_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_select_font_face_gl.c b/TC/testcase/utc_record_select_font_face_gl.c new file mode 100644 index 0000000..2472b7d --- /dev/null +++ b/TC/testcase/utc_record_select_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_select_font_face1"); + else + dts_fail("utc_cairo_record_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_select_font_face_image.c b/TC/testcase/utc_record_select_font_face_image.c new file mode 100644 index 0000000..b092377 --- /dev/null +++ b/TC/testcase/utc_record_select_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_select_font_face1"); + else + dts_fail("utc_cairo_record_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_self_intersecting_gl.c b/TC/testcase/utc_record_self_intersecting_gl.c new file mode 100644 index 0000000..6ec4f82 --- /dev/null +++ b/TC/testcase/utc_record_self_intersecting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_self_intersecting1"); + else + dts_fail("utc_cairo_record_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_self_intersecting_image.c b/TC/testcase/utc_record_self_intersecting_image.c new file mode 100644 index 0000000..1c43d44 --- /dev/null +++ b/TC/testcase/utc_record_self_intersecting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_self_intersecting1"); + else + dts_fail("utc_cairo_record_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_text_transform_gl.c b/TC/testcase/utc_record_text_transform_gl.c new file mode 100644 index 0000000..c872cb0 --- /dev/null +++ b/TC/testcase/utc_record_text_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_text_transform1"); + else + dts_fail("utc_cairo_record_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_record_text_transform_image.c b/TC/testcase/utc_record_text_transform_image.c new file mode 100644 index 0000000..0ec5910 --- /dev/null +++ b/TC/testcase/utc_record_text_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_record_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_record_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_record_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite record-text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_record_text_transform1"); + else + dts_fail("utc_cairo_record_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_none_gl.c b/TC/testcase/utc_recording_surface_extend_none_gl.c new file mode 100644 index 0000000..f65a5f6 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_none1"); + else + dts_fail("utc_cairo_recording_surface_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_none_image.c b/TC/testcase/utc_recording_surface_extend_none_image.c new file mode 100644 index 0000000..8636057 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_none1"); + else + dts_fail("utc_cairo_recording_surface_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_pad_gl.c b/TC/testcase/utc_recording_surface_extend_pad_gl.c new file mode 100644 index 0000000..fbf0271 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_pad_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_pad1"); + else + dts_fail("utc_cairo_recording_surface_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_pad_image.c b/TC/testcase/utc_recording_surface_extend_pad_image.c new file mode 100644 index 0000000..e47b2a6 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_pad_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_pad1"); + else + dts_fail("utc_cairo_recording_surface_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_reflect_gl.c b/TC/testcase/utc_recording_surface_extend_reflect_gl.c new file mode 100644 index 0000000..f403a2d --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_reflect1"); + else + dts_fail("utc_cairo_recording_surface_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_reflect_image.c b/TC/testcase/utc_recording_surface_extend_reflect_image.c new file mode 100644 index 0000000..22c8af0 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_reflect1"); + else + dts_fail("utc_cairo_recording_surface_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_repeat_gl.c b/TC/testcase/utc_recording_surface_extend_repeat_gl.c new file mode 100644 index 0000000..8e79cb6 --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_repeat1"); + else + dts_fail("utc_cairo_recording_surface_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_extend_repeat_image.c b/TC/testcase/utc_recording_surface_extend_repeat_image.c new file mode 100644 index 0000000..0149c8c --- /dev/null +++ b/TC/testcase/utc_recording_surface_extend_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_extend_repeat1"); + else + dts_fail("utc_cairo_recording_surface_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_over_gl.c b/TC/testcase/utc_recording_surface_over_gl.c new file mode 100644 index 0000000..8f259e4 --- /dev/null +++ b/TC/testcase/utc_recording_surface_over_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_over1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_over1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_over1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-over", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_over1"); + else + dts_fail("utc_cairo_recording_surface_over1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_over_image.c b/TC/testcase/utc_recording_surface_over_image.c new file mode 100644 index 0000000..6f31df4 --- /dev/null +++ b/TC/testcase/utc_recording_surface_over_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_over1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_over1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_over1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-over", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_over1"); + else + dts_fail("utc_cairo_recording_surface_over1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_source_gl.c b/TC/testcase/utc_recording_surface_source_gl.c new file mode 100644 index 0000000..865e858 --- /dev/null +++ b/TC/testcase/utc_recording_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_source1"); + else + dts_fail("utc_cairo_recording_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_recording_surface_source_image.c b/TC/testcase/utc_recording_surface_source_image.c new file mode 100644 index 0000000..c45114a --- /dev/null +++ b/TC/testcase/utc_recording_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_recording_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_recording_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_recording_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite recording-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_recording_surface_source1"); + else + dts_fail("utc_cairo_recording_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectangle_rounding_error_gl.c b/TC/testcase/utc_rectangle_rounding_error_gl.c new file mode 100644 index 0000000..c90edf4 --- /dev/null +++ b/TC/testcase/utc_rectangle_rounding_error_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectangle_rounding_error1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectangle_rounding_error1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectangle_rounding_error1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectangle-rounding-error", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectangle_rounding_error1"); + else + dts_fail("utc_cairo_rectangle_rounding_error1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectangle_rounding_error_image.c b/TC/testcase/utc_rectangle_rounding_error_image.c new file mode 100644 index 0000000..490829d --- /dev/null +++ b/TC/testcase/utc_rectangle_rounding_error_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectangle_rounding_error1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectangle_rounding_error1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectangle_rounding_error1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectangle-rounding-error", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectangle_rounding_error1"); + else + dts_fail("utc_cairo_rectangle_rounding_error1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_gl.c b/TC/testcase/utc_rectilinear_dash_gl.c new file mode 100644 index 0000000..760dcbf --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash1"); + else + dts_fail("utc_cairo_rectilinear_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_image.c b/TC/testcase/utc_rectilinear_dash_image.c new file mode 100644 index 0000000..707b31d --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash1"); + else + dts_fail("utc_cairo_rectilinear_dash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_scale_gl.c b/TC/testcase/utc_rectilinear_dash_scale_gl.c new file mode 100644 index 0000000..5b30404 --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash_scale1"); + else + dts_fail("utc_cairo_rectilinear_dash_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_scale_image.c b/TC/testcase/utc_rectilinear_dash_scale_image.c new file mode 100644 index 0000000..2da9155 --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash_scale1"); + else + dts_fail("utc_cairo_rectilinear_dash_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_scale_unaligned_gl.c b/TC/testcase/utc_rectilinear_dash_scale_unaligned_gl.c new file mode 100644 index 0000000..4d67cee --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_scale_unaligned_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash_scale_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash_scale_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash_scale_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash-scale-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash_scale_unaligned1"); + else + dts_fail("utc_cairo_rectilinear_dash_scale_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_dash_scale_unaligned_image.c b/TC/testcase/utc_rectilinear_dash_scale_unaligned_image.c new file mode 100644 index 0000000..b29a1f0 --- /dev/null +++ b/TC/testcase/utc_rectilinear_dash_scale_unaligned_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_dash_scale_unaligned1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_dash_scale_unaligned1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_dash_scale_unaligned1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-dash-scale-unaligned", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_dash_scale_unaligned1"); + else + dts_fail("utc_cairo_rectilinear_dash_scale_unaligned1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_fill_gl.c b/TC/testcase/utc_rectilinear_fill_gl.c new file mode 100644 index 0000000..825c789 --- /dev/null +++ b/TC/testcase/utc_rectilinear_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_fill1"); + else + dts_fail("utc_cairo_rectilinear_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_fill_image.c b/TC/testcase/utc_rectilinear_fill_image.c new file mode 100644 index 0000000..b03e14d --- /dev/null +++ b/TC/testcase/utc_rectilinear_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_fill1"); + else + dts_fail("utc_cairo_rectilinear_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_grid_gl.c b/TC/testcase/utc_rectilinear_grid_gl.c new file mode 100644 index 0000000..07c326a --- /dev/null +++ b/TC/testcase/utc_rectilinear_grid_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_grid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_grid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_grid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-grid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_grid1"); + else + dts_fail("utc_cairo_rectilinear_grid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_grid_image.c b/TC/testcase/utc_rectilinear_grid_image.c new file mode 100644 index 0000000..06ad966 --- /dev/null +++ b/TC/testcase/utc_rectilinear_grid_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_grid1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_grid1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_grid1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-grid", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_grid1"); + else + dts_fail("utc_cairo_rectilinear_grid1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_miter_limit_gl.c b/TC/testcase/utc_rectilinear_miter_limit_gl.c new file mode 100644 index 0000000..84ec928 --- /dev/null +++ b/TC/testcase/utc_rectilinear_miter_limit_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_miter_limit1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_miter_limit1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_miter_limit1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-miter-limit", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_miter_limit1"); + else + dts_fail("utc_cairo_rectilinear_miter_limit1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_miter_limit_image.c b/TC/testcase/utc_rectilinear_miter_limit_image.c new file mode 100644 index 0000000..42918ba --- /dev/null +++ b/TC/testcase/utc_rectilinear_miter_limit_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_miter_limit1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_miter_limit1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_miter_limit1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-miter-limit", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_miter_limit1"); + else + dts_fail("utc_cairo_rectilinear_miter_limit1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_stroke_gl.c b/TC/testcase/utc_rectilinear_stroke_gl.c new file mode 100644 index 0000000..b224df5 --- /dev/null +++ b/TC/testcase/utc_rectilinear_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_stroke1"); + else + dts_fail("utc_cairo_rectilinear_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rectilinear_stroke_image.c b/TC/testcase/utc_rectilinear_stroke_image.c new file mode 100644 index 0000000..845c7ed --- /dev/null +++ b/TC/testcase/utc_rectilinear_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rectilinear_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rectilinear_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rectilinear_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rectilinear-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rectilinear_stroke1"); + else + dts_fail("utc_cairo_rectilinear_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_reflected_stroke_gl.c b/TC/testcase/utc_reflected_stroke_gl.c new file mode 100644 index 0000000..b96d7cf --- /dev/null +++ b/TC/testcase/utc_reflected_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_reflected_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_reflected_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_reflected_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite reflected-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_reflected_stroke1"); + else + dts_fail("utc_cairo_reflected_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_reflected_stroke_image.c b/TC/testcase/utc_reflected_stroke_image.c new file mode 100644 index 0000000..7f792f7 --- /dev/null +++ b/TC/testcase/utc_reflected_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_reflected_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_reflected_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_reflected_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite reflected-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_reflected_stroke1"); + else + dts_fail("utc_cairo_reflected_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rel_path_gl.c b/TC/testcase/utc_rel_path_gl.c new file mode 100644 index 0000000..fa1c819 --- /dev/null +++ b/TC/testcase/utc_rel_path_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rel_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rel_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rel_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rel-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rel_path1"); + else + dts_fail("utc_cairo_rel_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rel_path_image.c b/TC/testcase/utc_rel_path_image.c new file mode 100644 index 0000000..f9709e0 --- /dev/null +++ b/TC/testcase/utc_rel_path_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rel_path1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rel_path1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rel_path1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rel-path", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rel_path1"); + else + dts_fail("utc_cairo_rel_path1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rgb24_ignore_alpha_gl.c b/TC/testcase/utc_rgb24_ignore_alpha_gl.c new file mode 100644 index 0000000..21f2ec8 --- /dev/null +++ b/TC/testcase/utc_rgb24_ignore_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rgb24_ignore_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rgb24_ignore_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rgb24_ignore_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rgb24-ignore-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rgb24_ignore_alpha1"); + else + dts_fail("utc_cairo_rgb24_ignore_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rgb24_ignore_alpha_image.c b/TC/testcase/utc_rgb24_ignore_alpha_image.c new file mode 100644 index 0000000..4287965 --- /dev/null +++ b/TC/testcase/utc_rgb24_ignore_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rgb24_ignore_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rgb24_ignore_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rgb24_ignore_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rgb24-ignore-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rgb24_ignore_alpha1"); + else + dts_fail("utc_cairo_rgb24_ignore_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotate_clip_image_surface_paint_gl.c b/TC/testcase/utc_rotate_clip_image_surface_paint_gl.c new file mode 100644 index 0000000..0240057 --- /dev/null +++ b/TC/testcase/utc_rotate_clip_image_surface_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotate_clip_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotate_clip_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotate_clip_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotate-clip-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotate_clip_image_surface_paint1"); + else + dts_fail("utc_cairo_rotate_clip_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotate_clip_image_surface_paint_image.c b/TC/testcase/utc_rotate_clip_image_surface_paint_image.c new file mode 100644 index 0000000..1416266 --- /dev/null +++ b/TC/testcase/utc_rotate_clip_image_surface_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotate_clip_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotate_clip_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotate_clip_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotate-clip-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotate_clip_image_surface_paint1"); + else + dts_fail("utc_cairo_rotate_clip_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotate_image_surface_paint_gl.c b/TC/testcase/utc_rotate_image_surface_paint_gl.c new file mode 100644 index 0000000..7fa6e00 --- /dev/null +++ b/TC/testcase/utc_rotate_image_surface_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotate_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotate_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotate_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotate-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotate_image_surface_paint1"); + else + dts_fail("utc_cairo_rotate_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotate_image_surface_paint_image.c b/TC/testcase/utc_rotate_image_surface_paint_image.c new file mode 100644 index 0000000..bdfb3e4 --- /dev/null +++ b/TC/testcase/utc_rotate_image_surface_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotate_image_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotate_image_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotate_image_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotate-image-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotate_image_surface_paint1"); + else + dts_fail("utc_cairo_rotate_image_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotated_clip_gl.c b/TC/testcase/utc_rotated_clip_gl.c new file mode 100644 index 0000000..c92cb30 --- /dev/null +++ b/TC/testcase/utc_rotated_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotated_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotated_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotated_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotated-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotated_clip1"); + else + dts_fail("utc_cairo_rotated_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rotated_clip_image.c b/TC/testcase/utc_rotated_clip_image.c new file mode 100644 index 0000000..ffdd784 --- /dev/null +++ b/TC/testcase/utc_rotated_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rotated_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rotated_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rotated_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rotated-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rotated_clip1"); + else + dts_fail("utc_cairo_rotated_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rounded_rectangle_fill_gl.c b/TC/testcase/utc_rounded_rectangle_fill_gl.c new file mode 100644 index 0000000..903250b --- /dev/null +++ b/TC/testcase/utc_rounded_rectangle_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rounded_rectangle_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rounded_rectangle_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rounded_rectangle_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rounded-rectangle-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rounded_rectangle_fill1"); + else + dts_fail("utc_cairo_rounded_rectangle_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rounded_rectangle_fill_image.c b/TC/testcase/utc_rounded_rectangle_fill_image.c new file mode 100644 index 0000000..e97adf6 --- /dev/null +++ b/TC/testcase/utc_rounded_rectangle_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rounded_rectangle_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rounded_rectangle_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rounded_rectangle_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rounded-rectangle-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rounded_rectangle_fill1"); + else + dts_fail("utc_cairo_rounded_rectangle_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rounded_rectangle_stroke_gl.c b/TC/testcase/utc_rounded_rectangle_stroke_gl.c new file mode 100644 index 0000000..50edb2f --- /dev/null +++ b/TC/testcase/utc_rounded_rectangle_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rounded_rectangle_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rounded_rectangle_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rounded_rectangle_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rounded-rectangle-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rounded_rectangle_stroke1"); + else + dts_fail("utc_cairo_rounded_rectangle_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_rounded_rectangle_stroke_image.c b/TC/testcase/utc_rounded_rectangle_stroke_image.c new file mode 100644 index 0000000..7af0ca1 --- /dev/null +++ b/TC/testcase/utc_rounded_rectangle_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_rounded_rectangle_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_rounded_rectangle_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_rounded_rectangle_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite rounded-rectangle-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_rounded_rectangle_stroke1"); + else + dts_fail("utc_cairo_rounded_rectangle_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_down_source_surface_paint_gl.c b/TC/testcase/utc_scale_down_source_surface_paint_gl.c new file mode 100644 index 0000000..6c176b4 --- /dev/null +++ b/TC/testcase/utc_scale_down_source_surface_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_down_source_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_down_source_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_down_source_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-down-source-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_down_source_surface_paint1"); + else + dts_fail("utc_cairo_scale_down_source_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_down_source_surface_paint_image.c b/TC/testcase/utc_scale_down_source_surface_paint_image.c new file mode 100644 index 0000000..d1f6adc --- /dev/null +++ b/TC/testcase/utc_scale_down_source_surface_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_down_source_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_down_source_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_down_source_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-down-source-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_down_source_surface_paint1"); + else + dts_fail("utc_cairo_scale_down_source_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_offset_image_gl.c b/TC/testcase/utc_scale_offset_image_gl.c new file mode 100644 index 0000000..2372136 --- /dev/null +++ b/TC/testcase/utc_scale_offset_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_offset_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_offset_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_offset_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-offset-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_offset_image1"); + else + dts_fail("utc_cairo_scale_offset_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_offset_image_image.c b/TC/testcase/utc_scale_offset_image_image.c new file mode 100644 index 0000000..21de1eb --- /dev/null +++ b/TC/testcase/utc_scale_offset_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_offset_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_offset_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_offset_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-offset-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_offset_image1"); + else + dts_fail("utc_cairo_scale_offset_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_offset_similar_gl.c b/TC/testcase/utc_scale_offset_similar_gl.c new file mode 100644 index 0000000..9aca28e --- /dev/null +++ b/TC/testcase/utc_scale_offset_similar_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_offset_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_offset_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_offset_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-offset-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_offset_similar1"); + else + dts_fail("utc_cairo_scale_offset_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_offset_similar_image.c b/TC/testcase/utc_scale_offset_similar_image.c new file mode 100644 index 0000000..effef30 --- /dev/null +++ b/TC/testcase/utc_scale_offset_similar_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_offset_similar1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_offset_similar1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_offset_similar1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-offset-similar", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_offset_similar1"); + else + dts_fail("utc_cairo_scale_offset_similar1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_source_surface_paint_gl.c b/TC/testcase/utc_scale_source_surface_paint_gl.c new file mode 100644 index 0000000..6d4e951 --- /dev/null +++ b/TC/testcase/utc_scale_source_surface_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_source_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_source_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_source_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-source-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_source_surface_paint1"); + else + dts_fail("utc_cairo_scale_source_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scale_source_surface_paint_image.c b/TC/testcase/utc_scale_source_surface_paint_image.c new file mode 100644 index 0000000..836c0bd --- /dev/null +++ b/TC/testcase/utc_scale_source_surface_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scale_source_surface_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scale_source_surface_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scale_source_surface_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scale-source-surface-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scale_source_surface_paint1"); + else + dts_fail("utc_cairo_scale_source_surface_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scaled_font_zero_matrix_gl.c b/TC/testcase/utc_scaled_font_zero_matrix_gl.c new file mode 100644 index 0000000..7b0b722 --- /dev/null +++ b/TC/testcase/utc_scaled_font_zero_matrix_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scaled_font_zero_matrix1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scaled_font_zero_matrix1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scaled_font_zero_matrix1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scaled-font-zero-matrix", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scaled_font_zero_matrix1"); + else + dts_fail("utc_cairo_scaled_font_zero_matrix1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_scaled_font_zero_matrix_image.c b/TC/testcase/utc_scaled_font_zero_matrix_image.c new file mode 100644 index 0000000..3996b8d --- /dev/null +++ b/TC/testcase/utc_scaled_font_zero_matrix_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_scaled_font_zero_matrix1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_scaled_font_zero_matrix1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_scaled_font_zero_matrix1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite scaled-font-zero-matrix", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_scaled_font_zero_matrix1"); + else + dts_fail("utc_cairo_scaled_font_zero_matrix1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_select_font_face_gl.c b/TC/testcase/utc_select_font_face_gl.c new file mode 100644 index 0000000..447d3e6 --- /dev/null +++ b/TC/testcase/utc_select_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_select_font_face1"); + else + dts_fail("utc_cairo_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_select_font_face_image.c b/TC/testcase/utc_select_font_face_image.c new file mode 100644 index 0000000..3adc3da --- /dev/null +++ b/TC/testcase/utc_select_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_select_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_select_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_select_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite select-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_select_font_face1"); + else + dts_fail("utc_cairo_select_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_select_font_no_show_text_gl.c b/TC/testcase/utc_select_font_no_show_text_gl.c new file mode 100644 index 0000000..2a32f21 --- /dev/null +++ b/TC/testcase/utc_select_font_no_show_text_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_select_font_no_show_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_select_font_no_show_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_select_font_no_show_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite select-font-no-show-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_select_font_no_show_text1"); + else + dts_fail("utc_cairo_select_font_no_show_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_select_font_no_show_text_image.c b/TC/testcase/utc_select_font_no_show_text_image.c new file mode 100644 index 0000000..7e7b2fa --- /dev/null +++ b/TC/testcase/utc_select_font_no_show_text_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_select_font_no_show_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_select_font_no_show_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_select_font_no_show_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite select-font-no-show-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_select_font_no_show_text1"); + else + dts_fail("utc_cairo_select_font_no_show_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_copy_gl.c b/TC/testcase/utc_self_copy_gl.c new file mode 100644 index 0000000..d53f5df --- /dev/null +++ b/TC/testcase/utc_self_copy_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_copy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_copy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_copy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-copy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_copy1"); + else + dts_fail("utc_cairo_self_copy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_copy_image.c b/TC/testcase/utc_self_copy_image.c new file mode 100644 index 0000000..dda3b5f --- /dev/null +++ b/TC/testcase/utc_self_copy_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_copy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_copy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_copy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-copy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_copy1"); + else + dts_fail("utc_cairo_self_copy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_copy_overlap_gl.c b/TC/testcase/utc_self_copy_overlap_gl.c new file mode 100644 index 0000000..7befa9d --- /dev/null +++ b/TC/testcase/utc_self_copy_overlap_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_copy_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_copy_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_copy_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-copy-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_copy_overlap1"); + else + dts_fail("utc_cairo_self_copy_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_copy_overlap_image.c b/TC/testcase/utc_self_copy_overlap_image.c new file mode 100644 index 0000000..6789c75 --- /dev/null +++ b/TC/testcase/utc_self_copy_overlap_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_copy_overlap1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_copy_overlap1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_copy_overlap1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-copy-overlap", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_copy_overlap1"); + else + dts_fail("utc_cairo_self_copy_overlap1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_intersecting_gl.c b/TC/testcase/utc_self_intersecting_gl.c new file mode 100644 index 0000000..667124c --- /dev/null +++ b/TC/testcase/utc_self_intersecting_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_intersecting1"); + else + dts_fail("utc_cairo_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_self_intersecting_image.c b/TC/testcase/utc_self_intersecting_image.c new file mode 100644 index 0000000..440a970 --- /dev/null +++ b/TC/testcase/utc_self_intersecting_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_self_intersecting1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_self_intersecting1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_self_intersecting1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite self-intersecting", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_self_intersecting1"); + else + dts_fail("utc_cairo_self_intersecting1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_set_source_gl.c b/TC/testcase/utc_set_source_gl.c new file mode 100644 index 0000000..a1ece62 --- /dev/null +++ b/TC/testcase/utc_set_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_set_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_set_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_set_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite set-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_set_source1"); + else + dts_fail("utc_cairo_set_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_set_source_image.c b/TC/testcase/utc_set_source_image.c new file mode 100644 index 0000000..84e4ebf --- /dev/null +++ b/TC/testcase/utc_set_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_set_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_set_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_set_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite set-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_set_source1"); + else + dts_fail("utc_cairo_set_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_shape_general_convex_gl.c b/TC/testcase/utc_shape_general_convex_gl.c new file mode 100644 index 0000000..e74e4f4 --- /dev/null +++ b/TC/testcase/utc_shape_general_convex_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_shape_general_convex1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_shape_general_convex1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_shape_general_convex1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite shape-general-convex", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_shape_general_convex1"); + else + dts_fail("utc_cairo_shape_general_convex1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_shape_general_convex_image.c b/TC/testcase/utc_shape_general_convex_image.c new file mode 100644 index 0000000..697f205 --- /dev/null +++ b/TC/testcase/utc_shape_general_convex_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_shape_general_convex1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_shape_general_convex1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_shape_general_convex1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite shape-general-convex", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_shape_general_convex1"); + else + dts_fail("utc_cairo_shape_general_convex1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_shape_sierpinski_gl.c b/TC/testcase/utc_shape_sierpinski_gl.c new file mode 100644 index 0000000..8ca3413 --- /dev/null +++ b/TC/testcase/utc_shape_sierpinski_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_shape_sierpinski1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_shape_sierpinski1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_shape_sierpinski1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite shape-sierpinski", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_shape_sierpinski1"); + else + dts_fail("utc_cairo_shape_sierpinski1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_shape_sierpinski_image.c b/TC/testcase/utc_shape_sierpinski_image.c new file mode 100644 index 0000000..2295ba8 --- /dev/null +++ b/TC/testcase/utc_shape_sierpinski_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_shape_sierpinski1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_shape_sierpinski1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_shape_sierpinski1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite shape-sierpinski", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_shape_sierpinski1"); + else + dts_fail("utc_cairo_shape_sierpinski1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_glyphs_advance_gl.c b/TC/testcase/utc_show_glyphs_advance_gl.c new file mode 100644 index 0000000..4bd4748 --- /dev/null +++ b/TC/testcase/utc_show_glyphs_advance_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_glyphs_advance1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_glyphs_advance1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_glyphs_advance1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-glyphs-advance", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_glyphs_advance1"); + else + dts_fail("utc_cairo_show_glyphs_advance1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_glyphs_advance_image.c b/TC/testcase/utc_show_glyphs_advance_image.c new file mode 100644 index 0000000..4a8f012 --- /dev/null +++ b/TC/testcase/utc_show_glyphs_advance_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_glyphs_advance1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_glyphs_advance1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_glyphs_advance1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-glyphs-advance", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_glyphs_advance1"); + else + dts_fail("utc_cairo_show_glyphs_advance1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_glyphs_many_gl.c b/TC/testcase/utc_show_glyphs_many_gl.c new file mode 100644 index 0000000..7bf61fa --- /dev/null +++ b/TC/testcase/utc_show_glyphs_many_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_glyphs_many1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_glyphs_many1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_glyphs_many1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-glyphs-many", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_glyphs_many1"); + else + dts_fail("utc_cairo_show_glyphs_many1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_glyphs_many_image.c b/TC/testcase/utc_show_glyphs_many_image.c new file mode 100644 index 0000000..058b2ee --- /dev/null +++ b/TC/testcase/utc_show_glyphs_many_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_glyphs_many1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_glyphs_many1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_glyphs_many1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-glyphs-many", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_glyphs_many1"); + else + dts_fail("utc_cairo_show_glyphs_many1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_text_current_point_gl.c b/TC/testcase/utc_show_text_current_point_gl.c new file mode 100644 index 0000000..3cc8c87 --- /dev/null +++ b/TC/testcase/utc_show_text_current_point_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_text_current_point1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_text_current_point1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_text_current_point1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-text-current-point", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_text_current_point1"); + else + dts_fail("utc_cairo_show_text_current_point1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_show_text_current_point_image.c b/TC/testcase/utc_show_text_current_point_image.c new file mode 100644 index 0000000..080d31e --- /dev/null +++ b/TC/testcase/utc_show_text_current_point_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_show_text_current_point1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_show_text_current_point1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_show_text_current_point1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite show-text-current-point", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_show_text_current_point1"); + else + dts_fail("utc_cairo_show_text_current_point1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_skew_extreme_gl.c b/TC/testcase/utc_skew_extreme_gl.c new file mode 100644 index 0000000..7cfd5e7 --- /dev/null +++ b/TC/testcase/utc_skew_extreme_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_skew_extreme1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_skew_extreme1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_skew_extreme1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite skew-extreme", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_skew_extreme1"); + else + dts_fail("utc_cairo_skew_extreme1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_skew_extreme_image.c b/TC/testcase/utc_skew_extreme_image.c new file mode 100644 index 0000000..93096e9 --- /dev/null +++ b/TC/testcase/utc_skew_extreme_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_skew_extreme1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_skew_extreme1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_skew_extreme1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite skew-extreme", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_skew_extreme1"); + else + dts_fail("utc_cairo_skew_extreme1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_fill_gl.c b/TC/testcase/utc_smask_fill_gl.c new file mode 100644 index 0000000..a1f3278 --- /dev/null +++ b/TC/testcase/utc_smask_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_fill1"); + else + dts_fail("utc_cairo_smask_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_fill_image.c b/TC/testcase/utc_smask_fill_image.c new file mode 100644 index 0000000..5000a6f --- /dev/null +++ b/TC/testcase/utc_smask_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_fill1"); + else + dts_fail("utc_cairo_smask_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_gl.c b/TC/testcase/utc_smask_gl.c new file mode 100644 index 0000000..18fca7b --- /dev/null +++ b/TC/testcase/utc_smask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask1"); + else + dts_fail("utc_cairo_smask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_image.c b/TC/testcase/utc_smask_image.c new file mode 100644 index 0000000..20d4d80 --- /dev/null +++ b/TC/testcase/utc_smask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask1"); + else + dts_fail("utc_cairo_smask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_image_mask_gl.c b/TC/testcase/utc_smask_image_mask_gl.c new file mode 100644 index 0000000..fce8c30 --- /dev/null +++ b/TC/testcase/utc_smask_image_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_image_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_image_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_image_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-image-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_image_mask1"); + else + dts_fail("utc_cairo_smask_image_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_image_mask_image.c b/TC/testcase/utc_smask_image_mask_image.c new file mode 100644 index 0000000..09f7bbb --- /dev/null +++ b/TC/testcase/utc_smask_image_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_image_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_image_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_image_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-image-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_image_mask1"); + else + dts_fail("utc_cairo_smask_image_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_mask_gl.c b/TC/testcase/utc_smask_mask_gl.c new file mode 100644 index 0000000..f91e778 --- /dev/null +++ b/TC/testcase/utc_smask_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_mask1"); + else + dts_fail("utc_cairo_smask_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_mask_image.c b/TC/testcase/utc_smask_mask_image.c new file mode 100644 index 0000000..07364fb --- /dev/null +++ b/TC/testcase/utc_smask_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_mask1"); + else + dts_fail("utc_cairo_smask_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_paint_gl.c b/TC/testcase/utc_smask_paint_gl.c new file mode 100644 index 0000000..673a439 --- /dev/null +++ b/TC/testcase/utc_smask_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_paint1"); + else + dts_fail("utc_cairo_smask_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_paint_image.c b/TC/testcase/utc_smask_paint_image.c new file mode 100644 index 0000000..ed72df0 --- /dev/null +++ b/TC/testcase/utc_smask_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_paint1"); + else + dts_fail("utc_cairo_smask_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_stroke_gl.c b/TC/testcase/utc_smask_stroke_gl.c new file mode 100644 index 0000000..acaee6f --- /dev/null +++ b/TC/testcase/utc_smask_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_stroke1"); + else + dts_fail("utc_cairo_smask_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_stroke_image.c b/TC/testcase/utc_smask_stroke_image.c new file mode 100644 index 0000000..85128cb --- /dev/null +++ b/TC/testcase/utc_smask_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_stroke1"); + else + dts_fail("utc_cairo_smask_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_text_gl.c b/TC/testcase/utc_smask_text_gl.c new file mode 100644 index 0000000..9acff9c --- /dev/null +++ b/TC/testcase/utc_smask_text_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_text1"); + else + dts_fail("utc_cairo_smask_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_smask_text_image.c b/TC/testcase/utc_smask_text_image.c new file mode 100644 index 0000000..bd2e1ee --- /dev/null +++ b/TC/testcase/utc_smask_text_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_smask_text1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_smask_text1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_smask_text1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite smask-text", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_smask_text1"); + else + dts_fail("utc_cairo_smask_text1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_solid_pattern_cache_stress_gl.c b/TC/testcase/utc_solid_pattern_cache_stress_gl.c new file mode 100644 index 0000000..0b7b1ec --- /dev/null +++ b/TC/testcase/utc_solid_pattern_cache_stress_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_solid_pattern_cache_stress1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_solid_pattern_cache_stress1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_solid_pattern_cache_stress1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite solid-pattern-cache-stress", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_solid_pattern_cache_stress1"); + else + dts_fail("utc_cairo_solid_pattern_cache_stress1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_solid_pattern_cache_stress_image.c b/TC/testcase/utc_solid_pattern_cache_stress_image.c new file mode 100644 index 0000000..e2ab0de --- /dev/null +++ b/TC/testcase/utc_solid_pattern_cache_stress_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_solid_pattern_cache_stress1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_solid_pattern_cache_stress1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_solid_pattern_cache_stress1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite solid-pattern-cache-stress", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_solid_pattern_cache_stress1"); + else + dts_fail("utc_cairo_solid_pattern_cache_stress1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_clip_gl.c b/TC/testcase/utc_source_clip_gl.c new file mode 100644 index 0000000..5987fdd --- /dev/null +++ b/TC/testcase/utc_source_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_clip1"); + else + dts_fail("utc_cairo_source_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_clip_image.c b/TC/testcase/utc_source_clip_image.c new file mode 100644 index 0000000..8243664 --- /dev/null +++ b/TC/testcase/utc_source_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_clip1"); + else + dts_fail("utc_cairo_source_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_clip_scale_gl.c b/TC/testcase/utc_source_clip_scale_gl.c new file mode 100644 index 0000000..4ea80c7 --- /dev/null +++ b/TC/testcase/utc_source_clip_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_clip_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_clip_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_clip_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-clip-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_clip_scale1"); + else + dts_fail("utc_cairo_source_clip_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_clip_scale_image.c b/TC/testcase/utc_source_clip_scale_image.c new file mode 100644 index 0000000..7d6929c --- /dev/null +++ b/TC/testcase/utc_source_clip_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_clip_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_clip_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_clip_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-clip-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_clip_scale1"); + else + dts_fail("utc_cairo_source_clip_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_surface_scale_paint_gl.c b/TC/testcase/utc_source_surface_scale_paint_gl.c new file mode 100644 index 0000000..61b59d0 --- /dev/null +++ b/TC/testcase/utc_source_surface_scale_paint_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_surface_scale_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_surface_scale_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_surface_scale_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-surface-scale-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_surface_scale_paint1"); + else + dts_fail("utc_cairo_source_surface_scale_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_source_surface_scale_paint_image.c b/TC/testcase/utc_source_surface_scale_paint_image.c new file mode 100644 index 0000000..2819507 --- /dev/null +++ b/TC/testcase/utc_source_surface_scale_paint_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_source_surface_scale_paint1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_source_surface_scale_paint1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_source_surface_scale_paint1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite source-surface-scale-paint", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_source_surface_scale_paint1"); + else + dts_fail("utc_cairo_source_surface_scale_paint1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_spline_decomposition_gl.c b/TC/testcase/utc_spline_decomposition_gl.c new file mode 100644 index 0000000..8470428 --- /dev/null +++ b/TC/testcase/utc_spline_decomposition_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_spline_decomposition1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_spline_decomposition1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_spline_decomposition1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite spline-decomposition", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_spline_decomposition1"); + else + dts_fail("utc_cairo_spline_decomposition1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_spline_decomposition_image.c b/TC/testcase/utc_spline_decomposition_image.c new file mode 100644 index 0000000..21414e9 --- /dev/null +++ b/TC/testcase/utc_spline_decomposition_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_spline_decomposition1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_spline_decomposition1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_spline_decomposition1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite spline-decomposition", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_spline_decomposition1"); + else + dts_fail("utc_cairo_spline_decomposition1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stride_12_image_gl.c b/TC/testcase/utc_stride_12_image_gl.c new file mode 100644 index 0000000..40adb0b --- /dev/null +++ b/TC/testcase/utc_stride_12_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stride_12_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stride_12_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stride_12_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stride-12-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stride_12_image1"); + else + dts_fail("utc_cairo_stride_12_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stride_12_image_image.c b/TC/testcase/utc_stride_12_image_image.c new file mode 100644 index 0000000..8e34ab1 --- /dev/null +++ b/TC/testcase/utc_stride_12_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stride_12_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stride_12_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stride_12_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stride-12-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stride_12_image1"); + else + dts_fail("utc_cairo_stride_12_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_ctm_caps_gl.c b/TC/testcase/utc_stroke_ctm_caps_gl.c new file mode 100644 index 0000000..c8f083b --- /dev/null +++ b/TC/testcase/utc_stroke_ctm_caps_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_ctm_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_ctm_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_ctm_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-ctm-caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_ctm_caps1"); + else + dts_fail("utc_cairo_stroke_ctm_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_ctm_caps_image.c b/TC/testcase/utc_stroke_ctm_caps_image.c new file mode 100644 index 0000000..20b5ca3 --- /dev/null +++ b/TC/testcase/utc_stroke_ctm_caps_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_ctm_caps1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_ctm_caps1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_ctm_caps1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-ctm-caps", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_ctm_caps1"); + else + dts_fail("utc_cairo_stroke_ctm_caps1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_image_gl.c b/TC/testcase/utc_stroke_image_gl.c new file mode 100644 index 0000000..fad88d1 --- /dev/null +++ b/TC/testcase/utc_stroke_image_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_image1"); + else + dts_fail("utc_cairo_stroke_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_image_image.c b/TC/testcase/utc_stroke_image_image.c new file mode 100644 index 0000000..775d6bc --- /dev/null +++ b/TC/testcase/utc_stroke_image_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_image1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_image1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_image1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-image", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_image1"); + else + dts_fail("utc_cairo_stroke_image1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_open_box_gl.c b/TC/testcase/utc_stroke_open_box_gl.c new file mode 100644 index 0000000..484323c --- /dev/null +++ b/TC/testcase/utc_stroke_open_box_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_open_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_open_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_open_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-open-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_open_box1"); + else + dts_fail("utc_cairo_stroke_open_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_open_box_image.c b/TC/testcase/utc_stroke_open_box_image.c new file mode 100644 index 0000000..6d0ed88 --- /dev/null +++ b/TC/testcase/utc_stroke_open_box_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_open_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_open_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_open_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-open-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_open_box1"); + else + dts_fail("utc_cairo_stroke_open_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_pattern_gl.c b/TC/testcase/utc_stroke_pattern_gl.c new file mode 100644 index 0000000..d379542 --- /dev/null +++ b/TC/testcase/utc_stroke_pattern_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_pattern1"); + else + dts_fail("utc_cairo_stroke_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_stroke_pattern_image.c b/TC/testcase/utc_stroke_pattern_image.c new file mode 100644 index 0000000..d0094f5 --- /dev/null +++ b/TC/testcase/utc_stroke_pattern_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_stroke_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_stroke_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_stroke_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite stroke-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_stroke_pattern1"); + else + dts_fail("utc_cairo_stroke_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_gl.c b/TC/testcase/utc_subsurface_gl.c new file mode 100644 index 0000000..a970f5c --- /dev/null +++ b/TC/testcase/utc_subsurface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface1"); + else + dts_fail("utc_cairo_subsurface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_image.c b/TC/testcase/utc_subsurface_image.c new file mode 100644 index 0000000..5dba254 --- /dev/null +++ b/TC/testcase/utc_subsurface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface1"); + else + dts_fail("utc_cairo_subsurface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_image_repeat_gl.c b/TC/testcase/utc_subsurface_image_repeat_gl.c new file mode 100644 index 0000000..2ddeef3 --- /dev/null +++ b/TC/testcase/utc_subsurface_image_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_image_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_image_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_image_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-image-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_image_repeat1"); + else + dts_fail("utc_cairo_subsurface_image_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_image_repeat_image.c b/TC/testcase/utc_subsurface_image_repeat_image.c new file mode 100644 index 0000000..2cff3fb --- /dev/null +++ b/TC/testcase/utc_subsurface_image_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_image_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_image_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_image_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-image-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_image_repeat1"); + else + dts_fail("utc_cairo_subsurface_image_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_modify_child_gl.c b/TC/testcase/utc_subsurface_modify_child_gl.c new file mode 100644 index 0000000..7d23a66 --- /dev/null +++ b/TC/testcase/utc_subsurface_modify_child_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_modify_child1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_modify_child1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_modify_child1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-modify-child", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_modify_child1"); + else + dts_fail("utc_cairo_subsurface_modify_child1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_modify_child_image.c b/TC/testcase/utc_subsurface_modify_child_image.c new file mode 100644 index 0000000..423bf0c --- /dev/null +++ b/TC/testcase/utc_subsurface_modify_child_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_modify_child1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_modify_child1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_modify_child1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-modify-child", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_modify_child1"); + else + dts_fail("utc_cairo_subsurface_modify_child1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_modify_parent_gl.c b/TC/testcase/utc_subsurface_modify_parent_gl.c new file mode 100644 index 0000000..ef6c6f5 --- /dev/null +++ b/TC/testcase/utc_subsurface_modify_parent_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_modify_parent1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_modify_parent1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_modify_parent1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-modify-parent", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_modify_parent1"); + else + dts_fail("utc_cairo_subsurface_modify_parent1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_modify_parent_image.c b/TC/testcase/utc_subsurface_modify_parent_image.c new file mode 100644 index 0000000..f77d6f5 --- /dev/null +++ b/TC/testcase/utc_subsurface_modify_parent_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_modify_parent1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_modify_parent1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_modify_parent1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-modify-parent", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_modify_parent1"); + else + dts_fail("utc_cairo_subsurface_modify_parent1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_outside_target_gl.c b/TC/testcase/utc_subsurface_outside_target_gl.c new file mode 100644 index 0000000..eb1040a --- /dev/null +++ b/TC/testcase/utc_subsurface_outside_target_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_outside_target1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_outside_target1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_outside_target1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-outside-target", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_outside_target1"); + else + dts_fail("utc_cairo_subsurface_outside_target1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_outside_target_image.c b/TC/testcase/utc_subsurface_outside_target_image.c new file mode 100644 index 0000000..c93a67e --- /dev/null +++ b/TC/testcase/utc_subsurface_outside_target_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_outside_target1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_outside_target1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_outside_target1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-outside-target", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_outside_target1"); + else + dts_fail("utc_cairo_subsurface_outside_target1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_pad_gl.c b/TC/testcase/utc_subsurface_pad_gl.c new file mode 100644 index 0000000..4b32a52 --- /dev/null +++ b/TC/testcase/utc_subsurface_pad_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_pad1"); + else + dts_fail("utc_cairo_subsurface_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_pad_image.c b/TC/testcase/utc_subsurface_pad_image.c new file mode 100644 index 0000000..53bce2c --- /dev/null +++ b/TC/testcase/utc_subsurface_pad_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_pad1"); + else + dts_fail("utc_cairo_subsurface_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_reflect_gl.c b/TC/testcase/utc_subsurface_reflect_gl.c new file mode 100644 index 0000000..53bbb5b --- /dev/null +++ b/TC/testcase/utc_subsurface_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_reflect1"); + else + dts_fail("utc_cairo_subsurface_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_reflect_image.c b/TC/testcase/utc_subsurface_reflect_image.c new file mode 100644 index 0000000..c1b592f --- /dev/null +++ b/TC/testcase/utc_subsurface_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_reflect1"); + else + dts_fail("utc_cairo_subsurface_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_repeat_gl.c b/TC/testcase/utc_subsurface_repeat_gl.c new file mode 100644 index 0000000..0309efd --- /dev/null +++ b/TC/testcase/utc_subsurface_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_repeat1"); + else + dts_fail("utc_cairo_subsurface_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_repeat_image.c b/TC/testcase/utc_subsurface_repeat_image.c new file mode 100644 index 0000000..79b2c4b --- /dev/null +++ b/TC/testcase/utc_subsurface_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_repeat1"); + else + dts_fail("utc_cairo_subsurface_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_scale_gl.c b/TC/testcase/utc_subsurface_scale_gl.c new file mode 100644 index 0000000..d23667d --- /dev/null +++ b/TC/testcase/utc_subsurface_scale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_scale1"); + else + dts_fail("utc_cairo_subsurface_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_scale_image.c b/TC/testcase/utc_subsurface_scale_image.c new file mode 100644 index 0000000..0dbc772 --- /dev/null +++ b/TC/testcase/utc_subsurface_scale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_scale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_scale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_scale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-scale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_scale1"); + else + dts_fail("utc_cairo_subsurface_scale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_similar_repeat_gl.c b/TC/testcase/utc_subsurface_similar_repeat_gl.c new file mode 100644 index 0000000..d4cd617 --- /dev/null +++ b/TC/testcase/utc_subsurface_similar_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_similar_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_similar_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_similar_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-similar-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_similar_repeat1"); + else + dts_fail("utc_cairo_subsurface_similar_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_subsurface_similar_repeat_image.c b/TC/testcase/utc_subsurface_similar_repeat_image.c new file mode 100644 index 0000000..fba4a2a --- /dev/null +++ b/TC/testcase/utc_subsurface_similar_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_subsurface_similar_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_subsurface_similar_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_subsurface_similar_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite subsurface-similar-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_subsurface_similar_repeat1"); + else + dts_fail("utc_cairo_subsurface_similar_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_finish_twice_gl.c b/TC/testcase/utc_surface_finish_twice_gl.c new file mode 100644 index 0000000..e3247ef --- /dev/null +++ b/TC/testcase/utc_surface_finish_twice_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_finish_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_finish_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_finish_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-finish-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_finish_twice1"); + else + dts_fail("utc_cairo_surface_finish_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_finish_twice_image.c b/TC/testcase/utc_surface_finish_twice_image.c new file mode 100644 index 0000000..2b38f86 --- /dev/null +++ b/TC/testcase/utc_surface_finish_twice_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_finish_twice1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_finish_twice1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_finish_twice1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-finish-twice", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_finish_twice1"); + else + dts_fail("utc_cairo_surface_finish_twice1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_big_scale_down_gl.c b/TC/testcase/utc_surface_pattern_big_scale_down_gl.c new file mode 100644 index 0000000..79b3a96 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_big_scale_down_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_big_scale_down1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_big_scale_down1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_big_scale_down1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-big-scale-down", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_big_scale_down1"); + else + dts_fail("utc_cairo_surface_pattern_big_scale_down1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_big_scale_down_image.c b/TC/testcase/utc_surface_pattern_big_scale_down_image.c new file mode 100644 index 0000000..f78cc1b --- /dev/null +++ b/TC/testcase/utc_surface_pattern_big_scale_down_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_big_scale_down1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_big_scale_down1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_big_scale_down1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-big-scale-down", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_big_scale_down1"); + else + dts_fail("utc_cairo_surface_pattern_big_scale_down1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_gl.c b/TC/testcase/utc_surface_pattern_gl.c new file mode 100644 index 0000000..07ed82d --- /dev/null +++ b/TC/testcase/utc_surface_pattern_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern1"); + else + dts_fail("utc_cairo_surface_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_image.c b/TC/testcase/utc_surface_pattern_image.c new file mode 100644 index 0000000..ef62b50 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern1"); + else + dts_fail("utc_cairo_surface_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_operator_gl.c b/TC/testcase/utc_surface_pattern_operator_gl.c new file mode 100644 index 0000000..b5f4d04 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_operator_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_operator1"); + else + dts_fail("utc_cairo_surface_pattern_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_operator_image.c b/TC/testcase/utc_surface_pattern_operator_image.c new file mode 100644 index 0000000..f1d4b00 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_operator_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_operator1"); + else + dts_fail("utc_cairo_surface_pattern_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_none_gl.c b/TC/testcase/utc_surface_pattern_scale_down_extend_none_gl.c new file mode 100644 index 0000000..bf4a73e --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_none1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_none_image.c b/TC/testcase/utc_surface_pattern_scale_down_extend_none_image.c new file mode 100644 index 0000000..38d0aba --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_none1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_pad_gl.c b/TC/testcase/utc_surface_pattern_scale_down_extend_pad_gl.c new file mode 100644 index 0000000..2133eaa --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_pad_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_pad1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_pad_image.c b/TC/testcase/utc_surface_pattern_scale_down_extend_pad_image.c new file mode 100644 index 0000000..823c26a --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_pad_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_pad1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_pad1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_pad1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-pad", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_pad1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_pad1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_gl.c b/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_gl.c new file mode 100644 index 0000000..bbd8e60 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_reflect1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_image.c b/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_image.c new file mode 100644 index 0000000..f8c44ce --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_reflect_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_reflect1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_reflect1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_reflect1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-reflect", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_reflect1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_reflect1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_gl.c b/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_gl.c new file mode 100644 index 0000000..9e8e861 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_repeat1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_image.c b/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_image.c new file mode 100644 index 0000000..449329e --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_extend_repeat_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down_extend_repeat1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down_extend_repeat1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down_extend_repeat1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down-extend-repeat", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down_extend_repeat1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down_extend_repeat1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_gl.c b/TC/testcase/utc_surface_pattern_scale_down_gl.c new file mode 100644 index 0000000..558d26c --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_down_image.c b/TC/testcase/utc_surface_pattern_scale_down_image.c new file mode 100644 index 0000000..4be3bcb --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_down_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_down1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_down1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_down1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-down", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_down1"); + else + dts_fail("utc_cairo_surface_pattern_scale_down1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_up_gl.c b/TC/testcase/utc_surface_pattern_scale_up_gl.c new file mode 100644 index 0000000..765bb4c --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_up_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_up1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_up1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_up1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-up", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_up1"); + else + dts_fail("utc_cairo_surface_pattern_scale_up1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_surface_pattern_scale_up_image.c b/TC/testcase/utc_surface_pattern_scale_up_image.c new file mode 100644 index 0000000..ffd0ba8 --- /dev/null +++ b/TC/testcase/utc_surface_pattern_scale_up_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_surface_pattern_scale_up1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_surface_pattern_scale_up1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_surface_pattern_scale_up1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite surface-pattern-scale-up", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_surface_pattern_scale_up1"); + else + dts_fail("utc_cairo_surface_pattern_scale_up1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_clip_gl.c b/TC/testcase/utc_svg_clip_gl.c new file mode 100644 index 0000000..052a4a4 --- /dev/null +++ b/TC/testcase/utc_svg_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_clip1"); + else + dts_fail("utc_cairo_svg_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_clip_image.c b/TC/testcase/utc_svg_clip_image.c new file mode 100644 index 0000000..56c1c6c --- /dev/null +++ b/TC/testcase/utc_svg_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_clip1"); + else + dts_fail("utc_cairo_svg_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_surface_gl.c b/TC/testcase/utc_svg_surface_gl.c new file mode 100644 index 0000000..47f67a1 --- /dev/null +++ b/TC/testcase/utc_svg_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_surface1"); + else + dts_fail("utc_cairo_svg_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_surface_image.c b/TC/testcase/utc_svg_surface_image.c new file mode 100644 index 0000000..b00c53d --- /dev/null +++ b/TC/testcase/utc_svg_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_surface1"); + else + dts_fail("utc_cairo_svg_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_surface_source_gl.c b/TC/testcase/utc_svg_surface_source_gl.c new file mode 100644 index 0000000..35a5b30 --- /dev/null +++ b/TC/testcase/utc_svg_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_surface_source1"); + else + dts_fail("utc_cairo_svg_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_svg_surface_source_image.c b/TC/testcase/utc_svg_surface_source_image.c new file mode 100644 index 0000000..db79ecd --- /dev/null +++ b/TC/testcase/utc_svg_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_svg_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_svg_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_svg_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite svg-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_svg_surface_source1"); + else + dts_fail("utc_cairo_svg_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_gray_gl.c b/TC/testcase/utc_text_antialias_gray_gl.c new file mode 100644 index 0000000..71c9f92 --- /dev/null +++ b/TC/testcase/utc_text_antialias_gray_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_gray1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_gray1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_gray1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-gray", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_gray1"); + else + dts_fail("utc_cairo_text_antialias_gray1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_gray_image.c b/TC/testcase/utc_text_antialias_gray_image.c new file mode 100644 index 0000000..5095885 --- /dev/null +++ b/TC/testcase/utc_text_antialias_gray_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_gray1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_gray1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_gray1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-gray", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_gray1"); + else + dts_fail("utc_cairo_text_antialias_gray1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_none_gl.c b/TC/testcase/utc_text_antialias_none_gl.c new file mode 100644 index 0000000..239bc3c --- /dev/null +++ b/TC/testcase/utc_text_antialias_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_none1"); + else + dts_fail("utc_cairo_text_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_none_image.c b/TC/testcase/utc_text_antialias_none_image.c new file mode 100644 index 0000000..d0e307e --- /dev/null +++ b/TC/testcase/utc_text_antialias_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_none1"); + else + dts_fail("utc_cairo_text_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_bgr_gl.c b/TC/testcase/utc_text_antialias_subpixel_bgr_gl.c new file mode 100644 index 0000000..d0ffefa --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_bgr_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_bgr1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_bgr1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_bgr1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-bgr", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_bgr1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_bgr1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_bgr_image.c b/TC/testcase/utc_text_antialias_subpixel_bgr_image.c new file mode 100644 index 0000000..b730bc8 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_bgr_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_bgr1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_bgr1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_bgr1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-bgr", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_bgr1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_bgr1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_gl.c b/TC/testcase/utc_text_antialias_subpixel_gl.c new file mode 100644 index 0000000..04d582d --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel1"); + else + dts_fail("utc_cairo_text_antialias_subpixel1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_image.c b/TC/testcase/utc_text_antialias_subpixel_image.c new file mode 100644 index 0000000..4ea9d84 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel1"); + else + dts_fail("utc_cairo_text_antialias_subpixel1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_rgb_gl.c b/TC/testcase/utc_text_antialias_subpixel_rgb_gl.c new file mode 100644 index 0000000..1012ce1 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_rgb_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_rgb1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_rgb1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_rgb1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-rgb", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_rgb1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_rgb1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_rgb_image.c b/TC/testcase/utc_text_antialias_subpixel_rgb_image.c new file mode 100644 index 0000000..6a415c7 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_rgb_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_rgb1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_rgb1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_rgb1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-rgb", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_rgb1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_rgb1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_vbgr_gl.c b/TC/testcase/utc_text_antialias_subpixel_vbgr_gl.c new file mode 100644 index 0000000..edebb04 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_vbgr_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_vbgr1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_vbgr1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_vbgr1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-vbgr", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_vbgr1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_vbgr1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_vbgr_image.c b/TC/testcase/utc_text_antialias_subpixel_vbgr_image.c new file mode 100644 index 0000000..616fe90 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_vbgr_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_vbgr1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_vbgr1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_vbgr1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-vbgr", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_vbgr1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_vbgr1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_vrgb_gl.c b/TC/testcase/utc_text_antialias_subpixel_vrgb_gl.c new file mode 100644 index 0000000..686e28c --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_vrgb_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_vrgb1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_vrgb1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_vrgb1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-vrgb", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_vrgb1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_vrgb1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_antialias_subpixel_vrgb_image.c b/TC/testcase/utc_text_antialias_subpixel_vrgb_image.c new file mode 100644 index 0000000..358f929 --- /dev/null +++ b/TC/testcase/utc_text_antialias_subpixel_vrgb_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_antialias_subpixel_vrgb1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_antialias_subpixel_vrgb1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_antialias_subpixel_vrgb1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-antialias-subpixel-vrgb", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_antialias_subpixel_vrgb1"); + else + dts_fail("utc_cairo_text_antialias_subpixel_vrgb1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_cache_crash_gl.c b/TC/testcase/utc_text_cache_crash_gl.c new file mode 100644 index 0000000..e125cba --- /dev/null +++ b/TC/testcase/utc_text_cache_crash_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_cache_crash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_cache_crash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_cache_crash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-cache-crash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_cache_crash1"); + else + dts_fail("utc_cairo_text_cache_crash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_cache_crash_image.c b/TC/testcase/utc_text_cache_crash_image.c new file mode 100644 index 0000000..098345e --- /dev/null +++ b/TC/testcase/utc_text_cache_crash_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_cache_crash1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_cache_crash1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_cache_crash1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-cache-crash", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_cache_crash1"); + else + dts_fail("utc_cairo_text_cache_crash1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_glyph_range_gl.c b/TC/testcase/utc_text_glyph_range_gl.c new file mode 100644 index 0000000..b942d52 --- /dev/null +++ b/TC/testcase/utc_text_glyph_range_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_glyph_range1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_glyph_range1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_glyph_range1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-glyph-range", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_glyph_range1"); + else + dts_fail("utc_cairo_text_glyph_range1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_glyph_range_image.c b/TC/testcase/utc_text_glyph_range_image.c new file mode 100644 index 0000000..23de848 --- /dev/null +++ b/TC/testcase/utc_text_glyph_range_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_glyph_range1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_glyph_range1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_glyph_range1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-glyph-range", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_glyph_range1"); + else + dts_fail("utc_cairo_text_glyph_range1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_pattern_gl.c b/TC/testcase/utc_text_pattern_gl.c new file mode 100644 index 0000000..dd1dda4 --- /dev/null +++ b/TC/testcase/utc_text_pattern_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_pattern1"); + else + dts_fail("utc_cairo_text_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_pattern_image.c b/TC/testcase/utc_text_pattern_image.c new file mode 100644 index 0000000..ad18ab3 --- /dev/null +++ b/TC/testcase/utc_text_pattern_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_pattern1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_pattern1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_pattern1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-pattern", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_pattern1"); + else + dts_fail("utc_cairo_text_pattern1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_rotate_gl.c b/TC/testcase/utc_text_rotate_gl.c new file mode 100644 index 0000000..023c19f --- /dev/null +++ b/TC/testcase/utc_text_rotate_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_rotate1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_rotate1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_rotate1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-rotate", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_rotate1"); + else + dts_fail("utc_cairo_text_rotate1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_rotate_image.c b/TC/testcase/utc_text_rotate_image.c new file mode 100644 index 0000000..111fcfd --- /dev/null +++ b/TC/testcase/utc_text_rotate_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_rotate1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_rotate1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_rotate1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-rotate", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_rotate1"); + else + dts_fail("utc_cairo_text_rotate1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_transform_gl.c b/TC/testcase/utc_text_transform_gl.c new file mode 100644 index 0000000..4e224b0 --- /dev/null +++ b/TC/testcase/utc_text_transform_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_transform1"); + else + dts_fail("utc_cairo_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_transform_image.c b/TC/testcase/utc_text_transform_image.c new file mode 100644 index 0000000..32150be --- /dev/null +++ b/TC/testcase/utc_text_transform_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_transform1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_transform1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_transform1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-transform", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_transform1"); + else + dts_fail("utc_cairo_text_transform1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_zero_len_gl.c b/TC/testcase/utc_text_zero_len_gl.c new file mode 100644 index 0000000..e36f624 --- /dev/null +++ b/TC/testcase/utc_text_zero_len_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_zero_len1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_zero_len1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_zero_len1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-zero-len", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_zero_len1"); + else + dts_fail("utc_cairo_text_zero_len1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_text_zero_len_image.c b/TC/testcase/utc_text_zero_len_image.c new file mode 100644 index 0000000..1f66edb --- /dev/null +++ b/TC/testcase/utc_text_zero_len_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_text_zero_len1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_text_zero_len1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_text_zero_len1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite text-zero-len", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_text_zero_len1"); + else + dts_fail("utc_cairo_text_zero_len1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_tiger_gl.c b/TC/testcase/utc_tiger_gl.c new file mode 100644 index 0000000..83a1105 --- /dev/null +++ b/TC/testcase/utc_tiger_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_tiger1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_tiger1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_tiger1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite tiger", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_tiger1"); + else + dts_fail("utc_cairo_tiger1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_tiger_image.c b/TC/testcase/utc_tiger_image.c new file mode 100644 index 0000000..cb05a87 --- /dev/null +++ b/TC/testcase/utc_tiger_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_tiger1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_tiger1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_tiger1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite tiger", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_tiger1"); + else + dts_fail("utc_cairo_tiger1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_tighten_bounds_gl.c b/TC/testcase/utc_tighten_bounds_gl.c new file mode 100644 index 0000000..a4fe2c3 --- /dev/null +++ b/TC/testcase/utc_tighten_bounds_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_tighten_bounds1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_tighten_bounds1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_tighten_bounds1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite tighten-bounds", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_tighten_bounds1"); + else + dts_fail("utc_cairo_tighten_bounds1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_tighten_bounds_image.c b/TC/testcase/utc_tighten_bounds_image.c new file mode 100644 index 0000000..748d843 --- /dev/null +++ b/TC/testcase/utc_tighten_bounds_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_tighten_bounds1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_tighten_bounds1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_tighten_bounds1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite tighten-bounds", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_tighten_bounds1"); + else + dts_fail("utc_cairo_tighten_bounds1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_toy_font_face_gl.c b/TC/testcase/utc_toy_font_face_gl.c new file mode 100644 index 0000000..8073f4d --- /dev/null +++ b/TC/testcase/utc_toy_font_face_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_toy_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_toy_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_toy_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite toy-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_toy_font_face1"); + else + dts_fail("utc_cairo_toy_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_toy_font_face_image.c b/TC/testcase/utc_toy_font_face_image.c new file mode 100644 index 0000000..f08fe5f --- /dev/null +++ b/TC/testcase/utc_toy_font_face_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_toy_font_face1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_toy_font_face1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_toy_font_face1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite toy-font-face", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_toy_font_face1"); + else + dts_fail("utc_cairo_toy_font_face1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_transforms_gl.c b/TC/testcase/utc_transforms_gl.c new file mode 100644 index 0000000..2408717 --- /dev/null +++ b/TC/testcase/utc_transforms_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_transforms1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_transforms1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_transforms1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite transforms", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_transforms1"); + else + dts_fail("utc_cairo_transforms1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_transforms_image.c b/TC/testcase/utc_transforms_image.c new file mode 100644 index 0000000..2563a1b --- /dev/null +++ b/TC/testcase/utc_transforms_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_transforms1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_transforms1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_transforms1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite transforms", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_transforms1"); + else + dts_fail("utc_cairo_transforms1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_translate_show_surface_gl.c b/TC/testcase/utc_translate_show_surface_gl.c new file mode 100644 index 0000000..d97c861 --- /dev/null +++ b/TC/testcase/utc_translate_show_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_translate_show_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_translate_show_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_translate_show_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite translate-show-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_translate_show_surface1"); + else + dts_fail("utc_cairo_translate_show_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_translate_show_surface_image.c b/TC/testcase/utc_translate_show_surface_image.c new file mode 100644 index 0000000..5bb4d19 --- /dev/null +++ b/TC/testcase/utc_translate_show_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_translate_show_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_translate_show_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_translate_show_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite translate-show-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_translate_show_surface1"); + else + dts_fail("utc_cairo_translate_show_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_trap_clip_gl.c b/TC/testcase/utc_trap_clip_gl.c new file mode 100644 index 0000000..7bef236 --- /dev/null +++ b/TC/testcase/utc_trap_clip_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_trap_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_trap_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_trap_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite trap-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_trap_clip1"); + else + dts_fail("utc_cairo_trap_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_trap_clip_image.c b/TC/testcase/utc_trap_clip_image.c new file mode 100644 index 0000000..2699d62 --- /dev/null +++ b/TC/testcase/utc_trap_clip_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_trap_clip1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_trap_clip1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_trap_clip1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite trap-clip", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_trap_clip1"); + else + dts_fail("utc_cairo_trap_clip1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_gray_gl.c b/TC/testcase/utc_twin_antialias_gray_gl.c new file mode 100644 index 0000000..ac64718 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_gray_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_gray1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_gray1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_gray1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-gray", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_gray1"); + else + dts_fail("utc_cairo_twin_antialias_gray1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_gray_image.c b/TC/testcase/utc_twin_antialias_gray_image.c new file mode 100644 index 0000000..f64a157 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_gray_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_gray1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_gray1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_gray1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-gray", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_gray1"); + else + dts_fail("utc_cairo_twin_antialias_gray1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_mixed_gl.c b/TC/testcase/utc_twin_antialias_mixed_gl.c new file mode 100644 index 0000000..9a3c2e5 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_mixed_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_mixed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_mixed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_mixed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-mixed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_mixed1"); + else + dts_fail("utc_cairo_twin_antialias_mixed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_mixed_image.c b/TC/testcase/utc_twin_antialias_mixed_image.c new file mode 100644 index 0000000..d04ba3f --- /dev/null +++ b/TC/testcase/utc_twin_antialias_mixed_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_mixed1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_mixed1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_mixed1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-mixed", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_mixed1"); + else + dts_fail("utc_cairo_twin_antialias_mixed1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_none_gl.c b/TC/testcase/utc_twin_antialias_none_gl.c new file mode 100644 index 0000000..8370549 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_none_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_none1"); + else + dts_fail("utc_cairo_twin_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_none_image.c b/TC/testcase/utc_twin_antialias_none_image.c new file mode 100644 index 0000000..8300b04 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_none_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_none1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_none1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_none1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-none", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_none1"); + else + dts_fail("utc_cairo_twin_antialias_none1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_subpixel_gl.c b/TC/testcase/utc_twin_antialias_subpixel_gl.c new file mode 100644 index 0000000..a3086a9 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_subpixel_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_subpixel1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_subpixel1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_subpixel1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-subpixel", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_subpixel1"); + else + dts_fail("utc_cairo_twin_antialias_subpixel1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_antialias_subpixel_image.c b/TC/testcase/utc_twin_antialias_subpixel_image.c new file mode 100644 index 0000000..f781014 --- /dev/null +++ b/TC/testcase/utc_twin_antialias_subpixel_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin_antialias_subpixel1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin_antialias_subpixel1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin_antialias_subpixel1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin-antialias-subpixel", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin_antialias_subpixel1"); + else + dts_fail("utc_cairo_twin_antialias_subpixel1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_gl.c b/TC/testcase/utc_twin_gl.c new file mode 100644 index 0000000..1fa832f --- /dev/null +++ b/TC/testcase/utc_twin_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin1"); + else + dts_fail("utc_cairo_twin1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_twin_image.c b/TC/testcase/utc_twin_image.c new file mode 100644 index 0000000..3b110b4 --- /dev/null +++ b/TC/testcase/utc_twin_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_twin1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_twin1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_twin1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite twin", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_twin1"); + else + dts_fail("utc_cairo_twin1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unaligned_box_gl.c b/TC/testcase/utc_unaligned_box_gl.c new file mode 100644 index 0000000..90aad51 --- /dev/null +++ b/TC/testcase/utc_unaligned_box_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unaligned_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unaligned_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unaligned_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unaligned-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unaligned_box1"); + else + dts_fail("utc_cairo_unaligned_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unaligned_box_image.c b/TC/testcase/utc_unaligned_box_image.c new file mode 100644 index 0000000..d9b9eb8 --- /dev/null +++ b/TC/testcase/utc_unaligned_box_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unaligned_box1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unaligned_box1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unaligned_box1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unaligned-box", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unaligned_box1"); + else + dts_fail("utc_cairo_unaligned_box1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unantialiased_shapes_gl.c b/TC/testcase/utc_unantialiased_shapes_gl.c new file mode 100644 index 0000000..369b942 --- /dev/null +++ b/TC/testcase/utc_unantialiased_shapes_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unantialiased_shapes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unantialiased_shapes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unantialiased_shapes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unantialiased-shapes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unantialiased_shapes1"); + else + dts_fail("utc_cairo_unantialiased_shapes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unantialiased_shapes_image.c b/TC/testcase/utc_unantialiased_shapes_image.c new file mode 100644 index 0000000..8c7d789 --- /dev/null +++ b/TC/testcase/utc_unantialiased_shapes_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unantialiased_shapes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unantialiased_shapes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unantialiased_shapes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unantialiased-shapes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unantialiased_shapes1"); + else + dts_fail("utc_cairo_unantialiased_shapes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unbounded_operator_gl.c b/TC/testcase/utc_unbounded_operator_gl.c new file mode 100644 index 0000000..e1a882d --- /dev/null +++ b/TC/testcase/utc_unbounded_operator_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unbounded_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unbounded_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unbounded_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unbounded-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unbounded_operator1"); + else + dts_fail("utc_cairo_unbounded_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unbounded_operator_image.c b/TC/testcase/utc_unbounded_operator_image.c new file mode 100644 index 0000000..1d2003e --- /dev/null +++ b/TC/testcase/utc_unbounded_operator_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unbounded_operator1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unbounded_operator1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unbounded_operator1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unbounded-operator", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unbounded_operator1"); + else + dts_fail("utc_cairo_unbounded_operator1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unclosed_strokes_gl.c b/TC/testcase/utc_unclosed_strokes_gl.c new file mode 100644 index 0000000..ebdd334 --- /dev/null +++ b/TC/testcase/utc_unclosed_strokes_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unclosed_strokes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unclosed_strokes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unclosed_strokes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unclosed-strokes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unclosed_strokes1"); + else + dts_fail("utc_cairo_unclosed_strokes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_unclosed_strokes_image.c b/TC/testcase/utc_unclosed_strokes_image.c new file mode 100644 index 0000000..aeb3392 --- /dev/null +++ b/TC/testcase/utc_unclosed_strokes_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_unclosed_strokes1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_unclosed_strokes1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_unclosed_strokes1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite unclosed-strokes", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_unclosed_strokes1"); + else + dts_fail("utc_cairo_unclosed_strokes1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_data_gl.c b/TC/testcase/utc_user_data_gl.c new file mode 100644 index 0000000..37b018c --- /dev/null +++ b/TC/testcase/utc_user_data_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_data1"); + else + dts_fail("utc_cairo_user_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_data_image.c b/TC/testcase/utc_user_data_image.c new file mode 100644 index 0000000..d067934 --- /dev/null +++ b/TC/testcase/utc_user_data_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_data1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_data1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_data1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-data", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_data1"); + else + dts_fail("utc_cairo_user_data1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_gl.c b/TC/testcase/utc_user_font_gl.c new file mode 100644 index 0000000..49fbc59 --- /dev/null +++ b/TC/testcase/utc_user_font_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font1"); + else + dts_fail("utc_cairo_user_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_image.c b/TC/testcase/utc_user_font_image.c new file mode 100644 index 0000000..356d057 --- /dev/null +++ b/TC/testcase/utc_user_font_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font1"); + else + dts_fail("utc_cairo_user_font1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_mask_gl.c b/TC/testcase/utc_user_font_mask_gl.c new file mode 100644 index 0000000..d942cda --- /dev/null +++ b/TC/testcase/utc_user_font_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_mask1"); + else + dts_fail("utc_cairo_user_font_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_mask_image.c b/TC/testcase/utc_user_font_mask_image.c new file mode 100644 index 0000000..327a58b --- /dev/null +++ b/TC/testcase/utc_user_font_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_mask1"); + else + dts_fail("utc_cairo_user_font_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_proxy_gl.c b/TC/testcase/utc_user_font_proxy_gl.c new file mode 100644 index 0000000..b39b71a --- /dev/null +++ b/TC/testcase/utc_user_font_proxy_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_proxy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_proxy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_proxy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-proxy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_proxy1"); + else + dts_fail("utc_cairo_user_font_proxy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_proxy_image.c b/TC/testcase/utc_user_font_proxy_image.c new file mode 100644 index 0000000..e61b895 --- /dev/null +++ b/TC/testcase/utc_user_font_proxy_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_proxy1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_proxy1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_proxy1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-proxy", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_proxy1"); + else + dts_fail("utc_cairo_user_font_proxy1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_rescale_gl.c b/TC/testcase/utc_user_font_rescale_gl.c new file mode 100644 index 0000000..4ece9ce --- /dev/null +++ b/TC/testcase/utc_user_font_rescale_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_rescale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_rescale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_rescale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-rescale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_rescale1"); + else + dts_fail("utc_cairo_user_font_rescale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_user_font_rescale_image.c b/TC/testcase/utc_user_font_rescale_image.c new file mode 100644 index 0000000..5c5a573 --- /dev/null +++ b/TC/testcase/utc_user_font_rescale_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_user_font_rescale1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_user_font_rescale1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_user_font_rescale1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite user-font-rescale", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_user_font_rescale1"); + else + dts_fail("utc_cairo_user_font_rescale1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_white_in_noop_gl.c b/TC/testcase/utc_white_in_noop_gl.c new file mode 100644 index 0000000..0a1f0bc --- /dev/null +++ b/TC/testcase/utc_white_in_noop_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_white_in_noop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_white_in_noop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_white_in_noop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite white-in-noop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_white_in_noop1"); + else + dts_fail("utc_cairo_white_in_noop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_white_in_noop_image.c b/TC/testcase/utc_white_in_noop_image.c new file mode 100644 index 0000000..c8b04d4 --- /dev/null +++ b/TC/testcase/utc_white_in_noop_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_white_in_noop1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_white_in_noop1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_white_in_noop1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite white-in-noop", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_white_in_noop1"); + else + dts_fail("utc_cairo_white_in_noop1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_fill_gl.c b/TC/testcase/utc_world_map_fill_gl.c new file mode 100644 index 0000000..38c030f --- /dev/null +++ b/TC/testcase/utc_world_map_fill_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map_fill1"); + else + dts_fail("utc_cairo_world_map_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_fill_image.c b/TC/testcase/utc_world_map_fill_image.c new file mode 100644 index 0000000..2017b98 --- /dev/null +++ b/TC/testcase/utc_world_map_fill_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map_fill1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map_fill1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map_fill1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map-fill", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map_fill1"); + else + dts_fail("utc_cairo_world_map_fill1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_gl.c b/TC/testcase/utc_world_map_gl.c new file mode 100644 index 0000000..c6f2cb9 --- /dev/null +++ b/TC/testcase/utc_world_map_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map1"); + else + dts_fail("utc_cairo_world_map1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_image.c b/TC/testcase/utc_world_map_image.c new file mode 100644 index 0000000..b093360 --- /dev/null +++ b/TC/testcase/utc_world_map_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map1"); + else + dts_fail("utc_cairo_world_map1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_stroke_gl.c b/TC/testcase/utc_world_map_stroke_gl.c new file mode 100644 index 0000000..65ef38a --- /dev/null +++ b/TC/testcase/utc_world_map_stroke_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map_stroke1"); + else + dts_fail("utc_cairo_world_map_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_world_map_stroke_image.c b/TC/testcase/utc_world_map_stroke_image.c new file mode 100644 index 0000000..b66f371 --- /dev/null +++ b/TC/testcase/utc_world_map_stroke_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_world_map_stroke1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_world_map_stroke1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_world_map_stroke1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite world-map-stroke", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_world_map_stroke1"); + else + dts_fail("utc_cairo_world_map_stroke1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_huge_image_shm_gl.c b/TC/testcase/utc_xcb_huge_image_shm_gl.c new file mode 100644 index 0000000..ed198a7 --- /dev/null +++ b/TC/testcase/utc_xcb_huge_image_shm_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_huge_image_shm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_huge_image_shm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_huge_image_shm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-huge-image-shm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_huge_image_shm1"); + else + dts_fail("utc_cairo_xcb_huge_image_shm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_huge_image_shm_image.c b/TC/testcase/utc_xcb_huge_image_shm_image.c new file mode 100644 index 0000000..0e6cd2a --- /dev/null +++ b/TC/testcase/utc_xcb_huge_image_shm_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_huge_image_shm1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_huge_image_shm1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_huge_image_shm1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-huge-image-shm", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_huge_image_shm1"); + else + dts_fail("utc_cairo_xcb_huge_image_shm1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_snapshot_assert_gl.c b/TC/testcase/utc_xcb_snapshot_assert_gl.c new file mode 100644 index 0000000..93b741f --- /dev/null +++ b/TC/testcase/utc_xcb_snapshot_assert_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_snapshot_assert1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_snapshot_assert1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_snapshot_assert1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-snapshot-assert", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_snapshot_assert1"); + else + dts_fail("utc_cairo_xcb_snapshot_assert1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_snapshot_assert_image.c b/TC/testcase/utc_xcb_snapshot_assert_image.c new file mode 100644 index 0000000..7e787dd --- /dev/null +++ b/TC/testcase/utc_xcb_snapshot_assert_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_snapshot_assert1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_snapshot_assert1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_snapshot_assert1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-snapshot-assert", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_snapshot_assert1"); + else + dts_fail("utc_cairo_xcb_snapshot_assert1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_stress_cache_gl.c b/TC/testcase/utc_xcb_stress_cache_gl.c new file mode 100644 index 0000000..294061a --- /dev/null +++ b/TC/testcase/utc_xcb_stress_cache_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_stress_cache1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_stress_cache1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_stress_cache1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-stress-cache", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_stress_cache1"); + else + dts_fail("utc_cairo_xcb_stress_cache1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_stress_cache_image.c b/TC/testcase/utc_xcb_stress_cache_image.c new file mode 100644 index 0000000..db33df6 --- /dev/null +++ b/TC/testcase/utc_xcb_stress_cache_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_stress_cache1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_stress_cache1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_stress_cache1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-stress-cache", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_stress_cache1"); + else + dts_fail("utc_cairo_xcb_stress_cache1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_surface_source_gl.c b/TC/testcase/utc_xcb_surface_source_gl.c new file mode 100644 index 0000000..be8fbc8 --- /dev/null +++ b/TC/testcase/utc_xcb_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_surface_source1"); + else + dts_fail("utc_cairo_xcb_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcb_surface_source_image.c b/TC/testcase/utc_xcb_surface_source_image.c new file mode 100644 index 0000000..b100ea8 --- /dev/null +++ b/TC/testcase/utc_xcb_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcb_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcb_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcb_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcb-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcb_surface_source1"); + else + dts_fail("utc_cairo_xcb_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcomposite_projection_gl.c b/TC/testcase/utc_xcomposite_projection_gl.c new file mode 100644 index 0000000..abcb478 --- /dev/null +++ b/TC/testcase/utc_xcomposite_projection_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcomposite_projection1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcomposite_projection1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcomposite_projection1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcomposite-projection", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcomposite_projection1"); + else + dts_fail("utc_cairo_xcomposite_projection1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xcomposite_projection_image.c b/TC/testcase/utc_xcomposite_projection_image.c new file mode 100644 index 0000000..9c9da9e --- /dev/null +++ b/TC/testcase/utc_xcomposite_projection_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xcomposite_projection1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xcomposite_projection1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xcomposite_projection1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xcomposite-projection", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xcomposite_projection1"); + else + dts_fail("utc_cairo_xcomposite_projection1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_expose_event_gl.c b/TC/testcase/utc_xlib_expose_event_gl.c new file mode 100644 index 0000000..f1df28e --- /dev/null +++ b/TC/testcase/utc_xlib_expose_event_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_expose_event1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_expose_event1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_expose_event1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-expose-event", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_expose_event1"); + else + dts_fail("utc_cairo_xlib_expose_event1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_expose_event_image.c b/TC/testcase/utc_xlib_expose_event_image.c new file mode 100644 index 0000000..f10f026 --- /dev/null +++ b/TC/testcase/utc_xlib_expose_event_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_expose_event1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_expose_event1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_expose_event1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-expose-event", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_expose_event1"); + else + dts_fail("utc_cairo_xlib_expose_event1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_surface_gl.c b/TC/testcase/utc_xlib_surface_gl.c new file mode 100644 index 0000000..4d37e0f --- /dev/null +++ b/TC/testcase/utc_xlib_surface_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_surface1"); + else + dts_fail("utc_cairo_xlib_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_surface_image.c b/TC/testcase/utc_xlib_surface_image.c new file mode 100644 index 0000000..46a8d01 --- /dev/null +++ b/TC/testcase/utc_xlib_surface_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_surface1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_surface1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_surface1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-surface", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_surface1"); + else + dts_fail("utc_cairo_xlib_surface1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_surface_source_gl.c b/TC/testcase/utc_xlib_surface_source_gl.c new file mode 100644 index 0000000..22f5345 --- /dev/null +++ b/TC/testcase/utc_xlib_surface_source_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_surface_source1"); + else + dts_fail("utc_cairo_xlib_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_xlib_surface_source_image.c b/TC/testcase/utc_xlib_surface_source_image.c new file mode 100644 index 0000000..e62c8a5 --- /dev/null +++ b/TC/testcase/utc_xlib_surface_source_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_xlib_surface_source1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_xlib_surface_source1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_xlib_surface_source1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite xlib-surface-source", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_xlib_surface_source1"); + else + dts_fail("utc_cairo_xlib_surface_source1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_zero_alpha_gl.c b/TC/testcase/utc_zero_alpha_gl.c new file mode 100644 index 0000000..7fa9d01 --- /dev/null +++ b/TC/testcase/utc_zero_alpha_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_zero_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_zero_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_zero_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite zero-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_zero_alpha1"); + else + dts_fail("utc_cairo_zero_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_zero_alpha_image.c b/TC/testcase/utc_zero_alpha_image.c new file mode 100644 index 0000000..d1b2bd6 --- /dev/null +++ b/TC/testcase/utc_zero_alpha_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_zero_alpha1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_zero_alpha1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_zero_alpha1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite zero-alpha", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_zero_alpha1"); + else + dts_fail("utc_cairo_zero_alpha1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_zero_mask_gl.c b/TC/testcase/utc_zero_mask_gl.c new file mode 100644 index 0000000..3ada2ba --- /dev/null +++ b/TC/testcase/utc_zero_mask_gl.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_zero_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_zero_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_zero_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite zero-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_zero_mask1"); + else + dts_fail("utc_cairo_zero_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=egl","DISPLAY=:0", "CAIRO_GL_COMPOSITOR=msaa", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/testcase/utc_zero_mask_image.c b/TC/testcase/utc_zero_mask_image.c new file mode 100644 index 0000000..0a84d30 --- /dev/null +++ b/TC/testcase/utc_zero_mask_image.c @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "cairo-test.h" + +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_cairo_zero_mask1(void); + +struct tet_testlist tet_testlist[] = { + { utc_cairo_zero_mask1, 1 }, + { NULL, 0 }, +}; + +static void startup(void) +{ + /* start of TC */ +} + +static void cleanup(void) +{ + /* end of TC */ +} + +static void utc_cairo_zero_mask1(void) +{ + char buf[128]; + int ret; + sprintf(buf, "cd %s && ./cairo-test-suite zero-mask", getenv("CAIRO_TC_ROOT_PATH")); + int pid=0; + int status=0; + + pid = fork(); + if(pid > 0) { + if (waitpid(pid,&status,0) != pid) { + fprintf(stderr, "Failed to wait!!!"); + exit(EXIT_FAILURE); + } + if(WIFEXITED(status)) { + ret=status; + if(WEXITSTATUS(ret) == CAIRO_TEST_SUCCESS) + dts_pass("utc_cairo_zero_mask1"); + else + dts_fail("utc_cairo_zero_mask1"); + } + } + else if(pid == 0) { + char *env[]={"CAIRO_TEST_TARGET=image", (char *)0}; + char parse0[4]={0,}; + char parse1[1024]={0,}; + char parse2[4]={0,}; + char parse3[32]={0,}; + char parse4[32]={0,}; + sscanf(buf,"%s %s %s %s %s", parse0, parse1, parse2, parse3, parse4 ); + chdir(parse1); + execle(parse3, parse3, parse4, NULL, env); + } + else { + fprintf(stderr, "Failed to fork!!!"); + exit(EXIT_FAILURE); + } +} diff --git a/TC/tet_scen b/TC/tet_scen new file mode 100755 index 0000000..03f029a --- /dev/null +++ b/TC/tet_scen @@ -0,0 +1,7 @@ +all + ^TEST +##### Scenarios for TEST ##### + +# Test scenario +TEST + :include:/testcase/tslist diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg new file mode 100755 index 0000000..f7eda55 --- /dev/null +++ b/TC/tetbuild.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capture option for build operation checking +TET_BUILD_TOOL=make # build with using make command +TET_BUILD_FILE=-f Makefile # execution file (Makefile) for build +TET_API_COMPLIANT=True # use TET API in Test Case ? +TET_PASS_TC_NAME=True # report passed TC name in Journal file? diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg new file mode 100755 index 0000000..02d7030 --- /dev/null +++ b/TC/tetclean.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capture option +TET_CLEAN_TOOL= make clean # clean tool +TET_CLEAN_FILE= Makefile # file for clean +TET_API_COMPLIANT=True # TET API useage +TET_PASS_TC_NAME=True # showing name , passed TC diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg new file mode 100755 index 0000000..ef3e452 --- /dev/null +++ b/TC/tetexec.cfg @@ -0,0 +1,5 @@ +TET_OUTPUT_CAPTURE=True # capturing execution or not +TET_EXEC_TOOL= # ex) exec : execution tool set up/ Optional +TET_EXEC_FILE= # ex) exectool : execution file/ Optional +TET_API_COMPLIANT=True # Test case or Tool usesTET API? +TET_PASS_TC_NAME=True # showing Passed TC name ? diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..36fe50f --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1026 @@ +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, +[m4_warning([this file was generated for autoconf 2.67. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([build/aclocal.cairo.m4]) +m4_include([build/aclocal.compare.m4]) +m4_include([build/aclocal.enable.m4]) +m4_include([build/aclocal.float.m4]) +m4_include([build/aclocal.makefile.m4]) +m4_include([build/aclocal.pkg.m4]) +m4_include([build/gtk-doc.m4]) +m4_include([build/libtool.m4]) +m4_include([build/ltoptions.m4]) +m4_include([build/ltsugar.m4]) +m4_include([build/ltversion.m4]) +m4_include([build/lt~obsolete.m4]) +m4_include([acinclude.m4]) diff --git a/autogen.sh b/autogen.sh index 10c2832..4d113f8 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,197 +1,31 @@ #!/bin/sh # Run this to generate all the initial makefiles, etc. -set -e -ARGV0=$0 - -# Allow invocation from a separate build directory; in that case, we change -# to the source directory to run the auto*, then change back before running configure -srcdir=`dirname $ARGV0` -test -z "$srcdir" && srcdir=. +test -n "$srcdir" || srcdir=`dirname "$0"` +test -n "$srcdir" || srcdir=. ORIGDIR=`pwd` cd $srcdir -PACKAGE=cairo - -LIBTOOLIZE_FLAGS="--copy --force --automake" -ACLOCAL_FLAGS="-I build" -AUTOHEADER=${AUTOHEADER-autoheader} -GTKDOCIZE_FLAGS="--copy" -GTKDOCIZE=${GTKDOCIZE-gtkdocize} -AUTOMAKE_FLAGS="--add-missing --gnu -Wall" -AUTOCONF=${AUTOCONF-autoconf} - -CONFIGURE_AC= -test -f configure.ac && CONFIGURE_AC=configure.ac - -if test "X$CONFIGURE_AC" = X; then - echo "$ARGV0: ERROR: No $srcdir/configure.in or $srcdir/configure.ac found." - exit 1 -fi - -extract_version() { - grep "^ *$1" "$CONFIGURE_AC" | sed 's/.*(\[*\([^])]*\)]*).*/\1/' -} - -autoconf_min_vers=`extract_version AC_PREREQ` -automake_min_vers=`extract_version AM_INIT_AUTOMAKE` -libtoolize_min_vers=`extract_version AC_PROG_LIBTOOL` -aclocal_min_vers=$automake_min_vers - - -# Not all echo versions allow -n, so we check what is possible. This test is -# based on the one in autoconf. -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ;; - *c*,* ) ECHO_N=-n ;; - *) ECHO_N= ;; -esac - - -# some terminal codes ... -boldface="`tput bold 2>/dev/null || true`" -normal="`tput sgr0 2>/dev/null || true`" -printbold() { - echo $ECHO_N "$boldface" - echo "$@" - echo $ECHO_N "$normal" -} -printerr() { - echo "$@" >&2 -} - - -# Usage: -# compare_versions MIN_VERSION ACTUAL_VERSION -# returns true if ACTUAL_VERSION >= MIN_VERSION -compare_versions() { - ch_min_version=$1 - ch_actual_version=$2 - ch_status=0 - IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="." - set $ch_actual_version - for ch_min in $ch_min_version; do - ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; # remove letter suffixes - if [ $# -gt 0 ]; then shift; fi - if [ -z "$ch_min" ]; then break; fi - if [ -z "$ch_cur" ]; then ch_status=1; break; fi - if [ $ch_cur -gt $ch_min ]; then break; fi - if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi - done - IFS="$ch_save_IFS" - return $ch_status -} - -# Usage: -# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE -# checks to see if the package is available -version_check() { - vc_package=$1 - vc_variable=$2 - vc_checkprogs=$3 - vc_min_version=$4 - vc_source=$5 - vc_status=1 - - vc_checkprog=`eval echo "\\$$vc_variable"` - if [ -n "$vc_checkprog" ]; then - printbold "using $vc_checkprog for $vc_package" - return 0 - fi - - printbold "checking for $vc_package >= $vc_min_version..." - for vc_checkprog in $vc_checkprogs; do - echo $ECHO_N " testing $vc_checkprog... " - if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then - vc_actual_version=`$vc_checkprog --version | head -n 1 | \ - sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'` - if compare_versions $vc_min_version $vc_actual_version; then - echo "found $vc_actual_version" - # set variable - eval "$vc_variable=$vc_checkprog" - vc_status=0 - break - else - echo "too old (found version $vc_actual_version)" - fi - else - echo "not found." - fi - done - if [ "$vc_status" != 0 ]; then - printerr "***Error***: You must have $vc_package >= $vc_min_version installed" - printerr " to build $PROJECT. Download the appropriate package for" - printerr " from your distribution or get the source tarball at" - printerr " $vc_source" - printerr - fi - return $vc_status -} - - -version_check autoconf AUTOCONF $AUTOCONF $autoconf_min_vers \ - "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-${autoconf_min_vers}.tar.gz" || DIE=1 - -# -# Hunt for an appropriate version of automake and aclocal; we can't -# assume that 'automake' is necessarily the most recent installed version -# -# We check automake first to allow it to be a newer version than we know about. -# -version_check automake AUTOMAKE "$AUTOMAKE automake automake-1.10 automake-1.9 automake-1.8 automake-1.7" $automake_min_vers \ - "http://ftp.gnu.org/pub/gnu/automake/automake-${automake_min_vers}.tar.gz" || DIE=1 -ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/` - - -version_check libtool LIBTOOLIZE "$LIBTOOLIZE glibtoolize libtoolize" $libtoolize_min_vers \ - "http://ftp.gnu.org/pub/gnu/libtool/libtool-${libtool_min_vers}.tar.gz" || DIE=1 - -if test -n "$DIE"; then - exit 1 +AUTORECONF=`which autoreconf` +if test -z $AUTORECONF; then + echo "*** No autoreconf found, please intall it ***" + exit 1 fi - -if test -z "$*"; then - echo "$ARGV0: Note: \`./configure' will be run with no arguments." - echo " If you wish to pass any to it, please specify them on the" - echo " \`$0' command line." - echo +GTKDOCIZE=`which gtkdocize` +if test -z $GTKDOCIZE; then + echo "*** No GTK-Doc found, documentation won't be generated ***" +else + gtkdocize || exit $? fi -do_cmd() { - echo "$ARGV0: running \`$@'" - $@ -} - -do_cmd $LIBTOOLIZE $LIBTOOLIZE_FLAGS - -do_cmd $ACLOCAL $ACLOCAL_FLAGS - -do_cmd $AUTOHEADER - # create dummy */Makefile.am.features and ChangeLog to make automake happy > boilerplate/Makefile.am.features > src/Makefile.am.features touch ChangeLog -# We don't call gtkdocize right now. When we do, we should then modify -# the generated gtk-doc.make and move it to build/Makefile.am.gtk-doc. -# See that file for details. -#do_cmd $GTKDOCIZE $GTKDOCIZE_FLAGS - -do_cmd $AUTOMAKE $AUTOMAKE_FLAGS +autoreconf --install --verbose || exit $? -do_cmd $AUTOCONF - -cd "$ORIGDIR" || exit 1 - -rm -f config.cache - -if test -z "$NOCONFIGURE"; then - do_cmd $srcdir/configure \ - --cache-file=config.cache \ - --disable-static \ - --enable-test-surfaces \ - ${1+"$@"} && echo "Now type \`make' to compile $PROJECT." || exit 1 -fi +cd $ORIGDIR +test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" diff --git a/boilerplate/.gitignore b/boilerplate/.gitignore new file mode 100644 index 0000000..a81663b --- /dev/null +++ b/boilerplate/.gitignore @@ -0,0 +1,24 @@ +TAGS +tags +Makefile +Makefile.in +Makefile.am.features +#Makefile.win32.features +*.lo +*.la +*.exe +*.manifest +*.o +*.gcda +*.gcno +*.obj +*.ilk +*.suo +*.lib +*.pdb +*~ +.*.sw? +check-link +cairo-boilerplate-constructors.c +cairo-boilerplate-constructors +make-cairo-boilerplate-constructors diff --git a/boilerplate/Makefile.sources b/boilerplate/Makefile.sources index 63ef34e..101e997 100644 --- a/boilerplate/Makefile.sources +++ b/boilerplate/Makefile.sources @@ -38,3 +38,4 @@ cairo_boilerplate_xcb_sources = cairo-boilerplate-xcb.c cairo_boilerplate_xlib_headers = cairo-boilerplate-xlib.h cairo_boilerplate_xlib_sources = cairo-boilerplate-xlib.c cairo_boilerplate_vg_sources = cairo-boilerplate-vg.c +cairo_boilerplate_cogl_sources = cairo-boilerplate-cogl.c diff --git a/boilerplate/Makefile.win32.features b/boilerplate/Makefile.win32.features index 8b6a673..e60a95b 100644 --- a/boilerplate/Makefile.win32.features +++ b/boilerplate/Makefile.win32.features @@ -247,6 +247,18 @@ enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv2_cxx_sources) enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources) endif +unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers) +all_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources) +ifeq ($(CAIRO_HAS_COGL_SURFACE),1) +enabled_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources) +endif + unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers) all_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers) all_cairo_boilerplate_private += $(cairo_boilerplate_directfb_private) diff --git a/boilerplate/cairo-boilerplate-cogl.c b/boilerplate/cairo-boilerplate-cogl.c new file mode 100644 index 0000000..e39ad33 --- /dev/null +++ b/boilerplate/cairo-boilerplate-cogl.c @@ -0,0 +1,206 @@ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2009 Chris Wilson + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Chris Wilson. + */ + +#include "cairo-boilerplate-private.h" + +#include +#include + +typedef struct _cogl_closure { + cairo_device_t *device; + CoglFramebuffer *fb; + cairo_surface_t *surface; +} cogl_closure_t; + +static const cairo_user_data_key_t cogl_closure_key; + +static CoglContext *context = NULL; + +static void +_cairo_boilerplate_cogl_cleanup (void *abstract_closure) +{ + cogl_closure_t *closure = abstract_closure; + + cogl_object_unref (closure->fb); + + cairo_device_finish (closure->device); + cairo_device_destroy (closure->device); + + free (closure); +} + +static cairo_surface_t * +_cairo_boilerplate_cogl_create_offscreen_color_surface (const char *name, + cairo_content_t content, + double width, + double height, + double max_width, + double max_height, + cairo_boilerplate_mode_t mode, + void **abstract_closure) +{ + cairo_device_t *device; + CoglTexture *tex; + CoglHandle offscreen; + CoglFramebuffer *fb; + cogl_closure_t *closure; + cairo_status_t status; + + if (!context) + context = cogl_context_new (NULL, NULL); + + device = cairo_cogl_device_create (context); + tex = cogl_texture_new_with_size (width, height, + COGL_TEXTURE_NO_SLICING, + COGL_PIXEL_FORMAT_BGRA_8888_PRE); + offscreen = cogl_offscreen_new_to_texture (tex); + fb = COGL_FRAMEBUFFER (offscreen); + + cogl_framebuffer_allocate (fb, NULL); + cogl_push_framebuffer (fb); + cogl_ortho (0, cogl_framebuffer_get_width (fb), + cogl_framebuffer_get_height (fb), 0, + -1, 100); + cogl_pop_framebuffer (); + + closure = malloc (sizeof (cogl_closure_t)); + *abstract_closure = closure; + closure->device = device; + closure->fb = fb; + closure->surface = cairo_cogl_surface_create (device, fb); + + status = cairo_surface_set_user_data (closure->surface, + &cogl_closure_key, closure, NULL); + if (status == CAIRO_STATUS_SUCCESS) + return closure->surface; + + _cairo_boilerplate_cogl_cleanup (closure); + return cairo_boilerplate_surface_create_in_error (status); +} + +static cairo_surface_t * +_cairo_boilerplate_cogl_create_onscreen_color_surface (const char *name, + cairo_content_t content, + double width, + double height, + double max_width, + double max_height, + cairo_boilerplate_mode_t mode, + void **abstract_closure) +{ + cairo_device_t *device; + CoglOnscreen *onscreen; + CoglFramebuffer *fb; + cogl_closure_t *closure; + cairo_status_t status; + + if (!context) + context = cogl_context_new (NULL, NULL); + + device = cairo_cogl_device_create (context); + onscreen = cogl_onscreen_new (context, width, height); + fb = COGL_FRAMEBUFFER (onscreen); + + cogl_onscreen_show (onscreen); + + cogl_push_framebuffer (fb); + cogl_ortho (0, cogl_framebuffer_get_width (fb), + cogl_framebuffer_get_height (fb), 0, + -1, 100); + cogl_pop_framebuffer (); + + closure = malloc (sizeof (cogl_closure_t)); + *abstract_closure = closure; + closure->device = device; + closure->fb = fb; + closure->surface = cairo_cogl_surface_create (device, fb); + + status = cairo_surface_set_user_data (closure->surface, + &cogl_closure_key, closure, NULL); + if (status == CAIRO_STATUS_SUCCESS) + return closure->surface; + + _cairo_boilerplate_cogl_cleanup (closure); + return cairo_boilerplate_surface_create_in_error (status); +} + +static cairo_status_t +_cairo_boilerplate_cogl_finish_onscreen (cairo_surface_t *surface) +{ + cogl_closure_t *closure = cairo_surface_get_user_data (surface, &cogl_closure_key); + + cairo_cogl_surface_end_frame (surface); + + cogl_framebuffer_swap_buffers (closure->fb); + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_boilerplate_cogl_synchronize (void *abstract_closure) +{ + cogl_closure_t *closure = abstract_closure; + cogl_framebuffer_finish (closure->fb); +} + +static const cairo_boilerplate_target_t targets[] = { + { + "cogl-offscreen-color", "cogl", NULL, NULL, + CAIRO_SURFACE_TYPE_COGL, CAIRO_CONTENT_COLOR_ALPHA, 1, + "cairo_cogl_device_create", + _cairo_boilerplate_cogl_create_offscreen_color_surface, + cairo_surface_create_similar, + NULL, NULL, + _cairo_boilerplate_get_image_surface, + cairo_surface_write_to_png, + _cairo_boilerplate_cogl_cleanup, + _cairo_boilerplate_cogl_synchronize, + NULL, + TRUE, FALSE, FALSE + }, + { + "cogl-onscreen-color", "cogl", NULL, NULL, + CAIRO_SURFACE_TYPE_COGL, CAIRO_CONTENT_COLOR_ALPHA, 1, + "cairo_cogl_device_create", + _cairo_boilerplate_cogl_create_onscreen_color_surface, + cairo_surface_create_similar, + NULL, + _cairo_boilerplate_cogl_finish_onscreen, + _cairo_boilerplate_get_image_surface, + cairo_surface_write_to_png, + _cairo_boilerplate_cogl_cleanup, + _cairo_boilerplate_cogl_synchronize, + NULL, + TRUE, FALSE, FALSE + } +}; +CAIRO_BOILERPLATE (cogl, targets) diff --git a/boilerplate/cairo-boilerplate-directfb.c b/boilerplate/cairo-boilerplate-directfb.c index be5efb6..a479011 100644 --- a/boilerplate/cairo-boilerplate-directfb.c +++ b/boilerplate/cairo-boilerplate-directfb.c @@ -175,7 +175,6 @@ _cairo_boilerplate_directfb_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { diff --git a/boilerplate/cairo-boilerplate-drm.c b/boilerplate/cairo-boilerplate-drm.c index 8f04314..214ce50 100644 --- a/boilerplate/cairo-boilerplate-drm.c +++ b/boilerplate/cairo-boilerplate-drm.c @@ -42,7 +42,6 @@ _cairo_boilerplate_drm_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_device_t *device; diff --git a/boilerplate/cairo-boilerplate-egl.c b/boilerplate/cairo-boilerplate-egl.c index 0e1c9b9..e1a46e4 100644 --- a/boilerplate/cairo-boilerplate-egl.c +++ b/boilerplate/cairo-boilerplate-egl.c @@ -72,7 +72,6 @@ _cairo_boilerplate_egl_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { egl_target_closure_t *gltc; @@ -132,6 +131,11 @@ _cairo_boilerplate_egl_create_surface (const char *name, gltc->device = cairo_egl_device_create (gltc->dpy, gltc->ctx); + if (width < 1) + width = 1; + if (height < 1) + height = 1; + gltc->surface = surface = cairo_gl_surface_create (gltc->device, content, ceil (width), diff --git a/boilerplate/cairo-boilerplate-glx.c b/boilerplate/cairo-boilerplate-glx.c index 690844e..4cf51f0 100644 --- a/boilerplate/cairo-boilerplate-glx.c +++ b/boilerplate/cairo-boilerplate-glx.c @@ -74,7 +74,6 @@ _cairo_boilerplate_gl_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { int rgba_attribs[] = { GLX_RGBA, @@ -151,7 +150,6 @@ _cairo_boilerplate_gl_create_window (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { int rgba_attribs[] = { GLX_RGBA, @@ -161,6 +159,18 @@ _cairo_boilerplate_gl_create_window (const char *name, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, None }; + + int msaa_attribs[] = { GLX_RGBA, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, + GLX_ALPHA_SIZE, 1, + GLX_STENCIL_SIZE, 1, + GLX_SAMPLES, 4, + GLX_SAMPLE_BUFFERS, 1, + GLX_DOUBLEBUFFER, + None }; + XVisualInfo *vi; GLXContext ctx; gl_target_closure_t *gltc; @@ -187,7 +197,11 @@ _cairo_boilerplate_gl_create_window (const char *name, if (mode == CAIRO_BOILERPLATE_MODE_TEST) XSynchronize (gltc->dpy, 1); - vi = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs); + vi = glXChooseVisual (dpy, DefaultScreen (dpy), msaa_attribs); + + if (vi == NULL) + vi = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs); + if (vi == NULL) { fprintf (stderr, "Failed to create RGBA, double-buffered visual\n"); XCloseDisplay (dpy); @@ -232,7 +246,6 @@ _cairo_boilerplate_gl_create_window_db (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { int rgba_attribs[] = { GLX_RGBA, @@ -242,6 +255,18 @@ _cairo_boilerplate_gl_create_window_db (const char *name, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, None }; + + int msaa_attribs[] = { GLX_RGBA, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, + GLX_ALPHA_SIZE, 1, + GLX_STENCIL_SIZE, 1, + GLX_SAMPLES, 4, + GLX_SAMPLE_BUFFERS, 1, + GLX_DOUBLEBUFFER, + None }; + XVisualInfo *vi; GLXContext ctx; gl_target_closure_t *gltc; @@ -269,7 +294,11 @@ _cairo_boilerplate_gl_create_window_db (const char *name, if (mode == CAIRO_BOILERPLATE_MODE_TEST) XSynchronize (gltc->dpy, 1); - vi = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs); + vi = glXChooseVisual (dpy, DefaultScreen (dpy), msaa_attribs); + + if (vi == NULL) + vi = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs); + if (vi == NULL) { fprintf (stderr, "Failed to create RGBA, double-buffered visual\n"); XCloseDisplay (dpy); diff --git a/boilerplate/cairo-boilerplate-pdf.c b/boilerplate/cairo-boilerplate-pdf.c index 5173780..d76d139 100644 --- a/boilerplate/cairo-boilerplate-pdf.c +++ b/boilerplate/cairo-boilerplate-pdf.c @@ -64,7 +64,6 @@ _cairo_boilerplate_pdf_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { pdf_target_closure_t *ptc; diff --git a/boilerplate/cairo-boilerplate-ps.c b/boilerplate/cairo-boilerplate-ps.c index 53c8cb8..ae61239 100644 --- a/boilerplate/cairo-boilerplate-ps.c +++ b/boilerplate/cairo-boilerplate-ps.c @@ -82,7 +82,6 @@ _cairo_boilerplate_ps_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { ps_target_closure_t *ptc; @@ -144,14 +143,13 @@ _cairo_boilerplate_ps2_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { return _cairo_boilerplate_ps_create_surface (name, content, CAIRO_PS_LEVEL_2, width, height, max_width, max_height, - mode, id, + mode, closure); } @@ -163,14 +161,13 @@ _cairo_boilerplate_ps3_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { return _cairo_boilerplate_ps_create_surface (name, content, CAIRO_PS_LEVEL_3, width, height, max_width, max_height, - mode, id, + mode, closure); } diff --git a/boilerplate/cairo-boilerplate-qt.cpp b/boilerplate/cairo-boilerplate-qt.cpp index bbeea4a..31c0814 100644 --- a/boilerplate/cairo-boilerplate-qt.cpp +++ b/boilerplate/cairo-boilerplate-qt.cpp @@ -60,7 +60,6 @@ _cairo_boilerplate_qt_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { qt_closure_t *qtc; @@ -94,7 +93,7 @@ static const cairo_boilerplate_target_t targets[] = { CAIRO_SURFACE_TYPE_QT, CAIRO_CONTENT_COLOR_ALPHA, 0, "cairo_qt_surface_create", _cairo_boilerplate_qt_create_surface, - NULL, NULL, + NULL, NULL, NULL, _cairo_boilerplate_get_image_surface, cairo_surface_write_to_png, _cairo_boilerplate_qt_cleanup @@ -104,7 +103,7 @@ static const cairo_boilerplate_target_t targets[] = { CAIRO_SURFACE_TYPE_QT, CAIRO_CONTENT_COLOR, 0, "cairo_qt_surface_create", _cairo_boilerplate_qt_create_surface, - NULL, NULL, + NULL, NULL, NULL, _cairo_boilerplate_get_image_surface, cairo_surface_write_to_png, _cairo_boilerplate_qt_cleanup diff --git a/boilerplate/cairo-boilerplate-quartz.c b/boilerplate/cairo-boilerplate-quartz.c index 6b9697a..d4ca353 100644 --- a/boilerplate/cairo-boilerplate-quartz.c +++ b/boilerplate/cairo-boilerplate-quartz.c @@ -36,7 +36,6 @@ _cairo_boilerplate_quartz_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_format_t format; diff --git a/boilerplate/cairo-boilerplate-script.c b/boilerplate/cairo-boilerplate-script.c index f031744..da8ae3b 100644 --- a/boilerplate/cairo-boilerplate-script.c +++ b/boilerplate/cairo-boilerplate-script.c @@ -44,7 +44,6 @@ _cairo_boilerplate_script_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { script_target_closure_t *ptc; diff --git a/boilerplate/cairo-boilerplate-skia.c b/boilerplate/cairo-boilerplate-skia.c index 2bd31b0..c06e7f0 100644 --- a/boilerplate/cairo-boilerplate-skia.c +++ b/boilerplate/cairo-boilerplate-skia.c @@ -11,7 +11,6 @@ _cairo_boilerplate_skia_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_format_t format; diff --git a/boilerplate/cairo-boilerplate-svg.c b/boilerplate/cairo-boilerplate-svg.c index 310dc5d..797106e 100644 --- a/boilerplate/cairo-boilerplate-svg.c +++ b/boilerplate/cairo-boilerplate-svg.c @@ -62,7 +62,6 @@ _cairo_boilerplate_svg_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { svg_target_closure_t *ptc; @@ -117,7 +116,6 @@ _cairo_boilerplate_svg11_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { /* current default, but be explicit in case the default changes */ @@ -125,7 +123,7 @@ _cairo_boilerplate_svg11_create_surface (const char *name, CAIRO_SVG_VERSION_1_1, width, height, max_width, max_height, - mode, id, + mode, closure); } @@ -137,14 +135,13 @@ _cairo_boilerplate_svg12_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { return _cairo_boilerplate_svg_create_surface (name, content, CAIRO_SVG_VERSION_1_2, width, height, max_width, max_height, - mode, id, + mode, closure); } @@ -286,7 +283,7 @@ static const cairo_boilerplate_target_t targets[] = { * tests. XXX: I'd still like to chase these down at some point. * For now just set the svg error tolerance to 1. */ { - "svg11", "svg", NULL, NULL, + "svg11", "svg", ".svg", NULL, CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1, "cairo_svg_surface_create", _cairo_boilerplate_svg11_create_surface, @@ -299,7 +296,7 @@ static const cairo_boilerplate_target_t targets[] = { NULL, NULL, FALSE, TRUE, TRUE }, { - "svg11", "svg", NULL, NULL, + "svg11", "svg", ".svg", NULL, CAIRO_SURFACE_TYPE_RECORDING, CAIRO_CONTENT_COLOR, 1, "cairo_svg_surface_create", _cairo_boilerplate_svg11_create_surface, @@ -312,7 +309,7 @@ static const cairo_boilerplate_target_t targets[] = { NULL, NULL, FALSE, TRUE, TRUE }, { - "svg12", "svg", NULL, NULL, + "svg12", "svg", ".svg", NULL, CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1, "cairo_svg_surface_create", _cairo_boilerplate_svg12_create_surface, @@ -325,7 +322,7 @@ static const cairo_boilerplate_target_t targets[] = { NULL, NULL, FALSE, TRUE, TRUE }, { - "svg12", "svg", NULL, NULL, + "svg12", "svg", ".svg", NULL, CAIRO_SURFACE_TYPE_RECORDING, CAIRO_CONTENT_COLOR, 1, "cairo_svg_surface_create", _cairo_boilerplate_svg12_create_surface, diff --git a/boilerplate/cairo-boilerplate-test-surfaces.c b/boilerplate/cairo-boilerplate-test-surfaces.c index 73f2503..293b77f 100644 --- a/boilerplate/cairo-boilerplate-test-surfaces.c +++ b/boilerplate/cairo-boilerplate-test-surfaces.c @@ -44,7 +44,6 @@ _cairo_boilerplate_test_base_compositor_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -60,7 +59,6 @@ _cairo_boilerplate_test_fallback_compositor_create_surface (const char *name double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -75,7 +73,6 @@ _cairo_boilerplate_test_mask_compositor_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -91,7 +88,6 @@ _cairo_boilerplate_test_traps_compositor_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -106,7 +102,6 @@ _cairo_boilerplate_test_spans_compositor_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -121,7 +116,6 @@ _cairo_boilerplate_test_no_fallback_compositor_create_surface (const char *n double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { if (mode == CAIRO_BOILERPLATE_MODE_TEST) @@ -139,7 +133,6 @@ _cairo_boilerplate_test_no_traps_compositor_create_surface (const char *name double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { if (mode == CAIRO_BOILERPLATE_MODE_TEST) @@ -157,7 +150,6 @@ _cairo_boilerplate_test_no_spans_compositor_create_surface (const char *name double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { if (mode == CAIRO_BOILERPLATE_MODE_TEST) @@ -182,7 +174,6 @@ _cairo_boilerplate_test_paginated_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { test_paginated_closure_t *tpc; diff --git a/boilerplate/cairo-boilerplate-vg.c b/boilerplate/cairo-boilerplate-vg.c index a49ed5d..ee32b3c 100644 --- a/boilerplate/cairo-boilerplate-vg.c +++ b/boilerplate/cairo-boilerplate-vg.c @@ -78,7 +78,6 @@ _cairo_boilerplate_vg_create_surface_glx (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { int rgba_attribs[] = { @@ -207,7 +206,6 @@ _cairo_boilerplate_vg_create_surface_egl (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { int rgba_attribs[] = { diff --git a/boilerplate/cairo-boilerplate-wgl.c b/boilerplate/cairo-boilerplate-wgl.c index 8ae1dcb..9088177 100644 --- a/boilerplate/cairo-boilerplate-wgl.c +++ b/boilerplate/cairo-boilerplate-wgl.c @@ -109,7 +109,6 @@ _cairo_boilerplate_wgl_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { wgl_target_closure_t *wgltc; @@ -146,7 +145,6 @@ _cairo_boilerplate_wgl_for_create_window (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { wgl_target_closure_t *wgltc; diff --git a/boilerplate/cairo-boilerplate-win32-printing.c b/boilerplate/cairo-boilerplate-win32-printing.c index 0e54512..625d52c 100644 --- a/boilerplate/cairo-boilerplate-win32-printing.c +++ b/boilerplate/cairo-boilerplate-win32-printing.c @@ -39,7 +39,6 @@ #if CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE #include -#include #include #include @@ -60,6 +59,35 @@ # define FEATURESETTING_PSLEVEL 0x0002 #endif +static cairo_status_t +_cairo_win32_print_gdi_error (const char *context) +{ + void *lpMsgBuf; + DWORD last_error = GetLastError (); + + if (!FormatMessageW (FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + last_error, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR) &lpMsgBuf, + 0, NULL)) { + fprintf (stderr, "%s: Unknown GDI error", context); + } else { + fprintf (stderr, "%s: %S", context, (wchar_t *)lpMsgBuf); + + LocalFree (lpMsgBuf); + } + + fflush (stderr); + + /* We should switch off of last_status, but we'd either return + * CAIRO_STATUS_NO_MEMORY or CAIRO_STATUS_UNKNOWN_ERROR and there + * is no CAIRO_STATUS_UNKNOWN_ERROR. + */ + return CAIRO_STATUS_NO_MEMORY; +} + static cairo_user_data_key_t win32_closure_key; typedef struct _win32_target_closure { @@ -169,7 +197,6 @@ _cairo_boilerplate_win32_printing_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { win32_target_closure_t *ptc; diff --git a/boilerplate/cairo-boilerplate-win32.c b/boilerplate/cairo-boilerplate-win32.c index f7be663..7469cc7 100644 --- a/boilerplate/cairo-boilerplate-win32.c +++ b/boilerplate/cairo-boilerplate-win32.c @@ -36,7 +36,6 @@ _cairo_boilerplate_win32_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_format_t format; diff --git a/boilerplate/cairo-boilerplate-xcb.c b/boilerplate/cairo-boilerplate-xcb.c index f9810ee..979f5b5 100644 --- a/boilerplate/cairo-boilerplate-xcb.c +++ b/boilerplate/cairo-boilerplate-xcb.c @@ -245,7 +245,6 @@ _cairo_boilerplate_xcb_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xcb_screen_t *root; @@ -394,7 +393,6 @@ _cairo_boilerplate_xcb_create_window (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xcb_target_closure_t *xtc; @@ -471,7 +469,6 @@ _cairo_boilerplate_xcb_create_window_db (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xcb_target_closure_t *xtc; @@ -549,7 +546,6 @@ _cairo_boilerplate_xcb_create_render_0_0 (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xcb_screen_t *root; @@ -651,7 +647,6 @@ _cairo_boilerplate_xcb_create_fallback (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xcb_target_closure_t *xtc; diff --git a/boilerplate/cairo-boilerplate-xlib.c b/boilerplate/cairo-boilerplate-xlib.c index 38c1135..aed075f 100644 --- a/boilerplate/cairo-boilerplate-xlib.c +++ b/boilerplate/cairo-boilerplate-xlib.c @@ -274,13 +274,12 @@ _cairo_boilerplate_xlib_create_similar (cairo_surface_t *other, static cairo_surface_t * _cairo_boilerplate_xlib_create_surface (const char *name, - cairo_content_t content, + cairo_content_t content, double width, double height, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xlib_target_closure_t *xtc; @@ -316,6 +315,63 @@ _cairo_boilerplate_xlib_create_surface (const char *name, } static cairo_surface_t * +_cairo_boilerplate_xlib_render_0_0_create_surface (const char *name, + cairo_content_t content, + double width, + double height, + double max_width, + double max_height, + cairo_boilerplate_mode_t mode, + void **closure) +{ + xlib_target_closure_t *xtc; + Display *dpy; + int screen; + Pixmap pixmap; + cairo_surface_t *surface, *dummy; + + *closure = xtc = xcalloc (1, sizeof (xlib_target_closure_t)); + + width = ceil (width); + if (width < 1) + width = 1; + + height = ceil (height); + if (height < 1) + height = 1; + + xtc->dpy = dpy = XOpenDisplay (NULL); + if (xtc->dpy == NULL) { + free (xtc); + CAIRO_BOILERPLATE_DEBUG (("Failed to open display: %s\n", XDisplayName(0))); + return NULL; + } + + + screen = DefaultScreen (dpy); + pixmap = XCreatePixmap (dpy, DefaultRootWindow (dpy), 1, 1, + DefaultDepth (dpy, screen)); + dummy = cairo_xlib_surface_create (dpy, pixmap, + DefaultVisual (dpy, screen), + 1, 1); + cairo_xlib_device_debug_cap_xrender_version (cairo_surface_get_device (dummy), + 0, 0); + + if (mode == CAIRO_BOILERPLATE_MODE_TEST) + surface = _cairo_boilerplate_xlib_test_create_surface (dpy, content, width, height, xtc); + else /* mode == CAIRO_BOILERPLATE_MODE_PERF */ + surface = _cairo_boilerplate_xlib_perf_create_surface (dpy, content, width, height, xtc); + + cairo_surface_destroy (dummy); + XFreePixmap (dpy, pixmap); + + if (surface == NULL || cairo_surface_status (surface)) + _cairo_boilerplate_xlib_cleanup (xtc); + + return surface; +} + +static cairo_surface_t * _cairo_boilerplate_xlib_window_create_surface (const char *name, cairo_content_t content, double width, @@ -323,13 +379,11 @@ _cairo_boilerplate_xlib_window_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xlib_target_closure_t *xtc; Display *dpy; - Screen *scr; - int screen, x, y; + int screen; XSetWindowAttributes attr; cairo_surface_t *surface; @@ -374,25 +428,9 @@ _cairo_boilerplate_xlib_window_create_surface (const char *name, return NULL; } - /* tile the windows so threads do not overlap */ - scr = XScreenOfDisplay (dpy, screen); - x = 10; y = 15; - if (id-- > 1) do { - x += max_width; - if (x + max_width > WidthOfScreen (scr)) { - x = 10; - y += max_height; - if (y + max_height > HeightOfScreen (scr)) { - XCloseDisplay (dpy); - free (xtc); - return NULL; - } - } - } while (--id); - attr.override_redirect = True; xtc->drawable = XCreateWindow (dpy, DefaultRootWindow (dpy), - x, y, + 0, 0, width, height, 0, DefaultDepth (dpy, screen), InputOutput, @@ -411,49 +449,6 @@ _cairo_boilerplate_xlib_window_create_surface (const char *name, return surface; } - -cairo_status_t -cairo_boilerplate_xlib_surface_disable_render (cairo_surface_t *abstract_surface) -{ -#if 0 - /* The following stunt doesn't work with xlib-xcb because it doesn't use - * cairo_xlib_surface_t for its surfaces. Sadly, there is no sane - * alternative, so we can't disable render with xlib-xcb. - * FIXME: Find an alternative. */ -#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS - cairo_xlib_surface_t *surface = (cairo_xlib_surface_t*) abstract_surface; - - if (cairo_surface_get_type (abstract_surface) != CAIRO_SURFACE_TYPE_XLIB) - return CAIRO_STATUS_SURFACE_TYPE_MISMATCH; - - surface->render_major = surface->render_minor = -1; - surface->xrender_format = NULL; - - /* The content type is forced by _xrender_format_to_content() during - * non-Render surface creation, so repeat the procedure here. */ - surface->base.content = CAIRO_CONTENT_COLOR; - - /* These flags are set based on known bugs and lack of RENDER support */ -#if CAIRO_XLIB_SURFACE_HAS_BUGGY_GRADIENTS - surface->buggy_gradients = TRUE; -#endif -#if CAIRO_XLIB_SURFACE_HAS_BUGGY_PAD_REFLECT - surface->buggy_pad_reflect = TRUE; -#endif -#if CAIRO_XLIB_SURFACE_HAS_BUGGY_REPEAT - surface->buggy_repeat = TRUE; -#endif -#endif -#endif - - return CAIRO_STATUS_SUCCESS; -} -#else -cairo_status_t -cairo_boilerplate_xlib_surface_disable_render (cairo_surface_t *abstract_surface) -{ - return CAIRO_STATUS_SUCCESS; -} #endif @@ -475,15 +470,13 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { xlib_target_closure_t *xtc; Display *dpy; - Screen *scr; - int screen, x, y; + int screen; XSetWindowAttributes attr; - cairo_surface_t *surface; + cairo_surface_t *surface, *dummy; /* We're not yet bothering to support perf mode for the * xlib-fallback surface. */ @@ -526,25 +519,9 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name, return NULL; } - /* tile the windows so threads do not overlap */ - scr = XScreenOfDisplay (dpy, screen); - x = y = 0; - if (id-- > 1) do { - x += max_width; - if (x + max_width > WidthOfScreen (scr)) { - x = 0; - y += max_height; - if (y + max_height > HeightOfScreen (scr)) { - XCloseDisplay (dpy); - free (xtc); - return NULL; - } - } - } while (--id); - attr.override_redirect = True; xtc->drawable = XCreateWindow (dpy, DefaultRootWindow (dpy), - x, y, + 0, 0, width, height, 0, DefaultDepth (dpy, screen), InputOutput, @@ -553,13 +530,18 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name, XMapWindow (dpy, xtc->drawable); xtc->drawable_is_pixmap = FALSE; + dummy = cairo_xlib_surface_create (dpy, xtc->drawable, + DefaultVisual (dpy, screen), + width, height); + cairo_xlib_device_debug_cap_xrender_version (cairo_surface_get_device (dummy), + -1, -1); + surface = cairo_xlib_surface_create (dpy, xtc->drawable, DefaultVisual (dpy, screen), width, height); + cairo_surface_destroy (dummy); if (cairo_surface_status (surface)) _cairo_boilerplate_xlib_cleanup (xtc); - else - cairo_boilerplate_xlib_surface_disable_render (surface); _cairo_boilerplate_xlib_setup_test_surface(surface); @@ -613,12 +595,26 @@ static const cairo_boilerplate_target_t targets[] = { NULL, FALSE, FALSE, FALSE }, + { + "xlib-render-0_0", "mask", NULL, NULL, + CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1, + "cairo_xlib_surface_create", + _cairo_boilerplate_xlib_render_0_0_create_surface, + cairo_surface_create_similar, + NULL, NULL, + _cairo_boilerplate_get_image_surface, + cairo_surface_write_to_png, + _cairo_boilerplate_xlib_cleanup, + _cairo_boilerplate_xlib_synchronize, + NULL, + FALSE, FALSE, FALSE + }, #endif #if CAIRO_HAS_XLIB_SURFACE /* This is a fallback surface which uses xlib fallbacks instead of * the Render extension. */ { - "xlib-fallback", "xlib", NULL, NULL, + "xlib-fallback", "image", NULL, NULL, CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1, "cairo_xlib_surface_create", _cairo_boilerplate_xlib_fallback_create_surface, diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c index 8e252f5..41db8b8 100644 --- a/boilerplate/cairo-boilerplate.c +++ b/boilerplate/cairo-boilerplate.c @@ -132,7 +132,6 @@ _cairo_boilerplate_image_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_format_t format; @@ -188,7 +187,6 @@ _cairo_boilerplate_image16_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { *closure = NULL; @@ -243,7 +241,6 @@ _cairo_boilerplate_recording_create_surface (const char *name, double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure) { cairo_rectangle_t extents; @@ -678,8 +675,6 @@ cairo_boilerplate_get_targets (int *pnum_targets, const cairo_boilerplate_target_t * cairo_boilerplate_get_image_target (cairo_content_t content) { - struct cairo_boilerplate_target_list *list; - if (cairo_boilerplate_targets == NULL) _cairo_boilerplate_register_all (); @@ -791,19 +786,27 @@ any2ppm_daemon_exists (void) FILE * cairo_boilerplate_open_any2ppm (const char *filename, int page, - unsigned int flags) + unsigned int flags, + int (**close_cb) (FILE *)) { char command[4096]; + const char *any2ppm; #if HAS_DAEMON int sk; struct sockaddr_un addr; int len; +#endif + any2ppm = getenv ("ANY2PPM"); + if (any2ppm == NULL) + any2ppm = "./any2ppm"; + +#if HAS_DAEMON if (flags & CAIRO_BOILERPLATE_OPEN_NO_DAEMON) goto POPEN; if (! any2ppm_daemon_exists ()) { - if (system ("./any2ppm") != 0) + if (system (any2ppm) != 0) goto POPEN; } @@ -826,11 +829,14 @@ cairo_boilerplate_open_any2ppm (const char *filename, goto POPEN; } + *close_cb = fclose; return fdopen (sk, "r"); POPEN: #endif - sprintf (command, "./any2ppm %s %d", filename, page); + + *close_cb = pclose; + sprintf (command, "%s %s %d", any2ppm, filename, page); return popen (command, "r"); } @@ -923,10 +929,11 @@ cairo_boilerplate_convert_to_image (const char *filename, FILE *file; unsigned int flags = 0; cairo_surface_t *image; + int (*close_cb) (FILE *); int ret; RETRY: - file = cairo_boilerplate_open_any2ppm (filename, page, flags); + file = cairo_boilerplate_open_any2ppm (filename, page, flags, &close_cb); if (file == NULL) { switch (errno) { case ENOMEM: @@ -937,7 +944,7 @@ cairo_boilerplate_convert_to_image (const char *filename, } image = cairo_boilerplate_image_surface_create_from_ppm_stream (file); - ret = pclose (file); + ret = close_cb (file); /* check for fatal errors from the interpreter */ if (ret) { /* any2pmm should never die... */ cairo_surface_destroy (image); diff --git a/boilerplate/cairo-boilerplate.h b/boilerplate/cairo-boilerplate.h index 0615221..461b98b 100644 --- a/boilerplate/cairo-boilerplate.h +++ b/boilerplate/cairo-boilerplate.h @@ -124,7 +124,6 @@ typedef cairo_surface_t * double max_width, double max_height, cairo_boilerplate_mode_t mode, - int id, void **closure); typedef cairo_surface_t * @@ -218,7 +217,9 @@ enum { FILE * cairo_boilerplate_open_any2ppm (const char *filename, int page, - unsigned int flags); + unsigned int flags, + int (**close_cb) (FILE *)); + cairo_surface_t * cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file); diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..53f31d7 --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,12 @@ +compile +config.guess +config.sub +depcomp +install-sh +ltmain.sh +missing +mkinstalldirs +#Makefile.win32.features +#Makefile.win32.features-h +libtool.m4 +lt*.m4 diff --git a/build/Makefile.am.releasing b/build/Makefile.am.releasing index 3ac479a..b17faab 100644 --- a/build/Makefile.am.releasing +++ b/build/Makefile.am.releasing @@ -38,7 +38,7 @@ MANUAL_VERSIONED = manual-$(VERSION) MANUAL_TAR_FILE = $(MANUAL_VERSIONED).tar.gz MANUAL_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE) -tar_file = $(PACKAGE)-$(VERSION).tar.gz +tar_file = $(PACKAGE)-$(VERSION).tar.xz sha1_file = $(tar_file).sha1 gpg_file = $(sha1_file).asc diff --git a/build/Makefile.win32.common b/build/Makefile.win32.common index e422500..01a38cd 100644 --- a/build/Makefile.win32.common +++ b/build/Makefile.win32.common @@ -3,6 +3,7 @@ default: all # # Edit build/Makefile.win32.features to enable features to build # +include $(top_srcdir)/build/Makefile.win32.inform include $(top_srcdir)/build/Makefile.win32.features include $(top_srcdir)/build/Makefile.win32.features-h @@ -48,28 +49,14 @@ DEFAULT_ARFLAGS = -nologo CAIRO_LDFLAGS = $(DEFAULT_LDFLAGS) $(LDFLAGS) CAIRO_ARFLAGS = $(DEFAULT_ARFLAGS) $(LDFLAGS) -inform: - @echo -ifneq ($(CFG),release) -ifneq ($(CFG),debug) - @echo "Invalid configuration "$(CFG)" specified." - @echo -n "You must specify a configuration when " - @echo "running make, e.g. make CFG=debug" - @echo - @echo -n "Possible choices for configuration are " - @echo "'release' and 'debug'" - @exit 1 -endif -endif - # Some generic rules $(CFG)/%.obj: %.c $(top_srcdir)/src/cairo-features.h - @mkdir -p $(CFG) + @mkdir -p $(CFG)/`dirname $<` @$(CC) $(CAIRO_CFLAGS) -c -Fo"$@" $< $(CFG)/%-static.obj: %.c $(top_srcdir)/src/cairo-features.h - @mkdir -p $(CFG) + @mkdir -p $(CFG)/`dirname $<` @$(CC) $(CAIRO_CFLAGS) -c -DCAIRO_WIN32_STATIC_BUILD=1 -Fo"$@" $< clean: diff --git a/build/Makefile.win32.features b/build/Makefile.win32.features index 650b224..8cb155d 100644 --- a/build/Makefile.win32.features +++ b/build/Makefile.win32.features @@ -19,6 +19,7 @@ CAIRO_HAS_GALLIUM_SURFACE=0 CAIRO_HAS_PNG_FUNCTIONS=1 CAIRO_HAS_GL_SURFACE=0 CAIRO_HAS_GLESV2_SURFACE=0 +CAIRO_HAS_COGL_SURFACE=0 CAIRO_HAS_DIRECTFB_SURFACE=0 CAIRO_HAS_VG_SURFACE=0 CAIRO_HAS_EGL_FUNCTIONS=0 diff --git a/build/Makefile.win32.features-h b/build/Makefile.win32.features-h index 84d65f4..13904cf 100644 --- a/build/Makefile.win32.features-h +++ b/build/Makefile.win32.features-h @@ -62,6 +62,9 @@ endif ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1) @echo "#define CAIRO_HAS_GLESV2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h endif +ifeq ($(CAIRO_HAS_COGL_SURFACE),1) + @echo "#define CAIRO_HAS_COGL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1) @echo "#define CAIRO_HAS_DIRECTFB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h endif diff --git a/build/Makefile.win32.inform b/build/Makefile.win32.inform new file mode 100644 index 0000000..ba11165 --- /dev/null +++ b/build/Makefile.win32.inform @@ -0,0 +1,13 @@ +inform: + @echo +ifneq ($(CFG),release) +ifneq ($(CFG),debug) + @echo "Invalid configuration "$(CFG)" specified." + @echo -n "You must specify a configuration when " + @echo "running make, e.g. make CFG=debug" + @echo + @echo -n "Possible choices for configuration are " + @echo "'release' and 'debug'" + @exit 1 +endif +endif diff --git a/build/configure.ac.features b/build/configure.ac.features index faa762c..e4a2aaf 100644 --- a/build/configure.ac.features +++ b/build/configure.ac.features @@ -388,6 +388,7 @@ AC_DEFUN([CAIRO_REPORT], echo " DirectFB: $use_directfb" echo " OpenVG: $use_vg" echo " DRM: $use_drm" + echo " Cogl: $use_cogl" echo "" echo "The following font backends:" echo " User: yes (always builtin)" diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings index 3eb0104..9b9c742 100644 --- a/build/configure.ac.warnings +++ b/build/configure.ac.warnings @@ -21,6 +21,9 @@ MAYBE_WARN="-Wall -Wextra \ -Wno-missing-field-initializers -Wno-unused-parameter \ -Wno-attributes -Wno-long-long -Winline" +# -Wunused-but-set-variable is too noisy at present +NO_WARN="-Wno-unused-but-set-variable" + dnl Sun Studio 12 likes to rag at us for abusing enums like dnl having cairo_status_t variables hold cairo_int_status_t dnl values. It's bad, we know. Now please be quiet. @@ -29,11 +32,24 @@ MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ dnl We also abuse the warning-flag facility to enable other compiler dnl options. Namely, the following: -MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common -flto" + +dnl -flto working really needs a test link, not just a compile + +safe_MAYBE_WARN="$MAYBE_WARN" +MAYBE_WARN="$MAYBE_WARN -flto" +AC_TRY_LINK([],[ + int main(int argc, char **argv) { return 0; } +],[],[ + MAYBE_WARN="$safe_MAYBE_WARN" +]) + +MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" dnl Also to turn various gcc/glibc-specific preprocessor checks MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" +MAYBE_WARN="$MAYBE_WARN $NO_WARN" + # invalidate cached value if MAYBE_WARN has changed if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then unset cairo_cv_warn_cflags @@ -84,7 +100,7 @@ AC_DEFINE_UNQUOTED([WARN_UNUSED_RESULT], [$cairo_cv_warn_unused_result], dnl check linker flags AC_CACHE_CHECK([how to allow undefined symbols in shared libraries used by test suite], cairo_cv_test_undefined_ldflags, - [CAIRO_CC_TRY_FLAG([-Wl,--allow-shlib-undefined], [], + [CAIRO_CC_TRY_FLAG_SILENT([-Wl,--allow-shlib-undefined], [], [cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined]")]) CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags" AC_SUBST(CAIRO_TEST_UNDEFINED_LDFLAGS) diff --git a/cairo-version.h b/cairo-version.h index da6a305..a64d622 100644 --- a/cairo-version.h +++ b/cairo-version.h @@ -2,7 +2,7 @@ #define CAIRO_VERSION_H #define CAIRO_VERSION_MAJOR 1 -#define CAIRO_VERSION_MINOR 11 +#define CAIRO_VERSION_MINOR 12 #define CAIRO_VERSION_MICRO 3 #endif diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..fd0a609 --- /dev/null +++ b/config.h.in @@ -0,0 +1,387 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* whether memory barriers are needed around atomic operations */ +#undef ATOMIC_OP_NEEDS_MEMORY_BARRIER + +/* Define to 1 if the PDF backend can be tested (need poppler and other + dependencies for pdf2png) */ +#undef CAIRO_CAN_TEST_PDF_SURFACE + +/* Define to 1 if the PS backend can be tested (needs ghostscript) */ +#undef CAIRO_CAN_TEST_PS_SURFACE + +/* Define to 1 if the SVG backend can be tested */ +#undef CAIRO_CAN_TEST_SVG_SURFACE + +/* Define to 1 if the Win32 Printing backend can be tested (needs ghostscript) + */ +#undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE + +/* Define to 1 if dlsym is available */ +#undef CAIRO_HAS_DLSYM + +/* Define to 1 to enable cairo's cairo-script-interpreter feature */ +#undef CAIRO_HAS_INTERPRETER + +/* Define to 1 to enable cairo's pthread feature */ +#undef CAIRO_HAS_PTHREAD + +/* Define to 1 if we have full pthread support */ +#undef CAIRO_HAS_REAL_PTHREAD + +/* Define to 1 if libspectre is available */ +#undef CAIRO_HAS_SPECTRE + +/* Define to 1 to enable cairo's symbol-lookup feature */ +#undef CAIRO_HAS_SYMBOL_LOOKUP + +/* Define to 1 to enable cairo's test surfaces feature */ +#undef CAIRO_HAS_TEST_SURFACES + +/* Define to 1 to enable cairo's cairo-trace feature */ +#undef CAIRO_HAS_TRACE + +/* Define to 1 to disable certain code paths that rely heavily on double + precision floating-point calculation */ +#undef DISABLE_SOME_FLOATING_POINT + +/* Define to 1 if your system stores words within floats with the most + significant word first */ +#undef FLOAT_WORDS_BIGENDIAN + +/* Define to 1 if you have the `alarm' function. */ +#undef HAVE_ALARM + +/* Define to 1 if you have the binutils development files installed */ +#undef HAVE_BFD + +/* Define to 1 if your compiler supports the __builtin_return_address() + intrinsic. */ +#undef HAVE_BUILTIN_RETURN_ADDRESS + +/* Define to 1 if you have the header file. */ +#undef HAVE_BYTESWAP_H + +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 if you have the `ctime_r' function. */ +#undef HAVE_CTIME_R + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the `drand48' function. */ +#undef HAVE_DRAND48 + +/* Define to 1 if you have the `FcFini' function. */ +#undef HAVE_FCFINI + +/* Define to 1 if you have the `FcInit' function. */ +#undef HAVE_FCINIT + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `feclearexcept' function. */ +#undef HAVE_FECLEAREXCEPT + +/* Define to 1 if you have the `fedisableexcept' function. */ +#undef HAVE_FEDISABLEEXCEPT + +/* Define to 1 if you have the `feenableexcept' function. */ +#undef HAVE_FEENABLEEXCEPT + +/* Define to 1 if you have the header file. */ +#undef HAVE_FENV_H + +/* Define to 1 if you have the `flockfile' function. */ +#undef HAVE_FLOCKFILE + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* FT_Bitmap_Size structure includes y_ppem field */ +#undef HAVE_FT_BITMAP_SIZE_Y_PPEM + +/* Define to 1 if you have the `FT_GlyphSlot_Embolden' function. */ +#undef HAVE_FT_GLYPHSLOT_EMBOLDEN + +/* Define to 1 if you have the `FT_GlyphSlot_Oblique' function. */ +#undef HAVE_FT_GLYPHSLOT_OBLIQUE + +/* Define to 1 if you have the `FT_Library_SetLcdFilter' function. */ +#undef HAVE_FT_LIBRARY_SETLCDFILTER + +/* Define to 1 if you have the `FT_Load_Sfnt_Table' function. */ +#undef HAVE_FT_LOAD_SFNT_TABLE + +/* Define to 1 if you have the `funlockfile' function. */ +#undef HAVE_FUNLOCKFILE + +/* Whether you have gcov */ +#undef HAVE_GCOV + +/* Define to 1 if you have the `getline' function. */ +#undef HAVE_GETLINE + +/* Enable if your compiler supports the Intel __sync_* atomic primitives */ +#undef HAVE_INTEL_ATOMIC_PRIMITIVES + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_IO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBGEN_H + +/* Define to 1 if you have the `rt' library (-lrt). */ +#undef HAVE_LIBRT + +/* Enable if you have libatomic-ops-dev installed */ +#undef HAVE_LIB_ATOMIC_OPS + +/* Define to 1 if you have the `link' function. */ +#undef HAVE_LINK + +/* Define to 1 if you have the Valgrind lockdep tool */ +#undef HAVE_LOCKDEP + +/* Define to 1 if you have the Valgrind memfault tool */ +#undef HAVE_MEMFAULT + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to non-zero if your system has mkdir, and to 2 if your version of + mkdir requires a mode parameter */ +#undef HAVE_MKDIR + +/* Define to 1 if you have the `mmap' function. */ +#undef HAVE_MMAP + +/* Enable if you have MacOS X atomic operations */ +#undef HAVE_OS_ATOMIC_OPS + +/* Define to 1 if you have the `poppler_page_render' function. */ +#undef HAVE_POPPLER_PAGE_RENDER + +/* Define to 1 if you have the `raise' function. */ +#undef HAVE_RAISE + +/* Define to 1 if you have the `rsvg_pixbuf_from_file' function. */ +#undef HAVE_RSVG_PIXBUF_FROM_FILE + +/* Define to 1 if you have the `sched_getaffinity' function. */ +#undef HAVE_SCHED_GETAFFINITY + +/* Define to 1 if you have the header file. */ +#undef HAVE_SCHED_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SETJMP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SIGNAL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strndup' function. */ +#undef HAVE_STRNDUP + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_INT_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_MMAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_POLL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_TIME_H + +/* Define to 1 if the system has the type `uint128_t'. */ +#undef HAVE_UINT128_T + +/* Define to 1 if the system has the type `uint64_t'. */ +#undef HAVE_UINT64_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have Valgrind */ +#undef HAVE_VALGRIND + +/* Define to 1 if you have the `waitpid' function. */ +#undef HAVE_WAITPID + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINDOWS_H + +/* Define to 1 if you have the `XRenderCreateConicalGradient' function. */ +#undef HAVE_XRENDERCREATECONICALGRADIENT + +/* Define to 1 if you have the `XRenderCreateLinearGradient' function. */ +#undef HAVE_XRENDERCREATELINEARGRADIENT + +/* Define to 1 if you have the `XRenderCreateRadialGradient' function. */ +#undef HAVE_XRENDERCREATERADIALGRADIENT + +/* Define to 1 if you have zlib available */ +#undef HAVE_ZLIB + +/* Define to 1 if the system has the type `__uint128_t'. */ +#undef HAVE___UINT128_T + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Shared library file extension */ +#undef SHARED_LIB_EXT + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `long long', as computed by sizeof. */ +#undef SIZEOF_LONG_LONG + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of `void *', as computed by sizeof. */ +#undef SIZEOF_VOID_P + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Define to the value your compiler uses to support the warn-unused-result + attribute */ +#undef WARN_UNUSED_RESULT + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + + +/* Deal with multiple architecture compiles on Mac OS X */ +#ifdef __APPLE_CC__ +#ifdef __BIG_ENDIAN__ +#define WORDS_BIGENDIAN 1 +#define FLOAT_WORDS_BIGENDIAN 1 +#else +#undef WORDS_BIGENDIAN +#undef FLOAT_WORDS_BIGENDIAN +#endif +#endif + + +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif diff --git a/configure b/configure new file mode 100755 index 0000000..b7e9d84 --- /dev/null +++ b/configure @@ -0,0 +1,37843 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.67 for cairo 1.12.3. +# +# Report bugs to . +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugs.freedesktop.org/enter_bug.cgi?product=cairo +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='cairo' +PACKAGE_TARNAME='cairo' +PACKAGE_VERSION='1.12.3' +PACKAGE_STRING='cairo 1.12.3' +PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=cairo' +PACKAGE_URL='http://cairographics.org/' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_unique_file="src/cairo.h" +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_GTK_FALSE +HAVE_GTK_TRUE +gtk_LIBS +gtk_CFLAGS +BUILD_CXX_FALSE +BUILD_CXX_TRUE +DISABLE_SOME_FLOATING_POINT_FALSE +DISABLE_SOME_FLOATING_POINT_TRUE +shm_LIBS +BUILD_SPHINX_FALSE +BUILD_SPHINX_TRUE +glib_LIBS +glib_CFLAGS +CAIRO_HAS_SYMBOL_LOOKUP_FALSE +CAIRO_HAS_SYMBOL_LOOKUP_TRUE +BFD_LIBS +CAIRO_HAS_INTERPRETER_FALSE +CAIRO_HAS_INTERPRETER_TRUE +CAIRO_HAS_TRACE_FALSE +CAIRO_HAS_TRACE_TRUE +SHLIB_EXT +BUILD_ANY2PPM_FALSE +BUILD_ANY2PPM_TRUE +CAIRO_TEST_MODE +CAIRO_HAS_GOBJECT_FUNCTIONS_FALSE +CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE +GOBJECT_LIBS +GOBJECT_CFLAGS +real_pthread_LIBS +real_pthread_CFLAGS +pthread_LIBS +pthread_CFLAGS +HAVE_PTHREAD_FALSE +HAVE_PTHREAD_TRUE +HAVE_REAL_PTHREAD_FALSE +HAVE_REAL_PTHREAD_TRUE +CAIRO_HAS_PTHREAD_FALSE +CAIRO_HAS_PTHREAD_TRUE +CAIRO_HAS_XML_SURFACE_FALSE +CAIRO_HAS_XML_SURFACE_TRUE +CAIRO_HAS_TEE_SURFACE_FALSE +CAIRO_HAS_TEE_SURFACE_TRUE +pixman_LIBS +pixman_CFLAGS +CAIRO_HAS_TEST_SURFACES_FALSE +CAIRO_HAS_TEST_SURFACES_TRUE +CAIRO_CAN_TEST_SVG_SURFACE_FALSE +CAIRO_CAN_TEST_SVG_SURFACE_TRUE +LIBRSVG_LIBS +LIBRSVG_CFLAGS +CAIRO_HAS_SVG_SURFACE_FALSE +CAIRO_HAS_SVG_SURFACE_TRUE +CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE +CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE +CAIRO_CAN_TEST_PDF_SURFACE_FALSE +CAIRO_CAN_TEST_PDF_SURFACE_TRUE +POPPLER_LIBS +POPPLER_CFLAGS +CAIRO_HAS_PDF_SURFACE_FALSE +CAIRO_HAS_PDF_SURFACE_TRUE +CAIRO_HAS_SPECTRE_FALSE +CAIRO_HAS_SPECTRE_TRUE +CAIRO_CAN_TEST_PS_SURFACE_FALSE +CAIRO_CAN_TEST_PS_SURFACE_TRUE +LIBSPECTRE_LIBS +LIBSPECTRE_CFLAGS +CAIRO_HAS_PS_SURFACE_FALSE +CAIRO_HAS_PS_SURFACE_TRUE +CAIRO_HAS_FC_FONT_FALSE +CAIRO_HAS_FC_FONT_TRUE +FONTCONFIG_LIBS +FONTCONFIG_CFLAGS +CAIRO_HAS_FT_FONT_FALSE +CAIRO_HAS_FT_FONT_TRUE +FREETYPE_CONFIG +FREETYPE_LIBS +FREETYPE_CFLAGS +CAIRO_HAS_SCRIPT_SURFACE_FALSE +CAIRO_HAS_SCRIPT_SURFACE_TRUE +CAIRO_HAS_WGL_FUNCTIONS_FALSE +CAIRO_HAS_WGL_FUNCTIONS_TRUE +CAIRO_HAS_GLX_FUNCTIONS_FALSE +CAIRO_HAS_GLX_FUNCTIONS_TRUE +CAIRO_HAS_EGL_FUNCTIONS_FALSE +CAIRO_HAS_EGL_FUNCTIONS_TRUE +egl_LIBS +egl_CFLAGS +CAIRO_HAS_VG_SURFACE_FALSE +CAIRO_HAS_VG_SURFACE_TRUE +CAIRO_HAS_DIRECTFB_SURFACE_FALSE +CAIRO_HAS_DIRECTFB_SURFACE_TRUE +directfb_LIBS +directfb_CFLAGS +CAIRO_HAS_COGL_SURFACE_FALSE +CAIRO_HAS_COGL_SURFACE_TRUE +cogl_LIBS +cogl_CFLAGS +CAIRO_HAS_GLESV2_SURFACE_FALSE +CAIRO_HAS_GLESV2_SURFACE_TRUE +glesv2_LIBS +glesv2_CFLAGS +CAIRO_HAS_GL_SURFACE_FALSE +CAIRO_HAS_GL_SURFACE_TRUE +gl_LIBS +gl_CFLAGS +CAIRO_HAS_PNG_FUNCTIONS_FALSE +CAIRO_HAS_PNG_FUNCTIONS_TRUE +png_LIBS +png_CFLAGS +png_REQUIRES +CAIRO_HAS_GALLIUM_SURFACE_FALSE +CAIRO_HAS_GALLIUM_SURFACE_TRUE +gallium_DIR +mesa_DIR +CAIRO_HAS_DRM_SURFACE_FALSE +CAIRO_HAS_DRM_SURFACE_TRUE +drm_LIBS +drm_CFLAGS +CAIRO_HAS_BEOS_SURFACE_FALSE +CAIRO_HAS_BEOS_SURFACE_TRUE +CAIRO_HAS_OS2_SURFACE_FALSE +CAIRO_HAS_OS2_SURFACE_TRUE +CAIRO_HAS_SKIA_SURFACE_FALSE +CAIRO_HAS_SKIA_SURFACE_TRUE +skia_DIR +CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_FALSE +CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE +GS +CAIRO_HAS_WIN32_FONT_FALSE +CAIRO_HAS_WIN32_FONT_TRUE +CAIRO_HAS_WIN32_SURFACE_FALSE +CAIRO_HAS_WIN32_SURFACE_TRUE +CAIRO_HAS_QUARTZ_IMAGE_SURFACE_FALSE +CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE +CAIRO_HAS_QUARTZ_FONT_FALSE +CAIRO_HAS_QUARTZ_FONT_TRUE +CAIRO_HAS_QUARTZ_SURFACE_FALSE +CAIRO_HAS_QUARTZ_SURFACE_TRUE +CAIRO_HAS_QT_SURFACE_FALSE +CAIRO_HAS_QT_SURFACE_TRUE +qt_LIBS +qt_CFLAGS +CAIRO_HAS_XCB_SHM_FUNCTIONS_FALSE +CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE +xcb_shm_LIBS +xcb_shm_CFLAGS +CAIRO_HAS_XLIB_XCB_FUNCTIONS_FALSE +CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE +xlib_xcb_LIBS +xlib_xcb_CFLAGS +CAIRO_HAS_XCB_SURFACE_FALSE +CAIRO_HAS_XCB_SURFACE_TRUE +xcb_LIBS +xcb_CFLAGS +CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE +CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE +xlib_xrender_LIBS +xlib_xrender_CFLAGS +CAIRO_HAS_XLIB_SURFACE_FALSE +CAIRO_HAS_XLIB_SURFACE_TRUE +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF +xlib_LIBS +xlib_CFLAGS +CAIRO_HAS_DLSYM_FALSE +CAIRO_HAS_DLSYM_TRUE +CAIRO_HAS_DL_FALSE +CAIRO_HAS_DL_TRUE +VALGRIND_LIBS +VALGRIND_CFLAGS +CAIRO_HAS_LCOV_FALSE +CAIRO_HAS_LCOV_TRUE +LTP_GENHTML +LTP +SHTOOL +CAIROBOILERPLATE_LIBS +SHM_LIBS +HAVE_SHM_FALSE +HAVE_SHM_TRUE +LIBM +OS_WIN32_FALSE +OS_WIN32_TRUE +CROSS_COMPILING_FALSE +CROSS_COMPILING_TRUE +CAIRO_TEST_UNDEFINED_LDFLAGS +CAIRO_NONPKGCONFIG_LIBS +CAIRO_LIBS +CAIRO_NONPKGCONFIG_CFLAGS +CAIRO_LDFLAGS +CAIRO_CFLAGS +CAIRO_REQUIRES +PKGCONFIG_REQUIRES +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXXFLAGS +CXX +XARGS +FIND +CAIRO_LIBTOOL_VERSION_INFO +CAIRO_RELEASE_STATUS +CAIRO_VERSION_SONUM +CAIRO_VERSION_MICRO +CAIRO_VERSION_MINOR +CAIRO_VERSION_MAJOR +GTK_DOC_USE_REBASE_FALSE +GTK_DOC_USE_REBASE_TRUE +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +GTK_DOC_BUILD_PDF_FALSE +GTK_DOC_BUILD_PDF_TRUE +GTK_DOC_BUILD_HTML_FALSE +GTK_DOC_BUILD_HTML_TRUE +ENABLE_GTK_DOC_FALSE +ENABLE_GTK_DOC_TRUE +PKG_CONFIG +HTML_DIR +GTKDOC_MKPDF +GTKDOC_REBASE +GTKDOC_CHECK +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +OBJDUMP +DLLTOOL +AS +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +EGREP +GREP +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_dependency_tracking +enable_silent_rules +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +with_html_dir +enable_gtk_doc +enable_gtk_doc_html +enable_gtk_doc_pdf +enable_largefile +enable_atomic +enable_gcov +enable_valgrind +enable_xlib +with_x +enable_xlib_xrender +enable_xcb +enable_xlib_xcb +enable_xcb_shm +enable_qt +enable_quartz +enable_quartz_font +enable_quartz_image +enable_win32 +enable_win32_font +enable_skia +with_skia +with_skia_bulid +enable_os2 +enable_beos +enable_drm +enable_gallium +with_gallium +enable_png +enable_gl +enable_glesv2 +enable_cogl +enable_directfb +enable_vg +enable_egl +enable_glx +enable_wgl +enable_script +enable_ft +enable_fc +enable_ps +enable_pdf +enable_svg +enable_test_surfaces +enable_tee +enable_xml +enable_pthread +enable_gobject +enable_full_testing +enable_trace +enable_interpreter +enable_symbol_lookup +enable_some_floating_point +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +CXX +CXXFLAGS +CCC +CXXCPP +VALGRIND_CFLAGS +VALGRIND_LIBS +xlib_CFLAGS +xlib_LIBS +XMKMF +xlib_xrender_CFLAGS +xlib_xrender_LIBS +xcb_CFLAGS +xcb_LIBS +xlib_xcb_CFLAGS +xlib_xcb_LIBS +xcb_shm_CFLAGS +xcb_shm_LIBS +qt_CFLAGS +qt_LIBS +drm_CFLAGS +drm_LIBS +png_REQUIRES +png_CFLAGS +png_LIBS +gl_CFLAGS +gl_LIBS +glesv2_CFLAGS +glesv2_LIBS +cogl_CFLAGS +cogl_LIBS +directfb_CFLAGS +directfb_LIBS +egl_CFLAGS +egl_LIBS +FREETYPE_CFLAGS +FREETYPE_LIBS +FONTCONFIG_CFLAGS +FONTCONFIG_LIBS +LIBSPECTRE_CFLAGS +LIBSPECTRE_LIBS +POPPLER_CFLAGS +POPPLER_LIBS +LIBRSVG_CFLAGS +LIBRSVG_LIBS +pixman_CFLAGS +pixman_LIBS +GOBJECT_CFLAGS +GOBJECT_LIBS +glib_CFLAGS +glib_LIBS +gtk_CFLAGS +gtk_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures cairo 1.12.3 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/cairo] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of cairo 1.12.3:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gtk-doc-html build documentation in html format [[default=yes]] + --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --disable-largefile omit support for large files + --disable-atomic disable use of native atomic operations + --enable-gcov Enable gcov + --disable-valgrind Disable valgrind support + --enable-xlib=[no/auto/yes] + Enable cairo's Xlib surface backend feature + [default=auto] + --enable-xlib-xrender=[no/auto/yes] + Enable cairo's Xlib Xrender surface backend feature + [default=auto] + --enable-xcb=[no/auto/yes] + Enable cairo's XCB surface backend feature + [default=auto] + --enable-xlib-xcb=[no/auto/yes] + Enable cairo's Xlib/XCB functions feature + [default=no] + --enable-xcb-shm=[no/auto/yes] + Enable cairo's XCB/SHM functions feature + [default=auto] + --enable-qt=[no/auto/yes] + Enable cairo's Qt surface backend feature + [default=no] + --enable-quartz=[no/auto/yes] + Enable cairo's Quartz surface backend feature + [default=auto] + --enable-quartz-font=[no/auto/yes] + Enable cairo's Quartz font backend feature + [default=auto] + --enable-quartz-image=[no/auto/yes] + Enable cairo's Quartz Image surface backend feature + [default=no] + --enable-win32=[no/auto/yes] + Enable cairo's Microsoft Windows surface backend + feature [default=auto] + --enable-win32-font=[no/auto/yes] + Enable cairo's Microsoft Windows font backend + feature [default=auto] + --enable-skia=[no/auto/yes] + Enable cairo's Skia surface backend feature + [default=no] + --enable-os2=[no/auto/yes] + Enable cairo's OS/2 surface backend feature + [default=no] + --enable-beos=[no/auto/yes] + Enable cairo's BeOS/Zeta surface backend feature + [default=no] + --enable-drm=[no/auto/yes] + Enable cairo's DRM surface backend feature + [default=no] + --enable-gallium=[no/auto/yes] + Enable cairo's Gallium3D surface backend feature + [default=no] + --enable-png=[no/auto/yes] + Enable cairo's PNG functions feature [default=yes] + --enable-gl=[no/auto/yes] + Enable cairo's OpenGL surface backend feature + [default=no] + --enable-glesv2=[no/auto/yes] + Enable cairo's OpenGLESv2 surface backend feature + [default=no] + --enable-cogl=[no/auto/yes] + Enable cairo's Cogl surface backend feature + [default=no] + --enable-directfb=[no/auto/yes] + Enable cairo's directfb surface backend feature + [default=no] + --enable-vg=[no/auto/yes] + Enable cairo's OpenVG surface backend feature + [default=no] + --enable-egl=[no/auto/yes] + Enable cairo's EGL functions feature [default=auto] + --enable-glx=[no/auto/yes] + Enable cairo's GLX functions feature [default=auto] + --enable-wgl=[no/auto/yes] + Enable cairo's WGL functions feature [default=auto] + --enable-script=[no/auto/yes] + Enable cairo's script surface backend feature + [default=yes] + --enable-ft=[no/auto/yes] + Enable cairo's FreeType font backend feature + [default=auto] + --enable-fc=[no/auto/yes] + Enable cairo's Fontconfig font backend feature + [default=auto] + --enable-ps=[no/auto/yes] + Enable cairo's PostScript surface backend feature + [default=yes] + --enable-pdf=[no/auto/yes] + Enable cairo's PDF surface backend feature + [default=yes] + --enable-svg=[no/auto/yes] + Enable cairo's SVG surface backend feature + [default=yes] + --enable-test-surfaces=[no/auto/yes] + Enable cairo's test surfaces feature [default=no] + --enable-tee=[no/auto/yes] + Enable cairo's tee surface backend feature + [default=no] + --enable-xml=[no/auto/yes] + Enable cairo's xml surface backend feature + [default=no] + --enable-pthread=[no/auto/yes] + Enable cairo's pthread feature [default=auto] + --enable-gobject=[no/auto/yes] + Enable cairo's gobject functions feature + [default=auto] + --enable-full-testing Sets the test suite to perform full testing by + default, which will dramatically slow down make + check, but is a *requirement* before release. + --enable-trace=[no/auto/yes] + Enable cairo's cairo-trace feature [default=auto] + --enable-interpreter=[no/auto/yes] + Enable cairo's cairo-script-interpreter feature + [default=yes] + --enable-symbol-lookup=[no/auto/yes] + Enable cairo's symbol-lookup feature [default=auto] + --disable-some-floating-point + Disable certain code paths that rely heavily on + double precision floating-point calculation. This + option can improve performance on systems without a + double precision floating-point unit, but might + degrade performance on those that do. + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-html-dir=PATH path to installed docs + --with-x use the X Window System + --with-skia=/path/to/skia + directory to find compiled skia sources + --with-skia-build=(Release|Debug) + build of skia to link with, default is Release + + --with-gallium=/path/to/mesa + directory to find gallium enabled mesa + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + VALGRIND_CFLAGS + C compiler flags for VALGRIND, overriding pkg-config + VALGRIND_LIBS + linker flags for VALGRIND, overriding pkg-config + xlib_CFLAGS C compiler flags for xlib, overriding pkg-config + xlib_LIBS linker flags for xlib, overriding pkg-config + XMKMF Path to xmkmf, Makefile generator for X Window System + xlib_xrender_CFLAGS + C compiler flags for xlib_xrender, overriding pkg-config + xlib_xrender_LIBS + linker flags for xlib_xrender, overriding pkg-config + xcb_CFLAGS C compiler flags for xcb, overriding pkg-config + xcb_LIBS linker flags for xcb, overriding pkg-config + xlib_xcb_CFLAGS + C compiler flags for xlib_xcb, overriding pkg-config + xlib_xcb_LIBS + linker flags for xlib_xcb, overriding pkg-config + xcb_shm_CFLAGS + C compiler flags for xcb_shm, overriding pkg-config + xcb_shm_LIBS + linker flags for xcb_shm, overriding pkg-config + qt_CFLAGS C compiler flags for qt, overriding pkg-config + qt_LIBS linker flags for qt, overriding pkg-config + drm_CFLAGS C compiler flags for drm, overriding pkg-config + drm_LIBS linker flags for drm, overriding pkg-config + png_REQUIRES + module name for libpng to search for using pkg-config + png_CFLAGS C compiler flags for png, overriding pkg-config + png_LIBS linker flags for png, overriding pkg-config + gl_CFLAGS C compiler flags for gl, overriding pkg-config + gl_LIBS linker flags for gl, overriding pkg-config + glesv2_CFLAGS + C compiler flags for glesv2, overriding pkg-config + glesv2_LIBS linker flags for glesv2, overriding pkg-config + cogl_CFLAGS C compiler flags for cogl, overriding pkg-config + cogl_LIBS linker flags for cogl, overriding pkg-config + directfb_CFLAGS + C compiler flags for directfb, overriding pkg-config + directfb_LIBS + linker flags for directfb, overriding pkg-config + egl_CFLAGS C compiler flags for egl, overriding pkg-config + egl_LIBS linker flags for egl, overriding pkg-config + FREETYPE_CFLAGS + C compiler flags for FREETYPE, overriding pkg-config + FREETYPE_LIBS + linker flags for FREETYPE, overriding pkg-config + FONTCONFIG_CFLAGS + C compiler flags for FONTCONFIG, overriding pkg-config + FONTCONFIG_LIBS + linker flags for FONTCONFIG, overriding pkg-config + LIBSPECTRE_CFLAGS + C compiler flags for LIBSPECTRE, overriding pkg-config + LIBSPECTRE_LIBS + linker flags for LIBSPECTRE, overriding pkg-config + POPPLER_CFLAGS + C compiler flags for POPPLER, overriding pkg-config + POPPLER_LIBS + linker flags for POPPLER, overriding pkg-config + LIBRSVG_CFLAGS + C compiler flags for LIBRSVG, overriding pkg-config + LIBRSVG_LIBS + linker flags for LIBRSVG, overriding pkg-config + pixman_CFLAGS + C compiler flags for pixman, overriding pkg-config + pixman_LIBS linker flags for pixman, overriding pkg-config + GOBJECT_CFLAGS + C compiler flags for GOBJECT, overriding pkg-config + GOBJECT_LIBS + linker flags for GOBJECT, overriding pkg-config + glib_CFLAGS C compiler flags for glib, overriding pkg-config + glib_LIBS linker flags for glib, overriding pkg-config + gtk_CFLAGS C compiler flags for gtk, overriding pkg-config + gtk_LIBS linker flags for gtk, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +cairo home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +cairo configure 1.12.3 +generated by GNU Autoconf 2.67 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval "test \"\${$3+set}\"" = set; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ---------------------------------------------------------------------- ## +## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=cairo ## +## ---------------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_func + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_type + +# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +# ---------------------------------------------------- +# Tries to find if the field MEMBER exists in type AGGR, after including +# INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +$as_echo_n "checking for $2.$3... " >&6; } +if eval "test \"\${$4+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main () +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$4=yes" +else + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$4 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_member +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by cairo $as_me 1.12.3, which was +generated by GNU Autoconf 2.67. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5 ; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in build "$srcdir"/build; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build \"$srcdir\"/build" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5 ; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5 ; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5 ; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5 ; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5 ; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = x""yes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "#define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test "${ac_cv_safe_to_define___extensions__+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + + +ac_config_headers="$ac_config_headers config.h" + + +am__api_version='1.11' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='cairo' + VERSION='1.12.3' + + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' + + +# Initialize libtool + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6b' +macro_revision='1.3017' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:5774: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:5777: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:5780: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 6982 "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8542: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8546: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8881: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8885: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8986: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:8990: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9041: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:9045: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void) {} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11425 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11521 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +# Api documentation + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi + + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_CHECK in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + for ac_prog in gtkdoc-rebase +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTKDOC_REBASE+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_REBASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE +if test -n "$GTKDOC_REBASE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 +$as_echo "$GTKDOC_REBASE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$GTKDOC_REBASE" && break +done +test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" + + # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. +set dummy gtkdoc-mkpdf; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTKDOC_MKPDF+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_MKPDF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF +if test -n "$GTKDOC_MKPDF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 +$as_echo "$GTKDOC_MKPDF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then : + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' +fi + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then : + enableval=$enable_gtk_doc; +else + enable_gtk_doc=no +fi + + + if test x$enable_gtk_doc = xyes; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.15\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.15") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + : +else + as_fn_error $? "You need to have gtk-doc >= 1.15 installed to build $PACKAGE_NAME" "$LINENO" 5 +fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + # Check whether --enable-gtk-doc-html was given. +if test "${enable_gtk_doc_html+set}" = set; then : + enableval=$enable_gtk_doc_html; +else + enable_gtk_doc_html=yes +fi + + # Check whether --enable-gtk-doc-pdf was given. +if test "${enable_gtk_doc_pdf+set}" = set; then : + enableval=$enable_gtk_doc_pdf; +else + enable_gtk_doc_pdf=no +fi + + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc_html = xyes; then + GTK_DOC_BUILD_HTML_TRUE= + GTK_DOC_BUILD_HTML_FALSE='#' +else + GTK_DOC_BUILD_HTML_TRUE='#' + GTK_DOC_BUILD_HTML_FALSE= +fi + + if test x$enable_gtk_doc_pdf = xyes; then + GTK_DOC_BUILD_PDF_TRUE= + GTK_DOC_BUILD_PDF_FALSE='#' +else + GTK_DOC_BUILD_PDF_TRUE='#' + GTK_DOC_BUILD_PDF_FALSE= +fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + if test -n "$GTKDOC_REBASE"; then + GTK_DOC_USE_REBASE_TRUE= + GTK_DOC_USE_REBASE_FALSE='#' +else + GTK_DOC_USE_REBASE_TRUE='#' + GTK_DOC_USE_REBASE_FALSE= +fi + + + +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + break +fi +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +$as_echo "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +$as_echo "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -rf conftest* + fi +fi + + + + + + + + + + + + + + +CAIRO_VERSION_MAJOR=1 +CAIRO_VERSION_MINOR=12 +CAIRO_VERSION_MICRO=3 +CAIRO_VERSION_SONUM=2 +CAIRO_RELEASE_STATUS=git +CAIRO_LIBTOOL_VERSION_INFO=11202:3:11200 + + + + + + + +# Extract the first word of "find", so it can be a program name with args. +set dummy find; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_FIND+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $FIND in + [\\/]* | ?:[\\/]*) + ac_cv_path_FIND="$FIND" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +FIND=$ac_cv_path_FIND +if test -n "$FIND"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 +$as_echo "$FIND" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "xargs", so it can be a program name with args. +set dummy xargs; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XARGS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $XARGS in + [\\/]* | ?:[\\/]*) + ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XARGS=$ac_cv_path_XARGS +if test -n "$XARGS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 +$as_echo "$XARGS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5 ; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +_lt_caught_CXX_error=yes; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5]* | *pgcpp\ [1-5]*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_CXX" >&6; } + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:15735: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:15739: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:15834: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:15838: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:15886: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:15890: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 +$as_echo "$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "x$CC" != xcc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; } +fi +set dummy $CC; ac_cc=`$as_echo "$2" | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if test "${ac_cv_c_inline+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi +if test "x$PKG_CONFIG" = x; then + as_fn_error $? "pkg-config >= $PKGCONFIG_REQUIRED required but not found (http://pkgconfig.freedesktop.org/)" "$LINENO" 5 +fi + +case `$PKG_CONFIG --version` in +0.?|0.?.?|0.1[0-7]|0.1[0-7].?) PKGCONFIG_REQUIRES="Requires"; ;; +*) PKGCONFIG_REQUIRES="Requires.private"; ;; +esac + + + + + + + + + + + + + + + + + + + CAIRO_MAKEFILE___WIN32='# Generated by configure. Modify to customize. +' + + ac_config_commands="$ac_config_commands $srcdir/build/Makefile.win32.features" + + + + + CAIRO_MAKEFILE_cairo_AMAKE='# Generated by configure. Do not edit. +' + + ac_config_commands="$ac_config_commands $srcdir/src/Makefile.am.features" + + + CAIRO_MAKEFILE_cairo_WIN32='# Generated by configure. Do not edit. +' + + ac_config_commands="$ac_config_commands $srcdir/src/Makefile.win32.features" + + + + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE='# Generated by configure. Do not edit. +' + + ac_config_commands="$ac_config_commands $srcdir/boilerplate/Makefile.am.features" + + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32='# Generated by configure. Do not edit. +' + + ac_config_commands="$ac_config_commands $srcdir/boilerplate/Makefile.win32.features" + + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'include $(top_srcdir)/src/Makefile.sources +' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(top_srcdir),) +include Makefile.sources +else +include $(top_srcdir)/src/Makefile.sources +endif +' + + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'include $(top_srcdir)/boilerplate/Makefile.sources +' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(top_srcdir),) +include Makefile.sources +else +include $(top_srcdir)/boilerplate/Makefile.sources +endif +' + + + + cr_make_tmp='supported_cairo_headers = $(cairo_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + cr_make_tmp='supported_cairo_boilerplate_headers = $(cairo_boilerplate_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='unsupported_cairo_headers =' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + cr_make_tmp='unsupported_cairo_boilerplate_headers =' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers = $(cairo_headers) +all_cairo_private = $(cairo_private) +all_cairo_cxx_sources = $(cairo_cxx_sources) +all_cairo_sources = $(cairo_sources) +' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + cr_make_tmp='all_cairo_boilerplate_headers = $(cairo_boilerplate_headers) +all_cairo_boilerplate_private = $(cairo_boilerplate_private) +all_cairo_boilerplate_cxx_sources = $(cairo_boilerplate_cxx_sources) +all_cairo_boilerplate_sources = $(cairo_boilerplate_sources) +' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers = $(cairo_headers) +enabled_cairo_private = $(cairo_private) +enabled_cairo_cxx_sources = $(cairo_cxx_sources) +enabled_cairo_sources = $(cairo_sources) +' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + cr_make_tmp='enabled_cairo_boilerplate_headers = $(cairo_boilerplate_headers) +enabled_cairo_boilerplate_private = $(cairo_boilerplate_private) +enabled_cairo_boilerplate_cxx_sources = $(cairo_boilerplate_cxx_sources) +enabled_cairo_boilerplate_sources = $(cairo_boilerplate_sources) +' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + +ac_config_files="$ac_config_files src/cairo.pc" +ac_config_files="$ac_config_files cairo-uninstalled.pc:src/cairo-uninstalled.pc.in" + + CAIRO_REQUIRES="" + CAIRO_CFLAGS="" +CAIRO_NONPKGCONFIG_CFLAGS="" + CAIRO_LIBS="$LIBS" +CAIRO_NONPKGCONFIG_LIBS="$LIBS" + + + + + + + cr_make_tmp='all_cairo_pkgconf = cairo.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf = cairo.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + + + CAIRO_FEATURES='' + CAIRO_SUPPORTED_FEATURES='' + CAIRO_NO_FEATURES='' + + ac_config_commands="$ac_config_commands src/cairo-features.h" + + ac_config_commands="$ac_config_commands src/cairo-supported-features.h" + + + + + + CAIRO_MAKEFILE_win32_features_h_WIN32='# Generated by configure. Do not edit. +' + + ac_config_commands="$ac_config_commands $srcdir/build/Makefile.win32.features-h" + + + cr_make_tmp='$(top_srcdir)/src/cairo-features.h: $(top_srcdir)/build/Makefile.win32.features + @echo "Generating src/cairo-features.h" + @echo "/* Generated by Makefile.win32.features-h. Do not edit. */" > $(top_srcdir)/src/cairo-features.h + @echo "#ifndef CAIRO_FEATURES_H" >> $(top_srcdir)/src/cairo-features.h + @echo "#define CAIRO_FEATURES_H 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + CAIRO_WARNING_MESSAGE='' + + + + + CAIRO_NATIVE_SURFACE_BACKENDS='' + CAIRO_NATIVE_FONT_BACKENDS='' + + + + + + +# -Wcast-align generates lots of false positive reports we need to +# cast image data from uint8_t to uin32_t. + +# -Wlogical-op causes too much noise from strcmp("literal", str) + +MAYBE_WARN="-Wall -Wextra \ +-Wold-style-definition -Wdeclaration-after-statement \ +-Wmissing-declarations -Werror-implicit-function-declaration \ +-Wnested-externs -Wpointer-arith -Wwrite-strings \ +-Wsign-compare -Wstrict-prototypes -Wmissing-prototypes \ +-Wpacked -Wswitch-enum -Wmissing-format-attribute \ +-Wbad-function-cast -Wvolatile-register-var \ +-Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ +-Wno-missing-field-initializers -Wno-unused-parameter \ +-Wno-attributes -Wno-long-long -Winline" + +# -Wunused-but-set-variable is too noisy at present +NO_WARN="-Wno-unused-but-set-variable" + +MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ + -erroff=E_ENUM_TYPE_MISMATCH_OP" + + + +safe_MAYBE_WARN="$MAYBE_WARN" +MAYBE_WARN="$MAYBE_WARN -flto" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + int main(int argc, char **argv) { return 0; } + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + + MAYBE_WARN="$safe_MAYBE_WARN" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" + +MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" + +MAYBE_WARN="$MAYBE_WARN $NO_WARN" + +# invalidate cached value if MAYBE_WARN has changed +if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then + unset cairo_cv_warn_cflags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported warning flags" >&5 +$as_echo_n "checking for supported warning flags... " >&6; } +if test "${cairo_cv_warn_cflags+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + echo + WARN_CFLAGS="" + + # Some warning options are not supported by all versions of + # gcc, so test all desired options against the current + # compiler. + # + # Note that there are some order dependencies + # here. Specifically, an option that disables a warning will + # have no net effect if a later option then enables that + # warnings, (perhaps implicitly). So we put some grouped + # options (-Wall and -Wextra) up front and the -Wno options + # last. + + for W in $MAYBE_WARN; do + _test_WERROR=${WERROR+set} + if test "z$_test_WERROR" != zset; then + WERROR="" + for _werror in -Werror -errwarn; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $_werror" >&5 +$as_echo_n "checking whether $CC supports $_werror... " >&6; } + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program=""' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $_werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + WERROR="$WERROR $_werror" + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cc_flag" >&5 +$as_echo "$cairo_cc_flag" >&6; } + done + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $W" >&5 +$as_echo_n "checking whether $CC supports $W... " >&6; } + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program=""' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $WERROR $W" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + WARN_CFLAGS="$WARN_CFLAGS $W" + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cc_flag" >&5 +$as_echo "$cairo_cc_flag" >&6; } + + done + + cairo_cv_warn_cflags=$WARN_CFLAGS + cairo_cv_warn_maybe=$MAYBE_WARN + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which warning flags were supported" >&5 +$as_echo_n "checking which warning flags were supported... " >&6; } + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_warn_cflags" >&5 +$as_echo "$cairo_cv_warn_cflags" >&6; } +WARN_CFLAGS="$cairo_cv_warn_cflags" +CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS" + +# We only wish to enable attribute(warn_unused_result) if we can prevent +# gcc from generating thousands of warnings about the misapplication of the +# attribute to void functions and variables. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to enable unused result warnings" >&5 +$as_echo_n "checking how to enable unused result warnings... " >&6; } +if test "${cairo_cv_warn_unused_result+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + + cairo_cv_warn_unused_result="" + if echo $WARN_CFLAGS | $GREP -e '-Wno-attributes' >/dev/null; then + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program="__attribute__((__warn_unused_result__)) void f (void) {} + __attribute__((__warn_unused_result__)) int g;"' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS -Wno-attributes" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + cairo_cv_warn_unused_result="__attribute__((__warn_unused_result__))" + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_warn_unused_result" >&5 +$as_echo "$cairo_cv_warn_unused_result" >&6; } + +cat >>confdefs.h <<_ACEOF +#define WARN_UNUSED_RESULT $cairo_cv_warn_unused_result +_ACEOF + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to allow undefined symbols in shared libraries used by test suite" >&5 +$as_echo_n "checking how to allow undefined symbols in shared libraries used by test suite... " >&6; } +if test "${cairo_cv_test_undefined_ldflags+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program=""' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS -Wl,--allow-shlib-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined" + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_test_undefined_ldflags" >&5 +$as_echo "$cairo_cv_test_undefined_ldflags" >&6; } +CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags" + + + + if test "x$cross_compiling" = "xyes"; then + CROSS_COMPILING_TRUE= + CROSS_COMPILING_FALSE='#' +else + CROSS_COMPILING_TRUE='#' + CROSS_COMPILING_FALSE= +fi + + case $host_os in + darwin*) + + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 +$as_echo_n "checking whether float word ordering is bigendian... " >&6; } +if test "${ax_cv_c_float_words_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + +# The endianess is detected by first compiling C code that contains a special +# double float value, then grepping the resulting object file for certain +# strings of ascii values. The double is specially crafted to have a +# binary representation that corresponds with a simple string. In this +# implementation, the string "noonsees" was selected because the individual +# word values ("noon" and "sees") are palindromes, thus making this test +# byte-order agnostic. If grep finds the string "noonsees" in the object +# file, the target platform stores float words in big-endian order. If grep +# finds "seesnoon", float words are in little-endian order. If neither value +# is found, the user is instructed to specify the ordering. + +ax_cv_c_float_words_bigendian=unknown +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +double d = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; + + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + +if strings - conftest.$ac_objext | grep noonsees >/dev/null ; then + ax_cv_c_float_words_bigendian=yes +fi +if strings - conftest.$ac_objext | grep seesnoon >/dev/null ; then + if test "$ax_cv_c_float_words_bigendian" = unknown; then + ax_cv_c_float_words_bigendian=no + else + ax_cv_c_float_words_bigendian=unknown + fi +fi + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 +$as_echo "$ax_cv_c_float_words_bigendian" >&6; } + +case $ax_cv_c_float_words_bigendian in + yes) + +$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h + ;; + no) + ;; + *) + as_fn_error $? " + +Unknown float word ordering. You need to manually preset +ax_cv_c_float_words_bigendian=no (or yes) according to your system. + + " "$LINENO" 5 ;; +esac + + + ;; + esac + +# Check whether --enable-atomic was given. +if test "${enable_atomic+set}" = set; then : + enableval=$enable_atomic; use_atomic=$enableval +else + use_atomic=yes +fi + +if test "x$use_atomic" = "xyes"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native atomic primitives" >&5 +$as_echo_n "checking for native atomic primitives... " >&6; } +if test "${cairo_cv_atomic_primitives+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cairo_cv_atomic_primitives="none" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); } +int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); } + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cv_atomic_primitives="Intel" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cv_atomic_primitives" = "xnone"; then + ac_fn_c_check_header_mongrel "$LINENO" "atomic_ops.h" "ac_cv_header_atomic_ops_h" "$ac_includes_default" +if test "x$ac_cv_header_atomic_ops_h" = x""yes; then : + cairo_cv_atomic_primitives="libatomic-ops" +fi + + + fi + + if test "x$cairo_cv_atomic_primitives" = "xnone"; then + ac_fn_c_check_header_mongrel "$LINENO" "libkern/OSAtomic.h" "ac_cv_header_libkern_OSAtomic_h" "$ac_includes_default" +if test "x$ac_cv_header_libkern_OSAtomic_h" = x""yes; then : + cairo_cv_atomic_primitives="OSAtomic" +fi + + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_atomic_primitives" >&5 +$as_echo "$cairo_cv_atomic_primitives" >&6; } + if test "x$cairo_cv_atomic_primitives" = xIntel; then + +$as_echo "#define HAVE_INTEL_ATOMIC_PRIMITIVES 1" >>confdefs.h + + fi + + if test "x$cairo_cv_atomic_primitives" = "xlibatomic-ops"; then + +$as_echo "#define HAVE_LIB_ATOMIC_OPS 1" >>confdefs.h + + fi + + if test "x$cairo_cv_atomic_primitives" = xOSAtomic; then + +$as_echo "#define HAVE_OS_ATOMIC_OPS 1" >>confdefs.h + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether atomic ops require a memory barrier" >&5 +$as_echo_n "checking whether atomic ops require a memory barrier... " >&6; } +if test "${cairo_cv_atomic_op_needs_memory_barrier+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + case $host_cpu in + i?86) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + x86_64) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + arm*) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + *) cairo_cv_atomic_op_needs_memory_barrier="yes" ;; + esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_atomic_op_needs_memory_barrier" >&5 +$as_echo "$cairo_cv_atomic_op_needs_memory_barrier" >&6; } + if test "x$cairo_cv_atomic_op_needs_memory_barrier" = "xyes"; then + +cat >>confdefs.h <<_ACEOF +#define ATOMIC_OP_NEEDS_MEMORY_BARRIER 1 +_ACEOF + + fi + + +fi +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if test "${ac_cv_sizeof_void_p+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_void_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_void_p=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +$as_echo "$ac_cv_sizeof_void_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if test "${ac_cv_sizeof_int+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_int=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } +if test "${ac_cv_sizeof_long_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_long_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +$as_echo_n "checking size of size_t... " >&6; } +if test "${ac_cv_sizeof_size_t+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_size_t" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_size_t=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +$as_echo "$ac_cv_sizeof_size_t" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t +_ACEOF + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for native Win32" >&5 +$as_echo_n "checking for native Win32... " >&6; } +case "$host" in + *-*-mingw*) + cairo_os_win32=yes + ;; + *) + cairo_os_win32=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_os_win32" >&5 +$as_echo "$cairo_os_win32" >&6; } + if test "$cairo_os_win32" = "yes"; then + OS_WIN32_TRUE= + OS_WIN32_FALSE='#' +else + OS_WIN32_TRUE='#' + OS_WIN32_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Sun Solaris (non-POSIX ctime_r)" >&5 +$as_echo_n "checking for Sun Solaris (non-POSIX ctime_r)... " >&6; } +case "$host" in + *-*-solaris*) + CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" + solaris_posix_pthread=yes + ;; + *) + solaris_posix_pthread=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $solaris_posix_pthread" >&5 +$as_echo "$solaris_posix_pthread" >&6; } + + +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 +$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } +if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _mwvalidcheckl (); +int +main () +{ +return _mwvalidcheckl (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mw__mwvalidcheckl=yes +else + ac_cv_lib_mw__mwvalidcheckl=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 +$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } +if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : + LIBM="-lmw" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = x""yes; then : + LIBM="$LIBM -lm" +fi + + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = x""yes; then : + LIBM="-lm" +fi + + ;; +esac + + +LIBS="$LIBS $LIBM" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 +$as_echo_n "checking for sched_yield in -lrt... " >&6; } +if test "${ac_cv_lib_rt_sched_yield+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sched_yield (); +int +main () +{ +return sched_yield (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_sched_yield=yes +else + ac_cv_lib_rt_sched_yield=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 +$as_echo "$ac_cv_lib_rt_sched_yield" >&6; } +if test "x$ac_cv_lib_rt_sched_yield" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRT 1 +_ACEOF + + LIBS="-lrt $LIBS" + +fi + + +has_shm_open= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shm_open in -lrt" >&5 +$as_echo_n "checking for shm_open in -lrt... " >&6; } +if test "${ac_cv_lib_rt_shm_open+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_shm_open=yes +else + ac_cv_lib_rt_shm_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_shm_open" >&5 +$as_echo "$ac_cv_lib_rt_shm_open" >&6; } +if test "x$ac_cv_lib_rt_shm_open" = x""yes; then : + + SHM_LIBS=-lrt + has_shm_open=yes + +else + SHM_LIBS= +fi + + if test "x$has_shm_open" = "xyes"; then + HAVE_SHM_TRUE= + HAVE_SHM_FALSE='#' +else + HAVE_SHM_TRUE='#' + HAVE_SHM_FALSE= +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = x""yes; then : + SOCKET_LIBS=-lsocket +else + SOCKET_LIBS= +fi + +CAIROBOILERPLATE_LIBS=$SOCKET_LIBS + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_return_address(0)" >&5 +$as_echo_n "checking for __builtin_return_address(0)... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +__builtin_return_address(0); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_builtin_return_address=yes +else + have_builtin_return_address=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_builtin_return_address" >&5 +$as_echo "$have_builtin_return_address" >&6; } +if test "x$have_builtin_return_address" = "xyes"; then + +$as_echo "#define HAVE_BUILTIN_RETURN_ADDRESS 1" >>confdefs.h + +fi + +for ac_header in stdint.h inttypes.h sys/int_types.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" +if test "x$ac_cv_type_uint64_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UINT64_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "uint128_t" "ac_cv_type_uint128_t" "$ac_includes_default" +if test "x$ac_cv_type_uint128_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_UINT128_T 1 +_ACEOF + + +fi +ac_fn_c_check_type "$LINENO" "__uint128_t" "ac_cv_type___uint128_t" "$ac_includes_default" +if test "x$ac_cv_type___uint128_t" = x""yes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE___UINT128_T 1 +_ACEOF + + +fi + + +for ac_header in fcntl.h unistd.h signal.h sys/stat.h sys/socket.h sys/poll.h sys/un.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in alarm +do : + ac_fn_c_check_func "$LINENO" "alarm" "ac_cv_func_alarm" +if test "x$ac_cv_func_alarm" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ALARM 1 +_ACEOF + +fi +done + + +for ac_header in sched.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default" +if test "x$ac_cv_header_sched_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SCHED_H 1 +_ACEOF + for ac_func in sched_getaffinity +do : + ac_fn_c_check_func "$LINENO" "sched_getaffinity" "ac_cv_func_sched_getaffinity" +if test "x$ac_cv_func_sched_getaffinity" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SCHED_GETAFFINITY 1 +_ACEOF + +fi +done + +fi + +done + + +for ac_header in sys/mman.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mman_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_MMAN_H 1 +_ACEOF + for ac_func in mmap +do : + ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_MMAP 1 +_ACEOF + +fi +done + +fi + +done + + +for ac_header in time.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" +if test "x$ac_cv_header_time_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TIME_H 1 +_ACEOF + for ac_func in clock_gettime +do : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF + +fi +done + +fi + +done + + +ac_fn_c_check_header_mongrel "$LINENO" "fenv.h" "ac_cv_header_fenv_h" "$ac_includes_default" +if test "x$ac_cv_header_fenv_h" = x""yes; then : + for ac_func in feenableexcept fedisableexcept feclearexcept +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +fi + + + +for ac_header in libgen.h byteswap.h signal.h setjmp.h fenv.h sys/wait.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +for ac_func in ctime_r drand48 flockfile funlockfile getline link strndup +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_header in windows.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" +if test "x$ac_cv_header_windows_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINDOWS_H 1 +_ACEOF + have_windows=yes +else + have_windows=no +fi + +done + + + +for ac_header in sys/stat.h io.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +ac_fn_c_check_func "$LINENO" "mkdir" "ac_cv_func_mkdir" +if test "x$ac_cv_func_mkdir" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking mkdir variant" >&5 +$as_echo_n "checking mkdir variant... " >&6; } + mkdir_variant="unknown" + save_CFLAGS="$CFLAGS" + CFLAGS=$WARN_CFLAGS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_STAT_H +#include +#endif +#ifdef HAVE_IO_H +#include +#endif + +int +main () +{ +mkdir ("hello.world", 0777) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + mkdir_variant="mkdir(path, mode)" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_STAT_H +#include +#endif +#ifdef HAVE_IO_H +#include +#endif + +int +main () +{ +mkdir ("hello.world") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + mkdir_variant="mkdir(path)" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $mkdir_variant" >&5 +$as_echo "$mkdir_variant" >&6; } + CFLAGS="$save_CFLAGS" + if test "x$mkdir_variant" = "xmkdir(path, mode)"; then + +$as_echo "#define HAVE_MKDIR 2" >>confdefs.h + + else + +$as_echo "#define HAVE_MKDIR 1" >>confdefs.h + + fi +fi + + + +for ac_func in fork waitpid raise +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + cairo_has_lcov=no +# Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; use_gcov=$enableval +else + use_gcov=no +fi + + +if test "x$use_gcov" = "xyes"; then + if test "$GCC" != "yes"; then + as_fn_error $? "GCC is required for --enable-gcov" "$LINENO" 5 + fi + + # Extract the first word of "shtool", so it can be a program name with args. +set dummy shtool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_SHTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$SHTOOL"; then + ac_cv_prog_SHTOOL="$SHTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_SHTOOL="shtool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +SHTOOL=$ac_cv_prog_SHTOOL +if test -n "$SHTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHTOOL" >&5 +$as_echo "$SHTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + case `$SHTOOL path $CC` in + *ccache*) gcc_ccache=yes;; + *) gcc_ccache=no;; + esac + + if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then + as_fn_error $? "ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1." "$LINENO" 5 + fi + + ltp_version_list="1.7 1.6 1.5 1.4" + # Extract the first word of "lcov", so it can be a program name with args. +set dummy lcov; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LTP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LTP"; then + ac_cv_prog_LTP="$LTP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LTP="lcov" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LTP=$ac_cv_prog_LTP +if test -n "$LTP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LTP" >&5 +$as_echo "$LTP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "genhtml", so it can be a program name with args. +set dummy genhtml; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LTP_GENHTML+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LTP_GENHTML"; then + ac_cv_prog_LTP_GENHTML="$LTP_GENHTML" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LTP_GENHTML="genhtml" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LTP_GENHTML=$ac_cv_prog_LTP_GENHTML +if test -n "$LTP_GENHTML"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LTP_GENHTML" >&5 +$as_echo "$LTP_GENHTML" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + if test "$LTP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ltp version" >&5 +$as_echo_n "checking for ltp version... " >&6; } +if test "${cairo_cv_ltp_version+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cairo_cv_ltp_version=invalid + ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'` + for ltp_check_version in $ltp_version_list; do + if test "$ltp_version" = "$ltp_check_version"; then + cairo_cv_ltp_version="$ltp_check_version (ok)" + fi + done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cv_ltp_version" >&5 +$as_echo "$cairo_cv_ltp_version" >&6; } + fi + + case $cairo_cv_ltp_version in + ""|invalid) + ;; + *) + cairo_has_lcov=yes + ;; + esac + + if test "x$cairo_has_lcov" != "xyes"; then + as_fn_error $? "To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list. +Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again." "$LINENO" 5 + fi + + if test -z "$LTP_GENHTML"; then + as_fn_error $? "Could not find genhtml from the LTP package. +Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again." "$LINENO" 5 + fi + + +$as_echo "#define HAVE_GCOV 1" >>confdefs.h + + + + CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'` + CAIRO_CFLAGS=`echo "$CAIRO_CFLAGS" | $SED -e 's/-O[0-9]*//g'` + + + _test_WERROR=${WERROR+set} + if test "z$_test_WERROR" != zset; then + WERROR="" + for _werror in -Werror -errwarn; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $_werror" >&5 +$as_echo_n "checking whether $CC supports $_werror... " >&6; } + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program=""' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $_werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + WERROR="$WERROR $_werror" + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cc_flag" >&5 +$as_echo "$cairo_cc_flag" >&6; } + done + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports --coverage" >&5 +$as_echo_n "checking whether $CC supports --coverage... " >&6; } + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program=""' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $WERROR --coverage" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + + CAIRO_CFLAGS="$CAIRO_CFLAGS -O0 --coverage" + CAIRO_LDFLAGS="$CAIRO_LDFLAGS -O0 --coverage" + + else + : + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cairo_cc_flag" >&5 +$as_echo "$cairo_cc_flag" >&6; } + +fi + if test "x$cairo_has_lcov" = "xyes"; then + CAIRO_HAS_LCOV_TRUE= + CAIRO_HAS_LCOV_FALSE='#' +else + CAIRO_HAS_LCOV_TRUE='#' + CAIRO_HAS_LCOV_FALSE= +fi + + +# Check whether --enable-valgrind was given. +if test "${enable_valgrind+set}" = set; then : + enableval=$enable_valgrind; use_valgrind=$enableval +else + use_valgrind=yes +fi + + +if test "x$use_valgrind" = "xyes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 +$as_echo_n "checking for VALGRIND... " >&6; } + +if test -n "$VALGRIND_CFLAGS"; then + pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$VALGRIND_LIBS"; then + pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "valgrind" 2>&1` + else + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --print-errors "valgrind" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$VALGRIND_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +else + VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS + VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + _save_CFLAGS="$CFLAGS" + _save_CPPFLAGS="$CPPFLAGS" + CFLAGS="$CFLAGS $VALGRIND_CFLAGS" + CPPFLAGS="$CPPFLAGS $VALGRIND_CFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "valgrind.h" "ac_cv_header_valgrind_h" "$ac_includes_default" +if test "x$ac_cv_header_valgrind_h" = x""yes; then : + +$as_echo "#define HAVE_VALGRIND 1" >>confdefs.h + +fi + + + ac_fn_c_check_header_mongrel "$LINENO" "lockdep.h" "ac_cv_header_lockdep_h" "$ac_includes_default" +if test "x$ac_cv_header_lockdep_h" = x""yes; then : + +$as_echo "#define HAVE_LOCKDEP 1" >>confdefs.h + +fi + + + ac_fn_c_check_header_mongrel "$LINENO" "memfault.h" "ac_cv_header_memfault_h" "$ac_includes_default" +if test "x$ac_cv_header_memfault_h" = x""yes; then : + +$as_echo "#define HAVE_MEMFAULT 1" >>confdefs.h + +fi + + + CAIRO_CFLAGS="$VALGRIND_CFLAGS $CAIRO_CFLAGS" + CFLAGS="$_save_CFLAGS" + CPPFLAGS="$_save_CPPFLAGS" + +fi +fi + +echo '#undef PACKAGE_VERSION' >>confdefs.h +echo '#undef PACKAGE_STRING' >>confdefs.h +echo '#undef PACKAGE_NAME' >>confdefs.h +echo '#undef PACKAGE_TARNAME' >>confdefs.h +$as_echo "#define PACKAGE_VERSION USE_cairo_version_OR_cairo_version_string_INSTEAD" >>confdefs.h + +$as_echo "#define PACKAGE_STRING USE_cairo_version_OR_cairo_version_string_INSTEAD" >>confdefs.h + +$as_echo "#define PACKAGE_NAME USE_cairo_INSTEAD" >>confdefs.h + +$as_echo "#define PACKAGE_TARNAME USE_cairo_INSTEAD" >>confdefs.h + + + + + + + + + + + cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 +$as_echo_n "checking for compress in -lz... " >&6; } +if test "${ac_cv_lib_z_compress+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress (); +int +main () +{ +return compress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_compress=yes +else + ac_cv_lib_z_compress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 +$as_echo "$ac_cv_lib_z_compress" >&6; } +if test "x$ac_cv_lib_z_compress" = x""yes; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = x""yes; then : + + have_libz=yes + +$as_echo "#define HAVE_ZLIB 1" >>confdefs.h + + +else + have_libz="no (requires zlib http://www.gzip.org/zlib/)" +fi + + +else + have_libz="no (requires zlib http://www.gzip.org/zlib/)" +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlsym in -ldl" >&5 +$as_echo_n "checking for dlsym in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlsym+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlsym (); +int +main () +{ +return dlsym (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlsym=yes +else + ac_cv_lib_dl_dlsym=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlsym" >&5 +$as_echo "$ac_cv_lib_dl_dlsym" >&6; } +if test "x$ac_cv_lib_dl_dlsym" = x""yes; then : + have_dlsym=yes; have_dl=yes +else + have_dlsym=no; have_dl=no +fi + +if test "x$have_dlsym" = "xno"; then + ac_fn_c_check_func "$LINENO" "dlsym" "ac_cv_func_dlsym" +if test "x$ac_cv_func_dlsym" = x""yes; then : + have_dlsym=yes +else + have_dlsym=no +fi + +fi +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + have_dlsym=yes +else + have_dlsym=no +fi + +done + + if test "x$have_dl" = "xyes"; then + CAIRO_HAS_DL_TRUE= + CAIRO_HAS_DL_FALSE='#' +else + CAIRO_HAS_DL_TRUE='#' + CAIRO_HAS_DL_FALSE= +fi + +if test "x$have_dlsym" = "xyes"; then + +$as_echo "#define CAIRO_HAS_DLSYM 1" >>confdefs.h + +fi + if test "x$have_dlsym" = "xyes"; then + CAIRO_HAS_DLSYM_TRUE= + CAIRO_HAS_DLSYM_FALSE='#' +else + CAIRO_HAS_DLSYM_TRUE='#' + CAIRO_HAS_DLSYM_FALSE= +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + + # Check whether --enable-xlib was given. +if test "${enable_xlib+set}" = set; then : + enableval=$enable_xlib; enable_xlib=$enableval +else + enable_xlib=auto +fi + + case $enable_xlib in #( + no) : + use_xlib="no (disabled, use --enable-xlib to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Xlib surface backend feature" >&5 +$as_echo_n "checking for cairo's Xlib surface backend feature... " >&6; } + echo + + use_xlib=yes + xlib_BASE="cairo" +xlib_REQUIRES="$ac_env_xlib_REQUIRES_value" +xlib_CFLAGS="$ac_env_xlib_CFLAGS_value" +xlib_NONPKGCONFIG_CFLAGS="$ac_env_xlib_NONPKGCONFIG_CFLAGS_value" +xlib_LIBS="$ac_env_xlib_LIBS_value" +xlib_NONPKGCONFIG_LIBS="$ac_env_xlib_NONPKGCONFIG_LIBS_value" +xlib_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xlib_NONPKGCONFIG_EXTRA_LIBS_value" + + + + xlib_REQUIRES="x11" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xlib" >&5 +$as_echo_n "checking for xlib... " >&6; } + +if test -n "$xlib_CFLAGS"; then + pkg_cv_xlib_CFLAGS="$xlib_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_CFLAGS=`$PKG_CONFIG --cflags "$xlib_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$xlib_LIBS"; then + pkg_cv_xlib_LIBS="$xlib_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_LIBS=`$PKG_CONFIG --libs "$xlib_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + xlib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$xlib_REQUIRES" 2>&1` + else + xlib_PKG_ERRORS=`$PKG_CONFIG --print-errors "$xlib_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$xlib_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + xlib_REQUIRES="" + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = x""yes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = x""yes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = x""yes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = x""yes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if test "${ac_cv_lib_posix_remove+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = x""yes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if test "${ac_cv_lib_ipc_shmat+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + if test "x$no_x" = xyes; then + use_xlib="no (requires X development libraries)" + else + xlib_NONPKGCONFIG_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + xlib_NONPKGCONFIG_CFLAGS=$X_CFLAGS + fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + xlib_REQUIRES="" + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = x""yes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = x""yes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = x""yes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = x""yes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if test "${ac_cv_lib_posix_remove+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = x""yes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if test "${ac_cv_lib_ipc_shmat+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + if test "x$no_x" = xyes; then + use_xlib="no (requires X development libraries)" + else + xlib_NONPKGCONFIG_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + xlib_NONPKGCONFIG_CFLAGS=$X_CFLAGS + fi +else + xlib_CFLAGS=$pkg_cv_xlib_CFLAGS + xlib_LIBS=$pkg_cv_xlib_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Xlib surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Xlib surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xlib" >&5 +$as_echo "$use_xlib" >&6; } + + if test "x$enable_xlib" = "xyes" -a "x$use_xlib" != xyes; then : + as_fn_error $? " Xlib surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xlib: \`$use_xlib', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xlib" = "xyes"; then : + CAIRO_REQUIRES="$xlib_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xlib_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xlib_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xlib_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xlib_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xlib_BASE +unset xlib_REQUIRES +unset xlib_CFLAGS +unset xlib_NONPKGCONFIG_CFLAGS +unset xlib_LIBS +unset xlib_NONPKGCONFIG_LIBS +unset xlib_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xlib" = xyes; then + CAIRO_HAS_XLIB_SURFACE_TRUE= + CAIRO_HAS_XLIB_SURFACE_FALSE='#' +else + CAIRO_HAS_XLIB_SURFACE_TRUE='#' + CAIRO_HAS_XLIB_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XLIB_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_xlib_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_xlib_headers) +all_cairo_private += $(cairo_xlib_private) +all_cairo_cxx_sources += $(cairo_xlib_cxx_sources) +all_cairo_sources += $(cairo_xlib_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xlib_headers) +enabled_cairo_private += $(cairo_xlib_private) +enabled_cairo_cxx_sources += $(cairo_xlib_cxx_sources) +enabled_cairo_sources += $(cairo_xlib_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XLIB_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xlib" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xlib.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xlib" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xlib-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xlib.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xlib.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xlib" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XLIB_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_XLIB_SURFACE' + + + + if test "x$use_xlib" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_XLIB_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_XLIB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + if test "x$use_xlib" = xyes; then : + : + CAIRO_NATIVE_SURFACE_BACKENDS="${CAIRO_NATIVE_SURFACE_BACKENDS}"'xlib' + + + +fi + + + + # Check whether --enable-xlib-xrender was given. +if test "${enable_xlib_xrender+set}" = set; then : + enableval=$enable_xlib_xrender; enable_xlib_xrender=$enableval +else + enable_xlib_xrender=auto +fi + + case $enable_xlib_xrender in #( + no) : + use_xlib_xrender="no (disabled, use --enable-xlib-xrender to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Xlib Xrender surface backend feature" >&5 +$as_echo_n "checking for cairo's Xlib Xrender surface backend feature... " >&6; } + echo + + use_xlib_xrender=yes + xlib_xrender_BASE="cairo" +xlib_xrender_REQUIRES="$ac_env_xlib_xrender_REQUIRES_value" +xlib_xrender_CFLAGS="$ac_env_xlib_xrender_CFLAGS_value" +xlib_xrender_NONPKGCONFIG_CFLAGS="$ac_env_xlib_xrender_NONPKGCONFIG_CFLAGS_value" +xlib_xrender_LIBS="$ac_env_xlib_xrender_LIBS_value" +xlib_xrender_NONPKGCONFIG_LIBS="$ac_env_xlib_xrender_NONPKGCONFIG_LIBS_value" +xlib_xrender_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xlib_xrender_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$use_xlib" != "xyes"; then + use_xlib_xrender="no (requires --enable-xlib)" + else + xlib_xrender_BASE=cairo-xlib + xlib_xrender_REQUIRES="xrender >= 0.6" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xlib_xrender" >&5 +$as_echo_n "checking for xlib_xrender... " >&6; } + +if test -n "$xlib_xrender_CFLAGS"; then + pkg_cv_xlib_xrender_CFLAGS="$xlib_xrender_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_xrender_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_xrender_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_xrender_CFLAGS=`$PKG_CONFIG --cflags "$xlib_xrender_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$xlib_xrender_LIBS"; then + pkg_cv_xlib_xrender_LIBS="$xlib_xrender_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_xrender_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_xrender_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_xrender_LIBS=`$PKG_CONFIG --libs "$xlib_xrender_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + xlib_xrender_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$xlib_xrender_REQUIRES" 2>&1` + else + xlib_xrender_PKG_ERRORS=`$PKG_CONFIG --print-errors "$xlib_xrender_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$xlib_xrender_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + xlib_xrender_REQUIRES="" + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "X11/extensions/Xrender.h" "ac_cv_header_X11_extensions_Xrender_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_extensions_Xrender_h" = x""yes; then : + xlib_xrender_NONPKGCONFIG_LIBS="-lXrender" +else + use_xlib_xrender="no (requires $xlib_xrender_REQUIRES http://freedesktop.org/Software/xlibs)" +fi + + + CPPFLAGS=$old_CPPFLAGS + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + xlib_xrender_REQUIRES="" + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "X11/extensions/Xrender.h" "ac_cv_header_X11_extensions_Xrender_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_extensions_Xrender_h" = x""yes; then : + xlib_xrender_NONPKGCONFIG_LIBS="-lXrender" +else + use_xlib_xrender="no (requires $xlib_xrender_REQUIRES http://freedesktop.org/Software/xlibs)" +fi + + + CPPFLAGS=$old_CPPFLAGS + +else + xlib_xrender_CFLAGS=$pkg_cv_xlib_xrender_CFLAGS + xlib_xrender_LIBS=$pkg_cv_xlib_xrender_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + old_CFLAGS=$CFLAGS + old_LIBS=$LIBS + CFLAGS="$CFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS $xlib_xrender_CFLAGS $xlib_xrender_NONPKGCONFIG_CFLAGS" + LIBS="$LIBS $xlib_LIBS $xlib_NONPKGCONFIG_LIBS $xlib_xrender_LIBS $xlib_xrender_NONPKGCONFIG_LIBS" + for ac_func in XRenderCreateLinearGradient XRenderCreateRadialGradient XRenderCreateConicalGradient +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + CFLAGS=$old_CFLAGS + LIBS=$old_LIBS + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Xlib Xrender surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Xlib Xrender surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xlib_xrender" >&5 +$as_echo "$use_xlib_xrender" >&6; } + + if test "x$enable_xlib_xrender" = "xyes" -a "x$use_xlib_xrender" != xyes; then : + as_fn_error $? " Xlib Xrender surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xlib-xrender: \`$use_xlib_xrender', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xlib_xrender" = "xyes"; then : + CAIRO_REQUIRES="$xlib_xrender_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xlib_xrender_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xlib_xrender_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xlib_xrender_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xlib_xrender_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xlib_xrender_BASE +unset xlib_xrender_REQUIRES +unset xlib_xrender_CFLAGS +unset xlib_xrender_NONPKGCONFIG_CFLAGS +unset xlib_xrender_LIBS +unset xlib_xrender_NONPKGCONFIG_LIBS +unset xlib_xrender_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xlib_xrender" = xyes; then + CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE= + CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE='#' +else + CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE='#' + CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XLIB_XRENDER_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_xlib_xrender_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_xlib_xrender_headers) +all_cairo_private += $(cairo_xlib_xrender_private) +all_cairo_cxx_sources += $(cairo_xlib_xrender_cxx_sources) +all_cairo_sources += $(cairo_xlib_xrender_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xrender_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_xrender_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xrender_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xlib_xrender_headers) +enabled_cairo_private += $(cairo_xlib_xrender_private) +enabled_cairo_cxx_sources += $(cairo_xlib_xrender_cxx_sources) +enabled_cairo_sources += $(cairo_xlib_xrender_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_XRENDER_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xrender_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_xrender_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xrender_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XLIB_XRENDER_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xlib_xrender" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xlib-xrender.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xlib_xrender" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xlib-xrender-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xlib-xrender.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xlib-xrender.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_XRENDER_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xlib_xrender" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XLIB_XRENDER_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_XLIB_XRENDER_SURFACE' + + + + if test "x$use_xlib_xrender" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_XLIB_XRENDER_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + if test "x$use_xlib_xrender" = xyes; then : + : + CAIRO_NATIVE_SURFACE_BACKENDS="${CAIRO_NATIVE_SURFACE_BACKENDS}"'xlib_xrender' + + + +fi + + + + + # Check whether --enable-xcb was given. +if test "${enable_xcb+set}" = set; then : + enableval=$enable_xcb; enable_xcb=$enableval +else + enable_xcb=auto +fi + + case $enable_xcb in #( + no) : + use_xcb="no (disabled, use --enable-xcb to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's XCB surface backend feature" >&5 +$as_echo_n "checking for cairo's XCB surface backend feature... " >&6; } + echo + + use_xcb=yes + xcb_BASE="cairo" +xcb_REQUIRES="$ac_env_xcb_REQUIRES_value" +xcb_CFLAGS="$ac_env_xcb_CFLAGS_value" +xcb_NONPKGCONFIG_CFLAGS="$ac_env_xcb_NONPKGCONFIG_CFLAGS_value" +xcb_LIBS="$ac_env_xcb_LIBS_value" +xcb_NONPKGCONFIG_LIBS="$ac_env_xcb_NONPKGCONFIG_LIBS_value" +xcb_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xcb_NONPKGCONFIG_EXTRA_LIBS_value" + + + + xcb_REQUIRES="xcb >= 1.6 xcb-render >= 1.6" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xcb" >&5 +$as_echo_n "checking for xcb... " >&6; } + +if test -n "$xcb_CFLAGS"; then + pkg_cv_xcb_CFLAGS="$xcb_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xcb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xcb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xcb_CFLAGS=`$PKG_CONFIG --cflags "$xcb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$xcb_LIBS"; then + pkg_cv_xcb_LIBS="$xcb_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xcb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xcb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xcb_LIBS=`$PKG_CONFIG --libs "$xcb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + xcb_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$xcb_REQUIRES" 2>&1` + else + xcb_PKG_ERRORS=`$PKG_CONFIG --print-errors "$xcb_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$xcb_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xcb="no (requires $xcb_REQUIRES http://xcb.freedesktop.org)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xcb="no (requires $xcb_REQUIRES http://xcb.freedesktop.org)" +else + xcb_CFLAGS=$pkg_cv_xcb_CFLAGS + xcb_LIBS=$pkg_cv_xcb_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's XCB surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's XCB surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xcb" >&5 +$as_echo "$use_xcb" >&6; } + + if test "x$enable_xcb" = "xyes" -a "x$use_xcb" != xyes; then : + as_fn_error $? " XCB surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xcb: \`$use_xcb', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xcb" = "xyes"; then : + CAIRO_REQUIRES="$xcb_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xcb_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xcb_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xcb_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xcb_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xcb_BASE +unset xcb_REQUIRES +unset xcb_CFLAGS +unset xcb_NONPKGCONFIG_CFLAGS +unset xcb_LIBS +unset xcb_NONPKGCONFIG_LIBS +unset xcb_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xcb" = xyes; then + CAIRO_HAS_XCB_SURFACE_TRUE= + CAIRO_HAS_XCB_SURFACE_FALSE='#' +else + CAIRO_HAS_XCB_SURFACE_TRUE='#' + CAIRO_HAS_XCB_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XCB_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_xcb_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_xcb_headers) +all_cairo_private += $(cairo_xcb_private) +all_cairo_cxx_sources += $(cairo_xcb_cxx_sources) +all_cairo_sources += $(cairo_xcb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xcb_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xcb_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xcb_headers) +enabled_cairo_private += $(cairo_xcb_private) +enabled_cairo_cxx_sources += $(cairo_xcb_cxx_sources) +enabled_cairo_sources += $(cairo_xcb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XCB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xcb_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xcb_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XCB_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xcb" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xcb.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xcb" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xcb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xcb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xcb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XCB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xcb" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XCB_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_XCB_SURFACE' + + + + if test "x$use_xcb" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_XCB_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_XCB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + if test "x$use_xcb" = xyes; then : + : + CAIRO_NATIVE_SURFACE_BACKENDS="${CAIRO_NATIVE_SURFACE_BACKENDS}"'xcb' + + + +fi + + + + # Check whether --enable-xlib-xcb was given. +if test "${enable_xlib_xcb+set}" = set; then : + enableval=$enable_xlib_xcb; enable_xlib_xcb=$enableval +else + enable_xlib_xcb=no +fi + + case $enable_xlib_xcb in #( + no) : + use_xlib_xcb="no (disabled, use --enable-xlib-xcb to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Xlib/XCB functions feature" >&5 +$as_echo_n "checking for cairo's Xlib/XCB functions feature... " >&6; } + echo + + use_xlib_xcb=yes + xlib_xcb_BASE="cairo" +xlib_xcb_REQUIRES="$ac_env_xlib_xcb_REQUIRES_value" +xlib_xcb_CFLAGS="$ac_env_xlib_xcb_CFLAGS_value" +xlib_xcb_NONPKGCONFIG_CFLAGS="$ac_env_xlib_xcb_NONPKGCONFIG_CFLAGS_value" +xlib_xcb_LIBS="$ac_env_xlib_xcb_LIBS_value" +xlib_xcb_NONPKGCONFIG_LIBS="$ac_env_xlib_xcb_NONPKGCONFIG_LIBS_value" +xlib_xcb_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xlib_xcb_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$use_xcb" = "xyes" -a "x$use_xlib" = "xyes"; then + xlib_xcb_REQUIRES="x11-xcb" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xlib_xcb" >&5 +$as_echo_n "checking for xlib_xcb... " >&6; } + +if test -n "$xlib_xcb_CFLAGS"; then + pkg_cv_xlib_xcb_CFLAGS="$xlib_xcb_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_xcb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_xcb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_xcb_CFLAGS=`$PKG_CONFIG --cflags "$xlib_xcb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$xlib_xcb_LIBS"; then + pkg_cv_xlib_xcb_LIBS="$xlib_xcb_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xlib_xcb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xlib_xcb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xlib_xcb_LIBS=`$PKG_CONFIG --libs "$xlib_xcb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + xlib_xcb_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$xlib_xcb_REQUIRES" 2>&1` + else + xlib_xcb_PKG_ERRORS=`$PKG_CONFIG --print-errors "$xlib_xcb_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$xlib_xcb_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xlib_xcb="no (requires $xlib_xcb_REQUIRES http://xcb.freedesktop.org)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xlib_xcb="no (requires $xlib_xcb_REQUIRES http://xcb.freedesktop.org)" +else + xlib_xcb_CFLAGS=$pkg_cv_xlib_xcb_CFLAGS + xlib_xcb_LIBS=$pkg_cv_xlib_xcb_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + else + use_xlib_xcb="no (requires both --enable-xlib and --enable-xcb)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Xlib/XCB functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Xlib/XCB functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xlib_xcb" >&5 +$as_echo "$use_xlib_xcb" >&6; } + + if test "x$enable_xlib_xcb" = "xyes" -a "x$use_xlib_xcb" != xyes; then : + as_fn_error $? " Xlib/XCB functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xlib-xcb: \`$use_xlib_xcb', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xlib_xcb" = "xyes"; then : + CAIRO_REQUIRES="$xlib_xcb_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xlib_xcb_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xlib_xcb_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xlib_xcb_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xlib_xcb_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xlib_xcb_BASE +unset xlib_xcb_REQUIRES +unset xlib_xcb_CFLAGS +unset xlib_xcb_NONPKGCONFIG_CFLAGS +unset xlib_xcb_LIBS +unset xlib_xcb_NONPKGCONFIG_LIBS +unset xlib_xcb_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xlib_xcb" = xyes; then + CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE= + CAIRO_HAS_XLIB_XCB_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE='#' + CAIRO_HAS_XLIB_XCB_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XLIB_XCB_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_xlib_xcb_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_xlib_xcb_headers) +all_cairo_private += $(cairo_xlib_xcb_private) +all_cairo_cxx_sources += $(cairo_xlib_xcb_cxx_sources) +all_cairo_sources += $(cairo_xlib_xcb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xcb_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_xcb_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xcb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xlib_xcb_headers) +enabled_cairo_private += $(cairo_xlib_xcb_private) +enabled_cairo_cxx_sources += $(cairo_xlib_xcb_cxx_sources) +enabled_cairo_sources += $(cairo_xlib_xcb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_XCB_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xcb_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xlib_xcb_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xcb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XLIB_XCB_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xlib_xcb" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xlib-xcb.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xlib_xcb" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xlib-xcb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xlib-xcb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xlib-xcb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XLIB_XCB_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xlib_xcb" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XLIB_XCB_FUNCTIONS' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_XLIB_XCB_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_xlib_xcb" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Xlib/XCB functions feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to Xlib/XCB functions specific +--- API.' + + + +fi + + + + + + # Check whether --enable-xcb-shm was given. +if test "${enable_xcb_shm+set}" = set; then : + enableval=$enable_xcb_shm; enable_xcb_shm=$enableval +else + enable_xcb_shm=auto +fi + + case $enable_xcb_shm in #( + no) : + use_xcb_shm="no (disabled, use --enable-xcb-shm to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's XCB/SHM functions feature" >&5 +$as_echo_n "checking for cairo's XCB/SHM functions feature... " >&6; } + echo + + use_xcb_shm=yes + xcb_shm_BASE="cairo" +xcb_shm_REQUIRES="$ac_env_xcb_shm_REQUIRES_value" +xcb_shm_CFLAGS="$ac_env_xcb_shm_CFLAGS_value" +xcb_shm_NONPKGCONFIG_CFLAGS="$ac_env_xcb_shm_NONPKGCONFIG_CFLAGS_value" +xcb_shm_LIBS="$ac_env_xcb_shm_LIBS_value" +xcb_shm_NONPKGCONFIG_LIBS="$ac_env_xcb_shm_NONPKGCONFIG_LIBS_value" +xcb_shm_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xcb_shm_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$use_xcb" = "xyes"; then + xcb_shm_REQUIRES="xcb-shm" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xcb_shm" >&5 +$as_echo_n "checking for xcb_shm... " >&6; } + +if test -n "$xcb_shm_CFLAGS"; then + pkg_cv_xcb_shm_CFLAGS="$xcb_shm_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xcb_shm_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xcb_shm_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xcb_shm_CFLAGS=`$PKG_CONFIG --cflags "$xcb_shm_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$xcb_shm_LIBS"; then + pkg_cv_xcb_shm_LIBS="$xcb_shm_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$xcb_shm_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$xcb_shm_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_xcb_shm_LIBS=`$PKG_CONFIG --libs "$xcb_shm_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + xcb_shm_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$xcb_shm_REQUIRES" 2>&1` + else + xcb_shm_PKG_ERRORS=`$PKG_CONFIG --print-errors "$xcb_shm_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$xcb_shm_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xcb_shm="no (requires $xcb_shm http://xcb.freedesktop.org)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_xcb_shm="no (requires $xcb_shm http://xcb.freedesktop.org)" +else + xcb_shm_CFLAGS=$pkg_cv_xcb_shm_CFLAGS + xcb_shm_LIBS=$pkg_cv_xcb_shm_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + else + use_xcb_shm="no (requires --enable-xcb)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's XCB/SHM functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's XCB/SHM functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xcb_shm" >&5 +$as_echo "$use_xcb_shm" >&6; } + + if test "x$enable_xcb_shm" = "xyes" -a "x$use_xcb_shm" != xyes; then : + as_fn_error $? " XCB/SHM functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xcb-shm: \`$use_xcb_shm', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xcb_shm" = "xyes"; then : + CAIRO_REQUIRES="$xcb_shm_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xcb_shm_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xcb_shm_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xcb_shm_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xcb_shm_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xcb_shm_BASE +unset xcb_shm_REQUIRES +unset xcb_shm_CFLAGS +unset xcb_shm_NONPKGCONFIG_CFLAGS +unset xcb_shm_LIBS +unset xcb_shm_NONPKGCONFIG_LIBS +unset xcb_shm_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xcb_shm" = xyes; then + CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE= + CAIRO_HAS_XCB_SHM_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE='#' + CAIRO_HAS_XCB_SHM_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XCB_SHM_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_xcb_shm_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_xcb_shm_headers) +all_cairo_private += $(cairo_xcb_shm_private) +all_cairo_cxx_sources += $(cairo_xcb_shm_cxx_sources) +all_cairo_sources += $(cairo_xcb_shm_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xcb_shm_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xcb_shm_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_shm_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xcb_shm_headers) +enabled_cairo_private += $(cairo_xcb_shm_private) +enabled_cairo_cxx_sources += $(cairo_xcb_shm_cxx_sources) +enabled_cairo_sources += $(cairo_xcb_shm_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XCB_SHM_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xcb_shm_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xcb_shm_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_shm_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XCB_SHM_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xcb_shm" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xcb-shm.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xcb_shm" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xcb-shm-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xcb-shm.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xcb-shm.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XCB_SHM_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xcb_shm" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XCB_SHM_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_XCB_SHM_FUNCTIONS' + + + + if test "x$use_xcb_shm" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_XCB_SHM_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + + # Check whether --enable-qt was given. +if test "${enable_qt+set}" = set; then : + enableval=$enable_qt; enable_qt=$enableval +else + enable_qt=no +fi + + case $enable_qt in #( + no) : + use_qt="no (disabled, use --enable-qt to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Qt surface backend feature" >&5 +$as_echo_n "checking for cairo's Qt surface backend feature... " >&6; } + echo + + use_qt=yes + qt_BASE="cairo" +qt_REQUIRES="$ac_env_qt_REQUIRES_value" +qt_CFLAGS="$ac_env_qt_CFLAGS_value" +qt_NONPKGCONFIG_CFLAGS="$ac_env_qt_NONPKGCONFIG_CFLAGS_value" +qt_LIBS="$ac_env_qt_LIBS_value" +qt_NONPKGCONFIG_LIBS="$ac_env_qt_NONPKGCONFIG_LIBS_value" +qt_NONPKGCONFIG_EXTRA_LIBS="$ac_env_qt_NONPKGCONFIG_EXTRA_LIBS_value" + + + + qt_REQUIRES="QtGui >= 4.4.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt" >&5 +$as_echo_n "checking for qt... " >&6; } + +if test -n "$qt_CFLAGS"; then + pkg_cv_qt_CFLAGS="$qt_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$qt_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$qt_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_qt_CFLAGS=`$PKG_CONFIG --cflags "$qt_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$qt_LIBS"; then + pkg_cv_qt_LIBS="$qt_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$qt_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$qt_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_qt_LIBS=`$PKG_CONFIG --libs "$qt_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + qt_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$qt_REQUIRES" 2>&1` + else + qt_PKG_ERRORS=`$PKG_CONFIG --print-errors "$qt_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$qt_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + qt_REQUIRES="" + use_qt="no (requires Qt4 development libraries)" + +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + qt_REQUIRES="" + use_qt="no (requires Qt4 development libraries)" + +else + qt_CFLAGS=$pkg_cv_qt_CFLAGS + qt_LIBS=$pkg_cv_qt_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Qt surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Qt surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_qt" >&5 +$as_echo "$use_qt" >&6; } + + if test "x$enable_qt" = "xyes" -a "x$use_qt" != xyes; then : + as_fn_error $? " Qt surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-qt: \`$use_qt', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_qt" = "xyes"; then : + CAIRO_REQUIRES="$qt_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$qt_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$qt_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$qt_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$qt_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset qt_BASE +unset qt_REQUIRES +unset qt_CFLAGS +unset qt_NONPKGCONFIG_CFLAGS +unset qt_LIBS +unset qt_NONPKGCONFIG_LIBS +unset qt_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_qt" = xyes; then + CAIRO_HAS_QT_SURFACE_TRUE= + CAIRO_HAS_QT_SURFACE_FALSE='#' +else + CAIRO_HAS_QT_SURFACE_TRUE='#' + CAIRO_HAS_QT_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_QT_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_qt_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_qt_headers) +all_cairo_private += $(cairo_qt_private) +all_cairo_cxx_sources += $(cairo_qt_cxx_sources) +all_cairo_sources += $(cairo_qt_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_qt_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_qt_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_qt_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_qt_headers) +enabled_cairo_private += $(cairo_qt_private) +enabled_cairo_cxx_sources += $(cairo_qt_cxx_sources) +enabled_cairo_sources += $(cairo_qt_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QT_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_qt_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_qt_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_qt_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_QT_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_QT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_qt" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-qt.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_qt" = xyes; then : + : + ac_config_files="$ac_config_files cairo-qt-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-qt.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-qt.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QT_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_qt" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_QT_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_QT_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_QT_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_qt" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Qt surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to Qt surface backend specific +--- API.' + + + +fi + + + + + + + # Check whether --enable-quartz was given. +if test "${enable_quartz+set}" = set; then : + enableval=$enable_quartz; enable_quartz=$enableval +else + enable_quartz=auto +fi + + case $enable_quartz in #( + no) : + use_quartz="no (disabled, use --enable-quartz to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Quartz surface backend feature" >&5 +$as_echo_n "checking for cairo's Quartz surface backend feature... " >&6; } + echo + + use_quartz=yes + quartz_BASE="cairo" +quartz_REQUIRES="$ac_env_quartz_REQUIRES_value" +quartz_CFLAGS="$ac_env_quartz_CFLAGS_value" +quartz_NONPKGCONFIG_CFLAGS="$ac_env_quartz_NONPKGCONFIG_CFLAGS_value" +quartz_LIBS="$ac_env_quartz_LIBS_value" +quartz_NONPKGCONFIG_LIBS="$ac_env_quartz_NONPKGCONFIG_LIBS_value" +quartz_NONPKGCONFIG_EXTRA_LIBS="$ac_env_quartz_NONPKGCONFIG_EXTRA_LIBS_value" + + + + ac_fn_c_check_header_mongrel "$LINENO" "ApplicationServices/ApplicationServices.h" "ac_cv_header_ApplicationServices_ApplicationServices_h" "$ac_includes_default" +if test "x$ac_cv_header_ApplicationServices_ApplicationServices_h" = x""yes; then : + +else + use_quartz="no (requires ApplicationServices framework)" +fi + + + if test "x$use_quartz" != "xyes" ; then + ac_fn_c_check_header_mongrel "$LINENO" "CoreGraphics/CoreGraphics.h" "ac_cv_header_CoreGraphics_CoreGraphics_h" "$ac_includes_default" +if test "x$ac_cv_header_CoreGraphics_CoreGraphics_h" = x""yes; then : + +else + use_quartz="no (requires CoreGraphics framework)" +fi + + + quartz_LIBS="-Xlinker -framework -Xlinker CoreGraphics" + else + quartz_LIBS="-Xlinker -framework -Xlinker ApplicationServices" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Quartz surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Quartz surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_quartz" >&5 +$as_echo "$use_quartz" >&6; } + + if test "x$enable_quartz" = "xyes" -a "x$use_quartz" != xyes; then : + as_fn_error $? " Quartz surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-quartz: \`$use_quartz', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_quartz" = "xyes"; then : + CAIRO_REQUIRES="$quartz_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$quartz_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$quartz_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$quartz_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$quartz_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset quartz_BASE +unset quartz_REQUIRES +unset quartz_CFLAGS +unset quartz_NONPKGCONFIG_CFLAGS +unset quartz_LIBS +unset quartz_NONPKGCONFIG_LIBS +unset quartz_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_quartz" = xyes; then + CAIRO_HAS_QUARTZ_SURFACE_TRUE= + CAIRO_HAS_QUARTZ_SURFACE_FALSE='#' +else + CAIRO_HAS_QUARTZ_SURFACE_TRUE='#' + CAIRO_HAS_QUARTZ_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_QUARTZ_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_quartz_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_quartz_headers) +all_cairo_private += $(cairo_quartz_private) +all_cairo_cxx_sources += $(cairo_quartz_cxx_sources) +all_cairo_sources += $(cairo_quartz_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_quartz_headers) +enabled_cairo_private += $(cairo_quartz_private) +enabled_cairo_cxx_sources += $(cairo_quartz_cxx_sources) +enabled_cairo_sources += $(cairo_quartz_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_QUARTZ_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_quartz" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-quartz.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_quartz" = xyes; then : + : + ac_config_files="$ac_config_files cairo-quartz-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-quartz.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-quartz.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_quartz" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_QUARTZ_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_QUARTZ_SURFACE' + + + + if test "x$use_quartz" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_QUARTZ_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_QUARTZ_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + if test "x$use_quartz" = xyes; then : + : + CAIRO_NATIVE_SURFACE_BACKENDS="${CAIRO_NATIVE_SURFACE_BACKENDS}"'quartz' + + + +fi + + + + # Check whether --enable-quartz-font was given. +if test "${enable_quartz_font+set}" = set; then : + enableval=$enable_quartz_font; enable_quartz_font=$enableval +else + enable_quartz_font=auto +fi + + case $enable_quartz_font in #( + no) : + use_quartz_font="no (disabled, use --enable-quartz-font to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Quartz font backend feature" >&5 +$as_echo_n "checking for cairo's Quartz font backend feature... " >&6; } + echo + + use_quartz_font=yes + quartz_font_BASE="cairo" +quartz_font_REQUIRES="$ac_env_quartz_font_REQUIRES_value" +quartz_font_CFLAGS="$ac_env_quartz_font_CFLAGS_value" +quartz_font_NONPKGCONFIG_CFLAGS="$ac_env_quartz_font_NONPKGCONFIG_CFLAGS_value" +quartz_font_LIBS="$ac_env_quartz_font_LIBS_value" +quartz_font_NONPKGCONFIG_LIBS="$ac_env_quartz_font_NONPKGCONFIG_LIBS_value" +quartz_font_NONPKGCONFIG_EXTRA_LIBS="$ac_env_quartz_font_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_quartz_font=$use_quartz + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Quartz font backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Quartz font backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_quartz_font" >&5 +$as_echo "$use_quartz_font" >&6; } + + if test "x$enable_quartz_font" = "xyes" -a "x$use_quartz_font" != xyes; then : + as_fn_error $? " Quartz font backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-quartz-font: \`$use_quartz_font', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_quartz_font" = "xyes"; then : + CAIRO_REQUIRES="$quartz_font_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$quartz_font_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$quartz_font_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$quartz_font_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$quartz_font_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset quartz_font_BASE +unset quartz_font_REQUIRES +unset quartz_font_CFLAGS +unset quartz_font_NONPKGCONFIG_CFLAGS +unset quartz_font_LIBS +unset quartz_font_NONPKGCONFIG_LIBS +unset quartz_font_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_quartz_font" = xyes; then + CAIRO_HAS_QUARTZ_FONT_TRUE= + CAIRO_HAS_QUARTZ_FONT_FALSE='#' +else + CAIRO_HAS_QUARTZ_FONT_TRUE='#' + CAIRO_HAS_QUARTZ_FONT_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_QUARTZ_FONT=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_quartz_font_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_quartz_font_headers) +all_cairo_private += $(cairo_quartz_font_private) +all_cairo_cxx_sources += $(cairo_quartz_font_cxx_sources) +all_cairo_sources += $(cairo_quartz_font_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_font_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_font_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_font_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_quartz_font_headers) +enabled_cairo_private += $(cairo_quartz_font_private) +enabled_cairo_cxx_sources += $(cairo_quartz_font_cxx_sources) +enabled_cairo_sources += $(cairo_quartz_font_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_font_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_font_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_font_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_QUARTZ_FONT' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_quartz_font" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-quartz-font.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_quartz_font" = xyes; then : + : + ac_config_files="$ac_config_files cairo-quartz-font-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-quartz-font.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-quartz-font.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_quartz_font" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_QUARTZ_FONT' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_QUARTZ_FONT' + + + + if test "x$use_quartz_font" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_QUARTZ_FONT' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_QUARTZ_FONT 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + if test "x$use_quartz_font" = xyes; then : + : + CAIRO_NATIVE_FONT_BACKENDS="${CAIRO_NATIVE_FONT_BACKENDS}"'quartz_font' + + + +fi + + + # Check whether --enable-quartz-image was given. +if test "${enable_quartz_image+set}" = set; then : + enableval=$enable_quartz_image; enable_quartz_image=$enableval +else + enable_quartz_image=no +fi + + case $enable_quartz_image in #( + no) : + use_quartz_image="no (disabled, use --enable-quartz-image to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Quartz Image surface backend feature" >&5 +$as_echo_n "checking for cairo's Quartz Image surface backend feature... " >&6; } + echo + + use_quartz_image=yes + quartz_image_BASE="cairo" +quartz_image_REQUIRES="$ac_env_quartz_image_REQUIRES_value" +quartz_image_CFLAGS="$ac_env_quartz_image_CFLAGS_value" +quartz_image_NONPKGCONFIG_CFLAGS="$ac_env_quartz_image_NONPKGCONFIG_CFLAGS_value" +quartz_image_LIBS="$ac_env_quartz_image_LIBS_value" +quartz_image_NONPKGCONFIG_LIBS="$ac_env_quartz_image_NONPKGCONFIG_LIBS_value" +quartz_image_NONPKGCONFIG_EXTRA_LIBS="$ac_env_quartz_image_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_quartz_image=$use_quartz + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Quartz Image surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Quartz Image surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_quartz_image" >&5 +$as_echo "$use_quartz_image" >&6; } + + if test "x$enable_quartz_image" = "xyes" -a "x$use_quartz_image" != xyes; then : + as_fn_error $? " Quartz Image surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-quartz-image: \`$use_quartz_image', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_quartz_image" = "xyes"; then : + CAIRO_REQUIRES="$quartz_image_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$quartz_image_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$quartz_image_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$quartz_image_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$quartz_image_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset quartz_image_BASE +unset quartz_image_REQUIRES +unset quartz_image_CFLAGS +unset quartz_image_NONPKGCONFIG_CFLAGS +unset quartz_image_LIBS +unset quartz_image_NONPKGCONFIG_LIBS +unset quartz_image_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_quartz_image" = xyes; then + CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE= + CAIRO_HAS_QUARTZ_IMAGE_SURFACE_FALSE='#' +else + CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE='#' + CAIRO_HAS_QUARTZ_IMAGE_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_QUARTZ_IMAGE_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_quartz_image_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_quartz_image_headers) +all_cairo_private += $(cairo_quartz_image_private) +all_cairo_cxx_sources += $(cairo_quartz_image_cxx_sources) +all_cairo_sources += $(cairo_quartz_image_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_image_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_image_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_image_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_quartz_image_headers) +enabled_cairo_private += $(cairo_quartz_image_private) +enabled_cairo_cxx_sources += $(cairo_quartz_image_cxx_sources) +enabled_cairo_sources += $(cairo_quartz_image_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_IMAGE_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_image_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_quartz_image_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_image_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_QUARTZ_IMAGE_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_quartz_image" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-quartz-image.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_quartz_image" = xyes; then : + : + ac_config_files="$ac_config_files cairo-quartz-image-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-quartz-image.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-quartz-image.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_QUARTZ_IMAGE_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_quartz_image" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_QUARTZ_IMAGE_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_quartz_image" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Quartz Image surface backend feature is still under active +--- development and is included in this release only as a preview. It does +--- NOT fully work yet and incompatible changes may yet be made to Quartz +--- Image surface backend specific API.' + + + +fi + + + + + + + # Check whether --enable-win32 was given. +if test "${enable_win32+set}" = set; then : + enableval=$enable_win32; enable_win32=$enableval +else + enable_win32=auto +fi + + case $enable_win32 in #( + no) : + use_win32="no (disabled, use --enable-win32 to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Microsoft Windows surface backend feature" >&5 +$as_echo_n "checking for cairo's Microsoft Windows surface backend feature... " >&6; } + echo + + use_win32=yes + win32_BASE="cairo" +win32_REQUIRES="$ac_env_win32_REQUIRES_value" +win32_CFLAGS="$ac_env_win32_CFLAGS_value" +win32_NONPKGCONFIG_CFLAGS="$ac_env_win32_NONPKGCONFIG_CFLAGS_value" +win32_LIBS="$ac_env_win32_LIBS_value" +win32_NONPKGCONFIG_LIBS="$ac_env_win32_NONPKGCONFIG_LIBS_value" +win32_NONPKGCONFIG_EXTRA_LIBS="$ac_env_win32_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$have_windows" != xyes; then + use_win32="no (requires a Win32 platform)" + fi + win32_LIBS="-lgdi32 -lmsimg32" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Microsoft Windows surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Microsoft Windows surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_win32" >&5 +$as_echo "$use_win32" >&6; } + + if test "x$enable_win32" = "xyes" -a "x$use_win32" != xyes; then : + as_fn_error $? " Microsoft Windows surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-win32: \`$use_win32', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_win32" = "xyes"; then : + CAIRO_REQUIRES="$win32_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$win32_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$win32_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$win32_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$win32_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset win32_BASE +unset win32_REQUIRES +unset win32_CFLAGS +unset win32_NONPKGCONFIG_CFLAGS +unset win32_LIBS +unset win32_NONPKGCONFIG_LIBS +unset win32_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_win32" = xyes; then + CAIRO_HAS_WIN32_SURFACE_TRUE= + CAIRO_HAS_WIN32_SURFACE_FALSE='#' +else + CAIRO_HAS_WIN32_SURFACE_TRUE='#' + CAIRO_HAS_WIN32_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_WIN32_SURFACE=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_win32_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_win32_headers) +all_cairo_private += $(cairo_win32_private) +all_cairo_cxx_sources += $(cairo_win32_cxx_sources) +all_cairo_sources += $(cairo_win32_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_win32_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_win32_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_win32_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_win32_headers) +enabled_cairo_private += $(cairo_win32_private) +enabled_cairo_cxx_sources += $(cairo_win32_cxx_sources) +enabled_cairo_sources += $(cairo_win32_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WIN32_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_win32_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_win32_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_win32_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_WIN32_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_win32" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-win32.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_win32" = xyes; then : + : + ac_config_files="$ac_config_files cairo-win32-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-win32.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-win32.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WIN32_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_win32" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_WIN32_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_WIN32_SURFACE' + + + + if test "x$use_win32" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_WIN32_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_WIN32_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + if test "x$use_win32" = xyes; then : + : + CAIRO_NATIVE_SURFACE_BACKENDS="${CAIRO_NATIVE_SURFACE_BACKENDS}"'win32' + + + +fi + + + + # Check whether --enable-win32-font was given. +if test "${enable_win32_font+set}" = set; then : + enableval=$enable_win32_font; enable_win32_font=$enableval +else + enable_win32_font=auto +fi + + case $enable_win32_font in #( + no) : + use_win32_font="no (disabled, use --enable-win32-font to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Microsoft Windows font backend feature" >&5 +$as_echo_n "checking for cairo's Microsoft Windows font backend feature... " >&6; } + echo + + use_win32_font=yes + win32_font_BASE="cairo" +win32_font_REQUIRES="$ac_env_win32_font_REQUIRES_value" +win32_font_CFLAGS="$ac_env_win32_font_CFLAGS_value" +win32_font_NONPKGCONFIG_CFLAGS="$ac_env_win32_font_NONPKGCONFIG_CFLAGS_value" +win32_font_LIBS="$ac_env_win32_font_LIBS_value" +win32_font_NONPKGCONFIG_LIBS="$ac_env_win32_font_NONPKGCONFIG_LIBS_value" +win32_font_NONPKGCONFIG_EXTRA_LIBS="$ac_env_win32_font_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_win32_font=$use_win32 + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Microsoft Windows font backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Microsoft Windows font backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_win32_font" >&5 +$as_echo "$use_win32_font" >&6; } + + if test "x$enable_win32_font" = "xyes" -a "x$use_win32_font" != xyes; then : + as_fn_error $? " Microsoft Windows font backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-win32-font: \`$use_win32_font', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_win32_font" = "xyes"; then : + CAIRO_REQUIRES="$win32_font_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$win32_font_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$win32_font_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$win32_font_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$win32_font_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset win32_font_BASE +unset win32_font_REQUIRES +unset win32_font_CFLAGS +unset win32_font_NONPKGCONFIG_CFLAGS +unset win32_font_LIBS +unset win32_font_NONPKGCONFIG_LIBS +unset win32_font_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_win32_font" = xyes; then + CAIRO_HAS_WIN32_FONT_TRUE= + CAIRO_HAS_WIN32_FONT_FALSE='#' +else + CAIRO_HAS_WIN32_FONT_TRUE='#' + CAIRO_HAS_WIN32_FONT_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_WIN32_FONT=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_win32_font_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_win32_font_headers) +all_cairo_private += $(cairo_win32_font_private) +all_cairo_cxx_sources += $(cairo_win32_font_cxx_sources) +all_cairo_sources += $(cairo_win32_font_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_win32_font_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_win32_font_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_win32_font_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_win32_font_headers) +enabled_cairo_private += $(cairo_win32_font_private) +enabled_cairo_cxx_sources += $(cairo_win32_font_cxx_sources) +enabled_cairo_sources += $(cairo_win32_font_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WIN32_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_win32_font_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_win32_font_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_win32_font_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_WIN32_FONT' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_FONT),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_win32_font" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-win32-font.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_win32_font" = xyes; then : + : + ac_config_files="$ac_config_files cairo-win32-font-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-win32-font.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-win32-font.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WIN32_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_win32_font" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_WIN32_FONT' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_WIN32_FONT' + + + + if test "x$use_win32_font" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_WIN32_FONT' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_WIN32_FONT 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_WIN32_FONT),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + if test "x$use_win32_font" = xyes; then : + : + CAIRO_NATIVE_FONT_BACKENDS="${CAIRO_NATIVE_FONT_BACKENDS}"'win32_font' + + + +fi + + +test_win32_printing=no +if test "x$use_win32" = "xyes"; then + # Extract the first word of "gs", so it can be a program name with args. +set dummy gs; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_GS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$GS"; then + ac_cv_prog_GS="$GS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_GS="gs" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GS=$ac_cv_prog_GS +if test -n "$GS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GS" >&5 +$as_echo "$GS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$GS"; then + +$as_echo "#define CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE 1" >>confdefs.h + + test_win32_printing="yes" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Win32 Printing backend will not be tested since ghostscript is not available" >&5 +$as_echo "$as_me: WARNING: Win32 Printing backend will not be tested since ghostscript is not available" >&2;} + test_win32_printing="no (requires ghostscript)" + fi +fi + + if test "x$test_win32_printing" = "xyes"; then + CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE= + CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_FALSE='#' +else + CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE='#' + CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_FALSE= +fi + + + + # Check whether --enable-skia was given. +if test "${enable_skia+set}" = set; then : + enableval=$enable_skia; enable_skia=$enableval +else + enable_skia=no +fi + + case $enable_skia in #( + no) : + use_skia="no (disabled, use --enable-skia to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Skia surface backend feature" >&5 +$as_echo_n "checking for cairo's Skia surface backend feature... " >&6; } + echo + + use_skia=yes + skia_BASE="cairo" +skia_REQUIRES="$ac_env_skia_REQUIRES_value" +skia_CFLAGS="$ac_env_skia_CFLAGS_value" +skia_NONPKGCONFIG_CFLAGS="$ac_env_skia_NONPKGCONFIG_CFLAGS_value" +skia_LIBS="$ac_env_skia_LIBS_value" +skia_NONPKGCONFIG_LIBS="$ac_env_skia_NONPKGCONFIG_LIBS_value" +skia_NONPKGCONFIG_EXTRA_LIBS="$ac_env_skia_NONPKGCONFIG_EXTRA_LIBS_value" + + + + +# Check whether --with-skia was given. +if test "${with_skia+set}" = set; then : + withval=$with_skia; skia_DIR="$withval" +else + skia_DIR="`pwd`/../skia" +fi + + +# Check whether --with-skia-bulid was given. +if test "${with_skia_bulid+set}" = set; then : + withval=$with_skia_bulid; skia_BUILD="$withval" +else + skia_BUILD="Release" +fi + + skia_NONPKGCONFIG_CFLAGS="-I$skia_DIR/include/config -I$skia_DIR/include/core -I$skia_DIR/include/effects" + if test "x$skia_BUILD" = x"Release"; then + skia_NONPKGCONFIG_CFLAGS="-DSK_RELEASE -DSK_CAN_USE_FLOAT $skia_NONPKGCONFIG_CFLAGS" + fi + skia_NONPKGCONFIG_LIBS="--start-group $skia_DIR/out/$skia_BUILD/obj.target/gyp/libeffects.a $skia_DIR/out/$skia_BUILD/obj.target/gyp/libimages.a $skia_DIR/out/$skia_BUILD/obj.target/gyp/libutils.a $skia_DIR/out/$skia_BUILD/obj.target/gyp/libopts.a $skia_DIR/out/$skia_BUILD/obj.target/gyp/libcore.a -end-group" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Skia surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Skia surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_skia" >&5 +$as_echo "$use_skia" >&6; } + + if test "x$enable_skia" = "xyes" -a "x$use_skia" != xyes; then : + as_fn_error $? " Skia surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-skia: \`$use_skia', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_skia" = "xyes"; then : + CAIRO_REQUIRES="$skia_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$skia_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$skia_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$skia_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$skia_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset skia_BASE +unset skia_REQUIRES +unset skia_CFLAGS +unset skia_NONPKGCONFIG_CFLAGS +unset skia_LIBS +unset skia_NONPKGCONFIG_LIBS +unset skia_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_skia" = xyes; then + CAIRO_HAS_SKIA_SURFACE_TRUE= + CAIRO_HAS_SKIA_SURFACE_FALSE='#' +else + CAIRO_HAS_SKIA_SURFACE_TRUE='#' + CAIRO_HAS_SKIA_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_SKIA_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_skia_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_skia_headers) +all_cairo_private += $(cairo_skia_private) +all_cairo_cxx_sources += $(cairo_skia_cxx_sources) +all_cairo_sources += $(cairo_skia_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_skia_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_skia_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_skia_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_skia_headers) +enabled_cairo_private += $(cairo_skia_private) +enabled_cairo_cxx_sources += $(cairo_skia_cxx_sources) +enabled_cairo_sources += $(cairo_skia_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SKIA_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_skia_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_skia_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_skia_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_skia_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_SKIA_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_skia" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-skia.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_skia" = xyes; then : + : + ac_config_files="$ac_config_files cairo-skia-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-skia.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-skia.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SKIA_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_skia" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_SKIA_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_SKIA_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_SKIA_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_skia" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Skia surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to Skia surface backend specific +--- API.' + + + +fi + + + + + + + # Check whether --enable-os2 was given. +if test "${enable_os2+set}" = set; then : + enableval=$enable_os2; enable_os2=$enableval +else + enable_os2=no +fi + + case $enable_os2 in #( + no) : + use_os2="no (disabled, use --enable-os2 to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's OS/2 surface backend feature" >&5 +$as_echo_n "checking for cairo's OS/2 surface backend feature... " >&6; } + echo + + use_os2=yes + os2_BASE="cairo" +os2_REQUIRES="$ac_env_os2_REQUIRES_value" +os2_CFLAGS="$ac_env_os2_CFLAGS_value" +os2_NONPKGCONFIG_CFLAGS="$ac_env_os2_NONPKGCONFIG_CFLAGS_value" +os2_LIBS="$ac_env_os2_LIBS_value" +os2_NONPKGCONFIG_LIBS="$ac_env_os2_NONPKGCONFIG_LIBS_value" +os2_NONPKGCONFIG_EXTRA_LIBS="$ac_env_os2_NONPKGCONFIG_EXTRA_LIBS_value" + + + + case "$host" in + *-*-os2*) + : + ;; + *) + use_os2="no (requires an OS/2 platform)" + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's OS/2 surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's OS/2 surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_os2" >&5 +$as_echo "$use_os2" >&6; } + + if test "x$enable_os2" = "xyes" -a "x$use_os2" != xyes; then : + as_fn_error $? " OS/2 surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-os2: \`$use_os2', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_os2" = "xyes"; then : + CAIRO_REQUIRES="$os2_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$os2_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$os2_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$os2_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$os2_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset os2_BASE +unset os2_REQUIRES +unset os2_CFLAGS +unset os2_NONPKGCONFIG_CFLAGS +unset os2_LIBS +unset os2_NONPKGCONFIG_LIBS +unset os2_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_os2" = xyes; then + CAIRO_HAS_OS2_SURFACE_TRUE= + CAIRO_HAS_OS2_SURFACE_FALSE='#' +else + CAIRO_HAS_OS2_SURFACE_TRUE='#' + CAIRO_HAS_OS2_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_OS2_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_os2_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_os2_headers) +all_cairo_private += $(cairo_os2_private) +all_cairo_cxx_sources += $(cairo_os2_cxx_sources) +all_cairo_sources += $(cairo_os2_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_os2_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_os2_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_os2_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_os2_headers) +enabled_cairo_private += $(cairo_os2_private) +enabled_cairo_cxx_sources += $(cairo_os2_cxx_sources) +enabled_cairo_sources += $(cairo_os2_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_OS2_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_OS2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_os2_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_os2_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_os2_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_OS2_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_OS2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_os2" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-os2.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_os2" = xyes; then : + : + ac_config_files="$ac_config_files cairo-os2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-os2.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-os2.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_OS2_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_OS2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_os2" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_OS2_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_OS2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_OS2_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_os2" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The OS/2 surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to OS/2 surface backend specific +--- API.' + + + +fi + + + + + + + # Check whether --enable-beos was given. +if test "${enable_beos+set}" = set; then : + enableval=$enable_beos; enable_beos=$enableval +else + enable_beos=no +fi + + case $enable_beos in #( + no) : + use_beos="no (disabled, use --enable-beos to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's BeOS/Zeta surface backend feature" >&5 +$as_echo_n "checking for cairo's BeOS/Zeta surface backend feature... " >&6; } + echo + + use_beos=yes + beos_BASE="cairo" +beos_REQUIRES="$ac_env_beos_REQUIRES_value" +beos_CFLAGS="$ac_env_beos_CFLAGS_value" +beos_NONPKGCONFIG_CFLAGS="$ac_env_beos_NONPKGCONFIG_CFLAGS_value" +beos_LIBS="$ac_env_beos_LIBS_value" +beos_NONPKGCONFIG_LIBS="$ac_env_beos_NONPKGCONFIG_LIBS_value" +beos_NONPKGCONFIG_EXTRA_LIBS="$ac_env_beos_NONPKGCONFIG_EXTRA_LIBS_value" + + + + case "$host" in + *-*-beos) + beos_LIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lbe" >&5 +$as_echo_n "checking for main in -lbe... " >&6; } +if test "${ac_cv_lib_be_main+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbe $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_be_main=yes +else + ac_cv_lib_be_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_be_main" >&5 +$as_echo "$ac_cv_lib_be_main" >&6; } +if test "x$ac_cv_lib_be_main" = x""yes; then : + beos_LIBS="$beos_LIBS -lbe" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lzeta" >&5 +$as_echo_n "checking for main in -lzeta... " >&6; } +if test "${ac_cv_lib_zeta_main+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lzeta $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main () +{ +return main (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_zeta_main=yes +else + ac_cv_lib_zeta_main=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zeta_main" >&5 +$as_echo "$ac_cv_lib_zeta_main" >&6; } +if test "x$ac_cv_lib_zeta_main" = x""yes; then : + beos_LIBS="$beos_LIBS -lzeta" +fi + + ;; + *) + use_beos="no (requires a BeOS platform)" + ;; + esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's BeOS/Zeta surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's BeOS/Zeta surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_beos" >&5 +$as_echo "$use_beos" >&6; } + + if test "x$enable_beos" = "xyes" -a "x$use_beos" != xyes; then : + as_fn_error $? " BeOS/Zeta surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-beos: \`$use_beos', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_beos" = "xyes"; then : + CAIRO_REQUIRES="$beos_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$beos_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$beos_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$beos_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$beos_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset beos_BASE +unset beos_REQUIRES +unset beos_CFLAGS +unset beos_NONPKGCONFIG_CFLAGS +unset beos_LIBS +unset beos_NONPKGCONFIG_LIBS +unset beos_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_beos" = xyes; then + CAIRO_HAS_BEOS_SURFACE_TRUE= + CAIRO_HAS_BEOS_SURFACE_FALSE='#' +else + CAIRO_HAS_BEOS_SURFACE_TRUE='#' + CAIRO_HAS_BEOS_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_BEOS_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_beos_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_beos_headers) +all_cairo_private += $(cairo_beos_private) +all_cairo_cxx_sources += $(cairo_beos_cxx_sources) +all_cairo_sources += $(cairo_beos_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_beos_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_beos_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_beos_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_beos_headers) +enabled_cairo_private += $(cairo_beos_private) +enabled_cairo_cxx_sources += $(cairo_beos_cxx_sources) +enabled_cairo_sources += $(cairo_beos_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_BEOS_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_BEOS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_beos_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_beos_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_beos_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_BEOS_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_BEOS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_beos" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-beos.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_beos" = xyes; then : + : + ac_config_files="$ac_config_files cairo-beos-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-beos.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-beos.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_BEOS_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_BEOS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_beos" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_BEOS_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_BEOS_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_BEOS_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_beos" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The BeOS/Zeta surface backend feature is still under active development +--- and is included in this release only as a preview. It does NOT fully work +--- yet and incompatible changes may yet be made to BeOS/Zeta surface backend +--- specific API.' + + + +fi + + + + + + + # Check whether --enable-drm was given. +if test "${enable_drm+set}" = set; then : + enableval=$enable_drm; enable_drm=$enableval +else + enable_drm=no +fi + + case $enable_drm in #( + no) : + use_drm="no (disabled, use --enable-drm to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's DRM surface backend feature" >&5 +$as_echo_n "checking for cairo's DRM surface backend feature... " >&6; } + echo + + use_drm=yes + drm_BASE="cairo" +drm_REQUIRES="$ac_env_drm_REQUIRES_value" +drm_CFLAGS="$ac_env_drm_CFLAGS_value" +drm_NONPKGCONFIG_CFLAGS="$ac_env_drm_NONPKGCONFIG_CFLAGS_value" +drm_LIBS="$ac_env_drm_LIBS_value" +drm_NONPKGCONFIG_LIBS="$ac_env_drm_NONPKGCONFIG_LIBS_value" +drm_NONPKGCONFIG_EXTRA_LIBS="$ac_env_drm_NONPKGCONFIG_EXTRA_LIBS_value" + + + + drm_REQUIRES="libudev >= 136" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for drm" >&5 +$as_echo_n "checking for drm... " >&6; } + +if test -n "$drm_CFLAGS"; then + pkg_cv_drm_CFLAGS="$drm_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$drm_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$drm_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_drm_CFLAGS=`$PKG_CONFIG --cflags "$drm_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$drm_LIBS"; then + pkg_cv_drm_LIBS="$drm_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$drm_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$drm_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_drm_LIBS=`$PKG_CONFIG --libs "$drm_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + drm_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$drm_REQUIRES" 2>&1` + else + drm_PKG_ERRORS=`$PKG_CONFIG --print-errors "$drm_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$drm_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_drm="no (requires $drm_REQUIRES, udev is available from git://git.kernel.org/pub/scm/linux/hotplug/udev.git)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_drm="no (requires $drm_REQUIRES, udev is available from git://git.kernel.org/pub/scm/linux/hotplug/udev.git)" +else + drm_CFLAGS=$pkg_cv_drm_CFLAGS + drm_LIBS=$pkg_cv_drm_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's DRM surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's DRM surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_drm" >&5 +$as_echo "$use_drm" >&6; } + + if test "x$enable_drm" = "xyes" -a "x$use_drm" != xyes; then : + as_fn_error $? " DRM surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-drm: \`$use_drm', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_drm" = "xyes"; then : + CAIRO_REQUIRES="$drm_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$drm_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$drm_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$drm_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$drm_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset drm_BASE +unset drm_REQUIRES +unset drm_CFLAGS +unset drm_NONPKGCONFIG_CFLAGS +unset drm_LIBS +unset drm_NONPKGCONFIG_LIBS +unset drm_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_drm" = xyes; then + CAIRO_HAS_DRM_SURFACE_TRUE= + CAIRO_HAS_DRM_SURFACE_FALSE='#' +else + CAIRO_HAS_DRM_SURFACE_TRUE='#' + CAIRO_HAS_DRM_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_DRM_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_drm_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_drm_headers) +all_cairo_private += $(cairo_drm_private) +all_cairo_cxx_sources += $(cairo_drm_cxx_sources) +all_cairo_sources += $(cairo_drm_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_drm_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_drm_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_drm_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_drm_headers) +enabled_cairo_private += $(cairo_drm_private) +enabled_cairo_cxx_sources += $(cairo_drm_cxx_sources) +enabled_cairo_sources += $(cairo_drm_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_DRM_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_DRM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_drm_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_drm_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_drm_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_DRM_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_DRM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_drm" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-drm.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_drm" = xyes; then : + : + ac_config_files="$ac_config_files cairo-drm-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-drm.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-drm.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_DRM_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_DRM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_drm" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_DRM_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_DRM_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_DRM_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_drm" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The DRM surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to DRM surface backend specific +--- API.' + + + +fi + + + + + + # Check whether --enable-gallium was given. +if test "${enable_gallium+set}" = set; then : + enableval=$enable_gallium; enable_gallium=$enableval +else + enable_gallium=no +fi + + case $enable_gallium in #( + no) : + use_gallium="no (disabled, use --enable-gallium to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Gallium3D surface backend feature" >&5 +$as_echo_n "checking for cairo's Gallium3D surface backend feature... " >&6; } + echo + + use_gallium=yes + gallium_BASE="cairo" +gallium_REQUIRES="$ac_env_gallium_REQUIRES_value" +gallium_CFLAGS="$ac_env_gallium_CFLAGS_value" +gallium_NONPKGCONFIG_CFLAGS="$ac_env_gallium_NONPKGCONFIG_CFLAGS_value" +gallium_LIBS="$ac_env_gallium_LIBS_value" +gallium_NONPKGCONFIG_LIBS="$ac_env_gallium_NONPKGCONFIG_LIBS_value" +gallium_NONPKGCONFIG_EXTRA_LIBS="$ac_env_gallium_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$use_drm" = "xyes"; then + +# Check whether --with-gallium was given. +if test "${with_gallium+set}" = set; then : + withval=$with_gallium; mesa_DIR="$withval" +else + mesa_DIR="`pwd`/../mesa" +fi + + gallium_DIR="$mesa_DIR/src/gallium" + gallium_NONPKGCONFIG_CFLAGS="-I$mesa_DIR/include -I$mesa_DIR/src/mesa -I$gallium_DIR/include -I$gallium_DIR/auxiliary" + gallium_NONPKGCONFIG_LIBS="-lGL" + + + else + use_gallium="no (requires --enable-drm)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Gallium3D surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Gallium3D surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_gallium" >&5 +$as_echo "$use_gallium" >&6; } + + if test "x$enable_gallium" = "xyes" -a "x$use_gallium" != xyes; then : + as_fn_error $? " Gallium3D surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-gallium: \`$use_gallium', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_gallium" = "xyes"; then : + CAIRO_REQUIRES="$gallium_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$gallium_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$gallium_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$gallium_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$gallium_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset gallium_BASE +unset gallium_REQUIRES +unset gallium_CFLAGS +unset gallium_NONPKGCONFIG_CFLAGS +unset gallium_LIBS +unset gallium_NONPKGCONFIG_LIBS +unset gallium_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_gallium" = xyes; then + CAIRO_HAS_GALLIUM_SURFACE_TRUE= + CAIRO_HAS_GALLIUM_SURFACE_FALSE='#' +else + CAIRO_HAS_GALLIUM_SURFACE_TRUE='#' + CAIRO_HAS_GALLIUM_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_GALLIUM_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_gallium_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_gallium_headers) +all_cairo_private += $(cairo_gallium_private) +all_cairo_cxx_sources += $(cairo_gallium_cxx_sources) +all_cairo_sources += $(cairo_gallium_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_gallium_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gallium_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_gallium_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_gallium_headers) +enabled_cairo_private += $(cairo_gallium_private) +enabled_cairo_cxx_sources += $(cairo_gallium_cxx_sources) +enabled_cairo_sources += $(cairo_gallium_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GALLIUM_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_gallium_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gallium_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gallium_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_GALLIUM_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_gallium" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-gallium.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_gallium" = xyes; then : + : + ac_config_files="$ac_config_files cairo-gallium-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-gallium.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-gallium.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GALLIUM_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_gallium" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GALLIUM_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_GALLIUM_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_gallium" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Gallium3D surface backend feature is still under active development +--- and is included in this release only as a preview. It does NOT fully work +--- yet and incompatible changes may yet be made to Gallium3D surface backend +--- specific API.' + + + +fi + + + + + + + # Check whether --enable-png was given. +if test "${enable_png+set}" = set; then : + enableval=$enable_png; enable_png=$enableval +else + enable_png=yes +fi + + case $enable_png in #( + no) : + use_png="no (disabled, use --enable-png to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's PNG functions feature" >&5 +$as_echo_n "checking for cairo's PNG functions feature... " >&6; } + echo + + use_png=yes + png_BASE="cairo" +png_REQUIRES="$ac_env_png_REQUIRES_value" +png_CFLAGS="$ac_env_png_CFLAGS_value" +png_NONPKGCONFIG_CFLAGS="$ac_env_png_NONPKGCONFIG_CFLAGS_value" +png_LIBS="$ac_env_png_LIBS_value" +png_NONPKGCONFIG_LIBS="$ac_env_png_NONPKGCONFIG_LIBS_value" +png_NONPKGCONFIG_EXTRA_LIBS="$ac_env_png_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_png=no + + if test "x$png_REQUIRES" = x; then + # libpng13 is GnuWin32's libpng-1.2.8 :-( + for l in libpng libpng14 libpng12 libpng13 libpng10; do + if $PKG_CONFIG --exists $l ; then + png_REQUIRES=$l + use_png=yes + break + fi + done + else + use_png=yes + fi + + if test "x$use_png" = "xyes" ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for png" >&5 +$as_echo_n "checking for png... " >&6; } + +if test -n "$png_CFLAGS"; then + pkg_cv_png_CFLAGS="$png_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$png_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$png_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags "$png_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$png_LIBS"; then + pkg_cv_png_LIBS="$png_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$png_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$png_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_png_LIBS=`$PKG_CONFIG --libs "$png_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + png_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$png_REQUIRES" 2>&1` + else + png_PKG_ERRORS=`$PKG_CONFIG --print-errors "$png_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$png_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +else + png_CFLAGS=$pkg_cv_png_CFLAGS + png_LIBS=$pkg_cv_png_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find libpng in the pkg-config search path" >&5 +$as_echo "$as_me: WARNING: Could not find libpng in the pkg-config search path" >&2;} + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's PNG functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's PNG functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_png" >&5 +$as_echo "$use_png" >&6; } + + if test "x$enable_png" = "xyes" -a "x$use_png" != xyes; then : + as_fn_error $? "recommended PNG functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-png: \`$use_png', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_png" = "xyes"; then : + CAIRO_REQUIRES="$png_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$png_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$png_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$png_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$png_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset png_BASE +unset png_REQUIRES +unset png_CFLAGS +unset png_NONPKGCONFIG_CFLAGS +unset png_LIBS +unset png_NONPKGCONFIG_LIBS +unset png_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_png" = xyes; then + CAIRO_HAS_PNG_FUNCTIONS_TRUE= + CAIRO_HAS_PNG_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_PNG_FUNCTIONS_TRUE='#' + CAIRO_HAS_PNG_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_PNG_FUNCTIONS=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_png_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_png_headers) +all_cairo_private += $(cairo_png_private) +all_cairo_cxx_sources += $(cairo_png_cxx_sources) +all_cairo_sources += $(cairo_png_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_png_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_png_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_png_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_png_headers) +enabled_cairo_private += $(cairo_png_private) +enabled_cairo_cxx_sources += $(cairo_png_cxx_sources) +enabled_cairo_sources += $(cairo_png_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PNG_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_png_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_png_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_png_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_PNG_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_png" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-png.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_png" = xyes; then : + : + ac_config_files="$ac_config_files cairo-png-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-png.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-png.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PNG_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_png" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_PNG_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_PNG_FUNCTIONS' + + + + if test "x$use_png" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_PNG_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_PNG_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_png" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the PNG functions ++++ feature.' + + + +fi + + + + + # Check whether --enable-gl was given. +if test "${enable_gl+set}" = set; then : + enableval=$enable_gl; enable_gl=$enableval +else + enable_gl=no +fi + + case $enable_gl in #( + no) : + use_gl="no (disabled, use --enable-gl to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's OpenGL surface backend feature" >&5 +$as_echo_n "checking for cairo's OpenGL surface backend feature... " >&6; } + echo + + use_gl=yes + gl_BASE="cairo" +gl_REQUIRES="$ac_env_gl_REQUIRES_value" +gl_CFLAGS="$ac_env_gl_CFLAGS_value" +gl_NONPKGCONFIG_CFLAGS="$ac_env_gl_NONPKGCONFIG_CFLAGS_value" +gl_LIBS="$ac_env_gl_LIBS_value" +gl_NONPKGCONFIG_LIBS="$ac_env_gl_NONPKGCONFIG_LIBS_value" +gl_NONPKGCONFIG_EXTRA_LIBS="$ac_env_gl_NONPKGCONFIG_EXTRA_LIBS_value" + + + + gl_REQUIRES="gl" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gl" >&5 +$as_echo_n "checking for gl... " >&6; } + +if test -n "$gl_CFLAGS"; then + pkg_cv_gl_CFLAGS="$gl_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gl_CFLAGS=`$PKG_CONFIG --cflags "$gl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$gl_LIBS"; then + pkg_cv_gl_LIBS="$gl_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gl_LIBS=`$PKG_CONFIG --libs "$gl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + gl_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$gl_REQUIRES" 2>&1` + else + gl_PKG_ERRORS=`$PKG_CONFIG --print-errors "$gl_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$gl_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default" +if test "x$ac_cv_header_GL_gl_h" = x""yes; then : + +else + use_gl="no (gl.pc nor OpenGL headers not found)" +fi + + + if test "x$use_gl" = "xyes"; then + gl_NONPKGCONFIG_CFLAGS= + gl_NONPKGCONFIG_LIBS="-lGL" + fi +elif test $pkg_failed = untried; then + + ac_fn_c_check_header_mongrel "$LINENO" "GL/gl.h" "ac_cv_header_GL_gl_h" "$ac_includes_default" +if test "x$ac_cv_header_GL_gl_h" = x""yes; then : + +else + use_gl="no (gl.pc nor OpenGL headers not found)" +fi + + + if test "x$use_gl" = "xyes"; then + gl_NONPKGCONFIG_CFLAGS= + gl_NONPKGCONFIG_LIBS="-lGL" + fi +else + gl_CFLAGS=$pkg_cv_gl_CFLAGS + gl_LIBS=$pkg_cv_gl_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then + gl_LIBS="$gl_LIBS -ldl" + fi + + need_glx_functions=yes + need_wgl_functions=yes + need_egl_functions=yes + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's OpenGL surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's OpenGL surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_gl" >&5 +$as_echo "$use_gl" >&6; } + + if test "x$enable_gl" = "xyes" -a "x$use_gl" != xyes; then : + as_fn_error $? " OpenGL surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-gl: \`$use_gl', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_gl" = "xyes"; then : + CAIRO_REQUIRES="$gl_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$gl_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$gl_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$gl_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$gl_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset gl_BASE +unset gl_REQUIRES +unset gl_CFLAGS +unset gl_NONPKGCONFIG_CFLAGS +unset gl_LIBS +unset gl_NONPKGCONFIG_LIBS +unset gl_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_gl" = xyes; then + CAIRO_HAS_GL_SURFACE_TRUE= + CAIRO_HAS_GL_SURFACE_FALSE='#' +else + CAIRO_HAS_GL_SURFACE_TRUE='#' + CAIRO_HAS_GL_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_GL_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_gl_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_gl_headers) +all_cairo_private += $(cairo_gl_private) +all_cairo_cxx_sources += $(cairo_gl_cxx_sources) +all_cairo_sources += $(cairo_gl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_gl_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gl_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_gl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_gl_headers) +enabled_cairo_private += $(cairo_gl_private) +enabled_cairo_cxx_sources += $(cairo_gl_cxx_sources) +enabled_cairo_sources += $(cairo_gl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GL_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_gl_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gl_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_GL_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_GL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_gl" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-gl.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_gl" = xyes; then : + : + ac_config_files="$ac_config_files cairo-gl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-gl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-gl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GL_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_gl" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GL_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_GL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_GL_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_gl" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The OpenGL surface backend feature is still under active development and +--- is included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to OpenGL surface backend +--- specific API.' + + + +fi + + + + + + # Check whether --enable-glesv2 was given. +if test "${enable_glesv2+set}" = set; then : + enableval=$enable_glesv2; enable_glesv2=$enableval +else + enable_glesv2=no +fi + + case $enable_glesv2 in #( + no) : + use_glesv2="no (disabled, use --enable-glesv2 to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's OpenGLESv2 surface backend feature" >&5 +$as_echo_n "checking for cairo's OpenGLESv2 surface backend feature... " >&6; } + echo + + use_glesv2=yes + glesv2_BASE="cairo" +glesv2_REQUIRES="$ac_env_glesv2_REQUIRES_value" +glesv2_CFLAGS="$ac_env_glesv2_CFLAGS_value" +glesv2_NONPKGCONFIG_CFLAGS="$ac_env_glesv2_NONPKGCONFIG_CFLAGS_value" +glesv2_LIBS="$ac_env_glesv2_LIBS_value" +glesv2_NONPKGCONFIG_LIBS="$ac_env_glesv2_NONPKGCONFIG_LIBS_value" +glesv2_NONPKGCONFIG_EXTRA_LIBS="$ac_env_glesv2_NONPKGCONFIG_EXTRA_LIBS_value" + + + + glesv2_REQUIRES="gles20" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glesv2" >&5 +$as_echo_n "checking for glesv2... " >&6; } + +if test -n "$glesv2_CFLAGS"; then + pkg_cv_glesv2_CFLAGS="$glesv2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$glesv2_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$glesv2_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glesv2_CFLAGS=`$PKG_CONFIG --cflags "$glesv2_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$glesv2_LIBS"; then + pkg_cv_glesv2_LIBS="$glesv2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$glesv2_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$glesv2_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glesv2_LIBS=`$PKG_CONFIG --libs "$glesv2_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + glesv2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$glesv2_REQUIRES" 2>&1` + else + glesv2_PKG_ERRORS=`$PKG_CONFIG --print-errors "$glesv2_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$glesv2_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + ac_fn_c_check_header_mongrel "$LINENO" "GLES2/gl2.h" "ac_cv_header_GLES2_gl2_h" "$ac_includes_default" +if test "x$ac_cv_header_GLES2_gl2_h" = x""yes; then : + +else + use_glesv2="no (glesv2.pc nor OpenGL ES 2.0 headers not found)" +fi + + + if test "x$use_glesv2" = "xyes"; then + glesv2_NONPKGCONFIG_CFLAGS= + glesv2_NONPKGCONFIG_LIBS="-lGLESv2" + fi +elif test $pkg_failed = untried; then + + ac_fn_c_check_header_mongrel "$LINENO" "GLES2/gl2.h" "ac_cv_header_GLES2_gl2_h" "$ac_includes_default" +if test "x$ac_cv_header_GLES2_gl2_h" = x""yes; then : + +else + use_glesv2="no (glesv2.pc nor OpenGL ES 2.0 headers not found)" +fi + + + if test "x$use_glesv2" = "xyes"; then + glesv2_NONPKGCONFIG_CFLAGS= + glesv2_NONPKGCONFIG_LIBS="-lGLESv2" + fi +else + glesv2_CFLAGS=$pkg_cv_glesv2_CFLAGS + glesv2_LIBS=$pkg_cv_glesv2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then + glesv2_LIBS="$glesv2_LIBS -ldl" + fi + + need_egl_functions=yes + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's OpenGLESv2 surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's OpenGLESv2 surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_glesv2" >&5 +$as_echo "$use_glesv2" >&6; } + + if test "x$enable_glesv2" = "xyes" -a "x$use_glesv2" != xyes; then : + as_fn_error $? " OpenGLESv2 surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-glesv2: \`$use_glesv2', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_glesv2" = "xyes"; then : + CAIRO_REQUIRES="$glesv2_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$glesv2_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$glesv2_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$glesv2_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$glesv2_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset glesv2_BASE +unset glesv2_REQUIRES +unset glesv2_CFLAGS +unset glesv2_NONPKGCONFIG_CFLAGS +unset glesv2_LIBS +unset glesv2_NONPKGCONFIG_LIBS +unset glesv2_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_glesv2" = xyes; then + CAIRO_HAS_GLESV2_SURFACE_TRUE= + CAIRO_HAS_GLESV2_SURFACE_FALSE='#' +else + CAIRO_HAS_GLESV2_SURFACE_TRUE='#' + CAIRO_HAS_GLESV2_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_GLESV2_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_glesv2_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_glesv2_headers) +all_cairo_private += $(cairo_glesv2_private) +all_cairo_cxx_sources += $(cairo_glesv2_cxx_sources) +all_cairo_sources += $(cairo_glesv2_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_glesv2_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv2_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_glesv2_headers) +enabled_cairo_private += $(cairo_glesv2_private) +enabled_cairo_cxx_sources += $(cairo_glesv2_cxx_sources) +enabled_cairo_sources += $(cairo_glesv2_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GLESV2_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv2_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glesv2_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_GLESV2_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_glesv2" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-glesv2.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_glesv2" = xyes; then : + : + ac_config_files="$ac_config_files cairo-glesv2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-glesv2.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-glesv2.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GLESV2_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_glesv2" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GLESV2_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_GLESV2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_glesv2" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The OpenGLESv2 surface backend feature is still under active development +--- and is included in this release only as a preview. It does NOT fully work +--- yet and incompatible changes may yet be made to OpenGLESv2 surface +--- backend specific API.' + + + +fi + + + + + + # Check whether --enable-cogl was given. +if test "${enable_cogl+set}" = set; then : + enableval=$enable_cogl; enable_cogl=$enableval +else + enable_cogl=no +fi + + case $enable_cogl in #( + no) : + use_cogl="no (disabled, use --enable-cogl to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Cogl surface backend feature" >&5 +$as_echo_n "checking for cairo's Cogl surface backend feature... " >&6; } + echo + + use_cogl=yes + cogl_BASE="cairo" +cogl_REQUIRES="$ac_env_cogl_REQUIRES_value" +cogl_CFLAGS="$ac_env_cogl_CFLAGS_value" +cogl_NONPKGCONFIG_CFLAGS="$ac_env_cogl_NONPKGCONFIG_CFLAGS_value" +cogl_LIBS="$ac_env_cogl_LIBS_value" +cogl_NONPKGCONFIG_LIBS="$ac_env_cogl_NONPKGCONFIG_LIBS_value" +cogl_NONPKGCONFIG_EXTRA_LIBS="$ac_env_cogl_NONPKGCONFIG_EXTRA_LIBS_value" + + + + cogl_REQUIRES="cogl-2.0-experimental" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cogl" >&5 +$as_echo_n "checking for cogl... " >&6; } + +if test -n "$cogl_CFLAGS"; then + pkg_cv_cogl_CFLAGS="$cogl_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$cogl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$cogl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_cogl_CFLAGS=`$PKG_CONFIG --cflags "$cogl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$cogl_LIBS"; then + pkg_cv_cogl_LIBS="$cogl_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$cogl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$cogl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_cogl_LIBS=`$PKG_CONFIG --libs "$cogl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + cogl_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$cogl_REQUIRES" 2>&1` + else + cogl_PKG_ERRORS=`$PKG_CONFIG --print-errors "$cogl_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$cogl_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_cogl="no" +elif test $pkg_failed = untried; then + use_cogl="no" +else + cogl_CFLAGS=$pkg_cv_cogl_CFLAGS + cogl_LIBS=$pkg_cv_cogl_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Cogl surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Cogl surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_cogl" >&5 +$as_echo "$use_cogl" >&6; } + + if test "x$enable_cogl" = "xyes" -a "x$use_cogl" != xyes; then : + as_fn_error $? " Cogl surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-cogl: \`$use_cogl', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_cogl" = "xyes"; then : + CAIRO_REQUIRES="$cogl_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$cogl_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$cogl_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$cogl_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$cogl_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset cogl_BASE +unset cogl_REQUIRES +unset cogl_CFLAGS +unset cogl_NONPKGCONFIG_CFLAGS +unset cogl_LIBS +unset cogl_NONPKGCONFIG_LIBS +unset cogl_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_cogl" = xyes; then + CAIRO_HAS_COGL_SURFACE_TRUE= + CAIRO_HAS_COGL_SURFACE_FALSE='#' +else + CAIRO_HAS_COGL_SURFACE_TRUE='#' + CAIRO_HAS_COGL_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_COGL_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_cogl_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_cogl_headers) +all_cairo_private += $(cairo_cogl_private) +all_cairo_cxx_sources += $(cairo_cogl_cxx_sources) +all_cairo_sources += $(cairo_cogl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_cogl_headers) +enabled_cairo_private += $(cairo_cogl_private) +enabled_cairo_cxx_sources += $(cairo_cogl_cxx_sources) +enabled_cairo_sources += $(cairo_cogl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_COGL_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_COGL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_COGL_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_COGL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_cogl" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-cogl.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_cogl" = xyes; then : + : + ac_config_files="$ac_config_files cairo-cogl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-cogl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-cogl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_COGL_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_COGL_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_cogl" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_COGL_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_COGL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_COGL_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_cogl" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The Cogl surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to Cogl surface backend specific +--- API.' + + + +fi + + + + + + + # Check whether --enable-directfb was given. +if test "${enable_directfb+set}" = set; then : + enableval=$enable_directfb; enable_directfb=$enableval +else + enable_directfb=no +fi + + case $enable_directfb in #( + no) : + use_directfb="no (disabled, use --enable-directfb to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's directfb surface backend feature" >&5 +$as_echo_n "checking for cairo's directfb surface backend feature... " >&6; } + echo + + use_directfb=yes + directfb_BASE="cairo" +directfb_REQUIRES="$ac_env_directfb_REQUIRES_value" +directfb_CFLAGS="$ac_env_directfb_CFLAGS_value" +directfb_NONPKGCONFIG_CFLAGS="$ac_env_directfb_NONPKGCONFIG_CFLAGS_value" +directfb_LIBS="$ac_env_directfb_LIBS_value" +directfb_NONPKGCONFIG_LIBS="$ac_env_directfb_NONPKGCONFIG_LIBS_value" +directfb_NONPKGCONFIG_EXTRA_LIBS="$ac_env_directfb_NONPKGCONFIG_EXTRA_LIBS_value" + + + + directfb_REQUIRES=directfb + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for directfb" >&5 +$as_echo_n "checking for directfb... " >&6; } + +if test -n "$directfb_CFLAGS"; then + pkg_cv_directfb_CFLAGS="$directfb_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$directfb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$directfb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_directfb_CFLAGS=`$PKG_CONFIG --cflags "$directfb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$directfb_LIBS"; then + pkg_cv_directfb_LIBS="$directfb_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$directfb_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$directfb_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_directfb_LIBS=`$PKG_CONFIG --libs "$directfb_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + directfb_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$directfb_REQUIRES" 2>&1` + else + directfb_PKG_ERRORS=`$PKG_CONFIG --print-errors "$directfb_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$directfb_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_directfb="no (requires $directfb_REQUIRES http://www.directfb.org)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_directfb="no (requires $directfb_REQUIRES http://www.directfb.org)" +else + directfb_CFLAGS=$pkg_cv_directfb_CFLAGS + directfb_LIBS=$pkg_cv_directfb_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's directfb surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's directfb surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_directfb" >&5 +$as_echo "$use_directfb" >&6; } + + if test "x$enable_directfb" = "xyes" -a "x$use_directfb" != xyes; then : + as_fn_error $? " directfb surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-directfb: \`$use_directfb', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_directfb" = "xyes"; then : + CAIRO_REQUIRES="$directfb_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$directfb_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$directfb_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$directfb_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$directfb_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset directfb_BASE +unset directfb_REQUIRES +unset directfb_CFLAGS +unset directfb_NONPKGCONFIG_CFLAGS +unset directfb_LIBS +unset directfb_NONPKGCONFIG_LIBS +unset directfb_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_directfb" = xyes; then + CAIRO_HAS_DIRECTFB_SURFACE_TRUE= + CAIRO_HAS_DIRECTFB_SURFACE_FALSE='#' +else + CAIRO_HAS_DIRECTFB_SURFACE_TRUE='#' + CAIRO_HAS_DIRECTFB_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_DIRECTFB_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_directfb_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_directfb_headers) +all_cairo_private += $(cairo_directfb_private) +all_cairo_cxx_sources += $(cairo_directfb_cxx_sources) +all_cairo_sources += $(cairo_directfb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_directfb_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_directfb_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_directfb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_directfb_headers) +enabled_cairo_private += $(cairo_directfb_private) +enabled_cairo_cxx_sources += $(cairo_directfb_cxx_sources) +enabled_cairo_sources += $(cairo_directfb_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_DIRECTFB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_directfb_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_directfb_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_directfb_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_DIRECTFB_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_directfb" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-directfb.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_directfb" = xyes; then : + : + ac_config_files="$ac_config_files cairo-directfb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-directfb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-directfb.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_DIRECTFB_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_directfb" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_DIRECTFB_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_DIRECTFB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_directfb" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The directfb surface backend feature is still under active development +--- and is included in this release only as a preview. It does NOT fully work +--- yet and incompatible changes may yet be made to directfb surface backend +--- specific API.' + + + +fi + + + + + + + # Check whether --enable-vg was given. +if test "${enable_vg+set}" = set; then : + enableval=$enable_vg; enable_vg=$enableval +else + enable_vg=no +fi + + case $enable_vg in #( + no) : + use_vg="no (disabled, use --enable-vg to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's OpenVG surface backend feature" >&5 +$as_echo_n "checking for cairo's OpenVG surface backend feature... " >&6; } + echo + + use_vg=yes + vg_BASE="cairo" +vg_REQUIRES="$ac_env_vg_REQUIRES_value" +vg_CFLAGS="$ac_env_vg_CFLAGS_value" +vg_NONPKGCONFIG_CFLAGS="$ac_env_vg_NONPKGCONFIG_CFLAGS_value" +vg_LIBS="$ac_env_vg_LIBS_value" +vg_NONPKGCONFIG_LIBS="$ac_env_vg_NONPKGCONFIG_LIBS_value" +vg_NONPKGCONFIG_EXTRA_LIBS="$ac_env_vg_NONPKGCONFIG_EXTRA_LIBS_value" + + + + ac_fn_c_check_header_mongrel "$LINENO" "VG/openvg.h" "ac_cv_header_VG_openvg_h" "$ac_includes_default" +if test "x$ac_cv_header_VG_openvg_h" = x""yes; then : + +else + use_vg="no (OpenVG headers not found)" +fi + + + if test "x$use_vg" = "xyes"; then + vg_NONPKGCONFIG_CFLAGS= + vg_NONPKGCONFIG_LIBS="-lOpenVG" + need_egl_functions=yes + need_glx_functions=yes + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's OpenVG surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's OpenVG surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_vg" >&5 +$as_echo "$use_vg" >&6; } + + if test "x$enable_vg" = "xyes" -a "x$use_vg" != xyes; then : + as_fn_error $? " OpenVG surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-vg: \`$use_vg', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_vg" = "xyes"; then : + CAIRO_REQUIRES="$vg_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$vg_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$vg_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$vg_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$vg_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset vg_BASE +unset vg_REQUIRES +unset vg_CFLAGS +unset vg_NONPKGCONFIG_CFLAGS +unset vg_LIBS +unset vg_NONPKGCONFIG_LIBS +unset vg_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_vg" = xyes; then + CAIRO_HAS_VG_SURFACE_TRUE= + CAIRO_HAS_VG_SURFACE_FALSE='#' +else + CAIRO_HAS_VG_SURFACE_TRUE='#' + CAIRO_HAS_VG_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_VG_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_vg_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_vg_headers) +all_cairo_private += $(cairo_vg_private) +all_cairo_cxx_sources += $(cairo_vg_cxx_sources) +all_cairo_sources += $(cairo_vg_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_vg_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_vg_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_vg_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_vg_headers) +enabled_cairo_private += $(cairo_vg_private) +enabled_cairo_cxx_sources += $(cairo_vg_cxx_sources) +enabled_cairo_sources += $(cairo_vg_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_VG_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_VG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_vg_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_vg_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_vg_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_VG_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_VG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_vg" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-vg.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_vg" = xyes; then : + : + ac_config_files="$ac_config_files cairo-vg-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-vg.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-vg.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_VG_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_VG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_vg" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_VG_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_VG_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_VG_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_vg" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The OpenVG surface backend feature is still under active development and +--- is included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to OpenVG surface backend +--- specific API.' + + + +fi + + + + + + # Check whether --enable-egl was given. +if test "${enable_egl+set}" = set; then : + enableval=$enable_egl; enable_egl=$enableval +else + enable_egl=auto +fi + + case $enable_egl in #( + no) : + use_egl="no (disabled, use --enable-egl to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's EGL functions feature" >&5 +$as_echo_n "checking for cairo's EGL functions feature... " >&6; } + echo + + use_egl=yes + egl_BASE="cairo" +egl_REQUIRES="$ac_env_egl_REQUIRES_value" +egl_CFLAGS="$ac_env_egl_CFLAGS_value" +egl_NONPKGCONFIG_CFLAGS="$ac_env_egl_NONPKGCONFIG_CFLAGS_value" +egl_LIBS="$ac_env_egl_LIBS_value" +egl_NONPKGCONFIG_LIBS="$ac_env_egl_NONPKGCONFIG_LIBS_value" +egl_NONPKGCONFIG_EXTRA_LIBS="$ac_env_egl_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$need_egl_functions" = "xyes"; then + egl_REQUIRES="egl" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egl" >&5 +$as_echo_n "checking for egl... " >&6; } + +if test -n "$egl_CFLAGS"; then + pkg_cv_egl_CFLAGS="$egl_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$egl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$egl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_egl_CFLAGS=`$PKG_CONFIG --cflags "$egl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$egl_LIBS"; then + pkg_cv_egl_LIBS="$egl_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$egl_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$egl_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_egl_LIBS=`$PKG_CONFIG --libs "$egl_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + egl_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$egl_REQUIRES" 2>&1` + else + egl_PKG_ERRORS=`$PKG_CONFIG --print-errors "$egl_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$egl_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + egl_REQUIRES="" + ac_fn_c_check_header_mongrel "$LINENO" "EGL/egl.h" "ac_cv_header_EGL_egl_h" "$ac_includes_default" +if test "x$ac_cv_header_EGL_egl_h" = x""yes; then : + +else + use_egl="no (EGL headers not found)" +fi + + + if test "x$use_egl" = "xyes"; then + egl_NONPKGCONFIG_CFLAGS= + egl_NONPKGCONFIG_LIBS= + save_LIBS="$LIBS" + other_egl_LIBS="" + # Temporary workaround for missing link from egl13 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csi_stream_attachresource in -lcsi" >&5 +$as_echo_n "checking for csi_stream_attachresource in -lcsi... " >&6; } +if test "${ac_cv_lib_csi_csi_stream_attachresource+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcsi $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char csi_stream_attachresource (); +int +main () +{ +return csi_stream_attachresource (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_csi_csi_stream_attachresource=yes +else + ac_cv_lib_csi_csi_stream_attachresource=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_csi_csi_stream_attachresource" >&5 +$as_echo "$ac_cv_lib_csi_csi_stream_attachresource" >&6; } +if test "x$ac_cv_lib_csi_csi_stream_attachresource" = x""yes; then : + other_egl_LIBS="-lcsi" +fi + + LIBS="$other_egl_LIBS $LIBS" + for egl_lib in EGL egl13 egl12 egl11; do + if test -z "$egl_NONPKGCONFIG_LIBS"; then + as_ac_Lib=`$as_echo "ac_cv_lib_$egl_lib''_eglGetError" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for eglGetError in -l$egl_lib" >&5 +$as_echo_n "checking for eglGetError in -l$egl_lib... " >&6; } +if eval "test \"\${$as_ac_Lib+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$egl_lib $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char eglGetError (); +int +main () +{ +return eglGetError (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + egl_NONPKGCONFIG_LIBS="-l$egl_lib" +fi + + fi + done + if test -z "$egl_NONPKGCONFIG_LIBS"; then + use_egl="no (EGL library not found)" + else + egl_NONPKGCONFIG_LIBS="$egl_NONPKGCONFIG_LIBS $other_egl_LIBS" + fi + LIBS="$save_LIBS" + fi + +elif test $pkg_failed = untried; then + egl_REQUIRES="" + ac_fn_c_check_header_mongrel "$LINENO" "EGL/egl.h" "ac_cv_header_EGL_egl_h" "$ac_includes_default" +if test "x$ac_cv_header_EGL_egl_h" = x""yes; then : + +else + use_egl="no (EGL headers not found)" +fi + + + if test "x$use_egl" = "xyes"; then + egl_NONPKGCONFIG_CFLAGS= + egl_NONPKGCONFIG_LIBS= + save_LIBS="$LIBS" + other_egl_LIBS="" + # Temporary workaround for missing link from egl13 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for csi_stream_attachresource in -lcsi" >&5 +$as_echo_n "checking for csi_stream_attachresource in -lcsi... " >&6; } +if test "${ac_cv_lib_csi_csi_stream_attachresource+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcsi $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char csi_stream_attachresource (); +int +main () +{ +return csi_stream_attachresource (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_csi_csi_stream_attachresource=yes +else + ac_cv_lib_csi_csi_stream_attachresource=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_csi_csi_stream_attachresource" >&5 +$as_echo "$ac_cv_lib_csi_csi_stream_attachresource" >&6; } +if test "x$ac_cv_lib_csi_csi_stream_attachresource" = x""yes; then : + other_egl_LIBS="-lcsi" +fi + + LIBS="$other_egl_LIBS $LIBS" + for egl_lib in EGL egl13 egl12 egl11; do + if test -z "$egl_NONPKGCONFIG_LIBS"; then + as_ac_Lib=`$as_echo "ac_cv_lib_$egl_lib''_eglGetError" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for eglGetError in -l$egl_lib" >&5 +$as_echo_n "checking for eglGetError in -l$egl_lib... " >&6; } +if eval "test \"\${$as_ac_Lib+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-l$egl_lib $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char eglGetError (); +int +main () +{ +return eglGetError (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + egl_NONPKGCONFIG_LIBS="-l$egl_lib" +fi + + fi + done + if test -z "$egl_NONPKGCONFIG_LIBS"; then + use_egl="no (EGL library not found)" + else + egl_NONPKGCONFIG_LIBS="$egl_NONPKGCONFIG_LIBS $other_egl_LIBS" + fi + LIBS="$save_LIBS" + fi + +else + egl_CFLAGS=$pkg_cv_egl_CFLAGS + egl_LIBS=$pkg_cv_egl_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + else + use_egl="no (not required by any backend)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's EGL functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's EGL functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_egl" >&5 +$as_echo "$use_egl" >&6; } + + if test "x$enable_egl" = "xyes" -a "x$use_egl" != xyes; then : + as_fn_error $? " EGL functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-egl: \`$use_egl', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_egl" = "xyes"; then : + CAIRO_REQUIRES="$egl_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$egl_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$egl_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$egl_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$egl_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset egl_BASE +unset egl_REQUIRES +unset egl_CFLAGS +unset egl_NONPKGCONFIG_CFLAGS +unset egl_LIBS +unset egl_NONPKGCONFIG_LIBS +unset egl_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_egl" = xyes; then + CAIRO_HAS_EGL_FUNCTIONS_TRUE= + CAIRO_HAS_EGL_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_EGL_FUNCTIONS_TRUE='#' + CAIRO_HAS_EGL_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_EGL_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_egl_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_egl_headers) +all_cairo_private += $(cairo_egl_private) +all_cairo_cxx_sources += $(cairo_egl_cxx_sources) +all_cairo_sources += $(cairo_egl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_egl_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_egl_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_egl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_egl_headers) +enabled_cairo_private += $(cairo_egl_private) +enabled_cairo_cxx_sources += $(cairo_egl_cxx_sources) +enabled_cairo_sources += $(cairo_egl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_EGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_egl_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_egl_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_egl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_EGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_egl" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-egl.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_egl" = xyes; then : + : + ac_config_files="$ac_config_files cairo-egl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-egl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-egl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_EGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_egl" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_EGL_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_EGL_FUNCTIONS' + + + + if test "x$use_egl" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_EGL_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_EGL_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + # Check whether --enable-glx was given. +if test "${enable_glx+set}" = set; then : + enableval=$enable_glx; enable_glx=$enableval +else + enable_glx=auto +fi + + case $enable_glx in #( + no) : + use_glx="no (disabled, use --enable-glx to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's GLX functions feature" >&5 +$as_echo_n "checking for cairo's GLX functions feature... " >&6; } + echo + + use_glx=yes + glx_BASE="cairo" +glx_REQUIRES="$ac_env_glx_REQUIRES_value" +glx_CFLAGS="$ac_env_glx_CFLAGS_value" +glx_NONPKGCONFIG_CFLAGS="$ac_env_glx_NONPKGCONFIG_CFLAGS_value" +glx_LIBS="$ac_env_glx_LIBS_value" +glx_NONPKGCONFIG_LIBS="$ac_env_glx_NONPKGCONFIG_LIBS_value" +glx_NONPKGCONFIG_EXTRA_LIBS="$ac_env_glx_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$need_glx_functions" = "xyes"; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $gl_CFLAGS $gl_NONPKGCONFIG_CFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "GL/glx.h" "ac_cv_header_GL_glx_h" "$ac_includes_default" +if test "x$ac_cv_header_GL_glx_h" = x""yes; then : + +else + use_glx="no (GLX headers not found)" +fi + + + glx_NONPKGCONFIG_CFLAGS= + glx_NONPKGCONFIG_LIBS="-lGL" + CFLAGS="$save_CFLAGS" + else + use_glx="no (not required by any backend)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's GLX functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's GLX functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_glx" >&5 +$as_echo "$use_glx" >&6; } + + if test "x$enable_glx" = "xyes" -a "x$use_glx" != xyes; then : + as_fn_error $? " GLX functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-glx: \`$use_glx', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_glx" = "xyes"; then : + CAIRO_REQUIRES="$glx_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$glx_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$glx_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$glx_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$glx_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset glx_BASE +unset glx_REQUIRES +unset glx_CFLAGS +unset glx_NONPKGCONFIG_CFLAGS +unset glx_LIBS +unset glx_NONPKGCONFIG_LIBS +unset glx_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_glx" = xyes; then + CAIRO_HAS_GLX_FUNCTIONS_TRUE= + CAIRO_HAS_GLX_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_GLX_FUNCTIONS_TRUE='#' + CAIRO_HAS_GLX_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_GLX_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_glx_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_glx_headers) +all_cairo_private += $(cairo_glx_private) +all_cairo_cxx_sources += $(cairo_glx_cxx_sources) +all_cairo_sources += $(cairo_glx_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_glx_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glx_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_glx_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_glx_headers) +enabled_cairo_private += $(cairo_glx_private) +enabled_cairo_cxx_sources += $(cairo_glx_cxx_sources) +enabled_cairo_sources += $(cairo_glx_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GLX_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_glx_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_glx_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glx_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_GLX_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_glx" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-glx.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_glx" = xyes; then : + : + ac_config_files="$ac_config_files cairo-glx-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-glx.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-glx.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GLX_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_glx" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GLX_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_GLX_FUNCTIONS' + + + + if test "x$use_glx" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_GLX_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_GLX_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + # Check whether --enable-wgl was given. +if test "${enable_wgl+set}" = set; then : + enableval=$enable_wgl; enable_wgl=$enableval +else + enable_wgl=auto +fi + + case $enable_wgl in #( + no) : + use_wgl="no (disabled, use --enable-wgl to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's WGL functions feature" >&5 +$as_echo_n "checking for cairo's WGL functions feature... " >&6; } + echo + + use_wgl=yes + wgl_BASE="cairo" +wgl_REQUIRES="$ac_env_wgl_REQUIRES_value" +wgl_CFLAGS="$ac_env_wgl_CFLAGS_value" +wgl_NONPKGCONFIG_CFLAGS="$ac_env_wgl_NONPKGCONFIG_CFLAGS_value" +wgl_LIBS="$ac_env_wgl_LIBS_value" +wgl_NONPKGCONFIG_LIBS="$ac_env_wgl_NONPKGCONFIG_LIBS_value" +wgl_NONPKGCONFIG_EXTRA_LIBS="$ac_env_wgl_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$need_wgl_functions" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default" +if test "x$ac_cv_header_windows_h" = x""yes; then : + +else + use_wgl="no (WGL headers not found)" +fi + + + else + use_wgl="no (not required by any backend)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's WGL functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's WGL functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_wgl" >&5 +$as_echo "$use_wgl" >&6; } + + if test "x$enable_wgl" = "xyes" -a "x$use_wgl" != xyes; then : + as_fn_error $? " WGL functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-wgl: \`$use_wgl', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_wgl" = "xyes"; then : + CAIRO_REQUIRES="$wgl_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$wgl_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$wgl_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$wgl_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$wgl_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset wgl_BASE +unset wgl_REQUIRES +unset wgl_CFLAGS +unset wgl_NONPKGCONFIG_CFLAGS +unset wgl_LIBS +unset wgl_NONPKGCONFIG_LIBS +unset wgl_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_wgl" = xyes; then + CAIRO_HAS_WGL_FUNCTIONS_TRUE= + CAIRO_HAS_WGL_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_WGL_FUNCTIONS_TRUE='#' + CAIRO_HAS_WGL_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_WGL_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_wgl_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_wgl_headers) +all_cairo_private += $(cairo_wgl_private) +all_cairo_cxx_sources += $(cairo_wgl_cxx_sources) +all_cairo_sources += $(cairo_wgl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_wgl_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_wgl_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_wgl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_wgl_headers) +enabled_cairo_private += $(cairo_wgl_private) +enabled_cairo_cxx_sources += $(cairo_wgl_cxx_sources) +enabled_cairo_sources += $(cairo_wgl_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_wgl_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_wgl_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_wgl_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_WGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_wgl" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-wgl.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_wgl" = xyes; then : + : + ac_config_files="$ac_config_files cairo-wgl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-wgl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-wgl.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_WGL_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_wgl" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_WGL_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_WGL_FUNCTIONS' + + + + if test "x$use_wgl" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_WGL_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_WGL_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + +any2ppm_cs=no + # Check whether --enable-script was given. +if test "${enable_script+set}" = set; then : + enableval=$enable_script; enable_script=$enableval +else + enable_script=yes +fi + + case $enable_script in #( + no) : + use_script="no (disabled, use --enable-script to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's script surface backend feature" >&5 +$as_echo_n "checking for cairo's script surface backend feature... " >&6; } + echo + + use_script=yes + script_BASE="cairo" +script_REQUIRES="$ac_env_script_REQUIRES_value" +script_CFLAGS="$ac_env_script_CFLAGS_value" +script_NONPKGCONFIG_CFLAGS="$ac_env_script_NONPKGCONFIG_CFLAGS_value" +script_LIBS="$ac_env_script_LIBS_value" +script_NONPKGCONFIG_LIBS="$ac_env_script_NONPKGCONFIG_LIBS_value" +script_NONPKGCONFIG_EXTRA_LIBS="$ac_env_script_NONPKGCONFIG_EXTRA_LIBS_value" + + + + any2ppm_cs=yes + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's script surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's script surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_script" >&5 +$as_echo "$use_script" >&6; } + + if test "x$enable_script" = "xyes" -a "x$use_script" != xyes; then : + as_fn_error $? "recommended script surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-script: \`$use_script', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_script" = "xyes"; then : + CAIRO_REQUIRES="$script_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$script_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$script_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$script_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$script_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset script_BASE +unset script_REQUIRES +unset script_CFLAGS +unset script_NONPKGCONFIG_CFLAGS +unset script_LIBS +unset script_NONPKGCONFIG_LIBS +unset script_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_script" = xyes; then + CAIRO_HAS_SCRIPT_SURFACE_TRUE= + CAIRO_HAS_SCRIPT_SURFACE_FALSE='#' +else + CAIRO_HAS_SCRIPT_SURFACE_TRUE='#' + CAIRO_HAS_SCRIPT_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_SCRIPT_SURFACE=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_script_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_script_headers) +all_cairo_private += $(cairo_script_private) +all_cairo_cxx_sources += $(cairo_script_cxx_sources) +all_cairo_sources += $(cairo_script_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_script_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_script_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_script_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_script_headers) +enabled_cairo_private += $(cairo_script_private) +enabled_cairo_cxx_sources += $(cairo_script_cxx_sources) +enabled_cairo_sources += $(cairo_script_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SCRIPT_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_script_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_script_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_script_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_SCRIPT_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_script" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-script.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_script" = xyes; then : + : + ac_config_files="$ac_config_files cairo-script-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-script.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-script.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SCRIPT_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_script" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_SCRIPT_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_SCRIPT_SURFACE' + + + + if test "x$use_script" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_SCRIPT_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_SCRIPT_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_script" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the script surface ++++ backend feature.' + + + +fi + + + + + +# We use pkg-config to look for freetype2, but fall back to +# freetype-config if it fails. We prefer pkg-config, since we can +# then just put freetype2 >= $FREETYPE_MIN_VERSION in +# Requires.private, but at least up to 2003-06-07, there was no +# freetype2.pc in the release. +# +# FreeType versions come in three forms: +# release (such as 2.1.9) +# libtool (such as 9.7.3) (returned by freetype-config and pkg-config) +# platform-specific/soname (such as 6.3.4) +# and they recommend you never use the platform-specific version +# (see docs/VERSION.DLL in freetype2 sources) +# +# Set these as appropriate: + +# release number - for information only +FREETYPE_MIN_RELEASE=2.1.9 +# libtool-specific version - this is what is checked +FREETYPE_MIN_VERSION=9.7.3 + + # Check whether --enable-ft was given. +if test "${enable_ft+set}" = set; then : + enableval=$enable_ft; enable_ft=$enableval +else + enable_ft=auto +fi + + case $enable_ft in #( + no) : + use_ft="no (disabled, use --enable-ft to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's FreeType font backend feature" >&5 +$as_echo_n "checking for cairo's FreeType font backend feature... " >&6; } + echo + + use_ft=yes + ft_BASE="cairo" +ft_REQUIRES="$ac_env_ft_REQUIRES_value" +ft_CFLAGS="$ac_env_ft_CFLAGS_value" +ft_NONPKGCONFIG_CFLAGS="$ac_env_ft_NONPKGCONFIG_CFLAGS_value" +ft_LIBS="$ac_env_ft_LIBS_value" +ft_NONPKGCONFIG_LIBS="$ac_env_ft_NONPKGCONFIG_LIBS_value" +ft_NONPKGCONFIG_EXTRA_LIBS="$ac_env_ft_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FREETYPE" >&5 +$as_echo_n "checking for FREETYPE... " >&6; } + +if test -n "$FREETYPE_CFLAGS"; then + pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= \$FREETYPE_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2 >= $FREETYPE_MIN_VERSION") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2 >= $FREETYPE_MIN_VERSION" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FREETYPE_LIBS"; then + pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= \$FREETYPE_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2 >= $FREETYPE_MIN_VERSION") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2 >= $FREETYPE_MIN_VERSION" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "freetype2 >= $FREETYPE_MIN_VERSION" 2>&1` + else + FREETYPE_PKG_ERRORS=`$PKG_CONFIG --print-errors "freetype2 >= $FREETYPE_MIN_VERSION" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FREETYPE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + freetype_pkgconfig=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + freetype_pkgconfig=no +else + FREETYPE_CFLAGS=$pkg_cv_FREETYPE_CFLAGS + FREETYPE_LIBS=$pkg_cv_FREETYPE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + freetype_pkgconfig=yes +fi + + if test "x$freetype_pkgconfig" = "xyes"; then + ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES" + else + + if test -z "$FREETYPE_CONFIG"; then + # Extract the first word of "freetype-config", so it can be a program name with args. +set dummy freetype-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_FREETYPE_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $FREETYPE_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_FREETYPE_CONFIG="$FREETYPE_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_FREETYPE_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_FREETYPE_CONFIG" && ac_cv_path_FREETYPE_CONFIG="no" + ;; +esac +fi +FREETYPE_CONFIG=$ac_cv_path_FREETYPE_CONFIG +if test -n "$FREETYPE_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_CONFIG" >&5 +$as_echo "$FREETYPE_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + if test "x$FREETYPE_CONFIG" = "xno" ; then + use_ft='no (freetype-config not found in path or $FREETYPE_CONFIG)' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking freetype2 libtool version" >&5 +$as_echo_n "checking freetype2 libtool version... " >&6; } + + FREETYPE_VERSION=`$FREETYPE_CONFIG --version` + + # Used to indicate true or false condition + ax_compare_version=false + + # Convert the two version strings to be compared into a format that + # allows a simple string comparison. The end result is that a version + # string of the form 1.12.5-r617 will be converted to the form + # 0001001200050617. In other words, each number is zero padded to four + # digits, and non digits are removed. + + ax_compare_version_A=`echo "$FREETYPE_VERSION" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ + -e 's/Z\([0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/[^0-9]//g'` + + + ax_compare_version_B=`echo "$FREETYPE_MIN_VERSION" | sed -e 's/\([0-9]*\)/Z\1Z/g' \ + -e 's/Z\([0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/Z\([0-9][0-9][0-9]\)Z/Z0\1Z/g' \ + -e 's/[^0-9]//g'` + + + ax_compare_version=`echo "x$ax_compare_version_A +x$ax_compare_version_B" | sed 's/^ *//' | sort | sed "s/x${ax_compare_version_A}/false/;s/x${ax_compare_version_B}/true/;1q"` + + + + if test "$ax_compare_version" = "true" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - OK" >&5 +$as_echo "$FREETYPE_VERSION - OK" >&6; } + ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags` + ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs` + else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - Too old" >&5 +$as_echo "$FREETYPE_VERSION - Too old" >&6; } + use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)" + fi + + fi + fi + + ft_CFLAGS="$FREETYPE_CFLAGS" + ft_LIBS="$FREETYPE_LIBS" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's FreeType font backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's FreeType font backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_ft" >&5 +$as_echo "$use_ft" >&6; } + + if test "x$enable_ft" = "xyes" -a "x$use_ft" != xyes; then : + as_fn_error $? " FreeType font backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-ft: \`$use_ft', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_ft" = "xyes"; then : + CAIRO_REQUIRES="$ft_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$ft_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$ft_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$ft_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$ft_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset ft_BASE +unset ft_REQUIRES +unset ft_CFLAGS +unset ft_NONPKGCONFIG_CFLAGS +unset ft_LIBS +unset ft_NONPKGCONFIG_LIBS +unset ft_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_ft" = xyes; then + CAIRO_HAS_FT_FONT_TRUE= + CAIRO_HAS_FT_FONT_FALSE='#' +else + CAIRO_HAS_FT_FONT_TRUE='#' + CAIRO_HAS_FT_FONT_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_FT_FONT=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_ft_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_ft_headers) +all_cairo_private += $(cairo_ft_private) +all_cairo_cxx_sources += $(cairo_ft_cxx_sources) +all_cairo_sources += $(cairo_ft_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_ft_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_ft_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_ft_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_ft_headers) +enabled_cairo_private += $(cairo_ft_private) +enabled_cairo_cxx_sources += $(cairo_ft_cxx_sources) +enabled_cairo_sources += $(cairo_ft_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_FT_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_FT_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_ft_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_ft_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_ft_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_FT_FONT' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_FT_FONT),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_ft" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-ft.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_ft" = xyes; then : + : + ac_config_files="$ac_config_files cairo-ft-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-ft.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-ft.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_FT_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_FT_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_ft" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_FT_FONT' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_FT_FONT' + + + + if test "x$use_ft" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_FT_FONT' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_FT_FONT 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_FT_FONT),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + if test "x$use_ft" = xyes; then : + : + CAIRO_NATIVE_FONT_BACKENDS="${CAIRO_NATIVE_FONT_BACKENDS}"'ft' + + + +fi + + +FONTCONFIG_MIN_VERSION=2.2.95 + # Check whether --enable-fc was given. +if test "${enable_fc+set}" = set; then : + enableval=$enable_fc; enable_fc=$enableval +else + enable_fc=auto +fi + + case $enable_fc in #( + no) : + use_fc="no (disabled, use --enable-fc to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's Fontconfig font backend feature" >&5 +$as_echo_n "checking for cairo's Fontconfig font backend feature... " >&6; } + echo + + use_fc=yes + fc_BASE="cairo" +fc_REQUIRES="$ac_env_fc_REQUIRES_value" +fc_CFLAGS="$ac_env_fc_CFLAGS_value" +fc_NONPKGCONFIG_CFLAGS="$ac_env_fc_NONPKGCONFIG_CFLAGS_value" +fc_LIBS="$ac_env_fc_LIBS_value" +fc_NONPKGCONFIG_LIBS="$ac_env_fc_NONPKGCONFIG_LIBS_value" +fc_NONPKGCONFIG_EXTRA_LIBS="$ac_env_fc_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_fc=$use_ft + if test "x$use_fc" = "xyes"; then + fc_REQUIRES="fontconfig >= $FONTCONFIG_MIN_VERSION" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5 +$as_echo_n "checking for FONTCONFIG... " >&6; } + +if test -n "$FONTCONFIG_CFLAGS"; then + pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$fc_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$fc_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "$fc_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$FONTCONFIG_LIBS"; then + pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$fc_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$fc_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_FONTCONFIG_LIBS=`$PKG_CONFIG --libs "$fc_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$fc_REQUIRES" 2>&1` + else + FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --print-errors "$fc_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$FONTCONFIG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; use_fc="no (requires $fc_REQUIRES)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; use_fc="no (requires $fc_REQUIRES)" +else + FONTCONFIG_CFLAGS=$pkg_cv_FONTCONFIG_CFLAGS + FONTCONFIG_LIBS=$pkg_cv_FONTCONFIG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + fi + fc_CFLAGS="$FONTCONFIG_CFLAGS" + fc_LIBS="$FONTCONFIG_LIBS" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's Fontconfig font backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's Fontconfig font backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_fc" >&5 +$as_echo "$use_fc" >&6; } + + if test "x$enable_fc" = "xyes" -a "x$use_fc" != xyes; then : + as_fn_error $? " Fontconfig font backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-fc: \`$use_fc', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_fc" = "xyes"; then : + CAIRO_REQUIRES="$fc_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$fc_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$fc_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$fc_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$fc_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset fc_BASE +unset fc_REQUIRES +unset fc_CFLAGS +unset fc_NONPKGCONFIG_CFLAGS +unset fc_LIBS +unset fc_NONPKGCONFIG_LIBS +unset fc_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_fc" = xyes; then + CAIRO_HAS_FC_FONT_TRUE= + CAIRO_HAS_FC_FONT_FALSE='#' +else + CAIRO_HAS_FC_FONT_TRUE='#' + CAIRO_HAS_FC_FONT_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_FC_FONT=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_fc_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_fc_headers) +all_cairo_private += $(cairo_fc_private) +all_cairo_cxx_sources += $(cairo_fc_cxx_sources) +all_cairo_sources += $(cairo_fc_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_fc_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_fc_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_fc_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_fc_headers) +enabled_cairo_private += $(cairo_fc_private) +enabled_cairo_cxx_sources += $(cairo_fc_cxx_sources) +enabled_cairo_sources += $(cairo_fc_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_FC_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_FC_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_fc_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_fc_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_fc_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_FC_FONT' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_FC_FONT),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_fc" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-fc.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_fc" = xyes; then : + : + ac_config_files="$ac_config_files cairo-fc-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-fc.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-fc.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_FC_FONT' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_FC_FONT),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_fc" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_FC_FONT' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_FC_FONT' + + + + if test "x$use_fc" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_FC_FONT' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_FC_FONT 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_FC_FONT),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + if test "x$use_fc" = xyes; then : + : + CAIRO_NATIVE_FONT_BACKENDS="${CAIRO_NATIVE_FONT_BACKENDS}"'fc' + + + +fi + + +if test "x$use_ft" = "xyes"; then + _save_libs="$LIBS" + _save_cflags="$CFLAGS" + LIBS="$LIBS $ft_LIBS" + CFLAGS="$CFLAGS $ft_CFLAGS" + ac_fn_c_check_member "$LINENO" "FT_Bitmap_Size" "y_ppem" "ac_cv_member_FT_Bitmap_Size_y_ppem" "#include + #include FT_FREETYPE_H +" +if test "x$ac_cv_member_FT_Bitmap_Size_y_ppem" = x""yes; then : + HAVE_FT_BITMAP_SIZE_Y_PPEM=1 +else + HAVE_FT_BITMAP_SIZE_Y_PPEM=0 +fi + + +cat >>confdefs.h <<_ACEOF +#define HAVE_FT_BITMAP_SIZE_Y_PPEM $HAVE_FT_BITMAP_SIZE_Y_PPEM +_ACEOF + + + for ac_func in FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + LIBS="$_save_libs" + CFLAGS="$_save_cflags" +fi + +if test "x$use_fc" = "xyes"; then + _save_cflags="$CFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $FONTCONFIG_CFLAGS" + LIBS="$LIBS $FONTCONFIG_LIBS" + for ac_func in FcInit FcFini +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + CFLAGS="$_save_cflags" + LIBS="$_save_libs" + +fi + + + # Check whether --enable-ps was given. +if test "${enable_ps+set}" = set; then : + enableval=$enable_ps; enable_ps=$enableval +else + enable_ps=yes +fi + + case $enable_ps in #( + no) : + use_ps="no (disabled, use --enable-ps to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's PostScript surface backend feature" >&5 +$as_echo_n "checking for cairo's PostScript surface backend feature... " >&6; } + echo + + use_ps=yes + ps_BASE="cairo" +ps_REQUIRES="$ac_env_ps_REQUIRES_value" +ps_CFLAGS="$ac_env_ps_CFLAGS_value" +ps_NONPKGCONFIG_CFLAGS="$ac_env_ps_NONPKGCONFIG_CFLAGS_value" +ps_LIBS="$ac_env_ps_LIBS_value" +ps_NONPKGCONFIG_LIBS="$ac_env_ps_NONPKGCONFIG_LIBS_value" +ps_NONPKGCONFIG_EXTRA_LIBS="$ac_env_ps_NONPKGCONFIG_EXTRA_LIBS_value" + + + + # The ps backend requires zlib. + use_ps=$have_libz + ps_NONPKGCONFIG_LIBS=-lz + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's PostScript surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's PostScript surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_ps" >&5 +$as_echo "$use_ps" >&6; } + + if test "x$enable_ps" = "xyes" -a "x$use_ps" != xyes; then : + as_fn_error $? "recommended PostScript surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-ps: \`$use_ps', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_ps" = "xyes"; then : + CAIRO_REQUIRES="$ps_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$ps_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$ps_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$ps_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$ps_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset ps_BASE +unset ps_REQUIRES +unset ps_CFLAGS +unset ps_NONPKGCONFIG_CFLAGS +unset ps_LIBS +unset ps_NONPKGCONFIG_LIBS +unset ps_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_ps" = xyes; then + CAIRO_HAS_PS_SURFACE_TRUE= + CAIRO_HAS_PS_SURFACE_FALSE='#' +else + CAIRO_HAS_PS_SURFACE_TRUE='#' + CAIRO_HAS_PS_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_PS_SURFACE=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_ps_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_ps_headers) +all_cairo_private += $(cairo_ps_private) +all_cairo_cxx_sources += $(cairo_ps_cxx_sources) +all_cairo_sources += $(cairo_ps_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_ps_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_ps_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_ps_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_ps_headers) +enabled_cairo_private += $(cairo_ps_private) +enabled_cairo_cxx_sources += $(cairo_ps_cxx_sources) +enabled_cairo_sources += $(cairo_ps_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PS_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_ps_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_ps_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_ps_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_PS_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_PS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_ps" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-ps.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_ps" = xyes; then : + : + ac_config_files="$ac_config_files cairo-ps-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-ps.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-ps.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PS_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PS_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_ps" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_PS_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_PS_SURFACE' + + + + if test "x$use_ps" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_PS_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_PS_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_PS_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_ps" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the PostScript surface ++++ backend feature.' + + + +fi + + + + + +SPECTRE_VERSION_REQUIRED=0.2.0 +test_ps=no +any2ppm_ps=no +if test "x$use_ps" = "xyes"; then + # Extract the first word of "gs", so it can be a program name with args. +set dummy gs; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_GS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$GS"; then + ac_cv_prog_GS="$GS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_GS="gs" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GS=$ac_cv_prog_GS +if test -n "$GS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GS" >&5 +$as_echo "$GS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$GS"; then + +$as_echo "#define CAIRO_CAN_TEST_PS_SURFACE 1" >>confdefs.h + + test_ps="yes" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PS backend will not be tested since ghostscript is not available" >&5 +$as_echo "$as_me: WARNING: PS backend will not be tested since ghostscript is not available" >&2;} + test_ps="no (requires ghostscript)" + fi + + libspectre_DEPENDENCY="libspectre >= $SPECTRE_VERSION_REQUIRED" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBSPECTRE" >&5 +$as_echo_n "checking for LIBSPECTRE... " >&6; } + +if test -n "$LIBSPECTRE_CFLAGS"; then + pkg_cv_LIBSPECTRE_CFLAGS="$LIBSPECTRE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libspectre_DEPENDENCY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$libspectre_DEPENDENCY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSPECTRE_CFLAGS=`$PKG_CONFIG --cflags "$libspectre_DEPENDENCY" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBSPECTRE_LIBS"; then + pkg_cv_LIBSPECTRE_LIBS="$LIBSPECTRE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libspectre_DEPENDENCY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$libspectre_DEPENDENCY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBSPECTRE_LIBS=`$PKG_CONFIG --libs "$libspectre_DEPENDENCY" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBSPECTRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$libspectre_DEPENDENCY" 2>&1` + else + LIBSPECTRE_PKG_ERRORS=`$PKG_CONFIG --print-errors "$libspectre_DEPENDENCY" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBSPECTRE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + test_ps="no (requires libspectre)" +elif test $pkg_failed = untried; then + test_ps="no (requires libspectre)" +else + LIBSPECTRE_CFLAGS=$pkg_cv_LIBSPECTRE_CFLAGS + LIBSPECTRE_LIBS=$pkg_cv_LIBSPECTRE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + any2ppm_ps=yes +fi +fi + + if test "x$test_ps" = "xyes"; then + CAIRO_CAN_TEST_PS_SURFACE_TRUE= + CAIRO_CAN_TEST_PS_SURFACE_FALSE='#' +else + CAIRO_CAN_TEST_PS_SURFACE_TRUE='#' + CAIRO_CAN_TEST_PS_SURFACE_FALSE= +fi + + if test "x$any2ppm_ps" = "xyes"; then + CAIRO_HAS_SPECTRE_TRUE= + CAIRO_HAS_SPECTRE_FALSE='#' +else + CAIRO_HAS_SPECTRE_TRUE='#' + CAIRO_HAS_SPECTRE_FALSE= +fi + +if test "x$any2ppm_ps" = "xyes"; then + +$as_echo "#define CAIRO_HAS_SPECTRE 1" >>confdefs.h + +fi + + + + + # Check whether --enable-pdf was given. +if test "${enable_pdf+set}" = set; then : + enableval=$enable_pdf; enable_pdf=$enableval +else + enable_pdf=yes +fi + + case $enable_pdf in #( + no) : + use_pdf="no (disabled, use --enable-pdf to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's PDF surface backend feature" >&5 +$as_echo_n "checking for cairo's PDF surface backend feature... " >&6; } + echo + + use_pdf=yes + pdf_BASE="cairo" +pdf_REQUIRES="$ac_env_pdf_REQUIRES_value" +pdf_CFLAGS="$ac_env_pdf_CFLAGS_value" +pdf_NONPKGCONFIG_CFLAGS="$ac_env_pdf_NONPKGCONFIG_CFLAGS_value" +pdf_LIBS="$ac_env_pdf_LIBS_value" +pdf_NONPKGCONFIG_LIBS="$ac_env_pdf_NONPKGCONFIG_LIBS_value" +pdf_NONPKGCONFIG_EXTRA_LIBS="$ac_env_pdf_NONPKGCONFIG_EXTRA_LIBS_value" + + + + # The pdf backend requires zlib. + use_pdf=$have_libz + pdf_NONPKGCONFIG_LIBS=-lz + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's PDF surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's PDF surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_pdf" >&5 +$as_echo "$use_pdf" >&6; } + + if test "x$enable_pdf" = "xyes" -a "x$use_pdf" != xyes; then : + as_fn_error $? "recommended PDF surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-pdf: \`$use_pdf', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_pdf" = "xyes"; then : + CAIRO_REQUIRES="$pdf_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$pdf_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$pdf_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$pdf_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$pdf_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset pdf_BASE +unset pdf_REQUIRES +unset pdf_CFLAGS +unset pdf_NONPKGCONFIG_CFLAGS +unset pdf_LIBS +unset pdf_NONPKGCONFIG_LIBS +unset pdf_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_pdf" = xyes; then + CAIRO_HAS_PDF_SURFACE_TRUE= + CAIRO_HAS_PDF_SURFACE_FALSE='#' +else + CAIRO_HAS_PDF_SURFACE_TRUE='#' + CAIRO_HAS_PDF_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_PDF_SURFACE=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_pdf_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_pdf_headers) +all_cairo_private += $(cairo_pdf_private) +all_cairo_cxx_sources += $(cairo_pdf_cxx_sources) +all_cairo_sources += $(cairo_pdf_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_pdf_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pdf_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_pdf_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_pdf_headers) +enabled_cairo_private += $(cairo_pdf_private) +enabled_cairo_cxx_sources += $(cairo_pdf_cxx_sources) +enabled_cairo_sources += $(cairo_pdf_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PDF_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PDF_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_pdf_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pdf_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pdf_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_PDF_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_PDF_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_pdf" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-pdf.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_pdf" = xyes; then : + : + ac_config_files="$ac_config_files cairo-pdf-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-pdf.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-pdf.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PDF_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PDF_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_pdf" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_PDF_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_PDF_SURFACE' + + + + if test "x$use_pdf" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_PDF_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_PDF_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_PDF_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_pdf" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the PDF surface ++++ backend feature.' + + + +fi + + + + + +# poppler-0.17.4 fixes text-pattern and text-transform +POPPLER_VERSION_REQUIRED=0.17.4 +test_pdf=no +any2ppm_pdf=no +if test "x$use_pdf" = "xyes"; then + poppler_DEPENDENCY="poppler-glib >= $POPPLER_VERSION_REQUIRED" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POPPLER" >&5 +$as_echo_n "checking for POPPLER... " >&6; } + +if test -n "$POPPLER_CFLAGS"; then + pkg_cv_POPPLER_CFLAGS="$POPPLER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$poppler_DEPENDENCY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$poppler_DEPENDENCY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_POPPLER_CFLAGS=`$PKG_CONFIG --cflags "$poppler_DEPENDENCY" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$POPPLER_LIBS"; then + pkg_cv_POPPLER_LIBS="$POPPLER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$poppler_DEPENDENCY\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$poppler_DEPENDENCY") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_POPPLER_LIBS=`$PKG_CONFIG --libs "$poppler_DEPENDENCY" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + POPPLER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$poppler_DEPENDENCY" 2>&1` + else + POPPLER_PKG_ERRORS=`$PKG_CONFIG --print-errors "$poppler_DEPENDENCY" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$POPPLER_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + test_pdf="no (requires $poppler_DEPENDENCY)" +elif test $pkg_failed = untried; then + test_pdf="no (requires $poppler_DEPENDENCY)" +else + POPPLER_CFLAGS=$pkg_cv_POPPLER_CFLAGS + POPPLER_LIBS=$pkg_cv_POPPLER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + _save_cflags="$CFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $POPPLER_CFLAGS" + LIBS="$LIBS $POPPLER_LIBS" + for ac_func in poppler_page_render +do : + ac_fn_c_check_func "$LINENO" "poppler_page_render" "ac_cv_func_poppler_page_render" +if test "x$ac_cv_func_poppler_page_render" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_POPPLER_PAGE_RENDER 1 +_ACEOF + test_pdf=yes; any2ppm_pdf=yes +else + test_pdf="no (requires $poppler_DEPENDENCY)" +fi +done + + CFLAGS="$_save_cflags" + LIBS="$_save_libs" + +fi + if test "x$test_pdf" = "xyes"; then + +$as_echo "#define CAIRO_CAN_TEST_PDF_SURFACE 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PDF backend will not be tested since poppler >= $POPPLER_VERSION_REQUIRED is not available" >&5 +$as_echo "$as_me: WARNING: PDF backend will not be tested since poppler >= $POPPLER_VERSION_REQUIRED is not available" >&2;} + fi +fi + + if test "x$test_pdf" = "xyes"; then + CAIRO_CAN_TEST_PDF_SURFACE_TRUE= + CAIRO_CAN_TEST_PDF_SURFACE_FALSE='#' +else + CAIRO_CAN_TEST_PDF_SURFACE_TRUE='#' + CAIRO_CAN_TEST_PDF_SURFACE_FALSE= +fi + + + + + if test "x$use_ps" = "xyes" -o "x$use_pdf" = "xyes"; then + CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE= + CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE='#' +else + CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE='#' + CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE= +fi + + + + # Check whether --enable-svg was given. +if test "${enable_svg+set}" = set; then : + enableval=$enable_svg; enable_svg=$enableval +else + enable_svg=yes +fi + + case $enable_svg in #( + no) : + use_svg="no (disabled, use --enable-svg to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's SVG surface backend feature" >&5 +$as_echo_n "checking for cairo's SVG surface backend feature... " >&6; } + echo + + use_svg=yes + svg_BASE="cairo" +svg_REQUIRES="$ac_env_svg_REQUIRES_value" +svg_CFLAGS="$ac_env_svg_CFLAGS_value" +svg_NONPKGCONFIG_CFLAGS="$ac_env_svg_NONPKGCONFIG_CFLAGS_value" +svg_LIBS="$ac_env_svg_LIBS_value" +svg_NONPKGCONFIG_LIBS="$ac_env_svg_NONPKGCONFIG_LIBS_value" +svg_NONPKGCONFIG_EXTRA_LIBS="$ac_env_svg_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$use_png" != "xyes"; then + use_svg="no (requires --enable-png)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's SVG surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's SVG surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_svg" >&5 +$as_echo "$use_svg" >&6; } + + if test "x$enable_svg" = "xyes" -a "x$use_svg" != xyes; then : + as_fn_error $? "recommended SVG surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-svg: \`$use_svg', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_svg" = "xyes"; then : + CAIRO_REQUIRES="$svg_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$svg_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$svg_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$svg_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$svg_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset svg_BASE +unset svg_REQUIRES +unset svg_CFLAGS +unset svg_NONPKGCONFIG_CFLAGS +unset svg_LIBS +unset svg_NONPKGCONFIG_LIBS +unset svg_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_svg" = xyes; then + CAIRO_HAS_SVG_SURFACE_TRUE= + CAIRO_HAS_SVG_SURFACE_FALSE='#' +else + CAIRO_HAS_SVG_SURFACE_TRUE='#' + CAIRO_HAS_SVG_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_SVG_SURFACE=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_svg_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_svg_headers) +all_cairo_private += $(cairo_svg_private) +all_cairo_cxx_sources += $(cairo_svg_cxx_sources) +all_cairo_sources += $(cairo_svg_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_svg_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_svg_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_svg_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_svg_headers) +enabled_cairo_private += $(cairo_svg_private) +enabled_cairo_cxx_sources += $(cairo_svg_cxx_sources) +enabled_cairo_sources += $(cairo_svg_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SVG_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SVG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_svg_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_svg_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_svg_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_SVG_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_SVG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_svg" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-svg.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_svg" = xyes; then : + : + ac_config_files="$ac_config_files cairo-svg-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-svg.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-svg.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SVG_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SVG_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_svg" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_SVG_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_SVG_SURFACE' + + + + if test "x$use_svg" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_SVG_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_SVG_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_SVG_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_svg" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the SVG surface ++++ backend feature.' + + + +fi + + + + +LIBRSVG_VERSION_REQUIRED=2.15.0 +test_svg=no +any2ppm_svg=no +if test "x$use_svg" = "xyes"; then + librsvg_DEPENDENCY="librsvg-2.0 >= $LIBRSVG_VERSION_REQUIRED" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBRSVG" >&5 +$as_echo_n "checking for LIBRSVG... " >&6; } + +if test -n "$LIBRSVG_CFLAGS"; then + pkg_cv_LIBRSVG_CFLAGS="$LIBRSVG_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$librsvg_DEPENDENCY gdk-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$librsvg_DEPENDENCY gdk-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBRSVG_CFLAGS=`$PKG_CONFIG --cflags "$librsvg_DEPENDENCY gdk-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBRSVG_LIBS"; then + pkg_cv_LIBRSVG_LIBS="$LIBRSVG_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$librsvg_DEPENDENCY gdk-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$librsvg_DEPENDENCY gdk-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBRSVG_LIBS=`$PKG_CONFIG --libs "$librsvg_DEPENDENCY gdk-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$librsvg_DEPENDENCY gdk-2.0" 2>&1` + else + LIBRSVG_PKG_ERRORS=`$PKG_CONFIG --print-errors "$librsvg_DEPENDENCY gdk-2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBRSVG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + test_svg="no (requires $librsvg_DEPENDENCY)" +elif test $pkg_failed = untried; then + test_svg="no (requires $librsvg_DEPENDENCY)" +else + LIBRSVG_CFLAGS=$pkg_cv_LIBRSVG_CFLAGS + LIBRSVG_LIBS=$pkg_cv_LIBRSVG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + _save_cflags="$CFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $LIBRSVG_CFLAGS" + LIBS="$LIBS $LIBRSVG_LIBS" + for ac_func in rsvg_pixbuf_from_file +do : + ac_fn_c_check_func "$LINENO" "rsvg_pixbuf_from_file" "ac_cv_func_rsvg_pixbuf_from_file" +if test "x$ac_cv_func_rsvg_pixbuf_from_file" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_RSVG_PIXBUF_FROM_FILE 1 +_ACEOF + test_svg=yes; any2ppm_svg=yes +else + test_svg="no (requires $librsvg_DEPENDENCY)" +fi +done + + CFLAGS="$_save_cflags" + LIBS="$_save_libs" + +fi + if test "x$test_svg" = "xyes"; then + +$as_echo "#define CAIRO_CAN_TEST_SVG_SURFACE 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SVG backend will not be tested since librsvg >= $LIBRSVG_VERSION_REQUIRED is not available" >&5 +$as_echo "$as_me: WARNING: SVG backend will not be tested since librsvg >= $LIBRSVG_VERSION_REQUIRED is not available" >&2;} + fi +fi + + if test "x$test_svg" = "xyes"; then + CAIRO_CAN_TEST_SVG_SURFACE_TRUE= + CAIRO_CAN_TEST_SVG_SURFACE_FALSE='#' +else + CAIRO_CAN_TEST_SVG_SURFACE_TRUE='#' + CAIRO_CAN_TEST_SVG_SURFACE_FALSE= +fi + + + + + + # Check whether --enable-test-surfaces was given. +if test "${enable_test_surfaces+set}" = set; then : + enableval=$enable_test_surfaces; enable_test_surfaces=$enableval +else + enable_test_surfaces=no +fi + + case $enable_test_surfaces in #( + no) : + use_test_surfaces="no (disabled, use --enable-test-surfaces to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's test surfaces feature" >&5 +$as_echo_n "checking for cairo's test surfaces feature... " >&6; } + echo + + use_test_surfaces=yes + test_surfaces_BASE="cairo" +test_surfaces_REQUIRES="$ac_env_test_surfaces_REQUIRES_value" +test_surfaces_CFLAGS="$ac_env_test_surfaces_CFLAGS_value" +test_surfaces_NONPKGCONFIG_CFLAGS="$ac_env_test_surfaces_NONPKGCONFIG_CFLAGS_value" +test_surfaces_LIBS="$ac_env_test_surfaces_LIBS_value" +test_surfaces_NONPKGCONFIG_LIBS="$ac_env_test_surfaces_NONPKGCONFIG_LIBS_value" +test_surfaces_NONPKGCONFIG_EXTRA_LIBS="$ac_env_test_surfaces_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's test surfaces feature could be enabled" >&5 +$as_echo_n "checking whether cairo's test surfaces feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_test_surfaces" >&5 +$as_echo "$use_test_surfaces" >&6; } + + if test "x$enable_test_surfaces" = "xyes" -a "x$use_test_surfaces" != xyes; then : + as_fn_error $? " test surfaces feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-test-surfaces: \`$use_test_surfaces', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_test_surfaces" = "xyes"; then : + CAIRO_REQUIRES="$test_surfaces_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$test_surfaces_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$test_surfaces_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$test_surfaces_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$test_surfaces_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset test_surfaces_BASE +unset test_surfaces_REQUIRES +unset test_surfaces_CFLAGS +unset test_surfaces_NONPKGCONFIG_CFLAGS +unset test_surfaces_LIBS +unset test_surfaces_NONPKGCONFIG_LIBS +unset test_surfaces_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_test_surfaces" = xyes; then + CAIRO_HAS_TEST_SURFACES_TRUE= + CAIRO_HAS_TEST_SURFACES_FALSE='#' +else + CAIRO_HAS_TEST_SURFACES_TRUE='#' + CAIRO_HAS_TEST_SURFACES_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_TEST_SURFACES=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + cr_make_tmp='all_cairo_private += $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) +all_cairo_cxx_sources += $(cairo_test_surfaces_cxx_sources) +all_cairo_sources += $(cairo_test_surfaces_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_private += $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_test_surfaces_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_test_surfaces_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_private += $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) +enabled_cairo_cxx_sources += $(cairo_test_surfaces_cxx_sources) +enabled_cairo_sources += $(cairo_test_surfaces_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_TEST_SURFACES' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_TEST_SURFACES),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_private += $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_test_surfaces_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_test_surfaces_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_TEST_SURFACES' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_TEST_SURFACES),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + + + + + + if test "x$use_test_surfaces" = xyes; then : + : + +$as_echo "#define CAIRO_HAS_TEST_SURFACES 1" >>confdefs.h + + + +fi + cr_make_tmp=' @echo "#define CAIRO_HAS_TEST_SURFACES 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_TEST_SURFACES),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + + enable_image=yes + case $enable_image in #( + no) : + use_image="no (disabled, use --enable-image to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's image surface backend feature" >&5 +$as_echo_n "checking for cairo's image surface backend feature... " >&6; } + echo + + use_image=yes + image_BASE="cairo" +image_REQUIRES="$ac_env_image_REQUIRES_value" +image_CFLAGS="$ac_env_image_CFLAGS_value" +image_NONPKGCONFIG_CFLAGS="$ac_env_image_NONPKGCONFIG_CFLAGS_value" +image_LIBS="$ac_env_image_LIBS_value" +image_NONPKGCONFIG_LIBS="$ac_env_image_NONPKGCONFIG_LIBS_value" +image_NONPKGCONFIG_EXTRA_LIBS="$ac_env_image_NONPKGCONFIG_EXTRA_LIBS_value" + + + + pixman_REQUIRES="pixman-1 >= 0.22.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pixman" >&5 +$as_echo_n "checking for pixman... " >&6; } + +if test -n "$pixman_CFLAGS"; then + pkg_cv_pixman_CFLAGS="$pixman_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pixman_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$pixman_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_pixman_CFLAGS=`$PKG_CONFIG --cflags "$pixman_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$pixman_LIBS"; then + pkg_cv_pixman_LIBS="$pixman_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pixman_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$pixman_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_pixman_LIBS=`$PKG_CONFIG --libs "$pixman_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + pixman_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$pixman_REQUIRES" 2>&1` + else + pixman_PKG_ERRORS=`$PKG_CONFIG --print-errors "$pixman_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$pixman_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_image="no (requires $pixman_REQUIRES http://cairographics.org/releases/)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_image="no (requires $pixman_REQUIRES http://cairographics.org/releases/)" +else + pixman_CFLAGS=$pkg_cv_pixman_CFLAGS + pixman_LIBS=$pkg_cv_pixman_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + image_REQUIRES=$pixman_REQUIRES + image_CFLAGS=$pixman_CFLAGS + image_LIBS=$pixman_LIBS + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's image surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's image surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_image" >&5 +$as_echo "$use_image" >&6; } + + if test "x$enable_image" = "xyes" -a "x$use_image" != xyes; then : + as_fn_error $? "mandatory image surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-image: \`$use_image', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_image" = "xyes"; then : + CAIRO_REQUIRES="$image_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$image_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$image_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$image_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$image_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset image_BASE +unset image_REQUIRES +unset image_CFLAGS +unset image_NONPKGCONFIG_CFLAGS +unset image_LIBS +unset image_NONPKGCONFIG_LIBS +unset image_NONPKGCONFIG_EXTRA_LIBS + + +fi + + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_image_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_image_headers) +all_cairo_private += $(cairo_image_private) +all_cairo_cxx_sources += $(cairo_image_cxx_sources) +all_cairo_sources += $(cairo_image_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_image_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_image_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_image_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_image_headers) +enabled_cairo_private += $(cairo_image_private) +enabled_cairo_cxx_sources += $(cairo_image_cxx_sources) +enabled_cairo_sources += $(cairo_image_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_image_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_image_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_image_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + + + if test "x$use_image" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_IMAGE_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_IMAGE_SURFACE' + + + + if test "x$use_image" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_IMAGE_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_IMAGE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + + + + + enable_mime=yes + case $enable_mime in #( + no) : + use_mime="no (disabled, use --enable-mime to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's mime surface backend feature" >&5 +$as_echo_n "checking for cairo's mime surface backend feature... " >&6; } + echo + + use_mime=yes + mime_BASE="cairo" +mime_REQUIRES="$ac_env_mime_REQUIRES_value" +mime_CFLAGS="$ac_env_mime_CFLAGS_value" +mime_NONPKGCONFIG_CFLAGS="$ac_env_mime_NONPKGCONFIG_CFLAGS_value" +mime_LIBS="$ac_env_mime_LIBS_value" +mime_NONPKGCONFIG_LIBS="$ac_env_mime_NONPKGCONFIG_LIBS_value" +mime_NONPKGCONFIG_EXTRA_LIBS="$ac_env_mime_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's mime surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's mime surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_mime" >&5 +$as_echo "$use_mime" >&6; } + + if test "x$enable_mime" = "xyes" -a "x$use_mime" != xyes; then : + as_fn_error $? "mandatory mime surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-mime: \`$use_mime', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_mime" = "xyes"; then : + CAIRO_REQUIRES="$mime_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$mime_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$mime_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$mime_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$mime_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset mime_BASE +unset mime_REQUIRES +unset mime_CFLAGS +unset mime_NONPKGCONFIG_CFLAGS +unset mime_LIBS +unset mime_NONPKGCONFIG_LIBS +unset mime_NONPKGCONFIG_EXTRA_LIBS + + +fi + + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_mime_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_mime_headers) +all_cairo_private += $(cairo_mime_private) +all_cairo_cxx_sources += $(cairo_mime_cxx_sources) +all_cairo_sources += $(cairo_mime_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_mime_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_mime_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_mime_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_mime_headers) +enabled_cairo_private += $(cairo_mime_private) +enabled_cairo_cxx_sources += $(cairo_mime_cxx_sources) +enabled_cairo_sources += $(cairo_mime_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_mime_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_mime_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_mime_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + + + if test "x$use_mime" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_MIME_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_MIME_SURFACE' + + + + if test "x$use_mime" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_MIME_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_MIME_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + + + enable_recording=yes + case $enable_recording in #( + no) : + use_recording="no (disabled, use --enable-recording to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's recording surface backend feature" >&5 +$as_echo_n "checking for cairo's recording surface backend feature... " >&6; } + echo + + use_recording=yes + recording_BASE="cairo" +recording_REQUIRES="$ac_env_recording_REQUIRES_value" +recording_CFLAGS="$ac_env_recording_CFLAGS_value" +recording_NONPKGCONFIG_CFLAGS="$ac_env_recording_NONPKGCONFIG_CFLAGS_value" +recording_LIBS="$ac_env_recording_LIBS_value" +recording_NONPKGCONFIG_LIBS="$ac_env_recording_NONPKGCONFIG_LIBS_value" +recording_NONPKGCONFIG_EXTRA_LIBS="$ac_env_recording_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's recording surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's recording surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_recording" >&5 +$as_echo "$use_recording" >&6; } + + if test "x$enable_recording" = "xyes" -a "x$use_recording" != xyes; then : + as_fn_error $? "mandatory recording surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-recording: \`$use_recording', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_recording" = "xyes"; then : + CAIRO_REQUIRES="$recording_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$recording_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$recording_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$recording_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$recording_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset recording_BASE +unset recording_REQUIRES +unset recording_CFLAGS +unset recording_NONPKGCONFIG_CFLAGS +unset recording_LIBS +unset recording_NONPKGCONFIG_LIBS +unset recording_NONPKGCONFIG_EXTRA_LIBS + + +fi + + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_recording_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_recording_headers) +all_cairo_private += $(cairo_recording_private) +all_cairo_cxx_sources += $(cairo_recording_cxx_sources) +all_cairo_sources += $(cairo_recording_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_recording_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_recording_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_recording_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_recording_headers) +enabled_cairo_private += $(cairo_recording_private) +enabled_cairo_cxx_sources += $(cairo_recording_cxx_sources) +enabled_cairo_sources += $(cairo_recording_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_recording_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_recording_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_recording_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + + + if test "x$use_recording" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_RECORDING_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_RECORDING_SURFACE' + + + + if test "x$use_recording" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_RECORDING_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_RECORDING_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + + + enable_observer=yes + case $enable_observer in #( + no) : + use_observer="no (disabled, use --enable-observer to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's observer surface backend feature" >&5 +$as_echo_n "checking for cairo's observer surface backend feature... " >&6; } + echo + + use_observer=yes + observer_BASE="cairo" +observer_REQUIRES="$ac_env_observer_REQUIRES_value" +observer_CFLAGS="$ac_env_observer_CFLAGS_value" +observer_NONPKGCONFIG_CFLAGS="$ac_env_observer_NONPKGCONFIG_CFLAGS_value" +observer_LIBS="$ac_env_observer_LIBS_value" +observer_NONPKGCONFIG_LIBS="$ac_env_observer_NONPKGCONFIG_LIBS_value" +observer_NONPKGCONFIG_EXTRA_LIBS="$ac_env_observer_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's observer surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's observer surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_observer" >&5 +$as_echo "$use_observer" >&6; } + + if test "x$enable_observer" = "xyes" -a "x$use_observer" != xyes; then : + as_fn_error $? "mandatory observer surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-observer: \`$use_observer', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_observer" = "xyes"; then : + CAIRO_REQUIRES="$observer_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$observer_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$observer_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$observer_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$observer_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset observer_BASE +unset observer_REQUIRES +unset observer_CFLAGS +unset observer_NONPKGCONFIG_CFLAGS +unset observer_LIBS +unset observer_NONPKGCONFIG_LIBS +unset observer_NONPKGCONFIG_EXTRA_LIBS + + +fi + + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_observer_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_observer_headers) +all_cairo_private += $(cairo_observer_private) +all_cairo_cxx_sources += $(cairo_observer_cxx_sources) +all_cairo_sources += $(cairo_observer_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_observer_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_observer_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_observer_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_observer_headers) +enabled_cairo_private += $(cairo_observer_private) +enabled_cairo_cxx_sources += $(cairo_observer_cxx_sources) +enabled_cairo_sources += $(cairo_observer_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_observer_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_observer_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_observer_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + + + if test "x$use_observer" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_OBSERVER_SURFACE' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_OBSERVER_SURFACE' + + + + if test "x$use_observer" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_OBSERVER_SURFACE' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_OBSERVER_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + + + # Check whether --enable-tee was given. +if test "${enable_tee+set}" = set; then : + enableval=$enable_tee; enable_tee=$enableval +else + enable_tee=no +fi + + case $enable_tee in #( + no) : + use_tee="no (disabled, use --enable-tee to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's tee surface backend feature" >&5 +$as_echo_n "checking for cairo's tee surface backend feature... " >&6; } + echo + + use_tee=yes + tee_BASE="cairo" +tee_REQUIRES="$ac_env_tee_REQUIRES_value" +tee_CFLAGS="$ac_env_tee_CFLAGS_value" +tee_NONPKGCONFIG_CFLAGS="$ac_env_tee_NONPKGCONFIG_CFLAGS_value" +tee_LIBS="$ac_env_tee_LIBS_value" +tee_NONPKGCONFIG_LIBS="$ac_env_tee_NONPKGCONFIG_LIBS_value" +tee_NONPKGCONFIG_EXTRA_LIBS="$ac_env_tee_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's tee surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's tee surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_tee" >&5 +$as_echo "$use_tee" >&6; } + + if test "x$enable_tee" = "xyes" -a "x$use_tee" != xyes; then : + as_fn_error $? " tee surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-tee: \`$use_tee', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_tee" = "xyes"; then : + CAIRO_REQUIRES="$tee_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$tee_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$tee_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$tee_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$tee_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset tee_BASE +unset tee_REQUIRES +unset tee_CFLAGS +unset tee_NONPKGCONFIG_CFLAGS +unset tee_LIBS +unset tee_NONPKGCONFIG_LIBS +unset tee_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_tee" = xyes; then + CAIRO_HAS_TEE_SURFACE_TRUE= + CAIRO_HAS_TEE_SURFACE_FALSE='#' +else + CAIRO_HAS_TEE_SURFACE_TRUE='#' + CAIRO_HAS_TEE_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_TEE_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_tee_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_tee_headers) +all_cairo_private += $(cairo_tee_private) +all_cairo_cxx_sources += $(cairo_tee_cxx_sources) +all_cairo_sources += $(cairo_tee_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_tee_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_tee_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_tee_headers) +enabled_cairo_private += $(cairo_tee_private) +enabled_cairo_cxx_sources += $(cairo_tee_cxx_sources) +enabled_cairo_sources += $(cairo_tee_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_TEE_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_TEE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_tee_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_tee_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_TEE_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_TEE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_tee" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-tee.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_tee" = xyes; then : + : + ac_config_files="$ac_config_files cairo-tee-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-tee.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-tee.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_TEE_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_TEE_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_tee" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_TEE_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_TEE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_TEE_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_tee" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The tee surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to tee surface backend specific +--- API.' + + + +fi + + + + + # Check whether --enable-xml was given. +if test "${enable_xml+set}" = set; then : + enableval=$enable_xml; enable_xml=$enableval +else + enable_xml=no +fi + + case $enable_xml in #( + no) : + use_xml="no (disabled, use --enable-xml to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's xml surface backend feature" >&5 +$as_echo_n "checking for cairo's xml surface backend feature... " >&6; } + echo + + use_xml=yes + xml_BASE="cairo" +xml_REQUIRES="$ac_env_xml_REQUIRES_value" +xml_CFLAGS="$ac_env_xml_CFLAGS_value" +xml_NONPKGCONFIG_CFLAGS="$ac_env_xml_NONPKGCONFIG_CFLAGS_value" +xml_LIBS="$ac_env_xml_LIBS_value" +xml_NONPKGCONFIG_LIBS="$ac_env_xml_NONPKGCONFIG_LIBS_value" +xml_NONPKGCONFIG_EXTRA_LIBS="$ac_env_xml_NONPKGCONFIG_EXTRA_LIBS_value" + + + + use_xml=$have_libz + xml_NONPKGCONFIG_LIBS=-lz + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's xml surface backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's xml surface backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_xml" >&5 +$as_echo "$use_xml" >&6; } + + if test "x$enable_xml" = "xyes" -a "x$use_xml" != xyes; then : + as_fn_error $? " xml surface backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-xml: \`$use_xml', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_xml" = "xyes"; then : + CAIRO_REQUIRES="$xml_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$xml_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$xml_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$xml_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$xml_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset xml_BASE +unset xml_REQUIRES +unset xml_CFLAGS +unset xml_NONPKGCONFIG_CFLAGS +unset xml_LIBS +unset xml_NONPKGCONFIG_LIBS +unset xml_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_xml" = xyes; then + CAIRO_HAS_XML_SURFACE_TRUE= + CAIRO_HAS_XML_SURFACE_FALSE='#' +else + CAIRO_HAS_XML_SURFACE_TRUE='#' + CAIRO_HAS_XML_SURFACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_XML_SURFACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='unsupported_cairo_headers += $(cairo_xml_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='all_cairo_headers += $(cairo_xml_headers) +all_cairo_private += $(cairo_xml_private) +all_cairo_cxx_sources += $(cairo_xml_cxx_sources) +all_cairo_sources += $(cairo_xml_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_xml_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xml_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_xml_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_xml_headers) +enabled_cairo_private += $(cairo_xml_private) +enabled_cairo_cxx_sources += $(cairo_xml_cxx_sources) +enabled_cairo_sources += $(cairo_xml_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XML_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XML_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_xml_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_xml_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xml_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_XML_SURFACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_XML_SURFACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_xml" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-xml.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_xml" = xyes; then : + : + ac_config_files="$ac_config_files cairo-xml-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-xml.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-xml.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_XML_SURFACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_XML_SURFACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_xml" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_XML_SURFACE' + + +fi + + + + cr_make_tmp=' @echo "#define CAIRO_HAS_XML_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_XML_SURFACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + if test "x$use_xml" = xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'--- The xml surface backend feature is still under active development and is +--- included in this release only as a preview. It does NOT fully work yet +--- and incompatible changes may yet be made to xml surface backend specific +--- API.' + + + +fi + + + + + + + enable_user=yes + case $enable_user in #( + no) : + use_user="no (disabled, use --enable-user to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's user font backend feature" >&5 +$as_echo_n "checking for cairo's user font backend feature... " >&6; } + echo + + use_user=yes + user_BASE="cairo" +user_REQUIRES="$ac_env_user_REQUIRES_value" +user_CFLAGS="$ac_env_user_CFLAGS_value" +user_NONPKGCONFIG_CFLAGS="$ac_env_user_NONPKGCONFIG_CFLAGS_value" +user_LIBS="$ac_env_user_LIBS_value" +user_NONPKGCONFIG_LIBS="$ac_env_user_NONPKGCONFIG_LIBS_value" +user_NONPKGCONFIG_EXTRA_LIBS="$ac_env_user_NONPKGCONFIG_EXTRA_LIBS_value" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's user font backend feature could be enabled" >&5 +$as_echo_n "checking whether cairo's user font backend feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_user" >&5 +$as_echo "$use_user" >&6; } + + if test "x$enable_user" = "xyes" -a "x$use_user" != xyes; then : + as_fn_error $? "mandatory user font backend feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-user: \`$use_user', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_user" = "xyes"; then : + CAIRO_REQUIRES="$user_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$user_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$user_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$user_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$user_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset user_BASE +unset user_REQUIRES +unset user_CFLAGS +unset user_NONPKGCONFIG_CFLAGS +unset user_LIBS +unset user_NONPKGCONFIG_LIBS +unset user_NONPKGCONFIG_EXTRA_LIBS + + +fi + + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_user_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_user_headers) +all_cairo_private += $(cairo_user_private) +all_cairo_cxx_sources += $(cairo_user_cxx_sources) +all_cairo_sources += $(cairo_user_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_user_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_user_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_user_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_user_headers) +enabled_cairo_private += $(cairo_user_private) +enabled_cairo_cxx_sources += $(cairo_user_cxx_sources) +enabled_cairo_sources += $(cairo_user_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_user_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_user_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_user_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + + + if test "x$use_user" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_USER_FONT' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_USER_FONT' + + + + if test "x$use_user" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_USER_FONT' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_USER_FONT 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + + + + + +have_real_pthread=no +have_pthread=no + # Check whether --enable-pthread was given. +if test "${enable_pthread+set}" = set; then : + enableval=$enable_pthread; enable_pthread=$enableval +else + enable_pthread=auto +fi + + case $enable_pthread in #( + no) : + use_pthread="no (disabled, use --enable-pthread to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's pthread feature" >&5 +$as_echo_n "checking for cairo's pthread feature... " >&6; } + echo + + use_pthread=yes + pthread_BASE="cairo" +pthread_REQUIRES="$ac_env_pthread_REQUIRES_value" +pthread_CFLAGS="$ac_env_pthread_CFLAGS_value" +pthread_NONPKGCONFIG_CFLAGS="$ac_env_pthread_NONPKGCONFIG_CFLAGS_value" +pthread_LIBS="$ac_env_pthread_LIBS_value" +pthread_NONPKGCONFIG_LIBS="$ac_env_pthread_NONPKGCONFIG_LIBS_value" +pthread_NONPKGCONFIG_EXTRA_LIBS="$ac_env_pthread_NONPKGCONFIG_EXTRA_LIBS_value" + + + if test "x$PTHREAD_CFLAGS" = "x"; then + PTHREAD_CFLAGS="-D_REENTRANT" + fi + if test "x$PTHREAD_LIBS" = "x"; then + PTHREAD_LIBS="-lpthread" + fi + + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program="#ifndef _GNU_SOURCE +#define _GNU_SOURCE /* for PTHREAD_MUTEX_INITIALIZER under linux */ +#endif +#include + +pthread_mutex_t test_mutex_initializer = PTHREAD_MUTEX_INITIALIZER; +int test_mutex (void) +{ + int x = 0; + pthread_mutex_t mutex; + x |= pthread_mutex_init (&mutex, NULL); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + return 0; +} + +int test_mutex_attr (void) +{ + int x = 0; + pthread_mutexattr_t attr; + pthread_mutex_t mutex; + x |= pthread_mutexattr_init (&attr); + x |= pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); + x |= pthread_mutex_init (&mutex, &attr); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + x |= pthread_mutexattr_destroy (&attr); + return x; +} + +pthread_once_t once_control = PTHREAD_ONCE_INIT; +void test_once_init (void) {} +int test_once (void) +{ + return pthread_once (&once_control, test_once_init); +} + +pthread_key_t test_specific_key; +int test_specific (void) +{ + int x = 0; + x |= pthread_key_create (&test_specific_key, NULL); + x |= pthread_setspecific (test_specific_key, NULL); + x |= pthread_getspecific (test_specific_key) != NULL; + return x; +} + +void cleaner (void *arg) { (void)arg; } + +void * +test_thread_main (void *arg) +{ + pthread_cleanup_push (cleaner, arg); + pthread_exit (arg); + pthread_cleanup_pop (1); + return arg; +} + +int +test_threads (void) +{ + int x = 0; + pthread_t thread; + pthread_attr_t attr; + void *arg = NULL; + x |= pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); + x |= pthread_create (&thread, &attr, test_thread_main, arg); + x |= pthread_equal (pthread_self(), thread); + x |= pthread_join (thread, &arg); + x |= pthread_attr_destroy (&attr); + return x; +}"' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS"; + LIBS="$LIBS $PTHREAD_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + real_pthread_CFLAGS="$PTHREAD_CFLAGS"; + real_pthread_LIBS="$PTHREAD_LIBS"; + have_real_pthread=yes + else + real_pthread_CFLAGS=""; + real_pthread_LIBS=""; + have_real_pthread=no + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + if test "x$have_real_pthread" != "xyes"; then + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program="#ifndef _GNU_SOURCE +#define _GNU_SOURCE /* for PTHREAD_MUTEX_INITIALIZER under linux */ +#endif +#include + +pthread_mutex_t test_mutex_initializer = PTHREAD_MUTEX_INITIALIZER; +int test_mutex (void) +{ + int x = 0; + pthread_mutex_t mutex; + x |= pthread_mutex_init (&mutex, NULL); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + return 0; +} + +int test_mutex_attr (void) +{ + int x = 0; + pthread_mutexattr_t attr; + pthread_mutex_t mutex; + x |= pthread_mutexattr_init (&attr); + x |= pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); + x |= pthread_mutex_init (&mutex, &attr); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + x |= pthread_mutexattr_destroy (&attr); + return x; +} + +pthread_once_t once_control = PTHREAD_ONCE_INIT; +void test_once_init (void) {} +int test_once (void) +{ + return pthread_once (&once_control, test_once_init); +} + +pthread_key_t test_specific_key; +int test_specific (void) +{ + int x = 0; + x |= pthread_key_create (&test_specific_key, NULL); + x |= pthread_setspecific (test_specific_key, NULL); + x |= pthread_getspecific (test_specific_key) != NULL; + return x; +} + +void cleaner (void *arg) { (void)arg; } + +void * +test_thread_main (void *arg) +{ + pthread_cleanup_push (cleaner, arg); + pthread_exit (arg); + pthread_cleanup_pop (1); + return arg; +} + +int +test_threads (void) +{ + int x = 0; + pthread_t thread; + pthread_attr_t attr; + void *arg = NULL; + x |= pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); + x |= pthread_create (&thread, &attr, test_thread_main, arg); + x |= pthread_equal (pthread_self(), thread); + x |= pthread_join (thread, &arg); + x |= pthread_attr_destroy (&attr); + return x; +}"' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS -pthread"; + LIBS="$LIBS " + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + real_pthread_CFLAGS="-pthread"; + real_pthread_LIBS=""; + have_real_pthread=yes + else + real_pthread_CFLAGS=""; + real_pthread_LIBS=""; + have_real_pthread="no (can't link with -lpthread or -pthread)" + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + fi + PTHREAD_CFLAGS= + PTHREAD_LIBS= + + have_pthread="no" + if test "x$enable_pthread" != "xyes"; then + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program="#ifndef _GNU_SOURCE +#define _GNU_SOURCE /* for PTHREAD_MUTEX_INITIALIZER under linux */ +#endif +#include + +pthread_mutex_t test_mutex_initializer = PTHREAD_MUTEX_INITIALIZER; +int test_mutex (void) +{ + int x = 0; + pthread_mutex_t mutex; + x |= pthread_mutex_init (&mutex, NULL); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + return 0; +} + +int test_mutex_attr (void) +{ + int x = 0; + pthread_mutexattr_t attr; + pthread_mutex_t mutex; + x |= pthread_mutexattr_init (&attr); + x |= pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); + x |= pthread_mutex_init (&mutex, &attr); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + x |= pthread_mutexattr_destroy (&attr); + return x; +}"' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS -D_REENTRANT"; + LIBS="$LIBS " + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$_compile_program +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes +else + cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + pthread_CFLAGS="-D_REENTRANT"; + pthread_LIBS=""; + have_pthread=yes + else + pthread_CFLAGS=""; + pthread_LIBS=""; + + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" + + + fi + + if test "x$have_pthread" != "xyes"; then + have_pthread="$have_real_pthread"; + pthread_CFLAGS="$real_pthread_CFLAGS"; + pthread_LIBS="$real_pthread_LIBS"; + fi + + if test "x$have_real_pthread" = "xyes"; then + +$as_echo "#define CAIRO_HAS_REAL_PTHREAD 1" >>confdefs.h + + fi + if test "x$have_pthread" = "xyes"; then + +$as_echo "#define CAIRO_HAS_PTHREAD 1" >>confdefs.h + + fi + + if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes"; then + as_fn_error $? "pthread requested but not found" "$LINENO" 5 + fi + + use_pthread="$have_pthread" + pthread_REQUIRES="" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's pthread feature could be enabled" >&5 +$as_echo_n "checking whether cairo's pthread feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_pthread" >&5 +$as_echo "$use_pthread" >&6; } + + if test "x$enable_pthread" = "xyes" -a "x$use_pthread" != xyes; then : + as_fn_error $? " pthread feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-pthread: \`$use_pthread', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_pthread" = "xyes"; then : + CAIRO_REQUIRES="$pthread_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$pthread_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$pthread_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$pthread_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$pthread_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset pthread_BASE +unset pthread_REQUIRES +unset pthread_CFLAGS +unset pthread_NONPKGCONFIG_CFLAGS +unset pthread_LIBS +unset pthread_NONPKGCONFIG_LIBS +unset pthread_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_pthread" = xyes; then + CAIRO_HAS_PTHREAD_TRUE= + CAIRO_HAS_PTHREAD_FALSE='#' +else + CAIRO_HAS_PTHREAD_TRUE='#' + CAIRO_HAS_PTHREAD_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_PTHREAD=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + cr_make_tmp='all_cairo_private += $(cairo_pthread_private) $(cairo_pthread_headers) +all_cairo_cxx_sources += $(cairo_pthread_cxx_sources) +all_cairo_sources += $(cairo_pthread_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_private += $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pthread_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_private += $(cairo_pthread_private) $(cairo_pthread_headers) +enabled_cairo_cxx_sources += $(cairo_pthread_cxx_sources) +enabled_cairo_sources += $(cairo_pthread_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_PTHREAD' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_PTHREAD),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_private += $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pthread_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_PTHREAD' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_PTHREAD),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + + + + + + if test "x$use_pthread" = xyes; then : + : + +$as_echo "#define CAIRO_HAS_PTHREAD 1" >>confdefs.h + + + +fi + cr_make_tmp=' @echo "#define CAIRO_HAS_PTHREAD 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_PTHREAD),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + if test "x$use_pthread" = "xyes" -a "x$have_real_pthread" = "xyes"; then + HAVE_REAL_PTHREAD_TRUE= + HAVE_REAL_PTHREAD_FALSE='#' +else + HAVE_REAL_PTHREAD_TRUE='#' + HAVE_REAL_PTHREAD_FALSE= +fi + + if test "x$use_pthread" = "xyes"; then + HAVE_PTHREAD_TRUE= + HAVE_PTHREAD_FALSE='#' +else + HAVE_PTHREAD_TRUE='#' + HAVE_PTHREAD_FALSE= +fi + + + + + + + + + # Check whether --enable-gobject was given. +if test "${enable_gobject+set}" = set; then : + enableval=$enable_gobject; enable_gobject=$enableval +else + enable_gobject=auto +fi + + case $enable_gobject in #( + no) : + use_gobject="no (disabled, use --enable-gobject to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's gobject functions feature" >&5 +$as_echo_n "checking for cairo's gobject functions feature... " >&6; } + echo + + use_gobject=yes + gobject_BASE="cairo" +gobject_REQUIRES="$ac_env_gobject_REQUIRES_value" +gobject_CFLAGS="$ac_env_gobject_CFLAGS_value" +gobject_NONPKGCONFIG_CFLAGS="$ac_env_gobject_NONPKGCONFIG_CFLAGS_value" +gobject_LIBS="$ac_env_gobject_LIBS_value" +gobject_NONPKGCONFIG_LIBS="$ac_env_gobject_NONPKGCONFIG_LIBS_value" +gobject_NONPKGCONFIG_EXTRA_LIBS="$ac_env_gobject_NONPKGCONFIG_EXTRA_LIBS_value" + + + + gobject_REQUIRES="gobject-2.0 glib-2.0" + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOBJECT" >&5 +$as_echo_n "checking for GOBJECT... " >&6; } + +if test -n "$GOBJECT_CFLAGS"; then + pkg_cv_GOBJECT_CFLAGS="$GOBJECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gobject_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gobject_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "$gobject_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GOBJECT_LIBS"; then + pkg_cv_GOBJECT_LIBS="$GOBJECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gobject_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gobject_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GOBJECT_LIBS=`$PKG_CONFIG --libs "$gobject_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GOBJECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$gobject_REQUIRES" 2>&1` + else + GOBJECT_PKG_ERRORS=`$PKG_CONFIG --print-errors "$gobject_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GOBJECT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_gobject="no (requires $gobject_REQUIRES http://download.gnome.org/pub/GNOME/sources/glib/)" +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + use_gobject="no (requires $gobject_REQUIRES http://download.gnome.org/pub/GNOME/sources/glib/)" +else + GOBJECT_CFLAGS=$pkg_cv_GOBJECT_CFLAGS + GOBJECT_LIBS=$pkg_cv_GOBJECT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + gobject_NONPKGCONFIG_EXTRA_LIBS="-L\${libdir} -lcairo-gobject" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's gobject functions feature could be enabled" >&5 +$as_echo_n "checking whether cairo's gobject functions feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_gobject" >&5 +$as_echo "$use_gobject" >&6; } + + if test "x$enable_gobject" = "xyes" -a "x$use_gobject" != xyes; then : + as_fn_error $? " gobject functions feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-gobject: \`$use_gobject', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_gobject" = "xyes"; then : + CAIRO_REQUIRES="$gobject_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$gobject_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$gobject_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$gobject_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$gobject_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset gobject_BASE +unset gobject_REQUIRES +unset gobject_CFLAGS +unset gobject_NONPKGCONFIG_CFLAGS +unset gobject_LIBS +unset gobject_NONPKGCONFIG_LIBS +unset gobject_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_gobject" = xyes; then + CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE= + CAIRO_HAS_GOBJECT_FUNCTIONS_FALSE='#' +else + CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE='#' + CAIRO_HAS_GOBJECT_FUNCTIONS_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_GOBJECT_FUNCTIONS=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='supported_cairo_headers += $(cairo_gobject_headers)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='supported_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + cr_make_tmp='all_cairo_headers += $(cairo_gobject_headers) +all_cairo_private += $(cairo_gobject_private) +all_cairo_cxx_sources += $(cairo_gobject_cxx_sources) +all_cairo_sources += $(cairo_gobject_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers) +all_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_headers += $(cairo_gobject_headers) +enabled_cairo_private += $(cairo_gobject_private) +enabled_cairo_cxx_sources += $(cairo_gobject_cxx_sources) +enabled_cairo_sources += $(cairo_gobject_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GOBJECT_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers) +enabled_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_GOBJECT_FUNCTIONS' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + if test "x$use_gobject" = xyes; then : + : + ac_config_files="$ac_config_files src/cairo-gobject.pc:src/cairo-features.pc.in" + + +fi + if test "x$use_gobject" = xyes; then : + : + ac_config_files="$ac_config_files cairo-gobject-uninstalled.pc:src/cairo-features-uninstalled.pc.in" + + +fi + cr_make_tmp='all_cairo_pkgconf += cairo-gobject.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_pkgconf += cairo-gobject.pc' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_GOBJECT_FUNCTIONS' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + + + if test "x$use_gobject" = xyes; then : + : + CAIRO_FEATURES="${CAIRO_FEATURES} "'CAIRO_HAS_GOBJECT_FUNCTIONS' + + +fi + CAIRO_SUPPORTED_FEATURES="${CAIRO_SUPPORTED_FEATURES} "'CAIRO_HAS_GOBJECT_FUNCTIONS' + + + + if test "x$use_gobject" != xyes; then : + : + CAIRO_NO_FEATURES="${CAIRO_NO_FEATURES} "'CAIRO_HAS_GOBJECT_FUNCTIONS' + + + +fi + + cr_make_tmp=' @echo "#define CAIRO_HAS_GOBJECT_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + +if test "x$use_gobject" = "xyes"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOBJECT" >&5 +$as_echo_n "checking for GOBJECT... " >&6; } + +if test -n "$GOBJECT_CFLAGS"; then + pkg_cv_GOBJECT_CFLAGS="$GOBJECT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gobject_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gobject_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GOBJECT_CFLAGS=`$PKG_CONFIG --cflags "$gobject_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GOBJECT_LIBS"; then + pkg_cv_GOBJECT_LIBS="$GOBJECT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gobject_REQUIRES\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gobject_REQUIRES") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GOBJECT_LIBS=`$PKG_CONFIG --libs "$gobject_REQUIRES" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GOBJECT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$gobject_REQUIRES" 2>&1` + else + GOBJECT_PKG_ERRORS=`$PKG_CONFIG --print-errors "$gobject_REQUIRES" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GOBJECT_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements ($gobject_REQUIRES) were not met: + +$GOBJECT_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GOBJECT_CFLAGS +and GOBJECT_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" "$LINENO" 5 +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GOBJECT_CFLAGS +and GOBJECT_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5 ; } +else + GOBJECT_CFLAGS=$pkg_cv_GOBJECT_CFLAGS + GOBJECT_LIBS=$pkg_cv_GOBJECT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi +fi + + +# Check whether --enable-full-testing was given. +if test "${enable_full_testing+set}" = set; then : + enableval=$enable_full_testing; +if test "x$enableval" = "xyes"; then + CAIRO_TEST_MODE=full + +fi + +fi + + + if test "x$any2ppm_svg" = "xyes" \ + -o "x$any2ppm_pdf" = "xyes" \ + -o "x$any2ppm_ps" = "xyes" \ + -o "x$any2ppm_cs" = "xyes"; then + BUILD_ANY2PPM_TRUE= + BUILD_ANY2PPM_FALSE='#' +else + BUILD_ANY2PPM_TRUE='#' + BUILD_ANY2PPM_FALSE= +fi + + + +case $host in +*-*-darwin*) + SHLIB_EXT="dylib" + ;; +*) + SHLIB_EXT="so" + ;; +esac + +cat >>confdefs.h <<_ACEOF +#define SHARED_LIB_EXT "${SHLIB_EXT}" +_ACEOF + + + + +case $host in +*-linux*|*-*bsd*|*-solaris*|*-*-darwin*|*-dragonfly*|*-*-gnu*) + have_ld_preload="yes" + ;; +*) + have_ld_preload="no" + ;; +esac + + # Check whether --enable-trace was given. +if test "${enable_trace+set}" = set; then : + enableval=$enable_trace; enable_trace=$enableval +else + enable_trace=auto +fi + + case $enable_trace in #( + no) : + use_trace="no (disabled, use --enable-trace to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's cairo-trace feature" >&5 +$as_echo_n "checking for cairo's cairo-trace feature... " >&6; } + echo + + use_trace=yes + trace_BASE="cairo" +trace_REQUIRES="$ac_env_trace_REQUIRES_value" +trace_CFLAGS="$ac_env_trace_CFLAGS_value" +trace_NONPKGCONFIG_CFLAGS="$ac_env_trace_NONPKGCONFIG_CFLAGS_value" +trace_LIBS="$ac_env_trace_LIBS_value" +trace_NONPKGCONFIG_LIBS="$ac_env_trace_NONPKGCONFIG_LIBS_value" +trace_NONPKGCONFIG_EXTRA_LIBS="$ac_env_trace_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$have_ld_preload" != "xyes" -o \ + "x$have_libz" != "xyes" -o \ + "x$have_real_pthread" != "xyes" -o \ + "x$have_dlsym" != "xyes"; then + use_trace="no (requires dynamic linker and zlib and real pthreads)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's cairo-trace feature could be enabled" >&5 +$as_echo_n "checking whether cairo's cairo-trace feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_trace" >&5 +$as_echo "$use_trace" >&6; } + + if test "x$enable_trace" = "xyes" -a "x$use_trace" != xyes; then : + as_fn_error $? " cairo-trace feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-trace: \`$use_trace', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_trace" = "xyes"; then : + CAIRO_REQUIRES="$trace_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$trace_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$trace_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$trace_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$trace_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset trace_BASE +unset trace_REQUIRES +unset trace_CFLAGS +unset trace_NONPKGCONFIG_CFLAGS +unset trace_LIBS +unset trace_NONPKGCONFIG_LIBS +unset trace_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_trace" = xyes; then + CAIRO_HAS_TRACE_TRUE= + CAIRO_HAS_TRACE_FALSE='#' +else + CAIRO_HAS_TRACE_TRUE='#' + CAIRO_HAS_TRACE_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_TRACE=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + cr_make_tmp='all_cairo_private += $(cairo_trace_private) $(cairo_trace_headers) +all_cairo_cxx_sources += $(cairo_trace_cxx_sources) +all_cairo_sources += $(cairo_trace_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_private += $(cairo_trace_private) $(cairo_trace_headers) +enabled_cairo_cxx_sources += $(cairo_trace_cxx_sources) +enabled_cairo_sources += $(cairo_trace_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_TRACE' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_TRACE),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_TRACE' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_TRACE),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + + + + + + if test "x$use_trace" = xyes; then : + : + +$as_echo "#define CAIRO_HAS_TRACE 1" >>confdefs.h + + + +fi + cr_make_tmp=' @echo "#define CAIRO_HAS_TRACE 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_TRACE),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + # Check whether --enable-interpreter was given. +if test "${enable_interpreter+set}" = set; then : + enableval=$enable_interpreter; enable_interpreter=$enableval +else + enable_interpreter=yes +fi + + case $enable_interpreter in #( + no) : + use_interpreter="no (disabled, use --enable-interpreter to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's cairo-script-interpreter feature" >&5 +$as_echo_n "checking for cairo's cairo-script-interpreter feature... " >&6; } + echo + + use_interpreter=yes + interpreter_BASE="cairo" +interpreter_REQUIRES="$ac_env_interpreter_REQUIRES_value" +interpreter_CFLAGS="$ac_env_interpreter_CFLAGS_value" +interpreter_NONPKGCONFIG_CFLAGS="$ac_env_interpreter_NONPKGCONFIG_CFLAGS_value" +interpreter_LIBS="$ac_env_interpreter_LIBS_value" +interpreter_NONPKGCONFIG_LIBS="$ac_env_interpreter_NONPKGCONFIG_LIBS_value" +interpreter_NONPKGCONFIG_EXTRA_LIBS="$ac_env_interpreter_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$have_libz" != "xyes"; then + use_interpreter="no (requires zlib)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's cairo-script-interpreter feature could be enabled" >&5 +$as_echo_n "checking whether cairo's cairo-script-interpreter feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_interpreter" >&5 +$as_echo "$use_interpreter" >&6; } + + if test "x$enable_interpreter" = "xyes" -a "x$use_interpreter" != xyes; then : + as_fn_error $? "recommended cairo-script-interpreter feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-interpreter: \`$use_interpreter', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_interpreter" = "xyes"; then : + CAIRO_REQUIRES="$interpreter_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$interpreter_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$interpreter_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$interpreter_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$interpreter_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset interpreter_BASE +unset interpreter_REQUIRES +unset interpreter_CFLAGS +unset interpreter_NONPKGCONFIG_CFLAGS +unset interpreter_LIBS +unset interpreter_NONPKGCONFIG_LIBS +unset interpreter_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_interpreter" = xyes; then + CAIRO_HAS_INTERPRETER_TRUE= + CAIRO_HAS_INTERPRETER_FALSE='#' +else + CAIRO_HAS_INTERPRETER_TRUE='#' + CAIRO_HAS_INTERPRETER_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_INTERPRETER=1' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + cr_make_tmp='all_cairo_private += $(cairo_interpreter_private) $(cairo_interpreter_headers) +all_cairo_cxx_sources += $(cairo_interpreter_cxx_sources) +all_cairo_sources += $(cairo_interpreter_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_private += $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_interpreter_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_interpreter_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_private += $(cairo_interpreter_private) $(cairo_interpreter_headers) +enabled_cairo_cxx_sources += $(cairo_interpreter_cxx_sources) +enabled_cairo_sources += $(cairo_interpreter_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_INTERPRETER' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_INTERPRETER),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_private += $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_interpreter_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_interpreter_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_INTERPRETER' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_INTERPRETER),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + + + + + + if test "x$use_interpreter" = xyes; then : + : + +$as_echo "#define CAIRO_HAS_INTERPRETER 1" >>confdefs.h + + + +fi + cr_make_tmp=' @echo "#define CAIRO_HAS_INTERPRETER 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_INTERPRETER),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + if test "x$use_interpreter" != xyes; then : + : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'+++ It is strongly recommended that you do NOT disable the ++++ cairo-script-interpreter feature.' + + + +fi + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_openr in -lbfd" >&5 +$as_echo_n "checking for bfd_openr in -lbfd... " >&6; } +if test "${ac_cv_lib_bfd_bfd_openr+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbfd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bfd_openr (); +int +main () +{ +return bfd_openr (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bfd_bfd_openr=yes +else + ac_cv_lib_bfd_bfd_openr=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bfd_bfd_openr" >&5 +$as_echo "$ac_cv_lib_bfd_bfd_openr" >&6; } +if test "x$ac_cv_lib_bfd_bfd_openr" = x""yes; then : + ac_fn_c_check_header_mongrel "$LINENO" "bfd.h" "ac_cv_header_bfd_h" "$ac_includes_default" +if test "x$ac_cv_header_bfd_h" = x""yes; then : + have_bfd=yes +else + have_bfd=no +fi + + +else + have_bfd=no +fi + +ac_fn_c_check_header_mongrel "$LINENO" "libiberty.h" "ac_cv_header_libiberty_h" "$ac_includes_default" +if test "x$ac_cv_header_libiberty_h" = x""yes; then : + +else + have_bfd=no +fi + + +if test "x$have_bfd" = "xyes"; then + +$as_echo "#define HAVE_BFD 1" >>confdefs.h + + BFD_LIBS=-lbfd + +fi + + # Check whether --enable-symbol-lookup was given. +if test "${enable_symbol_lookup+set}" = set; then : + enableval=$enable_symbol_lookup; enable_symbol_lookup=$enableval +else + enable_symbol_lookup=auto +fi + + case $enable_symbol_lookup in #( + no) : + use_symbol_lookup="no (disabled, use --enable-symbol-lookup to enable)" + ;; #( + yes|auto) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo's symbol-lookup feature" >&5 +$as_echo_n "checking for cairo's symbol-lookup feature... " >&6; } + echo + + use_symbol_lookup=yes + symbol_lookup_BASE="cairo" +symbol_lookup_REQUIRES="$ac_env_symbol_lookup_REQUIRES_value" +symbol_lookup_CFLAGS="$ac_env_symbol_lookup_CFLAGS_value" +symbol_lookup_NONPKGCONFIG_CFLAGS="$ac_env_symbol_lookup_NONPKGCONFIG_CFLAGS_value" +symbol_lookup_LIBS="$ac_env_symbol_lookup_LIBS_value" +symbol_lookup_NONPKGCONFIG_LIBS="$ac_env_symbol_lookup_NONPKGCONFIG_LIBS_value" +symbol_lookup_NONPKGCONFIG_EXTRA_LIBS="$ac_env_symbol_lookup_NONPKGCONFIG_EXTRA_LIBS_value" + + + + if test "x$have_bfd" != "xyes"; then + use_symbol_lookup="no (requires bfd)" + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's symbol-lookup feature could be enabled" >&5 +$as_echo_n "checking whether cairo's symbol-lookup feature could be enabled... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_symbol_lookup" >&5 +$as_echo "$use_symbol_lookup" >&6; } + + if test "x$enable_symbol_lookup" = "xyes" -a "x$use_symbol_lookup" != xyes; then : + as_fn_error $? " symbol-lookup feature could not be enabled" "$LINENO" 5 + +fi ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-symbol-lookup: \`$use_symbol_lookup', should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + if test "x$use_symbol_lookup" = "xyes"; then : + CAIRO_REQUIRES="$symbol_lookup_REQUIRES"" ${CAIRO_REQUIRES}" + + CAIRO_CFLAGS="$symbol_lookup_CFLAGS"" ${CAIRO_CFLAGS}" + + CAIRO_NONPKGCONFIG_CFLAGS="$symbol_lookup_NONPKGCONFIG_CFLAGS"" ${CAIRO_NONPKGCONFIG_CFLAGS}" + + CAIRO_LIBS="$symbol_lookup_LIBS"" ${CAIRO_LIBS}" + + CAIRO_NONPKGCONFIG_LIBS="$symbol_lookup_NONPKGCONFIG_LIBS"" ${CAIRO_NONPKGCONFIG_LIBS}" + + +else + unset symbol_lookup_BASE +unset symbol_lookup_REQUIRES +unset symbol_lookup_CFLAGS +unset symbol_lookup_NONPKGCONFIG_CFLAGS +unset symbol_lookup_LIBS +unset symbol_lookup_NONPKGCONFIG_LIBS +unset symbol_lookup_NONPKGCONFIG_EXTRA_LIBS + + +fi + + if test "x$use_symbol_lookup" = xyes; then + CAIRO_HAS_SYMBOL_LOOKUP_TRUE= + CAIRO_HAS_SYMBOL_LOOKUP_FALSE='#' +else + CAIRO_HAS_SYMBOL_LOOKUP_TRUE='#' + CAIRO_HAS_SYMBOL_LOOKUP_FALSE= +fi + + + cr_make_tmp='CAIRO_HAS_SYMBOL_LOOKUP=0' + CAIRO_MAKEFILE___WIN32="${CAIRO_MAKEFILE___WIN32} +""$cr_make_tmp" + + + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + + + + + cr_make_tmp='all_cairo_private += $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +all_cairo_cxx_sources += $(cairo_symbol_lookup_cxx_sources) +all_cairo_sources += $(cairo_symbol_lookup_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + cr_make_tmp='all_cairo_boilerplate_private += $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers) +all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_symbol_lookup_cxx_sources) +all_cairo_boilerplate_sources += $(cairo_boilerplate_symbol_lookup_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + + + cr_make_tmp='enabled_cairo_private += $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +enabled_cairo_cxx_sources += $(cairo_symbol_lookup_cxx_sources) +enabled_cairo_sources += $(cairo_symbol_lookup_sources)' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'if CAIRO_HAS_SYMBOL_LOOKUP' + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_AMAKE="${CAIRO_MAKEFILE_cairo_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1)' + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_WIN32="${CAIRO_MAKEFILE_cairo_WIN32} +"'endif' + cr_make_tmp='enabled_cairo_boilerplate_private += $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers) +enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_symbol_lookup_cxx_sources) +enabled_cairo_boilerplate_sources += $(cairo_boilerplate_symbol_lookup_sources)' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'if CAIRO_HAS_SYMBOL_LOOKUP' + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_AMAKE="${CAIRO_MAKEFILE_cairo_boilerplate_AMAKE} +"'endif' + + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1)' + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_cairo_boilerplate_WIN32="${CAIRO_MAKEFILE_cairo_boilerplate_WIN32} +"'endif' + + + + + + + + + + if test "x$use_symbol_lookup" = xyes; then : + : + +$as_echo "#define CAIRO_HAS_SYMBOL_LOOKUP 1" >>confdefs.h + + + +fi + cr_make_tmp=' @echo "#define CAIRO_HAS_SYMBOL_LOOKUP 1" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1)' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +"'endif' + + + + + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib" >&5 +$as_echo_n "checking for glib... " >&6; } + +if test -n "$glib_CFLAGS"; then + pkg_cv_glib_CFLAGS="$glib_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$glib_LIBS"; then + pkg_cv_glib_LIBS="$glib_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0" 2>&1` + else + glib_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$glib_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_glib=no +elif test $pkg_failed = untried; then + have_glib=no +else + glib_CFLAGS=$pkg_cv_glib_CFLAGS + glib_LIBS=$pkg_cv_glib_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_glib=yes +fi + + + if test "x$have_glib" = "xyes"; then + BUILD_SPHINX_TRUE= + BUILD_SPHINX_FALSE='#' +else + BUILD_SPHINX_TRUE='#' + BUILD_SPHINX_FALSE= +fi + + +save_LIBS="$LIBS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shm_open in -lrt" >&5 +$as_echo_n "checking for shm_open in -lrt... " >&6; } +if test "${ac_cv_lib_rt_shm_open+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_shm_open=yes +else + ac_cv_lib_rt_shm_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_shm_open" >&5 +$as_echo "$ac_cv_lib_rt_shm_open" >&6; } +if test "x$ac_cv_lib_rt_shm_open" = x""yes; then : + shm_LIBS="-lrt" +fi + + +LIBS="$save_LIBS" + + +# Check whether --enable-some-floating-point was given. +if test "${enable_some_floating_point+set}" = set; then : + enableval=$enable_some_floating_point; +if test "x$enableval" = "xno"; then + # A value of 'no' for $enableval means that they want to disable, which + # means 'yes' for $disable_some_floating_point. + disable_some_floating_point=yes +fi + +else + disable_some_floating_point=no +fi + + + if test "x$disable_some_floating_point" = "xyes"; then + DISABLE_SOME_FLOATING_POINT_TRUE= + DISABLE_SOME_FLOATING_POINT_FALSE='#' +else + DISABLE_SOME_FLOATING_POINT_TRUE='#' + DISABLE_SOME_FLOATING_POINT_FALSE= +fi + +if test "x$disable_some_floating_point" = "xyes"; then + +$as_echo "#define DISABLE_SOME_FLOATING_POINT 1" >>confdefs.h + +fi + + +need_cxx="no" +if test "x$use_skia" = "xyes"; then : + need_cxx="yes" +fi +if test "x$use_qt" = "xyes"; then : + need_cxx="yes" +fi +if test "x$use_beos" = "xyes"; then : + need_cxx="yes" +fi + + if test "x$need_cxx" = "xyes"; then + BUILD_CXX_TRUE= + BUILD_CXX_FALSE='#' +else + BUILD_CXX_TRUE='#' + BUILD_CXX_FALSE= +fi + + + +# We use GTK+ for some utility/debugging tools + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk" >&5 +$as_echo_n "checking for gtk... " >&6; } + +if test -n "$gtk_CFLAGS"; then + pkg_cv_gtk_CFLAGS="$gtk_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"gtk+-2.0\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors ""gtk+-2.0"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gtk_CFLAGS=`$PKG_CONFIG --cflags ""gtk+-2.0"" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$gtk_LIBS"; then + pkg_cv_gtk_LIBS="$gtk_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"gtk+-2.0\"\""; } >&5 + ($PKG_CONFIG --exists --print-errors ""gtk+-2.0"") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_gtk_LIBS=`$PKG_CONFIG --libs ""gtk+-2.0"" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + gtk_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors ""gtk+-2.0"" 2>&1` + else + gtk_PKG_ERRORS=`$PKG_CONFIG --print-errors ""gtk+-2.0"" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$gtk_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_gtk=no +elif test $pkg_failed = untried; then + have_gtk=no +else + gtk_CFLAGS=$pkg_cv_gtk_CFLAGS + gtk_LIBS=$pkg_cv_gtk_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_gtk=yes +fi + if test "x$have_gtk" = "xyes"; then + HAVE_GTK_TRUE= + HAVE_GTK_FALSE='#' +else + HAVE_GTK_TRUE='#' + HAVE_GTK_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile boilerplate/Makefile src/Makefile test/Makefile test/pdiff/Makefile perf/Makefile perf/micro/Makefile util/Makefile util/cairo-fdr/Makefile util/cairo-gobject/Makefile util/cairo-missing/Makefile util/cairo-script/Makefile util/cairo-script/examples/Makefile util/cairo-sphinx/Makefile util/cairo-trace/Makefile util/cairo-trace/cairo-trace doc/Makefile doc/public/Makefile" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_NONPKGCONFIG_CFLAGS" +CAIRO_LIBS="$CAIRO_LIBS $CAIRO_NONPKGCONFIG_LIBS" + + cr_make_tmp=' @echo "#endif" >> $(top_srcdir)/src/cairo-features.h' + CAIRO_MAKEFILE_win32_features_h_WIN32="${CAIRO_MAKEFILE_win32_features_h_WIN32} +""$cr_make_tmp" + + + + if test -z "$CAIRO_NATIVE_SURFACE_BACKENDS"; then : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'*** No native surface backends enabled for your platform. It is strongly +*** recommended that you enable the native surface backend feature for your +*** platform.' + + +fi + if test -z "$CAIRO_NATIVE_FONT_BACKENDS"; then : + CAIRO_WARNING_MESSAGE="${CAIRO_WARNING_MESSAGE} + +"'*** No native font backends enabled for your platform. It is strongly +*** recommended that you enable the native font backend feature for your +*** platform.' + + +fi + +if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then + as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then + as_fn_error $? "conditional \"OS_WIN32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_SHM_TRUE}" && test -z "${HAVE_SHM_FALSE}"; then + as_fn_error $? "conditional \"HAVE_SHM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_LCOV_TRUE}" && test -z "${CAIRO_HAS_LCOV_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_LCOV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_DL_TRUE}" && test -z "${CAIRO_HAS_DL_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_DL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_DLSYM_TRUE}" && test -z "${CAIRO_HAS_DLSYM_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_DLSYM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XLIB_SURFACE_TRUE}" && test -z "${CAIRO_HAS_XLIB_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XLIB_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE}" && test -z "${CAIRO_HAS_XLIB_XRENDER_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XLIB_XRENDER_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XCB_SURFACE_TRUE}" && test -z "${CAIRO_HAS_XCB_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XCB_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_XLIB_XCB_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XLIB_XCB_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_XCB_SHM_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XCB_SHM_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_QT_SURFACE_TRUE}" && test -z "${CAIRO_HAS_QT_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_QT_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_QUARTZ_SURFACE_TRUE}" && test -z "${CAIRO_HAS_QUARTZ_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_QUARTZ_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_QUARTZ_FONT_TRUE}" && test -z "${CAIRO_HAS_QUARTZ_FONT_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_QUARTZ_FONT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE}" && test -z "${CAIRO_HAS_QUARTZ_IMAGE_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_QUARTZ_IMAGE_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_WIN32_SURFACE_TRUE}" && test -z "${CAIRO_HAS_WIN32_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_WIN32_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_WIN32_FONT_TRUE}" && test -z "${CAIRO_HAS_WIN32_FONT_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_WIN32_FONT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_TRUE}" && test -z "${CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_SKIA_SURFACE_TRUE}" && test -z "${CAIRO_HAS_SKIA_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_SKIA_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_OS2_SURFACE_TRUE}" && test -z "${CAIRO_HAS_OS2_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_OS2_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_BEOS_SURFACE_TRUE}" && test -z "${CAIRO_HAS_BEOS_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_BEOS_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_DRM_SURFACE_TRUE}" && test -z "${CAIRO_HAS_DRM_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_DRM_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_GALLIUM_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GALLIUM_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_GALLIUM_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_PNG_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_PNG_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_PNG_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_GL_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GL_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_GL_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_GLESV2_SURFACE_TRUE}" && test -z "${CAIRO_HAS_GLESV2_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_GLESV2_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_COGL_SURFACE_TRUE}" && test -z "${CAIRO_HAS_COGL_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_COGL_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_DIRECTFB_SURFACE_TRUE}" && test -z "${CAIRO_HAS_DIRECTFB_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_DIRECTFB_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_VG_SURFACE_TRUE}" && test -z "${CAIRO_HAS_VG_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_VG_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_EGL_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_EGL_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_EGL_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_GLX_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_GLX_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_GLX_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_WGL_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_WGL_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_WGL_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_SCRIPT_SURFACE_TRUE}" && test -z "${CAIRO_HAS_SCRIPT_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_SCRIPT_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_FT_FONT_TRUE}" && test -z "${CAIRO_HAS_FT_FONT_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_FT_FONT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_FC_FONT_TRUE}" && test -z "${CAIRO_HAS_FC_FONT_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_FC_FONT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_PS_SURFACE_TRUE}" && test -z "${CAIRO_HAS_PS_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_PS_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_CAN_TEST_PS_SURFACE_TRUE}" && test -z "${CAIRO_CAN_TEST_PS_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_CAN_TEST_PS_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_SPECTRE_TRUE}" && test -z "${CAIRO_HAS_SPECTRE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_SPECTRE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_PDF_SURFACE_TRUE}" && test -z "${CAIRO_HAS_PDF_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_PDF_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_CAN_TEST_PDF_SURFACE_TRUE}" && test -z "${CAIRO_CAN_TEST_PDF_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_CAN_TEST_PDF_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE}" && test -z "${CAIRO_HAS_MULTI_PAGE_SURFACES_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_MULTI_PAGE_SURFACES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_SVG_SURFACE_TRUE}" && test -z "${CAIRO_HAS_SVG_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_SVG_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_CAN_TEST_SVG_SURFACE_TRUE}" && test -z "${CAIRO_CAN_TEST_SVG_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_CAN_TEST_SVG_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_TEST_SURFACES_TRUE}" && test -z "${CAIRO_HAS_TEST_SURFACES_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_TEST_SURFACES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_TEE_SURFACE_TRUE}" && test -z "${CAIRO_HAS_TEE_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_TEE_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_XML_SURFACE_TRUE}" && test -z "${CAIRO_HAS_XML_SURFACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_XML_SURFACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_PTHREAD_TRUE}" && test -z "${CAIRO_HAS_PTHREAD_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_PTHREAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_REAL_PTHREAD_TRUE}" && test -z "${HAVE_REAL_PTHREAD_FALSE}"; then + as_fn_error $? "conditional \"HAVE_REAL_PTHREAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_PTHREAD_TRUE}" && test -z "${HAVE_PTHREAD_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PTHREAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE}" && test -z "${CAIRO_HAS_GOBJECT_FUNCTIONS_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_GOBJECT_FUNCTIONS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_ANY2PPM_TRUE}" && test -z "${BUILD_ANY2PPM_FALSE}"; then + as_fn_error $? "conditional \"BUILD_ANY2PPM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_TRACE_TRUE}" && test -z "${CAIRO_HAS_TRACE_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_TRACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_INTERPRETER_TRUE}" && test -z "${CAIRO_HAS_INTERPRETER_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_INTERPRETER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CAIRO_HAS_SYMBOL_LOOKUP_TRUE}" && test -z "${CAIRO_HAS_SYMBOL_LOOKUP_FALSE}"; then + as_fn_error $? "conditional \"CAIRO_HAS_SYMBOL_LOOKUP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_SPHINX_TRUE}" && test -z "${BUILD_SPHINX_FALSE}"; then + as_fn_error $? "conditional \"BUILD_SPHINX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DISABLE_SOME_FLOATING_POINT_TRUE}" && test -z "${DISABLE_SOME_FLOATING_POINT_FALSE}"; then + as_fn_error $? "conditional \"DISABLE_SOME_FLOATING_POINT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_CXX_TRUE}" && test -z "${BUILD_CXX_FALSE}"; then + as_fn_error $? "conditional \"BUILD_CXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GTK_TRUE}" && test -z "${HAVE_GTK_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by cairo $as_me 1.12.3, which was +generated by GNU Autoconf 2.67. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +cairo home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +cairo config.status 1.12.3 +configured by $0, generated by GNU Autoconf 2.67, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' +predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' +predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' +postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_flag_spec_ld_CXX \ +hardcode_libdir_separator_CXX \ +fix_srcfile_path_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + +CAIRO_MAKEFILE___WIN32='$CAIRO_MAKEFILE___WIN32' +CAIRO_MAKEFILE_cairo_AMAKE='$CAIRO_MAKEFILE_cairo_AMAKE' +CAIRO_MAKEFILE_cairo_WIN32='$CAIRO_MAKEFILE_cairo_WIN32' +CAIRO_MAKEFILE_cairo_boilerplate_AMAKE='$CAIRO_MAKEFILE_cairo_boilerplate_AMAKE' +CAIRO_MAKEFILE_cairo_boilerplate_WIN32='$CAIRO_MAKEFILE_cairo_boilerplate_WIN32' + CAIRO_FEATURES='$CAIRO_FEATURES' + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' + + CAIRO_SUPPORTED_FEATURES='$CAIRO_SUPPORTED_FEATURES' + +CAIRO_MAKEFILE_win32_features_h_WIN32='$CAIRO_MAKEFILE_win32_features_h_WIN32' + SED='$SED' + xlib_BASE='$xlib_BASE' + xlib_REQUIRES='$xlib_REQUIRES' + xlib_NONPKGCONFIG_LIBS='$xlib_NONPKGCONFIG_LIBS' + xlib_NONPKGCONFIG_EXTRA_LIBS='$xlib_NONPKGCONFIG_EXTRA_LIBS' + xlib_NONPKGCONFIG_CFLAGS='$xlib_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xlib_BASE='$xlib_BASE' + xlib_REQUIRES='$xlib_REQUIRES' + xlib_NONPKGCONFIG_LIBS='$xlib_NONPKGCONFIG_LIBS' + xlib_NONPKGCONFIG_EXTRA_LIBS='$xlib_NONPKGCONFIG_EXTRA_LIBS' + xlib_NONPKGCONFIG_CFLAGS='$xlib_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xlib_xrender_BASE='$xlib_xrender_BASE' + xlib_xrender_REQUIRES='$xlib_xrender_REQUIRES' + xlib_xrender_NONPKGCONFIG_LIBS='$xlib_xrender_NONPKGCONFIG_LIBS' + xlib_xrender_NONPKGCONFIG_EXTRA_LIBS='$xlib_xrender_NONPKGCONFIG_EXTRA_LIBS' + xlib_xrender_NONPKGCONFIG_CFLAGS='$xlib_xrender_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xlib_xrender_BASE='$xlib_xrender_BASE' + xlib_xrender_REQUIRES='$xlib_xrender_REQUIRES' + xlib_xrender_NONPKGCONFIG_LIBS='$xlib_xrender_NONPKGCONFIG_LIBS' + xlib_xrender_NONPKGCONFIG_EXTRA_LIBS='$xlib_xrender_NONPKGCONFIG_EXTRA_LIBS' + xlib_xrender_NONPKGCONFIG_CFLAGS='$xlib_xrender_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xcb_BASE='$xcb_BASE' + xcb_REQUIRES='$xcb_REQUIRES' + xcb_NONPKGCONFIG_LIBS='$xcb_NONPKGCONFIG_LIBS' + xcb_NONPKGCONFIG_EXTRA_LIBS='$xcb_NONPKGCONFIG_EXTRA_LIBS' + xcb_NONPKGCONFIG_CFLAGS='$xcb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xcb_BASE='$xcb_BASE' + xcb_REQUIRES='$xcb_REQUIRES' + xcb_NONPKGCONFIG_LIBS='$xcb_NONPKGCONFIG_LIBS' + xcb_NONPKGCONFIG_EXTRA_LIBS='$xcb_NONPKGCONFIG_EXTRA_LIBS' + xcb_NONPKGCONFIG_CFLAGS='$xcb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xlib_xcb_BASE='$xlib_xcb_BASE' + xlib_xcb_REQUIRES='$xlib_xcb_REQUIRES' + xlib_xcb_NONPKGCONFIG_LIBS='$xlib_xcb_NONPKGCONFIG_LIBS' + xlib_xcb_NONPKGCONFIG_EXTRA_LIBS='$xlib_xcb_NONPKGCONFIG_EXTRA_LIBS' + xlib_xcb_NONPKGCONFIG_CFLAGS='$xlib_xcb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xlib_xcb_BASE='$xlib_xcb_BASE' + xlib_xcb_REQUIRES='$xlib_xcb_REQUIRES' + xlib_xcb_NONPKGCONFIG_LIBS='$xlib_xcb_NONPKGCONFIG_LIBS' + xlib_xcb_NONPKGCONFIG_EXTRA_LIBS='$xlib_xcb_NONPKGCONFIG_EXTRA_LIBS' + xlib_xcb_NONPKGCONFIG_CFLAGS='$xlib_xcb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xcb_shm_BASE='$xcb_shm_BASE' + xcb_shm_REQUIRES='$xcb_shm_REQUIRES' + xcb_shm_NONPKGCONFIG_LIBS='$xcb_shm_NONPKGCONFIG_LIBS' + xcb_shm_NONPKGCONFIG_EXTRA_LIBS='$xcb_shm_NONPKGCONFIG_EXTRA_LIBS' + xcb_shm_NONPKGCONFIG_CFLAGS='$xcb_shm_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xcb_shm_BASE='$xcb_shm_BASE' + xcb_shm_REQUIRES='$xcb_shm_REQUIRES' + xcb_shm_NONPKGCONFIG_LIBS='$xcb_shm_NONPKGCONFIG_LIBS' + xcb_shm_NONPKGCONFIG_EXTRA_LIBS='$xcb_shm_NONPKGCONFIG_EXTRA_LIBS' + xcb_shm_NONPKGCONFIG_CFLAGS='$xcb_shm_NONPKGCONFIG_CFLAGS' + + SED='$SED' + qt_BASE='$qt_BASE' + qt_REQUIRES='$qt_REQUIRES' + qt_NONPKGCONFIG_LIBS='$qt_NONPKGCONFIG_LIBS' + qt_NONPKGCONFIG_EXTRA_LIBS='$qt_NONPKGCONFIG_EXTRA_LIBS' + qt_NONPKGCONFIG_CFLAGS='$qt_NONPKGCONFIG_CFLAGS' + + SED='$SED' + qt_BASE='$qt_BASE' + qt_REQUIRES='$qt_REQUIRES' + qt_NONPKGCONFIG_LIBS='$qt_NONPKGCONFIG_LIBS' + qt_NONPKGCONFIG_EXTRA_LIBS='$qt_NONPKGCONFIG_EXTRA_LIBS' + qt_NONPKGCONFIG_CFLAGS='$qt_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_BASE='$quartz_BASE' + quartz_REQUIRES='$quartz_REQUIRES' + quartz_NONPKGCONFIG_LIBS='$quartz_NONPKGCONFIG_LIBS' + quartz_NONPKGCONFIG_EXTRA_LIBS='$quartz_NONPKGCONFIG_EXTRA_LIBS' + quartz_NONPKGCONFIG_CFLAGS='$quartz_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_BASE='$quartz_BASE' + quartz_REQUIRES='$quartz_REQUIRES' + quartz_NONPKGCONFIG_LIBS='$quartz_NONPKGCONFIG_LIBS' + quartz_NONPKGCONFIG_EXTRA_LIBS='$quartz_NONPKGCONFIG_EXTRA_LIBS' + quartz_NONPKGCONFIG_CFLAGS='$quartz_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_font_BASE='$quartz_font_BASE' + quartz_font_REQUIRES='$quartz_font_REQUIRES' + quartz_font_NONPKGCONFIG_LIBS='$quartz_font_NONPKGCONFIG_LIBS' + quartz_font_NONPKGCONFIG_EXTRA_LIBS='$quartz_font_NONPKGCONFIG_EXTRA_LIBS' + quartz_font_NONPKGCONFIG_CFLAGS='$quartz_font_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_font_BASE='$quartz_font_BASE' + quartz_font_REQUIRES='$quartz_font_REQUIRES' + quartz_font_NONPKGCONFIG_LIBS='$quartz_font_NONPKGCONFIG_LIBS' + quartz_font_NONPKGCONFIG_EXTRA_LIBS='$quartz_font_NONPKGCONFIG_EXTRA_LIBS' + quartz_font_NONPKGCONFIG_CFLAGS='$quartz_font_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_image_BASE='$quartz_image_BASE' + quartz_image_REQUIRES='$quartz_image_REQUIRES' + quartz_image_NONPKGCONFIG_LIBS='$quartz_image_NONPKGCONFIG_LIBS' + quartz_image_NONPKGCONFIG_EXTRA_LIBS='$quartz_image_NONPKGCONFIG_EXTRA_LIBS' + quartz_image_NONPKGCONFIG_CFLAGS='$quartz_image_NONPKGCONFIG_CFLAGS' + + SED='$SED' + quartz_image_BASE='$quartz_image_BASE' + quartz_image_REQUIRES='$quartz_image_REQUIRES' + quartz_image_NONPKGCONFIG_LIBS='$quartz_image_NONPKGCONFIG_LIBS' + quartz_image_NONPKGCONFIG_EXTRA_LIBS='$quartz_image_NONPKGCONFIG_EXTRA_LIBS' + quartz_image_NONPKGCONFIG_CFLAGS='$quartz_image_NONPKGCONFIG_CFLAGS' + + SED='$SED' + win32_BASE='$win32_BASE' + win32_REQUIRES='$win32_REQUIRES' + win32_NONPKGCONFIG_LIBS='$win32_NONPKGCONFIG_LIBS' + win32_NONPKGCONFIG_EXTRA_LIBS='$win32_NONPKGCONFIG_EXTRA_LIBS' + win32_NONPKGCONFIG_CFLAGS='$win32_NONPKGCONFIG_CFLAGS' + + SED='$SED' + win32_BASE='$win32_BASE' + win32_REQUIRES='$win32_REQUIRES' + win32_NONPKGCONFIG_LIBS='$win32_NONPKGCONFIG_LIBS' + win32_NONPKGCONFIG_EXTRA_LIBS='$win32_NONPKGCONFIG_EXTRA_LIBS' + win32_NONPKGCONFIG_CFLAGS='$win32_NONPKGCONFIG_CFLAGS' + + SED='$SED' + win32_font_BASE='$win32_font_BASE' + win32_font_REQUIRES='$win32_font_REQUIRES' + win32_font_NONPKGCONFIG_LIBS='$win32_font_NONPKGCONFIG_LIBS' + win32_font_NONPKGCONFIG_EXTRA_LIBS='$win32_font_NONPKGCONFIG_EXTRA_LIBS' + win32_font_NONPKGCONFIG_CFLAGS='$win32_font_NONPKGCONFIG_CFLAGS' + + SED='$SED' + win32_font_BASE='$win32_font_BASE' + win32_font_REQUIRES='$win32_font_REQUIRES' + win32_font_NONPKGCONFIG_LIBS='$win32_font_NONPKGCONFIG_LIBS' + win32_font_NONPKGCONFIG_EXTRA_LIBS='$win32_font_NONPKGCONFIG_EXTRA_LIBS' + win32_font_NONPKGCONFIG_CFLAGS='$win32_font_NONPKGCONFIG_CFLAGS' + + SED='$SED' + skia_BASE='$skia_BASE' + skia_REQUIRES='$skia_REQUIRES' + skia_NONPKGCONFIG_LIBS='$skia_NONPKGCONFIG_LIBS' + skia_NONPKGCONFIG_EXTRA_LIBS='$skia_NONPKGCONFIG_EXTRA_LIBS' + skia_NONPKGCONFIG_CFLAGS='$skia_NONPKGCONFIG_CFLAGS' + + SED='$SED' + skia_BASE='$skia_BASE' + skia_REQUIRES='$skia_REQUIRES' + skia_NONPKGCONFIG_LIBS='$skia_NONPKGCONFIG_LIBS' + skia_NONPKGCONFIG_EXTRA_LIBS='$skia_NONPKGCONFIG_EXTRA_LIBS' + skia_NONPKGCONFIG_CFLAGS='$skia_NONPKGCONFIG_CFLAGS' + + SED='$SED' + os2_BASE='$os2_BASE' + os2_REQUIRES='$os2_REQUIRES' + os2_NONPKGCONFIG_LIBS='$os2_NONPKGCONFIG_LIBS' + os2_NONPKGCONFIG_EXTRA_LIBS='$os2_NONPKGCONFIG_EXTRA_LIBS' + os2_NONPKGCONFIG_CFLAGS='$os2_NONPKGCONFIG_CFLAGS' + + SED='$SED' + os2_BASE='$os2_BASE' + os2_REQUIRES='$os2_REQUIRES' + os2_NONPKGCONFIG_LIBS='$os2_NONPKGCONFIG_LIBS' + os2_NONPKGCONFIG_EXTRA_LIBS='$os2_NONPKGCONFIG_EXTRA_LIBS' + os2_NONPKGCONFIG_CFLAGS='$os2_NONPKGCONFIG_CFLAGS' + + SED='$SED' + beos_BASE='$beos_BASE' + beos_REQUIRES='$beos_REQUIRES' + beos_NONPKGCONFIG_LIBS='$beos_NONPKGCONFIG_LIBS' + beos_NONPKGCONFIG_EXTRA_LIBS='$beos_NONPKGCONFIG_EXTRA_LIBS' + beos_NONPKGCONFIG_CFLAGS='$beos_NONPKGCONFIG_CFLAGS' + + SED='$SED' + beos_BASE='$beos_BASE' + beos_REQUIRES='$beos_REQUIRES' + beos_NONPKGCONFIG_LIBS='$beos_NONPKGCONFIG_LIBS' + beos_NONPKGCONFIG_EXTRA_LIBS='$beos_NONPKGCONFIG_EXTRA_LIBS' + beos_NONPKGCONFIG_CFLAGS='$beos_NONPKGCONFIG_CFLAGS' + + SED='$SED' + drm_BASE='$drm_BASE' + drm_REQUIRES='$drm_REQUIRES' + drm_NONPKGCONFIG_LIBS='$drm_NONPKGCONFIG_LIBS' + drm_NONPKGCONFIG_EXTRA_LIBS='$drm_NONPKGCONFIG_EXTRA_LIBS' + drm_NONPKGCONFIG_CFLAGS='$drm_NONPKGCONFIG_CFLAGS' + + SED='$SED' + drm_BASE='$drm_BASE' + drm_REQUIRES='$drm_REQUIRES' + drm_NONPKGCONFIG_LIBS='$drm_NONPKGCONFIG_LIBS' + drm_NONPKGCONFIG_EXTRA_LIBS='$drm_NONPKGCONFIG_EXTRA_LIBS' + drm_NONPKGCONFIG_CFLAGS='$drm_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gallium_BASE='$gallium_BASE' + gallium_REQUIRES='$gallium_REQUIRES' + gallium_NONPKGCONFIG_LIBS='$gallium_NONPKGCONFIG_LIBS' + gallium_NONPKGCONFIG_EXTRA_LIBS='$gallium_NONPKGCONFIG_EXTRA_LIBS' + gallium_NONPKGCONFIG_CFLAGS='$gallium_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gallium_BASE='$gallium_BASE' + gallium_REQUIRES='$gallium_REQUIRES' + gallium_NONPKGCONFIG_LIBS='$gallium_NONPKGCONFIG_LIBS' + gallium_NONPKGCONFIG_EXTRA_LIBS='$gallium_NONPKGCONFIG_EXTRA_LIBS' + gallium_NONPKGCONFIG_CFLAGS='$gallium_NONPKGCONFIG_CFLAGS' + + SED='$SED' + png_BASE='$png_BASE' + png_REQUIRES='$png_REQUIRES' + png_NONPKGCONFIG_LIBS='$png_NONPKGCONFIG_LIBS' + png_NONPKGCONFIG_EXTRA_LIBS='$png_NONPKGCONFIG_EXTRA_LIBS' + png_NONPKGCONFIG_CFLAGS='$png_NONPKGCONFIG_CFLAGS' + + SED='$SED' + png_BASE='$png_BASE' + png_REQUIRES='$png_REQUIRES' + png_NONPKGCONFIG_LIBS='$png_NONPKGCONFIG_LIBS' + png_NONPKGCONFIG_EXTRA_LIBS='$png_NONPKGCONFIG_EXTRA_LIBS' + png_NONPKGCONFIG_CFLAGS='$png_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gl_BASE='$gl_BASE' + gl_REQUIRES='$gl_REQUIRES' + gl_NONPKGCONFIG_LIBS='$gl_NONPKGCONFIG_LIBS' + gl_NONPKGCONFIG_EXTRA_LIBS='$gl_NONPKGCONFIG_EXTRA_LIBS' + gl_NONPKGCONFIG_CFLAGS='$gl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gl_BASE='$gl_BASE' + gl_REQUIRES='$gl_REQUIRES' + gl_NONPKGCONFIG_LIBS='$gl_NONPKGCONFIG_LIBS' + gl_NONPKGCONFIG_EXTRA_LIBS='$gl_NONPKGCONFIG_EXTRA_LIBS' + gl_NONPKGCONFIG_CFLAGS='$gl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + glesv2_BASE='$glesv2_BASE' + glesv2_REQUIRES='$glesv2_REQUIRES' + glesv2_NONPKGCONFIG_LIBS='$glesv2_NONPKGCONFIG_LIBS' + glesv2_NONPKGCONFIG_EXTRA_LIBS='$glesv2_NONPKGCONFIG_EXTRA_LIBS' + glesv2_NONPKGCONFIG_CFLAGS='$glesv2_NONPKGCONFIG_CFLAGS' + + SED='$SED' + glesv2_BASE='$glesv2_BASE' + glesv2_REQUIRES='$glesv2_REQUIRES' + glesv2_NONPKGCONFIG_LIBS='$glesv2_NONPKGCONFIG_LIBS' + glesv2_NONPKGCONFIG_EXTRA_LIBS='$glesv2_NONPKGCONFIG_EXTRA_LIBS' + glesv2_NONPKGCONFIG_CFLAGS='$glesv2_NONPKGCONFIG_CFLAGS' + + SED='$SED' + cogl_BASE='$cogl_BASE' + cogl_REQUIRES='$cogl_REQUIRES' + cogl_NONPKGCONFIG_LIBS='$cogl_NONPKGCONFIG_LIBS' + cogl_NONPKGCONFIG_EXTRA_LIBS='$cogl_NONPKGCONFIG_EXTRA_LIBS' + cogl_NONPKGCONFIG_CFLAGS='$cogl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + cogl_BASE='$cogl_BASE' + cogl_REQUIRES='$cogl_REQUIRES' + cogl_NONPKGCONFIG_LIBS='$cogl_NONPKGCONFIG_LIBS' + cogl_NONPKGCONFIG_EXTRA_LIBS='$cogl_NONPKGCONFIG_EXTRA_LIBS' + cogl_NONPKGCONFIG_CFLAGS='$cogl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + directfb_BASE='$directfb_BASE' + directfb_REQUIRES='$directfb_REQUIRES' + directfb_NONPKGCONFIG_LIBS='$directfb_NONPKGCONFIG_LIBS' + directfb_NONPKGCONFIG_EXTRA_LIBS='$directfb_NONPKGCONFIG_EXTRA_LIBS' + directfb_NONPKGCONFIG_CFLAGS='$directfb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + directfb_BASE='$directfb_BASE' + directfb_REQUIRES='$directfb_REQUIRES' + directfb_NONPKGCONFIG_LIBS='$directfb_NONPKGCONFIG_LIBS' + directfb_NONPKGCONFIG_EXTRA_LIBS='$directfb_NONPKGCONFIG_EXTRA_LIBS' + directfb_NONPKGCONFIG_CFLAGS='$directfb_NONPKGCONFIG_CFLAGS' + + SED='$SED' + vg_BASE='$vg_BASE' + vg_REQUIRES='$vg_REQUIRES' + vg_NONPKGCONFIG_LIBS='$vg_NONPKGCONFIG_LIBS' + vg_NONPKGCONFIG_EXTRA_LIBS='$vg_NONPKGCONFIG_EXTRA_LIBS' + vg_NONPKGCONFIG_CFLAGS='$vg_NONPKGCONFIG_CFLAGS' + + SED='$SED' + vg_BASE='$vg_BASE' + vg_REQUIRES='$vg_REQUIRES' + vg_NONPKGCONFIG_LIBS='$vg_NONPKGCONFIG_LIBS' + vg_NONPKGCONFIG_EXTRA_LIBS='$vg_NONPKGCONFIG_EXTRA_LIBS' + vg_NONPKGCONFIG_CFLAGS='$vg_NONPKGCONFIG_CFLAGS' + + SED='$SED' + egl_BASE='$egl_BASE' + egl_REQUIRES='$egl_REQUIRES' + egl_NONPKGCONFIG_LIBS='$egl_NONPKGCONFIG_LIBS' + egl_NONPKGCONFIG_EXTRA_LIBS='$egl_NONPKGCONFIG_EXTRA_LIBS' + egl_NONPKGCONFIG_CFLAGS='$egl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + egl_BASE='$egl_BASE' + egl_REQUIRES='$egl_REQUIRES' + egl_NONPKGCONFIG_LIBS='$egl_NONPKGCONFIG_LIBS' + egl_NONPKGCONFIG_EXTRA_LIBS='$egl_NONPKGCONFIG_EXTRA_LIBS' + egl_NONPKGCONFIG_CFLAGS='$egl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + glx_BASE='$glx_BASE' + glx_REQUIRES='$glx_REQUIRES' + glx_NONPKGCONFIG_LIBS='$glx_NONPKGCONFIG_LIBS' + glx_NONPKGCONFIG_EXTRA_LIBS='$glx_NONPKGCONFIG_EXTRA_LIBS' + glx_NONPKGCONFIG_CFLAGS='$glx_NONPKGCONFIG_CFLAGS' + + SED='$SED' + glx_BASE='$glx_BASE' + glx_REQUIRES='$glx_REQUIRES' + glx_NONPKGCONFIG_LIBS='$glx_NONPKGCONFIG_LIBS' + glx_NONPKGCONFIG_EXTRA_LIBS='$glx_NONPKGCONFIG_EXTRA_LIBS' + glx_NONPKGCONFIG_CFLAGS='$glx_NONPKGCONFIG_CFLAGS' + + SED='$SED' + wgl_BASE='$wgl_BASE' + wgl_REQUIRES='$wgl_REQUIRES' + wgl_NONPKGCONFIG_LIBS='$wgl_NONPKGCONFIG_LIBS' + wgl_NONPKGCONFIG_EXTRA_LIBS='$wgl_NONPKGCONFIG_EXTRA_LIBS' + wgl_NONPKGCONFIG_CFLAGS='$wgl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + wgl_BASE='$wgl_BASE' + wgl_REQUIRES='$wgl_REQUIRES' + wgl_NONPKGCONFIG_LIBS='$wgl_NONPKGCONFIG_LIBS' + wgl_NONPKGCONFIG_EXTRA_LIBS='$wgl_NONPKGCONFIG_EXTRA_LIBS' + wgl_NONPKGCONFIG_CFLAGS='$wgl_NONPKGCONFIG_CFLAGS' + + SED='$SED' + script_BASE='$script_BASE' + script_REQUIRES='$script_REQUIRES' + script_NONPKGCONFIG_LIBS='$script_NONPKGCONFIG_LIBS' + script_NONPKGCONFIG_EXTRA_LIBS='$script_NONPKGCONFIG_EXTRA_LIBS' + script_NONPKGCONFIG_CFLAGS='$script_NONPKGCONFIG_CFLAGS' + + SED='$SED' + script_BASE='$script_BASE' + script_REQUIRES='$script_REQUIRES' + script_NONPKGCONFIG_LIBS='$script_NONPKGCONFIG_LIBS' + script_NONPKGCONFIG_EXTRA_LIBS='$script_NONPKGCONFIG_EXTRA_LIBS' + script_NONPKGCONFIG_CFLAGS='$script_NONPKGCONFIG_CFLAGS' + + SED='$SED' + ft_BASE='$ft_BASE' + ft_REQUIRES='$ft_REQUIRES' + ft_NONPKGCONFIG_LIBS='$ft_NONPKGCONFIG_LIBS' + ft_NONPKGCONFIG_EXTRA_LIBS='$ft_NONPKGCONFIG_EXTRA_LIBS' + ft_NONPKGCONFIG_CFLAGS='$ft_NONPKGCONFIG_CFLAGS' + + SED='$SED' + ft_BASE='$ft_BASE' + ft_REQUIRES='$ft_REQUIRES' + ft_NONPKGCONFIG_LIBS='$ft_NONPKGCONFIG_LIBS' + ft_NONPKGCONFIG_EXTRA_LIBS='$ft_NONPKGCONFIG_EXTRA_LIBS' + ft_NONPKGCONFIG_CFLAGS='$ft_NONPKGCONFIG_CFLAGS' + + SED='$SED' + fc_BASE='$fc_BASE' + fc_REQUIRES='$fc_REQUIRES' + fc_NONPKGCONFIG_LIBS='$fc_NONPKGCONFIG_LIBS' + fc_NONPKGCONFIG_EXTRA_LIBS='$fc_NONPKGCONFIG_EXTRA_LIBS' + fc_NONPKGCONFIG_CFLAGS='$fc_NONPKGCONFIG_CFLAGS' + + SED='$SED' + fc_BASE='$fc_BASE' + fc_REQUIRES='$fc_REQUIRES' + fc_NONPKGCONFIG_LIBS='$fc_NONPKGCONFIG_LIBS' + fc_NONPKGCONFIG_EXTRA_LIBS='$fc_NONPKGCONFIG_EXTRA_LIBS' + fc_NONPKGCONFIG_CFLAGS='$fc_NONPKGCONFIG_CFLAGS' + + SED='$SED' + ps_BASE='$ps_BASE' + ps_REQUIRES='$ps_REQUIRES' + ps_NONPKGCONFIG_LIBS='$ps_NONPKGCONFIG_LIBS' + ps_NONPKGCONFIG_EXTRA_LIBS='$ps_NONPKGCONFIG_EXTRA_LIBS' + ps_NONPKGCONFIG_CFLAGS='$ps_NONPKGCONFIG_CFLAGS' + + SED='$SED' + ps_BASE='$ps_BASE' + ps_REQUIRES='$ps_REQUIRES' + ps_NONPKGCONFIG_LIBS='$ps_NONPKGCONFIG_LIBS' + ps_NONPKGCONFIG_EXTRA_LIBS='$ps_NONPKGCONFIG_EXTRA_LIBS' + ps_NONPKGCONFIG_CFLAGS='$ps_NONPKGCONFIG_CFLAGS' + + SED='$SED' + pdf_BASE='$pdf_BASE' + pdf_REQUIRES='$pdf_REQUIRES' + pdf_NONPKGCONFIG_LIBS='$pdf_NONPKGCONFIG_LIBS' + pdf_NONPKGCONFIG_EXTRA_LIBS='$pdf_NONPKGCONFIG_EXTRA_LIBS' + pdf_NONPKGCONFIG_CFLAGS='$pdf_NONPKGCONFIG_CFLAGS' + + SED='$SED' + pdf_BASE='$pdf_BASE' + pdf_REQUIRES='$pdf_REQUIRES' + pdf_NONPKGCONFIG_LIBS='$pdf_NONPKGCONFIG_LIBS' + pdf_NONPKGCONFIG_EXTRA_LIBS='$pdf_NONPKGCONFIG_EXTRA_LIBS' + pdf_NONPKGCONFIG_CFLAGS='$pdf_NONPKGCONFIG_CFLAGS' + + SED='$SED' + svg_BASE='$svg_BASE' + svg_REQUIRES='$svg_REQUIRES' + svg_NONPKGCONFIG_LIBS='$svg_NONPKGCONFIG_LIBS' + svg_NONPKGCONFIG_EXTRA_LIBS='$svg_NONPKGCONFIG_EXTRA_LIBS' + svg_NONPKGCONFIG_CFLAGS='$svg_NONPKGCONFIG_CFLAGS' + + SED='$SED' + svg_BASE='$svg_BASE' + svg_REQUIRES='$svg_REQUIRES' + svg_NONPKGCONFIG_LIBS='$svg_NONPKGCONFIG_LIBS' + svg_NONPKGCONFIG_EXTRA_LIBS='$svg_NONPKGCONFIG_EXTRA_LIBS' + svg_NONPKGCONFIG_CFLAGS='$svg_NONPKGCONFIG_CFLAGS' + + SED='$SED' + tee_BASE='$tee_BASE' + tee_REQUIRES='$tee_REQUIRES' + tee_NONPKGCONFIG_LIBS='$tee_NONPKGCONFIG_LIBS' + tee_NONPKGCONFIG_EXTRA_LIBS='$tee_NONPKGCONFIG_EXTRA_LIBS' + tee_NONPKGCONFIG_CFLAGS='$tee_NONPKGCONFIG_CFLAGS' + + SED='$SED' + tee_BASE='$tee_BASE' + tee_REQUIRES='$tee_REQUIRES' + tee_NONPKGCONFIG_LIBS='$tee_NONPKGCONFIG_LIBS' + tee_NONPKGCONFIG_EXTRA_LIBS='$tee_NONPKGCONFIG_EXTRA_LIBS' + tee_NONPKGCONFIG_CFLAGS='$tee_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xml_BASE='$xml_BASE' + xml_REQUIRES='$xml_REQUIRES' + xml_NONPKGCONFIG_LIBS='$xml_NONPKGCONFIG_LIBS' + xml_NONPKGCONFIG_EXTRA_LIBS='$xml_NONPKGCONFIG_EXTRA_LIBS' + xml_NONPKGCONFIG_CFLAGS='$xml_NONPKGCONFIG_CFLAGS' + + SED='$SED' + xml_BASE='$xml_BASE' + xml_REQUIRES='$xml_REQUIRES' + xml_NONPKGCONFIG_LIBS='$xml_NONPKGCONFIG_LIBS' + xml_NONPKGCONFIG_EXTRA_LIBS='$xml_NONPKGCONFIG_EXTRA_LIBS' + xml_NONPKGCONFIG_CFLAGS='$xml_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gobject_BASE='$gobject_BASE' + gobject_REQUIRES='$gobject_REQUIRES' + gobject_NONPKGCONFIG_LIBS='$gobject_NONPKGCONFIG_LIBS' + gobject_NONPKGCONFIG_EXTRA_LIBS='$gobject_NONPKGCONFIG_EXTRA_LIBS' + gobject_NONPKGCONFIG_CFLAGS='$gobject_NONPKGCONFIG_CFLAGS' + + SED='$SED' + gobject_BASE='$gobject_BASE' + gobject_REQUIRES='$gobject_REQUIRES' + gobject_NONPKGCONFIG_LIBS='$gobject_NONPKGCONFIG_LIBS' + gobject_NONPKGCONFIG_EXTRA_LIBS='$gobject_NONPKGCONFIG_EXTRA_LIBS' + gobject_NONPKGCONFIG_CFLAGS='$gobject_NONPKGCONFIG_CFLAGS' + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "$srcdir/build/Makefile.win32.features") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/build/Makefile.win32.features" ;; + "$srcdir/src/Makefile.am.features") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/src/Makefile.am.features" ;; + "$srcdir/src/Makefile.win32.features") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/src/Makefile.win32.features" ;; + "$srcdir/boilerplate/Makefile.am.features") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/boilerplate/Makefile.am.features" ;; + "$srcdir/boilerplate/Makefile.win32.features") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/boilerplate/Makefile.win32.features" ;; + "src/cairo.pc") CONFIG_FILES="$CONFIG_FILES src/cairo.pc" ;; + "cairo-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-uninstalled.pc:src/cairo-uninstalled.pc.in" ;; + "src/cairo-features.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/cairo-features.h" ;; + "src/cairo-supported-features.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/cairo-supported-features.h" ;; + "$srcdir/build/Makefile.win32.features-h") CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/build/Makefile.win32.features-h" ;; + "src/cairo-xlib.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xlib.pc:src/cairo-features.pc.in" ;; + "cairo-xlib-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xlib-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-xlib-xrender.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xlib-xrender.pc:src/cairo-features.pc.in" ;; + "cairo-xlib-xrender-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xlib-xrender-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-xcb.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xcb.pc:src/cairo-features.pc.in" ;; + "cairo-xcb-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xcb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-xlib-xcb.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xlib-xcb.pc:src/cairo-features.pc.in" ;; + "cairo-xlib-xcb-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xlib-xcb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-xcb-shm.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xcb-shm.pc:src/cairo-features.pc.in" ;; + "cairo-xcb-shm-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xcb-shm-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-qt.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-qt.pc:src/cairo-features.pc.in" ;; + "cairo-qt-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-qt-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-quartz.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-quartz.pc:src/cairo-features.pc.in" ;; + "cairo-quartz-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-quartz-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-quartz-font.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-quartz-font.pc:src/cairo-features.pc.in" ;; + "cairo-quartz-font-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-quartz-font-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-quartz-image.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-quartz-image.pc:src/cairo-features.pc.in" ;; + "cairo-quartz-image-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-quartz-image-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-win32.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-win32.pc:src/cairo-features.pc.in" ;; + "cairo-win32-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-win32-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-win32-font.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-win32-font.pc:src/cairo-features.pc.in" ;; + "cairo-win32-font-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-win32-font-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-skia.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-skia.pc:src/cairo-features.pc.in" ;; + "cairo-skia-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-skia-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-os2.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-os2.pc:src/cairo-features.pc.in" ;; + "cairo-os2-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-os2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-beos.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-beos.pc:src/cairo-features.pc.in" ;; + "cairo-beos-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-beos-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-drm.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-drm.pc:src/cairo-features.pc.in" ;; + "cairo-drm-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-drm-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-gallium.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-gallium.pc:src/cairo-features.pc.in" ;; + "cairo-gallium-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-gallium-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-png.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-png.pc:src/cairo-features.pc.in" ;; + "cairo-png-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-png-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-gl.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-gl.pc:src/cairo-features.pc.in" ;; + "cairo-gl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-gl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-glesv2.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-glesv2.pc:src/cairo-features.pc.in" ;; + "cairo-glesv2-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-glesv2-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-cogl.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-cogl.pc:src/cairo-features.pc.in" ;; + "cairo-cogl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-cogl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-directfb.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-directfb.pc:src/cairo-features.pc.in" ;; + "cairo-directfb-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-directfb-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-vg.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-vg.pc:src/cairo-features.pc.in" ;; + "cairo-vg-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-vg-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-egl.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-egl.pc:src/cairo-features.pc.in" ;; + "cairo-egl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-egl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-glx.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-glx.pc:src/cairo-features.pc.in" ;; + "cairo-glx-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-glx-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-wgl.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-wgl.pc:src/cairo-features.pc.in" ;; + "cairo-wgl-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-wgl-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-script.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-script.pc:src/cairo-features.pc.in" ;; + "cairo-script-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-script-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-ft.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-ft.pc:src/cairo-features.pc.in" ;; + "cairo-ft-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-ft-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-fc.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-fc.pc:src/cairo-features.pc.in" ;; + "cairo-fc-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-fc-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-ps.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-ps.pc:src/cairo-features.pc.in" ;; + "cairo-ps-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-ps-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-pdf.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-pdf.pc:src/cairo-features.pc.in" ;; + "cairo-pdf-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-pdf-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-svg.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-svg.pc:src/cairo-features.pc.in" ;; + "cairo-svg-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-svg-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-tee.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-tee.pc:src/cairo-features.pc.in" ;; + "cairo-tee-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-tee-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-xml.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-xml.pc:src/cairo-features.pc.in" ;; + "cairo-xml-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-xml-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "src/cairo-gobject.pc") CONFIG_FILES="$CONFIG_FILES src/cairo-gobject.pc:src/cairo-features.pc.in" ;; + "cairo-gobject-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES cairo-gobject-uninstalled.pc:src/cairo-features-uninstalled.pc.in" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "boilerplate/Makefile") CONFIG_FILES="$CONFIG_FILES boilerplate/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + "test/pdiff/Makefile") CONFIG_FILES="$CONFIG_FILES test/pdiff/Makefile" ;; + "perf/Makefile") CONFIG_FILES="$CONFIG_FILES perf/Makefile" ;; + "perf/micro/Makefile") CONFIG_FILES="$CONFIG_FILES perf/micro/Makefile" ;; + "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; + "util/cairo-fdr/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-fdr/Makefile" ;; + "util/cairo-gobject/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-gobject/Makefile" ;; + "util/cairo-missing/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-missing/Makefile" ;; + "util/cairo-script/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-script/Makefile" ;; + "util/cairo-script/examples/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-script/examples/Makefile" ;; + "util/cairo-sphinx/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-sphinx/Makefile" ;; + "util/cairo-trace/Makefile") CONFIG_FILES="$CONFIG_FILES util/cairo-trace/Makefile" ;; + "util/cairo-trace/cairo-trace") CONFIG_FILES="$CONFIG_FILES util/cairo-trace/cairo-trace" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/public/Makefile") CONFIG_FILES="$CONFIG_FILES doc/public/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$AS + +# DLL creation program. +DLLTOOL=$DLLTOOL + +# Object dumper program. +OBJDUMP=$OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + "$srcdir/build/Makefile.win32.features":C) + _config_file=$srcdir/build/Makefile.win32.features + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE___WIN32" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "$srcdir/src/Makefile.am.features":C) + _config_file=$srcdir/src/Makefile.am.features + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE_cairo_AMAKE" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "$srcdir/src/Makefile.win32.features":C) + _config_file=$srcdir/src/Makefile.win32.features + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE_cairo_WIN32" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "$srcdir/boilerplate/Makefile.am.features":C) + _config_file=$srcdir/boilerplate/Makefile.am.features + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE_cairo_boilerplate_AMAKE" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "$srcdir/boilerplate/Makefile.win32.features":C) + _config_file=$srcdir/boilerplate/Makefile.win32.features + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE_cairo_boilerplate_WIN32" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "src/cairo-features.h":C) + _config_file=src/cairo-features.h + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_FEATURES_H' + echo '#define CAIRO_FEATURES_H' + echo '' + for FEATURE in $CAIRO_FEATURES; do + echo "#define $FEATURE 1" + done | LANG=C sort + echo '' + for FEATURE in $CAIRO_NO_FEATURES; do + echo "/*#undef $FEATURE */" + done | LANG=C sort + echo '' + echo '#endif' + + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "src/cairo-supported-features.h":C) + _config_file=src/cairo-supported-features.h + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_SUPPORTED_FEATURES_H' + echo '#define CAIRO_SUPPORTED_FEATURES_H' + echo '' + echo '/* This is a dummy header, to trick gtk-doc only */' + echo '' + for FEATURE in $CAIRO_SUPPORTED_FEATURES; do + echo "#define $FEATURE 1" + done + echo '' + echo '#endif' + + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "$srcdir/build/Makefile.win32.features-h":C) + _config_file=$srcdir/build/Makefile.win32.features-h + _tmp_file=cairoconf.tmp + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $_config_file" >&5 +$as_echo "$as_me: creating $_config_file" >&6;} + { + echo "$CAIRO_MAKEFILE_win32_features_h_WIN32" + } >> "$_tmp_file" || + as_fn_error $? "failed to write to $_tmp_file" "$LINENO" 5 + + if cmp -s "$_tmp_file" "$_config_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $_config_file is unchanged" >&5 +$as_echo "$as_me: $_config_file is unchanged" >&6;} + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + as_fn_error $? "failed to update $_config_file" "$LINENO" 5 + fi + ;; + "src/cairo-xlib.pc":F) mv "src/cairo-xlib.pc" "src/cairo-xlib.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib%g; s%@FEATURE_NAME@%Xlib surface backend%g; s%@FEATURE_BASE@%$xlib_BASE%g; s%@FEATURE_REQUIRES@%$xlib_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xlib.pc.tmp" > "src/cairo-xlib.pc" && rm -f "src/cairo-xlib.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xlib.pc" "$LINENO" 5 + ;; + "cairo-xlib-uninstalled.pc":F) mv "cairo-xlib-uninstalled.pc" "cairo-xlib-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib%g; s%@FEATURE_NAME@%Xlib surface backend%g; s%@FEATURE_BASE@%$xlib_BASE%g; s%@FEATURE_REQUIRES@%$xlib_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_NONPKGCONFIG_CFLAGS%g; " < "cairo-xlib-uninstalled.pc.tmp" > "cairo-xlib-uninstalled.pc" && rm -f "cairo-xlib-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xlib-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-xlib-xrender.pc":F) mv "src/cairo-xlib-xrender.pc" "src/cairo-xlib-xrender.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib-xrender%g; s%@FEATURE_NAME@%Xlib Xrender surface backend%g; s%@FEATURE_BASE@%$xlib_xrender_BASE%g; s%@FEATURE_REQUIRES@%$xlib_xrender_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_xrender_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_xrender_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_xrender_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xlib-xrender.pc.tmp" > "src/cairo-xlib-xrender.pc" && rm -f "src/cairo-xlib-xrender.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xlib-xrender.pc" "$LINENO" 5 + ;; + "cairo-xlib-xrender-uninstalled.pc":F) mv "cairo-xlib-xrender-uninstalled.pc" "cairo-xlib-xrender-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib-xrender%g; s%@FEATURE_NAME@%Xlib Xrender surface backend%g; s%@FEATURE_BASE@%$xlib_xrender_BASE%g; s%@FEATURE_REQUIRES@%$xlib_xrender_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_xrender_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_xrender_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_xrender_NONPKGCONFIG_CFLAGS%g; " < "cairo-xlib-xrender-uninstalled.pc.tmp" > "cairo-xlib-xrender-uninstalled.pc" && rm -f "cairo-xlib-xrender-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xlib-xrender-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-xcb.pc":F) mv "src/cairo-xcb.pc" "src/cairo-xcb.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xcb%g; s%@FEATURE_NAME@%XCB surface backend%g; s%@FEATURE_BASE@%$xcb_BASE%g; s%@FEATURE_REQUIRES@%$xcb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xcb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xcb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xcb_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xcb.pc.tmp" > "src/cairo-xcb.pc" && rm -f "src/cairo-xcb.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xcb.pc" "$LINENO" 5 + ;; + "cairo-xcb-uninstalled.pc":F) mv "cairo-xcb-uninstalled.pc" "cairo-xcb-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xcb%g; s%@FEATURE_NAME@%XCB surface backend%g; s%@FEATURE_BASE@%$xcb_BASE%g; s%@FEATURE_REQUIRES@%$xcb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xcb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xcb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xcb_NONPKGCONFIG_CFLAGS%g; " < "cairo-xcb-uninstalled.pc.tmp" > "cairo-xcb-uninstalled.pc" && rm -f "cairo-xcb-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xcb-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-xlib-xcb.pc":F) mv "src/cairo-xlib-xcb.pc" "src/cairo-xlib-xcb.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib-xcb%g; s%@FEATURE_NAME@%Xlib/XCB functions%g; s%@FEATURE_BASE@%$xlib_xcb_BASE%g; s%@FEATURE_REQUIRES@%$xlib_xcb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_xcb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_xcb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_xcb_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xlib-xcb.pc.tmp" > "src/cairo-xlib-xcb.pc" && rm -f "src/cairo-xlib-xcb.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xlib-xcb.pc" "$LINENO" 5 + ;; + "cairo-xlib-xcb-uninstalled.pc":F) mv "cairo-xlib-xcb-uninstalled.pc" "cairo-xlib-xcb-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xlib-xcb%g; s%@FEATURE_NAME@%Xlib/XCB functions%g; s%@FEATURE_BASE@%$xlib_xcb_BASE%g; s%@FEATURE_REQUIRES@%$xlib_xcb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xlib_xcb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xlib_xcb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xlib_xcb_NONPKGCONFIG_CFLAGS%g; " < "cairo-xlib-xcb-uninstalled.pc.tmp" > "cairo-xlib-xcb-uninstalled.pc" && rm -f "cairo-xlib-xcb-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xlib-xcb-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-xcb-shm.pc":F) mv "src/cairo-xcb-shm.pc" "src/cairo-xcb-shm.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xcb-shm%g; s%@FEATURE_NAME@%XCB/SHM functions%g; s%@FEATURE_BASE@%$xcb_shm_BASE%g; s%@FEATURE_REQUIRES@%$xcb_shm_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xcb_shm_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xcb_shm_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xcb_shm_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xcb-shm.pc.tmp" > "src/cairo-xcb-shm.pc" && rm -f "src/cairo-xcb-shm.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xcb-shm.pc" "$LINENO" 5 + ;; + "cairo-xcb-shm-uninstalled.pc":F) mv "cairo-xcb-shm-uninstalled.pc" "cairo-xcb-shm-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xcb-shm%g; s%@FEATURE_NAME@%XCB/SHM functions%g; s%@FEATURE_BASE@%$xcb_shm_BASE%g; s%@FEATURE_REQUIRES@%$xcb_shm_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xcb_shm_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xcb_shm_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xcb_shm_NONPKGCONFIG_CFLAGS%g; " < "cairo-xcb-shm-uninstalled.pc.tmp" > "cairo-xcb-shm-uninstalled.pc" && rm -f "cairo-xcb-shm-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xcb-shm-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-qt.pc":F) mv "src/cairo-qt.pc" "src/cairo-qt.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-qt%g; s%@FEATURE_NAME@%Qt surface backend%g; s%@FEATURE_BASE@%$qt_BASE%g; s%@FEATURE_REQUIRES@%$qt_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$qt_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$qt_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$qt_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-qt.pc.tmp" > "src/cairo-qt.pc" && rm -f "src/cairo-qt.pc.tmp" || + as_fn_error $? "failed to update src/cairo-qt.pc" "$LINENO" 5 + ;; + "cairo-qt-uninstalled.pc":F) mv "cairo-qt-uninstalled.pc" "cairo-qt-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-qt%g; s%@FEATURE_NAME@%Qt surface backend%g; s%@FEATURE_BASE@%$qt_BASE%g; s%@FEATURE_REQUIRES@%$qt_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$qt_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$qt_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$qt_NONPKGCONFIG_CFLAGS%g; " < "cairo-qt-uninstalled.pc.tmp" > "cairo-qt-uninstalled.pc" && rm -f "cairo-qt-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-qt-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-quartz.pc":F) mv "src/cairo-quartz.pc" "src/cairo-quartz.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz%g; s%@FEATURE_NAME@%Quartz surface backend%g; s%@FEATURE_BASE@%$quartz_BASE%g; s%@FEATURE_REQUIRES@%$quartz_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-quartz.pc.tmp" > "src/cairo-quartz.pc" && rm -f "src/cairo-quartz.pc.tmp" || + as_fn_error $? "failed to update src/cairo-quartz.pc" "$LINENO" 5 + ;; + "cairo-quartz-uninstalled.pc":F) mv "cairo-quartz-uninstalled.pc" "cairo-quartz-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz%g; s%@FEATURE_NAME@%Quartz surface backend%g; s%@FEATURE_BASE@%$quartz_BASE%g; s%@FEATURE_REQUIRES@%$quartz_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_NONPKGCONFIG_CFLAGS%g; " < "cairo-quartz-uninstalled.pc.tmp" > "cairo-quartz-uninstalled.pc" && rm -f "cairo-quartz-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-quartz-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-quartz-font.pc":F) mv "src/cairo-quartz-font.pc" "src/cairo-quartz-font.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz-font%g; s%@FEATURE_NAME@%Quartz font backend%g; s%@FEATURE_BASE@%$quartz_font_BASE%g; s%@FEATURE_REQUIRES@%$quartz_font_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_font_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_font_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_font_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-quartz-font.pc.tmp" > "src/cairo-quartz-font.pc" && rm -f "src/cairo-quartz-font.pc.tmp" || + as_fn_error $? "failed to update src/cairo-quartz-font.pc" "$LINENO" 5 + ;; + "cairo-quartz-font-uninstalled.pc":F) mv "cairo-quartz-font-uninstalled.pc" "cairo-quartz-font-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz-font%g; s%@FEATURE_NAME@%Quartz font backend%g; s%@FEATURE_BASE@%$quartz_font_BASE%g; s%@FEATURE_REQUIRES@%$quartz_font_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_font_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_font_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_font_NONPKGCONFIG_CFLAGS%g; " < "cairo-quartz-font-uninstalled.pc.tmp" > "cairo-quartz-font-uninstalled.pc" && rm -f "cairo-quartz-font-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-quartz-font-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-quartz-image.pc":F) mv "src/cairo-quartz-image.pc" "src/cairo-quartz-image.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz-image%g; s%@FEATURE_NAME@%Quartz Image surface backend%g; s%@FEATURE_BASE@%$quartz_image_BASE%g; s%@FEATURE_REQUIRES@%$quartz_image_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_image_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_image_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_image_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-quartz-image.pc.tmp" > "src/cairo-quartz-image.pc" && rm -f "src/cairo-quartz-image.pc.tmp" || + as_fn_error $? "failed to update src/cairo-quartz-image.pc" "$LINENO" 5 + ;; + "cairo-quartz-image-uninstalled.pc":F) mv "cairo-quartz-image-uninstalled.pc" "cairo-quartz-image-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-quartz-image%g; s%@FEATURE_NAME@%Quartz Image surface backend%g; s%@FEATURE_BASE@%$quartz_image_BASE%g; s%@FEATURE_REQUIRES@%$quartz_image_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$quartz_image_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$quartz_image_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$quartz_image_NONPKGCONFIG_CFLAGS%g; " < "cairo-quartz-image-uninstalled.pc.tmp" > "cairo-quartz-image-uninstalled.pc" && rm -f "cairo-quartz-image-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-quartz-image-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-win32.pc":F) mv "src/cairo-win32.pc" "src/cairo-win32.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-win32%g; s%@FEATURE_NAME@%Microsoft Windows surface backend%g; s%@FEATURE_BASE@%$win32_BASE%g; s%@FEATURE_REQUIRES@%$win32_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$win32_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$win32_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$win32_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-win32.pc.tmp" > "src/cairo-win32.pc" && rm -f "src/cairo-win32.pc.tmp" || + as_fn_error $? "failed to update src/cairo-win32.pc" "$LINENO" 5 + ;; + "cairo-win32-uninstalled.pc":F) mv "cairo-win32-uninstalled.pc" "cairo-win32-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-win32%g; s%@FEATURE_NAME@%Microsoft Windows surface backend%g; s%@FEATURE_BASE@%$win32_BASE%g; s%@FEATURE_REQUIRES@%$win32_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$win32_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$win32_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$win32_NONPKGCONFIG_CFLAGS%g; " < "cairo-win32-uninstalled.pc.tmp" > "cairo-win32-uninstalled.pc" && rm -f "cairo-win32-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-win32-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-win32-font.pc":F) mv "src/cairo-win32-font.pc" "src/cairo-win32-font.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-win32-font%g; s%@FEATURE_NAME@%Microsoft Windows font backend%g; s%@FEATURE_BASE@%$win32_font_BASE%g; s%@FEATURE_REQUIRES@%$win32_font_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$win32_font_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$win32_font_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$win32_font_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-win32-font.pc.tmp" > "src/cairo-win32-font.pc" && rm -f "src/cairo-win32-font.pc.tmp" || + as_fn_error $? "failed to update src/cairo-win32-font.pc" "$LINENO" 5 + ;; + "cairo-win32-font-uninstalled.pc":F) mv "cairo-win32-font-uninstalled.pc" "cairo-win32-font-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-win32-font%g; s%@FEATURE_NAME@%Microsoft Windows font backend%g; s%@FEATURE_BASE@%$win32_font_BASE%g; s%@FEATURE_REQUIRES@%$win32_font_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$win32_font_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$win32_font_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$win32_font_NONPKGCONFIG_CFLAGS%g; " < "cairo-win32-font-uninstalled.pc.tmp" > "cairo-win32-font-uninstalled.pc" && rm -f "cairo-win32-font-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-win32-font-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-skia.pc":F) mv "src/cairo-skia.pc" "src/cairo-skia.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-skia%g; s%@FEATURE_NAME@%Skia surface backend%g; s%@FEATURE_BASE@%$skia_BASE%g; s%@FEATURE_REQUIRES@%$skia_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$skia_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$skia_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$skia_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-skia.pc.tmp" > "src/cairo-skia.pc" && rm -f "src/cairo-skia.pc.tmp" || + as_fn_error $? "failed to update src/cairo-skia.pc" "$LINENO" 5 + ;; + "cairo-skia-uninstalled.pc":F) mv "cairo-skia-uninstalled.pc" "cairo-skia-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-skia%g; s%@FEATURE_NAME@%Skia surface backend%g; s%@FEATURE_BASE@%$skia_BASE%g; s%@FEATURE_REQUIRES@%$skia_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$skia_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$skia_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$skia_NONPKGCONFIG_CFLAGS%g; " < "cairo-skia-uninstalled.pc.tmp" > "cairo-skia-uninstalled.pc" && rm -f "cairo-skia-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-skia-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-os2.pc":F) mv "src/cairo-os2.pc" "src/cairo-os2.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-os2%g; s%@FEATURE_NAME@%OS/2 surface backend%g; s%@FEATURE_BASE@%$os2_BASE%g; s%@FEATURE_REQUIRES@%$os2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$os2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$os2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$os2_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-os2.pc.tmp" > "src/cairo-os2.pc" && rm -f "src/cairo-os2.pc.tmp" || + as_fn_error $? "failed to update src/cairo-os2.pc" "$LINENO" 5 + ;; + "cairo-os2-uninstalled.pc":F) mv "cairo-os2-uninstalled.pc" "cairo-os2-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-os2%g; s%@FEATURE_NAME@%OS/2 surface backend%g; s%@FEATURE_BASE@%$os2_BASE%g; s%@FEATURE_REQUIRES@%$os2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$os2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$os2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$os2_NONPKGCONFIG_CFLAGS%g; " < "cairo-os2-uninstalled.pc.tmp" > "cairo-os2-uninstalled.pc" && rm -f "cairo-os2-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-os2-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-beos.pc":F) mv "src/cairo-beos.pc" "src/cairo-beos.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-beos%g; s%@FEATURE_NAME@%BeOS/Zeta surface backend%g; s%@FEATURE_BASE@%$beos_BASE%g; s%@FEATURE_REQUIRES@%$beos_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$beos_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$beos_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$beos_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-beos.pc.tmp" > "src/cairo-beos.pc" && rm -f "src/cairo-beos.pc.tmp" || + as_fn_error $? "failed to update src/cairo-beos.pc" "$LINENO" 5 + ;; + "cairo-beos-uninstalled.pc":F) mv "cairo-beos-uninstalled.pc" "cairo-beos-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-beos%g; s%@FEATURE_NAME@%BeOS/Zeta surface backend%g; s%@FEATURE_BASE@%$beos_BASE%g; s%@FEATURE_REQUIRES@%$beos_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$beos_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$beos_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$beos_NONPKGCONFIG_CFLAGS%g; " < "cairo-beos-uninstalled.pc.tmp" > "cairo-beos-uninstalled.pc" && rm -f "cairo-beos-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-beos-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-drm.pc":F) mv "src/cairo-drm.pc" "src/cairo-drm.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-drm%g; s%@FEATURE_NAME@%DRM surface backend%g; s%@FEATURE_BASE@%$drm_BASE%g; s%@FEATURE_REQUIRES@%$drm_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$drm_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$drm_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$drm_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-drm.pc.tmp" > "src/cairo-drm.pc" && rm -f "src/cairo-drm.pc.tmp" || + as_fn_error $? "failed to update src/cairo-drm.pc" "$LINENO" 5 + ;; + "cairo-drm-uninstalled.pc":F) mv "cairo-drm-uninstalled.pc" "cairo-drm-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-drm%g; s%@FEATURE_NAME@%DRM surface backend%g; s%@FEATURE_BASE@%$drm_BASE%g; s%@FEATURE_REQUIRES@%$drm_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$drm_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$drm_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$drm_NONPKGCONFIG_CFLAGS%g; " < "cairo-drm-uninstalled.pc.tmp" > "cairo-drm-uninstalled.pc" && rm -f "cairo-drm-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-drm-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-gallium.pc":F) mv "src/cairo-gallium.pc" "src/cairo-gallium.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gallium%g; s%@FEATURE_NAME@%Gallium3D surface backend%g; s%@FEATURE_BASE@%$gallium_BASE%g; s%@FEATURE_REQUIRES@%$gallium_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gallium_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gallium_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gallium_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-gallium.pc.tmp" > "src/cairo-gallium.pc" && rm -f "src/cairo-gallium.pc.tmp" || + as_fn_error $? "failed to update src/cairo-gallium.pc" "$LINENO" 5 + ;; + "cairo-gallium-uninstalled.pc":F) mv "cairo-gallium-uninstalled.pc" "cairo-gallium-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gallium%g; s%@FEATURE_NAME@%Gallium3D surface backend%g; s%@FEATURE_BASE@%$gallium_BASE%g; s%@FEATURE_REQUIRES@%$gallium_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gallium_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gallium_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gallium_NONPKGCONFIG_CFLAGS%g; " < "cairo-gallium-uninstalled.pc.tmp" > "cairo-gallium-uninstalled.pc" && rm -f "cairo-gallium-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-gallium-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-png.pc":F) mv "src/cairo-png.pc" "src/cairo-png.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-png%g; s%@FEATURE_NAME@%PNG functions%g; s%@FEATURE_BASE@%$png_BASE%g; s%@FEATURE_REQUIRES@%$png_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$png_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$png_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$png_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-png.pc.tmp" > "src/cairo-png.pc" && rm -f "src/cairo-png.pc.tmp" || + as_fn_error $? "failed to update src/cairo-png.pc" "$LINENO" 5 + ;; + "cairo-png-uninstalled.pc":F) mv "cairo-png-uninstalled.pc" "cairo-png-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-png%g; s%@FEATURE_NAME@%PNG functions%g; s%@FEATURE_BASE@%$png_BASE%g; s%@FEATURE_REQUIRES@%$png_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$png_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$png_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$png_NONPKGCONFIG_CFLAGS%g; " < "cairo-png-uninstalled.pc.tmp" > "cairo-png-uninstalled.pc" && rm -f "cairo-png-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-png-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-gl.pc":F) mv "src/cairo-gl.pc" "src/cairo-gl.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gl%g; s%@FEATURE_NAME@%OpenGL surface backend%g; s%@FEATURE_BASE@%$gl_BASE%g; s%@FEATURE_REQUIRES@%$gl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gl_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-gl.pc.tmp" > "src/cairo-gl.pc" && rm -f "src/cairo-gl.pc.tmp" || + as_fn_error $? "failed to update src/cairo-gl.pc" "$LINENO" 5 + ;; + "cairo-gl-uninstalled.pc":F) mv "cairo-gl-uninstalled.pc" "cairo-gl-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gl%g; s%@FEATURE_NAME@%OpenGL surface backend%g; s%@FEATURE_BASE@%$gl_BASE%g; s%@FEATURE_REQUIRES@%$gl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gl_NONPKGCONFIG_CFLAGS%g; " < "cairo-gl-uninstalled.pc.tmp" > "cairo-gl-uninstalled.pc" && rm -f "cairo-gl-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-gl-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-glesv2.pc":F) mv "src/cairo-glesv2.pc" "src/cairo-glesv2.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-glesv2%g; s%@FEATURE_NAME@%OpenGLESv2 surface backend%g; s%@FEATURE_BASE@%$glesv2_BASE%g; s%@FEATURE_REQUIRES@%$glesv2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glesv2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glesv2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glesv2_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-glesv2.pc.tmp" > "src/cairo-glesv2.pc" && rm -f "src/cairo-glesv2.pc.tmp" || + as_fn_error $? "failed to update src/cairo-glesv2.pc" "$LINENO" 5 + ;; + "cairo-glesv2-uninstalled.pc":F) mv "cairo-glesv2-uninstalled.pc" "cairo-glesv2-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-glesv2%g; s%@FEATURE_NAME@%OpenGLESv2 surface backend%g; s%@FEATURE_BASE@%$glesv2_BASE%g; s%@FEATURE_REQUIRES@%$glesv2_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glesv2_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glesv2_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glesv2_NONPKGCONFIG_CFLAGS%g; " < "cairo-glesv2-uninstalled.pc.tmp" > "cairo-glesv2-uninstalled.pc" && rm -f "cairo-glesv2-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-glesv2-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-cogl.pc":F) mv "src/cairo-cogl.pc" "src/cairo-cogl.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-cogl%g; s%@FEATURE_NAME@%Cogl surface backend%g; s%@FEATURE_BASE@%$cogl_BASE%g; s%@FEATURE_REQUIRES@%$cogl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$cogl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$cogl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$cogl_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-cogl.pc.tmp" > "src/cairo-cogl.pc" && rm -f "src/cairo-cogl.pc.tmp" || + as_fn_error $? "failed to update src/cairo-cogl.pc" "$LINENO" 5 + ;; + "cairo-cogl-uninstalled.pc":F) mv "cairo-cogl-uninstalled.pc" "cairo-cogl-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-cogl%g; s%@FEATURE_NAME@%Cogl surface backend%g; s%@FEATURE_BASE@%$cogl_BASE%g; s%@FEATURE_REQUIRES@%$cogl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$cogl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$cogl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$cogl_NONPKGCONFIG_CFLAGS%g; " < "cairo-cogl-uninstalled.pc.tmp" > "cairo-cogl-uninstalled.pc" && rm -f "cairo-cogl-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-cogl-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-directfb.pc":F) mv "src/cairo-directfb.pc" "src/cairo-directfb.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-directfb%g; s%@FEATURE_NAME@%directfb surface backend%g; s%@FEATURE_BASE@%$directfb_BASE%g; s%@FEATURE_REQUIRES@%$directfb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$directfb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$directfb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$directfb_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-directfb.pc.tmp" > "src/cairo-directfb.pc" && rm -f "src/cairo-directfb.pc.tmp" || + as_fn_error $? "failed to update src/cairo-directfb.pc" "$LINENO" 5 + ;; + "cairo-directfb-uninstalled.pc":F) mv "cairo-directfb-uninstalled.pc" "cairo-directfb-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-directfb%g; s%@FEATURE_NAME@%directfb surface backend%g; s%@FEATURE_BASE@%$directfb_BASE%g; s%@FEATURE_REQUIRES@%$directfb_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$directfb_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$directfb_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$directfb_NONPKGCONFIG_CFLAGS%g; " < "cairo-directfb-uninstalled.pc.tmp" > "cairo-directfb-uninstalled.pc" && rm -f "cairo-directfb-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-directfb-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-vg.pc":F) mv "src/cairo-vg.pc" "src/cairo-vg.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-vg%g; s%@FEATURE_NAME@%OpenVG surface backend%g; s%@FEATURE_BASE@%$vg_BASE%g; s%@FEATURE_REQUIRES@%$vg_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$vg_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$vg_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$vg_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-vg.pc.tmp" > "src/cairo-vg.pc" && rm -f "src/cairo-vg.pc.tmp" || + as_fn_error $? "failed to update src/cairo-vg.pc" "$LINENO" 5 + ;; + "cairo-vg-uninstalled.pc":F) mv "cairo-vg-uninstalled.pc" "cairo-vg-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-vg%g; s%@FEATURE_NAME@%OpenVG surface backend%g; s%@FEATURE_BASE@%$vg_BASE%g; s%@FEATURE_REQUIRES@%$vg_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$vg_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$vg_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$vg_NONPKGCONFIG_CFLAGS%g; " < "cairo-vg-uninstalled.pc.tmp" > "cairo-vg-uninstalled.pc" && rm -f "cairo-vg-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-vg-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-egl.pc":F) mv "src/cairo-egl.pc" "src/cairo-egl.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-egl%g; s%@FEATURE_NAME@%EGL functions%g; s%@FEATURE_BASE@%$egl_BASE%g; s%@FEATURE_REQUIRES@%$egl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$egl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$egl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$egl_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-egl.pc.tmp" > "src/cairo-egl.pc" && rm -f "src/cairo-egl.pc.tmp" || + as_fn_error $? "failed to update src/cairo-egl.pc" "$LINENO" 5 + ;; + "cairo-egl-uninstalled.pc":F) mv "cairo-egl-uninstalled.pc" "cairo-egl-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-egl%g; s%@FEATURE_NAME@%EGL functions%g; s%@FEATURE_BASE@%$egl_BASE%g; s%@FEATURE_REQUIRES@%$egl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$egl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$egl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$egl_NONPKGCONFIG_CFLAGS%g; " < "cairo-egl-uninstalled.pc.tmp" > "cairo-egl-uninstalled.pc" && rm -f "cairo-egl-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-egl-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-glx.pc":F) mv "src/cairo-glx.pc" "src/cairo-glx.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-glx%g; s%@FEATURE_NAME@%GLX functions%g; s%@FEATURE_BASE@%$glx_BASE%g; s%@FEATURE_REQUIRES@%$glx_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glx_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glx_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glx_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-glx.pc.tmp" > "src/cairo-glx.pc" && rm -f "src/cairo-glx.pc.tmp" || + as_fn_error $? "failed to update src/cairo-glx.pc" "$LINENO" 5 + ;; + "cairo-glx-uninstalled.pc":F) mv "cairo-glx-uninstalled.pc" "cairo-glx-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-glx%g; s%@FEATURE_NAME@%GLX functions%g; s%@FEATURE_BASE@%$glx_BASE%g; s%@FEATURE_REQUIRES@%$glx_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$glx_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$glx_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$glx_NONPKGCONFIG_CFLAGS%g; " < "cairo-glx-uninstalled.pc.tmp" > "cairo-glx-uninstalled.pc" && rm -f "cairo-glx-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-glx-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-wgl.pc":F) mv "src/cairo-wgl.pc" "src/cairo-wgl.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-wgl%g; s%@FEATURE_NAME@%WGL functions%g; s%@FEATURE_BASE@%$wgl_BASE%g; s%@FEATURE_REQUIRES@%$wgl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$wgl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$wgl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$wgl_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-wgl.pc.tmp" > "src/cairo-wgl.pc" && rm -f "src/cairo-wgl.pc.tmp" || + as_fn_error $? "failed to update src/cairo-wgl.pc" "$LINENO" 5 + ;; + "cairo-wgl-uninstalled.pc":F) mv "cairo-wgl-uninstalled.pc" "cairo-wgl-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-wgl%g; s%@FEATURE_NAME@%WGL functions%g; s%@FEATURE_BASE@%$wgl_BASE%g; s%@FEATURE_REQUIRES@%$wgl_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$wgl_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$wgl_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$wgl_NONPKGCONFIG_CFLAGS%g; " < "cairo-wgl-uninstalled.pc.tmp" > "cairo-wgl-uninstalled.pc" && rm -f "cairo-wgl-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-wgl-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-script.pc":F) mv "src/cairo-script.pc" "src/cairo-script.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-script%g; s%@FEATURE_NAME@%script surface backend%g; s%@FEATURE_BASE@%$script_BASE%g; s%@FEATURE_REQUIRES@%$script_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$script_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$script_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$script_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-script.pc.tmp" > "src/cairo-script.pc" && rm -f "src/cairo-script.pc.tmp" || + as_fn_error $? "failed to update src/cairo-script.pc" "$LINENO" 5 + ;; + "cairo-script-uninstalled.pc":F) mv "cairo-script-uninstalled.pc" "cairo-script-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-script%g; s%@FEATURE_NAME@%script surface backend%g; s%@FEATURE_BASE@%$script_BASE%g; s%@FEATURE_REQUIRES@%$script_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$script_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$script_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$script_NONPKGCONFIG_CFLAGS%g; " < "cairo-script-uninstalled.pc.tmp" > "cairo-script-uninstalled.pc" && rm -f "cairo-script-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-script-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-ft.pc":F) mv "src/cairo-ft.pc" "src/cairo-ft.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-ft%g; s%@FEATURE_NAME@%FreeType font backend%g; s%@FEATURE_BASE@%$ft_BASE%g; s%@FEATURE_REQUIRES@%$ft_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$ft_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$ft_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$ft_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-ft.pc.tmp" > "src/cairo-ft.pc" && rm -f "src/cairo-ft.pc.tmp" || + as_fn_error $? "failed to update src/cairo-ft.pc" "$LINENO" 5 + ;; + "cairo-ft-uninstalled.pc":F) mv "cairo-ft-uninstalled.pc" "cairo-ft-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-ft%g; s%@FEATURE_NAME@%FreeType font backend%g; s%@FEATURE_BASE@%$ft_BASE%g; s%@FEATURE_REQUIRES@%$ft_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$ft_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$ft_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$ft_NONPKGCONFIG_CFLAGS%g; " < "cairo-ft-uninstalled.pc.tmp" > "cairo-ft-uninstalled.pc" && rm -f "cairo-ft-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-ft-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-fc.pc":F) mv "src/cairo-fc.pc" "src/cairo-fc.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-fc%g; s%@FEATURE_NAME@%Fontconfig font backend%g; s%@FEATURE_BASE@%$fc_BASE%g; s%@FEATURE_REQUIRES@%$fc_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$fc_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$fc_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$fc_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-fc.pc.tmp" > "src/cairo-fc.pc" && rm -f "src/cairo-fc.pc.tmp" || + as_fn_error $? "failed to update src/cairo-fc.pc" "$LINENO" 5 + ;; + "cairo-fc-uninstalled.pc":F) mv "cairo-fc-uninstalled.pc" "cairo-fc-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-fc%g; s%@FEATURE_NAME@%Fontconfig font backend%g; s%@FEATURE_BASE@%$fc_BASE%g; s%@FEATURE_REQUIRES@%$fc_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$fc_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$fc_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$fc_NONPKGCONFIG_CFLAGS%g; " < "cairo-fc-uninstalled.pc.tmp" > "cairo-fc-uninstalled.pc" && rm -f "cairo-fc-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-fc-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-ps.pc":F) mv "src/cairo-ps.pc" "src/cairo-ps.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-ps%g; s%@FEATURE_NAME@%PostScript surface backend%g; s%@FEATURE_BASE@%$ps_BASE%g; s%@FEATURE_REQUIRES@%$ps_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$ps_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$ps_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$ps_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-ps.pc.tmp" > "src/cairo-ps.pc" && rm -f "src/cairo-ps.pc.tmp" || + as_fn_error $? "failed to update src/cairo-ps.pc" "$LINENO" 5 + ;; + "cairo-ps-uninstalled.pc":F) mv "cairo-ps-uninstalled.pc" "cairo-ps-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-ps%g; s%@FEATURE_NAME@%PostScript surface backend%g; s%@FEATURE_BASE@%$ps_BASE%g; s%@FEATURE_REQUIRES@%$ps_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$ps_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$ps_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$ps_NONPKGCONFIG_CFLAGS%g; " < "cairo-ps-uninstalled.pc.tmp" > "cairo-ps-uninstalled.pc" && rm -f "cairo-ps-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-ps-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-pdf.pc":F) mv "src/cairo-pdf.pc" "src/cairo-pdf.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-pdf%g; s%@FEATURE_NAME@%PDF surface backend%g; s%@FEATURE_BASE@%$pdf_BASE%g; s%@FEATURE_REQUIRES@%$pdf_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$pdf_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$pdf_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$pdf_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-pdf.pc.tmp" > "src/cairo-pdf.pc" && rm -f "src/cairo-pdf.pc.tmp" || + as_fn_error $? "failed to update src/cairo-pdf.pc" "$LINENO" 5 + ;; + "cairo-pdf-uninstalled.pc":F) mv "cairo-pdf-uninstalled.pc" "cairo-pdf-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-pdf%g; s%@FEATURE_NAME@%PDF surface backend%g; s%@FEATURE_BASE@%$pdf_BASE%g; s%@FEATURE_REQUIRES@%$pdf_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$pdf_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$pdf_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$pdf_NONPKGCONFIG_CFLAGS%g; " < "cairo-pdf-uninstalled.pc.tmp" > "cairo-pdf-uninstalled.pc" && rm -f "cairo-pdf-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-pdf-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-svg.pc":F) mv "src/cairo-svg.pc" "src/cairo-svg.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-svg%g; s%@FEATURE_NAME@%SVG surface backend%g; s%@FEATURE_BASE@%$svg_BASE%g; s%@FEATURE_REQUIRES@%$svg_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$svg_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$svg_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$svg_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-svg.pc.tmp" > "src/cairo-svg.pc" && rm -f "src/cairo-svg.pc.tmp" || + as_fn_error $? "failed to update src/cairo-svg.pc" "$LINENO" 5 + ;; + "cairo-svg-uninstalled.pc":F) mv "cairo-svg-uninstalled.pc" "cairo-svg-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-svg%g; s%@FEATURE_NAME@%SVG surface backend%g; s%@FEATURE_BASE@%$svg_BASE%g; s%@FEATURE_REQUIRES@%$svg_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$svg_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$svg_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$svg_NONPKGCONFIG_CFLAGS%g; " < "cairo-svg-uninstalled.pc.tmp" > "cairo-svg-uninstalled.pc" && rm -f "cairo-svg-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-svg-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-tee.pc":F) mv "src/cairo-tee.pc" "src/cairo-tee.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-tee%g; s%@FEATURE_NAME@%tee surface backend%g; s%@FEATURE_BASE@%$tee_BASE%g; s%@FEATURE_REQUIRES@%$tee_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$tee_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$tee_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$tee_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-tee.pc.tmp" > "src/cairo-tee.pc" && rm -f "src/cairo-tee.pc.tmp" || + as_fn_error $? "failed to update src/cairo-tee.pc" "$LINENO" 5 + ;; + "cairo-tee-uninstalled.pc":F) mv "cairo-tee-uninstalled.pc" "cairo-tee-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-tee%g; s%@FEATURE_NAME@%tee surface backend%g; s%@FEATURE_BASE@%$tee_BASE%g; s%@FEATURE_REQUIRES@%$tee_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$tee_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$tee_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$tee_NONPKGCONFIG_CFLAGS%g; " < "cairo-tee-uninstalled.pc.tmp" > "cairo-tee-uninstalled.pc" && rm -f "cairo-tee-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-tee-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-xml.pc":F) mv "src/cairo-xml.pc" "src/cairo-xml.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xml%g; s%@FEATURE_NAME@%xml surface backend%g; s%@FEATURE_BASE@%$xml_BASE%g; s%@FEATURE_REQUIRES@%$xml_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xml_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xml_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xml_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-xml.pc.tmp" > "src/cairo-xml.pc" && rm -f "src/cairo-xml.pc.tmp" || + as_fn_error $? "failed to update src/cairo-xml.pc" "$LINENO" 5 + ;; + "cairo-xml-uninstalled.pc":F) mv "cairo-xml-uninstalled.pc" "cairo-xml-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-xml%g; s%@FEATURE_NAME@%xml surface backend%g; s%@FEATURE_BASE@%$xml_BASE%g; s%@FEATURE_REQUIRES@%$xml_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$xml_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$xml_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$xml_NONPKGCONFIG_CFLAGS%g; " < "cairo-xml-uninstalled.pc.tmp" > "cairo-xml-uninstalled.pc" && rm -f "cairo-xml-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-xml-uninstalled.pc" "$LINENO" 5 + ;; + "src/cairo-gobject.pc":F) mv "src/cairo-gobject.pc" "src/cairo-gobject.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gobject%g; s%@FEATURE_NAME@%gobject functions%g; s%@FEATURE_BASE@%$gobject_BASE%g; s%@FEATURE_REQUIRES@%$gobject_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gobject_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gobject_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gobject_NONPKGCONFIG_CFLAGS%g; " < "src/cairo-gobject.pc.tmp" > "src/cairo-gobject.pc" && rm -f "src/cairo-gobject.pc.tmp" || + as_fn_error $? "failed to update src/cairo-gobject.pc" "$LINENO" 5 + ;; + "cairo-gobject-uninstalled.pc":F) mv "cairo-gobject-uninstalled.pc" "cairo-gobject-uninstalled.pc.tmp" && + $SED " s%@FEATURE_PC@%cairo-gobject%g; s%@FEATURE_NAME@%gobject functions%g; s%@FEATURE_BASE@%$gobject_BASE%g; s%@FEATURE_REQUIRES@%$gobject_REQUIRES%g; s%@FEATURE_NONPKGCONFIG_LIBS@%$gobject_NONPKGCONFIG_LIBS%g; s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$gobject_NONPKGCONFIG_EXTRA_LIBS%g; s%@FEATURE_NONPKGCONFIG_CFLAGS@%$gobject_NONPKGCONFIG_CFLAGS%g; " < "cairo-gobject-uninstalled.pc.tmp" > "cairo-gobject-uninstalled.pc" && rm -f "cairo-gobject-uninstalled.pc.tmp" || + as_fn_error $? "failed to update cairo-gobject-uninstalled.pc" "$LINENO" 5 + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + V="$CAIRO_VERSION_MAJOR.$CAIRO_VERSION_MINOR.$CAIRO_VERSION_MICRO" + echo "" + echo "cairo (version $V [$CAIRO_RELEASE_STATUS]) will be compiled with:" + echo "" + echo "The following surface backends:" + echo " Image: yes (always builtin)" + echo " Recording: yes (always builtin)" + echo " Observer: yes (always builtin)" + echo " Mime: yes (always builtin)" + echo " Tee: $use_tee" + echo " XML: $use_xml" + echo " Skia: $use_skia" + echo " Xlib: $use_xlib" + echo " Xlib Xrender: $use_xlib_xrender" + echo " Qt: $use_qt" + echo " Quartz: $use_quartz" + echo " Quartz-image: $use_quartz_image" + echo " XCB: $use_xcb" + echo " Win32: $use_win32" + echo " OS2: $use_os2" + echo " CairoScript: $use_script" + echo " PostScript: $use_ps" + echo " PDF: $use_pdf" + echo " SVG: $use_svg" + echo " OpenGL: $use_gl" + echo " OpenGL ES 2.0: $use_glesv2" + echo " BeOS: $use_beos" + echo " DirectFB: $use_directfb" + echo " OpenVG: $use_vg" + echo " DRM: $use_drm" + echo " Cogl: $use_cogl" + echo "" + echo "The following font backends:" + echo " User: yes (always builtin)" + echo " FreeType: $use_ft" + echo " Fontconfig: $use_fc" + echo " Win32: $use_win32_font" + echo " Quartz: $use_quartz_font" + echo "" + echo "The following functions:" + echo " PNG functions: $use_png" + echo " GLX functions: $use_glx" + echo " WGL functions: $use_wgl" + echo " EGL functions: $use_egl" + echo " X11-xcb functions: $use_xlib_xcb" + echo " XCB-shm functions: $use_xcb_shm" + echo "" + echo "The following features and utilities:" + echo " cairo-trace: $use_trace" + echo " cairo-script-interpreter: $use_interpreter" + echo "" + echo "And the following internal features:" + echo " pthread: $use_pthread" + echo " gtk-doc: $enable_gtk_doc" + echo " gcov support: $use_gcov" + echo " symbol-lookup: $use_symbol_lookup" + echo " test surfaces: $use_test_surfaces" + echo " ps testing: $test_ps" + echo " pdf testing: $test_pdf" + echo " svg testing: $test_svg" + if test x"$use_win32" = "xyes"; then + echo " win32 printing testing: $test_win32_printing" + fi + echo "$CAIRO_WARNING_MESSAGE" + echo "" + diff --git a/configure.ac b/configure.ac index f50e69e..df55cbc 100644 --- a/configure.ac +++ b/configure.ac @@ -1,19 +1,25 @@ -AC_PREREQ(2.59) +AC_PREREQ([2.63]) CAIRO_PARSE_VERSION AC_INIT([cairo], [cairo_version_major.cairo_version_minor.cairo_version_micro], - [http://bugs.freedesktop.org/enter_bug.cgi?product=cairo]) + [http://bugs.freedesktop.org/enter_bug.cgi?product=cairo], + [cairo], + [http://cairographics.org/]) AC_CONFIG_AUX_DIR(build) AC_CONFIG_MACRO_DIR(build) -AC_GNU_SOURCE AC_USE_SYSTEM_EXTENSIONS AC_CONFIG_SRCDIR(src/cairo.h) AC_CONFIG_HEADERS(config.h) -AM_INIT_AUTOMAKE([1.9.6 gnu -Wall no-define]) -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -AC_LIBTOOL_WIN32_DLL dnl Must be called before AC_PROG_LIBTOOL -AC_PROG_LIBTOOL dnl ([1.4]) Don't remove! -GTK_DOC_CHECK([1.6]) + +AM_INIT_AUTOMAKE([1.11 foreign -Wall no-define no-dist-gzip dist-xz]) +AM_SILENT_RULES([yes]) + +# Initialize libtool +LT_PREREQ([2.2]) +LT_INIT([win32-dll]) + +# Api documentation +GTK_DOC_CHECK([1.15],[--flavour no-tmpl]) AC_SYS_LARGEFILE @@ -52,6 +58,7 @@ AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes") if test "x$have_dlsym" = "xyes"; then AC_DEFINE([CAIRO_HAS_DLSYM], 1, [Define to 1 if dlsym is available]) fi +AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes") dnl =========================================================================== @@ -311,7 +318,7 @@ CAIRO_ENABLE_SURFACE_BACKEND(gl, OpenGL, no, [ dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(glesv2, OpenGLESv2, no, [ - glesv2_REQUIRES="glesv2" + glesv2_REQUIRES="gles20" PKG_CHECK_MODULES(glesv2, $glesv2_REQUIRES,, [ dnl Fallback to searching for headers AC_CHECK_HEADER(GLES2/gl2.h,, [use_glesv2="no (glesv2.pc nor OpenGL ES 2.0 headers not found)"]) @@ -328,6 +335,12 @@ CAIRO_ENABLE_SURFACE_BACKEND(glesv2, OpenGLESv2, no, [ ]) dnl =========================================================================== +CAIRO_ENABLE_SURFACE_BACKEND(cogl, Cogl, no, [ + cogl_REQUIRES="cogl-2.0-experimental" + PKG_CHECK_MODULES(cogl, $cogl_REQUIRES,, [use_cogl="no"]) +]) + +dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(directfb, directfb, no, [ directfb_REQUIRES=directfb @@ -488,7 +501,7 @@ if test "x$use_ft" = "xyes"; then AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, [FT_Bitmap_Size structure includes y_ppem field]) - AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Library_SetLcdFilter) + AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter) LIBS="$_save_libs" CFLAGS="$_save_cflags" @@ -606,7 +619,7 @@ CAIRO_ENABLE(test_surfaces, test surfaces, no) dnl =========================================================================== CAIRO_ENABLE_SURFACE_BACKEND(image, image, always, [ - pixman_REQUIRES="pixman-1 >= 0.21.0" + pixman_REQUIRES="pixman-1 >= 0.22.0" PKG_CHECK_MODULES(pixman, $pixman_REQUIRES, , [AC_MSG_RESULT(no) use_image="no (requires $pixman_REQUIRES http://cairographics.org/releases/)"]) image_REQUIRES=$pixman_REQUIRES diff --git a/debian/changelog b/debian/changelog index 54a322e..f878135 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,15 +1,1120 @@ +cairo (1.12.2-slp2+8) unstable; urgency=low + + * Update latest DTS code + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+8 + + -- Seongwon Cho Thu, 02 Aug 2012 14:59:36 +0900 + +cairo (1.12.2-slp2+7) unstable; urgency=low + + * Bug fixes and memory optimization + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+7 + + -- Dongyeon Kim Mon, 16 Jul 2012 15:11:38 +0900 + +cairo (1.12.2-slp2+6) unstable; urgency=low + + * Reupload package + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+6 + + -- Dongyeon Kim Wed, 11 Jul 2012 19:25:02 +0900 + +cairo (1.12.2-slp2+5) unstable; urgency=low + + * gl: Glyph and image cache surfaces must be released in _gl_finish() + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+5 + + -- Dongyeon Kim Tue, 10 Jul 2012 14:19:56 +0900 + +cairo (1.12.2-slp2+4) unstable; urgency=low + + * gl: Fix color differences at gradient boundaries + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+4 + + -- Dongyeon Kim Thu, 05 Jul 2012 10:10:35 +0900 + +cairo (1.12.2-slp2+3) unstable; urgency=low + + * Update cairo gles backend to latest + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+3 + + -- Dongyeon Kim Thu, 21 Jun 2012 12:02:27 +0900 + +cairo (1.12.2-slp2+2) unstable; urgency=low + + * Fix duplicate context release in msaa mask source operator + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+2 + + -- Dongyeon Kim Tue, 12 Jun 2012 17:03:58 +0900 + +cairo (1.12.2-slp2+1) unstable; urgency=low + + * Update cairo to 1.12.2 with cairogles optimizations + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.2-slp2+1 + + -- Dongyeon Kim Tue, 08 May 2012 16:26:19 +0900 + +cairo (1.12.0-slp2+7) unstable; urgency=low + + * Add missing cairo_gl_composite_flush for disabling lazy flushing + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+7 + + -- Dongyeon Kim Thu, 03 May 2012 20:03:18 +0900 + +cairo (1.12.0-slp2+6) unstable; urgency=low + + * Fix mono scan converter's crash probelm + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+6 + + -- Seongwon Cho Thu, 26 Apr 2012 17:21:51 +0900 + +cairo (1.12.0-slp2+5) unstable; urgency=low + + * Revert autogen and configure to fix build error + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+5 + + -- Dongyeon Kim Thu, 26 Apr 2012 13:41:44 +0900 + +cairo (1.12.0-slp2+4) unstable; urgency=low + + * Update cairo gles backend to latest (commit id: 24857828243b) + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+4 + + -- Dongyeon Kim Wed, 25 Apr 2012 19:24:54 +0900 + +cairo (1.12.0-slp2+3) unstable; urgency=low + + * Fix memory address reference error in gl msaa compositor + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+3 + + -- Dongyeon Kim Mon, 23 Apr 2012 20:23:25 +0900 + +cairo (1.12.0-slp2+2) unstable; urgency=low + + * Modify cairo.pc to use gles20 package + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+2 + + -- Dongyeon Kim Thu, 12 Apr 2012 10:05:34 +0900 + +cairo (1.12.0-slp2+1) unstable; urgency=low + + * Upgrade cairo version to 1.12.0 with cairogles + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.12.0-slp2+1 + + -- Dongyeon Kim Mon, 09 Apr 2012 12:12:04 +0900 + +cairo (1.11.3-slp2+11) unstable; urgency=low + + * Add packaging directory for OBS + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+11 + + -- Deokjin Kim Wed, 14 Mar 2012 18:21:11 +0900 + +cairo (1.11.3-slp2+10) unstable; urgency=low + + * Remove SLP_FIX_DASHED_LINE_STROKE patch + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+10 + + -- Deokjin Kim Wed, 28 Dec 2011 15:58:21 +0900 + +cairo (1.11.3-slp2+9) unstable; urgency=low + + * Mono scan converter : fix array size and equation of algorithm + * Git: slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+9 + + -- Seongwon Cho Mon, 19 Dec 2011 13:40:25 +0900 + cairo (1.11.3-slp2+8) unstable; urgency=low - * Remove SLP keyword - * Git: unmodified/cairo.git + * Fix sometimes polygon isn't displayed well when clip has null path + * Git: 165.213.180.234:slp/unmodified/cairo.git * Tag: cairo_1.11.3-slp2+8 - -- Seongwon Cho Fri, 23 Dec 2011 11:26:04 +0900 + -- Seongwon Cho Thu, 08 Dec 2011 13:24:36 +0900 cairo (1.11.3-slp2+7) unstable; urgency=low - * Initial version - * Git: unmodified/cairo.git + * Fix dashed line stroke issue + * Git: 165.213.180.234:slp/unmodified/cairo.git * Tag: cairo_1.11.3-slp2+7 - -- Seongwon Cho Thu, 15 Dec 2011 12:54:03 +0900 + -- Deokjin Kim Wed, 30 Nov 2011 15:23:59 +0900 + +cairo (1.11.3-slp2+6) unstable; urgency=low + + * Add cairo_ft_font_option_set_extra_flags() for synthetic bold + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+6 + + -- Deokjin Kim Thu, 24 Nov 2011 16:27:58 +0900 + +cairo (1.11.3-slp2+5) unstable; urgency=low + + * image : Fix display bug regarding subsurface problem in recording surface + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+5 + + -- Seongwon Cho Wed, 23 Nov 2011 09:26:47 +0900 + +cairo (1.11.3-slp2+4) unstable; urgency=low + + * image : Fix tessellator crash problem (CQ H0100136146) + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+4 + + -- Seongwon Cho Wed, 02 Nov 2011 15:12:57 +0900 + +cairo (1.11.3-slp2+3) unstable; urgency=low + + * image : Fix Twitter app's button broken problem (CQ H0100135401/H0100136153) + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+3 + + -- Seongwon Cho Tue, 01 Nov 2011 21:30:06 +0900 + +cairo (1.11.3-slp2+2) unstable; urgency=low + + * image: Update cairo to upstream latest (solve CQ H0100134938, H0100134936) + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+2 + + -- Seongwon Cho Thu, 13 Oct 2011 11:00:15 +0900 + +cairo (1.11.3-slp2+1) unstable; urgency=low + + * image: Upgrade version from 1.10.2 to 1.11.3 + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.11.3-slp2+1 + + -- Seongwon Cho Mon, 10 Oct 2011 11:09:12 +0900 + +cairo (1.10.2-slp2+7) unstable; urgency=low + + * image: Workaround for antialias of clip path in paint() + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+7 + + -- Deokjin Kim Thu, 01 Sep 2011 11:10:09 +0900 + +cairo (1.10.2-slp2+6) unstable; urgency=low + + * Several bug fixes for clip and unbounded ops + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+6 + + -- Seongwon Cho Wed, 06 Jul 2011 08:16:40 +0900 + +cairo (1.10.2-slp2+5) unstable; urgency=low + + * tessellator: Fixed to produce an output box with x1 <= x2 for single box + input + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+5 + + -- Seongwon Cho Thu, 16 Jun 2011 09:50:09 +0900 + +cairo (1.10.2-slp2+4) unstable; urgency=low + + * Bug fix for _cairo_image_surface_fixup_unbounded_boxes + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+4 + + -- Seongwon Cho Tue, 14 Jun 2011 13:43:43 +0900 + +cairo (1.10.2-slp2+3) unstable; urgency=low + + * Fix build break caused by xcb-shm + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+3 + + -- Deokjin Kim > Fri, 20 May 2011 13:40:50 +0900 + +cairo (1.10.2-slp2+2) unstable; urgency=low + + * Fix build break caused by xcb-shm + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+2 + + -- Deokjin Kim > Fri, 20 May 2011 12:13:06 +0900 + +cairo (1.10.2-slp2+1) unstable; urgency=low + + * Upgrade version from 1.8.8 to 1.10.2 + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.10.2-slp2+1 + + -- Deokjin Kim > Wed, 27 Apr 2011 18:44:24 +0900 + +cairo (1.8.8-11slp2) unstable; urgency=low + + * Reupload according to modification of freetype2 + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.8.8-11slp2 + + -- Deokjin Kim > Wed, 06 Apr 2011 17:32:04 +0900 + +cairo (1.8.8-10slp2) unstable; urgency=low + + * Apply '-mfpu=vfp -mfloat-abi=softfp' + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.8.8-10slp2 + + -- Boram Park > Wed, 23 Mar 2011 12:09:09 +0900 + +cairo (1.8.8-9slp2) unstable; urgency=low + + * Don't err on non-invertible font matrix + * Git: 165.213.180.234:slp/unmodified/cairo.git + * Tag: cairo_1.8.8-9slp2 + + -- Boram Park > Fri, 11 Feb 2011 14:13:45 +0900 + +cairo (1.8.8-8slp2) unstable; urgency=low + + * Version up to 1.8.8-8slp2 + * Git: 165.213.180.234:/git/slp/unmodified/cairo + * Tag: cairo_1.8.8-8slp2 + + -- Deokjin Kim > Thu, 18 Nov 2010 16:07:42 +0900 + +cairo (1.8.8-7slp2) unstable; urgency=low + + * Version up to 1.8.8-7slp2 + * Git: 165.213.180.234:/git/slp/unmodified/cairo + * Tag: cairo_1.8.8-7slp2 + + -- Boram Park > Thu, 18 Nov 2010 14:01:48 +0900 + +cairo (1.8.8-6slp2) unstable; urgency=low + + * Add "libpixman1.0-0" dependency. + * Remove libcairo2-doc + + -- Boram Park > Wed, 06 Oct 2010 16:22:09 +0900 + +cairo (1.8.8-5slp2) unstable; urgency=low + + * Changing version naming rule + + -- Boram Park > Wed, 24 Mar 2010 21:08:23 +0900 + +cairo (1.8.8-4) unstable; urgency=low + + * Modify debian/rules to add CFLAGS into building. + + -- root > Wed, 13 Jan 2010 14:26:39 +0900 + +cairo (1.8.8-3) unstable; urgency=low + + [ Doyoun Kang ] + * Change debian/control and debian/rules files. + + [ root ] + * i + + -- root > Wed, 13 Jan 2010 14:26:37 +0900 + +cairo (1.8.8-2) unstable; urgency=low + + * Upload to unstable. + + -- Sebastian Dröge Thu, 18 Jun 2009 08:59:17 +0200 + +cairo (1.8.8-1) experimental; urgency=low + + [ Loïc Minier ] + * Use "udeb" consistently to describe this flavor + * Rename CFLAGS to CFLAGS_MAIN for consistency + * Rename %-flavor-stamp targets to %-stamp-flavor + * Also strip dependency_libs in DEB_DIST_DIR + * Always lowercase the flavor name in vars + * Drop unused configure-main and udeb targets + * Drop dangerous configure target listed in .PHONY + * Drop build-main and build-udeb targets + * Make the build and configure rules implicit ones + * Define builddir using the current_flavor + * Split flavors installation into a install-% target + * Move debian/build-* and /dist-* to nicer places + * Misc cleanups + * Factor configure flags + * Fix --host and --build handling + * Remove useless cleanups + * Factor "touch" calls + * Save and restore config.guess and .sub + * Drop INSTALL_PROGRAM, not needed with dh_strip + * Factor CFLAGS; add -Wall + * Implement an optional optimized flavor + + [ Sebastian Dröge ] + * New upstream bugfix release. + * Update Standards-Version to 3.8.2. + * Update sections of binary packages + + -- Sebastian Dröge Wed, 17 Jun 2009 16:47:55 +0200 + +cairo (1.8.6-2) unstable; urgency=low + + * Upload to unstable. + + -- Sebastian Dröge Tue, 17 Feb 2009 09:56:44 +0100 + +cairo (1.8.6-1) experimental; urgency=low + + * New upstream bugfix release. + + -- Sebastian Dröge Tue, 16 Dec 2008 14:55:53 +0100 + +cairo (1.8.4-1) experimental; urgency=low + + * New upstream bugfix release. + + -- Sebastian Dröge Sat, 15 Nov 2008 08:46:56 +0100 + +cairo (1.8.2-2) experimental; urgency=low + + * ACK NMU and merge all changes, thanks Joss. + + -- Sebastian Dröge Wed, 05 Nov 2008 12:59:03 +0100 + +cairo (1.6.4-6.1) unstable; urgency=low + + * Non-maintainer upload. + * Remove the rpath stuff in /usr/lib/libcairo-directdb and only keep + it around for compatibility. Closes: #499662. + + Remove the rpath hack in the .pc file. + + Make the libcairo-directfb2{,dev} packages dummy, only keeping + symbolic links from the former locations. + + libcairo-directfb2-dev.postinst: do the symbolic link dance upon + upgrade. + + Update package descriptions accordingly. + + libcairo2.symbols: add cairo_directfb_surface_create. + + libcairo2-dev conflicts with libcairo-directfb2-dev + (<< 1.6.4-6.1). + * rules: completely cleanup the .la files from their dependency libs. + Closes: #491292. + * Add ~ to symbol versions to make backports possible. + * Fix doc-base section. + * Standards version is 3.8.0. + + -- Josselin Mouette Mon, 13 Oct 2008 11:00:24 +0200 + +cairo (1.8.2-1) experimental; urgency=low + + * New upstream stable release: + + debian/control: + - Update (Build-)Depends. + - Fix section of libcairo2 from docs to libs. + + debian/watch: + - Update location for releases. + + debian/rules: + - Patch from Ubuntu package to update config.guess/sub again properly. + - Update shlibs to 1.8.0 because of new API. + - Remove src/cairo-features.h as it's generated by configure and breaks + the build if it's already there. + + debian/libcairo-directfb2.symbols, + debian/libcairo2.symbols: + - Updated symbols. + * debian/patches/02_no-private-symbol-export.dpatch: + + Re-added to not export some private symbols. + + -- Sebastian Dröge Wed, 05 Nov 2008 12:17:09 +0100 + +cairo (1.7.4-1) experimental; urgency=low + + * New upstream snapshot release + * Removed debian/patches/02_no-private-symbol-export.dpatch merged upstream + * Removed debian/patches/01_directfb-no-accel.dpatch + Hoping that this GIT commit makes it moot: + + commit 7fbda72137d8685718a8e8fe1d3af5b1d377521c + Date: Sun Aug 10 05:05:27 2008 -0700 + * Known packaging errors: + - not copying new config.sub/config.guess for now + + -- Dave Beckett Thu, 11 Sep 2008 23:03:15 -0700 + +cairo (1.6.4-7) unstable; urgency=low + + * debian/rules: + + Remove libtool .la dependency_libs (Closes: #491292) + * debian/control: + + Update to standards version 3.8.0 + + Move libcairo2-doc to 'doc' section (Closes: #486174) + * debian/dpatch/*: Added ##DP descriptions (lintian) + * debian/libcairo2.symbols: Removed symbols with a debian revision (lintian) + * debian/libcairo2-doc.doc-base: Use section "Graphics" (lintian) + + -- Dave Beckett Sun, 07 Sep 2008 15:33:00 -0700 + +cairo (1.6.4-6) unstable; urgency=low + + * debian/control: + + Let libcairo2-dev depend on libxcb-render-util0-dev (Closes: #486006). + + -- Sebastian Dröge Fri, 13 Jun 2008 11:55:50 +0200 + +cairo (1.6.4-5) unstable; urgency=low + + * debian/rules, + debian/control, + debian/libcairo2.symbols: + + Enable XCB backend now that XCB is in unstable (Closes: #474353). + + -- Sebastian Dröge Tue, 10 Jun 2008 07:46:49 +0200 + +cairo (1.6.4-4) unstable; urgency=low + + * debian/rules: + + Make sure that the debug package contains debug symbols for the + libcairo2 package and not for the directfb one (Closes: #484603). + + -- Sebastian Dröge Thu, 05 Jun 2008 12:35:35 +0200 + +cairo (1.6.4-3) unstable; urgency=low + + * debian/patches/02_no-private-symbol-export.dpatch, + debian/libcairo2.symbols, + debian/libcairo-directfb2.symbols, + debian/rules: + + Don't export private symbols and pass -c4 to + dh_makeshlibs (Closes: #481260). + * debian/control: + + Fix documentation path in the package description (Closes: #464116). + * debian/rules: + + Only build the arch-indep packages when build-indep is + invoked (Closes: #476499). + + -- Sebastian Dröge Wed, 28 May 2008 11:19:21 +0200 + +cairo (1.6.4-2) unstable; urgency=low + + * debian/patches/01_directfb-no-accel.dpatch: + + Disable rendering acceleration for the DirectFB backend as it + causes broken screen repainting with the Debian installer + and other GTK/DirectFB applications (Closes: #477331). + + -- Sebastian Dröge Tue, 13 May 2008 10:34:26 +0200 + +cairo (1.6.4-1) unstable; urgency=low + + * New upstream release: + + Works on remote Sun displays by adding support for + 8 bit pseudocolors (Closes: #348109). + + Adds support for 32 bit visuals (Closes: #421266). + + Adds support for 655 xlib format (Closes: #413690). + + Fixes error when creating pdf charts (Closes: #474136). + + Fixes assertions in cairo_destroy (Closes: #423951). + + Fixes display errors with iceweasel 3.0 (Closes: #474395). + + debian/control: + - Update build dependencies and dependencies. + - Add myself as co-maintainer. + - Fix spelling error. + + debian/rules: + - Update shlibs to >= 1.6.0 because of API additions. + + debian/libcairo2.symbols, + debian/libcairo-directfb2.symbols: + - Add symbol files for the libraries. + + -- Sebastian Dröge Tue, 15 Apr 2008 20:07:29 +0200 + +cairo (1.5.8-1) experimental; urgency=low + + * New upstream release + + -- Dave Beckett Wed, 30 Jan 2008 08:27:44 -0800 + +cairo (1.5.6-1) experimental; urgency=low + + * New upstream release + + -- Dave Beckett Wed, 16 Jan 2008 19:14:02 -0800 + +cairo (1.5.4-1) experimental; urgency=low + + * Cairo snapshot packaging (Closes: #452736) + - NOTE: This is the *unstable* Cairo API and may change at any time before + the next stable release which will be called something like 1.6.0 + + -- Dave Beckett Mon, 24 Dec 2007 15:08:42 -0800 + +cairo (1.4.12-2) unstable; urgency=low + + * Apply fixes from upstream to fix PDF issues using + upstream cairo bug 8399 via dependent upstream bugs + - cairo bug 12284 (Early detection of a zero sized bitmap) + git commit d62f8861689d8b9a9a837043fb78813f0407abd4 + - cairo bug 9846 (Ignore FT_Load_Glyph errors other than out-of-memory + Same for FT_Render_Glyph) + git commit 21ab44f11d3d20eead5d988c7a6cf48eebff08c7 + (Closes: #428466, #435913, #439542, #440811, #442481) + * Apply fix from upstream + "PS: Ensure that xyshow operator has a pair of offsets for each glyph" + git commit 5e8f60531a09f357db38c4b646b1bbd29b97a891 (Closes: #453718) + + -- Dave Beckett Sun, 16 Dec 2007 12:57:00 -0800 + +cairo (1.4.12-1) unstable; urgency=low + + * New upstream release + - fixes SIG PIPE crash (Closes: #454768) + * Acknowledge NMU - Thanks Nico + * Correct source package name + * Added debug package libcairo2-dbg (Closes: #422597, #429335, #446637) + * debian/control: + - Standards version 3.7.3 + - Add homepage + - Use ${binary:Version} to replace deprecated ${Source-Version} in Depends + - libcairo2-doc package is now in Section doc + * debian/rules: fix cross build support (Closes: #451596) + * debian/libcairo2-doc.doc-base: fix lintian warning + doc-base-file-separator-extra-whitespaces + * Evaluated ubuntu patches to 1.4.10 and applied none: + - 02-cairo-1.4.8-lcd-filter-2.dpatch - changes Cairo public API + - 90_from_git_fix_not_available_glyph_handling.dpatch - from upstream + - 90_from_git_fix_zero_sized_bitmap_handling.dpatch - from upstream + - 91_malloc-overflow-fixes.dpatch - from upstream + + -- Dave Beckett Tue, 11 Dec 2007 09:33:10 -0800 + +libcairo (1.4.10-1.2) unstable; urgency=high + + * Fix floating point regressions introduced by the previous NMU. + Do not blindly call malloc if the size is zero + (Closes: #454768,#454650,#454413). + + -- Nico Golde Fri, 07 Dec 2007 20:33:11 +0100 + +libcairo (1.4.10-1.1) unstable; urgency=high + + * Non-maintainer upload by testing-security team. + * Fix multiple integer overflows leading to arbitrary code + execution (CVE-2007-5503; Closes: #453686). + + -- Nico Golde Mon, 03 Dec 2007 17:20:59 +0100 + +libcairo (1.4.10-1) unstable; urgency=low + + * New upstream release + - fixes XError crash seen in openoffice.org (Closes: #430550) + * Removed patch 001-148-directfb.dpatch merged upstream + + -- Dave Beckett Wed, 27 Jun 2007 18:20:10 -0700 + +libcairo (1.4.8-1) unstable; urgency=low + + * New upstream release + - fixes gnome bug http://bugzilla.gnome.org/show_bug.cgi?id=431990 + that caused gnome-about to crash (Closes: #425058) + * Added patch 001-148-directfb.dpatch to make directfb build with 1.4.8 + * Fix directfb udeb shlibs (Closes: #429672) + - remove udeb line from libcairo2 package shlibs + - libcairo-directfb2 package shlibs provide libcairo-directfb2(-udeb) + * Acknowledge NMU - thanks Don + + -- Dave Beckett Thu, 21 Jun 2007 01:03:51 -0700 + +libcairo (1.4.6-1.1) unstable; urgency=low + + * NMU + * Apply patch from Adrian Johnson to fix segfault with PS_surface + (closes: #422388) + + -- Don Armstrong Mon, 28 May 2007 11:11:45 -0700 + +libcairo (1.4.6-1) unstable; urgency=low + + * New upstream release + * Add debian/compat, remove DH_COMPAT from debian/rules + + -- Dave Beckett Tue, 1 May 2007 23:38:00 -0800 + +libcairo (1.4.4-1) unstable; urgency=low + + * New upstream release + * Remove different versioned shlibs dependency for one udeb + to get rid of duplicate dependencies (Closes: #418616) + * Switch shlibs API version to 1.4.0 since API calls were added + * PDF fonts fixed upstream (Closes: #406191) + + -- Dave Beckett Fri, 13 Apr 2007 21:46:46 -0700 + +libcairo (1.4.2-1) experimental; urgency=low + + * New upstream release (Closes: #416024) + * debian/rules: Pass on CFLAGS (Closes: #399868) + + -- Dave Beckett Tue, 27 Mar 2007 06:55:45 -0700 + +libcairo (1.2.6-1) experimental; urgency=low + + * New upstream release + * Removed patch 01-cairo_xlib_surface_add_glyph.patch now in upstream + * Require pkg-config 0.19 + + -- Dave Beckett Fri, 17 Nov 2006 20:42:08 -0800 + +libcairo (1.2.4-4) unstable; urgency=medium + + * Acknowledge NMU. + * Urgency medium since RC bugs are acknowledged. + * Patch 01-cairo_xlib_surface_add_glyph.patch added in + experimental confirmed fixes powerpc X byte copy crash + for bug #388116 which was closed by email after an NMU. + * Enable PDF and PS for the cairo+directfb build in unstable (Closes: #383297) + * Bump libcairo-directfb2's shlibs to >= 1.2.4-4 for the addition of + PDF and PS related symbols to the cairo+directfb lib. (Closes: #387289) + * Remove libcairo.la references to other .la files to aid future + removal of all .la files. + + -- Dave Beckett Thu, 19 Oct 2006 22:41:56 -0700 + +libcairo (1.2.4-3.2) experimental; urgency=low + + * NMU + * Re-upload to get the changes from -2 in experimental, that is + building cairo+directfb with PS and PDF support (needed by + Gtk+2.10+directfb). + * Bump libcairo-directfb shlibs to >= 1.2.4-3.2 so that packages depending + on the new +directfb things get the right dep. + + -- Marc 'HE' Brockschmidt Wed, 18 Oct 2006 11:09:16 +0200 + +libcairo (1.2.4-3.1) unstable; urgency=low + + * NMU + * Upload with 01-cairo_xlib_surface_add_glyph.patch but without + the directfb changes from -2. The patch fixes the segfault caused + by a broken loop condition (c >= 0 works like, eh, always after + doing "unsigned int c"...). (Closes: #388116) + + -- Marc 'HE' Brockschmidt Sun, 15 Oct 2006 16:25:06 +0200 + +libcairo (1.2.4-3) experimental; urgency=low + + * Added patch 01-cairo_xlib_surface_add_glyph.patch from upstream git + attempting to fix 388116 + + -- Dave Beckett Sun, 8 Oct 2006 11:08:23 -0700 + +libcairo (1.2.4-2) experimental; urgency=low + + * Enable PDF and PS for the cairo+directfb build in order to + allow GTK 2.10+directfb to build (Closes: #383297) + + -- Dave Beckett Sun, 3 Sep 2006 13:24:31 -0700 + +libcairo (1.2.4-1) unstable; urgency=low + + * New upstream release. + * Remove double call to dh_installdocs (Closes: #382594) + * Submit to override for libcairo2-doc, changing to section libs. + + -- Dave Beckett Fri, 18 Aug 2006 18:11:00 -0700 + +libcairo (1.2.2-1) unstable; urgency=medium + + * New upstream release. + * This version again handles BGR X server visuals such as used by + Exceed and VNC (Closes: #376858) + * Removed patches taken from upstream git: + - cairo-bug-7494.patch + - cairo-bug-7514.patch + * Build-Depend on xutils-dev and libxt-dev since the test for the + presence of X in the latest configure (as generated by autoconf 2.60) + uses xmkmf and checks for libxt-dev even though neither are used by + Cairo. + + -- Dave Beckett Tue, 8 Aug 2006 23:59:01 -0700 + +libcairo (1.2.0-5) unstable; urgency=medium + + * Rebuild against directfb 0.9.25 which has changed library and udeb + package names from 0.9.24 that all earlier cairos were built against, + and which are now removed. This should prevent Cairo from becoming + uninstallable due to this change. Urgency medium due to this. + + -- Dave Beckett Wed, 2 Aug 2006 22:04:17 -0700 + +libcairo (1.2.0-4) unstable; urgency=medium + + * Added patch cairo-bug-7494.patch (Closes: #378005) + * Added patch cairo-bug-7514.patch (Closes: #380064) + + -- Dave Beckett Tue, 1 Aug 2006 22:29:04 -0700 + +libcairo (1.2.0-3) unstable; urgency=low + + * Add libsm-dev to Build-Depends and libcairo2-dev depends to pull in + libSM and libICE (Closes: #377259) + * Remove unused libxrender-dev Depends from libcairo-directfb2-dev + + -- Dave Beckett Sun, 9 Jul 2006 16:36:10 -0700 + +libcairo (1.2.0-2) unstable; urgency=low + + * Remove libcairo2-dev depending on libdirectfb-dev (Closes: 376691) + + -- Dave Beckett Tue, 4 Jul 2006 10:45:33 -0700 + +libcairo (1.2.0-1) unstable; urgency=low + + * New upstream release. + + -- Dave Beckett Sat, 1 Jul 2006 19:43:51 -0700 + +libcairo (1.1.10-3) experimental; urgency=low + + * First upload of 1.1.x series to debian experimental + * Remove patch 02-no-ft-glyphslot-embolden.patch (was for bug #325526) + and depend on a new enough libfreetype6 (2.1.10) which is already in + testing. + * Removed Build-Depend on libxml2 for creating SVG as that has been + rewritten. + * Added libcairo2 Conflicts and Replaces libcairo1 (Closes: #366755) + + -- Dave Beckett Wed, 28 Jun 2006 19:04:10 -0700 + +libcairo (1.1.10-2) experimental; urgency=low + + * Add -Wl,-rpath,${libdir} to libcairo-directfb pkgconfig to make the + linker use the libcairo in the libdir + * Removed Provides: libcairo2 from libcairo-directfb2-udeb + + -- Dave Beckett Sun, 25 Jun 2006 10:20:40 -0700 + +libcairo (1.1.10-1) experimental; urgency=low + + * New upstream release + * Renamed directfb packages to be libcairo-directfb2* + * Use dh_makeshlibs with --add-udeb to make udeb: lines appear in shlibs + * Depend on debhelper 5.0.22 to get a working dh_makeshlibs with --add-udeb + + -- Dave Beckett Sat, 24 Jun 2006 10:03:02 -0700 + +libcairo (1.1.8-1) experimental; urgency=low + + * New upstream release + * Added libcairo2-directfb deb. + + -- Dave Beckett Wed, 14 Jun 2006 11:47:00 -0700 + +libcairo (1.1.6-1) experimental; urgency=low + + * New upstream release + * Enable PNG, PDF and SVG backends (add Build-Depend: on libxml2) + * Added Cairo DirectFB udeb packages libcairo2-directfb-udeb and + libcairo2-directfb-dev (add Build-Depend: on libdirectfb-dev) + * libcairo2-dev and libcairo2-directfb-dev can both be installed together + * Stop using CDBS since it cannot handle the double configure and build + setup. + * Use dpatch for patching and Build-Depend: on it. + + -- Dave Beckett Mon, 12 Jun 2006 12:57:38 -0700 + +libcairo (1.0.4-2) unstable; urgency=low + + * Rebuild against X11R7 to fix .la breakage xorg caused (Closes: #362237) + + -- Dave Beckett Tue, 25 Apr 2006 22:00:36 -0700 + +libcairo (1.0.4-1) unstable; urgency=low + + * New upstream release + * Removed patches merged upstream: + - 01-INT_pixman.patch + * Debhelper 5 + + -- Dave Beckett Wed, 5 Apr 2006 17:44:12 -0700 + +libcairo (1.0.2-4) unstable; urgency=low + + * Rebuild against current build dependencies since something in the + build depends changed to make it stop working. This may be the most + useless changelog entry ever. (Closes: #347675) + + -- Dave Beckett Thu, 12 Jan 2006 19:52:08 -0800 + +libcairo (1.0.2-3) unstable; urgency=low + + * Bump libcairo2 shlibs to 1.0.2-2 given all the freetype version changes. + + -- Dave Beckett Wed, 30 Nov 2005 09:21:02 -0800 + +libcairo (1.0.2-2) unstable; urgency=low + + * Fix libcairo2-doc section to doc (Closes: #337515) + * Re-add patch 02-no-ft-glyphslot-embolden.patch to use only + freetype 2.1.7 symbols even though sid has freetype 2.1.10. + The latter has ABI changes beyond it's declared shlibs of 2.1.5 + and is undergoing a large transition. + Require freetype 2.1.7+ again. (Closes: #338817) + * Added patch 01-INT_pixman.patch from CVS to remove spurious INT_ items + that broke build with recent binutils (Closes: #340073) + * Require pkg-config >= 0.18 since cairo.pc uses Require.private: + + -- Dave Beckett Fri, 25 Nov 2005 04:01:51 +0000 + +libcairo (1.0.2-1) unstable; urgency=low + + * New upstream release + * Removed patch 01-endianess-cairo-xlib-surface.patch previously taken + from upstream CVS. + * Removed patch 02-no-ft-glyphslot-embolden.patch to re-allow configure + to use FT_GlyphSlot_Embolden provided in freetype 2.1.10 which is now + in sid. + * Require freetype 2.1.10+ + + -- Dave Beckett Tue, 25 Oct 2005 18:45:57 +0100 + +libcairo (1.0.0-3) unstable; urgency=low + + * Added patch 02-no-ft-glyphslot-embolden.patch to disable use of + FT_GlyphSlot_Embolden in freetype, which was added after the + freetype version 2.1.7 currently in testing (closes: #325526) + * Require freetype 2.1.7+ + + -- Dave Beckett Tue, 13 Sep 2005 19:33:38 +0100 + +libcairo (1.0.0-2) unstable; urgency=low + + * Added patch 01-endianess-cairo-xlib-surface.patch from CVS to fix + endianess problem when running over remote X (Closes: #326920) + * Register cairo docs with doc-base (Closes: #325541) + + -- Dave Beckett Tue, 6 Sep 2005 18:15:57 +0100 + +libcairo (1.0.0-1) unstable; urgency=low + + * New upstream release + * Removed glitz backend as currently experimental and unsupported + * debian/watch: update to use stable release area + * Removed patch cairo-0.9.2-cache-eviction-fix.patch merged upstream. + + -- Dave Beckett Wed, 24 Aug 2005 18:14:23 +0100 + +libcairo (0.9.2-2) unstable; urgency=low + + * Add patch cairo-0.9.2-cache-eviction-fix.patch from Kristian Høgsberg + to make the freetype font cache evict correctly. + + -- Dave Beckett Mon, 15 Aug 2005 19:48:43 +0100 + +libcairo (0.9.2-1) unstable; urgency=low + + * New upstream release + * First stable API release - remove patching sonames + * libcairo2, libcairo2-dev and libcairo2-doc replace all previous versions + * No longer Depends: on libpixman, now an internal library + + -- Dave Beckett Sat, 13 Aug 2005 14:16:46 +0100 + +libcairo (0.9.0-1) unstable; urgency=low + + * New upstream release + * libcairo0.9.0 replaces libcairo0.6.0 + * Functions were added so create new sonames and libraries + + -- Dave Beckett Tue, 9 Aug 2005 08:21:50 +0100 + +libcairo (0.6.0-1) unstable; urgency=low + + * New upstream release + * libcairo0.6.0 replaces libcairo0.5.1 + * Functions were added so create new sonames and libraries + * Require glitz 0.4.4 API and libpixman 0.1.5 + + -- Dave Beckett Fri, 29 Jul 2005 23:31:05 +0100 + +libcairo (0.5.1-2) unstable; urgency=low + + * Upload to unstable + * libcairo0.5.1 replaces older libcairo1 + * libcairo0.5.1-dev already conflicted with libcairo1-dev so enable + shipping libcairo.so and delete patch 05-cairo.pc.in.patch as the + cairo.pc.in is ok again + + -- Dave Beckett Sun, 10 Jul 2005 22:07:22 +0100 + +libcairo (0.5.1-1) experimental; urgency=low + + * New upstream release + * Revert to source package name libcairo + * Reflect ABI version into both library soname as libcairo-1debian0.5.1 + and package name libcairo0.5.1 (Closes: #314776) + * libcairo0.5.1 no longer conflicts with libcairo1 + * Added a libcairo0.5.1-doc package with the HTML documentation + + -- Dave Beckett Wed, 22 Jun 2005 21:06:01 +0100 + +cairo (0.5.0-2) unstable; urgency=low + + * Fix the shlibs dependencies for libcairo0.5 + + -- Dave Beckett Thu, 9 Jun 2005 21:56:08 +0100 + +cairo (0.5.0-1) unstable; urgency=low + + * New upstream release (Closes: 311042) + * Change source package s/lib// and add API version to binary packages + * Enable glitz backend (Closes: 307573) + + -- Dave Beckett Thu, 9 Jun 2005 20:51:11 +0100 + +libcairo (0.4.0-1) unstable; urgency=low + + * New upstream release + * API changes for fonts so shlib version is now 0.4.0 + * Require libpixman 0.1.4 + + -- Dave Beckett Wed, 9 Mar 2005 19:39:44 +0000 + +libcairo (0.3.0-1) unstable; urgency=low + + * New upstream release. Closes: 284205 + * Bumped shlibs version since new functions were added. + * Headers have moved to below /usr/include/cairo + * Require libpixman 0.1.3 + + -- Dave Beckett Sun, 6 Feb 2005 12:40:04 +0000 + +libcairo (0.2.0-1) unstable; urgency=low + + * New upstream release + * Bumped shlibs version since new functions were added. + * Require libpixman 0.1.2 + * Still keep glitz disabled + + -- Dave Beckett Mon, 8 Nov 2004 22:19:29 +0000 + +libcairo (0.1.23-2) unstable; urgency=low + + * Replace Build-Depend on xlibs-dev with libx11-dev + * Changed to LGPL license (in CVS 2004-08-02) + * Disable use of glitz explicitly + + -- Dave Beckett Mon, 23 Aug 2004 22:25:16 +0100 + +libcairo (0.1.23-1) unstable; urgency=low + + * New upstream release. Closes: 248705 + * Add PNG backend, require libpng12-dev + * Requires libpixman >= 0.1.1 + + -- Dave Beckett Sat, 29 May 2004 21:10:58 +0100 + +libcairo (0.1.18-1) unstable; urgency=low + + * New upstream release + * Remove xlib-surface-debian.patch, not needed for XFree86 4.3.0+ + + -- Dave Beckett Thu, 19 Feb 2004 23:08:25 +0000 + +libcairo (0.1.17-4) unstable; urgency=low + + * Initial version to debian archive. Closes: #205346 + + -- Dave Beckett Sun, 15 Feb 2004 21:45:47 +0000 + +libcairo (0.1.17-3) unstable; urgency=low + + * Setting me as the maintainer temporarily + + -- Eduard Bloch Sat, 14 Feb 2004 16:49:18 +0100 + +libcairo (0.1.17-2) unstable; urgency=low + + * Add patch/xlib-surface-debian.patch to restore this to working for X. + + -- Dave Beckett Sat, 24 Jan 2004 18:02:38 +0000 + +libcairo (0.1.17-1) unstable; urgency=low + + * New upstream release + * Replace libpixman/libic dependencies with libpixman + + -- Dave Beckett Tue, 16 Dec 2003 17:49:55 +0000 + +libcairo (0.1.16-1) unstable; urgency=low + + * New upstream release + * Added libxrender-dev (>=0.6.0) requirement to match configure.in + + -- Dave Beckett Mon, 8 Dec 2003 20:39:59 +0000 + +libcairo (0.1.13-1) unstable; urgency=low + + * New upstream release + * Remove patch for src/config.h - merged upstream. + * Return libfreetype6 minimum version to 2.1.0. + + -- Dave Beckett Fri, 21 Nov 2003 20:05:38 +0000 + +libcairo (0.1.12-3) unstable; urgency=low + + * Pull patch from CVS to allow building with newer freetype using the + new include via defines mechanism now enforced in freetype 2.1.6 + + -- Dave Beckett Tue, 18 Nov 2003 20:15:08 +0000 + +libcairo (0.1.12-2) unstable; urgency=low + + * Remove dependency on libxft-dev, replaced with libfreetype6-dev and + libfontconfig1-dev + + -- Dave Beckett Sat, 8 Nov 2003 18:44:19 +0000 + +libcairo (0.1.12-1) unstable; urgency=low + + * New upstream release + + -- Dave Beckett Fri, 7 Nov 2003 20:43:33 +0000 + +libcairo (0.1.11-1) unstable; urgency=low + + * New upstream release + + -- Dave Beckett Tue, 4 Nov 2003 15:10:14 +0000 + +libcairo (0.1.10-1) unstable; urgency=low + + * New upstream release + + -- Dave Beckett Tue, 4 Nov 2003 00:23:16 +0000 + +libcairo (0.1.9-2) unstable; urgency=low + + * Generate packages correctly named after the library major soname: + libcairo1, libcairo1-dev + + -- Dave Beckett Thu, 30 Oct 2003 23:16:43 +0000 + +libcairo (0.1.9-1) unstable; urgency=low + + * New upstream release. + * Removed dependency on automake, autoconf, libtool + + -- Dave Beckett Thu, 30 Oct 2003 21:37:25 +0000 + +libcairo (0.1.8-1) unstable; urgency=low + + * Initial package + + -- Dave Beckett Wed, 29 Oct 2003 23:20:26 +0000 + diff --git a/debian/control b/debian/control index f2fd805..9f61558 100755 --- a/debian/control +++ b/debian/control @@ -1,8 +1,8 @@ Source: cairo Section: libs Priority: optional -Maintainer: Wonsik Jung , Deokjin Kim , Seongwon Cho -Build-Depends: debhelper (>= 5.0.22), autotools-dev, pkg-config (>= 0.19), libfontconfig1-dev, libfreetype6-dev (>= 2.1.10), libxrender-dev (>= 0.6.0), libx11-dev, libpng12-dev, libsm-dev, xutils-dev, libxt-dev, dpatch, libpixman-1-dev (>= 0.12.0), libxcb1-dev (>= 0.9.92), libxcb-render0-dev (>= 0.9.92), libxcb-render-util0-dev, libglib2.0-dev, libxcb-shm0-dev +Maintainer: Wonsik Jung , Deokjin Kim , Seongwon Cho , Dongyeon Kim +Build-Depends: debhelper (>= 5.0.22), autotools-dev, pkg-config (>= 0.19), libfontconfig1-dev, libfreetype6-dev (>= 2.1.10), libxrender-dev (>= 0.6.0), libx11-dev, libpng12-dev, libsm-dev, xutils-dev, libxt-dev, dpatch, libpixman-1-dev (>= 0.12.0), libxcb1-dev (>= 0.9.92), libxcb-render0-dev (>= 0.9.92), libxcb-render-util0-dev, libglib2.0-dev, libxcb-shm0-dev, opengl-es-dev Standards-Version: 3.8.2 Package: libcairo2-dev @@ -11,7 +11,7 @@ Conflicts: libcairo-dev, libcairo0.5.1-dev, libcairo0.6.0-dev, libcairo0.9.0-dev Replaces: libcairo0.5.1-dev, libcairo0.6.0-dev, libcairo0.9.0-dev Section: libdevel Architecture: any -Depends: libcairo2 (= ${binary:Version}), libfontconfig1-dev, libfreetype6-dev (>= 2.1.10), libxrender-dev (>= 0.6.0), libpng12-dev, libsm-dev, libpixman-1-dev (>= 0.12.0), libxcb1-dev, libxcb-render0-dev, libxcb-render-util0-dev, libxcb-shm0-dev +Depends: libcairo2 (= ${binary:Version}), libfontconfig1-dev, libfreetype6-dev (>= 2.1.10), libxrender-dev (>= 0.6.0), libpng12-dev, libsm-dev, libpixman-1-dev (>= 0.12.0), libxcb1-dev, libxcb-render0-dev, libxcb-render-util0-dev, libxcb-shm0-dev, opengl-es-dev Description: Development files for the Cairo 2D graphics library Cairo is a multi-platform library providing anti-aliased vector-based rendering for multiple target backends. diff --git a/debian/rules b/debian/rules index b166edb..4351a15 100755 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,6 @@ #!/usr/bin/make -f -DISTRIBUTION = TIZEN +DISTRIBUTION = SLP # list of flavors we build; each gets a builddir, a configure pass (configure # args are defined below), a build pass, and an install pass @@ -51,7 +51,7 @@ configure_flags += \ --with-x \ --x-includes=$(PREFIX)/include \ --x-libraries=$(PREFIX)/lib \ ---enable-static +--enable-static ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) @@ -61,12 +61,16 @@ endif ifeq (arm, $(findstring arm, $(DEB_HOST_GNU_TYPE))) CONFIGURE_OPTIONS += \ --enable-svg=no + +configure_flags += \ +--enable-egl=yes \ +--enable-glesv2=yes endif main_configure_flags += \ $(configure_flags) -ifeq ($(DISTRIBUTION),TIZEN) +ifeq ($(DISTRIBUTION),SLP) configure_flags += --enable-xcb endif diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..23c1897 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,3 @@ +Makefile +Makefile.in +*~ diff --git a/doc/public/.gitignore b/doc/public/.gitignore new file mode 100644 index 0000000..493a241 --- /dev/null +++ b/doc/public/.gitignore @@ -0,0 +1,19 @@ +*.stamp +Makefile +Makefile.in +cairo-decl-list.txt +cairo-decl.txt +cairo-docs.sgml +cairo-undeclared.txt +cairo-undocumented.txt +cairo-unused.txt +cairo.hierarchy +cairo.interfaces +cairo.prerequisites +cairo.args +cairo.signals +html +xml +version.xml +*~ +*.bak diff --git a/doc/public/cairo-docs.xml b/doc/public/cairo-docs.xml index c2ffead..baf844c 100644 --- a/doc/public/cairo-docs.xml +++ b/doc/public/cairo-docs.xml @@ -17,6 +17,7 @@ + Fonts @@ -42,8 +43,10 @@ - + + + Utilities @@ -70,5 +73,8 @@ Index of new symbols in 1.10 + + Index of new symbols in 1.12 + diff --git a/doc/public/cairo-sections.txt b/doc/public/cairo-sections.txt index 11439ae..c67da37 100644 --- a/doc/public/cairo-sections.txt +++ b/doc/public/cairo-sections.txt @@ -7,6 +7,10 @@ cairo_ft_font_face_create_for_pattern cairo_ft_font_options_substitute cairo_ft_scaled_font_lock_face cairo_ft_scaled_font_unlock_face +cairo_ft_synthesize_t +cairo_ft_font_face_get_synthesize +cairo_ft_font_face_set_synthesize +cairo_ft_font_face_unset_synthesize
@@ -106,6 +110,7 @@ cairo_ps_surface_dsc_comment CAIRO_HAS_RECORDING_SURFACE cairo_recording_surface_create cairo_recording_surface_ink_extents +cairo_recording_surface_get_extents
@@ -117,6 +122,19 @@ cairo_win32_surface_create_with_ddb cairo_win32_printing_surface_create cairo_win32_surface_get_dc cairo_win32_surface_get_image + +SB_NONE +SHADEBLENDCAPS +WIN32_FONT_LOGICAL_SCALE +cairo_win32_device_t +cairo_win32_display_surface_t +cairo_win32_printing_surface_t +cairo_win32_surface_t +to_win32_device +to_win32_device_from_surface +to_win32_display_surface +to_win32_printing_surface +to_win32_surface
@@ -144,6 +162,9 @@ cairo_xlib_surface_get_visual cairo_xlib_surface_get_width cairo_xlib_surface_get_height cairo_xlib_surface_get_depth +cairo_xlib_device_debug_cap_xrender_version +cairo_xlib_device_debug_get_precision +cairo_xlib_device_debug_set_precision
@@ -154,6 +175,22 @@ cairo_xlib_surface_get_xrender_format
+cairo-xcb +CAIRO_HAS_XCB_SURFACE +CAIRO_HAS_XCB_SHM_FUNCTIONS +cairo_xcb_surface_create +cairo_xcb_surface_create_for_bitmap +cairo_xcb_surface_create_with_xrender_format +cairo_xcb_surface_set_size +cairo_xcb_surface_set_drawable +cairo_xcb_device_get_connection +cairo_xcb_device_debug_cap_xrender_version +cairo_xcb_device_debug_cap_xshm_version +cairo_xcb_device_debug_get_precision +cairo_xcb_device_debug_set_precision +
+ +
cairo-svg CAIRO_HAS_SVG_SURFACE cairo_svg_surface_create @@ -161,7 +198,7 @@ cairo_svg_surface_create_for_stream cairo_svg_surface_restrict_to_version cairo_svg_version_t cairo_svg_get_versions -cairo_svg_version_to_string +cairo_svg_version_to_string
@@ -183,6 +220,7 @@ cairo_device_release
cairo-surface +CAIRO_HAS_MIME_SURFACE CAIRO_MIME_TYPE_JP2 CAIRO_MIME_TYPE_JPEG CAIRO_MIME_TYPE_PNG @@ -191,6 +229,7 @@ CAIRO_MIME_TYPE_UNIQUE_ID cairo_surface_t cairo_content_t cairo_surface_create_similar +cairo_surface_create_similar_image cairo_surface_create_for_rectangle cairo_surface_reference cairo_surface_destroy @@ -216,6 +255,9 @@ cairo_surface_show_page cairo_surface_has_show_text_glyphs cairo_surface_set_mime_data cairo_surface_get_mime_data +cairo_surface_supports_mime_type +cairo_surface_map_to_image +cairo_surface_unmap_image
@@ -310,6 +352,26 @@ cairo_pattern_get_user_data
+cairo-raster-source +cairo_pattern_create_raster_source +cairo_raster_source_pattern_set_callback_data +cairo_raster_source_pattern_get_callback_data +cairo_raster_source_pattern_set_acquire +cairo_raster_source_pattern_get_acquire +cairo_raster_source_pattern_set_snapshot +cairo_raster_source_pattern_get_snapshot +cairo_raster_source_pattern_set_copy +cairo_raster_source_pattern_get_copy +cairo_raster_source_pattern_set_finish +cairo_raster_source_pattern_get_finish +cairo_raster_source_acquire_func_t +cairo_raster_source_release_func_t +cairo_raster_source_snapshot_func_t +cairo_raster_source_copy_func_t +cairo_raster_source_finish_func_t +
+ +
cairo-matrix cairo_matrix_t cairo_matrix_init @@ -618,3 +680,17 @@ cairo_status_string CAIRO_FONT_TYPE_ATSUI cairo_atsui_font_face_create_for_atsu_font_id
+ +
+cairo-script +CAIRO_HAS_SCRIPT_SURFACE +cairo_script_create +cairo_script_create_for_stream +cairo_script_from_recording_surface +cairo_script_get_mode +cairo_script_mode_t +cairo_script_set_mode +cairo_script_surface_create +cairo_script_surface_create_for_target +cairo_script_write_comment +
diff --git a/doc/public/check-doc-coverage.sh b/doc/public/check-doc-coverage.sh index 581f324..648ca12 100755 --- a/doc/public/check-doc-coverage.sh +++ b/doc/public/check-doc-coverage.sh @@ -31,7 +31,7 @@ fi >&2 if test -f "$DOC_MODULE-unused.txt"; then unused=`cat "$DOC_MODULE-unused.txt"` if test -n "$unused"; then - echo "*** ERROR: Unused documentated symbols:" 1>&2 + echo "*** ERROR: Unused documented symbols:" 1>&2 cat "$DOC_MODULE-unused.txt" 1>&2 stat=1 fi diff --git a/doc/tutorial/slides/.gitignore b/doc/tutorial/slides/.gitignore new file mode 100644 index 0000000..72a67a0 --- /dev/null +++ b/doc/tutorial/slides/.gitignore @@ -0,0 +1,7 @@ +tutorial-???.html +tutorial-???.png +tutorial-???.svg +tutorial-index.xml +tutorial.pdf +index.html +*~ diff --git a/doc/tutorial/src/.gitignore b/doc/tutorial/src/.gitignore new file mode 100644 index 0000000..68af59e --- /dev/null +++ b/doc/tutorial/src/.gitignore @@ -0,0 +1,8 @@ +*-gtk +*-pdf +*-png +*-xlib +*.pdf +*.png +*.o +*~ diff --git a/packaging/cairo.manifest b/packaging/cairo.manifest new file mode 100644 index 0000000..017d22d --- /dev/null +++ b/packaging/cairo.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/packaging/cairo.spec b/packaging/cairo.spec index fd41512..ee51a4b 100644 --- a/packaging/cairo.spec +++ b/packaging/cairo.spec @@ -1,12 +1,13 @@ #sbs-git:slp/unmodified/cairo cairo 1.11.3 076a40b95caaadbc4a05b92a1a1d7840427e05b7 Name: cairo Summary: A vector graphics library -Version: 1.11.3 -Release: 2 +Version: 1.12.2 +Release: 8 Group: System/Libraries License: LGPLv2 or MPLv1.1 URL: http://www.cairographics.org Source0: http://cairographics.org/releases/%{name}-%{version}.tar.gz +Source1001: packaging/cairo.manifest Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -24,8 +25,11 @@ BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-renderutil) BuildRequires: pkgconfig(xcb-shm) +BuildRequires: pkgconfig(opengl-es-20) #BuildRequires: pkgconfig(librsvg-2.0) BuildRequires: binutils-devel +BuildRequires: which +BuildRequires: autoconf %description Cairo is a 2D graphics library with support for multiple output devices. @@ -43,6 +47,7 @@ cairo development libraries and head files %setup -q -n %{name}-%{version} %build +cp %{SOURCE1001} . NOCONFIGURE=1 ./autogen.sh %configure --disable-static \ --disable-win32 \ @@ -51,7 +56,14 @@ NOCONFIGURE=1 ./autogen.sh --with-x \ --x-includes=%{_includedir} \ --x-libraries=%{_libdir} \ + --disable-gtk-doc \ +%ifarch %ix86 --enable-xcb +%else + --enable-xcb \ + --enable-egl=yes \ + --enable-glesv2=yes +%endif make %{?jobs:-j%jobs} @@ -65,9 +77,11 @@ rm -rf $RPM_BUILD_ROOT/usr/share/gtk-doc %postun -p /sbin/ldconfig %files +%manifest cairo.manifest %{_libdir}/libcairo*.so.* %files devel +%manifest cairo.manifest %{_includedir}/* %{_libdir}/libcairo*.so %{_libdir}/pkgconfig/* diff --git a/perf/.gitignore b/perf/.gitignore new file mode 100644 index 0000000..02af7a9 --- /dev/null +++ b/perf/.gitignore @@ -0,0 +1,30 @@ +TAGS +tags +cairo-analyse-trace +cairo-perf +cairo-perf-micro +cairo-perf-print +cairo-perf-trace +cairo-perf-chart +cairo-perf-compare-backends +cairo-perf-diff-files +cairo-perf-graph-files +cairo-traces +valgrind-log +callgrind.out.* +index.html +*.png +*.perf +*.o +*.gcda +*.gcno +*.exe +*.manifest +*.obj +*.ilk +*.suo +*.lib +*.pdb +*~ +.*.sw? +*.data diff --git a/perf/Makefile.in b/perf/Makefile.in new file mode 100644 index 0000000..ea7dfda --- /dev/null +++ b/perf/Makefile.in @@ -0,0 +1,1216 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/build/Makefile.am.common \ + $(top_srcdir)/perf/Makefile.sources COPYING +EXTRA_PROGRAMS = cairo-analyse-trace$(EXEEXT) \ + cairo-perf-micro$(EXEEXT) cairo-perf-trace$(EXEEXT) \ + cairo-perf-diff-files$(EXEEXT) cairo-perf-print$(EXEEXT) \ + cairo-perf-chart$(EXEEXT) cairo-perf-compare-backends$(EXEEXT) \ + cairo-perf-graph-files$(EXEEXT) +TESTS = +check_PROGRAMS = +noinst_PROGRAMS = cairo-analyse-trace$(EXEEXT) \ + cairo-perf-trace$(EXEEXT) cairo-perf-micro$(EXEEXT) +subdir = perf +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ + $(top_srcdir)/build/aclocal.compare.m4 \ + $(top_srcdir)/build/aclocal.enable.m4 \ + $(top_srcdir)/build/aclocal.float.m4 \ + $(top_srcdir)/build/aclocal.makefile.m4 \ + $(top_srcdir)/build/aclocal.pkg.m4 \ + $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \ + $(top_srcdir)/build/ltoptions.m4 \ + $(top_srcdir)/build/ltsugar.m4 \ + $(top_srcdir)/build/ltversion.m4 \ + $(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/cairo-version.h \ + $(top_srcdir)/build/configure.ac.version \ + $(top_srcdir)/build/configure.ac.tools \ + $(top_srcdir)/build/configure.ac.features \ + $(top_srcdir)/build/configure.ac.warnings \ + $(top_srcdir)/build/configure.ac.system \ + $(top_srcdir)/build/configure.ac.analysis \ + $(top_srcdir)/build/configure.ac.noversion \ + $(top_srcdir)/build/configure.ac.pthread \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +libcairoperf_la_LIBADD = +am__objects_1 = cairo-perf.lo cairo-perf-report.lo cairo-stats.lo +am__objects_2 = cairo-time.lo +am__objects_3 = +am_libcairoperf_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) +libcairoperf_la_OBJECTS = $(am_libcairoperf_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +PROGRAMS = $(noinst_PROGRAMS) +am__objects_4 = cairo-analyse-trace.$(OBJEXT) +am__objects_5 = cairo-error.$(OBJEXT) +am_cairo_analyse_trace_OBJECTS = $(am__objects_4) $(am__objects_5) +cairo_analyse_trace_OBJECTS = $(am_cairo_analyse_trace_OBJECTS) +am__objects_6 = cairo-perf-chart.$(OBJEXT) +am_cairo_perf_chart_OBJECTS = $(am__objects_6) +cairo_perf_chart_OBJECTS = $(am_cairo_perf_chart_OBJECTS) +cairo_perf_chart_LDADD = $(LDADD) +cairo_perf_chart_DEPENDENCIES = libcairoperf.la \ + $(top_builddir)/boilerplate/libcairoboilerplate.la \ + $(top_builddir)/src/libcairo.la +am__objects_7 = cairo-perf-compare-backends.$(OBJEXT) +am_cairo_perf_compare_backends_OBJECTS = $(am__objects_7) +cairo_perf_compare_backends_OBJECTS = \ + $(am_cairo_perf_compare_backends_OBJECTS) +cairo_perf_compare_backends_LDADD = $(LDADD) +cairo_perf_compare_backends_DEPENDENCIES = libcairoperf.la \ + $(top_builddir)/boilerplate/libcairoboilerplate.la \ + $(top_builddir)/src/libcairo.la +am__objects_8 = cairo-perf-diff-files.$(OBJEXT) +am_cairo_perf_diff_files_OBJECTS = $(am__objects_8) +cairo_perf_diff_files_OBJECTS = $(am_cairo_perf_diff_files_OBJECTS) +cairo_perf_diff_files_LDADD = $(LDADD) +cairo_perf_diff_files_DEPENDENCIES = libcairoperf.la \ + $(top_builddir)/boilerplate/libcairoboilerplate.la \ + $(top_builddir)/src/libcairo.la +am__objects_9 = \ + cairo_perf_graph_files-cairo-perf-graph-files.$(OBJEXT) \ + cairo_perf_graph_files-cairo-perf-graph-widget.$(OBJEXT) +am_cairo_perf_graph_files_OBJECTS = $(am__objects_9) $(am__objects_3) +cairo_perf_graph_files_OBJECTS = $(am_cairo_perf_graph_files_OBJECTS) +cairo_perf_graph_files_DEPENDENCIES = $(LDADD) +cairo_perf_graph_files_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +am__objects_10 = cairo-perf-micro.$(OBJEXT) +am_cairo_perf_micro_OBJECTS = $(am__objects_10) +cairo_perf_micro_OBJECTS = $(am_cairo_perf_micro_OBJECTS) +am__objects_11 = cairo-perf-print.$(OBJEXT) +am_cairo_perf_print_OBJECTS = $(am__objects_11) +cairo_perf_print_OBJECTS = $(am_cairo_perf_print_OBJECTS) +cairo_perf_print_LDADD = $(LDADD) +cairo_perf_print_DEPENDENCIES = libcairoperf.la \ + $(top_builddir)/boilerplate/libcairoboilerplate.la \ + $(top_builddir)/src/libcairo.la +am__objects_12 = cairo-perf-trace.$(OBJEXT) +am__objects_13 = cairo-error.$(OBJEXT) cairo-hash.$(OBJEXT) +am_cairo_perf_trace_OBJECTS = $(am__objects_12) $(am__objects_13) +cairo_perf_trace_OBJECTS = $(am_cairo_perf_trace_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libcairoperf_la_SOURCES) $(cairo_analyse_trace_SOURCES) \ + $(cairo_perf_chart_SOURCES) \ + $(cairo_perf_compare_backends_SOURCES) \ + $(cairo_perf_diff_files_SOURCES) \ + $(cairo_perf_graph_files_SOURCES) $(cairo_perf_micro_SOURCES) \ + $(cairo_perf_print_SOURCES) $(cairo_perf_trace_SOURCES) +DIST_SOURCES = $(libcairoperf_la_SOURCES) \ + $(cairo_analyse_trace_SOURCES) $(cairo_perf_chart_SOURCES) \ + $(cairo_perf_compare_backends_SOURCES) \ + $(cairo_perf_diff_files_SOURCES) \ + $(cairo_perf_graph_files_SOURCES) $(cairo_perf_micro_SOURCES) \ + $(cairo_perf_print_SOURCES) $(cairo_perf_trace_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BFD_LIBS = @BFD_LIBS@ +CAIROBOILERPLATE_LIBS = @CAIROBOILERPLATE_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LDFLAGS = @CAIRO_LDFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_LIBTOOL_VERSION_INFO = @CAIRO_LIBTOOL_VERSION_INFO@ +CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@ +CAIRO_NONPKGCONFIG_LIBS = @CAIRO_NONPKGCONFIG_LIBS@ +CAIRO_RELEASE_STATUS = @CAIRO_RELEASE_STATUS@ +CAIRO_REQUIRES = @CAIRO_REQUIRES@ +CAIRO_TEST_MODE = @CAIRO_TEST_MODE@ +CAIRO_TEST_UNDEFINED_LDFLAGS = @CAIRO_TEST_UNDEFINED_LDFLAGS@ +CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@ +CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@ +CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@ +CAIRO_VERSION_SONUM = @CAIRO_VERSION_SONUM@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIND = @FIND@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_CONFIG = @FREETYPE_CONFIG@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ +GOBJECT_LIBS = @GOBJECT_LIBS@ +GREP = @GREP@ +GS = @GS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@ +LIBRSVG_LIBS = @LIBRSVG_LIBS@ +LIBS = @LIBS@ +LIBSPECTRE_CFLAGS = @LIBSPECTRE_CFLAGS@ +LIBSPECTRE_LIBS = @LIBSPECTRE_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LTP = @LTP@ +LTP_GENHTML = @LTP_GENHTML@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ +PKG_CONFIG = @PKG_CONFIG@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_LIBS = @POPPLER_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHLIB_EXT = @SHLIB_EXT@ +SHM_LIBS = @SHM_LIBS@ +SHTOOL = @SHTOOL@ +STRIP = @STRIP@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VERSION = @VERSION@ +XARGS = @XARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cogl_CFLAGS = @cogl_CFLAGS@ +cogl_LIBS = @cogl_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +directfb_CFLAGS = @directfb_CFLAGS@ +directfb_LIBS = @directfb_LIBS@ +docdir = @docdir@ +drm_CFLAGS = @drm_CFLAGS@ +drm_LIBS = @drm_LIBS@ +dvidir = @dvidir@ +egl_CFLAGS = @egl_CFLAGS@ +egl_LIBS = @egl_LIBS@ +exec_prefix = @exec_prefix@ +gallium_DIR = @gallium_DIR@ +gl_CFLAGS = @gl_CFLAGS@ +gl_LIBS = @gl_LIBS@ +glesv2_CFLAGS = @glesv2_CFLAGS@ +glesv2_LIBS = @glesv2_LIBS@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +gtk_CFLAGS = @gtk_CFLAGS@ +gtk_LIBS = @gtk_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mesa_DIR = @mesa_DIR@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pixman_CFLAGS = @pixman_CFLAGS@ +pixman_LIBS = @pixman_LIBS@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +png_REQUIRES = @png_REQUIRES@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_CFLAGS = @pthread_CFLAGS@ +pthread_LIBS = @pthread_LIBS@ +qt_CFLAGS = @qt_CFLAGS@ +qt_LIBS = @qt_LIBS@ +real_pthread_CFLAGS = @real_pthread_CFLAGS@ +real_pthread_LIBS = @real_pthread_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +shm_LIBS = @shm_LIBS@ +skia_DIR = @skia_DIR@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xcb_CFLAGS = @xcb_CFLAGS@ +xcb_LIBS = @xcb_LIBS@ +xcb_shm_CFLAGS = @xcb_shm_CFLAGS@ +xcb_shm_LIBS = @xcb_shm_LIBS@ +xlib_CFLAGS = @xlib_CFLAGS@ +xlib_LIBS = @xlib_LIBS@ +xlib_xcb_CFLAGS = @xlib_xcb_CFLAGS@ +xlib_xcb_LIBS = @xlib_xcb_LIBS@ +xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@ +xlib_xrender_LIBS = @xlib_xrender_LIBS@ +BUILT_SOURCES = +CLEANFILES = *.i *.s *.gch $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) \ + $(check_PROGRAMS) valgrind-log callgrind.out.* index.html +DISTCLEANFILES = $(BUILT_SOURCES) +EXTRA_DIST = cairo-perf-diff COPYING Makefile.win32 +EXTRA_LTLIBRARIES = libcairoperf.la +MAINTAINERCLEANFILES = Makefile.in +libcairoperf_sources = \ + cairo-perf.c \ + cairo-perf-report.c \ + cairo-stats.c \ + $(NULL) + +libcairoperf_external_sources = ../src/cairo-time.c +libcairoperf_headers = \ + cairo-perf.h \ + cairo-stats.h \ + $(NULL) + +cairo_analyse_trace_sources = cairo-analyse-trace.c +cairo_analyse_trace_external_sources = ../src/cairo-error.c +cairo_perf_trace_sources = cairo-perf-trace.c +cairo_perf_trace_external_sources = \ + ../src/cairo-error.c \ + ../src/cairo-hash.c \ + $(NULL) + +cairo_perf_micro_sources = cairo-perf-micro.c +cairo_perf_diff_files_sources = cairo-perf-diff-files.c +cairo_perf_print_sources = cairo-perf-print.c +cairo_perf_chart_sources = cairo-perf-chart.c +cairo_perf_compare_backends_sources = cairo-perf-compare-backends.c +cairo_perf_graph_files_sources = \ + cairo-perf-graph-files.c \ + cairo-perf-graph-widget.c \ + $(NULL) + +cairo_perf_graph_files_headers = cairo-perf-graph.h +AM_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir)/boilerplate \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/util/cairo-missing \ + -I$(top_srcdir)/util/cairo-script \ + -I$(top_builddir)/src \ + $(CAIRO_CFLAGS) + +AM_LDFLAGS = $(CAIRO_LDFLAGS) +SUBDIRS = micro +LDADD = libcairoperf.la \ + $(top_builddir)/boilerplate/libcairoboilerplate.la \ + $(top_builddir)/src/libcairo.la + +cairo_perf_micro_SOURCES = $(cairo_perf_micro_sources) +cairo_perf_micro_LDADD = \ + $(top_builddir)/perf/micro/libcairo-perf-micro.la \ + $(LDADD) + +cairo_perf_micro_DEPENDENCIES = \ + $(top_builddir)/perf/micro/libcairo-perf-micro.la \ + $(LDADD) + +libcairoperf_la_SOURCES = \ + $(libcairoperf_sources) \ + $(libcairoperf_external_sources) \ + $(libcairoperf_headers) \ + $(NULL) + +cairo_analyse_trace_SOURCES = \ + $(cairo_analyse_trace_sources) \ + $(cairo_analyse_trace_external_sources) + +cairo_analyse_trace_LDADD = \ + $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \ + $(top_builddir)/util/cairo-missing/libcairo-missing.la \ + $(LDADD) + +cairo_analyse_trace_DEPENDENCIES = \ + $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \ + $(top_builddir)/util/cairo-missing/libcairo-missing.la \ + $(LDADD) + +cairo_perf_trace_SOURCES = \ + $(cairo_perf_trace_sources) \ + $(cairo_perf_trace_external_sources) + +cairo_perf_trace_LDADD = \ + $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \ + $(top_builddir)/util/cairo-missing/libcairo-missing.la \ + $(LDADD) + +cairo_perf_trace_DEPENDENCIES = \ + $(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \ + $(top_builddir)/util/cairo-missing/libcairo-missing.la \ + $(LDADD) + +cairo_perf_diff_files_SOURCES = $(cairo_perf_diff_files_sources) +cairo_perf_print_SOURCES = $(cairo_perf_print_sources) +cairo_perf_chart_SOURCES = $(cairo_perf_chart_sources) +cairo_perf_compare_backends_SOURCES = $(cairo_perf_compare_backends_sources) +cairo_perf_graph_files_SOURCES = \ + $(cairo_perf_graph_files_sources) \ + $(cairo_perf_graph_files_headers) + +cairo_perf_graph_files_CFLAGS = @gtk_CFLAGS@ +cairo_perf_graph_files_LDADD = @gtk_LIBS@ $(LDADD) + +# Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that +# one can limit tested targets both through CAIRO_TEST_TARGET env var +# and TARGETS make var on the command line. Same for the rest. +TARGETS = $(CAIRO_TEST_TARGET) +TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE) +ITERS = $(CAIRO_PERF_ITERATIONS) +CAIRO_PERF_ENVIRONMENT = CAIRO_PERF_ITERATIONS="$(ITERS)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)" +EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS) +VALGRIND_MEMCHECK_FLAGS = \ + --tool=memcheck \ + --suppressions=$(top_srcdir)/test/.valgrind-suppressions \ + --leak-check=yes --show-reachable=yes + +VALGRIND_CALLGRIND_FLAGS = \ + --tool=callgrind + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/Makefile.am.common $(top_srcdir)/perf/Makefile.sources $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign perf/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign perf/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +libcairoperf.la: $(libcairoperf_la_OBJECTS) $(libcairoperf_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libcairoperf_la_OBJECTS) $(libcairoperf_la_LIBADD) $(LIBS) + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +cairo-analyse-trace$(EXEEXT): $(cairo_analyse_trace_OBJECTS) $(cairo_analyse_trace_DEPENDENCIES) + @rm -f cairo-analyse-trace$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_analyse_trace_OBJECTS) $(cairo_analyse_trace_LDADD) $(LIBS) +cairo-perf-chart$(EXEEXT): $(cairo_perf_chart_OBJECTS) $(cairo_perf_chart_DEPENDENCIES) + @rm -f cairo-perf-chart$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_chart_OBJECTS) $(cairo_perf_chart_LDADD) $(LIBS) +cairo-perf-compare-backends$(EXEEXT): $(cairo_perf_compare_backends_OBJECTS) $(cairo_perf_compare_backends_DEPENDENCIES) + @rm -f cairo-perf-compare-backends$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_compare_backends_OBJECTS) $(cairo_perf_compare_backends_LDADD) $(LIBS) +cairo-perf-diff-files$(EXEEXT): $(cairo_perf_diff_files_OBJECTS) $(cairo_perf_diff_files_DEPENDENCIES) + @rm -f cairo-perf-diff-files$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_diff_files_OBJECTS) $(cairo_perf_diff_files_LDADD) $(LIBS) +cairo-perf-graph-files$(EXEEXT): $(cairo_perf_graph_files_OBJECTS) $(cairo_perf_graph_files_DEPENDENCIES) + @rm -f cairo-perf-graph-files$(EXEEXT) + $(AM_V_CCLD)$(cairo_perf_graph_files_LINK) $(cairo_perf_graph_files_OBJECTS) $(cairo_perf_graph_files_LDADD) $(LIBS) +cairo-perf-micro$(EXEEXT): $(cairo_perf_micro_OBJECTS) $(cairo_perf_micro_DEPENDENCIES) + @rm -f cairo-perf-micro$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_micro_OBJECTS) $(cairo_perf_micro_LDADD) $(LIBS) +cairo-perf-print$(EXEEXT): $(cairo_perf_print_OBJECTS) $(cairo_perf_print_DEPENDENCIES) + @rm -f cairo-perf-print$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_print_OBJECTS) $(cairo_perf_print_LDADD) $(LIBS) +cairo-perf-trace$(EXEEXT): $(cairo_perf_trace_OBJECTS) $(cairo_perf_trace_DEPENDENCIES) + @rm -f cairo-perf-trace$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(cairo_perf_trace_OBJECTS) $(cairo_perf_trace_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-analyse-trace.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-hash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-chart.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-compare-backends.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-diff-files.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-micro.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-print.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-report.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-trace.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-stats.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-time.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +cairo-time.lo: ../src/cairo-time.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cairo-time.lo -MD -MP -MF $(DEPDIR)/cairo-time.Tpo -c -o cairo-time.lo `test -f '../src/cairo-time.c' || echo '$(srcdir)/'`../src/cairo-time.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-time.Tpo $(DEPDIR)/cairo-time.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/cairo-time.c' object='cairo-time.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cairo-time.lo `test -f '../src/cairo-time.c' || echo '$(srcdir)/'`../src/cairo-time.c + +cairo-error.o: ../src/cairo-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cairo-error.o -MD -MP -MF $(DEPDIR)/cairo-error.Tpo -c -o cairo-error.o `test -f '../src/cairo-error.c' || echo '$(srcdir)/'`../src/cairo-error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-error.Tpo $(DEPDIR)/cairo-error.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/cairo-error.c' object='cairo-error.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cairo-error.o `test -f '../src/cairo-error.c' || echo '$(srcdir)/'`../src/cairo-error.c + +cairo-error.obj: ../src/cairo-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cairo-error.obj -MD -MP -MF $(DEPDIR)/cairo-error.Tpo -c -o cairo-error.obj `if test -f '../src/cairo-error.c'; then $(CYGPATH_W) '../src/cairo-error.c'; else $(CYGPATH_W) '$(srcdir)/../src/cairo-error.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-error.Tpo $(DEPDIR)/cairo-error.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/cairo-error.c' object='cairo-error.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cairo-error.obj `if test -f '../src/cairo-error.c'; then $(CYGPATH_W) '../src/cairo-error.c'; else $(CYGPATH_W) '$(srcdir)/../src/cairo-error.c'; fi` + +cairo_perf_graph_files-cairo-perf-graph-files.o: cairo-perf-graph-files.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -MT cairo_perf_graph_files-cairo-perf-graph-files.o -MD -MP -MF $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Tpo -c -o cairo_perf_graph_files-cairo-perf-graph-files.o `test -f 'cairo-perf-graph-files.c' || echo '$(srcdir)/'`cairo-perf-graph-files.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Tpo $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-perf-graph-files.c' object='cairo_perf_graph_files-cairo-perf-graph-files.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -c -o cairo_perf_graph_files-cairo-perf-graph-files.o `test -f 'cairo-perf-graph-files.c' || echo '$(srcdir)/'`cairo-perf-graph-files.c + +cairo_perf_graph_files-cairo-perf-graph-files.obj: cairo-perf-graph-files.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -MT cairo_perf_graph_files-cairo-perf-graph-files.obj -MD -MP -MF $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Tpo -c -o cairo_perf_graph_files-cairo-perf-graph-files.obj `if test -f 'cairo-perf-graph-files.c'; then $(CYGPATH_W) 'cairo-perf-graph-files.c'; else $(CYGPATH_W) '$(srcdir)/cairo-perf-graph-files.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Tpo $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-files.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-perf-graph-files.c' object='cairo_perf_graph_files-cairo-perf-graph-files.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -c -o cairo_perf_graph_files-cairo-perf-graph-files.obj `if test -f 'cairo-perf-graph-files.c'; then $(CYGPATH_W) 'cairo-perf-graph-files.c'; else $(CYGPATH_W) '$(srcdir)/cairo-perf-graph-files.c'; fi` + +cairo_perf_graph_files-cairo-perf-graph-widget.o: cairo-perf-graph-widget.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -MT cairo_perf_graph_files-cairo-perf-graph-widget.o -MD -MP -MF $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Tpo -c -o cairo_perf_graph_files-cairo-perf-graph-widget.o `test -f 'cairo-perf-graph-widget.c' || echo '$(srcdir)/'`cairo-perf-graph-widget.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Tpo $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-perf-graph-widget.c' object='cairo_perf_graph_files-cairo-perf-graph-widget.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -c -o cairo_perf_graph_files-cairo-perf-graph-widget.o `test -f 'cairo-perf-graph-widget.c' || echo '$(srcdir)/'`cairo-perf-graph-widget.c + +cairo_perf_graph_files-cairo-perf-graph-widget.obj: cairo-perf-graph-widget.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -MT cairo_perf_graph_files-cairo-perf-graph-widget.obj -MD -MP -MF $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Tpo -c -o cairo_perf_graph_files-cairo-perf-graph-widget.obj `if test -f 'cairo-perf-graph-widget.c'; then $(CYGPATH_W) 'cairo-perf-graph-widget.c'; else $(CYGPATH_W) '$(srcdir)/cairo-perf-graph-widget.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Tpo $(DEPDIR)/cairo_perf_graph_files-cairo-perf-graph-widget.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-perf-graph-widget.c' object='cairo_perf_graph_files-cairo-perf-graph-widget.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cairo_perf_graph_files_CFLAGS) $(CFLAGS) -c -o cairo_perf_graph_files-cairo-perf-graph-widget.obj `if test -f 'cairo-perf-graph-widget.c'; then $(CYGPATH_W) 'cairo-perf-graph-widget.c'; else $(CYGPATH_W) '$(srcdir)/cairo-perf-graph-widget.c'; fi` + +cairo-hash.o: ../src/cairo-hash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cairo-hash.o -MD -MP -MF $(DEPDIR)/cairo-hash.Tpo -c -o cairo-hash.o `test -f '../src/cairo-hash.c' || echo '$(srcdir)/'`../src/cairo-hash.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-hash.Tpo $(DEPDIR)/cairo-hash.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/cairo-hash.c' object='cairo-hash.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cairo-hash.o `test -f '../src/cairo-hash.c' || echo '$(srcdir)/'`../src/cairo-hash.c + +cairo-hash.obj: ../src/cairo-hash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cairo-hash.obj -MD -MP -MF $(DEPDIR)/cairo-hash.Tpo -c -o cairo-hash.obj `if test -f '../src/cairo-hash.c'; then $(CYGPATH_W) '../src/cairo-hash.c'; else $(CYGPATH_W) '$(srcdir)/../src/cairo-hash.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/cairo-hash.Tpo $(DEPDIR)/cairo-hash.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/cairo-hash.c' object='cairo-hash.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cairo-hash.obj `if test -f '../src/cairo-hash.c'; then $(CYGPATH_W) '../src/cairo-hash.c'; else $(CYGPATH_W) '$(srcdir)/../src/cairo-hash.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + echo "$$grn$$dashes"; \ + else \ + echo "$$red$$dashes"; \ + fi; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes$$std"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(PROGRAMS) +installdirs: installdirs-recursive +installdirs-am: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: html-local + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + check-am ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstPROGRAMS ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am html-local info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am + + +# Install rules to rebuild the libraries and add explicit dependencies +$(top_builddir)/perf/micro/libcairo-perf-micro.la: + cd $(top_builddir)/perf/micro && $(MAKE) $(AM_MAKEFLAGS) libcairo-perf-micro.la + +$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la + cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la + +$(top_builddir)/src/libcairo.la: + cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la + +$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la: $(top_builddir)/src/libcairo.la + cd $(top_builddir)/util/cairo-script && $(MAKE) $(AM_MAKEFLAGS) libcairo-script-interpreter.la + +perf: cairo-perf-micro$(EXEEXT) cairo-perf-trace$(EXEEXT) + -$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-micro$(EXEEXT) + -$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-trace$(EXEEXT) + +html-local: index.html + +perf-tag.html : cairo-perf-micro${EXEEXT} + $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ `git describe --abbrev=0` HEAD +perf-commit.html : cairo-perf-micro${EXEEXT} + $(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ HEAD + +# Summarise changes in index.html, with details in links +index.html: perf-tag.html perf-commit.html + echo "Performance ChangesAgainst
"`git describe --abbrev=0`"
Latest commit" > $@ + +perf-valgrind: + $(MAKE) $(AM_MAKEFLAGS) perf \ + $(top_builddir)/libtool --mode=execute \ + valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \ + | tee valgrind-log + +perf-callgrind: + $(MAKE) $(AM_MAKEFLAGS) perf \ + $(top_builddir)/libtool --mode=execute \ + valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)' + +.PHONY: perf perf-valgrind perf-callgrind + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/perf/README b/perf/README index 42a6148..beca927 100644 --- a/perf/README +++ b/perf/README @@ -92,7 +92,7 @@ cairo-perf-diff: As a convenience, this common desire to measure a single commit is supported by passing a single revision to cairo-perf-diff, in which -case it will compare it to the immediately preceeding commit. So for +case it will compare it to the immediately preceding commit. So for example: # Measure the impact of the latest commit @@ -117,7 +117,7 @@ what has been cached: And finally, the -f mode is most useful in conjunction with the -- option to cairo-perf-diff which allows you to pass options to the -underlying cairo-perf runs. This allows you to restrict the additonal +underlying cairo-perf runs. This allows you to restrict the additional test runs to a limited subset of the tests. For example, a frequently used trick is to first generate a chart with diff --git a/perf/cairo-analyse-trace.c b/perf/cairo-analyse-trace.c index ac2a4e7..9941486 100644 --- a/perf/cairo-analyse-trace.c +++ b/perf/cairo-analyse-trace.c @@ -256,18 +256,17 @@ static void usage (const char *argv0) { fprintf (stderr, -"Usage: %s [-l] [-r] [-v] [-i iterations] [test-names ... | traces ...]\n" -" %s -l\n" +"Usage: %s [-l] [-i iterations] [-x exclude-file] [test-names ... | traces ...]\n" "\n" -"Run the cairo performance test suite over the given tests (all by default)\n" +"Run the cairo trace analysis suite over the given tests (all by default)\n" "The command-line arguments are interpreted as follows:\n" "\n" -" -v verbose\n" -" -x exclude; specify a file to read a list of traces to exclude\n" +" -i iterations; specify the number of iterations per test case\n" " -l list only; just list selected test case names without executing\n" +" -x exclude; specify a file to read a list of traces to exclude\n" "\n" "If test names are given they are used as sub-string matches so a command\n" -"such as \"cairo-perf-trace firefox\" can be used to run all firefox traces.\n" +"such as \"%s firefox\" can be used to run all firefox traces.\n" "Alternatively, you can specify a list of filenames to execute.\n", argv0, argv0); } @@ -330,7 +329,7 @@ parse_options (cairo_perf_t *perf, perf->num_exclude_names = 0; while (1) { - c = _cairo_getopt (argc, argv, "i:x:lrvc"); + c = _cairo_getopt (argc, argv, "i:lx:"); if (c == -1) break; @@ -419,7 +418,6 @@ cairo_perf_trace (cairo_perf_t *perf, 1, 1, 1, 1, CAIRO_BOILERPLATE_MODE_PERF, - 0, &args.closure); args.surface = cairo_surface_create_observer (real, diff --git a/perf/cairo-perf-chart.c b/perf/cairo-perf-chart.c index 70ff353..df0bd88 100644 --- a/perf/cairo-perf-chart.c +++ b/perf/cairo-perf-chart.c @@ -54,7 +54,7 @@ struct color { }; #define FONT_SIZE 12 -#define PAD (FONT_SIZE/2+1) +#define PAD (4) #define MAX(a,b) ((a) > (b) ? (a) : (b)) @@ -108,13 +108,13 @@ trim_outliers (double *values, qsort (values, num_values, sizeof (double), _double_cmp); - q1 = values[1*num_values / 4]; - q3 = values[3*num_values / 4]; + q1 = values[1*num_values / 6]; + q3 = values[5*num_values / 6]; iqr = q3 - q1; - outlier_min = q1 - 1.5 * iqr; - outlier_max = q3 + 1.5 * iqr; + outlier_min = q1 - 3 * iqr; + outlier_max = q3 + 3 * iqr; i = 0; while (i < num_values && values[i] < outlier_min) @@ -140,6 +140,8 @@ find_ranges (struct chart *chart) double test_time; int seen_non_null; int num_tests = 0; + double slow_sum = 0, fast_sum = 0, sum; + int slow_count = 0, fast_count = 0; int i; num_values = 0; @@ -201,17 +203,25 @@ find_ranges (struct chart *chart) test_time = report_time; if (chart->relative) { - double v = to_factor (test_time / report_time); - if (num_values == size_values) { - size_values *= 2; - values = xrealloc (values, - size_values * sizeof (double)); + if (test_time != report_time) { + double v = to_factor (test_time / report_time); + if (num_values == size_values) { + size_values *= 2; + values = xrealloc (values, + size_values * sizeof (double)); + } + values[num_values++] = v; + if (v < min) + min = v; + if (v > max) + max = v; + if (v > 0) + fast_sum += v/100, fast_count++; + else + slow_sum += v/100, slow_count++; + sum += v/100; + printf ("%s %d: %f\n", min_test->name, num_values, v); } - values[num_values++] = v; - if (v < min) - min = v; - if (v > max) - max = v; } else { if (report_time < min) min = report_time; @@ -230,6 +240,9 @@ find_ranges (struct chart *chart) free (values); free (tests); + + printf ("%d: slow[%d] average: %f, fast[%d] average: %f, %f\n", + num_values, slow_count, slow_sum / slow_count, fast_count, fast_sum / fast_count, sum / num_values); } #define SET_COLOR(C, R, G, B) (C)->red = (R), (C)->green = (G), (C)->blue = (B) @@ -284,6 +297,28 @@ static void set_report_color (struct chart *chart, int report) cairo_set_source_rgb (chart->cr, color.red, color.green, color.blue); } +static void set_report_gradient (struct chart *chart, int report, + double x, double y, double w, double h) +{ + struct color color; + cairo_pattern_t *p; + + hsv_to_rgb (6. / chart->num_reports * report, .7, .7, &color); + + p = cairo_pattern_create_linear (x, 0, x+w, 0); + cairo_pattern_add_color_stop_rgba (p, 0.0, + color.red, color.green, color.blue, + .50); + cairo_pattern_add_color_stop_rgba (p, 0.5, + color.red, color.green, color.blue, + .50); + cairo_pattern_add_color_stop_rgba (p, 1.0, + color.red, color.green, color.blue, + 1.0); + cairo_set_source (chart->cr, p); + cairo_pattern_destroy (p); +} + static void test_background (struct chart *c, int test) @@ -314,11 +349,8 @@ add_chart (struct chart *c, if (fabs (value) < 0.1) return; - set_report_color (c, report); - if (c->relative) { cairo_text_extents_t extents; - cairo_bool_t show_label; char buf[80]; double y; @@ -327,17 +359,31 @@ add_chart (struct chart *c, dx = c->width / (double) (c->num_tests * c->num_reports); x = dx * (c->num_reports * test + report - .5); + set_report_gradient (c, report, + floor (x), c->height / 2., + floor (x + dx) - floor (x), + ceil (-dy*value - c->height/2.) + c->height/2.); + cairo_rectangle (c->cr, floor (x), c->height / 2., floor (x + dx) - floor (x), ceil (-dy*value - c->height/2.) + c->height/2.); - cairo_fill (c->cr); + cairo_fill_preserve (c->cr); + cairo_save (c->cr); + cairo_clip_preserve (c->cr); + set_report_color (c, report); + cairo_stroke (c->cr); + cairo_restore (c->cr); + + /* Skip the label if the difference between the two is less than 0.1% */ + if (fabs (value) < 0.1) + return; cairo_save (c->cr); cairo_set_font_size (c->cr, dx - 2); if (value < 0) { - sprintf (buf, "%.1f", value/100 - 1); + sprintf (buf, "%.1f", -value/100 + 1); } else { sprintf (buf, "%.1f", value/100 + 1); } @@ -351,32 +397,47 @@ add_chart (struct chart *c, y = c->height/2; } + if (y < 0) { + if (y > -extents.width - 6) + y -= extents.width + 6; + } else { + if (y < extents.width + 6) + y += extents.width + 6; + } + cairo_translate (c->cr, floor (x) + (floor (x + dx) - floor (x))/2, floor (y) + c->height/2.); cairo_rotate (c->cr, -M_PI/2); if (y < 0) { cairo_move_to (c->cr, -extents.x_bearing -extents.width - 4, -extents.y_bearing/2); - show_label = y < -extents.width - 6; } else { cairo_move_to (c->cr, 2, -extents.y_bearing/2); - show_label = y > extents.width + 6; } cairo_set_source_rgb (c->cr, .95, .95, .95); - if (show_label) - cairo_show_text (c->cr, buf); + cairo_show_text (c->cr, buf); cairo_restore (c->cr); } else { dy = (c->height - PAD) / c->max_value; dx = c->width / (double) (c->num_tests * (c->num_reports+1)); x = dx * ((c->num_reports+1) * test + report + .5); + set_report_gradient (c, report, + floor (x), c->height, + floor (x + dx) - floor (x), + floor (c->height - dy*value) - c->height); + cairo_rectangle (c->cr, floor (x), c->height, floor (x + dx) - floor (x), floor (c->height - dy*value) - c->height); - cairo_fill (c->cr); + cairo_fill_preserve (c->cr); + cairo_save (c->cr); + cairo_clip_preserve (c->cr); + set_report_color (c, report); + cairo_stroke (c->cr); + cairo_restore (c->cr); } } @@ -390,19 +451,29 @@ add_label (struct chart *c, cairo_save (c->cr); dx = c->width / (double) c->num_tests; - if (dx / 2 - PAD < 6) + if (dx / 2 - PAD < 4) return; cairo_set_font_size (c->cr, dx / 2 - PAD); cairo_text_extents (c->cr, label, &extents); + cairo_set_source_rgb (c->cr, .5, .5, .5); + x = (test + .5) * dx; - cairo_translate (c->cr, x, PAD / 2); + cairo_save (c->cr); + cairo_translate (c->cr, x, c->height - PAD / 2); cairo_rotate (c->cr, -M_PI/2); + cairo_move_to (c->cr, 0, -extents.y_bearing/2); + cairo_show_text (c->cr, label); + cairo_restore (c->cr); - cairo_set_source_rgb (c->cr, .5, .5, .5); + cairo_save (c->cr); + cairo_translate (c->cr, x, PAD / 2); + cairo_rotate (c->cr, -M_PI/2); cairo_move_to (c->cr, -extents.width, -extents.y_bearing/2); cairo_show_text (c->cr, label); cairo_restore (c->cr); + + cairo_restore (c->cr); } static void @@ -464,10 +535,10 @@ done: cairo_text_extents (c->cr, buf, &extents); cairo_set_source_rgba (c->cr, .75, 0, 0, .95); - cairo_move_to (c->cr, -extents.x_bearing, floor (y) - (extents.height/2 + extents.y_bearing) + .5); + cairo_move_to (c->cr, 1-extents.x_bearing, floor (y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); - cairo_move_to (c->cr, c->width-extents.width+extents.x_bearing, floor (y) - (extents.height/2 + extents.y_bearing) + .5); + cairo_move_to (c->cr, c->width-extents.width-1, floor (y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); cairo_set_source_rgba (c->cr, .75, 0, 0, .5); @@ -525,17 +596,17 @@ done: cairo_text_extents (c->cr, buf, &extents); cairo_set_source_rgba (c->cr, .75, 0, 0, .95); - cairo_move_to (c->cr, -extents.x_bearing, floor (mid + y) - (extents.height/2 + extents.y_bearing)+ .5); + cairo_move_to (c->cr, 1-extents.x_bearing, floor (mid + y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); - cairo_move_to (c->cr, c->width-extents.width+extents.x_bearing, floor (mid + y) - (extents.height/2 + extents.y_bearing)+ .5); + cairo_move_to (c->cr, c->width-extents.width-1, floor (mid + y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); cairo_set_source_rgba (c->cr, 0, .75, 0, .95); - cairo_move_to (c->cr, -extents.x_bearing, ceil (mid - y) - (extents.height/2 + extents.y_bearing)+ .5); + cairo_move_to (c->cr, 1-extents.x_bearing, ceil (mid - y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); - cairo_move_to (c->cr, c->width-extents.width+extents.x_bearing, ceil (mid - y) - (extents.height/2 + extents.y_bearing)+ .5); + cairo_move_to (c->cr, c->width-extents.width-1, ceil (mid - y) - (extents.height/2 + extents.y_bearing) + .5); cairo_show_text (c->cr, buf); /* trim the dashes to no obscure the labels */ @@ -544,7 +615,7 @@ done: ceil (extents.width + extents.x_bearing + 2), floor (mid + y) + .5); cairo_line_to (c->cr, - floor (c->width - (extents.width + extents.x_bearing + 2)), + floor (c->width - (extents.width + 2)), floor (mid + y) + .5); cairo_stroke (c->cr); @@ -553,7 +624,7 @@ done: ceil (extents.width + extents.x_bearing + 2), ceil (mid - y) + .5); cairo_line_to (c->cr, - floor (c->width - (extents.width + extents.x_bearing + 2)), + floor (c->width - (extents.width + 2)), ceil (mid - y) + .5); cairo_stroke (c->cr); @@ -840,7 +911,7 @@ main (int argc, chart.names[chart.num_reports] = argv[i] + 7; } else { cairo_perf_report_load (&chart.reports[chart.num_reports++], - argv[i], + argv[i], i, test_report_cmp_name); } } diff --git a/perf/cairo-perf-graph-files.c b/perf/cairo-perf-graph-files.c index 0ac4b7c..1fd99e4 100644 --- a/perf/cairo-perf-graph-files.c +++ b/perf/cairo-perf-graph-files.c @@ -576,7 +576,7 @@ main (int argc, reports = xmalloc ((argc-1) * sizeof (cairo_perf_report_t)); for (i = 1; i < argc; i++ ) - cairo_perf_report_load (&reports[i-1], argv[i], NULL); + cairo_perf_report_load (&reports[i-1], argv[i], i, NULL); cases = test_cases_from_reports (reports, argc-1); diff --git a/perf/cairo-perf-micro.c b/perf/cairo-perf-micro.c index 61ed55f..d6b52c4 100644 --- a/perf/cairo-perf-micro.c +++ b/perf/cairo-perf-micro.c @@ -169,7 +169,7 @@ cairo_perf_run (cairo_perf_t *perf, cairo_count_func_t count_func) { static cairo_bool_t first_run = TRUE; - unsigned int i, similar, has_similar; + unsigned int i, similar, similar_iters; cairo_time_t *times; cairo_stats_t stats = {0.0, 0.0}; int low_std_dev_count; @@ -217,8 +217,12 @@ cairo_perf_run (cairo_perf_t *perf, free (filename); } - has_similar = cairo_perf_has_similar (perf); - for (similar = 0; similar <= has_similar; similar++) { + if (cairo_perf_has_similar (perf)) + similar_iters = 2; + else + similar_iters = 1; + + for (similar = 0; similar < similar_iters; similar++) { unsigned loops; if (perf->summary) { @@ -315,19 +319,19 @@ static void usage (const char *argv0) { fprintf (stderr, -"Usage: %s [-l] [-r] [-v] [-i iterations] [test-names ...]\n" -" %s -l\n" +"Usage: %s [-flrv] [-i iterations] [test-names ...]\n" "\n" "Run the cairo performance test suite over the given tests (all by default)\n" "The command-line arguments are interpreted as follows:\n" "\n" -" -r raw; display each time measurement instead of summary statistics\n" -" -v verbose; in raw mode also show the summaries\n" +" -f fast; faster, less accurate\n" " -i iterations; specify the number of iterations per test case\n" " -l list only; just list selected test case names without executing\n" +" -r raw; display each time measurement instead of summary statistics\n" +" -v verbose; in raw mode also show the summaries\n" "\n" "If test names are given they are used as sub-string matches so a command\n" -"such as \"cairo-perf text\" can be used to run all text test cases.\n", +"such as \"%s text\" can be used to run all text test cases.\n", argv0, argv0); } @@ -361,11 +365,16 @@ parse_options (cairo_perf_t *perf, perf->summary = stdout; while (1) { - c = _cairo_getopt (argc, argv, "i:lrvf"); + c = _cairo_getopt (argc, argv, "fi:lrv"); if (c == -1) break; switch (c) { + case 'f': + perf->fast_and_sloppy = TRUE; + if (ms == NULL) + perf->ms_per_iteration = CAIRO_PERF_ITERATION_MS_FAST; + break; case 'i': perf->exact_iterations = TRUE; perf->iterations = strtoul (optarg, &end, 10); @@ -382,11 +391,6 @@ parse_options (cairo_perf_t *perf, perf->raw = TRUE; perf->summary = NULL; break; - case 'f': - perf->fast_and_sloppy = TRUE; - if (ms == NULL) - perf->ms_per_iteration = CAIRO_PERF_ITERATION_MS_FAST; - break; case 'v': verbose = 1; break; @@ -508,7 +512,6 @@ main (int argc, perf.size, perf.size, perf.size, perf.size, CAIRO_BOILERPLATE_MODE_PERF, - 0, &closure); if (surface == NULL) { fprintf (stderr, diff --git a/perf/cairo-perf-print.c b/perf/cairo-perf-print.c index 146f79b..16a3ff4 100644 --- a/perf/cairo-perf-print.c +++ b/perf/cairo-perf-print.c @@ -65,7 +65,7 @@ main (int argc, for (i = 1; i < argc; i++ ) { cairo_perf_report_t report; - cairo_perf_report_load (&report, argv[i], NULL); + cairo_perf_report_load (&report, argv[i], i, NULL); report_print (&report); } diff --git a/perf/cairo-perf-report.c b/perf/cairo-perf-report.c index 8df78c6..38bdc0c 100644 --- a/perf/cairo-perf-report.c +++ b/perf/cairo-perf-report.c @@ -388,11 +388,9 @@ cairo_perf_report_load (cairo_perf_report_t *report, if (name == NULL) name = "stdin"; - configuration = xmalloc (strlen (name) * sizeof (char) + 1); - strcpy (configuration, name); + configuration = xstrdup (name); baseName = basename (configuration); - report->configuration = xmalloc (strlen (baseName) * sizeof (char) + 1); - strcpy (report->configuration, baseName); + report->configuration = xstrdup (baseName); free (configuration); dot = strrchr (report->configuration, '.'); diff --git a/perf/cairo-perf-trace.c b/perf/cairo-perf-trace.c index 8e637a7..bd0cb07 100644 --- a/perf/cairo-perf-trace.c +++ b/perf/cairo-perf-trace.c @@ -354,21 +354,22 @@ static void usage (const char *argv0) { fprintf (stderr, -"Usage: %s [-l] [-r] [-v] [-i iterations] [test-names ... | traces ...]\n" -" %s -l\n" +"Usage: %s [-clrsv] [-i iterations] [-t tile-size] [-x exclude-file] [test-names ... | traces ...]\n" "\n" "Run the cairo performance test suite over the given tests (all by default)\n" "The command-line arguments are interpreted as follows:\n" "\n" +" -c use surface cache; keep a cache of surfaces to be reused\n" +" -i iterations; specify the number of iterations per test case\n" +" -l list only; just list selected test case names without executing\n" " -r raw; display each time measurement instead of summary statistics\n" " -s sync; only sum the elapsed time of the indiviual operations\n" +" -t tile size; draw to tiled surfaces\n" " -v verbose; in raw mode also show the summaries\n" -" -i iterations; specify the number of iterations per test case\n" -" -x exclude; specify a file to read a list of traces to exclude\n" -" -l list only; just list selected test case names without executing\n" +" -x exclude; specify a file to read a list of traces to exclude\n" "\n" "If test names are given they are used as sub-string matches so a command\n" -"such as \"cairo-perf-trace firefox\" can be used to run all firefox traces.\n" +"such as \"%s firefox\" can be used to run all firefox traces.\n" "Alternatively, you can specify a list of filenames to execute.\n", argv0, argv0); } @@ -445,11 +446,14 @@ parse_options (cairo_perf_t *perf, perf->num_exclude_names = 0; while (1) { - c = _cairo_getopt (argc, argv, "t:i:x:lsrvc"); + c = _cairo_getopt (argc, argv, "ci:lrst:vx:"); if (c == -1) break; switch (c) { + case 'c': + use_surface_cache = 1; + break; case 'i': perf->exact_iterations = TRUE; perf->iterations = strtoul (optarg, &end, 10); @@ -459,14 +463,6 @@ parse_options (cairo_perf_t *perf, exit (1); } break; - case 't': - perf->tile_size = strtoul (optarg, &end, 10); - if (*end != '\0') { - fprintf (stderr, "Invalid argument for -t (not an integer): %s\n", - optarg); - exit (1); - } - break; case 'l': perf->list_only = TRUE; break; @@ -477,12 +473,17 @@ parse_options (cairo_perf_t *perf, case 's': perf->observe = TRUE; break; + case 't': + perf->tile_size = strtoul (optarg, &end, 10); + if (*end != '\0') { + fprintf (stderr, "Invalid argument for -t (not an integer): %s\n", + optarg); + exit (1); + } + break; case 'v': verbose = 1; break; - case 'c': - use_surface_cache = 1; - break; case 'x': if (! read_excludes (perf, optarg)) { fprintf (stderr, "Invalid argument for -x (not readable file): %s\n", @@ -698,7 +699,6 @@ cairo_perf_trace (cairo_perf_t *perf, 1, 1, 1, 1, CAIRO_BOILERPLATE_MODE_PERF, - 0, &args.closure); if (perf->observe) { cairo_surface_t *obs; diff --git a/perf/cairo-perf.c b/perf/cairo-perf.c index 7f2ff5b..f049d6d 100644 --- a/perf/cairo-perf.c +++ b/perf/cairo-perf.c @@ -46,6 +46,19 @@ #include #endif +/* XXX: add thread-aware for gl backend */ +#if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV2_SURFACE +#include +#endif +void cairo_perf_set_thread_aware (cairo_t *cr, cairo_bool_t thread_aware) +{ +#if CAIRO_HAS_GL_SURFACE || CAIRO_HAS_GLESV2_SURFACE + cairo_device_t *device = cairo_surface_get_device (cairo_get_target (cr)); + if (cairo_device_get_type (device) == CAIRO_DEVICE_TYPE_GL) + cairo_gl_device_set_thread_aware (device, thread_aware); +#endif +} + /* timers */ static cairo_time_t timer; diff --git a/perf/cairo-perf.h b/perf/cairo-perf.h index feab74b..5145821 100644 --- a/perf/cairo-perf.h +++ b/perf/cairo-perf.h @@ -40,6 +40,9 @@ typedef struct _cairo_stats { int iterations; } cairo_stats_t; +/* XXX: add support for thread_aware for gl backend */ +void cairo_perf_set_thread_aware (cairo_t *cr, cairo_bool_t thread_aware); + /* timers */ void diff --git a/perf/cairo-stats.c b/perf/cairo-stats.c index 1e25aef..44ed038 100644 --- a/perf/cairo-stats.c +++ b/perf/cairo-stats.c @@ -32,7 +32,7 @@ _cairo_stats_compute (cairo_stats_t *stats, cairo_time_t *values, int num_values) { - cairo_time_t sum, mean, delta, q1, q3, iqr; + cairo_time_t sum, mean, q1, q3, iqr; cairo_time_t outlier_min, outlier_max; int i, min_valid, num_valid; double s; diff --git a/perf/micro/Makefile.in b/perf/micro/Makefile.in new file mode 100644 index 0000000..30f3cb9 --- /dev/null +++ b/perf/micro/Makefile.in @@ -0,0 +1,844 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/build/Makefile.am.common \ + $(top_srcdir)/perf/micro/Makefile.sources +EXTRA_PROGRAMS = +TESTS = +check_PROGRAMS = +subdir = perf/micro +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ + $(top_srcdir)/build/aclocal.compare.m4 \ + $(top_srcdir)/build/aclocal.enable.m4 \ + $(top_srcdir)/build/aclocal.float.m4 \ + $(top_srcdir)/build/aclocal.makefile.m4 \ + $(top_srcdir)/build/aclocal.pkg.m4 \ + $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \ + $(top_srcdir)/build/ltoptions.m4 \ + $(top_srcdir)/build/ltsugar.m4 \ + $(top_srcdir)/build/ltversion.m4 \ + $(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/cairo-version.h \ + $(top_srcdir)/build/configure.ac.version \ + $(top_srcdir)/build/configure.ac.tools \ + $(top_srcdir)/build/configure.ac.features \ + $(top_srcdir)/build/configure.ac.warnings \ + $(top_srcdir)/build/configure.ac.system \ + $(top_srcdir)/build/configure.ac.analysis \ + $(top_srcdir)/build/configure.ac.noversion \ + $(top_srcdir)/build/configure.ac.pthread \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libcairo_perf_micro_la_LIBADD = +am__objects_1 = cairo-perf-cover.lo box-outline.lo \ + composite-checker.lo disjoint.lo fill.lo hatching.lo \ + hash-table.lo line.lo a1-line.lo long-lines.lo mosaic.lo \ + paint.lo paint-with-alpha.lo mask.lo pattern_create_radial.lo \ + rectangles.lo rounded-rectangles.lo stroke.lo subimage_copy.lo \ + tessellate.lo text.lo tiger.lo glyphs.lo twin.lo \ + unaligned-clip.lo wave.lo world-map.lo zrusin.lo \ + long-dashed-lines.lo dragon.lo pythagoras-tree.lo \ + intersections.lo many-strokes.lo wide-strokes.lo many-fills.lo \ + wide-fills.lo many-curves.lo curve.lo a1-curve.lo spiral.lo \ + pixel.lo sierpinski.lo fill-clip.lo +am__objects_2 = +am_libcairo_perf_micro_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libcairo_perf_micro_la_OBJECTS = $(am_libcairo_perf_micro_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libcairo_perf_micro_la_SOURCES) +DIST_SOURCES = $(libcairo_perf_micro_la_SOURCES) +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BFD_LIBS = @BFD_LIBS@ +CAIROBOILERPLATE_LIBS = @CAIROBOILERPLATE_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LDFLAGS = @CAIRO_LDFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_LIBTOOL_VERSION_INFO = @CAIRO_LIBTOOL_VERSION_INFO@ +CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@ +CAIRO_NONPKGCONFIG_LIBS = @CAIRO_NONPKGCONFIG_LIBS@ +CAIRO_RELEASE_STATUS = @CAIRO_RELEASE_STATUS@ +CAIRO_REQUIRES = @CAIRO_REQUIRES@ +CAIRO_TEST_MODE = @CAIRO_TEST_MODE@ +CAIRO_TEST_UNDEFINED_LDFLAGS = @CAIRO_TEST_UNDEFINED_LDFLAGS@ +CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@ +CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@ +CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@ +CAIRO_VERSION_SONUM = @CAIRO_VERSION_SONUM@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIND = @FIND@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_CONFIG = @FREETYPE_CONFIG@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ +GOBJECT_LIBS = @GOBJECT_LIBS@ +GREP = @GREP@ +GS = @GS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@ +LIBRSVG_LIBS = @LIBRSVG_LIBS@ +LIBS = @LIBS@ +LIBSPECTRE_CFLAGS = @LIBSPECTRE_CFLAGS@ +LIBSPECTRE_LIBS = @LIBSPECTRE_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LTP = @LTP@ +LTP_GENHTML = @LTP_GENHTML@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ +PKG_CONFIG = @PKG_CONFIG@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_LIBS = @POPPLER_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHLIB_EXT = @SHLIB_EXT@ +SHM_LIBS = @SHM_LIBS@ +SHTOOL = @SHTOOL@ +STRIP = @STRIP@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VERSION = @VERSION@ +XARGS = @XARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cogl_CFLAGS = @cogl_CFLAGS@ +cogl_LIBS = @cogl_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +directfb_CFLAGS = @directfb_CFLAGS@ +directfb_LIBS = @directfb_LIBS@ +docdir = @docdir@ +drm_CFLAGS = @drm_CFLAGS@ +drm_LIBS = @drm_LIBS@ +dvidir = @dvidir@ +egl_CFLAGS = @egl_CFLAGS@ +egl_LIBS = @egl_LIBS@ +exec_prefix = @exec_prefix@ +gallium_DIR = @gallium_DIR@ +gl_CFLAGS = @gl_CFLAGS@ +gl_LIBS = @gl_LIBS@ +glesv2_CFLAGS = @glesv2_CFLAGS@ +glesv2_LIBS = @glesv2_LIBS@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +gtk_CFLAGS = @gtk_CFLAGS@ +gtk_LIBS = @gtk_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mesa_DIR = @mesa_DIR@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pixman_CFLAGS = @pixman_CFLAGS@ +pixman_LIBS = @pixman_LIBS@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +png_REQUIRES = @png_REQUIRES@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_CFLAGS = @pthread_CFLAGS@ +pthread_LIBS = @pthread_LIBS@ +qt_CFLAGS = @qt_CFLAGS@ +qt_LIBS = @qt_LIBS@ +real_pthread_CFLAGS = @real_pthread_CFLAGS@ +real_pthread_LIBS = @real_pthread_LIBS@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +shm_LIBS = @shm_LIBS@ +skia_DIR = @skia_DIR@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xcb_CFLAGS = @xcb_CFLAGS@ +xcb_LIBS = @xcb_LIBS@ +xcb_shm_CFLAGS = @xcb_shm_CFLAGS@ +xcb_shm_LIBS = @xcb_shm_LIBS@ +xlib_CFLAGS = @xlib_CFLAGS@ +xlib_LIBS = @xlib_LIBS@ +xlib_xcb_CFLAGS = @xlib_xcb_CFLAGS@ +xlib_xcb_LIBS = @xlib_xcb_LIBS@ +xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@ +xlib_xrender_LIBS = @xlib_xrender_LIBS@ +BUILT_SOURCES = +CLEANFILES = *.i *.s *.gch $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) \ + $(check_PROGRAMS) +DISTCLEANFILES = $(BUILT_SOURCES) +EXTRA_DIST = +EXTRA_LTLIBRARIES = +MAINTAINERCLEANFILES = Makefile.in +libcairo_perf_micro_sources = \ + cairo-perf-cover.c \ + box-outline.c \ + composite-checker.c \ + disjoint.c \ + fill.c \ + hatching.c \ + hash-table.c \ + line.c \ + a1-line.c \ + long-lines.c \ + mosaic.c \ + paint.c \ + paint-with-alpha.c \ + mask.c \ + pattern_create_radial.c \ + rectangles.c \ + rounded-rectangles.c \ + stroke.c \ + subimage_copy.c \ + tessellate.c \ + text.c \ + tiger.c \ + glyphs.c \ + twin.c \ + unaligned-clip.c \ + wave.c \ + world-map.c \ + zrusin.c \ + long-dashed-lines.c \ + dragon.c \ + pythagoras-tree.c \ + intersections.c \ + many-strokes.c \ + wide-strokes.c \ + many-fills.c \ + wide-fills.c \ + many-curves.c \ + curve.c \ + a1-curve.c \ + spiral.c \ + pixel.c \ + sierpinski.c \ + fill-clip.c \ + $(NULL) + +libcairo_perf_micro_headers = \ + mosaic.h \ + world-map.h \ + zrusin-another.h \ + $(NULL) + +noinst_LTLIBRARIES = libcairo-perf-micro.la +libcairo_perf_micro_la_SOURCES = \ + $(libcairo_perf_micro_sources) \ + $(libcairo_perf_micro_headers) + +AM_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir)/boilerplate \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/perf \ + -I$(top_builddir)/src \ + $(CAIRO_CFLAGS) + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/Makefile.am.common $(top_srcdir)/perf/micro/Makefile.sources $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign perf/micro/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign perf/micro/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libcairo-perf-micro.la: $(libcairo_perf_micro_la_OBJECTS) $(libcairo_perf_micro_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libcairo_perf_micro_la_OBJECTS) $(libcairo_perf_micro_la_LIBADD) $(LIBS) + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a1-curve.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a1-line.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/box-outline.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-perf-cover.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/composite-checker.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curve.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disjoint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dragon.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill-clip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glyphs.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-table.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hatching.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intersections.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/line.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-dashed-lines.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-lines.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/many-curves.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/many-fills.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/many-strokes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mask.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mosaic.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paint-with-alpha.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pattern_create_radial.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixel.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pythagoras-tree.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectangles.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rounded-rectangles.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sierpinski.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spiral.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stroke.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subimage_copy.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tessellate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tiger.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unaligned-clip.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wave.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wide-fills.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wide-strokes.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/world-map.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zrusin.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + echo "$$grn$$dashes"; \ + else \ + echo "$$red$$dashes"; \ + fi; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes$$std"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: all check check-am install install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool \ + clean-noinstLTLIBRARIES ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/perf/micro/a1-curve.c b/perf/micro/a1-curve.c index 594c46d..5fbaf24 100644 --- a/perf/micro/a1-curve.c +++ b/perf/micro/a1-curve.c @@ -45,7 +45,11 @@ do_curve_stroke (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 2.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); double x1 = uniform_random (0, width); double x2 = uniform_random (0, width); double x3 = uniform_random (0, width); @@ -67,8 +71,12 @@ do_curve_fill (cairo_t *cr, int width, int height, int loops) { state = 0xc0ffee; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); + double x0 = uniform_random (0, width); double x1 = uniform_random (0, width); double x2 = uniform_random (0, width); diff --git a/perf/micro/a1-line.c b/perf/micro/a1-line.c index ae86602..98fd17d 100644 --- a/perf/micro/a1-line.c +++ b/perf/micro/a1-line.c @@ -35,9 +35,13 @@ horizontal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, h); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -69,9 +73,13 @@ nearly_horizontal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, h+1); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -104,9 +112,13 @@ vertical (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, w, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -138,9 +150,13 @@ nearly_vertical (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, w+1, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -171,9 +187,13 @@ diagonal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/box-outline.c b/perf/micro/box-outline.c index 1e654eb..6c2a382 100644 --- a/perf/micro/box-outline.c +++ b/perf/micro/box-outline.c @@ -53,9 +53,13 @@ box_outline_stroke (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 1, 0, 0); /* red */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -77,9 +81,13 @@ box_outline_alpha_stroke (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgba (cr, 1, 0, 0, .5); /* red */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -102,9 +110,13 @@ box_outline_aa_stroke (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 1, 0, 0); /* red */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -129,9 +141,13 @@ box_outline_fill (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 0, 1, 0); /* green */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -156,9 +172,13 @@ box_outline_alpha_fill (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgba (cr, 0, 1, 0, .5); /* green */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -184,9 +204,13 @@ box_outline_aa_fill (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 0, 1, 0); /* green */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/composite-checker.c b/perf/micro/composite-checker.c index d6d17ab..ac745f2 100644 --- a/perf/micro/composite-checker.c +++ b/perf/micro/composite-checker.c @@ -58,8 +58,11 @@ do_composite_checker (cairo_t *cr, double yscale = height / (double) SRC_SIZE; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); /* Fill the surface with our background. */ cairo_identity_matrix (cr); cairo_set_source (cr, checkerboard); diff --git a/perf/micro/curve.c b/perf/micro/curve.c index 3b5a163..5bb2d20 100644 --- a/perf/micro/curve.c +++ b/perf/micro/curve.c @@ -44,8 +44,11 @@ do_curve_stroke (cairo_t *cr, int width, int height, int loops) state = 0xc0ffee; cairo_set_line_width (cr, 2.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); double x1 = uniform_random (0, width); double x2 = uniform_random (0, width); double x3 = uniform_random (0, width); @@ -67,8 +70,11 @@ do_curve_fill (cairo_t *cr, int width, int height, int loops) { state = 0xc0ffee; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); double x0 = uniform_random (0, width); double x1 = uniform_random (0, width); double x2 = uniform_random (0, width); diff --git a/perf/micro/disjoint.c b/perf/micro/disjoint.c index 623eb6f..d62c87a 100644 --- a/perf/micro/disjoint.c +++ b/perf/micro/disjoint.c @@ -71,13 +71,17 @@ draw (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 1, 0, 0); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_save (cr); clip (cr, width, height); path (cr, width, height); cairo_fill (cr); cairo_restore (cr); } + cairo_perf_timer_stop (); cairo_restore (cr); diff --git a/perf/micro/dragon.c b/perf/micro/dragon.c index e215eac..7036599 100644 --- a/perf/micro/dragon.c +++ b/perf/micro/dragon.c @@ -104,8 +104,11 @@ do_dragon (cairo_t *cr, int width, int height, int loops) r = .5 * MIN (width, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); pattern = cairo_pattern_create_radial (cx, cy, 0., cx, cy, r); cairo_pattern_add_color_stop_rgb (pattern, 0., .0, .0, .0); cairo_pattern_add_color_stop_rgb (pattern, 0.25, .5, .4, .4); @@ -169,8 +172,11 @@ do_dragon_solid (cairo_t *cr, int width, int height, int loops) cx = cy = .5 * MAX (width, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_set_source_rgb (cr, 0, 0, 0); cairo_paint (cr); diff --git a/perf/micro/fill-clip.c b/perf/micro/fill-clip.c index 2d014ac..149445c 100644 --- a/perf/micro/fill-clip.c +++ b/perf/micro/fill-clip.c @@ -37,8 +37,11 @@ clip_paint (cairo_t *cr, int width, int height, int loops) int y = height/4, h = height/2; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_reset_clip (cr); cairo_rectangle (cr, x, y, w, h); cairo_clip (cr); @@ -57,8 +60,11 @@ rect_fill (cairo_t *cr, int width, int height, int loops) int y = height/4, h = height/2; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_rectangle (cr, x, y, w, h); cairo_fill (cr); } @@ -95,8 +101,11 @@ direct (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); pixman_fill ((uint32_t *)data, stride / sizeof(uint32_t), bpp, x, y, w, h, -1); diff --git a/perf/micro/fill.c b/perf/micro/fill.c index d356c26..7f24702 100644 --- a/perf/micro/fill.c +++ b/perf/micro/fill.c @@ -34,9 +34,13 @@ do_fill (cairo_t *cr, int width, int height, int loops) 0, 2 * M_PI); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -73,9 +77,13 @@ do_fill_annuli (cairo_t *cr, int width, int height, int loops) 2 * M_PI, 0); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -96,9 +104,13 @@ do_fill_eo_noaa (cairo_t *cr, int width, int height, int loops) 0, 2 * M_PI); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/glyphs.c b/perf/micro/glyphs.c index 5f088b2..ebabd9a 100644 --- a/perf/micro/glyphs.c +++ b/perf/micro/glyphs.c @@ -71,8 +71,11 @@ do_glyphs (double font_size, &extents); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); y = 0; do { x = 0; diff --git a/perf/micro/hash-table.c b/perf/micro/hash-table.c index d162917..a08f3ef 100644 --- a/perf/micro/hash-table.c +++ b/perf/micro/hash-table.c @@ -81,8 +81,11 @@ do_hash_table (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); m.xx += 1.0; /* Generate ITER new scaled fonts per loop */ diff --git a/perf/micro/hatching.c b/perf/micro/hatching.c index b51acec..006ca57 100644 --- a/perf/micro/hatching.c +++ b/perf/micro/hatching.c @@ -95,6 +95,7 @@ draw (cairo_t *cr, prepare (cr); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { cairo_save (cr); transform (cr, width, height); @@ -102,6 +103,9 @@ draw (cairo_t *cr, op (cr); cairo_restore (cr); } + + cairo_perf_set_thread_aware (cr, TRUE); + cairo_perf_timer_stop (); cairo_restore (cr); diff --git a/perf/micro/intersections.c b/perf/micro/intersections.c index 57931fa..c4dded0 100644 --- a/perf/micro/intersections.c +++ b/perf/micro/intersections.c @@ -68,8 +68,12 @@ draw_random (cairo_t *cr, cairo_fill_rule_t fill_rule, cairo_close_path (cr); cairo_perf_timer_start (); - while (loops--) + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); cairo_restore (cr); @@ -110,8 +114,13 @@ draw_random_curve (cairo_t *cr, cairo_fill_rule_t fill_rule, cairo_close_path (cr); cairo_perf_timer_start (); - while (loops--) + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } + cairo_perf_timer_stop (); cairo_restore (cr); diff --git a/perf/micro/line.c b/perf/micro/line.c index 3ed5f8d..44dedf2 100644 --- a/perf/micro/line.c +++ b/perf/micro/line.c @@ -35,9 +35,13 @@ horizontal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, h); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -69,9 +73,13 @@ nearly_horizontal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, h+1); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -104,9 +112,13 @@ vertical (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, w, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -138,9 +150,13 @@ nearly_vertical (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, w+1, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -171,9 +187,13 @@ diagonal (cairo_t *cr, int width, int height, int loops) cairo_line_to (cr, width, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/long-dashed-lines.c b/perf/micro/long-dashed-lines.c index ba66a4a..d7a60d3 100644 --- a/perf/micro/long-dashed-lines.c +++ b/perf/micro/long-dashed-lines.c @@ -50,9 +50,13 @@ do_long_dashed_lines (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/long-lines.c b/perf/micro/long-lines.c index a0d134c..632ed9b 100644 --- a/perf/micro/long-lines.c +++ b/perf/micro/long-lines.c @@ -71,8 +71,11 @@ do_long_lines (cairo_t *cr, int width, int height, int loops, long_lines_crop_t dy = outer_height / NUM_LINES; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); for (i = 0; i <= NUM_LINES; i++) { cairo_move_to (cr, 0, 0); cairo_line_to (cr, x, min_y); diff --git a/perf/micro/many-curves.c b/perf/micro/many-curves.c index f985d34..acdf202 100644 --- a/perf/micro/many-curves.c +++ b/perf/micro/many-curves.c @@ -56,9 +56,13 @@ do_many_curves_stroked (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -107,9 +111,13 @@ do_many_curves_filled (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/many-fills.c b/perf/micro/many-fills.c index 9d3fd64..421771d 100644 --- a/perf/micro/many-fills.c +++ b/perf/micro/many-fills.c @@ -58,9 +58,13 @@ do_many_fills_ha (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -82,9 +86,13 @@ do_many_fills_h (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -106,9 +114,13 @@ do_many_fills_va (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -130,9 +142,13 @@ do_many_fills_v (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -159,9 +175,13 @@ do_many_fills (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/many-strokes.c b/perf/micro/many-strokes.c index 9aeb393..1067088 100644 --- a/perf/micro/many-strokes.c +++ b/perf/micro/many-strokes.c @@ -53,9 +53,13 @@ do_many_strokes_ha (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -79,9 +83,13 @@ do_many_strokes_h (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -105,9 +113,13 @@ do_many_strokes_va (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -131,9 +143,13 @@ do_many_strokes_v (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -158,9 +174,13 @@ do_many_strokes (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/mask.c b/perf/micro/mask.c index 11a3ba7..f3215f3 100644 --- a/perf/micro/mask.c +++ b/perf/micro/mask.c @@ -35,9 +35,13 @@ do_mask_solid (cairo_t *cr, int width, int height, int loops) mask = cairo_pattern_create_rgba (0, 0, 0, .5); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -83,9 +87,13 @@ do_mask_image (cairo_t *cr, int width, int height, int loops) cairo_surface_destroy (surface); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -110,9 +118,13 @@ do_mask_image_half (cairo_t *cr, int width, int height, int loops) cairo_pattern_set_matrix (mask, &matrix); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -137,9 +149,13 @@ do_mask_image_double (cairo_t *cr, int width, int height, int loops) cairo_pattern_set_matrix (mask, &matrix); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -162,9 +178,13 @@ do_mask_similar (cairo_t *cr, int width, int height, int loops) cairo_surface_destroy (surface); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -190,9 +210,13 @@ do_mask_similar_half (cairo_t *cr, int width, int height, int loops) cairo_pattern_set_matrix (mask, &matrix); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -218,9 +242,13 @@ do_mask_similar_double (cairo_t *cr, int width, int height, int loops) cairo_pattern_set_matrix (mask, &matrix); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -239,9 +267,13 @@ do_mask_linear (cairo_t *cr, int width, int height, int loops) cairo_pattern_add_color_stop_rgba (mask, 0.0, 0, 0, 0, 1.0); /* 100% */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); @@ -261,9 +293,13 @@ do_mask_radial (cairo_t *cr, int width, int height, int loops) cairo_pattern_add_color_stop_rgba (mask, 0.0, 0, 0, 0, 1.0); /* 100% */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_mask (cr, mask); + } cairo_perf_timer_stop (); diff --git a/perf/micro/mosaic.c b/perf/micro/mosaic.c index ed30ae5..7da7dbf 100644 --- a/perf/micro/mosaic.c +++ b/perf/micro/mosaic.c @@ -118,7 +118,10 @@ mosaic_perform(cairo_t *cr, unsigned flags, int width, int height, int loops) * tessellating them as dictated by the flags. */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); mosaic_region_iter_init (&iter, flags & MOSAIC_CURVE_TO); while (mosaic_next_path (cr, &iter)) { if (flags & MOSAIC_FILL) { @@ -131,6 +134,7 @@ mosaic_perform(cairo_t *cr, unsigned flags, int width, int height, int loops) } } } + cairo_perf_timer_stop (); return cairo_perf_timer_elapsed (); diff --git a/perf/micro/paint-with-alpha.c b/perf/micro/paint-with-alpha.c index 047e35c..b0f35fb 100644 --- a/perf/micro/paint-with-alpha.c +++ b/perf/micro/paint-with-alpha.c @@ -29,9 +29,13 @@ static cairo_time_t do_paint_with_alpha (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_paint_with_alpha (cr, 0.5); + } cairo_perf_timer_stop (); diff --git a/perf/micro/paint.c b/perf/micro/paint.c index 2a59a45..87b0096 100644 --- a/perf/micro/paint.c +++ b/perf/micro/paint.c @@ -29,9 +29,13 @@ static cairo_time_t do_paint (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_paint (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/pattern_create_radial.c b/perf/micro/pattern_create_radial.c index f236ef5..bbb766f 100644 --- a/perf/micro/pattern_create_radial.c +++ b/perf/micro/pattern_create_radial.c @@ -59,11 +59,15 @@ static cairo_time_t do_pattern_create_radial (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { cairo_pattern_t *pattern; int i; + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); + for (i = 0; i < RADIALS_COUNT; i++) { pattern = cairo_pattern_create_radial (radials[i].cx0, radials[i].cy0, diff --git a/perf/micro/pythagoras-tree.c b/perf/micro/pythagoras-tree.c index 9d3ca11..3bb1506 100644 --- a/perf/micro/pythagoras-tree.c +++ b/perf/micro/pythagoras-tree.c @@ -64,8 +64,11 @@ do_pythagoras_tree (cairo_t *cr, int width, int height, int loops) double size = 128; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_save (cr); cairo_translate (cr, 0, height); cairo_scale (cr, 1, -1); diff --git a/perf/micro/rectangles.c b/perf/micro/rectangles.c index 9228a4e..d936cdb 100644 --- a/perf/micro/rectangles.c +++ b/perf/micro/rectangles.c @@ -45,8 +45,11 @@ do_rectangles (cairo_t *cr, int width, int height, int loops) int i; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); for (i = 0; i < RECTANGLE_COUNT; i++) { cairo_rectangle (cr, rects[i].x, rects[i].y, rects[i].width, rects[i].height); @@ -65,8 +68,11 @@ do_rectangles_once (cairo_t *cr, int width, int height, int loops) int i; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); for (i = 0; i < RECTANGLE_COUNT; i++) { cairo_rectangle (cr, rects[i].x, rects[i].y, rects[i].width, rects[i].height); @@ -84,8 +90,11 @@ static cairo_time_t do_rectangle (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_rectangle (cr, 0, 0, width, height); cairo_fill (cr); } diff --git a/perf/micro/rounded-rectangles.c b/perf/micro/rounded-rectangles.c index 1e432dd..b71021a 100644 --- a/perf/micro/rounded-rectangles.c +++ b/perf/micro/rounded-rectangles.c @@ -64,8 +64,11 @@ static cairo_time_t do_rectangle (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); rounded_rectangle (cr, 0, 0, width, height, 3.0); cairo_fill (cr); } @@ -81,8 +84,11 @@ do_rectangles (cairo_t *cr, int width, int height, int loops) int i; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); for (i = 0; i < RECTANGLE_COUNT; i++) { rounded_rectangle (cr, rects[i].x, rects[i].y, @@ -103,8 +109,11 @@ do_rectangles_once (cairo_t *cr, int width, int height, int loops) int i; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); for (i = 0; i < RECTANGLE_COUNT; i++) { rounded_rectangle (cr, rects[i].x, rects[i].y, diff --git a/perf/micro/sierpinski.c b/perf/micro/sierpinski.c index c6f5fad..1231c2b 100644 --- a/perf/micro/sierpinski.c +++ b/perf/micro/sierpinski.c @@ -62,8 +62,11 @@ draw (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 1.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_save (cr); T (cr, t_width); diff --git a/perf/micro/spiral.c b/perf/micro/spiral.c index 87dbcb5..f266066 100644 --- a/perf/micro/spiral.c +++ b/perf/micro/spiral.c @@ -97,8 +97,13 @@ draw_spiral (cairo_t *cr, cairo_close_path (cr); cairo_perf_timer_start (); - while (loops--) + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } + cairo_perf_timer_stop (); cairo_restore (cr); @@ -133,8 +138,13 @@ draw_spiral_box (cairo_t *cr, } cairo_perf_timer_start (); - while (loops--) + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } + cairo_perf_timer_stop (); cairo_restore (cr); @@ -188,8 +198,13 @@ draw_spiral_stroke (cairo_t *cr, } cairo_perf_timer_start (); - while (loops--) + cairo_perf_set_thread_aware (cr, FALSE); + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } + cairo_perf_timer_stop (); cairo_restore (cr); diff --git a/perf/micro/stroke.c b/perf/micro/stroke.c index 4b29547..194074b 100644 --- a/perf/micro/stroke.c +++ b/perf/micro/stroke.c @@ -37,9 +37,13 @@ do_stroke (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, width/5.0); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -75,9 +79,13 @@ do_strokes (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 2.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/subimage_copy.c b/perf/micro/subimage_copy.c index e749c06..a828a0b 100644 --- a/perf/micro/subimage_copy.c +++ b/perf/micro/subimage_copy.c @@ -41,9 +41,13 @@ do_subimage_copy (cairo_t *cr, int width, int height, int loops) cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/tessellate.c b/perf/micro/tessellate.c index b6277fe..f6c836a 100644 --- a/perf/micro/tessellate.c +++ b/perf/micro/tessellate.c @@ -107,14 +107,18 @@ do_tessellate (cairo_t *cr, int num_points, int loops) cairo_line_to (cr, points[i].x, points[i].y); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); /* We'd like to measure just tessellation without * rasterization. For now, we can do that with cairo_in_fill. But * we'll have to be careful since cairo_in_fill might eventually * be optimized to have an implementation that doesn't necessarily * include tessellation. */ - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_in_fill (cr, 50, 50); + } cairo_perf_timer_stop (); diff --git a/perf/micro/text.c b/perf/micro/text.c index cdb3199..da0ccc7 100644 --- a/perf/micro/text.c +++ b/perf/micro/text.c @@ -36,8 +36,11 @@ do_text (cairo_t *cr, int width, int height, int loops) cairo_set_font_size (cr, 9); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); do { cairo_move_to (cr, 0, j++ * 10); cairo_show_text (cr, text + i); diff --git a/perf/micro/tiger.c b/perf/micro/tiger.c index 9e7a941..613f6e0 100644 --- a/perf/micro/tiger.c +++ b/perf/micro/tiger.c @@ -38,8 +38,11 @@ do_tiger (cairo_t *cr, int width, int height, int loops) unsigned int i; cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_identity_matrix (cr); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); diff --git a/perf/micro/twin.c b/perf/micro/twin.c index 99433bd..1f7fd6c 100644 --- a/perf/micro/twin.c +++ b/perf/micro/twin.c @@ -22,8 +22,11 @@ do_twin (cairo_t *cr, CAIRO_FONT_WEIGHT_NORMAL); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); h = 2; for (i = 8; i < 48; i >= 24 ? i+=3 : i++) { cairo_set_font_size (cr, i); diff --git a/perf/micro/unaligned-clip.c b/perf/micro/unaligned-clip.c index 41e327f..a5da5c6 100644 --- a/perf/micro/unaligned-clip.c +++ b/perf/micro/unaligned-clip.c @@ -32,8 +32,11 @@ static cairo_time_t do_unaligned_clip (cairo_t *cr, int width, int height, int loops) { cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_save (cr); /* First a triangular clip that obviously isn't along device-pixel @@ -55,6 +58,7 @@ do_unaligned_clip (cairo_t *cr, int width, int height, int loops) cairo_restore (cr); } + cairo_perf_timer_stop (); return cairo_perf_timer_elapsed (); diff --git a/perf/micro/wave.c b/perf/micro/wave.c index f6e6f74..f8e9783 100644 --- a/perf/micro/wave.c +++ b/perf/micro/wave.c @@ -66,8 +66,11 @@ do_wave (cairo_t *cr, int width, int height, int loops) wave = generate_random_waveform (cr, width, height); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); /* paint outline (and contents) */ cairo_set_source_rgb (cr, 1, 0, 0); cairo_mask_surface (cr, wave, 0, 0); diff --git a/perf/micro/wide-fills.c b/perf/micro/wide-fills.c index 0747e6e..4ae8a0e 100644 --- a/perf/micro/wide-fills.c +++ b/perf/micro/wide-fills.c @@ -58,9 +58,13 @@ do_wide_fills_ha (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -82,9 +86,13 @@ do_wide_fills_h (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -106,9 +114,13 @@ do_wide_fills_va (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -130,9 +142,13 @@ do_wide_fills_v (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); @@ -159,9 +175,13 @@ do_wide_fills (cairo_t *cr, int width, int height, int loops) } cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/wide-strokes.c b/perf/micro/wide-strokes.c index 1413091..a122894 100644 --- a/perf/micro/wide-strokes.c +++ b/perf/micro/wide-strokes.c @@ -53,9 +53,13 @@ do_wide_strokes_ha (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 5.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -79,9 +83,13 @@ do_wide_strokes_h (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 5.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -105,9 +113,13 @@ do_wide_strokes_va (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 5.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -131,9 +143,13 @@ do_wide_strokes_v (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 5.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); @@ -158,9 +174,13 @@ do_wide_strokes (cairo_t *cr, int width, int height, int loops) cairo_set_line_width (cr, 5.); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_stroke_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/perf/micro/world-map.c b/perf/micro/world-map.c index ff22eeb..c240c3b 100644 --- a/perf/micro/world-map.c +++ b/perf/micro/world-map.c @@ -62,8 +62,11 @@ do_world_map (cairo_t *cr, int width, int height, int loops, int mode) cairo_set_line_width (cr, 0.2); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_set_source_rgb (cr, .68, .85, .90); /* lightblue */ cairo_rectangle (cr, 0, 0, 800, 400); cairo_fill (cr); diff --git a/perf/micro/zrusin.c b/perf/micro/zrusin.c index 7d8b004..aeb9b7a 100644 --- a/perf/micro/zrusin.c +++ b/perf/micro/zrusin.c @@ -50,14 +50,18 @@ zrusin_another_tessellate (cairo_t *cr, int width, int height, int loops) zrusin_another_path (cr); cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); /* We'd like to measure just tessellation without * rasterization. For now, we can do that with cairo_in_fill. But * we'll have to be careful since cairo_in_fill might eventually * be optimized to have an implementation that doesn't necessarily * include tessellation. */ - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_in_fill (cr, 50, 50); + } cairo_perf_timer_stop (); @@ -73,9 +77,13 @@ zrusin_another_fill (cairo_t *cr, int width, int height, int loops) cairo_set_source_rgb (cr, 0.0, 0.0, 0.8); /* blue */ cairo_perf_timer_start (); + cairo_perf_set_thread_aware (cr, FALSE); - while (loops--) + while (loops--) { + if (loops == 0) + cairo_perf_set_thread_aware (cr, TRUE); cairo_fill_preserve (cr); + } cairo_perf_timer_stop (); diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..fd53c86 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,33 @@ +.deps +.libs +Makefile +Makefile.in +Makefile.am.features +#Makefile.win32.features +*.gcda +*.gcno +*.la +*.lo +*.loT +*.pc +cairo-features.h +cairo-supported-features.h +cairo.def +*.i +*.s +*.o +*.obj +*.pdb +*.dll +*.manifest +*.ilk +*.exp +*.lib +*~ +.*.sw? +TAGS +tags +check-has-hidden-symbols.i +check-link +check-skiplist +headers-standalone diff --git a/src/Makefile.am b/src/Makefile.am index ef01abb..acf0a82 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -89,7 +89,7 @@ TESTS_ENVIRONMENT = \ $(NULL) TESTS_SH = \ check-def.sh \ - check-doc-syntax.sh\ + check-doc-syntax.sh \ check-headers.sh \ check-plt.sh \ check-preprocessor-syntax.sh \ @@ -100,7 +100,7 @@ else TESTS += check-link$(EXEEXT) endif -EXTRA_DIST += $(TESTS_SH) check-has-hidden-symbols.c +EXTRA_DIST += $(TESTS_SH) check-has-hidden-symbols.c check-doc-syntax.awk check_PROGRAMS += check-link check_link_LDADD = libcairo.la diff --git a/src/Makefile.sources b/src/Makefile.sources index 2320f29..0bf9cd9 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -57,17 +57,21 @@ cairo_private = \ cairo-array-private.h \ cairo-atomic-private.h \ cairo-backend-private.h \ - cairo-box-private.h \ + cairo-box-inline.h \ cairo-boxes-private.h \ cairo-cache-private.h \ + cairo-clip-inline.h \ cairo-clip-private.h \ - cairo-combsort-private.h \ + cairo-combsort-inline.h \ cairo-compiler-private.h \ cairo-compositor-private.h \ + cairo-contour-inline.h \ cairo-contour-private.h \ cairo-composite-rectangles-private.h \ + cairo-damage-private.h \ cairo-default-context-private.h \ cairo-device-private.h \ + cairo-error-inline.h \ cairo-error-private.h \ cairo-fixed-private.h \ cairo-fixed-type-private.h \ @@ -78,7 +82,9 @@ cairo_private = \ cairo-gstate-private.h \ cairo-hash-private.h \ cairo-image-info-private.h \ + cairo-image-surface-inline.h \ cairo-image-surface-private.h \ + cairo-list-inline.h \ cairo-list-private.h \ cairo-malloc-private.h \ cairo-mutex-impl-private.h \ @@ -90,8 +96,10 @@ cairo_private = \ cairo-paginated-surface-private.h \ cairo-path-fixed-private.h \ cairo-path-private.h \ + cairo-pattern-inline.h \ cairo-pattern-private.h \ cairo-private.h \ + cairo-recording-surface-inline.h \ cairo-recording-surface-private.h \ cairo-reference-count-private.h \ cairo-region-private.h \ @@ -101,13 +109,17 @@ cairo_private = \ cairo-spans-private.h \ cairo-spans-compositor-private.h \ cairo-stroke-dash-private.h \ + cairo-surface-inline.h \ cairo-surface-private.h \ cairo-surface-backend-private.h \ cairo-surface-clipper-private.h \ cairo-surface-fallback-private.h \ + cairo-surface-observer-inline.h \ cairo-surface-observer-private.h \ cairo-surface-offset-private.h \ + cairo-surface-subsurface-inline.h \ cairo-surface-subsurface-private.h \ + cairo-surface-snapshot-inline.h \ cairo-surface-snapshot-private.h \ cairo-surface-wrapper-private.h \ cairo-time-private.h \ @@ -142,6 +154,7 @@ cairo_sources = \ cairo-composite-rectangles.c \ cairo-compositor.c \ cairo-contour.c \ + cairo-damage.c \ cairo-debug.c \ cairo-default-context.c \ cairo-device.c \ @@ -165,7 +178,6 @@ cairo_sources = \ cairo-matrix.c \ cairo-mask-compositor.c \ cairo-mesh-pattern-rasterizer.c \ - cairo-mime-surface.c \ cairo-misc.c \ cairo-mono-scan-converter.c \ cairo-mutex.c \ @@ -187,12 +199,14 @@ cairo_sources = \ cairo-polygon.c \ cairo-polygon-intersect.c \ cairo-polygon-reduce.c \ + cairo-raster-source-pattern.c \ cairo-recording-surface.c \ cairo-rectangle.c \ cairo-rectangular-scan-converter.c \ cairo-region.c \ cairo-rtree.c \ cairo-scaled-font.c \ + cairo-shape-mask-compositor.c \ cairo-slope.c \ cairo-spans.c \ cairo-spans-compositor.c \ @@ -207,7 +221,6 @@ cairo_sources = \ cairo-surface-snapshot.c \ cairo-surface-subsurface.c \ cairo-surface-wrapper.c \ - cairo-system.c \ cairo-time.c \ cairo-tor-scan-converter.c \ cairo-tor22-scan-converter.c \ @@ -332,12 +345,22 @@ cairo_quartz_image_sources = cairo-quartz-image-surface.c cairo_quartz_font_sources = cairo-quartz-font.c cairo_win32_headers = cairo-win32.h -cairo_win32_private = cairo-win32-private.h -cairo_win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c - -cairo_win32_font_sources = cairo-win32-font.c +cairo_win32_private = win32/cairo-win32-private.h +cairo_win32_sources = \ + win32/cairo-win32-debug.c \ + win32/cairo-win32-device.c \ + win32/cairo-win32-gdi-compositor.c \ + win32/cairo-win32-system.c \ + win32/cairo-win32-surface.c \ + win32/cairo-win32-display-surface.c \ + win32/cairo-win32-printing-surface.c \ + $(NULL) +cairo_win32_font_sources = \ + win32/cairo-win32-font.c \ + $(NULL) cairo_skia_headers = cairo-skia.h +cairo_skia_private = skia/cairo-skia-private.h cairo_skia_cxx_sources = \ skia/cairo-skia-context.cpp \ skia/cairo-skia-surface.cpp \ @@ -366,8 +389,11 @@ cairo_gl_sources = cairo-gl-composite.c \ cairo-gl-info.c \ cairo-gl-operand.c \ cairo-gl-shaders.c \ + cairo-gl-hairline-stroke.c \ + cairo-gl-msaa-compositor.c \ cairo-gl-spans-compositor.c \ cairo-gl-traps-compositor.c \ + cairo-gl-source.c \ cairo-gl-surface.c cairo_glesv2_headers = $(cairo_gl_headers) @@ -427,3 +453,13 @@ cairo_xml_sources = cairo-xml-surface.c cairo_vg_headers = cairo-vg.h cairo_vg_sources = cairo-vg-surface.c + +cairo_cogl_headers = cairo-cogl.h +cairo_cogl_private = cairo-cogl-private.h \ + cairo-cogl-gradient-private.h \ + cairo-cogl-context-private.h \ + cairo-cogl-utils-private.h +cairo_cogl_sources = cairo-cogl-surface.c \ + cairo-cogl-gradient.c \ + cairo-cogl-context.c \ + cairo-cogl-utils.c diff --git a/src/Makefile.win32.features b/src/Makefile.win32.features index 4b90d64..2274f4a 100644 --- a/src/Makefile.win32.features +++ b/src/Makefile.win32.features @@ -325,6 +325,22 @@ ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1) enabled_cairo_pkgconf += cairo-glesv2.pc endif +unsupported_cairo_headers += $(cairo_cogl_headers) +all_cairo_headers += $(cairo_cogl_headers) +all_cairo_private += $(cairo_cogl_private) +all_cairo_cxx_sources += $(cairo_cogl_cxx_sources) +all_cairo_sources += $(cairo_cogl_sources) +ifeq ($(CAIRO_HAS_COGL_SURFACE),1) +enabled_cairo_headers += $(cairo_cogl_headers) +enabled_cairo_private += $(cairo_cogl_private) +enabled_cairo_cxx_sources += $(cairo_cogl_cxx_sources) +enabled_cairo_sources += $(cairo_cogl_sources) +endif +all_cairo_pkgconf += cairo-cogl.pc +ifeq ($(CAIRO_HAS_COGL_SURFACE),1) +enabled_cairo_pkgconf += cairo-cogl.pc +endif + unsupported_cairo_headers += $(cairo_directfb_headers) all_cairo_headers += $(cairo_directfb_headers) all_cairo_private += $(cairo_directfb_private) diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c index d9edcd7..8516094 100644 --- a/src/cairo-analysis-surface.c +++ b/src/cairo-analysis-surface.c @@ -37,12 +37,13 @@ #include "cairoint.h" #include "cairo-analysis-surface-private.h" +#include "cairo-box-inline.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-paginated-private.h" -#include "cairo-recording-surface-private.h" -#include "cairo-surface-snapshot-private.h" -#include "cairo-surface-subsurface-private.h" +#include "cairo-recording-surface-inline.h" +#include "cairo-surface-snapshot-inline.h" +#include "cairo-surface-subsurface-inline.h" #include "cairo-region-private.h" typedef struct { @@ -170,11 +171,7 @@ _analyze_recording_surface_pattern (cairo_analysis_surface_t *surface, cairo_matrix_multiply (&tmp->ctm, &p2d, &surface->ctm); tmp->has_ctm = ! _cairo_matrix_is_identity (&tmp->ctm); - if (_cairo_surface_is_snapshot (source)) - source = _cairo_surface_snapshot_get_target (source); - if (_cairo_surface_is_subsurface (source)) - source = _cairo_surface_subsurface_get_target (source); - + source = _cairo_surface_get_source (source, NULL); status = _cairo_recording_surface_replay_and_create_regions (source, &tmp->base); analysis_status = tmp->has_unsupported ? CAIRO_INT_STATUS_IMAGE_FALLBACK : CAIRO_INT_STATUS_SUCCESS; @@ -219,6 +216,14 @@ _add_operation (cairo_analysis_surface_t *surface, if (_cairo_matrix_is_integer_translation (&surface->ctm, &tx, &ty)) { rect->x += tx; rect->y += ty; + + tx = _cairo_fixed_from_int (tx); + bbox.p1.x += tx; + bbox.p2.x += tx; + + ty = _cairo_fixed_from_int (ty); + bbox.p1.y += ty; + bbox.p2.y += ty; } else { _cairo_matrix_transform_bounding_box_fixed (&surface->ctm, &bbox, NULL); @@ -247,16 +252,8 @@ _add_operation (cairo_analysis_surface_t *surface, if (surface->first_op) { surface->first_op = FALSE; surface->page_bbox = bbox; - } else { - if (bbox.p1.x < surface->page_bbox.p1.x) - surface->page_bbox.p1.x = bbox.p1.x; - if (bbox.p1.y < surface->page_bbox.p1.y) - surface->page_bbox.p1.y = bbox.p1.y; - if (bbox.p2.x > surface->page_bbox.p2.x) - surface->page_bbox.p2.x = bbox.p2.x; - if (bbox.p2.y > surface->page_bbox.p2.y) - surface->page_bbox.p2.y = bbox.p2.y; - } + } else + _cairo_box_add_box(&surface->page_bbox, &bbox); /* If the operation is completely enclosed within the fallback * region there is no benefit in emitting a native operation as @@ -411,8 +408,7 @@ _cairo_analysis_surface_mask (void *abstract_surface, if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { cairo_surface_t *src_surface = ((cairo_surface_pattern_t *)source)->surface; - if (_cairo_surface_is_snapshot (src_surface)) - src_surface = _cairo_surface_snapshot_get_target (src_surface); + src_surface = _cairo_surface_get_source (src_surface, NULL); if (_cairo_surface_is_recording (src_surface)) { backend_source_status = _analyze_recording_surface_pattern (surface, source); @@ -423,8 +419,7 @@ _cairo_analysis_surface_mask (void *abstract_surface, if (mask->type == CAIRO_PATTERN_TYPE_SURFACE) { cairo_surface_t *mask_surface = ((cairo_surface_pattern_t *)mask)->surface; - if (_cairo_surface_is_snapshot (mask_surface)) - mask_surface = _cairo_surface_snapshot_get_target (mask_surface); + mask_surface = _cairo_surface_get_source (mask_surface, NULL); if (_cairo_surface_is_recording (mask_surface)) { backend_mask_status = _analyze_recording_surface_pattern (surface, mask); @@ -702,6 +697,7 @@ static const cairo_surface_backend_t cairo_analysis_surface_backend = { NULL, /* map_to_image */ NULL, /* unmap */ + NULL, /* source */ NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ @@ -895,6 +891,7 @@ static const cairo_surface_backend_t cairo_null_surface_backend = { NULL, /* map to image */ NULL, /* unmap image*/ + NULL, /* source */ NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ diff --git a/src/cairo-arc.c b/src/cairo-arc.c index c997e5c..5cbd112 100644 --- a/src/cairo-arc.c +++ b/src/cairo-arc.c @@ -133,13 +133,13 @@ _arc_segments_needed (double angle, for some value of h. - "Approximation of circular arcs by cubic poynomials", Michael + "Approximation of circular arcs by cubic polynomials", Michael Goldapp, Computer Aided Geometric Design 8 (1991) 227-238, provides various values of h along with error analysis for each. From that paper, a very practical value of h is: - h = 4/3 * tan(angle/4) + h = 4/3 * R * tan(angle/4) This value does not give the spline with minimal error, but it does provide a very good approximation, (6th-order convergence), and the @@ -217,27 +217,32 @@ _cairo_arc_in_direction (cairo_t *cr, } else if (angle_max != angle_min) { cairo_matrix_t ctm; int i, segments; - double angle, angle_step; + double step; cairo_get_matrix (cr, &ctm); segments = _arc_segments_needed (angle_max - angle_min, radius, &ctm, cairo_get_tolerance (cr)); - angle_step = (angle_max - angle_min) / (double) segments; + step = (angle_max - angle_min) / segments; + segments -= 1; - if (dir == CAIRO_DIRECTION_FORWARD) { - angle = angle_min; - } else { - angle = angle_max; - angle_step = - angle_step; + if (dir == CAIRO_DIRECTION_REVERSE) { + double t; + + t = angle_min; + angle_min = angle_max; + angle_max = t; + + step = -step; } - for (i = 0; i < segments; i++, angle += angle_step) { - _cairo_arc_segment (cr, xc, yc, - radius, - angle, - angle + angle_step); + for (i = 0; i < segments; i++, angle_min += step) { + _cairo_arc_segment (cr, xc, yc, radius, + angle_min, angle_min + step); } + + _cairo_arc_segment (cr, xc, yc, radius, + angle_min, angle_max); } else { cairo_line_to (cr, xc + radius * cos (angle_min), @@ -246,7 +251,7 @@ _cairo_arc_in_direction (cairo_t *cr, } /** - * _cairo_arc_path + * _cairo_arc_path: * @cr: a cairo context * @xc: X position of the center of the arc * @yc: Y position of the center of the arc diff --git a/src/cairo-bentley-ottmann-rectangular.c b/src/cairo-bentley-ottmann-rectangular.c index 3585bee..b69d425 100644 --- a/src/cairo-bentley-ottmann-rectangular.c +++ b/src/cairo-bentley-ottmann-rectangular.c @@ -40,7 +40,7 @@ #include "cairo-boxes-private.h" #include "cairo-error-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-list-private.h" #include "cairo-traps-private.h" @@ -828,14 +828,12 @@ _cairo_bentley_ottmann_tessellate_boxes (const cairo_boxes_t *in, rectangles[j].right.x = box[i].p2.x; rectangles[j].right.dir = -1; - } else if (box[i].p1.x > box[i].p2.x) { + } else { rectangles[j].right.x = box[i].p1.x; rectangles[j].right.dir = 1; rectangles[j].left.x = box[i].p2.x; rectangles[j].left.dir = -1; - } else { - continue; } rectangles[j].left.right = NULL; diff --git a/src/cairo-bentley-ottmann-rectilinear.c b/src/cairo-bentley-ottmann-rectilinear.c index 1edeeb5..7c0be69 100644 --- a/src/cairo-bentley-ottmann-rectilinear.c +++ b/src/cairo-bentley-ottmann-rectilinear.c @@ -39,7 +39,7 @@ #include "cairoint.h" #include "cairo-boxes-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-error-private.h" #include "cairo-traps-private.h" diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c index f30449e..38fe463 100644 --- a/src/cairo-bentley-ottmann.c +++ b/src/cairo-bentley-ottmann.c @@ -40,7 +40,7 @@ #include "cairo-error-private.h" #include "cairo-freelist-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-traps-private.h" #define DEBUG_PRINT_STATE 0 @@ -570,6 +570,13 @@ _cairo_bo_sweep_line_compare_edges (cairo_bo_sweep_line_t *sweep_line, /* compare the edges if not identical */ if (! _line_equal (&a->edge.line, &b->edge.line)) { + if (MAX (a->edge.line.p1.x, a->edge.line.p2.x) < + MIN (b->edge.line.p1.x, b->edge.line.p2.x)) + return -1; + else if (MIN (a->edge.line.p1.x, a->edge.line.p2.x) > + MAX (b->edge.line.p1.x, b->edge.line.p2.x)) + return 1; + cmp = edges_compare_x_for_y (a, b, sweep_line->current_y); if (cmp) return cmp; @@ -1078,6 +1085,10 @@ _cairo_bo_event_queue_insert_if_intersect_below_current_y (cairo_bo_event_queue_ { cairo_bo_point32_t intersection; + if (MAX (left->edge.line.p1.x, left->edge.line.p2.x) <= + MIN (right->edge.line.p1.x, right->edge.line.p2.x)) + return CAIRO_STATUS_SUCCESS; + if (_line_equal (&left->edge.line, &right->edge.line)) return CAIRO_STATUS_SUCCESS; diff --git a/src/cairo-beos-surface.cpp b/src/cairo-beos-surface.cpp index 2e0f42c..c976416 100644 --- a/src/cairo-beos-surface.cpp +++ b/src/cairo-beos-surface.cpp @@ -41,6 +41,7 @@ #include "cairo-beos.h" #include "cairo-error-private.h" +#include "cairo-image-surface-inline.h" #include @@ -61,7 +62,7 @@ * * The BeOS surface is used to render cairo graphics to BeOS views * and bitmaps. - */ + **/ #define CAIRO_INT_STATUS_SUCCESS (cairo_int_status_t)(CAIRO_STATUS_SUCCESS) @@ -318,7 +319,7 @@ _cairo_beos_surface_set_clip_region (cairo_beos_surface_t *surface, cairo_rectangle_int_t rect; cairo_region_get_rectangle (region, i, &rect); - // Have to substract one, because for pixman, the second coordinate + // Have to subtract one, because for pixman, the second coordinate // lies outside the rectangle. bregion.Include (_cairo_rectangle_to_brect (&rect)); } @@ -947,6 +948,8 @@ _cairo_beos_surface_create_internal (BView* view, * The caller must ensure that the view does not get deleted before the surface. * If the view is attached to a bitmap rather than an on-screen window, use * cairo_beos_surface_create_for_bitmap() instead of this function. + * + * Since: TBD **/ cairo_surface_t * cairo_beos_surface_create (BView* view) @@ -970,6 +973,8 @@ cairo_beos_surface_create (BView* view) * * For now, only views that draw to the entire area of bmp are supported. * The view must already be attached to the bitmap. + * + * Since: TBD **/ cairo_surface_t * cairo_beos_surface_create_for_bitmap (BView* view, diff --git a/src/cairo-botor-scan-converter.c b/src/cairo-botor-scan-converter.c index bcebcfb..515305b 100644 --- a/src/cairo-botor-scan-converter.c +++ b/src/cairo-botor-scan-converter.c @@ -43,9 +43,9 @@ #include "cairoint.h" #include "cairo-error-private.h" -#include "cairo-list-private.h" +#include "cairo-list-inline.h" #include "cairo-freelist-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include @@ -238,12 +238,12 @@ line_compute_intersection_x_for_y (const cairo_line_t *line, * X = A_x + (Y - A_y) * A_dx / A_dy * * So the inequality we wish to test is: - * A_x + (Y - A_y) * A_dx / A_dy ??B_x + (Y - B_y) * B_dx / B_dy, - * where ??is our inequality operator. + * A_x + (Y - A_y) * A_dx / A_dy ∘ B_x + (Y - B_y) * B_dx / B_dy, + * where ∘ is our inequality operator. * * By construction, we know that A_dy and B_dy (and (Y - A_y), (Y - B_y)) are * all positive, so we can rearrange it thus without causing a sign change: - * A_dy * B_dy * (A_x - B_x) ??(Y - B_y) * B_dx * A_dy + * A_dy * B_dy * (A_x - B_x) ∘ (Y - B_y) * B_dx * A_dy * - (Y - A_y) * A_dx * B_dy * * Given the assumption that all the deltas fit within 32 bits, we can compute @@ -325,22 +325,22 @@ edges_compare_x_for_y_general (const cairo_edge_t *a, case HAVE_NONE: return 0; case HAVE_DX: - /* A_dy * B_dy * (A_x - B_x) ??0 */ + /* A_dy * B_dy * (A_x - B_x) ∘ 0 */ return dx; /* ady * bdy is positive definite */ case HAVE_ADX: - /* 0 ?? - (Y - A_y) * A_dx * B_dy */ + /* 0 ∘ - (Y - A_y) * A_dx * B_dy */ return adx; /* bdy * (y - a->top.y) is positive definite */ case HAVE_BDX: - /* 0 ??(Y - B_y) * B_dx * A_dy */ + /* 0 ∘ (Y - B_y) * B_dx * A_dy */ return -bdx; /* ady * (y - b->top.y) is positive definite */ case HAVE_ADX_BDX: - /* 0 ??(Y - B_y) * B_dx * A_dy - (Y - A_y) * A_dx * B_dy */ + /* 0 ∘ (Y - B_y) * B_dx * A_dy - (Y - A_y) * A_dx * B_dy */ if ((adx ^ bdx) < 0) { return adx; } else if (a->line.p1.y == b->line.p1.y) { /* common origin */ cairo_int64_t adx_bdy, bdx_ady; - /* ??A_dx * B_dy ??B_dx * A_dy */ + /* ∴ A_dx * B_dy ∘ B_dx * A_dy */ adx_bdy = _cairo_int32x32_64_mul (adx, bdy); bdx_ady = _cairo_int32x32_64_mul (bdx, ady); @@ -349,7 +349,7 @@ edges_compare_x_for_y_general (const cairo_edge_t *a, } else return _cairo_int128_cmp (A, B); case HAVE_DX_ADX: - /* A_dy * (A_x - B_x) ??- (Y - A_y) * A_dx */ + /* A_dy * (A_x - B_x) ∘ - (Y - A_y) * A_dx */ if ((-adx ^ dx) < 0) { return dx; } else { @@ -361,7 +361,7 @@ edges_compare_x_for_y_general (const cairo_edge_t *a, return _cairo_int64_cmp (ady_dx, dy_adx); } case HAVE_DX_BDX: - /* B_dy * (A_x - B_x) ??(Y - B_y) * B_dx */ + /* B_dy * (A_x - B_x) ∘ (Y - B_y) * B_dx */ if ((bdx ^ dx) < 0) { return dx; } else { @@ -389,12 +389,12 @@ edges_compare_x_for_y_general (const cairo_edge_t *a, * X = A_x + (Y - A_y) * A_dx / A_dy * * So the inequality we wish to test is: - * A_x + (Y - A_y) * A_dx / A_dy ??X - * where ??is our inequality operator. + * A_x + (Y - A_y) * A_dx / A_dy ∘ X + * where ∘ is our inequality operator. * * By construction, we know that A_dy (and (Y - A_y)) are * all positive, so we can rearrange it thus without causing a sign change: - * (Y - A_y) * A_dx ??(X - A_x) * A_dy + * (Y - A_y) * A_dx ∘ (X - A_x) * A_dy * * Given the assumption that all the deltas fit within 32 bits, we can compute * this comparison directly using 64 bit arithmetic. @@ -586,7 +586,7 @@ intersect_lines (const edge_t *a, const edge_t *b, * * X = ax + t * adx = bx + s * bdx; * Y = ay + t * ady = by + s * bdy; - * ??t * (ady*bdx - bdy*adx) = bdx * (by - ay) + bdy * (ax - bx) + * ∴ t * (ady*bdx - bdy*adx) = bdx * (by - ay) + bdy * (ax - bx) * => t * L = R * * Therefore we can reject any intersection (under the criteria for @@ -2128,42 +2128,6 @@ botor_add_edge (cairo_botor_scan_converter_t *self, return CAIRO_STATUS_SUCCESS; } -static cairo_status_t -_cairo_botor_scan_converter_add_edge (void *converter, - const cairo_point_t *p1, - const cairo_point_t *p2, - int top, int bottom, - int dir) -{ - cairo_botor_scan_converter_t *self = converter; - cairo_edge_t edge; - - edge.line.p1 = *p1; - edge.line.p2 = *p2; - edge.top = top; - edge.bottom = bottom; - edge.dir = dir; - - return botor_add_edge (self, &edge); -} - -static cairo_status_t -_cairo_botor_scan_converter_add_polygon (void *converter, - const cairo_polygon_t *polygon) -{ - cairo_botor_scan_converter_t *self = converter; - cairo_status_t status; - int i; - - for (i = 0; i < polygon->num_edges; i++) { - status = botor_add_edge (self, &polygon->edges[i]); - if (unlikely (status)) - return status; - } - - return CAIRO_STATUS_SUCCESS; -} - static void _cairo_botor_scan_converter_destroy (void *converter) { diff --git a/src/cairo-box-inline.h b/src/cairo-box-inline.h new file mode 100644 index 0000000..d6b9941 --- /dev/null +++ b/src/cairo-box-inline.h @@ -0,0 +1,121 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2010 Andrea Canciani + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * Contributor(s): + * Andrea Canciani + */ + +#ifndef CAIRO_BOX_H +#define CAIRO_BOX_H + +#include "cairo-types-private.h" +#include "cairo-compiler-private.h" +#include "cairo-fixed-private.h" + +static inline void +_cairo_box_set (cairo_box_t *box, + const cairo_point_t *p1, + const cairo_point_t *p2) +{ + box->p1 = *p1; + box->p2 = *p2; +} + +static inline void +_cairo_box_from_integers (cairo_box_t *box, int x, int y, int w, int h) +{ + box->p1.x = _cairo_fixed_from_int (x); + box->p1.y = _cairo_fixed_from_int (y); + box->p2.x = _cairo_fixed_from_int (x + w); + box->p2.y = _cairo_fixed_from_int (y + h); +} + +/* assumes box->p1 is top-left, p2 bottom-right */ +static inline void +_cairo_box_add_point (cairo_box_t *box, + const cairo_point_t *point) +{ + if (point->x < box->p1.x) + box->p1.x = point->x; + else if (point->x > box->p2.x) + box->p2.x = point->x; + + if (point->y < box->p1.y) + box->p1.y = point->y; + else if (point->y > box->p2.y) + box->p2.y = point->y; +} + +static inline void +_cairo_box_add_box (cairo_box_t *box, + const cairo_box_t *add) +{ + if (add->p1.x < box->p1.x) + box->p1.x = add->p1.x; + if (add->p2.x > box->p2.x) + box->p2.x = add->p2.x; + + if (add->p1.y < box->p1.y) + box->p1.y = add->p1.y; + if (add->p2.y > box->p2.y) + box->p2.y = add->p2.y; +} + +/* assumes box->p1 is top-left, p2 bottom-right */ +static inline cairo_bool_t +_cairo_box_contains_point (const cairo_box_t *box, + const cairo_point_t *point) +{ + return box->p1.x <= point->x && point->x <= box->p2.x && + box->p1.y <= point->y && point->y <= box->p2.y; +} + +static inline cairo_bool_t +_cairo_box_is_pixel_aligned (const cairo_box_t *box) +{ +#if CAIRO_FIXED_FRAC_BITS <= 8 && 0 + return ((box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 | + (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 | + (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 | + (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0; +#else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */ + cairo_fixed_t f; + + f = 0; + f |= box->p1.x & CAIRO_FIXED_FRAC_MASK; + f |= box->p1.y & CAIRO_FIXED_FRAC_MASK; + f |= box->p2.x & CAIRO_FIXED_FRAC_MASK; + f |= box->p2.y & CAIRO_FIXED_FRAC_MASK; + + return f == 0; +#endif +} + +#endif /* CAIRO_BOX_H */ diff --git a/src/cairo-boxes-intersect.c b/src/cairo-boxes-intersect.c index dd4c241..96ae663 100644 --- a/src/cairo-boxes-intersect.c +++ b/src/cairo-boxes-intersect.c @@ -41,7 +41,7 @@ #include "cairo-boxes-private.h" #include "cairo-error-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-list-private.h" #include diff --git a/src/cairo-boxes-private.h b/src/cairo-boxes-private.h index 57d1228..d1f9dfc 100644 --- a/src/cairo-boxes-private.h +++ b/src/cairo-boxes-private.h @@ -95,14 +95,6 @@ _cairo_boxes_to_array (const cairo_boxes_t *boxes, int *num_boxes, cairo_bool_t force_allocation); -static inline void -_cairo_boxes_free_array (const cairo_boxes_t *boxes, - cairo_box_t *box) -{ - if (box != boxes->chunks.base) - free(box); -} - cairo_private cairo_status_t _cairo_boxes_intersect (const cairo_boxes_t *a, const cairo_boxes_t *b, @@ -116,6 +108,11 @@ _cairo_boxes_for_each_box (cairo_boxes_t *boxes, cairo_bool_t (*func) (cairo_box_t *box, void *data), void *data); +cairo_private cairo_status_t +_cairo_rasterise_polygon_to_boxes (cairo_polygon_t *polygon, + cairo_fill_rule_t fill_rule, + cairo_boxes_t *boxes); + cairo_private void _cairo_boxes_fini (cairo_boxes_t *boxes); diff --git a/src/cairo-boxes.c b/src/cairo-boxes.c index 182601a..63b68dd 100644 --- a/src/cairo-boxes.c +++ b/src/cairo-boxes.c @@ -33,7 +33,7 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" #include "cairo-error-private.h" @@ -373,6 +373,65 @@ _cairo_boxes_for_each_box (cairo_boxes_t *boxes, return TRUE; } +struct cairo_box_renderer { + cairo_span_renderer_t base; + cairo_boxes_t *boxes; +}; + +static cairo_status_t +span_to_boxes (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + struct cairo_box_renderer *r = abstract_renderer; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + cairo_box_t box; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + box.p1.y = _cairo_fixed_from_int (y); + box.p2.y = _cairo_fixed_from_int (y + h); + do { + if (spans[0].coverage) { + box.p1.x = _cairo_fixed_from_int(spans[0].x); + box.p2.x = _cairo_fixed_from_int(spans[1].x); + status = _cairo_boxes_add (r->boxes, CAIRO_ANTIALIAS_DEFAULT, &box); + } + spans++; + } while (--num_spans > 1 && status == CAIRO_STATUS_SUCCESS); + + return status; +} + +cairo_status_t +_cairo_rasterise_polygon_to_boxes (cairo_polygon_t *polygon, + cairo_fill_rule_t fill_rule, + cairo_boxes_t *boxes) +{ + struct cairo_box_renderer renderer; + cairo_scan_converter_t *converter; + cairo_int_status_t status; + cairo_rectangle_int_t r; + + TRACE ((stderr, "%s: fill_rule=%d\n", __FUNCTION__, fill_rule)); + + _cairo_box_round_to_rectangle (&polygon->extents, &r); + converter = _cairo_mono_scan_converter_create (r.x, r.y, + r.x + r.width, + r.y + r.height, + fill_rule); + status = _cairo_mono_scan_converter_add_polygon (converter, polygon); + if (unlikely (status)) + goto cleanup_converter; + + renderer.boxes = boxes; + renderer.base.render_rows = span_to_boxes; + + status = converter->generate (converter, &renderer.base); +cleanup_converter: + converter->destroy (converter); + return status; +} void _cairo_debug_print_boxes (FILE *stream, const cairo_boxes_t *boxes) diff --git a/src/cairo-clip-boxes.c b/src/cairo-clip-boxes.c index f42b53d..bbb4197 100644 --- a/src/cairo-clip-boxes.c +++ b/src/cairo-clip-boxes.c @@ -41,7 +41,8 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" @@ -82,13 +83,11 @@ _cairo_clip_contains_rectangle_box (const cairo_clip_t *clip, if (clip->path) return FALSE; - if (clip->extents.x > rect->x || - clip->extents.y > rect->y || - clip->extents.x + clip->extents.width < rect->x + rect->width || - clip->extents.y + clip->extents.height < rect->y + rect->height) - { + if (! _cairo_rectangle_contains_rectangle (&clip->extents, rect)) return FALSE; - } + + if (clip->num_boxes == 0) + return TRUE; /* Check for a clip-box that wholly contains the rectangle */ for (i = 0; i < clip->num_boxes; i++) { diff --git a/src/cairo-clip-inline.h b/src/cairo-clip-inline.h new file mode 100644 index 0000000..a9f2326 --- /dev/null +++ b/src/cairo-clip-inline.h @@ -0,0 +1,83 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Kristian Høgsberg + * Chris Wilson + */ + +#ifndef CAIRO_CLIP_INLINE_H +#define CAIRO_CLIP_INLINE_H + +#include "cairo-clip-private.h" + +static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip) +{ + return clip == &__cairo_clip_all; +} + +static inline cairo_clip_t * +_cairo_clip_set_all_clipped (cairo_clip_t *clip) +{ + _cairo_clip_destroy (clip); + return (cairo_clip_t *) &__cairo_clip_all; +} + +static inline cairo_clip_t * +_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip, + const cairo_rectangle_int_t *r) +{ + return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r); +} + +static inline cairo_clip_t * +_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip, + const cairo_clip_t *other) +{ + return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other); +} + +static inline void +_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) +{ + _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes); + clip->boxes = NULL; + clip->num_boxes = 0; +} + +static inline void +_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) +{ + clip->boxes = boxes->chunks.base; + clip->num_boxes = boxes->num_boxes; +} + +#endif /* CAIRO_CLIP_INLINE_H */ diff --git a/src/cairo-clip-polygon.c b/src/cairo-clip-polygon.c index 0e1968d..f40faef 100644 --- a/src/cairo-clip-polygon.c +++ b/src/cairo-clip-polygon.c @@ -36,6 +36,7 @@ */ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" @@ -88,22 +89,31 @@ _cairo_clip_get_polygon (const cairo_clip_t *clip, if (! can_convert_to_polygon (clip)) return CAIRO_INT_STATUS_UNSUPPORTED; - _cairo_polygon_init_with_clip (polygon, clip); + if (clip->num_boxes < 2) + _cairo_polygon_init_with_clip (polygon, clip); + else + _cairo_polygon_init_with_clip (polygon, NULL); clip_path = clip->path; + *fill_rule = clip_path->fill_rule; + *antialias = clip_path->antialias; + status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, clip_path->tolerance, polygon); - if (unlikely (status)) { - _cairo_polygon_fini (polygon); - return status; + if (unlikely (status)) + goto err; + + if (clip->num_boxes > 1) { + status = _cairo_polygon_intersect_with_boxes (polygon, fill_rule, + clip->boxes, clip->num_boxes); + if (unlikely (status)) + goto err; } polygon->limits = NULL; polygon->num_limits = 0; - *fill_rule = clip_path->fill_rule; - *antialias = clip_path->antialias; while ((clip_path = clip_path->prev) != NULL) { cairo_polygon_t next; @@ -115,15 +125,17 @@ _cairo_clip_get_polygon (const cairo_clip_t *clip, status = _cairo_polygon_intersect (polygon, *fill_rule, &next, clip_path->fill_rule); _cairo_polygon_fini (&next); - if (unlikely (status)) { - _cairo_polygon_fini (polygon); - return status; - } + if (unlikely (status)) + goto err; *fill_rule = CAIRO_FILL_RULE_WINDING; } return CAIRO_STATUS_SUCCESS; + +err: + _cairo_polygon_fini (polygon); + return status; } cairo_bool_t diff --git a/src/cairo-clip-private.h b/src/cairo-clip-private.h index aaf16f3..5fc05a6 100644 --- a/src/cairo-clip-private.h +++ b/src/cairo-clip-private.h @@ -73,6 +73,9 @@ struct _cairo_clip { cairo_private cairo_clip_t * _cairo_clip_create (void); +cairo_private cairo_clip_path_t * +_cairo_clip_path_reference (cairo_clip_path_t *clip_path); + cairo_private void _cairo_clip_path_destroy (cairo_clip_path_t *clip_path); @@ -81,18 +84,6 @@ _cairo_clip_destroy (cairo_clip_t *clip); cairo_private extern const cairo_clip_t __cairo_clip_all; -static inline cairo_bool_t _cairo_clip_is_all_clipped(const cairo_clip_t *clip) -{ - return clip == &__cairo_clip_all; -} - -static inline cairo_clip_t * -_cairo_clip_set_all_clipped (cairo_clip_t *clip) -{ - _cairo_clip_destroy (clip); - return (cairo_clip_t *) &__cairo_clip_all; -} - cairo_private cairo_clip_t * _cairo_clip_copy (const cairo_clip_t *clip); @@ -100,6 +91,9 @@ cairo_private cairo_clip_t * _cairo_clip_copy_region (const cairo_clip_t *clip); cairo_private cairo_clip_t * +_cairo_clip_copy_path (const cairo_clip_t *clip); + +cairo_private cairo_clip_t * _cairo_clip_translate (cairo_clip_t *clip, int tx, int ty); cairo_private cairo_clip_t * @@ -116,25 +110,10 @@ cairo_private cairo_clip_t * _cairo_clip_intersect_rectangle (cairo_clip_t *clip, const cairo_rectangle_int_t *rectangle); -static inline cairo_clip_t * -_cairo_clip_copy_intersect_rectangle (const cairo_clip_t *clip, - const cairo_rectangle_int_t *r) -{ - return _cairo_clip_intersect_rectangle (_cairo_clip_copy (clip), r); -} - cairo_private cairo_clip_t * _cairo_clip_intersect_clip (cairo_clip_t *clip, const cairo_clip_t *other); -static inline cairo_clip_t * -_cairo_clip_copy_intersect_clip (const cairo_clip_t *clip, - const cairo_clip_t *other) -{ - return _cairo_clip_intersect_clip (_cairo_clip_copy (clip), other); -} - - cairo_private cairo_clip_t * _cairo_clip_intersect_box (cairo_clip_t *clip, const cairo_box_t *box); @@ -172,21 +151,6 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, cairo_surface_t *dst, int dst_x, int dst_y); -static inline void -_cairo_clip_steal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) -{ - _cairo_boxes_init_for_array (boxes, clip->boxes, clip->num_boxes); - clip->boxes = NULL; - clip->num_boxes = 0; -} - -static inline void -_cairo_clip_unsteal_boxes (cairo_clip_t *clip, cairo_boxes_t *boxes) -{ - clip->boxes = boxes->chunks.base; - clip->num_boxes = boxes->num_boxes; -} - cairo_private cairo_clip_t * _cairo_clip_from_boxes (const cairo_boxes_t *boxes); diff --git a/src/cairo-clip-surface.c b/src/cairo-clip-surface.c index 244e7f2..fff9724 100644 --- a/src/cairo-clip-surface.c +++ b/src/cairo-clip-surface.c @@ -54,8 +54,8 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, cairo_surface_t *dst, int dst_x, int dst_y) { - cairo_clip_path_t *clip_path; cairo_clip_path_t *copy_path; + cairo_clip_path_t *clip_path; cairo_clip_t *copy; cairo_status_t status = CAIRO_STATUS_SUCCESS; @@ -63,14 +63,16 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, copy_path = copy->path; copy->path = NULL; - if (copy_path == NULL) { - assert (copy->num_boxes); + if (copy->boxes) { status = _cairo_surface_paint (dst, CAIRO_OPERATOR_IN, &_cairo_pattern_white.base, copy); } + clip = NULL; + if (_cairo_clip_is_region (copy)) + clip = copy; clip_path = copy_path; while (status == CAIRO_STATUS_SUCCESS && clip_path) { status = _cairo_surface_fill (dst, @@ -80,7 +82,7 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, clip_path->fill_rule, clip_path->tolerance, clip_path->antialias, - copy); + clip); clip_path = clip_path->prev; } @@ -89,6 +91,33 @@ _cairo_clip_combine_with_surface (const cairo_clip_t *clip, return status; } +static cairo_status_t +_cairo_path_fixed_add_box (cairo_path_fixed_t *path, + const cairo_box_t *box, + cairo_fixed_t fx, + cairo_fixed_t fy) +{ + cairo_status_t status; + + status = _cairo_path_fixed_move_to (path, box->p1.x + fx, box->p1.y + fy); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_line_to (path, box->p2.x + fx, box->p1.y + fy); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_line_to (path, box->p2.x + fx, box->p2.y + fy); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_line_to (path, box->p1.x + fx, box->p2.y + fy); + if (unlikely (status)) + return status; + + return _cairo_path_fixed_close_path (path); +} + cairo_surface_t * _cairo_clip_get_surface (const cairo_clip_t *clip, cairo_surface_t *target, @@ -96,16 +125,51 @@ _cairo_clip_get_surface (const cairo_clip_t *clip, { cairo_surface_t *surface; cairo_status_t status; - cairo_clip_t *copy; + cairo_clip_t *copy, *region; cairo_clip_path_t *copy_path, *clip_path; - surface = _cairo_surface_create_similar_solid (target, - CAIRO_CONTENT_ALPHA, - clip->extents.width, - clip->extents.height, - CAIRO_COLOR_WHITE); - if (unlikely (surface->status)) - return surface; + if (clip->num_boxes) { + cairo_path_fixed_t path; + int i; + + surface = _cairo_surface_create_similar_solid (target, + CAIRO_CONTENT_ALPHA, + clip->extents.width, + clip->extents.height, + CAIRO_COLOR_TRANSPARENT); + if (unlikely (surface->status)) + return surface; + + _cairo_path_fixed_init (&path); + status = CAIRO_STATUS_SUCCESS; + for (i = 0; status == CAIRO_STATUS_SUCCESS && i < clip->num_boxes; i++) { + status = _cairo_path_fixed_add_box (&path, &clip->boxes[i], + -_cairo_fixed_from_int (clip->extents.x), + -_cairo_fixed_from_int (clip->extents.y)); + } + if (status == CAIRO_STATUS_SUCCESS) + status = _cairo_surface_fill (surface, + CAIRO_OPERATOR_ADD, + &_cairo_pattern_white.base, + &path, + CAIRO_FILL_RULE_WINDING, + 1., + CAIRO_ANTIALIAS_DEFAULT, + NULL); + _cairo_path_fixed_fini (&path); + if (unlikely (status)) { + cairo_surface_destroy (surface); + return _cairo_surface_create_in_error (status); + } + } else { + surface = _cairo_surface_create_similar_solid (target, + CAIRO_CONTENT_ALPHA, + clip->extents.width, + clip->extents.height, + CAIRO_COLOR_WHITE); + if (unlikely (surface->status)) + return surface; + } copy = _cairo_clip_copy_with_translation (clip, -clip->extents.x, @@ -113,6 +177,10 @@ _cairo_clip_get_surface (const cairo_clip_t *clip, copy_path = copy->path; copy->path = NULL; + region = copy; + if (! _cairo_clip_is_region (copy)) + region = _cairo_clip_copy_region (copy); + status = CAIRO_STATUS_SUCCESS; clip_path = copy_path; while (status == CAIRO_STATUS_SUCCESS && clip_path) { @@ -123,12 +191,14 @@ _cairo_clip_get_surface (const cairo_clip_t *clip, clip_path->fill_rule, clip_path->tolerance, clip_path->antialias, - copy); + region); clip_path = clip_path->prev; } copy->path = copy_path; _cairo_clip_destroy (copy); + if (region != copy) + _cairo_clip_destroy (region); if (unlikely (status)) { cairo_surface_destroy (surface); diff --git a/src/cairo-clip.c b/src/cairo-clip.c index c89e8be..bd70c06 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -40,6 +40,7 @@ */ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" @@ -74,7 +75,7 @@ _cairo_clip_path_create (cairo_clip_t *clip) return clip_path; } -static cairo_clip_path_t * +cairo_clip_path_t * _cairo_clip_path_reference (cairo_clip_path_t *clip_path) { assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&clip_path->ref_count)); @@ -174,6 +175,24 @@ _cairo_clip_copy (const cairo_clip_t *clip) } cairo_clip_t * +_cairo_clip_copy_path (const cairo_clip_t *clip) +{ + cairo_clip_t *copy; + + if (clip == NULL || _cairo_clip_is_all_clipped (clip)) + return (cairo_clip_t *) clip; + + assert (clip->num_boxes); + + copy = _cairo_clip_create (); + copy->extents = clip->extents; + if (clip->path) + copy->path = _cairo_clip_path_reference (clip->path); + + return copy; +} + +cairo_clip_t * _cairo_clip_copy_region (const cairo_clip_t *clip) { cairo_clip_t *copy; diff --git a/src/cairo-cogl-context-private.h b/src/cairo-cogl-context-private.h new file mode 100644 index 0000000..0a7185e --- /dev/null +++ b/src/cairo-cogl-context-private.h @@ -0,0 +1,52 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +#ifndef CAIRO_COGL_CONTEXT_PRIVATE_H +#define CAIRO_COGL_CONTEXT_PRIVATE_H + +#include "cairo-default-context-private.h" +#include "cairo-cogl-private.h" + +typedef struct _cairo_cogl_context { + cairo_default_context_t base; + + cairo_cogl_device_t *dev; + int path_ctm_age; + cairo_path_fixed_t user_path; + + cairo_bool_t path_is_rectangle; + double x, y, width, height; +} cairo_cogl_context_t; + +cairo_t * +_cairo_cogl_context_create (void *target); + +#endif /* CAIRO_COGL_CONTEXT_PRIVATE_H */ diff --git a/src/cairo-cogl-context.c b/src/cairo-cogl-context.c new file mode 100644 index 0000000..0116b0a --- /dev/null +++ b/src/cairo-cogl-context.c @@ -0,0 +1,822 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +/* so long as we can verify that the ctm doesn't change multiple times + * during the construction of a path we can build a shadow + * #cairo_path_fixed_t in user coordinates that we can use to create a + * hash value for caching tessellations of that path. + * + * We need to hook into all the points where the ctm can be changed + * so we can bump a cr->path_ctm_age counter. + * + * We need to hook into all the points where the path can be modified + * so we can catch the start of a path and reset the cr->path_ctm_age + * counter at that point. + * + * When a draw operation is hit we can then check that the + * path_ctm_age == 0 and if so we create a hash of the path. + * + * We use this hash to lookup a #cairo_cogl_path_meta_t struct which + * may contain tessellated triangles for the path or may just contain + * a count of how many times the path has been re-seen (we only cache + * tessellated triangles if there is evidence that the path is being + * used multiple times because there is a cost involved in allocating + * a separate buffer for the triangles). + */ + +#include "cairoint.h" + +#include "cairo-cogl-context-private.h" +#include "cairo-freed-pool-private.h" +#include "cairo-arc-private.h" +#include "cairo-path-fixed-private.h" + +#include + +static freed_pool_t context_pool; + +void +_cairo_cogl_context_reset_static_data (void) +{ + _freed_pool_reset (&context_pool); +} + +static cairo_status_t +_cairo_cogl_context_rectangle_real (cairo_cogl_context_t *cr, + double x, double y, + double width, double height) +{ + cairo_status_t status; + status = cr->dev->backend_parent.rectangle (cr, x, y, width, height); + if (unlikely (status)) + return status; + + return _cairo_cogl_path_fixed_rectangle (&cr->user_path, + _cairo_fixed_from_double (x), + _cairo_fixed_from_double (y), + _cairo_fixed_from_double (width), + _cairo_fixed_from_double (height)); +} + +/* The idea here is that we have a simplified way of tracking rectangle paths + * because rectangles are perhaps the most common shape drawn with cairo. + * + * Basically we have a speculative store for a rectangle path that doesn't + * need to use the #cairo_path_fixed_t api to describe a rectangle in terms of + * (move_to,rel_line_to,rel_line_to,_rel_line_to,close) because if you profile + * heavy rectangle drawing with Cairo that process can be overly expensive. + * + * If the user asks to add more than just a rectangle to their current path + * then we "flush" any speculative rectangle stored into the current path + * before continuing to append their operations. + * + * In addition to the speculative store cairo-cogl also has a fast-path + * fill_rectangle drawing operation that further aims to minimize the cost + * of drawing rectangles. + */ +static cairo_status_t +_flush_cr_rectangle (cairo_cogl_context_t *cr) +{ + if (!cr->path_is_rectangle) + return CAIRO_STATUS_SUCCESS; + + cr->path_is_rectangle = FALSE; + return _cairo_cogl_context_rectangle_real (cr, cr->x, cr->y, cr->width, cr->height); +} + +static cairo_status_t +_cairo_cogl_context_restore (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.restore (abstract_cr); +} + +static cairo_status_t +_cairo_cogl_context_translate (void *abstract_cr, double tx, double ty) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.translate (abstract_cr, tx, ty); +} + +static cairo_status_t +_cairo_cogl_context_scale (void *abstract_cr, double sx, double sy) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.scale (abstract_cr, sx, sy); +} + +static cairo_status_t +_cairo_cogl_context_rotate (void *abstract_cr, double theta) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.rotate (abstract_cr, theta); +} + +static cairo_status_t +_cairo_cogl_context_transform (void *abstract_cr, const cairo_matrix_t *matrix) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.transform (abstract_cr, matrix); +} + +static cairo_status_t +_cairo_cogl_context_set_matrix (void *abstract_cr, const cairo_matrix_t *matrix) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.set_matrix (abstract_cr, matrix); +} + +static cairo_status_t +_cairo_cogl_context_set_identity_matrix (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + cr->path_ctm_age++; + return cr->dev->backend_parent.set_identity_matrix (abstract_cr); +} + +static cairo_status_t +_cairo_cogl_context_new_path (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.new_path (abstract_cr); + if (unlikely (status)) + return status; + + _cairo_path_fixed_fini (&cr->user_path); + _cairo_path_fixed_init (&cr->user_path); + cr->path_is_rectangle = FALSE; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_new_sub_path (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.new_sub_path (abstract_cr); + if (unlikely (status)) + return status; + + _cairo_path_fixed_new_sub_path (&cr->user_path); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_move_to (void *abstract_cr, double x, double y) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t x_fixed, y_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.move_to (abstract_cr, x, y); + if (unlikely (status)) + return status; + + x_fixed = _cairo_fixed_from_double (x); + y_fixed = _cairo_fixed_from_double (y); + + return _cairo_path_fixed_move_to (&cr->user_path, x_fixed, y_fixed); +} + +static cairo_status_t +_cairo_cogl_context_line_to (void *abstract_cr, double x, double y) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t x_fixed, y_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.line_to (abstract_cr, x, y); + if (unlikely (status)) + return status; + + x_fixed = _cairo_fixed_from_double (x); + y_fixed = _cairo_fixed_from_double (y); + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + return _cairo_path_fixed_line_to (&cr->user_path, x_fixed, y_fixed); +} + +static cairo_status_t +_cairo_cogl_context_curve_to (void *abstract_cr, + double x1, double y1, + double x2, double y2, + double x3, double y3) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t x1_fixed, y1_fixed; + cairo_fixed_t x2_fixed, y2_fixed; + cairo_fixed_t x3_fixed, y3_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.curve_to (abstract_cr, x1, y1, x2, y2, x3, y3); + if (unlikely (status)) + return status; + + x1_fixed = _cairo_fixed_from_double (x1); + y1_fixed = _cairo_fixed_from_double (y1); + + x2_fixed = _cairo_fixed_from_double (x2); + y2_fixed = _cairo_fixed_from_double (y2); + + x3_fixed = _cairo_fixed_from_double (x3); + y3_fixed = _cairo_fixed_from_double (y3); + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + return _cairo_path_fixed_curve_to (&cr->user_path, + x1_fixed, y1_fixed, + x2_fixed, y2_fixed, + x3_fixed, y3_fixed); +} + +static cairo_status_t +_cairo_cogl_context_arc (void *abstract_cr, + double xc, double yc, double radius, + double angle1, double angle2, + cairo_bool_t forward) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.arc (abstract_cr, xc, yc, radius, angle1, angle2, forward); + if (unlikely (status)) + return status; + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + /* Do nothing, successfully, if radius is <= 0 */ + if (radius <= 0.0) { + cairo_fixed_t x_fixed, y_fixed; + + x_fixed = _cairo_fixed_from_double (xc); + y_fixed = _cairo_fixed_from_double (yc); + status = _cairo_path_fixed_line_to (&cr->user_path, x_fixed, y_fixed); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_line_to (&cr->user_path, x_fixed, y_fixed); + if (unlikely (status)) + return status; + + return CAIRO_STATUS_SUCCESS; + } + + status = _cairo_cogl_context_line_to (cr, + xc + radius * cos (angle1), + yc + radius * sin (angle1)); + + if (unlikely (status)) + return status; + + if (forward) + _cairo_arc_path (&cr->base.base, xc, yc, radius, angle1, angle2); + else + _cairo_arc_path_negative (&cr->base.base, xc, yc, radius, angle1, angle2); + + return CAIRO_STATUS_SUCCESS; /* any error will have already been set on cr */ +} + +static cairo_status_t +_cairo_cogl_context_rel_move_to (void *abstract_cr, double dx, double dy) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t dx_fixed, dy_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.rel_move_to (abstract_cr, dx, dy); + if (unlikely (status)) + return status; + + dx_fixed = _cairo_fixed_from_double (dx); + dy_fixed = _cairo_fixed_from_double (dy); + + return _cairo_path_fixed_rel_move_to (&cr->user_path, dx_fixed, dy_fixed); +} + +static cairo_status_t +_cairo_cogl_context_rel_line_to (void *abstract_cr, double dx, double dy) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t dx_fixed, dy_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.rel_line_to (abstract_cr, dx, dy); + if (unlikely (status)) + return status; + + dx_fixed = _cairo_fixed_from_double (dx); + dy_fixed = _cairo_fixed_from_double (dy); + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + return _cairo_path_fixed_rel_line_to (&cr->user_path, dx_fixed, dy_fixed); +} + + +static cairo_status_t +_cairo_cogl_context_rel_curve_to (void *abstract_cr, + double dx1, double dy1, + double dx2, double dy2, + double dx3, double dy3) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_fixed_t dx1_fixed, dy1_fixed; + cairo_fixed_t dx2_fixed, dy2_fixed; + cairo_fixed_t dx3_fixed, dy3_fixed; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.rel_curve_to (abstract_cr, dx1, dy1, dx2, dy2, dx3, dy3); + if (unlikely (status)) + return status; + + dx1_fixed = _cairo_fixed_from_double (dx1); + dy1_fixed = _cairo_fixed_from_double (dy1); + + dx2_fixed = _cairo_fixed_from_double (dx2); + dy2_fixed = _cairo_fixed_from_double (dy2); + + dx3_fixed = _cairo_fixed_from_double (dx3); + dy3_fixed = _cairo_fixed_from_double (dy3); + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + return _cairo_path_fixed_rel_curve_to (&cr->user_path, + dx1_fixed, dy1_fixed, + dx2_fixed, dy2_fixed, + dx3_fixed, dy3_fixed); +} + +#if 0 +static cairo_status_t +_cairo_cogl_context_arc_to (void *abstract_cr, + double x1, double y1, + double x2, double y2, + double radius) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.arc_to (abstract_cr, x1, y1, x2, y2, radius); + if (unlikely (status)) + return status; +#warning "FIXME" +} + +static cairo_status_t +_cairo_cogl_rel_arc_to (void *cr, + double dx1, double dy1, + double dx2, double dy2, + double radius) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.rel_arc_to (abstract_cr, dx1, dy2, dx2, dy2, radius); + if (unlikely (status)) + return status; +#warning "FIXME" +} +#endif + +static cairo_status_t +_cairo_cogl_context_close_path (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + if (cr->path_is_rectangle) { + status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + status = cr->dev->backend_parent.close_path (abstract_cr); + if (unlikely (status)) + return status; + + if (cr->user_path.buf.base.num_ops == 0) + cr->path_ctm_age = 0; + + return _cairo_path_fixed_close_path (&cr->user_path); +} + +static cairo_status_t +_cairo_cogl_context_rectangle (void *abstract_cr, + double x, double y, + double width, double height) +{ + cairo_cogl_context_t *cr = abstract_cr; + + if (cr->user_path.buf.base.num_ops == 0) { + cr->path_ctm_age = 0; + +#if 1 + /* XXX: Since drawing rectangles is so common we have a + * fast-path for drawing a single rectangle. */ + cr->x = x; + cr->y = y; + cr->width = width; + cr->height = height; + cr->path_is_rectangle = TRUE; + return CAIRO_STATUS_SUCCESS; +#endif + } + + if (cr->path_is_rectangle) { + cairo_status_t status = _flush_cr_rectangle (cr); + if (unlikely (status)) + return status; + } + + return _cairo_cogl_context_rectangle_real (cr, x, y, width, height); +} + +/* Since the surface backend drawing operator functions don't get + * passed the current #cairo_t context we don't have a good way + * to get our user-coordinates path into our surface operator + * functions. + * + * For now we use this function to set side band data on the surface + * itself. + */ +static void +_cairo_cogl_surface_set_side_band_state (cairo_cogl_surface_t *surface, + cairo_cogl_context_t *cr) +{ + + if (cr->path_ctm_age <= 1) { + surface->user_path = &cr->user_path; + surface->ctm = &cr->base.gstate->ctm; + surface->ctm_inverse = &cr->base.gstate->ctm_inverse; + surface->path_is_rectangle = cr->path_is_rectangle; + if (surface->path_is_rectangle) { + surface->path_rectangle_x = cr->x; + surface->path_rectangle_y = cr->y; + surface->path_rectangle_width = cr->width; + surface->path_rectangle_height = cr->height; + } + } else { + surface->user_path = NULL; + surface->path_is_rectangle = FALSE; + } +} + +static cairo_status_t +_cairo_cogl_context_fill (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)cr->base.gstate->target; + + if (cr->path_is_rectangle) { + status = _cairo_cogl_surface_fill_rectangle (cr->base.gstate->target, + cr->base.gstate->op, + cr->base.gstate->source, + cr->x, + cr->y, + cr->width, + cr->height, + &cr->base.gstate->ctm, + cr->base.gstate->clip); + if (status == CAIRO_STATUS_SUCCESS) + goto DONE; + _flush_cr_rectangle (cr); + } + + _cairo_cogl_surface_set_side_band_state (surface, cr); + + status = cr->dev->backend_parent.fill (abstract_cr); + if (unlikely (status)) + return status; + +DONE: + _cairo_path_fixed_fini (&cr->user_path); + _cairo_path_fixed_init (&cr->user_path); + cr->path_is_rectangle = FALSE; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_fill_preserve (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)cr->base.gstate->target; + + _cairo_cogl_surface_set_side_band_state (surface, cr); + + status = cr->dev->backend_parent.fill_preserve (abstract_cr); + if (unlikely (status)) + return status; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_stroke (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)cr->base.gstate->target; + + _cairo_cogl_surface_set_side_band_state (surface, cr); + + status = cr->dev->backend_parent.stroke (abstract_cr); + if (unlikely (status)) + return status; + + _cairo_path_fixed_fini (&cr->user_path); + _cairo_path_fixed_init (&cr->user_path); + cr->path_is_rectangle = FALSE; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_stroke_preserve (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)cr->base.gstate->target; + + _cairo_cogl_surface_set_side_band_state (surface, cr); + + status = cr->dev->backend_parent.stroke_preserve (abstract_cr); + if (unlikely (status)) + return status; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_context_clip (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + cairo_status_t status; + + status = cr->dev->backend_parent.clip (abstract_cr); + if (unlikely (status)) + return status; + + _cairo_path_fixed_fini (&cr->user_path); + _cairo_path_fixed_init (&cr->user_path); + cr->path_is_rectangle = FALSE; + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_cogl_context_destroy (void *abstract_cr) +{ + cairo_cogl_context_t *cr = abstract_cr; + + _cairo_default_context_fini (&cr->base); + + _cairo_path_fixed_fini (&cr->user_path); + + /* mark the context as invalid to protect against misuse */ + cr->base.base.status = CAIRO_STATUS_NULL_POINTER; + _freed_pool_put (&context_pool, cr); +} + +/* We want to hook into the frontend of the path construction APIs so + * we can build up a path description in user coordinates instead of + * backend coordinates so that we can recognize user coordinate + * rectangles and so we can hash a user path independent of its + * transform. (With some care to catch unusual cases where the ctm + * changes mid-path) */ +cairo_t * +_cairo_cogl_context_create (void *target) +{ + cairo_cogl_surface_t *surface = target; + cairo_cogl_context_t *cr; + cairo_status_t status; + + cr = _freed_pool_get (&context_pool); + if (unlikely (cr == NULL)) { + cr = malloc (sizeof (cairo_cogl_context_t)); + if (unlikely (cr == NULL)) + return _cairo_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + + status = _cairo_default_context_init (&cr->base, target); + if (unlikely (status)) { + _freed_pool_put (&context_pool, cr); + return _cairo_create_in_error (status); + } + + cr->dev = (cairo_cogl_device_t *)surface->base.device; + + if (unlikely (cr->dev->backend_vtable_initialized == FALSE)) { + cairo_backend_t *backend = &cr->dev->backend; + memcpy (backend, cr->base.base.backend, sizeof (cairo_backend_t)); + memcpy (&cr->dev->backend_parent, cr->base.base.backend, sizeof (cairo_backend_t)); + + backend->destroy = _cairo_cogl_context_destroy; + + backend->restore = _cairo_cogl_context_restore; + backend->translate = _cairo_cogl_context_translate; + backend->scale = _cairo_cogl_context_scale; + backend->rotate = _cairo_cogl_context_rotate; + backend->transform = _cairo_cogl_context_transform; + backend->set_matrix = _cairo_cogl_context_set_matrix; + backend->set_identity_matrix = _cairo_cogl_context_set_identity_matrix; + + backend->new_path = _cairo_cogl_context_new_path; + backend->new_sub_path = _cairo_cogl_context_new_sub_path; + backend->move_to = _cairo_cogl_context_move_to; + backend->rel_move_to = _cairo_cogl_context_rel_move_to; + backend->line_to = _cairo_cogl_context_line_to; + backend->rel_line_to = _cairo_cogl_context_rel_line_to; + backend->curve_to = _cairo_cogl_context_curve_to; + backend->rel_curve_to = _cairo_cogl_context_rel_curve_to; +#if 0 + backend->arc_to = _cairo_cogl_context_arc_to; + backend->rel_arc_to = _cairo_cogl_context_rel_arc_to; +#endif + backend->close_path = _cairo_cogl_context_close_path; + //backend->arc = _cairo_cogl_context_arc; + backend->rectangle = _cairo_cogl_context_rectangle; + + /* Try to automatically catch if any new path APIs are added that mean + * we may need to overload more functions... */ + assert (((char *)&backend->path_extents - (char *)&backend->device_to_user_distance) + == (sizeof (void *) * 14)); + + backend->fill = _cairo_cogl_context_fill; + backend->fill_preserve = _cairo_cogl_context_fill_preserve; + backend->stroke = _cairo_cogl_context_stroke; + backend->stroke_preserve = _cairo_cogl_context_stroke_preserve; + backend->clip = _cairo_cogl_context_clip; + + cr->dev->backend_vtable_initialized = TRUE; + } + + cr->base.base.backend = &cr->dev->backend; + + _cairo_path_fixed_init (&cr->user_path); + cr->path_is_rectangle = FALSE; + + return &cr->base.base; +} diff --git a/src/cairo-cogl-gradient-private.h b/src/cairo-cogl-gradient-private.h new file mode 100644 index 0000000..fa684d2 --- /dev/null +++ b/src/cairo-cogl-gradient-private.h @@ -0,0 +1,89 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +#ifndef CAIRO_COGL_GRADIENT_PRIVATE_H +#define CAIRO_COGL_GRADIENT_PRIVATE_H + +#include "cairoint.h" +#include "cairo-pattern-private.h" + +#include + +#define CAIRO_COGL_LINEAR_GRADIENT_CACHE_SIZE (1024 * 1024) + +typedef enum _cairo_cogl_gradient_compatibility { + CAIRO_COGL_GRADIENT_CAN_EXTEND_PAD = 1<<0, + CAIRO_COGL_GRADIENT_CAN_EXTEND_REPEAT = 1<<1, + CAIRO_COGL_GRADIENT_CAN_EXTEND_REFLECT = 1<<2, + CAIRO_COGL_GRADIENT_CAN_EXTEND_NONE = 1<<3 +} cairo_cogl_gradient_compatibility_t; +#define CAIRO_COGL_GRADIENT_CAN_EXTEND_ALL (CAIRO_COGL_GRADIENT_CAN_EXTEND_PAD |\ + CAIRO_COGL_GRADIENT_CAN_EXTEND_REPEAT|\ + CAIRO_COGL_GRADIENT_CAN_EXTEND_REFLECT|\ + CAIRO_COGL_GRADIENT_CAN_EXTEND_NONE) + +typedef struct _cairo_cogl_linear_texture_entry { + cairo_cogl_gradient_compatibility_t compatibility; + CoglTexture *texture; + float translate_x; + float scale_x; +} cairo_cogl_linear_texture_entry_t; + +typedef struct _cairo_cogl_linear_gradient { + cairo_cache_entry_t cache_entry; + cairo_reference_count_t ref_count; + GList *textures; + int n_stops; + const cairo_gradient_stop_t *stops; + cairo_gradient_stop_t stops_embedded[1]; +} cairo_cogl_linear_gradient_t; + +cairo_int_status_t +_cairo_cogl_get_linear_gradient (cairo_cogl_device_t *context, + cairo_extend_t extend_mode, + int n_stops, + const cairo_gradient_stop_t *stops, + cairo_cogl_linear_gradient_t **gradient_out); + +cairo_cogl_linear_texture_entry_t * +_cairo_cogl_linear_gradient_texture_for_extend (cairo_cogl_linear_gradient_t *gradient, + cairo_extend_t extend_mode); + +cairo_cogl_linear_gradient_t * +_cairo_cogl_linear_gradient_reference (cairo_cogl_linear_gradient_t *gradient); + +void +_cairo_cogl_linear_gradient_destroy (cairo_cogl_linear_gradient_t *gradient); + +cairo_bool_t +_cairo_cogl_linear_gradient_equal (const void *key_a, const void *key_b); + +#endif /* CAIRO_COGL_GRADIENT_PRIVATE_H */ diff --git a/src/cairo-cogl-gradient.c b/src/cairo-cogl-gradient.c new file mode 100644 index 0000000..f8c8004 --- /dev/null +++ b/src/cairo-cogl-gradient.c @@ -0,0 +1,642 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ +//#include "cairoint.h" + +#include "cairo-cogl-private.h" +#include "cairo-cogl-gradient-private.h" +#include "cairo-image-surface-private.h" + +#include +#include + +#define DUMP_GRADIENTS_TO_PNG + +static unsigned long +_cairo_cogl_linear_gradient_hash (unsigned int n_stops, + const cairo_gradient_stop_t *stops) +{ + return _cairo_hash_bytes (n_stops, stops, + sizeof (cairo_gradient_stop_t) * n_stops); +} + +static cairo_cogl_linear_gradient_t * +_cairo_cogl_linear_gradient_lookup (cairo_cogl_device_t *ctx, + unsigned long hash, + unsigned int n_stops, + const cairo_gradient_stop_t *stops) +{ + cairo_cogl_linear_gradient_t lookup; + + lookup.cache_entry.hash = hash, + lookup.n_stops = n_stops; + lookup.stops = stops; + + return _cairo_cache_lookup (&ctx->linear_cache, &lookup.cache_entry); +} + +cairo_bool_t +_cairo_cogl_linear_gradient_equal (const void *key_a, const void *key_b) +{ + const cairo_cogl_linear_gradient_t *a = key_a; + const cairo_cogl_linear_gradient_t *b = key_b; + + if (a->n_stops != b->n_stops) + return FALSE; + + return memcmp (a->stops, b->stops, a->n_stops * sizeof (cairo_gradient_stop_t)) == 0; +} + +cairo_cogl_linear_gradient_t * +_cairo_cogl_linear_gradient_reference (cairo_cogl_linear_gradient_t *gradient) +{ + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&gradient->ref_count)); + + _cairo_reference_count_inc (&gradient->ref_count); + + return gradient; +} + +void +_cairo_cogl_linear_gradient_destroy (cairo_cogl_linear_gradient_t *gradient) +{ + GList *l; + + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&gradient->ref_count)); + + if (! _cairo_reference_count_dec_and_test (&gradient->ref_count)) + return; + + for (l = gradient->textures; l; l = l->next) { + cairo_cogl_linear_texture_entry_t *entry = l->data; + cogl_object_unref (entry->texture); + free (entry); + } + g_list_free (gradient->textures); + + free (gradient); +} + +static int +_cairo_cogl_util_next_p2 (int a) +{ + int rval = 1; + + while (rval < a) + rval <<= 1; + + return rval; +} + +static float +get_max_color_component_range (const cairo_color_stop_t *color0, const cairo_color_stop_t *color1) +{ + float range; + float max = 0; + + range = fabs (color0->red - color1->red); + max = MAX (range, max); + range = fabs (color0->green - color1->green); + max = MAX (range, max); + range = fabs (color0->blue - color1->blue); + max = MAX (range, max); + range = fabs (color0->alpha - color1->alpha); + max = MAX (range, max); + + return max; +} + +static int +_cairo_cogl_linear_gradient_width_for_stops (cairo_extend_t extend, + unsigned int n_stops, + const cairo_gradient_stop_t *stops) +{ + unsigned int n; + float max_texels_per_unit_offset = 0; + float total_offset_range; + + /* Find the stop pair demanding the most precision because we are + * interpolating the largest color-component range. + * + * From that we can define the relative sizes of all the other + * stop pairs within our texture and thus the overall size. + * + * To determine the maximum number of texels for a given gap we + * look at the range of colors we are expected to interpolate (so + * long as the stop offsets are not degenerate) and we simply + * assume we want one texel for each unique color value possible + * for a one byte-per-component representation. + * XXX: maybe this is overkill and just allowing 128 levels + * instead of 256 would be enough and then we'd rely on the + * bilinear filtering to give the full range. + * + * XXX: potentially we could try and map offsets to pixels to come + * up with a more precise mapping, but we are aiming to cache + * the gradients so we can't make assumptions about how it will be + * scaled in the future. + */ + for (n = 1; n < n_stops; n++) { + float color_range; + float offset_range; + float texels; + float texels_per_unit_offset; + + /* note: degenerate stops don't need to be represented in the + * texture but we want to be sure that solid gaps get at least + * one texel and all other gaps get at least 2 texels. + */ + + if (stops[n].offset == stops[n-1].offset) + continue; + + color_range = get_max_color_component_range (&stops[n].color, &stops[n-1].color); + if (color_range == 0) + texels = 1; + else + texels = MAX (2, 256.0f * color_range); + + /* So how many texels would we need to map over the full [0,1] + * gradient range so this gap would have enough texels? ... */ + offset_range = stops[n].offset - stops[n - 1].offset; + texels_per_unit_offset = texels / offset_range; + + if (texels_per_unit_offset > max_texels_per_unit_offset) + max_texels_per_unit_offset = texels_per_unit_offset; + } + + total_offset_range = fabs (stops[n_stops - 1].offset - stops[0].offset); + return max_texels_per_unit_offset * total_offset_range; +} + +/* Aim to create gradient textures without an alpha component so we can avoid + * needing to use blending... */ +static CoglPixelFormat +_cairo_cogl_linear_gradient_format_for_stops (cairo_extend_t extend, + unsigned int n_stops, + const cairo_gradient_stop_t *stops) +{ + unsigned int n; + + /* We have to add extra transparent texels to the end of the gradient to + * handle CAIRO_EXTEND_NONE... */ + if (extend == CAIRO_EXTEND_NONE) + return COGL_PIXEL_FORMAT_BGRA_8888_PRE; + + for (n = 1; n < n_stops; n++) { + if (stops[n].color.alpha != 1.0) + return COGL_PIXEL_FORMAT_BGRA_8888_PRE; + } + + return COGL_PIXEL_FORMAT_BGR_888; +} + +static cairo_cogl_gradient_compatibility_t +_cairo_cogl_compatibility_from_extend_mode (cairo_extend_t extend_mode) +{ + switch (extend_mode) + { + case CAIRO_EXTEND_NONE: + return CAIRO_COGL_GRADIENT_CAN_EXTEND_NONE; + case CAIRO_EXTEND_PAD: + return CAIRO_COGL_GRADIENT_CAN_EXTEND_PAD; + case CAIRO_EXTEND_REPEAT: + return CAIRO_COGL_GRADIENT_CAN_EXTEND_REPEAT; + case CAIRO_EXTEND_REFLECT: + return CAIRO_COGL_GRADIENT_CAN_EXTEND_REFLECT; + } + + assert (0); /* not reached */ + return CAIRO_EXTEND_NONE; +} + +cairo_cogl_linear_texture_entry_t * +_cairo_cogl_linear_gradient_texture_for_extend (cairo_cogl_linear_gradient_t *gradient, + cairo_extend_t extend_mode) +{ + GList *l; + cairo_cogl_gradient_compatibility_t compatibility = + _cairo_cogl_compatibility_from_extend_mode (extend_mode); + for (l = gradient->textures; l; l = l->next) { + cairo_cogl_linear_texture_entry_t *entry = l->data; + if (entry->compatibility & compatibility) + return entry; + } + return NULL; +} + +static void +color_stop_lerp (const cairo_color_stop_t *c0, + const cairo_color_stop_t *c1, + float factor, + cairo_color_stop_t *dest) +{ + /* NB: we always ignore the short members in this file so we don't need to + * worry about initializing them here. */ + dest->red = c0->red * (1.0f-factor) + c1->red * factor; + dest->green = c0->green * (1.0f-factor) + c1->green * factor; + dest->blue = c0->blue * (1.0f-factor) + c1->blue * factor; + dest->alpha = c0->alpha * (1.0f-factor) + c1->alpha * factor; +} + +static size_t +_cairo_cogl_linear_gradient_size (cairo_cogl_linear_gradient_t *gradient) +{ + GList *l; + size_t size = 0; + for (l = gradient->textures; l; l = l->next) { + cairo_cogl_linear_texture_entry_t *entry = l->data; + size += cogl_texture_get_width (entry->texture) * 4; + } + return size; +} + +static void +emit_stop (CoglVertexP2C4 **position, + float left, + float right, + const cairo_color_stop_t *left_color, + const cairo_color_stop_t *right_color) +{ + CoglVertexP2C4 *p = *position; + + guint8 lr = left_color->red * 255; + guint8 lg = left_color->green * 255; + guint8 lb = left_color->blue * 255; + guint8 la = left_color->alpha * 255; + + guint8 rr = right_color->red * 255; + guint8 rg = right_color->green * 255; + guint8 rb = right_color->blue * 255; + guint8 ra = right_color->alpha * 255; + + p[0].x = left; + p[0].y = 0; + p[0].r = lr; p[0].g = lg; p[0].b = lb; p[0].a = la; + p[1].x = left; + p[1].y = 1; + p[1].r = lr; p[1].g = lg; p[1].b = lb; p[1].a = la; + p[2].x = right; + p[2].y = 1; + p[2].r = rr; p[2].g = rg; p[2].b = rb; p[2].a = ra; + + p[3].x = left; + p[3].y = 0; + p[3].r = lr; p[3].g = lg; p[3].b = lb; p[3].a = la; + p[4].x = right; + p[4].y = 1; + p[4].r = rr; p[4].g = rg; p[4].b = rb; p[4].a = ra; + p[5].x = right; + p[5].y = 0; + p[5].r = rr; p[5].g = rg; p[5].b = rb; p[5].a = ra; + + *position = &p[6]; +} + +#ifdef DUMP_GRADIENTS_TO_PNG +static void +dump_gradient_to_png (CoglTexture *texture) +{ + cairo_image_surface_t *image = (cairo_image_surface_t *) + cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + cogl_texture_get_width (texture), + cogl_texture_get_height (texture)); + CoglPixelFormat format; + static int gradient_id = 0; + char *gradient_name; + + if (image->base.status) + return; + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + format = COGL_PIXEL_FORMAT_BGRA_8888_PRE; +#else + format = COGL_PIXEL_FORMAT_ARGB_8888_PRE; +#endif + cogl_texture_get_data (texture, + format, + 0, + image->data); + gradient_name = g_strdup_printf ("./gradient%d.png", gradient_id++); + g_print ("writing gradient: %s\n", gradient_name); + cairo_surface_write_to_png ((cairo_surface_t *)image, gradient_name); + g_free (gradient_name); +} +#endif + +cairo_int_status_t +_cairo_cogl_get_linear_gradient (cairo_cogl_device_t *device, + cairo_extend_t extend_mode, + int n_stops, + const cairo_gradient_stop_t *stops, + cairo_cogl_linear_gradient_t **gradient_out) +{ + unsigned long hash; + cairo_cogl_linear_gradient_t *gradient; + cairo_cogl_linear_texture_entry_t *entry; + cairo_gradient_stop_t *internal_stops; + int stop_offset; + int n_internal_stops; + int n; + cairo_cogl_gradient_compatibility_t compatibilities; + int width; + int left_padding = 0; + cairo_color_stop_t left_padding_color; + int right_padding = 0; + cairo_color_stop_t right_padding_color; + CoglPixelFormat format; + CoglTexture2D *tex; + GError *error = NULL; + int un_padded_width; + CoglHandle offscreen; + cairo_int_status_t status; + int n_quads; + int n_vertices; + float prev; + float right; + CoglVertexP2C4 *vertices; + CoglVertexP2C4 *p; + CoglPrimitive *prim; + + hash = _cairo_cogl_linear_gradient_hash (n_stops, stops); + + gradient = _cairo_cogl_linear_gradient_lookup (device, hash, n_stops, stops); + if (gradient) { + cairo_cogl_linear_texture_entry_t *entry = + _cairo_cogl_linear_gradient_texture_for_extend (gradient, extend_mode); + if (entry) { + *gradient_out = _cairo_cogl_linear_gradient_reference (gradient); + return CAIRO_INT_STATUS_SUCCESS; + } + } + + if (!gradient) { + gradient = malloc (sizeof (cairo_cogl_linear_gradient_t) + + sizeof (cairo_gradient_stop_t) * (n_stops - 1)); + if (!gradient) + return CAIRO_INT_STATUS_NO_MEMORY; + + CAIRO_REFERENCE_COUNT_INIT (&gradient->ref_count, 1); + /* NB: we update the cache_entry size at the end before + * [re]adding it to the cache. */ + gradient->cache_entry.hash = hash; + gradient->textures = NULL; + gradient->n_stops = n_stops; + gradient->stops = gradient->stops_embedded; + memcpy (gradient->stops_embedded, stops, sizeof (cairo_gradient_stop_t) * n_stops); + } else + _cairo_cogl_linear_gradient_reference (gradient); + + entry = malloc (sizeof (cairo_cogl_linear_texture_entry_t)); + if (!entry) { + status = CAIRO_INT_STATUS_NO_MEMORY; + goto BAIL; + } + + compatibilities = _cairo_cogl_compatibility_from_extend_mode (extend_mode); + + n_internal_stops = n_stops; + stop_offset = 0; + + /* We really need stops covering the full [0,1] range for repeat/reflect + * if we want to use sampler REPEAT/MIRROR wrap modes so we may need + * to add some extra stops... */ + if (extend_mode == CAIRO_EXTEND_REPEAT || extend_mode == CAIRO_EXTEND_REFLECT) + { + /* If we don't need any extra stops then actually the texture + * will be shareable for repeat and reflect... */ + compatibilities = (CAIRO_COGL_GRADIENT_CAN_EXTEND_REPEAT | + CAIRO_COGL_GRADIENT_CAN_EXTEND_REFLECT); + + if (stops[0].offset != 0) { + n_internal_stops++; + stop_offset++; + } + + if (stops[n_stops - 1].offset != 1) + n_internal_stops++; + } + + internal_stops = alloca (n_internal_stops * sizeof (cairo_gradient_stop_t)); + memcpy (&internal_stops[stop_offset], stops, sizeof (cairo_gradient_stop_t) * n_stops); + + /* cairo_color_stop_t values are all unpremultiplied but we need to + * interpolate premultiplied colors so we premultiply all the double + * components now. (skipping any extra stops added for repeat/reflect) + * + * Anothing thing to note is that by premultiplying the colors + * early we'll also reduce the range of colors to interpolate + * which can result in smaller gradient textures. + */ + for (n = stop_offset; n < n_stops; n++) { + cairo_color_stop_t *color = &internal_stops[n].color; + color->red *= color->alpha; + color->green *= color->alpha; + color->blue *= color->alpha; + } + + if (n_internal_stops != n_stops) + { + if (extend_mode == CAIRO_EXTEND_REPEAT) { + compatibilities &= ~CAIRO_COGL_GRADIENT_CAN_EXTEND_REFLECT; + if (stops[0].offset != 0) { + /* what's the wrap-around distance between the user's end-stops? */ + double dx = (1.0 - stops[n_stops - 1].offset) + stops[0].offset; + internal_stops[0].offset = 0; + color_stop_lerp (&stops[0].color, + &stops[n_stops - 1].color, + stops[0].offset / dx, + &internal_stops[0].color); + } + if (stops[n_stops - 1].offset != 1) { + internal_stops[n_internal_stops - 1].offset = 1; + internal_stops[n_internal_stops - 1].color = internal_stops[0].color; + } + } else if (extend_mode == CAIRO_EXTEND_REFLECT) { + compatibilities &= ~CAIRO_COGL_GRADIENT_CAN_EXTEND_REPEAT; + if (stops[0].offset != 0) { + internal_stops[0].offset = 0; + internal_stops[0].color = stops[n_stops - 1].color; + } + if (stops[n_stops - 1].offset != 1) { + internal_stops[n_internal_stops - 1].offset = 1; + internal_stops[n_internal_stops - 1].color = stops[0].color; + } + } + } + + stops = internal_stops; + n_stops = n_internal_stops; + + width = _cairo_cogl_linear_gradient_width_for_stops (extend_mode, n_stops, stops); + + if (extend_mode == CAIRO_EXTEND_PAD) { + + /* Here we need to guarantee that the edge texels of our + * texture correspond to the desired padding color so we + * can use CLAMP_TO_EDGE. + * + * For short stop-gaps and especially for degenerate stops + * it's possible that without special consideration the + * user's end stop colors would not be present in our final + * texture. + * + * To handle this we forcibly add two extra padding texels + * at the edges which extend beyond the [0,1] range of the + * gradient itself and we will later report a translate and + * scale transform to compensate for this. + */ + + /* XXX: If we consider generating a mipmap for our 1d texture + * at some point then we also need to consider how much + * padding to add to be sure lower mipmap levels still have + * the desired edge color (as opposed to a linear blend with + * other colors of the gradient). + */ + + left_padding = 1; + left_padding_color = stops[0].color; + right_padding = 1; + right_padding_color = stops[n_stops - 1].color; + } else if (extend_mode == CAIRO_EXTEND_NONE) { + /* We handle EXTEND_NONE by adding two extra, transparent, texels at + * the ends of the texture and use CLAMP_TO_EDGE. + * + * We add a scale and translate transform so to account for our texels + * extending beyond the [0,1] range. */ + + left_padding = 1; + left_padding_color.red = 0; + left_padding_color.green = 0; + left_padding_color.blue = 0; + left_padding_color.alpha = 0; + right_padding = 1; + right_padding_color = left_padding_color; + } + + /* If we still have stops that don't cover the full [0,1] range + * then we need to define a texture-coordinate scale + translate + * transform to account for that... */ + if (stops[n_stops - 1].offset - stops[0].offset < 1) { + float range = stops[n_stops - 1].offset - stops[0].offset; + entry->scale_x = 1.0 / range; + entry->translate_x = -(stops[0].offset * entry->scale_x); + } + + width += left_padding + right_padding; + + width = _cairo_cogl_util_next_p2 (width); + width = MIN (4096, width); /* lets not go too stupidly big! */ + format = _cairo_cogl_linear_gradient_format_for_stops (extend_mode, n_stops, stops); + + do { + tex = cogl_texture_2d_new_with_size (device->cogl_context, + width, + 1, + format, + &error); + if (!tex) + g_error_free (error); + } while (tex == NULL && width >> 1); + + if (!tex) { + status = CAIRO_INT_STATUS_NO_MEMORY; + goto BAIL; + } + + entry->texture = COGL_TEXTURE (tex); + entry->compatibility = compatibilities; + + un_padded_width = width - left_padding - right_padding; + + /* XXX: only when we know the final texture width can we calculate the + * scale and translate factors needed to account for padding... */ + if (un_padded_width != width) + entry->scale_x *= (float)un_padded_width / (float)width; + if (left_padding) + entry->translate_x += (entry->scale_x / (float)un_padded_width) * (float)left_padding; + + offscreen = cogl_offscreen_new_to_texture (tex); + cogl_push_framebuffer (COGL_FRAMEBUFFER (offscreen)); + cogl_ortho (0, width, 1, 0, -1, 100); + cogl_framebuffer_clear4f (COGL_FRAMEBUFFER (offscreen), + COGL_BUFFER_BIT_COLOR, + 0, 0, 0, 0); + + n_quads = n_stops - 1 + !!left_padding + !!right_padding; + n_vertices = 6 * n_quads; + vertices = alloca (sizeof (CoglVertexP2C4) * n_vertices); + p = vertices; + if (left_padding) + emit_stop (&p, 0, left_padding, &left_padding_color, &left_padding_color); + prev = (float)left_padding; + for (n = 1; n < n_stops; n++) { + right = (float)left_padding + (float)un_padded_width * stops[n].offset; + emit_stop (&p, prev, right, &stops[n-1].color, &stops[n].color); + prev = right; + } + if (right_padding) + emit_stop (&p, prev, width, &right_padding_color, &right_padding_color); + + prim = cogl_primitive_new_p2c4 (COGL_VERTICES_MODE_TRIANGLES, + n_vertices, + vertices); + /* Just use this as the simplest way to setup a default pipeline... */ + cogl_set_source_color4f (0, 0, 0, 0); + cogl_primitive_draw (prim); + cogl_object_unref (prim); + + cogl_pop_framebuffer (); + cogl_object_unref (offscreen); + + gradient->textures = g_list_prepend (gradient->textures, entry); + gradient->cache_entry.size = _cairo_cogl_linear_gradient_size (gradient); + +#ifdef DUMP_GRADIENTS_TO_PNG + dump_gradient_to_png (COGL_TEXTURE (tex)); +#endif + +#warning "FIXME:" + /* XXX: it seems the documentation of _cairo_cache_insert isn't true - it + * doesn't handle re-adding the same entry gracefully - the cache will + * just keep on growing and then it will start randomly evicting things + * pointlessly */ + /* we ignore errors here and just return an uncached gradient */ + if (likely (! _cairo_cache_insert (&device->linear_cache, &gradient->cache_entry))) + _cairo_cogl_linear_gradient_reference (gradient); + + *gradient_out = gradient; + return CAIRO_INT_STATUS_SUCCESS; + +BAIL: + free (entry); + if (gradient) + _cairo_cogl_linear_gradient_destroy (gradient); + return status; +} diff --git a/src/cairo-cogl-private.h b/src/cairo-cogl-private.h new file mode 100644 index 0000000..13fe5a8 --- /dev/null +++ b/src/cairo-cogl-private.h @@ -0,0 +1,164 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +#ifndef CAIRO_COGL_PRIVATE_H +#define CAIRO_COGL_PRIVATE_H + +#include "cairo-device-private.h" +#include "cairo-cache-private.h" +#include "cairo-backend-private.h" +#include "cairo-default-context-private.h" +#include "cairo-surface-private.h" + +#include + +typedef enum _cairo_cogl_template_type { + CAIRO_COGL_TEMPLATE_TYPE_SOLID, + CAIRO_COGL_TEMPLATE_TYPE_TEXTURE, + CAIRO_COGL_TEMPLATE_TYPE_MASK_SOLID, + CAIRO_COGL_TEMPLATE_TYPE_MASK_TEXTURE, + CAIRO_COGL_TEMPLATE_TYPE_COUNT +} cairo_cogl_template_type; + +typedef struct _cairo_cogl_device { + cairo_device_t base; + + cairo_bool_t backend_vtable_initialized; + cairo_backend_t backend; + + /* We save a copy of all the original backend methods that we override so + * we can chain up... + */ + cairo_backend_t backend_parent; + + CoglContext *cogl_context; + + CoglTexture *dummy_texture; + + /* This is a sparsely filled set of templates because we don't support + * the full range of operators that cairo has. All entries corresponding + * to unsupported operators are NULL. + * + * The CAIRO_OPERATOR_ADD is the operator enum with the highest value that + * we support so we at least cap the size of the array by that. + * + * For each operator we have a template for when we have a solid source + * and another for each texture format that could be used as a source. + */ + CoglPipeline *template_pipelines[CAIRO_OPERATOR_ADD + 1][CAIRO_COGL_TEMPLATE_TYPE_COUNT]; + + CoglMatrix identity; + + /* Caches 1d linear gradient textures */ + cairo_cache_t linear_cache; + + cairo_cache_t path_fill_staging_cache; + cairo_cache_t path_fill_prim_cache; + cairo_cache_t path_stroke_staging_cache; + cairo_cache_t path_stroke_prim_cache; +} cairo_cogl_device_t; + +typedef struct _cairo_cogl_clip_primitives { + cairo_t *clip; + CoglPrimitive **primitives; +} cairo_cogl_clip_primitives_t; + +typedef struct _cairo_cogl_surface { + cairo_surface_t base; + + CoglPixelFormat cogl_format; + cairo_bool_t ignore_alpha; + + /* We currently have 3 basic kinds of Cogl surfaces: + * 1) A light surface simply wrapping a CoglTexture + * 2) A CoglOffscreen framebuffer that implicitly also wraps a CoglTexture + * 3) A CoglOnscreen framebuffer which could potentially be mapped to + * a CoglTexture (e.g. via tfp on X11) but we don't currently do + * that. + */ + + CoglTexture *texture; + CoglFramebuffer *framebuffer; + + int width; + int height; + + GQueue *journal; + + CoglAttributeBuffer *buffer_stack; + size_t buffer_stack_size; + size_t buffer_stack_offset; + guint8 *buffer_stack_pointer; + + cairo_clip_t *last_clip; + + /* A small fifo of recently used cairo_clip_ts paired with CoglPrimitives + * that can be used to mask the stencil buffer. */ + GList *clips_fifo; + + int n_clip_updates_per_frame; + + /* Since the surface backend drawing operator functions don't get + * passed the current cairo_t context we don't have a good way + * to get our user-coordinates path into our surface_fill function. + * + * For now we use our _cairo_cogl_context_fill() wrapper to set this + * side band data on the surface... + */ + cairo_path_fixed_t *user_path; + cairo_matrix_t *ctm; + cairo_matrix_t *ctm_inverse; + cairo_bool_t path_is_rectangle; + double path_rectangle_x; + double path_rectangle_y; + double path_rectangle_width; + double path_rectangle_height; +} cairo_cogl_surface_t; + +cairo_status_t +_cairo_cogl_path_fixed_rectangle (cairo_path_fixed_t *path, + cairo_fixed_t x, + cairo_fixed_t y, + cairo_fixed_t width, + cairo_fixed_t height); + +cairo_int_status_t +_cairo_cogl_surface_fill_rectangle (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + double x, + double y, + double width, + double height, + cairo_matrix_t *ctm, + const cairo_clip_t *clip); + +#endif /* CAIRO_COGL_PRIVATE_H */ diff --git a/src/cairo-cogl-surface.c b/src/cairo-cogl-surface.c new file mode 100644 index 0000000..ed86acc --- /dev/null +++ b/src/cairo-cogl-surface.c @@ -0,0 +1,2799 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ +#include "cairoint.h" + +#include "cairo-cache-private.h" +#include "cairo-error-private.h" +#include "cairo-path-fixed-private.h" +#include "cairo-recording-surface-private.h" +#include "cairo-surface-clipper-private.h" +#include "cairo-fixed-private.h" +#include "cairo-device-private.h" +#include "cairo-composite-rectangles-private.h" +#include "cairo-image-surface-inline.h" +#include "cairo-cogl-private.h" +#include "cairo-cogl-gradient-private.h" +#include "cairo-arc-private.h" +#include "cairo-traps-private.h" +#include "cairo-cogl-context-private.h" +#include "cairo-cogl-utils-private.h" +#include "cairo-box-inline.h" +#include "cairo-surface-subsurface-inline.h" +#include "cairo-surface-fallback-private.h" +#include "cairo-surface-offset-private.h" + +#include "cairo-cogl.h" + +#include +#include + +#define CAIRO_COGL_DEBUG 0 +//#define FILL_WITH_COGL_PATH +//#define USE_CAIRO_PATH_FLATTENER +#define ENABLE_PATH_CACHE +//#define DISABLE_BATCHING +#define USE_COGL_RECTANGLE_API +#define ENABLE_RECTANGLES_FASTPATH + +#if defined (USE_COGL_RECTANGLE_API) || defined (ENABLE_PATH_CACHE) +#define NEED_COGL_CONTEXT +#endif + +#if CAIRO_COGL_DEBUG && __GNUC__ +#define UNSUPPORTED(reason) ({ \ + g_warning ("cairo-cogl: hit unsupported operation: %s", reason); \ + CAIRO_INT_STATUS_UNSUPPORTED; \ +}) +#else +#define UNSUPPORTED(reason) CAIRO_INT_STATUS_UNSUPPORTED +#endif + +#define CAIRO_COGL_PATH_META_CACHE_SIZE (1024 * 1024) + +typedef struct _cairo_cogl_texture_attributes { + /* nabbed from cairo_surface_attributes_t... */ + cairo_matrix_t matrix; + cairo_extend_t extend; + cairo_filter_t filter; + cairo_bool_t has_component_alpha; + + CoglPipelineWrapMode s_wrap; + CoglPipelineWrapMode t_wrap; +} cairo_cogl_texture_attributes_t; + +typedef enum _cairo_cogl_journal_entry_type { + CAIRO_COGL_JOURNAL_ENTRY_TYPE_RECTANGLE, + CAIRO_COGL_JOURNAL_ENTRY_TYPE_PRIMITIVE, + CAIRO_COGL_JOURNAL_ENTRY_TYPE_PATH, + CAIRO_COGL_JOURNAL_ENTRY_TYPE_CLIP +} cairo_cogl_journal_entry_type_t; + +typedef struct _cairo_cogl_journal_entry { + cairo_cogl_journal_entry_type_t type; +} cairo_cogl_journal_entry_t; + +typedef struct _cairo_cogl_journal_clip_entry { + cairo_cogl_journal_entry_t base; + cairo_clip_t *clip; +} cairo_cogl_journal_clip_entry_t; + +typedef struct _cairo_cogl_journal_rect_entry { + cairo_cogl_journal_entry_t base; + CoglPipeline *pipeline; + float x; + float y; + float width; + float height; + int n_layers; + cairo_matrix_t ctm; +} cairo_cogl_journal_rect_entry_t; + +typedef struct _cairo_cogl_journal_prim_entry { + cairo_cogl_journal_entry_t base; + CoglPipeline *pipeline; + CoglPrimitive *primitive; + gboolean has_transform; + cairo_matrix_t transform; +} cairo_cogl_journal_prim_entry_t; + +typedef struct _cairo_cogl_journal_path_entry { + cairo_cogl_journal_entry_t base; + CoglPipeline *pipeline; + CoglPath *path; +} cairo_cogl_journal_path_entry_t; + +typedef struct _cairo_cogl_path_fill_meta { + cairo_cache_entry_t cache_entry; + cairo_reference_count_t ref_count; + int counter; + cairo_path_fixed_t *user_path; + cairo_matrix_t ctm_inverse; + + /* TODO */ +#if 0 + /* A cached path tessellation should be re-usable with different rotations + * and translations but not for different scales. + * + * one idea is to track the diagonal lenghts of a unit rectangle + * transformed through the original ctm use to tesselate the geometry + * so we can check what the lengths are for any new ctm to know if + * this geometry is compatible. + */ +#endif + + CoglPrimitive *prim; +} cairo_cogl_path_fill_meta_t; + +typedef struct _cairo_cogl_path_stroke_meta { + cairo_cache_entry_t cache_entry; + cairo_reference_count_t ref_count; + int counter; + cairo_path_fixed_t *user_path; + cairo_matrix_t ctm_inverse; + cairo_stroke_style_t style; + double tolerance; + + /* TODO */ +#if 0 + /* A cached path tessellation should be re-usable with different rotations + * and translations but not for different scales. + * + * one idea is to track the diagonal lenghts of a unit rectangle + * transformed through the original ctm use to tesselate the geometry + * so we can check what the lengths are for any new ctm to know if + * this geometry is compatible. + */ +#endif + + CoglPrimitive *prim; +} cairo_cogl_path_stroke_meta_t; + +static cairo_surface_t * +_cairo_cogl_surface_create_full (cairo_cogl_device_t *dev, + cairo_bool_t ignore_alpha, + CoglFramebuffer *framebuffer, + CoglTexture *texture); + +static cairo_int_status_t +_cairo_cogl_surface_fill (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip); + +static void +_cairo_cogl_journal_flush (cairo_cogl_surface_t *surface); + +cairo_private extern const cairo_surface_backend_t _cairo_cogl_surface_backend; + +slim_hidden_proto (cairo_cogl_device_create); +slim_hidden_proto (cairo_cogl_surface_create); +slim_hidden_proto (cairo_cogl_surface_get_framebuffer); +slim_hidden_proto (cairo_cogl_surface_get_texture); +slim_hidden_proto (cairo_cogl_surface_end_frame); + +static cairo_cogl_device_t * +to_device (cairo_device_t *device) +{ + return (cairo_cogl_device_t *)device; +} + +/* moves trap points such that they become the actual corners of the trapezoid */ +static void +_sanitize_trap (cairo_trapezoid_t *t) +{ + cairo_trapezoid_t s = *t; + +#define FIX(lr, tb, p) \ + if (t->lr.p.y != t->tb) { \ + t->lr.p.x = s.lr.p2.x + _cairo_fixed_mul_div_floor (s.lr.p1.x - s.lr.p2.x, s.tb - s.lr.p2.y, s.lr.p1.y - s.lr.p2.y); \ + t->lr.p.y = s.tb; \ + } + FIX (left, top, p1); + FIX (left, bottom, p2); + FIX (right, top, p1); + FIX (right, bottom, p2); +} + +static cairo_status_t +_cairo_cogl_surface_ensure_framebuffer (cairo_cogl_surface_t *surface) +{ + GError *error = NULL; + + if (surface->framebuffer) + return CAIRO_STATUS_SUCCESS; + + surface->framebuffer = COGL_FRAMEBUFFER (cogl_offscreen_new_to_texture (surface->texture)); + if (!cogl_framebuffer_allocate (surface->framebuffer, &error)) { + g_error_free (error); + cogl_object_unref (surface->framebuffer); + surface->framebuffer = NULL; + return CAIRO_STATUS_NO_MEMORY; + } + + cogl_push_framebuffer (surface->framebuffer); + cogl_ortho (0, surface->width, + surface->height, 0, + -1, 100); + cogl_pop_framebuffer (); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_surface_t * +_cairo_cogl_surface_create_similar (void *abstract_surface, + cairo_content_t content, + int width, + int height) +{ + cairo_cogl_surface_t *reference_surface = abstract_surface; + cairo_cogl_surface_t *surface; + CoglTexture *texture; + cairo_status_t status; + + texture = cogl_texture_new_with_size (width, height, + COGL_TEXTURE_NO_SLICING, + (content & CAIRO_CONTENT_COLOR) ? + COGL_PIXEL_FORMAT_BGRA_8888_PRE : + COGL_PIXEL_FORMAT_A_8); + if (!texture) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + surface = (cairo_cogl_surface_t *) + _cairo_cogl_surface_create_full (to_device(reference_surface->base.device), + (content & CAIRO_CONTENT_ALPHA) == 0, + NULL, + texture); + if (unlikely (surface->base.status)) + return &surface->base; + + status = _cairo_cogl_surface_ensure_framebuffer (surface); + if (unlikely (status)) { + cairo_surface_destroy (&surface->base); + return _cairo_surface_create_in_error (status); + } + + return &surface->base; +} + +static cairo_bool_t +_cairo_cogl_surface_get_extents (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_cogl_surface_t *surface = abstract_surface; + + extents->x = 0; + extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + + return TRUE; +} + +static void +_cairo_cogl_journal_free (cairo_cogl_surface_t *surface) +{ + GList *l; + + for (l = surface->journal->head; l; l = l->next) { + cairo_cogl_journal_entry_t *entry = l->data; + + if (entry->type == CAIRO_COGL_JOURNAL_ENTRY_TYPE_PRIMITIVE) { + cairo_cogl_journal_prim_entry_t *prim_entry = + (cairo_cogl_journal_prim_entry_t *)entry; + cogl_object_unref (prim_entry->primitive); + } else if (entry->type == CAIRO_COGL_JOURNAL_ENTRY_TYPE_PATH) { + cairo_cogl_journal_path_entry_t *path_entry = + (cairo_cogl_journal_path_entry_t *)entry; + cogl_object_unref (path_entry->path); + } + } + + g_queue_free (surface->journal); + surface->journal = NULL; +} + +#ifdef FILL_WITH_COGL_PATH +static void +_cairo_cogl_journal_log_path (cairo_cogl_surface_t *surface, + CoglPipeline *pipeline, + CoglPath *path) +{ + cairo_cogl_journal_path_entry_t *entry; + + if (unlikely (surface->journal == NULL)) + surface->journal = g_queue_new (); + + /* FIXME: Instead of a GList here we should stack allocate the journal + * entries so it would be cheaper to allocate and they can all be freed in + * one go after flushing! */ + entry = g_slice_new (cairo_cogl_journal_path_entry_t); + entry->base.type = CAIRO_COGL_JOURNAL_ENTRY_TYPE_PATH; + + entry->pipeline = cogl_object_ref (pipeline); + entry->path = cogl_object_ref (path); + + g_queue_push_tail (surface->journal, entry); + +#ifdef DISABLE_BATCHING + _cairo_cogl_journal_flush (surface); +#endif +} +#endif /* FILL_WITH_COGL_PATH */ + +static void +_cairo_cogl_journal_log_primitive (cairo_cogl_surface_t *surface, + CoglPipeline *pipeline, + CoglPrimitive *primitive, + cairo_matrix_t *transform) +{ + cairo_cogl_journal_prim_entry_t *entry; + + if (unlikely (surface->journal == NULL)) + surface->journal = g_queue_new (); + + /* FIXME: Instead of a GList here we should stack allocate the journal + * entries so it would be cheaper to allocate and they can all be freed in + * one go after flushing! */ + entry = g_slice_new (cairo_cogl_journal_prim_entry_t); + entry->base.type = CAIRO_COGL_JOURNAL_ENTRY_TYPE_PRIMITIVE; + + entry->pipeline = cogl_object_ref (pipeline); + + if (transform) { + entry->transform = *transform; + entry->has_transform = TRUE; + } else + entry->has_transform = FALSE; + + entry->primitive = cogl_object_ref (primitive); + + g_queue_push_tail (surface->journal, entry); + +#ifdef DISABLE_BATCHING + _cairo_cogl_journal_flush (surface); +#endif +} + +static void +_cairo_cogl_journal_log_rectangle (cairo_cogl_surface_t *surface, + CoglPipeline *pipeline, + float x, + float y, + float width, + float height, + int n_layers, + cairo_matrix_t *ctm) +{ + cairo_cogl_journal_rect_entry_t *entry; + + if (unlikely (surface->journal == NULL)) + surface->journal = g_queue_new (); + + /* FIXME: Instead of a GList here we should stack allocate the journal + * entries so it would be cheaper to allocate and they can all be freed in + * one go after flushing! */ + entry = g_slice_new (cairo_cogl_journal_rect_entry_t); + entry->base.type = CAIRO_COGL_JOURNAL_ENTRY_TYPE_RECTANGLE; + + entry->pipeline = cogl_object_ref (pipeline); + + entry->x = x; + entry->y = y; + entry->width = width; + entry->height = height; + entry->ctm = *ctm; + + entry->n_layers = n_layers; + + g_queue_push_tail (surface->journal, entry); + +#ifdef DISABLE_BATCHING + _cairo_cogl_journal_flush (surface); +#endif +} + +static void +_cairo_cogl_journal_log_clip (cairo_cogl_surface_t *surface, + const cairo_clip_t *clip) +{ + cairo_cogl_journal_clip_entry_t *entry; + + if (unlikely (surface->journal == NULL)) + surface->journal = g_queue_new (); + + /* FIXME: Instead of a GList here we should stack allocate the journal + * entries so it would be cheaper to allocate and they can all be freed in + * one go after flushing! */ + entry = g_slice_new (cairo_cogl_journal_clip_entry_t); + entry->base.type = CAIRO_COGL_JOURNAL_ENTRY_TYPE_CLIP; + entry->clip = _cairo_clip_copy (clip); + + g_queue_push_tail (surface->journal, entry); +} + +static void +_cairo_cogl_journal_discard (cairo_cogl_surface_t *surface) +{ + GList *l; + + if (!surface->journal) { + assert (surface->last_clip == NULL); + return; + } + + if (surface->buffer_stack && surface->buffer_stack_offset) { + cogl_buffer_unmap (COGL_BUFFER (surface->buffer_stack)); + cogl_object_unref (surface->buffer_stack); + surface->buffer_stack = NULL; + } + + for (l = surface->journal->head; l; l = l->next) { + cairo_cogl_journal_entry_t *entry = l->data; + gsize entry_size; + + switch (entry->type) + { + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_CLIP: { + cairo_cogl_journal_clip_entry_t *clip_entry = + (cairo_cogl_journal_clip_entry_t *)entry; + _cairo_clip_destroy (clip_entry->clip); + entry_size = sizeof (cairo_cogl_journal_clip_entry_t); + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_RECTANGLE: { + cairo_cogl_journal_rect_entry_t *rect_entry = + (cairo_cogl_journal_rect_entry_t *)entry; + cogl_object_unref (rect_entry->pipeline); + entry_size = sizeof (cairo_cogl_journal_rect_entry_t); + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_PRIMITIVE: { + cairo_cogl_journal_prim_entry_t *prim_entry = + (cairo_cogl_journal_prim_entry_t *)entry; + cogl_object_unref (prim_entry->pipeline); + cogl_object_unref (prim_entry->primitive); + entry_size = sizeof (cairo_cogl_journal_prim_entry_t); + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_PATH: { + cairo_cogl_journal_path_entry_t *path_entry = + (cairo_cogl_journal_path_entry_t *)entry; + cogl_object_unref (path_entry->pipeline); + cogl_object_unref (path_entry->path); + entry_size = sizeof (cairo_cogl_journal_path_entry_t); + break; + } + default: + assert (0); /* not reached! */ + entry_size = 0; /* avoid compiler warning */ + } + g_slice_free1 (entry_size, entry); + } + + g_queue_clear (surface->journal); + + if (surface->last_clip) { + _cairo_clip_destroy (surface->last_clip); + surface->last_clip = NULL; + } +} + +static CoglAttributeBuffer * +_cairo_cogl_surface_allocate_buffer_space (cairo_cogl_surface_t *surface, + size_t size, + size_t *offset, + void **pointer) +{ + /* XXX: In the Cogl journal we found it more efficient to have a pool of + * buffers that we re-cycle but for now we simply thow away our stack + * buffer each time we flush. */ + if (unlikely (surface->buffer_stack && + (surface->buffer_stack_size - surface->buffer_stack_offset) < size)) { + cogl_buffer_unmap (COGL_BUFFER (surface->buffer_stack)); + cogl_object_unref (surface->buffer_stack); + surface->buffer_stack = NULL; + surface->buffer_stack_size *= 2; + } + + if (unlikely (surface->buffer_stack_size < size)) + surface->buffer_stack_size = size * 2; + + if (unlikely (surface->buffer_stack == NULL)) { + surface->buffer_stack = cogl_attribute_buffer_new (surface->buffer_stack_size, NULL); + surface->buffer_stack_pointer = + cogl_buffer_map (COGL_BUFFER (surface->buffer_stack), + COGL_BUFFER_ACCESS_WRITE, + COGL_BUFFER_MAP_HINT_DISCARD); + surface->buffer_stack_offset = 0; + } + + *pointer = surface->buffer_stack_pointer + surface->buffer_stack_offset; + *offset = surface->buffer_stack_offset; + + surface->buffer_stack_offset += size; + return cogl_object_ref (surface->buffer_stack); +} + + +static CoglAttributeBuffer * +_cairo_cogl_traps_to_triangles_buffer (cairo_cogl_surface_t *surface, + cairo_traps_t *traps, + size_t *offset, + gboolean one_shot) +{ + CoglAttributeBuffer *buffer; + int n_traps = traps->num_traps; + int i; + CoglVertexP2 *triangles; + + if (one_shot) { + buffer = _cairo_cogl_surface_allocate_buffer_space (surface, + n_traps * sizeof (CoglVertexP2) * 6, + offset, + (void **)&triangles); + if (!buffer) + return NULL; + } else { + buffer = cogl_attribute_buffer_new (n_traps * sizeof (CoglVertexP2) * 6, NULL); + if (!buffer) + return NULL; + triangles = cogl_buffer_map (COGL_BUFFER (buffer), + COGL_BUFFER_ACCESS_WRITE, + COGL_BUFFER_MAP_HINT_DISCARD); + if (!triangles) + return NULL; + *offset = 0; + } + + /* XXX: This is can be very expensive. I'm not sure a.t.m if it's + * predominantly the bandwidth required or the cost of the fixed_to_float + * conversions but either way we should try using an index buffer to + * reduce the amount we upload by 1/3 (offset by allocating and uploading + * indices though) sadly though my experience with the intel mesa drivers + * is that slow paths can easily be hit when starting to use indices. + */ + for (i = 0; i < n_traps; i++) + { + CoglVertexP2 *p = &triangles[i * 6]; + cairo_trapezoid_t *trap = &traps->traps[i]; + + p[0].x = _cairo_cogl_util_fixed_to_float (trap->left.p1.x); + p[0].y = _cairo_cogl_util_fixed_to_float (trap->left.p1.y); + + p[1].x = _cairo_cogl_util_fixed_to_float (trap->left.p2.x); + p[1].y = _cairo_cogl_util_fixed_to_float (trap->left.p2.y); + + p[2].x = _cairo_cogl_util_fixed_to_float (trap->right.p2.x); + p[2].y = _cairo_cogl_util_fixed_to_float (trap->right.p2.y); + + p[3].x = _cairo_cogl_util_fixed_to_float (trap->left.p1.x); + p[3].y = _cairo_cogl_util_fixed_to_float (trap->left.p1.y); + + p[4].x = _cairo_cogl_util_fixed_to_float (trap->right.p2.x); + p[4].y = _cairo_cogl_util_fixed_to_float (trap->right.p2.y); + + p[5].x = _cairo_cogl_util_fixed_to_float (trap->right.p1.x); + p[5].y = _cairo_cogl_util_fixed_to_float (trap->right.p1.y); + } + + if (!one_shot) + cogl_buffer_unmap (COGL_BUFFER (buffer)); + + return buffer; +} + +/* Used for solid fills, in this case we just need a mesh made of + * a single (2-component) position attribute. */ +static CoglPrimitive * +_cairo_cogl_traps_to_composite_prim_p2 (cairo_cogl_surface_t *surface, + cairo_traps_t *traps, + gboolean one_shot) +{ + size_t offset; + CoglAttributeBuffer *buffer = _cairo_cogl_traps_to_triangles_buffer (surface, traps, &offset, one_shot); + CoglAttribute *pos = cogl_attribute_new (buffer, + "cogl_position_in", + sizeof (CoglVertexP2), + offset, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglPrimitive *prim; + + /* The attribute will have taken a reference on the buffer */ + cogl_object_unref (buffer); + + prim = cogl_primitive_new (COGL_VERTICES_MODE_TRIANGLES, + traps->num_traps * 6, pos, NULL); + + /* The primitive will now keep the attribute alive... */ + cogl_object_unref (pos); + + return prim; +} + +/* Used for surface fills, in this case we need a mesh made of a single + * (2-component) position attribute + we also alias the same attribute as + * (2-component) texture coordinates */ +static CoglPrimitive * +_cairo_cogl_traps_to_composite_prim_p2t2 (cairo_cogl_surface_t *surface, + cairo_traps_t *traps, + gboolean one_shot) +{ + size_t offset; + CoglAttributeBuffer *buffer = _cairo_cogl_traps_to_triangles_buffer (surface, traps, &offset, one_shot); + CoglAttribute *pos = cogl_attribute_new (buffer, + "cogl_position_in", + sizeof (CoglVertexP2), + offset, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglAttribute *tex_coords = cogl_attribute_new (buffer, + "cogl_tex_coord0_in", + sizeof (CoglVertexP2), + 0, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglPrimitive *prim; + + /* The attributes will have taken references on the buffer */ + cogl_object_unref (buffer); + + prim = cogl_primitive_new (COGL_VERTICES_MODE_TRIANGLES, + traps->num_traps * 6, pos, tex_coords, NULL); + + /* The primitive will now keep the attributes alive... */ + cogl_object_unref (pos); + cogl_object_unref (tex_coords); + + return prim; +} + +static CoglPrimitive * +_cairo_cogl_traps_to_composite_prim (cairo_cogl_surface_t *surface, + cairo_traps_t *traps, + int n_layers, + gboolean one_shot) +{ + int n_traps = traps->num_traps; + int i; + + /* XXX: Ideally we would skip tessellating to traps entirely since + * given their representation, conversion to triangles is quite expensive. + * + * This simplifies the conversion to triangles by making the end points of + * the two side lines actually just correspond to the corners of the + * traps. + */ + for (i = 0; i < n_traps; i++) + _sanitize_trap (&traps->traps[i]); + + if (n_layers == 0) + return _cairo_cogl_traps_to_composite_prim_p2 (surface, traps, one_shot); + else { + assert (n_layers == 1); + return _cairo_cogl_traps_to_composite_prim_p2t2 (surface, traps, one_shot); + } +} + +static cairo_int_status_t +_cairo_cogl_fill_to_primitive (cairo_cogl_surface_t *surface, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + int n_layers, + cairo_bool_t one_shot, + CoglPrimitive **primitive, + size_t *size) +{ + cairo_traps_t traps; + cairo_int_status_t status; + + _cairo_traps_init (&traps); + status = _cairo_path_fixed_fill_to_traps (path, fill_rule, tolerance, &traps); + if (unlikely (status)) + goto BAIL; + + if (traps.num_traps == 0) { + status = CAIRO_INT_STATUS_NOTHING_TO_DO; + goto BAIL; + } + + *size = traps.num_traps * sizeof (CoglVertexP2) * 6; + + *primitive = _cairo_cogl_traps_to_composite_prim (surface, &traps, n_layers, one_shot); + if (!*primitive) { + status = CAIRO_INT_STATUS_NO_MEMORY; + goto BAIL; + } + +BAIL: + _cairo_traps_fini (&traps); + return status; +} + +static void +_cairo_cogl_clip_push_box (const cairo_box_t *box) +{ + if (_cairo_box_is_pixel_aligned (box)) { + cairo_rectangle_int_t rect; + _cairo_box_round_to_rectangle (box, &rect); + cogl_clip_push_window_rectangle (rect.x, rect.y, + rect.width, rect.height); + } else { + double x1, y1, x2, y2; + _cairo_box_to_doubles (box, &x1, &y1, &x2, &y2); + cogl_clip_push_rectangle (x1, y1, x2, y2); + } +} + +static void +_cairo_cogl_journal_flush (cairo_cogl_surface_t *surface) +{ + GList *l; + int clip_stack_depth = 0; + int i; + + if (!surface->journal) + return; + + if (surface->buffer_stack && surface->buffer_stack_offset) { + cogl_buffer_unmap (COGL_BUFFER (surface->buffer_stack)); + cogl_object_unref (surface->buffer_stack); + surface->buffer_stack = NULL; + } + + cogl_set_framebuffer (surface->framebuffer); + + cogl_push_matrix (); + + for (l = surface->journal->head; l; l = l->next) { + cairo_cogl_journal_entry_t *entry = l->data; + + switch (entry->type) + { + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_CLIP: { + cairo_cogl_journal_clip_entry_t *clip_entry = + (cairo_cogl_journal_clip_entry_t *)entry; + cairo_clip_path_t *path; +#if 0 + cairo_bool_t checked_for_primitives = FALSE; + cairo_cogl_clip_primitives_t *clip_primitives; +#endif + + for (i = 0; i < clip_stack_depth; i++) + cogl_clip_pop (); + clip_stack_depth = 0; + + for (path = clip_entry->clip->path, i = 0; path; path = path->prev, i++) { + cairo_rectangle_int_t extents; + cairo_int_status_t status; + CoglPrimitive *prim; + size_t prim_size; + + _cairo_path_fixed_approximate_clip_extents (&path->path, &extents); + + /* TODO - maintain a fifo of the last 10 used clips with cached + * primitives to see if we can avoid tesselating the path and + * uploading the vertices... + */ +#if 0 + if (!checked_for_primitives) { + clip_primitives = find_clip_primitives (clip); + checked_for_primitives = TRUE; + } + if (clip_primitives) + prim = clip_primitives->primitives[i]; +#endif + status = _cairo_cogl_fill_to_primitive (surface, + &path->path, + path->fill_rule, + path->tolerance, + 0, + TRUE, + &prim, + &prim_size); + if (unlikely (status)) { + g_warning ("Failed to get primitive for clip path while flushing journal"); + continue; + } + clip_stack_depth++; + cogl_clip_push_primitive (prim, + extents.x, extents.y, + extents.x + extents.width, + extents.y + extents.height); + cogl_object_unref (prim); + } + + for (i = 0; i < clip_entry->clip->num_boxes; i++) { + clip_stack_depth++; + _cairo_cogl_clip_push_box (&clip_entry->clip->boxes[i]); + } + + surface->n_clip_updates_per_frame++; + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_RECTANGLE: { + cairo_cogl_journal_rect_entry_t *rect_entry = + (cairo_cogl_journal_rect_entry_t *)entry; + float tex_coords[8]; + float x1 = rect_entry->x; + float y1 = rect_entry->y; + float x2 = rect_entry->x + rect_entry->width; + float y2 = rect_entry->y + rect_entry->height; + cairo_matrix_t *ctm = &rect_entry->ctm; + float ctmfv[16] = { + ctm->xx, ctm->yx, 0, 0, + ctm->xy, ctm->yy, 0, 0, + 0, 0, 1, 0, + ctm->x0, ctm->y0, 0, 1 + }; + CoglMatrix transform; + + cogl_matrix_init_from_array (&transform, ctmfv); + + if (rect_entry->n_layers) { + g_assert (rect_entry->n_layers <= 2); + tex_coords[0] = x1; + tex_coords[1] = y1; + tex_coords[2] = x2; + tex_coords[3] = y2; + if (rect_entry->n_layers > 1) + memcpy (&tex_coords[4], tex_coords, sizeof (float) * 4); + } + + cogl_set_source (rect_entry->pipeline); + cogl_push_matrix (); + cogl_transform (&transform); + cogl_rectangle_with_multitexture_coords (x1, y1, x2, y2, + tex_coords, 4 * rect_entry->n_layers); + cogl_pop_matrix (); + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_PRIMITIVE: { + cairo_cogl_journal_prim_entry_t *prim_entry = + (cairo_cogl_journal_prim_entry_t *)entry; + CoglMatrix transform; + + cogl_push_matrix (); + if (prim_entry->has_transform) { + cairo_matrix_t *ctm = &prim_entry->transform; + float ctmfv[16] = { + ctm->xx, ctm->yx, 0, 0, + ctm->xy, ctm->yy, 0, 0, + 0, 0, 1, 0, + ctm->x0, ctm->y0, 0, 1 + }; + cogl_matrix_init_from_array (&transform, ctmfv); + cogl_transform (&transform); + } else { + cogl_matrix_init_identity (&transform); + cogl_set_modelview_matrix (&transform); + } + + cogl_set_source (prim_entry->pipeline); + cogl_primitive_draw (prim_entry->primitive); + cogl_pop_matrix (); + break; + } + case CAIRO_COGL_JOURNAL_ENTRY_TYPE_PATH: { + cairo_cogl_journal_path_entry_t *path_entry = + (cairo_cogl_journal_path_entry_t *)entry; + + cogl_set_source (path_entry->pipeline); + cogl_path_fill (path_entry->path); + break; + } + default: + assert (0); /* not reached! */ + } + } + + cogl_pop_matrix (); + + for (i = 0; i < clip_stack_depth; i++) + cogl_clip_pop (); + + _cairo_cogl_journal_discard (surface); +} + +static cairo_status_t +_cairo_cogl_surface_flush (void *abstract_surface) +{ + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)abstract_surface; + + _cairo_cogl_journal_flush (surface); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_surface_finish (void *abstract_surface) +{ + cairo_cogl_surface_t *surface = abstract_surface; + + if (surface->texture) + cogl_object_unref (surface->texture); + + if (surface->framebuffer) + cogl_object_unref (surface->framebuffer); + + if (surface->journal) + _cairo_cogl_journal_free (surface); + + /*XXX wtf */ + cairo_device_release (surface->base.device); + + return CAIRO_STATUS_SUCCESS; +} + +static CoglPixelFormat +get_cogl_format_from_cairo_format (cairo_format_t cairo_format); + +/* XXX: We often use RGBA format for onscreen framebuffers so make sure + * to handle CAIRO_FORMAT_INVALID sensibly */ +static cairo_format_t +get_cairo_format_from_cogl_format (CoglPixelFormat format) +{ + switch ((int)format) + { + case COGL_PIXEL_FORMAT_A_8: + return CAIRO_FORMAT_A8; + case COGL_PIXEL_FORMAT_RGB_565: + return CAIRO_FORMAT_RGB16_565; + + case COGL_PIXEL_FORMAT_BGRA_8888_PRE: + case COGL_PIXEL_FORMAT_ARGB_8888_PRE: + case COGL_PIXEL_FORMAT_RGBA_8888_PRE: + /* Note: this is ambiguous since CAIRO_FORMAT_RGB24 + * would also map to the same CoglPixelFormat */ + return CAIRO_FORMAT_ARGB32; + + default: + g_warning("bad format: %x a? %d, bgr? %d, pre %d, format: %d\n", + format, + format & COGL_A_BIT, + format & COGL_BGR_BIT, + format & COGL_PREMULT_BIT, + format & ~(COGL_A_BIT | COGL_BGR_BIT | COGL_PREMULT_BIT)); + return CAIRO_FORMAT_INVALID; + } +} + +static CoglPixelFormat +get_cogl_format_from_cairo_format (cairo_format_t cairo_format) +{ + switch (cairo_format) + { + case CAIRO_FORMAT_ARGB32: + case CAIRO_FORMAT_RGB24: +#if G_BYTE_ORDER == G_LITTLE_ENDIAN + return COGL_PIXEL_FORMAT_BGRA_8888_PRE; +#else + return COGL_PIXEL_FORMAT_ARGB_8888_PRE; +#endif + case CAIRO_FORMAT_A8: + return COGL_PIXEL_FORMAT_A_8; + case CAIRO_FORMAT_RGB16_565: + return COGL_PIXEL_FORMAT_RGB_565; + case CAIRO_FORMAT_INVALID: + case CAIRO_FORMAT_A1: + case CAIRO_FORMAT_RGB30: + return 0; + } + + g_warn_if_reached (); + return 0; +} + +static cairo_status_t +_cairo_cogl_surface_read_rect_to_image_surface (cairo_cogl_surface_t *surface, + cairo_rectangle_int_t *interest, + cairo_image_surface_t **image_out) +{ + cairo_image_surface_t *image; + cairo_status_t status; + cairo_format_t cairo_format; + CoglPixelFormat cogl_format; + + /* TODO: Add cogl_texture_get_region() API so we don't have to ensure the + * surface is bound to an fbo to read back pixels */ + status = _cairo_cogl_surface_ensure_framebuffer (surface); + if (unlikely (status)) + return status; + + cairo_format = get_cairo_format_from_cogl_format (surface->cogl_format); + if (cairo_format == CAIRO_FORMAT_INVALID) { + cairo_format = CAIRO_FORMAT_ARGB32; + cogl_format = get_cogl_format_from_cairo_format (cairo_format); + } else { + cogl_format = cogl_framebuffer_get_color_format (surface->framebuffer); + } + + image = (cairo_image_surface_t *) + cairo_image_surface_create (cairo_format, surface->width, surface->height); + if (image->base.status) + return image->base.status; + + /* TODO: Add cogl_framebuffer_read_pixels() API */ + cogl_push_framebuffer (surface->framebuffer); + cogl_read_pixels (0, 0, surface->width, surface->height, + COGL_READ_PIXELS_COLOR_BUFFER, + cogl_format, + image->data); + cogl_pop_framebuffer (); + + *image_out = image; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_cogl_surface_acquire_source_image (void *abstract_surface, + cairo_image_surface_t **image_out, + void **image_extra) +{ + cairo_cogl_surface_t *surface = abstract_surface; + cairo_status_t status; + + if (surface->texture) { + cairo_format_t format = get_cairo_format_from_cogl_format (surface->cogl_format); + cairo_image_surface_t *image = (cairo_image_surface_t *) + cairo_image_surface_create (format, surface->width, surface->height); + if (image->base.status) + return image->base.status; + + cogl_texture_get_data (surface->texture, + cogl_texture_get_format (surface->texture), + 0, + image->data); + + image->base.is_clear = FALSE; + *image_out = image; + } else { + cairo_rectangle_int_t extents = { + 0, 0, surface->width, surface->height + }; + status = _cairo_cogl_surface_read_rect_to_image_surface (surface, &extents, + image_out); + if (unlikely (status)) + return status; + } + + *image_extra = NULL; + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_cogl_surface_release_source_image (void *abstract_surface, + cairo_image_surface_t *image, + void *image_extra) +{ + cairo_surface_destroy (&image->base); +} + +static cairo_status_t +_cairo_cogl_surface_clear (cairo_cogl_surface_t *surface, + const cairo_color_t *color) +{ + /* Anything batched in the journal up until now is redundant... */ + _cairo_cogl_journal_discard (surface); + + /* XXX: we currently implicitly clear the depth and stencil buffer here + * but since we use the framebuffer_discard extension when available I + * suppose this doesn't matter too much. + * + * The main concern is that we want to avoid re-loading an external z + * buffer at the start of each frame, but also many gpu architectures have + * optimizations for how they handle the depth/stencil buffers and can get + * upset if they aren't cleared together at the start of the frame. + * + * FIXME: we need a way to assert that the clip stack currently isn't + * using the stencil buffer before clearing it here! + */ + cogl_framebuffer_clear4f (surface->framebuffer, + COGL_BUFFER_BIT_COLOR | + COGL_BUFFER_BIT_DEPTH | + COGL_BUFFER_BIT_STENCIL, + color->red * color->alpha, + color->green * color->alpha, + color->blue * color->alpha, + color->alpha); + return CAIRO_STATUS_SUCCESS; +} + +cairo_status_t +_cairo_cogl_path_fixed_rectangle (cairo_path_fixed_t *path, + cairo_fixed_t x, + cairo_fixed_t y, + cairo_fixed_t width, + cairo_fixed_t height) +{ + cairo_status_t status; + + status = _cairo_path_fixed_move_to (path, x, y); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_rel_line_to (path, width, 0); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_rel_line_to (path, 0, height); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_rel_line_to (path, -width, 0); + if (unlikely (status)) + return status; + + status = _cairo_path_fixed_close_path (path); + if (unlikely (status)) + return status; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_cogl_surface_paint (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip) +{ + cairo_cogl_surface_t *surface; + cairo_path_fixed_t path; + cairo_status_t status; + cairo_matrix_t identity; + + if (clip == NULL) { + if (op == CAIRO_OPERATOR_CLEAR) + return _cairo_cogl_surface_clear (abstract_surface, CAIRO_COLOR_TRANSPARENT); + else if (source->type == CAIRO_PATTERN_TYPE_SOLID && + (op == CAIRO_OPERATOR_SOURCE || + (op == CAIRO_OPERATOR_OVER && (((cairo_surface_t *)abstract_surface)->is_clear || _cairo_pattern_is_opaque_solid (source))))) { + return _cairo_cogl_surface_clear (abstract_surface, + &((cairo_solid_pattern_t *) source)->color); + } + } + + /* fallback to handling the paint in terms of a fill... */ + + surface = abstract_surface; + + _cairo_path_fixed_init (&path); + + status = _cairo_cogl_path_fixed_rectangle (&path, 0, 0, surface->width, surface->height); + if (unlikely (status)) + goto BAIL; + +#ifdef NEED_COGL_CONTEXT + /* XXX: in cairo-cogl-context.c we set some sideband data on the + * surface before issuing a fill so we need to do that here too... */ + surface->user_path = &path; + cairo_matrix_init_identity (&identity); + surface->ctm = &identity; + surface->ctm_inverse = &identity; + surface->path_is_rectangle = TRUE; + surface->path_rectangle_x = 0; + surface->path_rectangle_y = 0; + surface->path_rectangle_width = surface->width; + surface->path_rectangle_height = surface->height; +#endif + + status = _cairo_cogl_surface_fill (abstract_surface, + op, + source, + &path, + CAIRO_FILL_RULE_WINDING, + 1, + CAIRO_ANTIALIAS_DEFAULT, + clip); +BAIL: + _cairo_path_fixed_fini (&path); + return status; +} + +static CoglPipelineWrapMode +get_cogl_wrap_mode_for_extend (cairo_extend_t extend_mode) +{ + switch (extend_mode) + { + case CAIRO_EXTEND_NONE: + return COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE; + case CAIRO_EXTEND_PAD: + return COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE; + case CAIRO_EXTEND_REPEAT: + return COGL_PIPELINE_WRAP_MODE_REPEAT; + case CAIRO_EXTEND_REFLECT: + /* TODO: return COGL_PIPELINE_WRAP_MODE_MIRROR; */ + return CAIRO_EXTEND_REPEAT; + } + assert (0); /* not reached */ + return COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE; +} + +#if 0 +/* Given an arbitrary texture, check if it's already a pot texture and simply + * return it back if so. If not create a new pot texture, scale the old to + * fill it, unref the old and return a pointer to the new pot texture. */ +static cairo_int_status_t +_cairo_cogl_get_pot_texture (CoglContext *context, + CoglTexture *texture, + CoglTexture **pot_texture) +{ + int width = cogl_texture_get_width (texture); + int height = cogl_texture_get_height (texture); + int pot_width; + int pot_height; + CoglHandle offscreen = NULL; + CoglTexture2D *pot = NULL; + GError *error; + + pot_width = _cairo_cogl_util_next_p2 (width); + pot_height = _cairo_cogl_util_next_p2 (height); + + if (pot_width == width && pot_height == height) + return CAIRO_INT_STATUS_SUCCESS; + + for (;;) { + error = NULL; + pot = cogl_texture_2d_new_with_size (context, + pot_width, + pot_height, + cogl_texture_get_format (texture), + &error); + if (pot) + break; + else + g_error_free (error); + + if (pot_width > pot_height) + pot_width >>= 1; + else + pot_height >>= 1; + + if (!pot_width || !pot_height) + break; + } + + *pot_texture = COGL_TEXTURE (pot); + + if (!pot) + return CAIRO_INT_STATUS_NO_MEMORY; + + /* Use the GPU to do a bilinear filtered scale from npot to pot... */ + offscreen = cogl_offscreen_new_to_texture (COGL_TEXTURE (pot)); + error = NULL; + if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (offscreen), &error)) { + /* NB: if we don't pass an error then Cogl is allowed to simply abort + * automatically. */ + g_error_free (error); + cogl_object_unref (pot); + *pot_texture = NULL; + return CAIRO_INT_STATUS_NO_MEMORY; + } + + cogl_push_framebuffer (COGL_FRAMEBUFFER (offscreen)); + cogl_set_source_texture (texture); + cogl_rectangle (-1, 1, 1, -1); + cogl_pop_framebuffer (); + + cogl_object_unref (offscreen); +} +#endif + +/* NB: a reference for the texture is transferred to the caller which should + * be unrefed */ +static CoglTexture * +_cairo_cogl_acquire_surface_texture (cairo_cogl_surface_t *reference_surface, + cairo_surface_t *abstract_surface) +{ + cairo_image_surface_t *image; + cairo_image_surface_t *acquired_image = NULL; + void *image_extra; + CoglPixelFormat format; + cairo_image_surface_t *image_clone = NULL; + CoglTexture2D *texture; + GError *error = NULL; + cairo_surface_t *clone; + + if (abstract_surface->device == reference_surface->base.device) { + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)abstract_surface; + _cairo_cogl_surface_flush (surface); + return surface->texture ? cogl_object_ref (surface->texture) : NULL; + } + + if (abstract_surface->type == CAIRO_SURFACE_TYPE_COGL) { + if (_cairo_surface_is_subsurface (abstract_surface)) { + cairo_cogl_surface_t *surface; + + surface = (cairo_cogl_surface_t *) + _cairo_surface_subsurface_get_target (abstract_surface); + if (surface->base.device == reference_surface->base.device) + return surface->texture ? cogl_object_ref (surface->texture) : NULL; + } + } + + clone = _cairo_surface_has_snapshot (abstract_surface, &_cairo_cogl_surface_backend); + if (clone) { + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)clone; + return surface->texture ? cogl_object_ref (surface->texture) : NULL; + } + + g_warning ("Uploading image surface to texture"); + + if (_cairo_surface_is_image (abstract_surface)) { + image = (cairo_image_surface_t *)abstract_surface; + } else { + cairo_status_t status = _cairo_surface_acquire_source_image (abstract_surface, + &acquired_image, &image_extra); + if (unlikely (status)) { + g_warning ("acquire_source_image failed: %s [%d]\n", + cairo_status_to_string (status), status); + return NULL; + } + image = acquired_image; + } + + format = get_cogl_format_from_cairo_format (image->format); + if (!format) + { + image_clone = _cairo_image_surface_coerce (image); + if (unlikely (image_clone->base.status)) { + g_warning ("image_surface_coerce failed"); + texture = NULL; + goto BAIL; + } + + format = get_cogl_format_from_cairo_format (image_clone->format); + assert (format); + } + + texture = cogl_texture_2d_new_from_data (to_device(reference_surface->base.device)->cogl_context, + image->width, + image->height, + format, /* incoming */ + format, /* desired */ + image->stride, + image->data, + &error); + if (!texture) { + g_warning ("Failed to allocate texture: %s", error->message); + g_error_free (error); + goto BAIL; + } + + clone = _cairo_cogl_surface_create_full (to_device(reference_surface->base.device), + reference_surface->ignore_alpha, + NULL, COGL_TEXTURE (texture)); + + _cairo_surface_attach_snapshot (abstract_surface, clone, NULL); + + /* Attaching the snapshot will take a reference on the clone surface... */ + cairo_surface_destroy (clone); + +BAIL: + if (image_clone) + cairo_surface_destroy (&image_clone->base); + if (acquired_image) + _cairo_surface_release_source_image (abstract_surface, acquired_image, image_extra); + + return COGL_TEXTURE (texture); +} + +/* NB: a reference for the texture is transferred to the caller which should + * be unrefed */ +static CoglTexture * +_cairo_cogl_acquire_pattern_texture (const cairo_pattern_t *pattern, + cairo_cogl_surface_t *destination, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + cairo_cogl_texture_attributes_t *attributes) +{ + CoglTexture *texture = NULL; + + switch ((int)pattern->type) + { + case CAIRO_PATTERN_TYPE_SURFACE: { + cairo_surface_t *surface = ((cairo_surface_pattern_t *)pattern)->surface; + texture = _cairo_cogl_acquire_surface_texture (destination, surface); + if (!texture) + return NULL; + + /* XXX: determine if it would have no effect to change the + * extend mode to EXTEND_PAD instead since we can simply map + * EXTEND_PAD to CLAMP_TO_EDGE without needing fragment shader + * tricks or extra border texels. */ +#if 0 + /* TODO: We still need to consider HW such as SGX which doesn't have + * full support for NPOT textures. */ + if (pattern->extend == CAIRO_EXTEND_REPEAT || pattern->extend == CAIRO_EXTEND_REFLECT) { + _cairo_cogl_get_pot_texture (); + } +#endif + + cairo_matrix_init_identity (&attributes->matrix); + + /* Convert from un-normalized source coordinates in backend + * coordinates to normalized texture coordinates */ + cairo_matrix_scale (&attributes->matrix, + 1.0f / cogl_texture_get_width (texture), + 1.0f / cogl_texture_get_height (texture)); + + /* XXX: need to multiply in the pattern->matrix */ + + attributes->extend = pattern->extend; + attributes->filter = CAIRO_FILTER_BILINEAR; + attributes->has_component_alpha = pattern->has_component_alpha; + + attributes->s_wrap = get_cogl_wrap_mode_for_extend (pattern->extend); + attributes->t_wrap = attributes->s_wrap; + + return texture; + } + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: { + cairo_surface_t *surface; + cairo_matrix_t texture_matrix; + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + extents->width, extents->height); + if (_cairo_surface_offset_paint (surface, + extents->x, extents->y, + CAIRO_OPERATOR_SOURCE, + pattern, NULL)) { + cairo_surface_destroy (surface); + return NULL; + } + + texture = _cairo_cogl_acquire_surface_texture (destination, surface); + if (!texture) + goto BAIL; + + cairo_matrix_init_identity (&texture_matrix); + + /* Convert from un-normalized source coordinates in backend + * coordinates to normalized texture coordinates */ + cairo_matrix_scale (&texture_matrix, + 1.0f / cogl_texture_get_width (texture), + 1.0f / cogl_texture_get_height (texture)); + + cairo_matrix_translate (&texture_matrix, -extents->x, -extents->y); + + attributes->matrix = texture_matrix; + attributes->extend = pattern->extend; + attributes->filter = CAIRO_FILTER_NEAREST; + attributes->has_component_alpha = pattern->has_component_alpha; + + /* any pattern extend modes have already been dealt with... */ + attributes->s_wrap = COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE; + attributes->t_wrap = attributes->s_wrap; + +BAIL: + cairo_surface_destroy (surface); + + return texture; + } + case CAIRO_PATTERN_TYPE_LINEAR: { + cairo_linear_pattern_t *linear_pattern = (cairo_linear_pattern_t *)pattern; + cairo_cogl_linear_gradient_t *gradient; + cairo_cogl_linear_texture_entry_t *linear_texture; + cairo_int_status_t status; + float a, b; + float dist; + float scale; + float angle; + + status = _cairo_cogl_get_linear_gradient (to_device(destination->base.device), + pattern->extend, + linear_pattern->base.n_stops, + linear_pattern->base.stops, + &gradient); + if (unlikely (status)) + return NULL; + + linear_texture = _cairo_cogl_linear_gradient_texture_for_extend (gradient, pattern->extend); + + attributes->extend = pattern->extend; + attributes->filter = CAIRO_FILTER_BILINEAR; + attributes->has_component_alpha = pattern->has_component_alpha; + attributes->s_wrap = get_cogl_wrap_mode_for_extend (pattern->extend); + attributes->t_wrap = COGL_PIPELINE_WRAP_MODE_REPEAT; + + cairo_matrix_init_identity (&attributes->matrix); + + a = linear_pattern->pd2.x - linear_pattern->pd1.x; + b = linear_pattern->pd2.y - linear_pattern->pd1.y; + dist = sqrtf (a*a + b*b); + scale = 1.0f / dist; + angle = - atan2f (b, a); + + cairo_matrix_rotate (&attributes->matrix, angle); + cairo_matrix_scale (&attributes->matrix, scale, scale); + + cairo_matrix_translate (&attributes->matrix, + -linear_pattern->pd1.x, + -linear_pattern->pd1.y); + + /* XXX: this caught me out: cairo doesn't follow the standard + * maths convention for multiplying two matrices A x B - cairo + * does B x A so the final matrix is as if A's transforms were + * applied first. + */ + cairo_matrix_multiply (&attributes->matrix, + &pattern->matrix, + &attributes->matrix); + + return cogl_object_ref (linear_texture->texture); + } + default: + g_warning ("Un-supported source type"); + return NULL; + } +} + +static void +set_layer_texture_with_attributes (CoglPipeline *pipeline, + int layer_index, + CoglTexture *texture, + cairo_cogl_texture_attributes_t *attributes) +{ + cogl_pipeline_set_layer_texture (pipeline, layer_index, texture); + + if (!_cairo_matrix_is_identity (&attributes->matrix)) { + cairo_matrix_t *m = &attributes->matrix; + float texture_matrixfv[16] = { + m->xx, m->yx, 0, 0, + m->xy, m->yy, 0, 0, + 0, 0, 1, 0, + m->x0, m->y0, 0, 1 + }; + CoglMatrix texture_matrix; + cogl_matrix_init_from_array (&texture_matrix, texture_matrixfv); + cogl_pipeline_set_layer_matrix (pipeline, layer_index, &texture_matrix); + } + + if (attributes->s_wrap != attributes->t_wrap) { + cogl_pipeline_set_layer_wrap_mode_s (pipeline, layer_index, attributes->s_wrap); + cogl_pipeline_set_layer_wrap_mode_t (pipeline, layer_index, attributes->t_wrap); + } else + cogl_pipeline_set_layer_wrap_mode (pipeline, layer_index, attributes->s_wrap); +} + +static CoglPipeline * +get_source_mask_operator_destination_pipeline (const cairo_pattern_t *mask, + const cairo_pattern_t *source, + cairo_operator_t op, + cairo_cogl_surface_t *destination, + cairo_composite_rectangles_t *extents) +{ + cairo_cogl_template_type template_type; + CoglPipeline *pipeline; + + switch ((int)source->type) + { + case CAIRO_PATTERN_TYPE_SOLID: + template_type = mask ? + CAIRO_COGL_TEMPLATE_TYPE_MASK_SOLID : CAIRO_COGL_TEMPLATE_TYPE_SOLID; + break; + case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + template_type = mask ? + CAIRO_COGL_TEMPLATE_TYPE_MASK_TEXTURE : CAIRO_COGL_TEMPLATE_TYPE_TEXTURE; + break; + default: + g_warning ("Un-supported source type"); + return NULL; + } + + pipeline = cogl_pipeline_copy (to_device(destination->base.device)->template_pipelines[op][template_type]); + + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + cairo_solid_pattern_t *solid_pattern = (cairo_solid_pattern_t *)source; + cogl_pipeline_set_color4f (pipeline, + solid_pattern->color.red * solid_pattern->color.alpha, + solid_pattern->color.green * solid_pattern->color.alpha, + solid_pattern->color.blue * solid_pattern->color.alpha, + solid_pattern->color.alpha); + } else { + cairo_cogl_texture_attributes_t attributes; + CoglTexture *texture = + _cairo_cogl_acquire_pattern_texture (source, destination, + &extents->bounded, + &extents->source_sample_area, + &attributes); + if (!texture) + goto BAIL; + set_layer_texture_with_attributes (pipeline, 0, texture, &attributes); + cogl_object_unref (texture); + } + + if (mask) { + if (mask->type == CAIRO_PATTERN_TYPE_SOLID) { + cairo_solid_pattern_t *solid_pattern = (cairo_solid_pattern_t *)mask; + CoglColor color; + cogl_color_init_from_4f (&color, + solid_pattern->color.red * solid_pattern->color.alpha, + solid_pattern->color.green * solid_pattern->color.alpha, + solid_pattern->color.blue * solid_pattern->color.alpha, + solid_pattern->color.alpha); + cogl_pipeline_set_layer_combine_constant (pipeline, 1, &color); + } else { + cairo_cogl_texture_attributes_t attributes; + CoglTexture *texture = + _cairo_cogl_acquire_pattern_texture (mask, destination, + &extents->bounded, + &extents->mask_sample_area, + &attributes); + if (!texture) + goto BAIL; + set_layer_texture_with_attributes (pipeline, 1, texture, &attributes); + cogl_object_unref (texture); + } + } + + return pipeline; + +BAIL: + cogl_object_unref (pipeline); + return NULL; +} + +#if 0 +CoglPrimitive * +_cairo_cogl_rectangle_new_p2t2t2 (float x, + float y, + float width, + float height) +{ + CoglVertexP2 vertices[] = { + {x, y}, {x, y + height}, {x + width, y + height}, + {x, y}, {x + width, y + height}, {x + width, y} + }; + CoglAttributeBuffer *buffer = cogl_attribute_buffer_new (sizeof (vertices)); + CoglAttribute *pos = cogl_attribute_new (buffer, + "cogl_position_in", + sizeof (CoglVertexP2), + 0, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglAttribute *tex_coords0 = cogl_attribute_new (buffer, + "cogl_tex_coord0_in", + sizeof (CoglVertexP2), + 0, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglAttribute *tex_coords0 = cogl_attribute_new (buffer, + "cogl_tex_coord0_in", + sizeof (CoglVertexP2), + 0, + 2, + COGL_ATTRIBUTE_TYPE_FLOAT); + CoglPrimitive *prim; + + cogl_buffer_set_data (COGL_BUFFER (buffer), 0, vertices, sizeof (vertices)); + + /* The attributes will now keep the buffer alive... */ + cogl_object_unref (buffer); + + prim = cogl_primitive_new (COGL_VERTICES_MODE_TRIANGLES, + 6, pos, tex_coords, NULL); + + /* The primitive will now keep the attribute alive... */ + cogl_object_unref (pos); + + return prim; +} +#endif + +static void +_cairo_cogl_log_clip (cairo_cogl_surface_t *surface, + const cairo_clip_t *clip) +{ + if (!_cairo_clip_equal (clip, surface->last_clip)) { + _cairo_cogl_journal_log_clip (surface, clip); + _cairo_clip_destroy (surface->last_clip); + surface->last_clip = _cairo_clip_copy (clip); + } +} + +static void +_cairo_cogl_maybe_log_clip (cairo_cogl_surface_t *surface, + cairo_composite_rectangles_t *composite) +{ + cairo_clip_t *clip = composite->clip; + + if (_cairo_composite_rectangles_can_reduce_clip (composite, clip)) + clip = NULL; + + if (clip == NULL) { + if (_cairo_composite_rectangles_can_reduce_clip (composite, + surface->last_clip)) + return; + } + + _cairo_cogl_log_clip (surface, clip); +} + +static cairo_bool_t +is_operator_supported (cairo_operator_t op) +{ + switch ((int)op) { + case CAIRO_OPERATOR_SOURCE: + case CAIRO_OPERATOR_OVER: + case CAIRO_OPERATOR_IN: + case CAIRO_OPERATOR_DEST_OVER: + case CAIRO_OPERATOR_DEST_IN: + case CAIRO_OPERATOR_ADD: + return TRUE; + + default: + return FALSE; + } +} + +static cairo_int_status_t +_cairo_cogl_surface_mask (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_clip_t *clip) +{ + cairo_cogl_surface_t *surface = abstract_surface; + cairo_composite_rectangles_t extents; + cairo_status_t status; + CoglPipeline *pipeline; + cairo_matrix_t identity; + + /* XXX: Use this to smoke test the acquire_source/dest_image fallback + * paths... */ + //return CAIRO_INT_STATUS_UNSUPPORTED; + + if (!is_operator_supported (op)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_composite_rectangles_init_for_mask (&extents, + &surface->base, + op, source, mask, clip); + if (unlikely (status)) + return status; + + pipeline = get_source_mask_operator_destination_pipeline (mask, source, + op, surface, &extents); + if (!pipeline){ + status = CAIRO_INT_STATUS_UNSUPPORTED; + goto BAIL; + } + + _cairo_cogl_maybe_log_clip (surface, &extents); + + cairo_matrix_init_identity (&identity); + _cairo_cogl_journal_log_rectangle (surface, pipeline, + extents.bounded.x, + extents.bounded.y, + extents.bounded.width, + extents.bounded.height, + 2, + &identity); + + /* The journal will take a reference on the pipeline and clip_path... */ + cogl_object_unref (pipeline); + +BAIL: + return status; +} + +static int +_cairo_cogl_source_n_layers (const cairo_pattern_t *source) +{ + switch ((int)source->type) + { + case CAIRO_PATTERN_TYPE_SOLID: + return 0; + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_SURFACE: + return 1; + default: + g_warning ("Unsupported source type"); + return 0; + } +} + +static cairo_bool_t +_cairo_cogl_path_fill_meta_equal (const void *key_a, const void *key_b) +{ + const cairo_cogl_path_fill_meta_t *meta0 = key_a; + const cairo_cogl_path_fill_meta_t *meta1 = key_b; + + return _cairo_path_fixed_equal (meta0->user_path, meta1->user_path); +} + +static cairo_bool_t +_cairo_cogl_stroke_style_equal (const cairo_stroke_style_t *a, + const cairo_stroke_style_t *b) +{ + if (a->line_width == b->line_width && + a->line_cap == b->line_cap && + a->line_join == b->line_join && + a->miter_limit == b->miter_limit && + a->num_dashes == b->num_dashes && + a->dash_offset == b->dash_offset) + { + unsigned int i; + for (i = 0; i < a->num_dashes; i++) { + if (a->dash[i] != b->dash[i]) + return FALSE; + } + } + return TRUE; +} + +static cairo_bool_t +_cairo_cogl_path_stroke_meta_equal (const void *key_a, const void *key_b) +{ + const cairo_cogl_path_stroke_meta_t *meta0 = key_a; + const cairo_cogl_path_stroke_meta_t *meta1 = key_b; + + return _cairo_cogl_stroke_style_equal (&meta0->style, &meta1->style) && + _cairo_path_fixed_equal (meta0->user_path, meta1->user_path); +} + +static cairo_cogl_path_stroke_meta_t * +_cairo_cogl_path_stroke_meta_reference (cairo_cogl_path_stroke_meta_t *meta) +{ + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&meta->ref_count)); + + _cairo_reference_count_inc (&meta->ref_count); + + return meta; +} + +static void +_cairo_cogl_path_stroke_meta_destroy (cairo_cogl_path_stroke_meta_t *meta) +{ + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&meta->ref_count)); + + if (! _cairo_reference_count_dec_and_test (&meta->ref_count)) + return; + + _cairo_path_fixed_fini (meta->user_path); + free (meta->user_path); + + _cairo_stroke_style_fini (&meta->style); + + if (meta->prim) + cogl_object_unref (meta->prim); + + free (meta); +} + +static cairo_cogl_path_stroke_meta_t * +_cairo_cogl_path_stroke_meta_lookup (cairo_cogl_device_t *ctx, + unsigned long hash, + cairo_path_fixed_t *user_path, + const cairo_stroke_style_t *style, + double tolerance) +{ + cairo_cogl_path_stroke_meta_t *ret; + cairo_cogl_path_stroke_meta_t lookup; + + lookup.cache_entry.hash = hash; + lookup.user_path = user_path; + lookup.style = *style; + lookup.tolerance = tolerance; + + ret = _cairo_cache_lookup (&ctx->path_stroke_staging_cache, &lookup.cache_entry); + if (!ret) + ret = _cairo_cache_lookup (&ctx->path_stroke_prim_cache, &lookup.cache_entry); + return ret; +} + +static void +_cairo_cogl_path_stroke_meta_set_prim_size (cairo_cogl_surface_t *surface, + cairo_cogl_path_stroke_meta_t *meta, + size_t size) +{ + /* now that we know the meta structure is associated with a primitive + * we promote it from the staging cache into the primitive cache. + */ + + /* XXX: _cairo_cache borks if you try and remove an entry that's already + * been evicted so we explicitly look it up first... */ + if (_cairo_cache_lookup (&to_device(surface->base.device)->path_stroke_staging_cache, &meta->cache_entry)) { + _cairo_cogl_path_stroke_meta_reference (meta); + _cairo_cache_remove (&to_device(surface->base.device)->path_stroke_staging_cache, &meta->cache_entry); + } + + meta->cache_entry.size = size; + if (_cairo_cache_insert (&to_device(surface->base.device)->path_stroke_prim_cache, &meta->cache_entry) != + CAIRO_STATUS_SUCCESS) + _cairo_cogl_path_stroke_meta_destroy (meta); +} + +static unsigned int +_cairo_cogl_stroke_style_hash (unsigned int hash, + const cairo_stroke_style_t *style) +{ + unsigned int i; + hash = _cairo_hash_bytes (hash, &style->line_width, sizeof (style->line_width)); + hash = _cairo_hash_bytes (hash, &style->line_cap, sizeof (style->line_cap)); + hash = _cairo_hash_bytes (hash, &style->line_join, sizeof (style->line_join)); + hash = _cairo_hash_bytes (hash, &style->miter_limit, sizeof (style->miter_limit)); + hash = _cairo_hash_bytes (hash, &style->num_dashes, sizeof (style->num_dashes)); + hash = _cairo_hash_bytes (hash, &style->dash_offset, sizeof (style->dash_offset)); + for (i = 0; i < style->num_dashes; i++) + hash = _cairo_hash_bytes (hash, &style->dash[i], sizeof (double)); + return hash; +} + +static cairo_cogl_path_stroke_meta_t * +_cairo_cogl_get_path_stroke_meta (cairo_cogl_surface_t *surface, + const cairo_stroke_style_t *style, + double tolerance) +{ + unsigned long hash; + cairo_cogl_path_stroke_meta_t *meta = NULL; + cairo_path_fixed_t *meta_path = NULL; + cairo_status_t status; + + if (!surface->user_path) + return NULL; + + hash = _cairo_path_fixed_hash (surface->user_path); + hash = _cairo_cogl_stroke_style_hash (hash, style); + hash = _cairo_hash_bytes (hash, &tolerance, sizeof (tolerance)); + + meta = _cairo_cogl_path_stroke_meta_lookup (to_device(surface->base.device), hash, + surface->user_path, style, tolerance); + if (meta) + return meta; + + meta = calloc (1, sizeof (cairo_cogl_path_stroke_meta_t)); + if (!meta) + goto BAIL; + CAIRO_REFERENCE_COUNT_INIT (&meta->ref_count, 1); + meta->cache_entry.hash = hash; + meta->counter = 0; + meta_path = malloc (sizeof (cairo_path_fixed_t)); + if (!meta_path) + goto BAIL; + /* FIXME: we should add a ref-counted wrapper for our user_paths + * so we don't have to keep copying them here! */ + status = _cairo_path_fixed_init_copy (meta_path, surface->user_path); + if (unlikely (status)) + goto BAIL; + meta->user_path = meta_path; + meta->ctm_inverse = *surface->ctm_inverse; + + status = _cairo_stroke_style_init_copy (&meta->style, style); + if (unlikely (status)) { + _cairo_path_fixed_fini (meta_path); + goto BAIL; + } + meta->tolerance = tolerance; + + return meta; + +BAIL: + free (meta_path); + free (meta); + return NULL; +} + +static cairo_int_status_t +_cairo_cogl_stroke_to_primitive (cairo_cogl_surface_t *surface, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + int n_layers, + cairo_bool_t one_shot, + CoglPrimitive **primitive, + size_t *size) +{ + cairo_traps_t traps; + cairo_int_status_t status; + + _cairo_traps_init (&traps); + + status = _cairo_path_fixed_stroke_to_traps (path, style, ctm, ctm_inverse, tolerance, + &traps); + if (unlikely (status)) + goto BAIL; + + if (traps.num_traps == 0) { + status = CAIRO_INT_STATUS_NOTHING_TO_DO; + goto BAIL; + } + + *size = traps.num_traps * sizeof (CoglVertexP2) * 6; + + //g_print ("new stroke prim\n"); + *primitive = _cairo_cogl_traps_to_composite_prim (surface, &traps, n_layers, one_shot); + if (!*primitive) { + status = CAIRO_INT_STATUS_NO_MEMORY; + goto BAIL; + } + +BAIL: + _cairo_traps_fini (&traps); + return status; +} + +static cairo_int_status_t +_cairo_cogl_surface_stroke (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)abstract_surface; + cairo_composite_rectangles_t extents; + CoglPipeline *pipeline; + cairo_status_t status; +#ifdef ENABLE_PATH_CACHE + cairo_cogl_path_stroke_meta_t *meta = NULL; + cairo_matrix_t transform_matrix; +#endif + cairo_matrix_t *transform = NULL; + gboolean one_shot = TRUE; + CoglPrimitive *prim = NULL; + cairo_bool_t new_prim = FALSE; + + if (! is_operator_supported (op)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* FIXME - support unbounded operators */ + if (!_cairo_operator_bounded_by_mask (op)) { + /* Currently IN this is the only unbounded operator we aim to support + * in cairo-cogl. */ + assert (op == CAIRO_OPERATOR_IN); + g_warning ("FIXME: handle stroking with unbounded operators!"); + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + status = _cairo_composite_rectangles_init_for_stroke (&extents, + &surface->base, + op, source, path, + style, + ctm, + clip); + if (unlikely (status)) + return status; + +#ifdef ENABLE_PATH_CACHE + /* FIXME: we are currently leaking the meta state if we don't reach + * the cache_insert at the end. */ + meta = _cairo_cogl_get_path_stroke_meta (surface, style, tolerance); + if (meta) { + prim = meta->prim; + if (prim) { + cairo_matrix_multiply (&transform_matrix, &meta->ctm_inverse, surface->ctm); + transform = &transform_matrix; + } else if (meta->counter++ > 10) + one_shot = FALSE; + } +#endif + + if (!prim) { + int n_layers = _cairo_cogl_source_n_layers (source); + size_t prim_size = 0; + status = _cairo_cogl_stroke_to_primitive (surface, path, style, + ctm, ctm_inverse, tolerance, + n_layers, one_shot, + &prim, &prim_size); + if (unlikely (status)) + return status; + new_prim = TRUE; +#if defined (ENABLE_PATH_CACHE) + if (meta) { + meta->prim = cogl_object_ref (prim); + _cairo_cogl_path_stroke_meta_set_prim_size (surface, meta, prim_size); + } +#endif + } + + pipeline = get_source_mask_operator_destination_pipeline (NULL, source, + op, surface, &extents); + if (!pipeline) + return CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_cogl_maybe_log_clip (surface, &extents); + + _cairo_cogl_journal_log_primitive (surface, pipeline, prim, transform); + + /* The journal will take a reference on the pipeline and primitive... */ + cogl_object_unref (pipeline); + if (new_prim) + cogl_object_unref (prim); + + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_cogl_path_fill_meta_t * +_cairo_cogl_path_fill_meta_reference (cairo_cogl_path_fill_meta_t *meta) +{ + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&meta->ref_count)); + + _cairo_reference_count_inc (&meta->ref_count); + + return meta; +} + +static void +_cairo_cogl_path_fill_meta_destroy (cairo_cogl_path_fill_meta_t *meta) +{ + assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&meta->ref_count)); + + if (! _cairo_reference_count_dec_and_test (&meta->ref_count)) + return; + + _cairo_path_fixed_fini (meta->user_path); + free (meta->user_path); + + if (meta->prim) + cogl_object_unref (meta->prim); + + free (meta); +} + +static cairo_cogl_path_fill_meta_t * +_cairo_cogl_path_fill_meta_lookup (cairo_cogl_device_t *ctx, + unsigned long hash, + cairo_path_fixed_t *user_path) +{ + cairo_cogl_path_fill_meta_t *ret; + cairo_cogl_path_fill_meta_t lookup; + + lookup.cache_entry.hash = hash; + lookup.user_path = user_path; + + ret = _cairo_cache_lookup (&ctx->path_fill_staging_cache, &lookup.cache_entry); + if (!ret) + ret = _cairo_cache_lookup (&ctx->path_fill_prim_cache, &lookup.cache_entry); + return ret; +} + +static void +_cairo_cogl_path_fill_meta_set_prim_size (cairo_cogl_surface_t *surface, + cairo_cogl_path_fill_meta_t *meta, + size_t size) +{ + /* now that we know the meta structure is associated with a primitive + * we promote it from the staging cache into the primitive cache. + */ + + /* XXX: _cairo_cache borks if you try and remove an entry that's already + * been evicted so we explicitly look it up first... */ + if (_cairo_cache_lookup (&to_device(surface->base.device)->path_fill_staging_cache, &meta->cache_entry)) { + _cairo_cogl_path_fill_meta_reference (meta); + _cairo_cache_remove (&to_device(surface->base.device)->path_fill_staging_cache, &meta->cache_entry); + } + + meta->cache_entry.size = size; + if (_cairo_cache_insert (&to_device(surface->base.device)->path_fill_prim_cache, &meta->cache_entry) != + CAIRO_STATUS_SUCCESS) + _cairo_cogl_path_fill_meta_destroy (meta); +} + +static cairo_cogl_path_fill_meta_t * +_cairo_cogl_get_path_fill_meta (cairo_cogl_surface_t *surface) +{ + unsigned long hash; + cairo_cogl_path_fill_meta_t *meta = NULL; + cairo_path_fixed_t *meta_path = NULL; + cairo_status_t status; + + if (!surface->user_path) + return NULL; + + hash = _cairo_path_fixed_hash (surface->user_path); + + meta = _cairo_cogl_path_fill_meta_lookup (to_device(surface->base.device), + hash, surface->user_path); + if (meta) + return meta; + + meta = calloc (1, sizeof (cairo_cogl_path_fill_meta_t)); + if (!meta) + goto BAIL; + meta->cache_entry.hash = hash; + meta->counter = 0; + CAIRO_REFERENCE_COUNT_INIT (&meta->ref_count, 1); + meta_path = malloc (sizeof (cairo_path_fixed_t)); + if (!meta_path) + goto BAIL; + /* FIXME: we should add a ref-counted wrapper for our user_paths + * so we don't have to keep copying them here! */ + status = _cairo_path_fixed_init_copy (meta_path, surface->user_path); + if (unlikely (status)) + goto BAIL; + meta->user_path = meta_path; + meta->ctm_inverse = *surface->ctm_inverse; + + /* To start with - until we associate a CoglPrimitive with the meta + * structure - we keep the meta in a staging structure until we + * see whether it actually gets re-used. */ + meta->cache_entry.size = 1; + if (_cairo_cache_insert (&to_device(surface->base.device)->path_fill_staging_cache, &meta->cache_entry) != + CAIRO_STATUS_SUCCESS) + _cairo_cogl_path_fill_meta_destroy (meta); + + return meta; + +BAIL: + free (meta_path); + free (meta); + return NULL; +} + +static cairo_int_status_t +_cairo_cogl_surface_fill (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_cogl_surface_t *surface = abstract_surface; + cairo_composite_rectangles_t extents; + cairo_status_t status; +#ifdef ENABLE_PATH_CACHE + cairo_cogl_path_fill_meta_t *meta = NULL; + cairo_matrix_t transform_matrix; +#endif + cairo_matrix_t *transform = NULL; + cairo_bool_t one_shot = TRUE; + CoglPrimitive *prim = NULL; + cairo_bool_t new_prim = FALSE; + CoglPipeline *pipeline; + + if (! is_operator_supported (op)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* FIXME - support unbounded operators */ + if (!_cairo_operator_bounded_by_mask (op)) { + /* Currently IN this is the only unbounded operator we aim to support + * in cairo-cogl. */ + assert (op == CAIRO_OPERATOR_IN); + g_warning ("FIXME: handle filling with unbounded operators!"); + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + status = _cairo_composite_rectangles_init_for_fill (&extents, + &surface->base, + op, source, path, + clip); + if (unlikely (status)) + return status; + +#ifndef FILL_WITH_COGL_PATH +#ifdef ENABLE_PATH_CACHE + meta = _cairo_cogl_get_path_fill_meta (surface); + if (meta) { + prim = meta->prim; + if (prim) { + cairo_matrix_multiply (&transform_matrix, &meta->ctm_inverse, surface->ctm); + transform = &transform_matrix; + } else if (meta->counter++ > 10) + one_shot = FALSE; + } +#endif /* ENABLE_PATH_CACHE */ + + if (!prim) { + int n_layers = _cairo_cogl_source_n_layers (source); + size_t prim_size; + status = _cairo_cogl_fill_to_primitive (surface, path, fill_rule, tolerance, + one_shot, n_layers, &prim, &prim_size); + if (unlikely (status)) + return status; + new_prim = TRUE; +#ifdef ENABLE_PATH_CACHE + if (meta) { + meta->prim = cogl_object_ref (prim); + _cairo_cogl_path_fill_meta_set_prim_size (surface, meta, prim_size); + } +#endif /* ENABLE_PATH_CACHE */ + } + +#endif /* !FILL_WITH_COGL_PATH */ + + pipeline = get_source_mask_operator_destination_pipeline (NULL, source, + op, surface, &extents); + if (!pipeline) + return CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_cogl_maybe_log_clip (surface, &extents); + +#ifndef FILL_WITH_COGL_PATH + _cairo_cogl_journal_log_primitive (surface, pipeline, prim, transform); + /* The journal will take a reference on the prim */ + if (new_prim) + cogl_object_unref (prim); +#else + CoglPath * cogl_path = _cairo_cogl_util_path_from_cairo (path, fill_rule, tolerance); + _cairo_cogl_journal_log_path (surface, pipeline, cogl_path); + cogl_object_unref (cogl_path); +#endif + + /* The journal will take a reference on the pipeline... */ + cogl_object_unref (pipeline); + + return CAIRO_INT_STATUS_SUCCESS; +} + +cairo_int_status_t +_cairo_cogl_surface_fill_rectangle (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + double x, + double y, + double width, + double height, + cairo_matrix_t *ctm, + const cairo_clip_t *clip) +{ + cairo_cogl_surface_t *surface = abstract_surface; + CoglPipeline *pipeline; + + if (! is_operator_supported (op)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* FIXME - support unbounded operators */ + if (!_cairo_operator_bounded_by_mask (op)) { + /* Currently IN this is the only unbounded operator we aim to support + * in cairo-cogl. */ + assert (op == CAIRO_OPERATOR_IN); + g_warning ("FIXME: handle filling with unbounded operators!"); + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + /* FIXME */ +#if 0 + status = _cairo_composite_rectangles_init_for_fill_rectangle (&extents, + &surface->base, + op, source, path, + clip); + if (unlikely (status)) + return status; +#endif + + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + double x1 = x; + double y1 = y; + double x2 = x1 + width; + double y2 = y1 + height; + + pipeline = get_source_mask_operator_destination_pipeline (NULL, source, + op, surface, NULL); + if (!pipeline) + return CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_cogl_log_clip (surface, clip); + + _cairo_cogl_journal_log_rectangle (surface, + pipeline, + x1, y1, x2, y2, + 0, + ctm); + return CAIRO_INT_STATUS_SUCCESS; + } else + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* TODO: + * We need to acquire the textures here, look at the corresponding + * attributes and see if this can be trivially handled by logging + * a textured rectangle only needing simple scaling or translation + * of texture coordinates. + * + * At this point we should also aim to remap the default + * EXTEND_NONE mode to EXTEND_PAD which is more efficient if we + * know it makes no difference either way since we can map that to + * CLAMP_TO_EDGE. + */ +} + +static cairo_int_status_t +_cairo_cogl_surface_show_glyphs (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + const cairo_clip_t *clip) +{ + return CAIRO_INT_STATUS_UNSUPPORTED; +} + +const cairo_surface_backend_t _cairo_cogl_surface_backend = { + CAIRO_SURFACE_TYPE_COGL, + _cairo_cogl_surface_finish, +#ifdef NEED_COGL_CONTEXT + _cairo_cogl_context_create, +#else + _cairo_default_context_create, +#endif + + _cairo_cogl_surface_create_similar, + NULL, /* create similar image */ + NULL, /* map to image */ + NULL, /* unmap image */ + + _cairo_surface_default_source, + _cairo_cogl_surface_acquire_source_image, + _cairo_cogl_surface_release_source_image, + NULL, /* snapshot */ + + NULL, /* copy_page */ + NULL, /* show_page */ + + _cairo_cogl_surface_get_extents, + NULL, /* get_font_options */ + + _cairo_cogl_surface_flush, /* flush */ + NULL, /* mark_dirty_rectangle */ + + _cairo_cogl_surface_paint, + _cairo_cogl_surface_mask, + _cairo_cogl_surface_stroke, + _cairo_cogl_surface_fill, + NULL, /* fill_stroke*/ + _cairo_surface_fallback_glyphs, +}; + +static cairo_surface_t * +_cairo_cogl_surface_create_full (cairo_cogl_device_t *dev, + cairo_bool_t ignore_alpha, + CoglFramebuffer *framebuffer, + CoglTexture *texture) +{ + cairo_cogl_surface_t *surface; + cairo_status_t status; + + status = cairo_device_acquire (&dev->base); + if (unlikely (status)) + return _cairo_surface_create_in_error (status); + + surface = malloc (sizeof (cairo_cogl_surface_t)); + if (unlikely (surface == NULL)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + surface->ignore_alpha = ignore_alpha; + + surface->framebuffer = framebuffer; + if (framebuffer) { + surface->width = cogl_framebuffer_get_width (framebuffer); + surface->height = cogl_framebuffer_get_height (framebuffer); + surface->cogl_format = cogl_framebuffer_get_color_format (framebuffer); + cogl_object_ref (framebuffer); + } + + /* FIXME: If texture == NULL and we are given an offscreen framebuffer + * then we want a way to poke inside the framebuffer to get a texture */ + surface->texture = texture; + if (texture) { + if (!framebuffer) { + surface->width = cogl_texture_get_width (texture); + surface->height = cogl_texture_get_height (texture); + surface->cogl_format = cogl_texture_get_format (texture); + } + cogl_object_ref (texture); + } + + assert(surface->width && surface->height); + + surface->journal = NULL; + + surface->buffer_stack = NULL; + surface->buffer_stack_size = 4096; + + surface->last_clip = NULL; + + surface->n_clip_updates_per_frame = 0; + + _cairo_surface_init (&surface->base, + &_cairo_cogl_surface_backend, + &dev->base, + CAIRO_CONTENT_COLOR_ALPHA); + + return &surface->base; +} + +cairo_surface_t * +cairo_cogl_surface_create (cairo_device_t *abstract_device, + CoglFramebuffer *framebuffer) +{ + cairo_cogl_device_t *dev = (cairo_cogl_device_t *)abstract_device; + + if (abstract_device == NULL) + return _cairo_surface_create_in_error (CAIRO_STATUS_DEVICE_ERROR); + + if (abstract_device->status) + return _cairo_surface_create_in_error (abstract_device->status); + + if (abstract_device->backend->type != CAIRO_DEVICE_TYPE_COGL) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH)); + + return _cairo_cogl_surface_create_full (dev, FALSE, framebuffer, NULL); +} +slim_hidden_def (cairo_cogl_surface_create); + +CoglFramebuffer * +cairo_cogl_surface_get_framebuffer (cairo_surface_t *abstract_surface) +{ + cairo_cogl_surface_t *surface; + + if (abstract_surface->backend != &_cairo_cogl_surface_backend) { + _cairo_error_throw (CAIRO_STATUS_SURFACE_TYPE_MISMATCH); + return NULL; + } + + surface = (cairo_cogl_surface_t *) abstract_surface; + + return surface->framebuffer; +} +slim_hidden_def (cairo_cogl_surface_get_framebuffer); + +CoglTexture * +cairo_cogl_surface_get_texture (cairo_surface_t *abstract_surface) +{ + cairo_cogl_surface_t *surface; + + if (abstract_surface->backend != &_cairo_cogl_surface_backend) { + _cairo_error_throw (CAIRO_STATUS_SURFACE_TYPE_MISMATCH); + return NULL; + } + + surface = (cairo_cogl_surface_t *) abstract_surface; + + return surface->texture; +} +slim_hidden_def (cairo_cogl_surface_get_texture); + +static cairo_status_t +_cairo_cogl_device_flush (void *device) +{ + cairo_status_t status; + + status = cairo_device_acquire (device); + if (unlikely (status)) + return status; + + /* XXX: we don't need to flush Cogl here, we just need to flush + * any batching we do of compositing primitives. */ + + cairo_device_release (device); + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_cogl_device_finish (void *device) +{ + cairo_status_t status; + + status = cairo_device_acquire (device); + if (unlikely (status)) + return; + + /* XXX: Drop references to external resources */ + + cairo_device_release (device); +} + +static void +_cairo_cogl_device_destroy (void *device) +{ + cairo_cogl_device_t *dev = device; + + /* FIXME: Free stuff! */ + + g_free (dev); +} + +static const cairo_device_backend_t _cairo_cogl_device_backend = { + CAIRO_DEVICE_TYPE_COGL, + + NULL, /* lock */ + NULL, /* unlock */ + + _cairo_cogl_device_flush, + _cairo_cogl_device_finish, + _cairo_cogl_device_destroy, +}; + +static cairo_bool_t +set_blend (CoglPipeline *pipeline, const char *blend_string) +{ + GError *error = NULL; + if (!cogl_pipeline_set_blend (pipeline, blend_string, &error)) { + g_warning ("Unsupported blend string with current gpu/driver: %s", blend_string); + g_error_free (error); + return FALSE; + } + return TRUE; +} + +static cairo_bool_t +_cairo_cogl_setup_op_state (CoglPipeline *pipeline, cairo_operator_t op) +{ + cairo_bool_t status = FALSE; + + switch ((int)op) + { + case CAIRO_OPERATOR_SOURCE: + status = set_blend (pipeline, "RGBA = ADD (SRC_COLOR, 0)"); + break; + case CAIRO_OPERATOR_OVER: + status = set_blend (pipeline, "RGBA = ADD (SRC_COLOR, DST_COLOR * (1 - SRC_COLOR[A]))"); + break; + case CAIRO_OPERATOR_IN: + status = set_blend (pipeline, "RGBA = ADD (SRC_COLOR * DST_COLOR[A], 0)"); + break; + case CAIRO_OPERATOR_DEST_OVER: + status = set_blend (pipeline, "RGBA = ADD (SRC_COLOR * (1 - DST_COLOR[A]), DST_COLOR)"); + break; + case CAIRO_OPERATOR_DEST_IN: + status = set_blend (pipeline, "RGBA = ADD (0, DST_COLOR * SRC_COLOR[A])"); + break; + case CAIRO_OPERATOR_ADD: + status = set_blend (pipeline, "RGBA = ADD (SRC_COLOR, DST_COLOR)"); + break; + } + + return status; +} + +static void +create_templates_for_op (cairo_cogl_device_t *dev, cairo_operator_t op) +{ + CoglPipeline *base = cogl_pipeline_new (); + CoglPipeline *pipeline; + CoglColor color; + + if (!_cairo_cogl_setup_op_state (base, op)) { + cogl_object_unref (base); + return; + } + + dev->template_pipelines[op][CAIRO_COGL_TEMPLATE_TYPE_SOLID] = base; + + pipeline = cogl_pipeline_copy (base); + cogl_pipeline_set_layer_texture (pipeline, 0, dev->dummy_texture); + dev->template_pipelines[op][CAIRO_COGL_TEMPLATE_TYPE_TEXTURE] = pipeline; + + pipeline = cogl_pipeline_copy (base); + cogl_pipeline_set_layer_combine (pipeline, 1, + "RGBA = MODULATE (PREVIOUS, CONSTANT[A])", + NULL); + cogl_pipeline_set_layer_combine_constant (pipeline, 1, &color); + cogl_pipeline_set_layer_texture (pipeline, 1, dev->dummy_texture); + dev->template_pipelines[op][CAIRO_COGL_TEMPLATE_TYPE_MASK_SOLID] = pipeline; + + pipeline = cogl_pipeline_copy (base); + cogl_pipeline_set_layer_combine (pipeline, 1, + "RGBA = MODULATE (PREVIOUS, TEXTURE[A])", + NULL); + cogl_pipeline_set_layer_texture (pipeline, 1, dev->dummy_texture); + dev->template_pipelines[op][CAIRO_COGL_TEMPLATE_TYPE_MASK_TEXTURE] = pipeline; +} + +cairo_device_t * +cairo_cogl_device_create (CoglContext *cogl_context) +{ + cairo_cogl_device_t *dev = g_new0 (cairo_cogl_device_t, 1); + cairo_status_t status; + + dev->backend_vtable_initialized = FALSE; + + dev->cogl_context = cogl_context; + + dev->dummy_texture = cogl_texture_new_with_size (1, 1, + COGL_TEXTURE_NO_SLICING, + COGL_PIXEL_FORMAT_ANY); + if (!dev->dummy_texture) + goto ERROR; + + memset (dev->template_pipelines, 0, sizeof (dev->template_pipelines)); + create_templates_for_op (dev, CAIRO_OPERATOR_SOURCE); + create_templates_for_op (dev, CAIRO_OPERATOR_OVER); + create_templates_for_op (dev, CAIRO_OPERATOR_IN); + create_templates_for_op (dev, CAIRO_OPERATOR_DEST_OVER); + create_templates_for_op (dev, CAIRO_OPERATOR_DEST_IN); + create_templates_for_op (dev, CAIRO_OPERATOR_ADD); + + status = _cairo_cache_init (&dev->linear_cache, + _cairo_cogl_linear_gradient_equal, + NULL, + (cairo_destroy_func_t) _cairo_cogl_linear_gradient_destroy, + CAIRO_COGL_LINEAR_GRADIENT_CACHE_SIZE); + if (unlikely (status)) + return _cairo_device_create_in_error(status); + + status = _cairo_cache_init (&dev->path_fill_staging_cache, + _cairo_cogl_path_fill_meta_equal, + NULL, + (cairo_destroy_func_t) _cairo_cogl_path_fill_meta_destroy, + 1000); + + status = _cairo_cache_init (&dev->path_stroke_staging_cache, + _cairo_cogl_path_stroke_meta_equal, + NULL, + (cairo_destroy_func_t) _cairo_cogl_path_stroke_meta_destroy, + 1000); + + status = _cairo_cache_init (&dev->path_fill_prim_cache, + _cairo_cogl_path_fill_meta_equal, + NULL, + (cairo_destroy_func_t) _cairo_cogl_path_fill_meta_destroy, + CAIRO_COGL_PATH_META_CACHE_SIZE); + + status = _cairo_cache_init (&dev->path_stroke_prim_cache, + _cairo_cogl_path_stroke_meta_equal, + NULL, + (cairo_destroy_func_t) _cairo_cogl_path_stroke_meta_destroy, + CAIRO_COGL_PATH_META_CACHE_SIZE); + + _cairo_device_init (&dev->base, &_cairo_cogl_device_backend); + return &dev->base; + +ERROR: + g_free (dev); + return NULL; +} +slim_hidden_def (cairo_cogl_device_create); + +void +cairo_cogl_surface_end_frame (cairo_surface_t *abstract_surface) +{ + cairo_cogl_surface_t *surface = (cairo_cogl_surface_t *)abstract_surface; + cairo_surface_flush (abstract_surface); + + //g_print ("n_clip_update_per_frame = %d\n", surface->n_clip_updates_per_frame); + surface->n_clip_updates_per_frame = 0; +} +slim_hidden_def (cairo_cogl_surface_end_frame); diff --git a/src/cairo-cogl-utils-private.h b/src/cairo-cogl-utils-private.h new file mode 100644 index 0000000..ee77f30 --- /dev/null +++ b/src/cairo-cogl-utils-private.h @@ -0,0 +1,54 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +#ifndef CAIRO_COGL_UTILS_PRIVATE_H +#define CAIRO_COGL_UTILS_PRIVATE_H + +#include "cairo-path-fixed-private.h" +#include + +CoglPath * +_cairo_cogl_util_path_from_cairo (const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + float tolerance); + +int +_cairo_cogl_util_next_p2 (int a); + +#define CAIRO_FIXED_ONE_FLOAT ((float)(1 << CAIRO_FIXED_FRAC_BITS)) + +static inline float +_cairo_cogl_util_fixed_to_float (cairo_fixed_t f) +{ + return ((float) f) / CAIRO_FIXED_ONE_FLOAT; +} + +#endif /* CAIRO_COGL_UTILS_PRIVATE_H */ diff --git a/src/cairo-cogl-utils.c b/src/cairo-cogl-utils.c new file mode 100644 index 0000000..4f02aaa --- /dev/null +++ b/src/cairo-cogl-utils.c @@ -0,0 +1,126 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.og/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * Contributor(s): + * Robert Bragg + */ + +#include "cairoint.h" +#include "cairo-cogl-utils-private.h" + +#include +#include + +static cairo_status_t +_cogl_move_to (void *closure, + const cairo_point_t *point) +{ + cogl_path_move_to (closure, + _cairo_cogl_util_fixed_to_float (point->x), + _cairo_cogl_util_fixed_to_float (point->y)); + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cogl_line_to (void *closure, + const cairo_point_t *point) +{ + cogl_path_line_to (closure, + _cairo_cogl_util_fixed_to_float (point->x), + _cairo_cogl_util_fixed_to_float (point->y)); + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cogl_curve_to (void *closure, + const cairo_point_t *p0, + const cairo_point_t *p1, + const cairo_point_t *p2) +{ + cogl_path_curve_to (closure, + _cairo_cogl_util_fixed_to_float (p0->x), + _cairo_cogl_util_fixed_to_float (p0->y), + _cairo_cogl_util_fixed_to_float (p1->x), + _cairo_cogl_util_fixed_to_float (p1->y), + _cairo_cogl_util_fixed_to_float (p2->x), + _cairo_cogl_util_fixed_to_float (p2->y)); + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cogl_close_path (void *closure) +{ + cogl_path_close (closure); + return CAIRO_STATUS_SUCCESS; +} + +CoglPath * +_cairo_cogl_util_path_from_cairo (const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + float tolerance) +{ + CoglPath *cogl_path = cogl_path_new (); + cairo_status_t status; + + if (fill_rule == CAIRO_FILL_RULE_EVEN_ODD) + cogl_path_set_fill_rule (cogl_path, COGL_PATH_FILL_RULE_EVEN_ODD); + else + cogl_path_set_fill_rule (cogl_path, COGL_PATH_FILL_RULE_NON_ZERO); + +#ifdef USE_CAIRO_PATH_FLATTENER + /* XXX: rely on cairo to do path flattening, since it seems Cogl's + * curve_to flattening is much slower */ + status = _cairo_path_fixed_interpret_flat (path, + _cogl_move_to, + _cogl_line_to, + _cogl_close_path, + cogl_path, + tolerance); +#else + status = _cairo_path_fixed_interpret (path, + _cogl_move_to, + _cogl_line_to, + _cogl_curve_to, + _cogl_close_path, + cogl_path); +#endif + + assert (status == CAIRO_STATUS_SUCCESS); + return cogl_path; +} + +int +_cairo_cogl_util_next_p2 (int a) +{ + int rval = 1; + + while (rval < a) + rval <<= 1; + + return rval; +} + diff --git a/src/cairo-cogl.h b/src/cairo-cogl.h new file mode 100644 index 0000000..f270d74 --- /dev/null +++ b/src/cairo-cogl.h @@ -0,0 +1,69 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Mozilla Corporation. + * + * Contributor(s): + * Robert Bragg + */ + +#ifndef CAIRO_VG_H +#define CAIRO_VG_H + +#include "cairo.h" + +#if CAIRO_HAS_COGL_SURFACE + +#include + +CAIRO_BEGIN_DECLS + +cairo_public cairo_device_t * +cairo_cogl_device_create (CoglContext *context); + +cairo_public cairo_surface_t * +cairo_cogl_surface_create (cairo_device_t *device, + CoglFramebuffer *framebuffer); + +cairo_public CoglFramebuffer * +cairo_cogl_surface_get_framebuffer (cairo_surface_t *surface); + +cairo_public CoglTexture * +cairo_cogl_surface_get_texture (cairo_surface_t *surface); + +cairo_public void +cairo_cogl_surface_end_frame (cairo_surface_t *surface); + +CAIRO_END_DECLS + +#else /* CAIRO_HAS_COGL_SURFACE*/ +# error Cairo was not compiled with support for the Cogl backend +#endif /* CAIRO_HAS_COGL_SURFACE*/ + +#endif /* CAIRO_COGL_H */ diff --git a/src/cairo-combsort-inline.h b/src/cairo-combsort-inline.h new file mode 100644 index 0000000..d359fae --- /dev/null +++ b/src/cairo-combsort-inline.h @@ -0,0 +1,94 @@ +/* + * Copyright © 2008 Chris Wilson + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Chris Wilson + * + * Contributor(s): + * Chris Wilson + */ + +/* This fragment implements a comb sort (specifically combsort11) */ +#ifndef _HAVE_CAIRO_COMBSORT_NEWGAP +#define _HAVE_CAIRO_COMBSORT_NEWGAP +static inline unsigned int +_cairo_combsort_newgap (unsigned int gap) +{ + gap = 10 * gap / 13; + if (gap == 9 || gap == 10) + gap = 11; + if (gap < 1) + gap = 1; + return gap; +} +#endif + +#define CAIRO_COMBSORT_DECLARE(NAME, TYPE, CMP) \ +static void \ +NAME (TYPE *base, unsigned int nmemb) \ +{ \ + unsigned int gap = nmemb; \ + unsigned int i, j; \ + int swapped; \ + do { \ + gap = _cairo_combsort_newgap (gap); \ + swapped = gap > 1; \ + for (i = 0; i < nmemb-gap ; i++) { \ + j = i + gap; \ + if (CMP (base[i], base[j]) > 0 ) { \ + TYPE tmp; \ + tmp = base[i]; \ + base[i] = base[j]; \ + base[j] = tmp; \ + swapped = 1; \ + } \ + } \ + } while (swapped); \ +} + +#define CAIRO_COMBSORT_DECLARE_WITH_DATA(NAME, TYPE, CMP) \ +static void \ +NAME (TYPE *base, unsigned int nmemb, void *data) \ +{ \ + unsigned int gap = nmemb; \ + unsigned int i, j; \ + int swapped; \ + do { \ + gap = _cairo_combsort_newgap (gap); \ + swapped = gap > 1; \ + for (i = 0; i < nmemb-gap ; i++) { \ + j = i + gap; \ + if (CMP (base[i], base[j], data) > 0 ) { \ + TYPE tmp; \ + tmp = base[i]; \ + base[i] = base[j]; \ + base[j] = tmp; \ + swapped = 1; \ + } \ + } \ + } while (swapped); \ +} diff --git a/src/cairo-compiler-private.h b/src/cairo-compiler-private.h index dfe114b..f3e971e 100644 --- a/src/cairo-compiler-private.h +++ b/src/cairo-compiler-private.h @@ -208,9 +208,11 @@ #endif #ifdef _MSC_VER +#ifndef __cplusplus #undef inline #define inline __inline #endif +#endif #if defined(_MSC_VER) && defined(_M_IX86) /* When compiling with /Gy and /OPT:ICF identical functions will be folded in together. diff --git a/src/cairo-composite-rectangles-private.h b/src/cairo-composite-rectangles-private.h index fd77289..1081374 100644 --- a/src/cairo-composite-rectangles-private.h +++ b/src/cairo-composite-rectangles-private.h @@ -83,6 +83,13 @@ _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extent const cairo_clip_t *clip); cairo_private cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_paint (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -91,6 +98,14 @@ _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents const cairo_clip_t *clip); cairo_private cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_mask (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -101,6 +116,16 @@ _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *exten const cairo_clip_t *clip); cairo_private cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_stroke (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -109,6 +134,14 @@ _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents const cairo_clip_t *clip); cairo_private cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_fill (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t _cairo_composite_rectangles_init_for_boxes (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -136,6 +169,17 @@ _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *exten cairo_bool_t *overlap); cairo_private cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_glyphs (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_scaled_font_t *scaled_font, + cairo_glyph_t *glyphs, + int num_glyphs, + const cairo_clip_t *clip, + cairo_bool_t *overlap); + +cairo_private cairo_int_status_t _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles_t *extents, const cairo_box_t *box); diff --git a/src/cairo-composite-rectangles.c b/src/cairo-composite-rectangles.c index 7fc0f5f..abdf8c2 100644 --- a/src/cairo-composite-rectangles.c +++ b/src/cairo-composite-rectangles.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-pattern-private.h" @@ -46,6 +47,36 @@ void _cairo_composite_rectangles_fini (cairo_composite_rectangles_t *extents) _cairo_clip_destroy (extents->clip); } +static inline cairo_bool_t +_cairo_composite_rectangles_check_lazy_init (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + const cairo_pattern_t *pattern) +{ + cairo_pattern_type_t type; + + if (! extents->is_bounded) + return FALSE; + + type = cairo_pattern_get_type ((cairo_pattern_t *)pattern); + + if (type == CAIRO_PATTERN_TYPE_SURFACE) { + cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern; + cairo_surface_t *pattern_surface = pattern_surface = surface_pattern->surface; + + /* XXX: both source and target are GL surface */ + if (cairo_surface_get_type (pattern_surface) == CAIRO_SURFACE_TYPE_GL && + pattern_surface->backend->type == CAIRO_SURFACE_TYPE_GL && + cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_GL && + surface->device == pattern_surface->device) + return TRUE; + } else if (type == CAIRO_PATTERN_TYPE_SOLID || + type == CAIRO_PATTERN_TYPE_RADIAL || + type == CAIRO_PATTERN_TYPE_LINEAR) + return TRUE; + + return FALSE; +} + static void _cairo_composite_reduce_pattern (const cairo_pattern_t *src, cairo_pattern_union_t *dst) @@ -73,7 +104,8 @@ _cairo_composite_rectangles_init (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, const cairo_pattern_t *source, - const cairo_clip_t *clip) + const cairo_clip_t *clip, + cairo_bool_t *should_be_lazy) { if (_cairo_clip_is_all_clipped (clip)) return FALSE; @@ -85,18 +117,30 @@ _cairo_composite_rectangles_init (cairo_composite_rectangles_t *extents, extents->clip = NULL; extents->unbounded = extents->destination; - if (clip && ! _cairo_rectangle_intersect (&extents->unbounded, - _cairo_clip_get_extents (clip))) - return FALSE; + extents->is_bounded = _cairo_operator_bounded_by_either (op); + + if (*should_be_lazy) + *should_be_lazy = _cairo_composite_rectangles_check_lazy_init (extents, + surface, + source); + + if ((! *should_be_lazy) && + (clip && ! _cairo_rectangle_intersect (&extents->unbounded, + _cairo_clip_get_extents (clip)))) + return FALSE; extents->bounded = extents->unbounded; - extents->is_bounded = _cairo_operator_bounded_by_either (op); - extents->original_source_pattern = source; - _cairo_composite_reduce_pattern (source, &extents->source_pattern); + extents->original_source_pattern = source; + if (! *should_be_lazy) { + _cairo_composite_reduce_pattern (source, &extents->source_pattern); + + _cairo_pattern_get_extents (&extents->source_pattern.base, + &extents->source); + } else + _cairo_pattern_get_extents (extents->original_source_pattern, + &extents->source); - _cairo_pattern_get_extents (&extents->source_pattern.base, - &extents->source); if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_SOURCE) { if (! _cairo_rectangle_intersect (&extents->bounded, &extents->source)) return FALSE; @@ -105,6 +149,7 @@ _cairo_composite_rectangles_init (cairo_composite_rectangles_t *extents, extents->original_mask_pattern = NULL; extents->mask_pattern.base.type = CAIRO_PATTERN_TYPE_SOLID; extents->mask_pattern.solid.color.alpha = 1.; /* XXX full initialisation? */ + extents->mask_pattern.solid.color.alpha_short = 0xffff; return TRUE; } @@ -116,8 +161,10 @@ _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extent const cairo_pattern_t *source, const cairo_clip_t *clip) { + cairo_bool_t should_be_lazy = FALSE; if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -136,6 +183,38 @@ _cairo_composite_rectangles_init_for_paint (cairo_composite_rectangles_t *extent return CAIRO_STATUS_SUCCESS; } +cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_paint (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip) +{ + cairo_bool_t should_be_lazy = TRUE; + if (! _cairo_composite_rectangles_init (extents, + surface, op, source, clip, + &should_be_lazy)) + { + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } + + if (! should_be_lazy) { + extents->mask = extents->destination; + + extents->clip = _cairo_clip_reduce_for_composite (clip, extents); + if (_cairo_clip_is_all_clipped (extents->clip)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + + if (extents->source_pattern.base.type != CAIRO_PATTERN_TYPE_SOLID) + _cairo_pattern_sampled_area (&extents->source_pattern.base, + &extents->bounded, + &extents->source_sample_area); + } else + extents->clip = _cairo_clip_copy (clip); + + return CAIRO_STATUS_SUCCESS; +} + static cairo_int_status_t _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents, const cairo_clip_t *clip) @@ -146,8 +225,12 @@ _cairo_composite_rectangles_intersect (cairo_composite_rectangles_t *extents, if (! ret && extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) return CAIRO_INT_STATUS_NOTHING_TO_DO; - if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) + if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { extents->unbounded = extents->bounded; + } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { + if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } extents->clip = _cairo_clip_reduce_for_composite (clip, extents); if (_cairo_clip_is_all_clipped (extents->clip)) @@ -198,8 +281,12 @@ _cairo_composite_rectangles_intersect_source_extents (cairo_composite_rectangles rect.height == extents->bounded.height) return CAIRO_INT_STATUS_SUCCESS; - if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) + if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { extents->unbounded = extents->bounded; + } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { + if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } clip = extents->clip; extents->clip = _cairo_clip_reduce_for_composite (clip, extents); @@ -252,8 +339,12 @@ _cairo_composite_rectangles_intersect_mask_extents (cairo_composite_rectangles_t mask.height == extents->bounded.height) return CAIRO_INT_STATUS_SUCCESS; - if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) + if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) { extents->unbounded = extents->bounded; + } else if (extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) { + if (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } clip = extents->clip; extents->clip = _cairo_clip_reduce_for_composite (clip, extents); @@ -287,8 +378,11 @@ _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents const cairo_pattern_t *mask, const cairo_clip_t *clip) { + cairo_bool_t should_be_lazy = FALSE; + if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -302,6 +396,51 @@ _cairo_composite_rectangles_init_for_mask (cairo_composite_rectangles_t *extents } cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_mask (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_clip_t *clip) +{ + cairo_bool_t ret; + cairo_bool_t should_be_lazy = (op == CAIRO_OPERATOR_SOURCE) ? FALSE : TRUE; + + + if (! _cairo_composite_rectangles_init (extents, + surface, op, source, clip, + &should_be_lazy)) + { + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } + + extents->original_mask_pattern = mask; + + if (! should_be_lazy) { + _cairo_composite_reduce_pattern (mask, &extents->mask_pattern); + _cairo_pattern_get_extents (&extents->mask_pattern.base, + &extents->mask); + return _cairo_composite_rectangles_intersect (extents, clip); + } + + _cairo_pattern_get_extents (extents->original_mask_pattern, + &extents->mask); + + ret = _cairo_rectangle_intersect (&extents->bounded, &extents->mask); + if (! ret && extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + + if (extents->is_bounded == (CAIRO_OPERATOR_BOUND_BY_MASK | CAIRO_OPERATOR_BOUND_BY_SOURCE)) + extents->unbounded = extents->bounded; + else if ((extents->is_bounded & CAIRO_OPERATOR_BOUND_BY_MASK) && + (!_cairo_rectangle_intersect (&extents->unbounded, &extents->mask))) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + + extents->clip = _cairo_clip_copy (clip); + return CAIRO_INT_STATUS_SUCCESS; +} + +cairo_int_status_t _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -311,8 +450,11 @@ _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *exten const cairo_matrix_t *ctm, const cairo_clip_t *clip) { + cairo_bool_t should_be_lazy = FALSE; + if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -323,6 +465,35 @@ _cairo_composite_rectangles_init_for_stroke (cairo_composite_rectangles_t *exten } cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_stroke (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_clip_t *clip) +{ + cairo_bool_t should_be_lazy = TRUE; + + if (! _cairo_composite_rectangles_init (extents, + surface, op, source, clip, + &should_be_lazy)) + { + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } + + if (! should_be_lazy) { + _cairo_path_fixed_approximate_stroke_extents (path, style, ctm, + &extents->mask); + return _cairo_composite_rectangles_intersect (extents, clip); + } + + extents->clip = _cairo_clip_copy (clip); + return CAIRO_INT_STATUS_SUCCESS; +} + +cairo_int_status_t _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -330,8 +501,11 @@ _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents const cairo_path_fixed_t *path, const cairo_clip_t *clip) { + cairo_bool_t should_be_lazy = FALSE; + if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -342,6 +516,32 @@ _cairo_composite_rectangles_init_for_fill (cairo_composite_rectangles_t *extents } cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_fill (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_clip_t *clip) +{ + cairo_bool_t should_be_lazy = TRUE; + if (! _cairo_composite_rectangles_init (extents, + surface, op, source, clip, + &should_be_lazy)) + { + return CAIRO_INT_STATUS_NOTHING_TO_DO; + } + + if (! should_be_lazy) { + _cairo_path_fixed_approximate_fill_extents (path, &extents->mask); + + return _cairo_composite_rectangles_intersect (extents, clip); + } + + extents->clip = _cairo_clip_copy (clip); + return CAIRO_INT_STATUS_SUCCESS; +} + +cairo_int_status_t _cairo_composite_rectangles_init_for_polygon (cairo_composite_rectangles_t *extents, cairo_surface_t *surface, cairo_operator_t op, @@ -349,8 +549,10 @@ _cairo_composite_rectangles_init_for_polygon (cairo_composite_rectangles_t *exte const cairo_polygon_t *polygon, const cairo_clip_t *clip) { + cairo_bool_t should_be_lazy = FALSE; if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -368,9 +570,11 @@ _cairo_composite_rectangles_init_for_boxes (cairo_composite_rectangles_t *extent const cairo_clip_t *clip) { cairo_box_t box; + cairo_bool_t should_be_lazy = FALSE; if (! _cairo_composite_rectangles_init (extents, - surface, op, source, clip)) + surface, op, source, clip, + &should_be_lazy)) { return CAIRO_INT_STATUS_NOTHING_TO_DO; } @@ -392,8 +596,10 @@ _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *exten cairo_bool_t *overlap) { cairo_status_t status; + cairo_bool_t should_be_lazy = FALSE; - if (! _cairo_composite_rectangles_init (extents, surface, op, source, clip)) + if (! _cairo_composite_rectangles_init (extents, surface, op, source, + clip, &should_be_lazy)) return CAIRO_INT_STATUS_NOTHING_TO_DO; /* Computing the exact bbox and the overlap is expensive. @@ -417,6 +623,36 @@ _cairo_composite_rectangles_init_for_glyphs (cairo_composite_rectangles_t *exten return _cairo_composite_rectangles_intersect (extents, clip); } +cairo_int_status_t +_cairo_composite_rectangles_lazy_init_for_glyphs (cairo_composite_rectangles_t *extents, + cairo_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_scaled_font_t *scaled_font, + cairo_glyph_t *glyphs, + int num_glyphs, + const cairo_clip_t *clip, + cairo_bool_t *overlap) +{ + cairo_status_t status; + cairo_bool_t should_be_lazy = TRUE; + + if (! _cairo_composite_rectangles_init (extents, surface, op, source, + clip, &should_be_lazy)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + + status = _cairo_scaled_font_glyph_device_extents (scaled_font, + glyphs, num_glyphs, + &extents->source, + overlap); + if (unlikely (status)) + return status; + + extents->clip = _cairo_clip_copy (clip); + + return CAIRO_INT_STATUS_SUCCESS; +} + cairo_bool_t _cairo_composite_rectangles_can_reduce_clip (cairo_composite_rectangles_t *composite, cairo_clip_t *clip) diff --git a/src/cairo-compositor-private.h b/src/cairo-compositor-private.h index 72507b2..7b56d17 100644 --- a/src/cairo-compositor-private.h +++ b/src/cairo-compositor-private.h @@ -86,6 +86,7 @@ struct cairo_compositor { cairo_glyph_t *glyphs, int num_glyphs, cairo_bool_t overlap); + cairo_bool_t lazy_init; }; struct cairo_mask_compositor { @@ -211,6 +212,9 @@ struct cairo_traps_compositor { cairo_boxes_t *boxes); cairo_int_status_t + (*check_composite) (const cairo_composite_rectangles_t *extents); + + cairo_int_status_t (*composite) (void *dst, cairo_operator_t op, cairo_surface_t *src, @@ -298,6 +302,10 @@ _cairo_mask_compositor_init (cairo_mask_compositor_t *compositor, const cairo_compositor_t *delegate); cairo_private void +_cairo_shape_mask_compositor_init (cairo_compositor_t *compositor, + const cairo_compositor_t *delegate); + +cairo_private void _cairo_traps_compositor_init (cairo_traps_compositor_t *compositor, const cairo_compositor_t *delegate); diff --git a/src/cairo-compositor.c b/src/cairo-compositor.c index cf943e7..8273489 100644 --- a/src/cairo-compositor.c +++ b/src/cairo-compositor.c @@ -38,6 +38,7 @@ #include "cairoint.h" #include "cairo-compositor-private.h" +#include "cairo-damage-private.h" #include "cairo-error-private.h" cairo_int_status_t @@ -49,10 +50,22 @@ _cairo_compositor_paint (const cairo_compositor_t *compositor, { cairo_composite_rectangles_t extents; cairo_int_status_t status; - - status = _cairo_composite_rectangles_init_for_paint (&extents, surface, - op, source, - clip); + cairo_bool_t initialized = TRUE; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (compositor->lazy_init) { + status = _cairo_composite_rectangles_lazy_init_for_paint (&extents, + surface, + op, source, + clip); + initialized = FALSE; + } + else + status = _cairo_composite_rectangles_init_for_paint (&extents, + surface, + op, source, + clip); if (unlikely (status)) return status; @@ -60,11 +73,33 @@ _cairo_compositor_paint (const cairo_compositor_t *compositor, while (compositor->paint == NULL) compositor = compositor->delegate; + if (! compositor->lazy_init && ! initialized) { + /* XXX: we should do better instead of re-init */ + _cairo_composite_rectangles_fini (&extents); + status = _cairo_composite_rectangles_init_for_paint (&extents, + surface, + op, source, + clip); + initialized = TRUE; + + if (unlikely (status)) + return status; + } + status = compositor->paint (compositor, &extents); compositor = compositor->delegate; } while (status == CAIRO_INT_STATUS_UNSUPPORTED); + if (status == CAIRO_INT_STATUS_SUCCESS && surface->damage) { + TRACE ((stderr, "%s: applying damage (%d,%d)x(%d, %d)\n", + __FUNCTION__, + extents.unbounded.x, extents.unbounded.y, + extents.unbounded.width, extents.unbounded.height)); + surface->damage = _cairo_damage_add_rectangle (surface->damage, + &extents.unbounded); + } + _cairo_composite_rectangles_fini (&extents); return status; @@ -80,10 +115,21 @@ _cairo_compositor_mask (const cairo_compositor_t *compositor, { cairo_composite_rectangles_t extents; cairo_int_status_t status; - - status = _cairo_composite_rectangles_init_for_mask (&extents, surface, - op, source, mask, - clip); + cairo_bool_t initialized = TRUE; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (compositor->lazy_init) { + status = _cairo_composite_rectangles_lazy_init_for_mask (&extents, + surface, + op, source, + mask, clip); + initialized = FALSE; + } else + status = _cairo_composite_rectangles_init_for_mask (&extents, + surface, + op, source, + mask, clip); if (unlikely (status)) return status; @@ -91,11 +137,33 @@ _cairo_compositor_mask (const cairo_compositor_t *compositor, while (compositor->mask == NULL) compositor = compositor->delegate; + if (! compositor->lazy_init && ! initialized) { + /* XXX: we should do better instead of re-init */ + _cairo_composite_rectangles_fini (&extents); + status = _cairo_composite_rectangles_init_for_mask (&extents, + surface, + op, source, + mask, clip); + initialized = TRUE; + + if (unlikely (status)) + return status; + } + status = compositor->mask (compositor, &extents); compositor = compositor->delegate; } while (status == CAIRO_INT_STATUS_UNSUPPORTED); + if (status == CAIRO_INT_STATUS_SUCCESS && surface->damage) { + TRACE ((stderr, "%s: applying damage (%d,%d)x(%d, %d)\n", + __FUNCTION__, + extents.unbounded.x, extents.unbounded.y, + extents.unbounded.width, extents.unbounded.height)); + surface->damage = _cairo_damage_add_rectangle (surface->damage, + &extents.unbounded); + } + _cairo_composite_rectangles_fini (&extents); return status; @@ -116,11 +184,24 @@ _cairo_compositor_stroke (const cairo_compositor_t *compositor, { cairo_composite_rectangles_t extents; cairo_int_status_t status; - - status = _cairo_composite_rectangles_init_for_stroke (&extents, surface, - op, source, - path, style, ctm, - clip); + cairo_bool_t initialized = TRUE; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (compositor->lazy_init) { + status = _cairo_composite_rectangles_lazy_init_for_stroke (&extents, + surface, + op, source, + path, style, + ctm, clip); + initialized = FALSE; + } + else + status = _cairo_composite_rectangles_init_for_stroke (&extents, + surface, + op, source, + path, style, + ctm, clip); if (unlikely (status)) return status; @@ -128,6 +209,23 @@ _cairo_compositor_stroke (const cairo_compositor_t *compositor, while (compositor->stroke == NULL) compositor = compositor->delegate; + if (! compositor->lazy_init && ! initialized) { + /* XXX: we should do better instead of re-init */ + _cairo_composite_rectangles_fini (&extents); + status = _cairo_composite_rectangles_init_for_stroke (&extents, + surface, + op, + source, + path, + style, + ctm, + clip); + initialized = TRUE; + + if (unlikely (status)) + return status; + } + status = compositor->stroke (compositor, &extents, path, style, ctm, ctm_inverse, tolerance, antialias); @@ -135,6 +233,15 @@ _cairo_compositor_stroke (const cairo_compositor_t *compositor, compositor = compositor->delegate; } while (status == CAIRO_INT_STATUS_UNSUPPORTED); + if (status == CAIRO_INT_STATUS_SUCCESS && surface->damage) { + TRACE ((stderr, "%s: applying damage (%d,%d)x(%d, %d)\n", + __FUNCTION__, + extents.unbounded.x, extents.unbounded.y, + extents.unbounded.width, extents.unbounded.height)); + surface->damage = _cairo_damage_add_rectangle (surface->damage, + &extents.unbounded); + } + _cairo_composite_rectangles_fini (&extents); return status; @@ -153,10 +260,22 @@ _cairo_compositor_fill (const cairo_compositor_t *compositor, { cairo_composite_rectangles_t extents; cairo_int_status_t status; - - status = _cairo_composite_rectangles_init_for_fill (&extents, surface, - op, source, path, - clip); + cairo_bool_t initialized = TRUE; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (compositor->lazy_init) { + status = _cairo_composite_rectangles_lazy_init_for_fill (&extents, + surface, + op, source, + path, clip); + initialized = FALSE; + } + else + status = _cairo_composite_rectangles_init_for_fill (&extents, + surface, + op, source, + path, clip); if (unlikely (status)) return status; @@ -164,12 +283,34 @@ _cairo_compositor_fill (const cairo_compositor_t *compositor, while (compositor->fill == NULL) compositor = compositor->delegate; + if (! compositor->lazy_init && ! initialized) { + /* XXX: we should do better instead of re-init */ + _cairo_composite_rectangles_fini (&extents); + status = _cairo_composite_rectangles_init_for_fill (&extents, + surface, + op, source, + path, clip); + initialized = TRUE; + + if (unlikely (status)) + return status; + } + status = compositor->fill (compositor, &extents, path, fill_rule, tolerance, antialias); compositor = compositor->delegate; } while (status == CAIRO_INT_STATUS_UNSUPPORTED); + if (status == CAIRO_INT_STATUS_SUCCESS && surface->damage) { + TRACE ((stderr, "%s: applying damage (%d,%d)x(%d, %d)\n", + __FUNCTION__, + extents.unbounded.x, extents.unbounded.y, + extents.unbounded.width, extents.unbounded.height)); + surface->damage = _cairo_damage_add_rectangle (surface->damage, + &extents.unbounded); + } + _cairo_composite_rectangles_fini (&extents); return status; @@ -188,12 +329,23 @@ _cairo_compositor_glyphs (const cairo_compositor_t *compositor, cairo_composite_rectangles_t extents; cairo_bool_t overlap; cairo_int_status_t status; - - status = _cairo_composite_rectangles_init_for_glyphs (&extents, surface, - op, source, - scaled_font, - glyphs, num_glyphs, - clip, &overlap); + cairo_bool_t initialized = TRUE; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (compositor->lazy_init) { + status = _cairo_composite_rectangles_lazy_init_for_glyphs (&extents, surface, + op, source, + scaled_font, + glyphs, num_glyphs, + clip, &overlap); + initialized = FALSE; + } else + status = _cairo_composite_rectangles_init_for_glyphs (&extents, surface, + op, source, + scaled_font, + glyphs, num_glyphs, + clip, &overlap); if (unlikely (status)) return status; @@ -201,12 +353,35 @@ _cairo_compositor_glyphs (const cairo_compositor_t *compositor, while (compositor->glyphs == NULL) compositor = compositor->delegate; + if (! compositor->lazy_init && ! initialized) { + /* XXX: we should do better instead of re-init */ + _cairo_composite_rectangles_fini (&extents); + status = _cairo_composite_rectangles_init_for_glyphs (&extents, surface, + op, source, + scaled_font, + glyphs, num_glyphs, + clip, &overlap); + initialized = TRUE; + + if (unlikely (status)) + return status; + } + status = compositor->glyphs (compositor, &extents, scaled_font, glyphs, num_glyphs, overlap); compositor = compositor->delegate; } while (status == CAIRO_INT_STATUS_UNSUPPORTED); + if (status == CAIRO_INT_STATUS_SUCCESS && surface->damage) { + TRACE ((stderr, "%s: applying damage (%d,%d)x(%d, %d)\n", + __FUNCTION__, + extents.unbounded.x, extents.unbounded.y, + extents.unbounded.width, extents.unbounded.height)); + surface->damage = _cairo_damage_add_rectangle (surface->damage, + &extents.unbounded); + } + _cairo_composite_rectangles_fini (&extents); return status; diff --git a/src/cairo-contour-inline.h b/src/cairo-contour-inline.h new file mode 100644 index 0000000..7972c1a --- /dev/null +++ b/src/cairo-contour-inline.h @@ -0,0 +1,80 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Intel Corporation + * + * Contributor(s): + * Chris Wilson + */ + +#ifndef CAIRO_CONTOUR_INLINE_H +#define CAIRO_CONTOUR_INLINE_H + +#include "cairo-contour-private.h" + +CAIRO_BEGIN_DECLS + +static inline cairo_int_status_t +_cairo_contour_add_point (cairo_contour_t *contour, + const cairo_point_t *point) +{ + struct _cairo_contour_chain *tail = contour->tail; + + if (unlikely (tail->num_points == tail->size_points)) + return __cairo_contour_add_point (contour, point); + + tail->points[tail->num_points++] = *point; + return CAIRO_INT_STATUS_SUCCESS; +} + +static inline cairo_point_t * +_cairo_contour_first_point (cairo_contour_t *c) +{ + return &c->chain.points[0]; +} + +static inline cairo_point_t * +_cairo_contour_last_point (cairo_contour_t *c) +{ + return &c->tail->points[c->tail->num_points-1]; +} + +static inline void +_cairo_contour_remove_last_point (cairo_contour_t *contour) +{ + if (contour->chain.num_points == 0) + return; + + if (--contour->tail->num_points == 0) + __cairo_contour_remove_last_chain (contour); +} + +CAIRO_END_DECLS + +#endif /* CAIRO_CONTOUR_INLINE_H */ diff --git a/src/cairo-contour-private.h b/src/cairo-contour-private.h index 2eb1f60..1dfc46f 100644 --- a/src/cairo-contour-private.h +++ b/src/cairo-contour-private.h @@ -93,31 +93,6 @@ cairo_private cairo_int_status_t __cairo_contour_add_point (cairo_contour_t *contour, const cairo_point_t *point); -static inline cairo_int_status_t -_cairo_contour_add_point (cairo_contour_t *contour, - const cairo_point_t *point) -{ - struct _cairo_contour_chain *tail = contour->tail; - - if (unlikely (tail->num_points == tail->size_points)) - return __cairo_contour_add_point (contour, point); - - tail->points[tail->num_points++] = *point; - return CAIRO_INT_STATUS_SUCCESS; -} - -static inline cairo_point_t * -_cairo_contour_first_point (cairo_contour_t *c) -{ - return &c->chain.points[0]; -} - -static inline cairo_point_t * -_cairo_contour_last_point (cairo_contour_t *c) -{ - return &c->tail->points[c->tail->num_points-1]; -} - cairo_private void _cairo_contour_simplify (cairo_contour_t *contour, double tolerance); @@ -135,16 +110,6 @@ _cairo_contour_add_reversed (cairo_contour_t *dst, cairo_private void __cairo_contour_remove_last_chain (cairo_contour_t *contour); -static inline void -_cairo_contour_remove_last_point (cairo_contour_t *contour) -{ - if (contour->chain.num_points == 0) - return; - - if (--contour->tail->num_points == 0) - __cairo_contour_remove_last_chain (contour); -} - cairo_private void _cairo_contour_reset (cairo_contour_t *contour); diff --git a/src/cairo-contour.c b/src/cairo-contour.c index ac3998b..d356f4f 100644 --- a/src/cairo-contour.c +++ b/src/cairo-contour.c @@ -40,7 +40,8 @@ #include "cairo-error-private.h" #include "cairo-freelist-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" +#include "cairo-contour-inline.h" #include "cairo-contour-private.h" void diff --git a/src/cairo-damage-private.h b/src/cairo-damage-private.h new file mode 100644 index 0000000..28768fd --- /dev/null +++ b/src/cairo-damage-private.h @@ -0,0 +1,82 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Chris Wilson + * + * Contributor(s): + * Chris Wilson + */ + +#ifndef CAIRO_DAMAGE_PRIVATE_H +#define CAIRO_DAMAGE_PRIVATE_H + +#include "cairo-types-private.h" + +#include + +CAIRO_BEGIN_DECLS + +struct _cairo_damage { + cairo_status_t status; + cairo_region_t *region; + + int dirty, remain; + struct _cairo_damage_chunk { + struct _cairo_damage_chunk *next; + cairo_box_t *base; + int count; + int size; + } chunks, *tail; + cairo_box_t boxes[32]; +}; + +cairo_private cairo_damage_t * +_cairo_damage_create (void); + +cairo_private cairo_damage_t * +_cairo_damage_add_box (cairo_damage_t *damage, + const cairo_box_t *box); + +cairo_private cairo_damage_t * +_cairo_damage_add_rectangle (cairo_damage_t *damage, + const cairo_rectangle_int_t *rect); + +cairo_private cairo_damage_t * +_cairo_damage_add_region (cairo_damage_t *damage, + const cairo_region_t *region); + +cairo_private cairo_damage_t * +_cairo_damage_reduce (cairo_damage_t *damage); + +cairo_private void +_cairo_damage_destroy (cairo_damage_t *damage); + +CAIRO_END_DECLS + +#endif /* CAIRO_DAMAGE_PRIVATE_H */ diff --git a/src/cairo-damage.c b/src/cairo-damage.c new file mode 100644 index 0000000..06ef9fd --- /dev/null +++ b/src/cairo-damage.c @@ -0,0 +1,234 @@ +/* + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Chris Wilson + * + * Contributor(s): + * Chris Wilson + */ + +#include "cairoint.h" + +#include "cairo-damage-private.h" +#include "cairo-region-private.h" + +static const cairo_damage_t __cairo_damage__nil = { CAIRO_STATUS_NO_MEMORY }; + +cairo_damage_t * +_cairo_damage_create (void) +{ + cairo_damage_t *damage; + + damage = malloc (sizeof (*damage)); + if (unlikely (damage == NULL)) { + _cairo_error_throw(CAIRO_STATUS_NO_MEMORY); + return (cairo_damage_t *) &__cairo_damage__nil; + } + + damage->status = CAIRO_STATUS_SUCCESS; + damage->region = NULL; + damage->dirty = 0; + damage->tail = &damage->chunks; + damage->chunks.base = damage->boxes; + damage->chunks.size = ARRAY_LENGTH(damage->boxes); + damage->chunks.count = 0; + damage->chunks.next = NULL; + + damage->remain = damage->chunks.size; + + return damage; +} + +void +_cairo_damage_destroy (cairo_damage_t *damage) +{ + struct _cairo_damage_chunk *chunk, *next; + + if (damage == (cairo_damage_t *) &__cairo_damage__nil) + return; + + for (chunk = damage->chunks.next; chunk != NULL; chunk = next) { + next = chunk->next; + free (chunk); + } + cairo_region_destroy (damage->region); + free (damage); +} + +static cairo_damage_t * +_cairo_damage_add_boxes(cairo_damage_t *damage, + const cairo_box_t *boxes, + int count) +{ + struct _cairo_damage_chunk *chunk; + int n, size; + + TRACE ((stderr, "%s x%d\n", __FUNCTION__, count)); + + if (damage == NULL) + damage = _cairo_damage_create (); + if (damage->status) + return damage; + + + damage->dirty += count; + + n = count; + if (n > damage->remain) + n = damage->remain; + + memcpy (damage->tail->base + damage->tail->count, boxes, + n * sizeof (cairo_box_t)); + + count -= n; + damage->tail->count += n; + damage->remain -= n; + + if (count == 0) + return damage; + + size = 2 * damage->tail->size; + if (size < count) + size = (count + 64) & ~63; + + chunk = malloc (sizeof (*chunk) + sizeof (cairo_box_t) * size); + if (unlikely (chunk == NULL)) { + _cairo_damage_destroy (damage); + return (cairo_damage_t *) &__cairo_damage__nil; + } + + chunk->next = NULL; + chunk->base = (cairo_box_t *) (chunk + 1); + chunk->size = size; + chunk->count = count; + + damage->tail->next = chunk; + damage->remain = size - count; + + memcpy (damage->tail->base, boxes + n, + count * sizeof (cairo_box_t)); + + return damage; +} + +cairo_damage_t * +_cairo_damage_add_box(cairo_damage_t *damage, + const cairo_box_t *box) +{ + TRACE ((stderr, "%s: (%d, %d),(%d, %d)\n", __FUNCTION__, + box->p1.x, box->p1.y, box->p2.x, box->p2.y)); + + return _cairo_damage_add_boxes(damage, box, 1); +} + +cairo_damage_t * +_cairo_damage_add_rectangle(cairo_damage_t *damage, + const cairo_rectangle_int_t *r) +{ + cairo_box_t box; + + TRACE ((stderr, "%s: (%d, %d)x(%d, %d)\n", __FUNCTION__, + r->x, r->y, r->width, r->height)); + + box.p1.x = r->x; + box.p1.y = r->y; + box.p2.x = r->x + r->width; + box.p2.y = r->y + r->height; + + return _cairo_damage_add_boxes(damage, &box, 1); +} + +cairo_damage_t * +_cairo_damage_add_region (cairo_damage_t *damage, + const cairo_region_t *region) +{ + cairo_box_t *boxes; + int nbox; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + boxes = _cairo_region_get_boxes (region, &nbox); + return _cairo_damage_add_boxes(damage, boxes, nbox); +} + +cairo_damage_t * +_cairo_damage_reduce (cairo_damage_t *damage) +{ + cairo_box_t *free_boxes = NULL; + cairo_box_t *boxes, *b; + struct _cairo_damage_chunk *chunk, *last; + + TRACE ((stderr, "%s: dirty=%d\n", __FUNCTION__, + damage ? damage->dirty : -1)); + if (damage == NULL || damage->status || !damage->dirty) + return damage; + + if (damage->region) { + cairo_region_t *region; + + region = damage->region; + damage->region = NULL; + + damage = _cairo_damage_add_region (damage, region); + cairo_region_destroy (region); + + if (unlikely (damage->status)) + return damage; + } + + boxes = damage->tail->base; + if (damage->dirty > damage->tail->size) { + boxes = free_boxes = malloc (damage->dirty * sizeof (cairo_box_t)); + if (unlikely (boxes == NULL)) { + _cairo_damage_destroy (damage); + return (cairo_damage_t *) &__cairo_damage__nil; + } + + b = boxes; + last = NULL; + } else { + b = boxes + damage->tail->count; + last = damage->tail; + } + + for (chunk = &damage->chunks; chunk != last; chunk = chunk->next) { + memcpy (b, chunk->base, chunk->count * sizeof (cairo_box_t)); + b += chunk->count; + } + + damage->region = _cairo_region_create_from_boxes (boxes, damage->dirty); + free (free_boxes); + + if (unlikely (damage->region->status)) { + _cairo_damage_destroy (damage); + return (cairo_damage_t *) &__cairo_damage__nil; + } + + damage->dirty = 0; + return damage; +} diff --git a/src/cairo-debug.c b/src/cairo-debug.c index b4cde7d..33d46aa 100644 --- a/src/cairo-debug.c +++ b/src/cairo-debug.c @@ -56,6 +56,8 @@ * functions have been called as necessary). If there are active cairo * objects, this call is likely to cause a crash, (eg. an assertion * failure due to a hash table being destroyed when non-empty). + * + * Since: 1.0 **/ void cairo_debug_reset_static_data (void) @@ -90,6 +92,10 @@ cairo_debug_reset_static_data (void) _cairo_default_context_reset_static_data (); +#if CAIRO_HAS_COGL_SURFACE + _cairo_cogl_context_reset_static_data (); +#endif + CAIRO_MUTEX_FINALIZE (); } diff --git a/src/cairo-default-context-private.h b/src/cairo-default-context-private.h index 32fd12d..fd159b4 100644 --- a/src/cairo-default-context-private.h +++ b/src/cairo-default-context-private.h @@ -40,6 +40,8 @@ #include "cairo-gstate-private.h" #include "cairo-path-fixed-private.h" +CAIRO_BEGIN_DECLS + typedef struct _cairo_default_context cairo_default_context_t; struct _cairo_default_context { @@ -55,4 +57,12 @@ struct _cairo_default_context { cairo_private cairo_t * _cairo_default_context_create (void *target); +cairo_private cairo_status_t +_cairo_default_context_init (cairo_default_context_t *cr, void *target); + +cairo_private void +_cairo_default_context_fini (cairo_default_context_t *cr); + +CAIRO_END_DECLS + #endif /* CAIRO_DEFAULT_CONTEXT_PRIVATE_H */ diff --git a/src/cairo-default-context.c b/src/cairo-default-context.c index 98cc668..dc8c359 100644 --- a/src/cairo-default-context.c +++ b/src/cairo-default-context.c @@ -43,6 +43,7 @@ #include "cairo-private.h" #include "cairo-arc-private.h" #include "cairo-backend-private.h" +#include "cairo-clip-inline.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" @@ -63,11 +64,9 @@ _cairo_default_context_reset_static_data (void) _freed_pool_reset (&context_pool); } -static void -_cairo_default_context_destroy (void *abstract_cr) +void +_cairo_default_context_fini (cairo_default_context_t *cr) { - cairo_default_context_t *cr = abstract_cr; - while (cr->gstate != &cr->gstate_tail[0]) { if (_cairo_gstate_restore (&cr->gstate, &cr->gstate_freelist)) break; @@ -84,6 +83,14 @@ _cairo_default_context_destroy (void *abstract_cr) _cairo_path_fixed_fini (cr->path); _cairo_fini (&cr->base); +} + +static void +_cairo_default_context_destroy (void *abstract_cr) +{ + cairo_default_context_t *cr = abstract_cr; + + _cairo_default_context_fini (cr); /* mark the context as invalid to protect against misuse */ cr->base.status = CAIRO_STATUS_NULL_POINTER; @@ -1381,6 +1388,19 @@ static const cairo_backend_t _cairo_default_context_backend = { _cairo_default_context_show_page, }; +cairo_status_t +_cairo_default_context_init (cairo_default_context_t *cr, void *target) +{ + _cairo_init (&cr->base, &_cairo_default_context_backend); + _cairo_path_fixed_init (cr->path); + + cr->gstate = &cr->gstate_tail[0]; + cr->gstate_freelist = &cr->gstate_tail[1]; + cr->gstate_tail[1].next = NULL; + + return _cairo_gstate_init (cr->gstate, target); +} + cairo_t * _cairo_default_context_create (void *target) { @@ -1394,14 +1414,7 @@ _cairo_default_context_create (void *target) return _cairo_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); } - _cairo_init (&cr->base, &_cairo_default_context_backend); - _cairo_path_fixed_init (cr->path); - - cr->gstate = &cr->gstate_tail[0]; - cr->gstate_freelist = &cr->gstate_tail[1]; - cr->gstate_tail[1].next = NULL; - - status = _cairo_gstate_init (cr->gstate, target); + status = _cairo_default_context_init (cr, target); if (unlikely (status)) { _freed_pool_put (&context_pool, cr); return _cairo_create_in_error (status); diff --git a/src/cairo-device.c b/src/cairo-device.c index fd1ec71..098f856 100644 --- a/src/cairo-device.c +++ b/src/cairo-device.c @@ -92,7 +92,7 @@ * interactions with existing surface API of the device functions for * surfaces of that type. * - */ + **/ static const cairo_device_t _nil_device = { CAIRO_REFERENCE_COUNT_INVALID, diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c index 46c0960..fd187bd 100644 --- a/src/cairo-directfb-surface.c +++ b/src/cairo-directfb-surface.c @@ -1,6 +1,6 @@ /* cairo - a vector graphics library with display and print output * - * Copyright © 2003 University of Southern California + * Copyright © 2012 Intel Corporation * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public @@ -27,21 +27,23 @@ * * The Original Code is the cairo graphics library. * - * The Initial Developer of the Original Code is University of Southern - * California. + * The Initial Developer of the Original Code is Chris Wilson * * Contributor(s): - * Michael Emmel - * Claudio Ciccani + * Chris Wilson */ #include "cairoint.h" #include "cairo-directfb.h" #include "cairo-clip-private.h" +#include "cairo-compositor-private.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" +#include "cairo-image-surface-private.h" #include "cairo-pattern-private.h" +#include "cairo-surface-backend-private.h" +#include "cairo-surface-fallback-private.h" #include @@ -51,176 +53,36 @@ #include #include -/* - * Rectangle works fine. - * Bugs 361377, 359553, 359243 in Gnome BTS are caused - * by GDK/DirectFB, not by Cairo/DirectFB. - */ -#define DFB_RECTANGLES 1 - -/* - * Composite works fine. - */ -#define DFB_COMPOSITE 1 - -/* - * CompositeTrapezoids works (without antialiasing). - */ -#define DFB_COMPOSITE_TRAPEZOIDS 1 - -/* - * ShowGlyphs works fine. - */ -#define DFB_SHOW_GLYPHS 1 - -#define PIXMAN_invalid (pixman_format_code_t) 0 +slim_hidden_proto(cairo_directfb_surface_create); - -D_DEBUG_DOMAIN (CairoDFB_Acquire, "CairoDFB/Acquire", "Cairo DirectFB Acquire"); -D_DEBUG_DOMAIN (CairoDFB_Clip, "CairoDFB/Clip", "Cairo DirectFB Clipping"); -D_DEBUG_DOMAIN (CairoDFB_Font, "CairoDFB/Font", "Cairo DirectFB Font Rendering"); -D_DEBUG_DOMAIN (CairoDFB_Render, "CairoDFB/Render", "Cairo DirectFB Rendering"); -D_DEBUG_DOMAIN (CairoDFB_Surface, "CairoDFB/Surface", "Cairo DirectFB Surface"); - -/*****************************************************************************/ - -typedef struct _cairo_directfb_surface { - cairo_surface_t base; - - pixman_format_code_t pixman_format; - cairo_bool_t supported_destination; +typedef struct _cairo_dfb_surface { + cairo_image_surface_t image; IDirectFB *dfb; - IDirectFBSurface *dfbsurface; - IDirectFBSurface *tmpsurface; - pixman_format_code_t tmpformat; + IDirectFBSurface *dfb_surface; - int width; - int height; - - unsigned local : 1; unsigned blit_premultiplied : 1; -} cairo_directfb_surface_t; - - -typedef struct _cairo_directfb_font_cache { - IDirectFB *dfb; - IDirectFBSurface *dfbsurface; - - int width; - int height; - - /* coordinates within the surface - * of the last loaded glyph */ - int x; - int y; -} cairo_directfb_font_cache_t; - -static cairo_surface_backend_t _cairo_directfb_surface_backend; - -/*****************************************************************************/ - -static int _directfb_argb_font = 0; - -/*****************************************************************************/ - -#define RUN_CLIPPED(surface, clip_region, clip, func) {\ - if ((clip_region) != NULL) {\ - int n_clips = cairo_region_num_rectangles (clip_region), n; \ - for (n = 0; n < n_clips; n++) {\ - if (clip) {\ - DFBRegion reg, *cli = (clip); \ - cairo_rectangle_int_t rect; \ - cairo_region_get_rectangle (clip_region, n, &rect); \ - reg.x1 = rect.x; \ - reg.y1 = rect.y; \ - reg.x2 = rect.x + rect.width - 1; \ - reg.y2 = rect.y + rect.height - 1; \ - if (reg.x2 < cli->x1 || reg.y2 < cli->y1 ||\ - reg.x1 > cli->x2 || reg.y1 > cli->y2)\ - continue;\ - if (reg.x1 < cli->x1)\ - reg.x1 = cli->x1;\ - if (reg.y1 < cli->y1)\ - reg.y1 = cli->y1;\ - if (reg.x2 > cli->x2)\ - reg.x2 = cli->x2;\ - if (reg.y2 > cli->y2)\ - reg.y2 = cli->y2;\ - (surface)->dfbsurface->SetClip ((surface)->dfbsurface, ®);\ - } else {\ - DFBRegion reg; \ - cairo_rectangle_int_t rect; \ - cairo_region_get_rectangle (clip_region, n, &rect); \ - reg.x1 = rect.x; \ - reg.y1 = rect.y; \ - reg.x2 = rect.x + rect.width - 1; \ - reg.y2 = rect.y + rect.height - 1; \ - (surface)->dfbsurface->SetClip ((surface)->dfbsurface, ®); \ - }\ - func;\ - }\ - } else {\ - (surface)->dfbsurface->SetClip ((surface)->dfbsurface, clip);\ - func;\ - }\ -} - -#define TRANSFORM_POINT2X(m, x, y, ret_x, ret_y) do { \ - double _x = (x); \ - double _y = (y); \ - (ret_x) = (_x * (m).xx + (m).x0); \ - (ret_y) = (_y * (m).yy + (m).y0); \ -} while (0) - -#define TRANSFORM_POINT3X(m, x, y, ret_x, ret_y) do { \ - double _x = (x); \ - double _y = (y); \ - (ret_x) = (_x * (m).xx + _y * (m).xy + (m).x0); \ - (ret_y) = (_x * (m).yx + _y * (m).yy + (m).y0); \ -} while (0) - -/* XXX: A1 has a different bits ordering in cairo. - * Probably we should drop it. - */ +} cairo_dfb_surface_t; static cairo_content_t _directfb_format_to_content (DFBSurfacePixelFormat format) { - if (DFB_PIXELFORMAT_HAS_ALPHA (format)) { - if (DFB_COLOR_BITS_PER_PIXEL (format)) - return CAIRO_CONTENT_COLOR_ALPHA; - - return CAIRO_CONTENT_ALPHA; - } - - return CAIRO_CONTENT_COLOR; -} + cairo_content_t content = 0; -static inline DFBSurfacePixelFormat -_cairo_to_directfb_format (cairo_format_t format) -{ - switch (format) { - case CAIRO_FORMAT_RGB24: - return DSPF_RGB32; - case CAIRO_FORMAT_ARGB32: - return DSPF_ARGB; - case CAIRO_FORMAT_A8: - return DSPF_A8; - case CAIRO_FORMAT_A1: - return DSPF_A1; - default: - break; - } + if (DFB_PIXELFORMAT_HAS_ALPHA (format)) + content |= CAIRO_CONTENT_ALPHA; + if (DFB_COLOR_BITS_PER_PIXEL (format)) + content |= CAIRO_CONTENT_COLOR_ALPHA; - return -1; + assert(content); + return content; } static inline pixman_format_code_t _directfb_to_pixman_format (DFBSurfacePixelFormat format) { switch (format) { - case DSPF_UNKNOWN: return PIXMAN_invalid; + case DSPF_UNKNOWN: return 0; case DSPF_ARGB1555: return PIXMAN_a1r5g5b5; case DSPF_RGB16: return PIXMAN_r5g6b5; case DSPF_RGB24: return PIXMAN_r8g8b8; @@ -229,33 +91,139 @@ _directfb_to_pixman_format (DFBSurfacePixelFormat format) case DSPF_A8: return PIXMAN_a8; case DSPF_YUY2: return PIXMAN_yuy2; case DSPF_RGB332: return PIXMAN_r3g3b2; - case DSPF_UYVY: return PIXMAN_invalid; - case DSPF_I420: return PIXMAN_invalid; + case DSPF_UYVY: return 0; + case DSPF_I420: return 0; case DSPF_YV12: return PIXMAN_yv12; - case DSPF_LUT8: return PIXMAN_invalid; - case DSPF_ALUT44: return PIXMAN_invalid; - case DSPF_AiRGB: return PIXMAN_invalid; - case DSPF_A1: return PIXMAN_a1; /* bit reversed, oops */ - case DSPF_NV12: return PIXMAN_invalid; - case DSPF_NV16: return PIXMAN_invalid; - case DSPF_ARGB2554: return PIXMAN_invalid; + case DSPF_LUT8: return 0; + case DSPF_ALUT44: return 0; + case DSPF_AiRGB: return 0; + case DSPF_A1: return 0; /* bit reversed, oops */ + case DSPF_NV12: return 0; + case DSPF_NV16: return 0; + case DSPF_ARGB2554: return 0; case DSPF_ARGB4444: return PIXMAN_a4r4g4b4; - case DSPF_NV21: return PIXMAN_invalid; - case DSPF_AYUV: return PIXMAN_invalid; + case DSPF_NV21: return 0; + case DSPF_AYUV: return 0; case DSPF_A4: return PIXMAN_a4; - case DSPF_ARGB1666: return PIXMAN_invalid; - case DSPF_ARGB6666: return PIXMAN_invalid; - case DSPF_RGB18: return PIXMAN_invalid; - case DSPF_LUT2: return PIXMAN_invalid; + case DSPF_ARGB1666: return 0; + case DSPF_ARGB6666: return 0; + case DSPF_RGB18: return 0; + case DSPF_LUT2: return 0; case DSPF_RGB444: return PIXMAN_x4r4g4b4; case DSPF_RGB555: return PIXMAN_x1r5g5b5; #if DFB_NUM_PIXELFORMATS >= 29 case DSPF_BGR555: return PIXMAN_x1b5g5r5; #endif } - return PIXMAN_invalid; + return 0; +} + +static cairo_surface_t * +_cairo_dfb_surface_create_similar (void *abstract_src, + cairo_content_t content, + int width, + int height) +{ + cairo_dfb_surface_t *other = abstract_src; + DFBSurfacePixelFormat format; + IDirectFBSurface *buffer; + DFBSurfaceDescription dsc; + cairo_surface_t *surface; + + if (width <= 0 || height <= 0) + return _cairo_image_surface_create_with_content (content, width, height); + + switch (content) { + default: + ASSERT_NOT_REACHED; + case CAIRO_CONTENT_COLOR_ALPHA: + format = DSPF_ARGB; + break; + case CAIRO_CONTENT_COLOR: + format = DSPF_RGB32; + break; + case CAIRO_CONTENT_ALPHA: + format = DSPF_A8; + break; + } + + dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT; + dsc.caps = DSCAPS_PREMULTIPLIED; + dsc.width = width; + dsc.height = height; + dsc.pixelformat = format; + + if (other->dfb->CreateSurface (other->dfb, &dsc, &buffer)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_DEVICE_ERROR)); + + surface = cairo_directfb_surface_create (other->dfb, buffer); + buffer->Release (buffer); + + return surface; +} + +static cairo_status_t +_cairo_dfb_surface_finish (void *abstract_surface) +{ + cairo_dfb_surface_t *surface = abstract_surface; + + surface->dfb_surface->Release (surface->dfb_surface); + return _cairo_image_surface_finish (abstract_surface); +} + +static cairo_surface_t * +_cairo_dfb_surface_map_to_image (void *abstract_surface, + const cairo_rectangle_int_t *extents) +{ + cairo_dfb_surface_t *surface = abstract_surface; + + if (surface->image.pixman_image == NULL) { + IDirectFBSurface *buffer = surface->dfb_surface; + pixman_image_t *image; + void *data; + int pitch; + + if (buffer->Lock (buffer, DSLF_READ | DSLF_WRITE, &data, &pitch)) + return _cairo_surface_create_in_error(_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + image = pixman_image_create_bits (surface->image.pixman_format, + surface->image.width, + surface->image.height, + data, pitch); + if (image == NULL) { + buffer->Unlock (buffer); + return _cairo_surface_create_in_error(_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + _cairo_image_surface_init (&surface->image, image, surface->image.pixman_format); + } + + return _cairo_image_surface_map_to_image (&surface->image, extents); +} + +static cairo_int_status_t +_cairo_dfb_surface_unmap_image (void *abstract_surface, + cairo_image_surface_t *image) +{ + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_dfb_surface_flush (void *abstract_surface) +{ + cairo_dfb_surface_t *surface = abstract_surface; + + if (surface->image.pixman_image) { + surface->dfb_surface->Unlock (surface->dfb_surface); + + pixman_image_unref (surface->image.pixman_image); + surface->image.pixman_image = NULL; + surface->image.data = NULL; + } + + return CAIRO_STATUS_SUCCESS; } +#if 0 static inline DFBSurfacePixelFormat _directfb_from_pixman_format (pixman_format_code_t format) { @@ -373,1598 +341,199 @@ _directfb_get_operator (cairo_operator_t operator, return TRUE; } +#define RUN_CLIPPED(surface, clip_region, clip, func) {\ + if ((clip_region) != NULL) {\ + int n_clips = cairo_region_num_rectangles (clip_region), n; \ + for (n = 0; n < n_clips; n++) {\ + if (clip) {\ + DFBRegion reg, *cli = (clip); \ + cairo_rectangle_int_t rect; \ + cairo_region_get_rectangle (clip_region, n, &rect); \ + reg.x1 = rect.x; \ + reg.y1 = rect.y; \ + reg.x2 = rect.x + rect.width - 1; \ + reg.y2 = rect.y + rect.height - 1; \ + if (reg.x2 < cli->x1 || reg.y2 < cli->y1 ||\ + reg.x1 > cli->x2 || reg.y1 > cli->y2)\ + continue;\ + if (reg.x1 < cli->x1)\ + reg.x1 = cli->x1;\ + if (reg.y1 < cli->y1)\ + reg.y1 = cli->y1;\ + if (reg.x2 > cli->x2)\ + reg.x2 = cli->x2;\ + if (reg.y2 > cli->y2)\ + reg.y2 = cli->y2;\ + (surface)->dfbsurface->SetClip ((surface)->dfbsurface, ®);\ + } else {\ + DFBRegion reg; \ + cairo_rectangle_int_t rect; \ + cairo_region_get_rectangle (clip_region, n, &rect); \ + reg.x1 = rect.x; \ + reg.y1 = rect.y; \ + reg.x2 = rect.x + rect.width - 1; \ + reg.y2 = rect.y + rect.height - 1; \ + (surface)->dfbsurface->SetClip ((surface)->dfbsurface, ®); \ + }\ + func;\ + }\ + } else {\ + (surface)->dfbsurface->SetClip ((surface)->dfbsurface, clip);\ + func;\ + }\ +} -static cairo_status_t -_directfb_buffer_surface_create (IDirectFB *dfb, - DFBSurfacePixelFormat format, - int width, - int height, - IDirectFBSurface **out) +static cairo_int_status_t +_cairo_dfb_surface_fill_rectangles (void *abstract_surface, + cairo_operator_t op, + const cairo_color_t *color, + cairo_rectangle_int_t *rects, + int n_rects) { - IDirectFBSurface *buffer; - DFBSurfaceDescription dsc; - DFBResult ret; + cairo_dfb_surface_t *dst = abstract_surface; + DFBSurfaceDrawingFlags flags; + DFBSurfaceBlendFunction sblend; + DFBSurfaceBlendFunction dblend; + DFBRectangle r[n_rects]; + int i; - dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT; - dsc.caps = DSCAPS_PREMULTIPLIED; - dsc.width = width; - dsc.height = height; - dsc.pixelformat = format; + D_DEBUG_AT (CairoDFB_Render, + "%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d ).\n", + __FUNCTION__, dst, op, color, rects, n_rects); - ret = dfb->CreateSurface (dfb, &dsc, &buffer); - if (ret) { - DirectFBError ("IDirectFB::CreateSurface()", ret); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } + if (! dst->supported_destination) + return CAIRO_INT_STATUS_UNSUPPORTED; - *out = buffer; - return CAIRO_STATUS_SUCCESS; -} + if (! _directfb_get_operator (op, &sblend, &dblend)) + return CAIRO_INT_STATUS_UNSUPPORTED; -static cairo_status_t -_directfb_acquire_surface (cairo_directfb_surface_t *surface, - cairo_rectangle_int_t *intrest_rec, - cairo_image_surface_t **image_out, - cairo_rectangle_int_t *image_rect_out, - void **image_extra, - DFBSurfaceLockFlags lock_flags) -{ - IDirectFBSurface *buffer = NULL; - DFBRectangle source_rect; - cairo_surface_t *image; - pixman_image_t *pixman_image; - pixman_format_code_t pixman_format; - cairo_status_t status; - void *data; - int pitch; - - if (surface->pixman_format == PIXMAN_invalid) { - if (intrest_rec != NULL) { - source_rect.x = intrest_rec->x; - source_rect.y = intrest_rec->y; - source_rect.w = intrest_rec->width; - source_rect.h = intrest_rec->height; - } else { - source_rect.x = 0; - source_rect.y = 0; - surface->dfbsurface->GetSize (surface->dfbsurface, - &source_rect.w, &source_rect.h); - } - - if (surface->tmpsurface != NULL) { - int w, h; - - surface->tmpsurface->GetSize (surface->tmpsurface, &w, &h); - if (w < source_rect.w || h < source_rect.h) { - surface->tmpsurface->Release (surface->tmpsurface); - surface->tmpsurface = NULL; - surface->tmpformat = PIXMAN_invalid; - } - } - - if (surface->tmpsurface == NULL) { - DFBSurfacePixelFormat format; - - D_DEBUG_AT (CairoDFB_Acquire, "Allocating buffer for surface %p.\n", surface); - - format = _cairo_to_directfb_format (_cairo_format_from_content (surface->base.content)); - status = - _directfb_buffer_surface_create (surface->dfb, format, - source_rect.w, source_rect.h, - &surface->tmpsurface); - if (unlikely (status)) - goto ERROR; - - surface->tmpformat = _directfb_to_pixman_format (format); - } - buffer = surface->tmpsurface; - pixman_format = surface->tmpformat; - - -/* surface->dfbsurface->GetCapabilities (surface->dfbsurface, &caps); - DFBSurfaceCapabilities caps; - if (caps & DSCAPS_FLIPPING) { - DFBRegion region = { .x1 = source_rect.x, .y1 = source_rect.y, - .x2 = source_rect.x + source_rect.w - 1, - .y2 = source_rect.y + source_rect.h - 1 }; - surface->dfbsurface->Flip (surface->dfbsurface, ®ion, DSFLIP_BLIT); - } */ - buffer->Blit (buffer, surface->dfbsurface, &source_rect, 0, 0); - } else { - /*might be a subsurface get the offset*/ - surface->dfbsurface->GetVisibleRectangle (surface->dfbsurface, &source_rect); - pixman_format = surface->pixman_format; - buffer = surface->dfbsurface; - } + if (CAIRO_COLOR_IS_OPAQUE (color)) { + if (sblend == DSBF_SRCALPHA) + sblend = DSBF_ONE; + else if (sblend == DSBF_INVSRCALPHA) + sblend = DSBF_ZERO; - if (buffer->Lock (buffer, lock_flags, &data, &pitch)) { - D_DEBUG_AT (CairoDFB_Acquire, "Couldn't lock surface!\n"); - status = _cairo_error (CAIRO_STATUS_NO_MEMORY); - goto ERROR; + if (dblend == DSBF_SRCALPHA) + dblend = DSBF_ONE; + else if (dblend == DSBF_INVSRCALPHA) + dblend = DSBF_ZERO; } + if ((dst->base.content & CAIRO_CONTENT_ALPHA) == 0) { + if (sblend == DSBF_DESTALPHA) + sblend = DSBF_ONE; + else if (sblend == DSBF_INVDESTALPHA) + sblend = DSBF_ZERO; - pixman_image = pixman_image_create_bits (pixman_format, - source_rect.w, source_rect.h, - data, pitch); - if (pixman_image == NULL) { - status = _cairo_error (CAIRO_STATUS_NO_MEMORY); - goto ERROR; + if (dblend == DSBF_DESTALPHA) + dblend = DSBF_ONE; + else if (dblend == DSBF_INVDESTALPHA) + dblend = DSBF_ZERO; } - image = _cairo_image_surface_create_for_pixman_image (pixman_image, - pixman_format); - status = image->status; - if (status) - goto ERROR; - - if (image_rect_out) { - image_rect_out->x = source_rect.x; - image_rect_out->y = source_rect.y; - image_rect_out->width = source_rect.w; - image_rect_out->height = source_rect.h; - } else { - /* lock for read */ - /* might be a subsurface */ - if (buffer == surface->dfbsurface) { - cairo_surface_set_device_offset (image, - source_rect.x, source_rect.y); - } + flags = (sblend == DSBF_ONE && dblend == DSBF_ZERO) ? DSDRAW_NOFX : DSDRAW_BLEND; + dst->dfbsurface->SetDrawingFlags (dst->dfbsurface, flags); + if (flags & DSDRAW_BLEND) { + dst->dfbsurface->SetSrcBlendFunction (dst->dfbsurface, sblend); + dst->dfbsurface->SetDstBlendFunction (dst->dfbsurface, dblend); } - *image_extra = buffer; - *image_out = (cairo_image_surface_t *) image; - return CAIRO_STATUS_SUCCESS; + dst->dfbsurface->SetColor (dst->dfbsurface, + color->red_short >> 8, + color->green_short >> 8, + color->blue_short >> 8, + color->alpha_short >> 8); -ERROR: - if (buffer) { - buffer->Unlock (buffer); - if (buffer != surface->dfbsurface) - buffer->Release (buffer); + for (i = 0; i < n_rects; i++) { + r[i].x = rects[i].x; + r[i].y = rects[i].y; + r[i].w = rects[i].width; + r[i].h = rects[i].height; } - return status; + + RUN_CLIPPED (dst, NULL, NULL, + dst->dfbsurface->FillRectangles (dst->dfbsurface, r, n_rects)); + + return CAIRO_STATUS_SUCCESS; } +#endif -static cairo_surface_t * -_cairo_directfb_surface_create_internal (IDirectFB *dfb, - DFBSurfacePixelFormat format, - cairo_content_t content, - int width, - int height) +static cairo_surface_backend_t +_cairo_dfb_surface_backend = { + CAIRO_SURFACE_TYPE_DIRECTFB, /*type*/ + _cairo_dfb_surface_finish, /*finish*/ + _cairo_default_context_create, + + _cairo_dfb_surface_create_similar,/*create_similar*/ + NULL, /* create similar image */ + _cairo_dfb_surface_map_to_image, + _cairo_dfb_surface_unmap_image, + + _cairo_surface_default_source, + _cairo_surface_default_acquire_source_image, + _cairo_surface_default_release_source_image, + NULL, + + NULL, /* copy_page */ + NULL, /* show_page */ + + _cairo_image_surface_get_extents, + _cairo_image_surface_get_font_options, + + _cairo_dfb_surface_flush, + NULL, /* mark_dirty_rectangle */ + + _cairo_surface_fallback_paint, + _cairo_surface_fallback_mask, + _cairo_surface_fallback_stroke, + _cairo_surface_fallback_fill, + NULL, /* fill-stroke */ + _cairo_surface_fallback_glyphs, +}; + +cairo_surface_t * +cairo_directfb_surface_create (IDirectFB *dfb, IDirectFBSurface *dfbsurface) { - cairo_directfb_surface_t *surface; - cairo_status_t status; + cairo_dfb_surface_t *surface; + DFBSurfacePixelFormat format; + DFBSurfaceCapabilities caps; + pixman_format_code_t pixman_format; + int width, height; - surface = calloc (1, sizeof (cairo_directfb_surface_t)); - if (unlikely (surface == NULL)) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + D_ASSERT (dfb != NULL); + D_ASSERT (dfbsurface != NULL); - surface->dfb = dfb; + dfbsurface->GetPixelFormat (dfbsurface, &format); + dfbsurface->GetSize (dfbsurface, &width, &height); - if (width < 8 || height < 8) { - IDirectFBSurface *tmp; - DFBRectangle rect = { .x=0, .y=0, .w=width, .h=height }; - - /* Some cards (e.g. Matrox) don't support surfaces smaller than 8x8 */ - status = _directfb_buffer_surface_create (dfb, format, - MAX (width, 8), MAX (height, 8), - &tmp); - if (status) { - free (surface); - return _cairo_surface_create_in_error (status); - } + pixman_format = _directfb_to_pixman_format (format); + if (! pixman_format_supported_destination (pixman_format)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); - tmp->GetSubSurface (tmp, &rect, &surface->dfbsurface); - tmp->Release (tmp); - } else { - status = _directfb_buffer_surface_create (dfb, format, - width, height, - &surface->dfbsurface); - if (status) { - free (surface); - return _cairo_surface_create_in_error (status); - } - } + surface = calloc (1, sizeof (cairo_dfb_surface_t)); + if (surface == NULL) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - _cairo_surface_init (&surface->base, - &_cairo_directfb_surface_backend, + /* XXX dfb -> device */ + _cairo_surface_init (&surface->image.base, + &_cairo_dfb_surface_backend, NULL, /* device */ - content); - surface->pixman_format = _directfb_to_pixman_format (format); - surface->supported_destination = pixman_format_supported_destination (surface->pixman_format); - - surface->width = width; - surface->height = height; - surface->local = TRUE; - surface->blit_premultiplied = TRUE; - - return &surface->base; -} - -static cairo_surface_t * -_cairo_directfb_surface_create_similar (void *abstract_src, - cairo_content_t content, - int width, - int height) -{ - cairo_directfb_surface_t *other = abstract_src; - DFBSurfacePixelFormat format; - - D_DEBUG_AT (CairoDFB_Surface, - "%s( src=%p, content=0x%x, width=%d, height=%d).\n", - __FUNCTION__, other, content, width, height); - - width = (width <= 0) ? 1 : width; - height = (height<= 0) ? 1 : height; - - format = _cairo_to_directfb_format (_cairo_format_from_content (content)); - return _cairo_directfb_surface_create_internal (other->dfb, format, - content, width, height); -} - -static cairo_status_t -_cairo_directfb_surface_finish (void *data) -{ - cairo_directfb_surface_t *surface = (cairo_directfb_surface_t *)data; - - D_DEBUG_AT (CairoDFB_Surface, "%s( surface=%p ).\n", __FUNCTION__, surface); - - if (surface->tmpsurface) { - surface->tmpsurface->Release (surface->tmpsurface); - surface->tmpsurface = NULL; - } - - if (surface->dfbsurface) { - surface->dfbsurface->Release (surface->dfbsurface); - surface->dfbsurface = NULL; - } - - if (surface->dfb) - surface->dfb = NULL; - - return CAIRO_STATUS_SUCCESS; -} - -static cairo_status_t -_cairo_directfb_surface_acquire_source_image (void *abstract_surface, - cairo_image_surface_t **image_out, - void **image_extra) -{ - cairo_directfb_surface_t *surface = abstract_surface; - - D_DEBUG_AT (CairoDFB_Acquire, - "%s( surface=%p ).\n", __FUNCTION__, surface); - - return _directfb_acquire_surface (surface, NULL, image_out, - NULL, image_extra, DSLF_READ); -} - -static void -_cairo_directfb_surface_release_source_image (void *abstract_surface, - cairo_image_surface_t *image, - void *image_extra) -{ - IDirectFBSurface *buffer = image_extra; - - D_DEBUG_AT (CairoDFB_Acquire, - "%s( release=%p ).\n", __FUNCTION__, abstract_surface); - - buffer->Unlock (buffer); - - cairo_surface_destroy (&image->base); -} - -static cairo_status_t -_cairo_directfb_surface_acquire_dest_image (void *abstract_surface, - cairo_rectangle_int_t *interest_rect, - cairo_image_surface_t **image_out, - cairo_rectangle_int_t *image_rect_out, - void **image_extra) -{ - cairo_directfb_surface_t *surface = abstract_surface; - - D_DEBUG_AT (CairoDFB_Acquire, - "%s( surface=%p (%dx%d), interest_rect={ %u %u %u %u } ).\n", - __FUNCTION__, surface, surface->width, surface->height, - interest_rect ? interest_rect->x : 0, - interest_rect ? interest_rect->y : 0, - interest_rect ? interest_rect->width : (unsigned) surface->width, - interest_rect ? interest_rect->height : (unsigned) surface->height); - - return _directfb_acquire_surface (surface, interest_rect, image_out, - image_rect_out, image_extra, - DSLF_READ | DSLF_WRITE); -} - -static void -_cairo_directfb_surface_release_dest_image (void *abstract_surface, - cairo_rectangle_int_t *interest_rect, - cairo_image_surface_t *image, - cairo_rectangle_int_t *image_rect, - void *image_extra) -{ - cairo_directfb_surface_t *surface = abstract_surface; - IDirectFBSurface *buffer = image_extra; - - D_DEBUG_AT (CairoDFB_Acquire, - "%s( surface=%p ).\n", __FUNCTION__, surface); - - buffer->Unlock (buffer); - - if (surface->dfbsurface != buffer) { - DFBRegion region = { - .x1 = interest_rect->x, - .y1 = interest_rect->y, - .x2 = interest_rect->x + interest_rect->width - 1, - .y2 = interest_rect->y + interest_rect->height - 1 - }; - surface->dfbsurface->SetBlittingFlags (surface->dfbsurface, DSBLIT_NOFX); - surface->dfbsurface->SetClip (surface->dfbsurface, ®ion); - surface->dfbsurface->Blit (surface->dfbsurface, - buffer, NULL, - image_rect->x, image_rect->y); - } - - cairo_surface_destroy (&image->base); -} - -static cairo_status_t -_cairo_directfb_surface_clone_similar (void *abstract_surface, - cairo_surface_t *src, - int src_x, - int src_y, - int width, - int height, - int *clone_offset_x, - int *clone_offset_y, - cairo_surface_t **clone_out) -{ - cairo_directfb_surface_t *surface = abstract_surface; - cairo_directfb_surface_t *clone; - - D_DEBUG_AT (CairoDFB_Surface, - "%s( surface=%p, src=%p ).\n", __FUNCTION__, surface, src); - - if (src->backend == surface->base.backend) { - *clone_offset_x = 0; - *clone_offset_y = 0; - *clone_out = cairo_surface_reference (src); - - return CAIRO_STATUS_SUCCESS; - } else if (_cairo_surface_is_image (src)) { - cairo_image_surface_t *image_src = (cairo_image_surface_t *) src; - DFBSurfacePixelFormat format; - DFBResult ret; - pixman_image_t *pixman_image; - void *data; - int pitch; - - format = _directfb_from_pixman_format (image_src->pixman_format); - if (format == 0) - return CAIRO_INT_STATUS_UNSUPPORTED; - - clone = (cairo_directfb_surface_t *) - _cairo_directfb_surface_create_internal (surface->dfb, format, - image_src->base.content, - width, height); - if (unlikely (clone->base.status)) - return clone->base.status; - - ret = clone->dfbsurface->Lock (clone->dfbsurface, - DSLF_WRITE, (void *)&data, &pitch); - if (ret) { - DirectFBError ("IDirectFBSurface::Lock()", ret); - cairo_surface_destroy (&clone->base); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } - - pixman_image = pixman_image_create_bits (clone->pixman_format, - width, height, - data, pitch); - if (unlikely (pixman_image == NULL)) { - DirectFBError ("IDirectFBSurface::Lock()", ret); - cairo_surface_destroy (&clone->base); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } - - pixman_image_composite32 (PIXMAN_OP_SRC, - image_src->pixman_image, - NULL, - pixman_image, - src_x, src_y, - 0, 0, - 0, 0, - width, height); - - pixman_image_unref (pixman_image); - - clone->dfbsurface->Unlock (clone->dfbsurface); - - *clone_offset_x = src_x; - *clone_offset_y = src_y; - *clone_out = &clone->base; - return CAIRO_STATUS_SUCCESS; - } - - return CAIRO_INT_STATUS_UNSUPPORTED; -} - -#if DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS -static cairo_int_status_t -_directfb_prepare_composite (cairo_directfb_surface_t *dst, - const cairo_pattern_t *src_pattern, - const cairo_pattern_t *mask_pattern, - cairo_operator_t op, - int *src_x, int *src_y, - int *mask_x, int *mask_y, - unsigned int width, - unsigned int height, - cairo_directfb_surface_t **ret_src, - cairo_surface_attributes_t *ret_src_attr) -{ - cairo_directfb_surface_t *src; - cairo_surface_attributes_t src_attr; - cairo_status_t status; - DFBSurfaceBlittingFlags flags; - DFBSurfaceBlendFunction sblend; - DFBSurfaceBlendFunction dblend; - const cairo_color_t *color; - - /* XXX Unbounded operators are not handled correctly */ - if (! _cairo_operator_bounded_by_source (op)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (! _directfb_get_operator (op, &sblend, &dblend)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (mask_pattern) { - return CAIRO_INT_STATUS_UNSUPPORTED; - if (mask_pattern->type != CAIRO_PATTERN_TYPE_SOLID) { - const cairo_pattern_t *tmp; - int tmp_x, tmp_y; - - if (src_pattern->type != CAIRO_PATTERN_TYPE_SOLID || - sblend == DSBF_INVDESTALPHA) /* Doesn't work correctly */ - return CAIRO_INT_STATUS_UNSUPPORTED; - - D_DEBUG_AT (CairoDFB_Render, "Replacing src pattern by mask pattern.\n"); - - tmp = src_pattern; - tmp_x = *src_x; tmp_y = *src_y; - - src_pattern = mask_pattern; - *src_x = *mask_x; *src_y = *mask_y; - - mask_pattern = tmp; - *mask_x = tmp_x; *mask_y = tmp_y; - - if (sblend == DSBF_ONE) { - sblend = DSBF_SRCALPHA; - /*dblend = DSBF_INVSRCALPHA;*/ - } - } - - color = &((cairo_solid_pattern_t *) mask_pattern)->color; - } else { - color = _cairo_stock_color (CAIRO_STOCK_WHITE); - } - - status = _cairo_pattern_acquire_surface (src_pattern, &dst->base, - *src_x, *src_y, width, height, - CAIRO_PATTERN_ACQUIRE_NO_REFLECT, - (cairo_surface_t **) &src, - &src_attr); - if (status) - return status; - - if (src->base.backend != &_cairo_directfb_surface_backend || - src->dfb != dst->dfb) - { - _cairo_pattern_release_surface (src_pattern, &src->base, &src_attr); - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - if ((src->base.content & CAIRO_CONTENT_ALPHA) == 0) { - if (sblend == DSBF_SRCALPHA) - sblend = DSBF_ONE; - else if (sblend == DSBF_INVSRCALPHA) - sblend = DSBF_ZERO; - - if (dblend == DSBF_SRCALPHA) - dblend = DSBF_ONE; - else if (dblend == DSBF_INVSRCALPHA) - dblend = DSBF_ZERO; - } - - if ((dst->base.content & CAIRO_CONTENT_ALPHA) == 0) { - if (sblend == DSBF_DESTALPHA) - sblend = DSBF_ONE; - else if (sblend == DSBF_INVDESTALPHA) - sblend = DSBF_ZERO; - - if (dblend == DSBF_DESTALPHA) - dblend = DSBF_ONE; - else if (dblend == DSBF_INVDESTALPHA) - dblend = DSBF_ZERO; - } - - flags = (sblend == DSBF_ONE && dblend == DSBF_ZERO) - ? DSBLIT_NOFX : DSBLIT_BLEND_ALPHACHANNEL; - if (! CAIRO_COLOR_IS_OPAQUE (color)) - flags |= DSBLIT_BLEND_COLORALPHA; - if (! _cairo_color_equal (color, _cairo_stock_color (CAIRO_STOCK_WHITE))) - flags |= DSBLIT_COLORIZE; - - dst->dfbsurface->SetBlittingFlags (dst->dfbsurface, flags); - - if (flags & (DSBLIT_BLEND_ALPHACHANNEL | DSBLIT_BLEND_COLORALPHA)) { - dst->dfbsurface->SetSrcBlendFunction (dst->dfbsurface, sblend); - dst->dfbsurface->SetDstBlendFunction (dst->dfbsurface, dblend); - } - - if (flags & (DSBLIT_BLEND_COLORALPHA | DSBLIT_COLORIZE)) { - if (dst->blit_premultiplied) { - dst->dfbsurface->SetColor (dst->dfbsurface, - color->red_short >> 8, - color->green_short >> 8, - color->blue_short >> 8, - color->alpha_short >> 8); - } else { - dst->dfbsurface->SetColor (dst->dfbsurface, - color->red * 0xff, - color->green * 0xff, - color->blue * 0xff, - color->alpha * 0xff); - } - } - - *ret_src = src; - *ret_src_attr = src_attr; - - return CAIRO_STATUS_SUCCESS; -} - -static void -_directfb_finish_composite (cairo_directfb_surface_t *dst, - const cairo_pattern_t *src_pattern, - cairo_surface_t *src, - cairo_surface_attributes_t *src_attr) -{ - _cairo_pattern_release_surface (src_pattern, src, src_attr); -} -#endif /* DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS */ - -#if DFB_COMPOSITE -static DFBAccelerationMask -_directfb_categorize_operation (cairo_surface_attributes_t *src_attr) -{ - cairo_matrix_t *m = &src_attr->matrix; - - if (m->xy != 0 || m->yx != 0 || m->xx < 0 || m->yy < 0) { - if (src_attr->extend != CAIRO_EXTEND_NONE) - return DFXL_NONE; - - return DFXL_TEXTRIANGLES; - } - - if (m->xx != 1 || m->yy != 1) { - if (src_attr->extend != CAIRO_EXTEND_NONE) - return DFXL_NONE; - - return DFXL_STRETCHBLIT; - } - - switch (src_attr->extend) { - case CAIRO_EXTEND_NONE: - case CAIRO_EXTEND_REPEAT: - if (_cairo_matrix_is_integer_translation (&src_attr->matrix, - NULL, NULL)) - { - return DFXL_BLIT; - } - else - { - return DFXL_STRETCHBLIT; - } - - default: - case CAIRO_EXTEND_REFLECT: - case CAIRO_EXTEND_PAD: - return DFXL_NONE; - } -} - -static cairo_int_status_t -_cairo_directfb_surface_composite (cairo_operator_t op, - const cairo_pattern_t *src_pattern, - const cairo_pattern_t *mask_pattern, - void *abstract_dst, - int src_x, int src_y, - int mask_x, int mask_y, - int dst_x, int dst_y, - unsigned int width, - unsigned int height, - cairo_region_t *clip_region) -{ - cairo_directfb_surface_t *dst = abstract_dst; - cairo_directfb_surface_t *src; - cairo_surface_attributes_t src_attr; - cairo_bool_t is_integer_translation; - DFBAccelerationMask accel, mask; - cairo_int_status_t status; - int tx, ty; - - D_DEBUG_AT (CairoDFB_Render, - "%s( op=%d, src_pattern=%p, mask_pattern=%p, dst=%p," - " src_x=%d, src_y=%d, mask_x=%d, mask_y=%d, dst_x=%d," - " dst_y=%d, width=%u, height=%u ).\n", - __FUNCTION__, op, src_pattern, mask_pattern, dst, - src_x, src_y, mask_x, mask_y, dst_x, dst_y, width, height); - - if (! dst->supported_destination) - return CAIRO_INT_STATUS_UNSUPPORTED; - - status = _directfb_prepare_composite (dst, src_pattern, mask_pattern, op, - &src_x, &src_y, &mask_x, &mask_y, - width, height, &src, &src_attr); - if (status) - return status; - - accel = _directfb_categorize_operation (&src_attr); - if (accel == DFXL_NONE) { - _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr); - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - dst->dfbsurface->GetAccelerationMask (dst->dfbsurface, - src->dfbsurface, - &mask); - if ((mask & accel) == 0) { - D_DEBUG_AT (CairoDFB_Render, "No acceleration (%08x)!\n", accel); - if (accel != DFXL_BLIT) { - _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr); - return CAIRO_INT_STATUS_UNSUPPORTED; - } - } - - src_x += src_attr.x_offset; - src_y += src_attr.y_offset; - - switch ((int) accel) { - case DFXL_BLIT: - { - DFBRectangle sr; - - is_integer_translation = - _cairo_matrix_is_integer_translation (&src_attr.matrix, - &tx, &ty); - assert (is_integer_translation); - - sr.x = src_x + tx; - sr.y = src_y + ty; - sr.w = width; - sr.h = height; - - if (src_attr.extend == CAIRO_EXTEND_NONE) { - D_DEBUG_AT (CairoDFB_Render, "Running Blit().\n"); - - RUN_CLIPPED (dst, clip_region, NULL, - dst->dfbsurface->Blit (dst->dfbsurface, - src->dfbsurface, - &sr, dst_x, dst_y)); - } else if (src_attr.extend == CAIRO_EXTEND_REPEAT) { - DFBRegion clip; - - clip.x1 = dst_x; - clip.y1 = dst_y; - clip.x2 = dst_x + width - 1; - clip.y2 = dst_y + height - 1; - - D_DEBUG_AT (CairoDFB_Render, "Running TileBlit().\n"); - - RUN_CLIPPED (dst, clip_region, &clip, - dst->dfbsurface->TileBlit (dst->dfbsurface, - src->dfbsurface, - &sr, dst_x, dst_y)); - } - break; - } - - case DFXL_STRETCHBLIT: - { - DFBRectangle sr, dr; - double x1, y1, x2, y2; - - TRANSFORM_POINT2X (src_attr.matrix, - src_x, src_y, x1, y1); - TRANSFORM_POINT2X (src_attr.matrix, - src_x+width, src_y+height, x2, y2); - - sr.x = floor (x1); - sr.y = floor (y1); - sr.w = ceil (x2) - sr.x; - sr.h = ceil (y2) - sr.y; - - dr.x = dst_x; - dr.y = dst_y; - dr.w = width; - dr.h = height; - - D_DEBUG_AT (CairoDFB_Render, "Running StretchBlit().\n"); - - RUN_CLIPPED (dst, clip_region, NULL, - dst->dfbsurface->StretchBlit (dst->dfbsurface, - src->dfbsurface, - &sr, &dr)); - break; - } - - case DFXL_TEXTRIANGLES: - { - DFBRegion clip; - DFBVertex v[4]; - float x1, y1, x2, y2; - int w, h; - - status = cairo_matrix_invert (&src_attr.matrix); - /* guaranteed by cairo_pattern_set_matrix (); */ - assert (status == CAIRO_STATUS_SUCCESS); - - x1 = src_x; - y1 = src_y; - x2 = width + x1; - y2 = height + y1; - - src->dfbsurface->GetSize (src->dfbsurface, &w, &h); - - TRANSFORM_POINT3X (src_attr.matrix, x1, y1, v[0].x, v[0].y); - v[0].z = 0; - v[0].w = 1; - v[0].s = x1 / w; - v[0].t = y1 / h; - - TRANSFORM_POINT3X (src_attr.matrix, x2, y1, v[1].x, v[1].y); - v[1].z = 0; - v[1].w = 1; - v[1].s = x2 / w; - v[1].t = y1 / h; - - TRANSFORM_POINT3X (src_attr.matrix, x2, y2, v[2].x, v[2].y); - v[2].z = 0; - v[2].w = 1; - v[2].s = x2 / w; - v[2].t = y2 / h; - - TRANSFORM_POINT3X (src_attr.matrix, x1, y2, v[3].x, v[3].y); - v[3].z = 0; - v[3].w = 1; - v[3].s = x1 / w; - v[3].t = y2 / h; - - clip.x1 = dst_x; - clip.y1 = dst_y; - clip.x2 = dst_x + width - 1; - clip.y2 = dst_y + height - 1; - - D_DEBUG_AT (CairoDFB_Render, "Running TextureTriangles().\n"); - - RUN_CLIPPED (dst, clip_region, &clip, - dst->dfbsurface->TextureTriangles (dst->dfbsurface, - src->dfbsurface, - v, NULL, - 4, DTTF_FAN)); - break; - } - - default: - D_BUG ("Unexpected operation"); - break; - } - - _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr); - - return CAIRO_STATUS_SUCCESS; -} -#endif /* DFB_COMPOSITE */ - -#if DFB_RECTANGLES -static cairo_int_status_t -_cairo_directfb_surface_fill_rectangles (void *abstract_surface, - cairo_operator_t op, - const cairo_color_t *color, - cairo_rectangle_int_t *rects, - int n_rects) -{ - cairo_directfb_surface_t *dst = abstract_surface; - DFBSurfaceDrawingFlags flags; - DFBSurfaceBlendFunction sblend; - DFBSurfaceBlendFunction dblend; - DFBRectangle r[n_rects]; - int i; - - D_DEBUG_AT (CairoDFB_Render, - "%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d ).\n", - __FUNCTION__, dst, op, color, rects, n_rects); - - if (! dst->supported_destination) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (! _directfb_get_operator (op, &sblend, &dblend)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (CAIRO_COLOR_IS_OPAQUE (color)) { - if (sblend == DSBF_SRCALPHA) - sblend = DSBF_ONE; - else if (sblend == DSBF_INVSRCALPHA) - sblend = DSBF_ZERO; - - if (dblend == DSBF_SRCALPHA) - dblend = DSBF_ONE; - else if (dblend == DSBF_INVSRCALPHA) - dblend = DSBF_ZERO; - } - if ((dst->base.content & CAIRO_CONTENT_ALPHA) == 0) { - if (sblend == DSBF_DESTALPHA) - sblend = DSBF_ONE; - else if (sblend == DSBF_INVDESTALPHA) - sblend = DSBF_ZERO; - - if (dblend == DSBF_DESTALPHA) - dblend = DSBF_ONE; - else if (dblend == DSBF_INVDESTALPHA) - dblend = DSBF_ZERO; - } - - flags = (sblend == DSBF_ONE && dblend == DSBF_ZERO) ? DSDRAW_NOFX : DSDRAW_BLEND; - dst->dfbsurface->SetDrawingFlags (dst->dfbsurface, flags); - if (flags & DSDRAW_BLEND) { - dst->dfbsurface->SetSrcBlendFunction (dst->dfbsurface, sblend); - dst->dfbsurface->SetDstBlendFunction (dst->dfbsurface, dblend); - } - - dst->dfbsurface->SetColor (dst->dfbsurface, - color->red_short >> 8, - color->green_short >> 8, - color->blue_short >> 8, - color->alpha_short >> 8); - - for (i = 0; i < n_rects; i++) { - r[i].x = rects[i].x; - r[i].y = rects[i].y; - r[i].w = rects[i].width; - r[i].h = rects[i].height; - } - - RUN_CLIPPED (dst, NULL, NULL, - dst->dfbsurface->FillRectangles (dst->dfbsurface, r, n_rects)); - - return CAIRO_STATUS_SUCCESS; -} -#endif - -#if DFB_COMPOSITE_TRAPEZOIDS -static cairo_int_status_t -_cairo_directfb_surface_composite_trapezoids (cairo_operator_t op, - const cairo_pattern_t *pattern, - void *abstract_dst, - cairo_antialias_t antialias, - int src_x, int src_y, - int dst_x, int dst_y, - unsigned int width, - unsigned int height, - cairo_trapezoid_t *traps, - int num_traps, - cairo_region_t *clip_region) -{ - cairo_directfb_surface_t *dst = abstract_dst; - cairo_directfb_surface_t *src; - cairo_surface_attributes_t src_attr; - cairo_status_t status; - DFBAccelerationMask accel; - - D_DEBUG_AT (CairoDFB_Render, - "%s( op=%d, pattern=%p, dst=%p, antialias=%d," - " src_x=%d, src_y=%d, dst_x=%d, dst_y=%d," - " width=%u, height=%u, traps=%p, num_traps=%d ).\n", - __FUNCTION__, op, pattern, dst, antialias, - src_x, src_y, dst_x, dst_y, width, height, traps, num_traps); - - if (! dst->supported_destination) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (antialias != CAIRO_ANTIALIAS_NONE) - return CAIRO_INT_STATUS_UNSUPPORTED; - - /* Textures are not supported yet. */ - if (pattern->type != CAIRO_PATTERN_TYPE_SOLID) - return CAIRO_INT_STATUS_UNSUPPORTED; - - status = _directfb_prepare_composite (dst, pattern, NULL, op, - &src_x, &src_y, NULL, NULL, - width, height, &src, &src_attr); - if (status) - return status; - - dst->dfbsurface->GetAccelerationMask (dst->dfbsurface, - src->dfbsurface, - &accel); - - status = CAIRO_INT_STATUS_UNSUPPORTED; - - if (accel & DFXL_TEXTRIANGLES) { - DFBVertex vertex[6*num_traps]; - DFBVertex *v = &vertex[0]; - int n = 0; - -#define ADD_TRI_V(V, X, Y) do { \ - (V)->x = (X); (V)->y = (Y); (V)->w = 1; (V)->z = (V)->s = (V)->t = 0; \ -} while (0) -#define ADD_TRI(id, x1, y1, x2, y2, x3, y3) do {\ - const int p = (id)*3;\ - ADD_TRI_V (v+p+0, x1, y1); \ - ADD_TRI_V (v+p+1, x2, y2); \ - ADD_TRI_V (v+p+2, x3, y3); \ -} while (0) - while (num_traps--) { - double lx1, ly1, lx2, ly2; - double rx1, ry1, rx2, ry2; - - lx1 = _cairo_fixed_to_double (traps->left.p1.x); - ly1 = _cairo_fixed_to_double (traps->left.p1.y); - lx2 = _cairo_fixed_to_double (traps->left.p2.x); - ly2 = _cairo_fixed_to_double (traps->left.p2.y); - rx1 = _cairo_fixed_to_double (traps->right.p1.x); - ry1 = _cairo_fixed_to_double (traps->right.p1.y); - rx2 = _cairo_fixed_to_double (traps->right.p2.x); - ry2 = _cairo_fixed_to_double (traps->right.p2.y); - - if (traps->left.p1.y < traps->top) { - double y = _cairo_fixed_to_double (traps->top); - if (lx2 != lx1) - lx1 = (y - ly1) * (lx2 - lx1) / (ly2 - ly1) + lx1; - ly1 = y; - } - if (traps->left.p2.y > traps->bottom) { - double y = _cairo_fixed_to_double (traps->bottom); - if (lx2 != lx1) - lx2 = (y - ly1) * (lx2 - lx1) / (ly2 - ly1) + lx1; - ly2 = y; - } - - if (traps->right.p1.y < traps->top) { - double y = _cairo_fixed_to_double (traps->top); - if (rx2 != rx1) - rx1 = (y - ry1) * (rx2 - rx1) / (ry2 - ry1) + rx1; - ry1 = y; - } - if (traps->right.p2.y > traps->bottom) { - double y = _cairo_fixed_to_double (traps->bottom); - if (rx2 != rx1) - rx2 = (y - ry1) * (rx2 - rx1) / (ry2 - ry1) + rx1; - ry2 = y; - } - - if (lx1 == rx1 && ly1 == ry1) { - ADD_TRI (0, lx2, ly2, lx1, ly1, rx2, ry2); - v += 3; - n += 3; - } else if (lx2 == rx2 && ly2 == ry2) { - ADD_TRI (0, lx1, ly1, lx2, ly2, rx1, ry1); - v += 3; - n += 3; - } else { - ADD_TRI (0, lx1, ly1, rx1, ry1, lx2, ly2); - ADD_TRI (1, lx2, ly2, rx1, ry1, rx2, ry2); - v += 6; - n += 6; - } - - traps++; - } -#undef ADD_TRI -#undef ADD_TRI_V - - D_DEBUG_AT (CairoDFB_Render, "Running TextureTriangles().\n"); - - RUN_CLIPPED (dst, clip_region, NULL, - dst->dfbsurface->TextureTriangles (dst->dfbsurface, - src->dfbsurface, - vertex, NULL, n, - DTTF_LIST)); - - status = CAIRO_STATUS_SUCCESS; - } - - _directfb_finish_composite (dst, pattern, &src->base, &src_attr); - - return status; -} -#endif /* DFB_COMPOSITE_TRAPEZOIDS */ - -static cairo_bool_t -_cairo_directfb_abstract_surface_get_extents (void *abstract_surface, - cairo_rectangle_int_t *rectangle) -{ - cairo_directfb_surface_t *surface = abstract_surface; - - D_DEBUG_AT (CairoDFB_Surface, - "%s( surface=%p, rectangle=%p ).\n", - __FUNCTION__, surface, rectangle); - - if (!surface->local) { - surface->dfbsurface->GetSize (surface->dfbsurface, - &surface->width, &surface->height); - } - - rectangle->x = 0; - rectangle->y = 0; - rectangle->width = surface->width; - rectangle->height = surface->height; - - return TRUE; -} - -#if DFB_SHOW_GLYPHS -static cairo_status_t -_directfb_allocate_font_cache (IDirectFB *dfb, - int width, int height, - cairo_directfb_font_cache_t **out) -{ - cairo_directfb_font_cache_t *cache; - cairo_status_t status; - - cache = calloc (1, sizeof (cairo_directfb_font_cache_t)); - if (cache == NULL) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - cache->dfb = dfb; - status = _directfb_buffer_surface_create (dfb, - _directfb_argb_font ? DSPF_ARGB : DSPF_A8, - width, height, - &cache->dfbsurface); - if (status) { - free (cache); - return status; - } - - cache->width = width; - cache->height = height; - *out = cache; - return CAIRO_STATUS_SUCCESS; -} - -static void -_directfb_destroy_font_cache (cairo_directfb_font_cache_t *cache) -{ - cache->dfbsurface->Release (cache->dfbsurface); - free (cache); -} - -/* XXX hook into rtree font cache from drm */ -static cairo_status_t -_directfb_acquire_font_cache (cairo_directfb_surface_t *surface, - cairo_scaled_font_t *scaled_font, - const cairo_glyph_t *glyphs, - int num_glyphs, - cairo_directfb_font_cache_t **ret_cache, - DFBRectangle *rects, - DFBPoint *points, - int *ret_num) -{ - cairo_status_t status; - cairo_scaled_glyph_t *chars[num_glyphs]; - int num_chars = 0; - cairo_directfb_font_cache_t *cache = NULL; - int n = 0; - int x = 0; - int y = 0; - int w = 8; - int h = 8; - int i; - - D_DEBUG_AT (CairoDFB_Font, "%s( %p [%d] )\n", __FUNCTION__, glyphs, num_glyphs ); - - _cairo_scaled_font_freeze_cache (scaled_font); - - if (scaled_font->surface_private) { - cache = scaled_font->surface_private; - x = cache->x; - y = cache->y; - } - - for (i = 0; i < num_glyphs; i++) { - cairo_scaled_glyph_t *scaled_glyph; - cairo_image_surface_t *img; - - D_DEBUG_AT (CairoDFB_Font, " -> [%2d] = %4lu\n", i, glyphs[i].index ); - - status = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index, - CAIRO_SCALED_GLYPH_INFO_SURFACE, - &scaled_glyph); - if (status) { - _cairo_scaled_font_thaw_cache (scaled_font); - return status; - } - - img = scaled_glyph->surface; - switch (img->format) { - case CAIRO_FORMAT_A1: - case CAIRO_FORMAT_A8: - case CAIRO_FORMAT_ARGB32: - break; - case CAIRO_FORMAT_RGB24: - default: - D_DEBUG_AT (CairoDFB_Font, - " -> Unsupported font format %d!\n", img->format); - _cairo_scaled_font_thaw_cache (scaled_font); - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - points[n].x = _cairo_lround (glyphs[i].x - img->base.device_transform.x0); - points[n].y = _cairo_lround (glyphs[i].y - img->base.device_transform.y0); - - // D_DEBUG_AT (CairoDFB_Font, " (%4d,%4d) [%2d]\n", points[n].x, points[n].y, n ); - - if (points[n].x >= surface->width || - points[n].y >= surface->height || - points[n].x+img->width <= 0 || - points[n].y+img->height <= 0) - { - continue; - } - - if (scaled_glyph->surface_private == NULL) { - DFBRectangle *rect; - - if (x+img->width > 2048) { - x = 0; - y = h; - h = 0; - } - - rects[n].x = x; - rects[n].y = y; - rects[n].w = img->width; - rects[n].h = img->height; - - x += img->width; - h = MAX (h, img->height); - w = MAX (w, x); - - /* Remember glyph location */ - rect = malloc (sizeof (DFBRectangle)); - if (rect == NULL) { - _cairo_scaled_font_thaw_cache (scaled_font); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } - *rect = rects[n]; - - scaled_glyph->surface_private = rect; - chars[num_chars++] = scaled_glyph; - - D_DEBUG_AT (CairoDFB_Font, " -> loading at %4d,%2d <- rect %p, img %p, entry %p\n", - rects[n].x, rects[n].y, rect, scaled_glyph->surface, scaled_glyph); - } else { - rects[n] = *(DFBRectangle *) scaled_glyph->surface_private; - - D_DEBUG_AT (CairoDFB_Font, " -> exists at %4d,%2d\n", rects[n].x, rects[n].y); - } - - n++; - } - - if (n == 0) { - _cairo_scaled_font_thaw_cache (scaled_font); - return CAIRO_INT_STATUS_NOTHING_TO_DO; - } - - h += y; - w = MAX (w, 8); - h = MAX (h, 8); - - /* XXX query maximum surface size */ - if (w > 2048 || h > 2048) { - _cairo_scaled_font_thaw_cache (scaled_font); - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - if (cache) { - if (cache->width < w || cache->height < h) { - cairo_directfb_font_cache_t *new_cache; - - w = MAX (w, cache->width); - h = MAX (h, cache->height); - - D_DEBUG_AT (CairoDFB_Font, " -> Reallocating font cache (%dx%d).\n", w, h); - - status = _directfb_allocate_font_cache (surface->dfb, - w, h, - &new_cache); - if (status) { - _cairo_scaled_font_thaw_cache (scaled_font); - return status; - } - - new_cache->dfbsurface->Blit (new_cache->dfbsurface, - cache->dfbsurface, NULL, 0, 0); - - _directfb_destroy_font_cache (cache); - scaled_font->surface_private = cache = new_cache; - } - } else { - D_DEBUG_AT (CairoDFB_Font, " -> Allocating font cache (%dx%d).\n", w, h); - - status = _directfb_allocate_font_cache (surface->dfb, w, h, &cache); - if (status) { - _cairo_scaled_font_thaw_cache (scaled_font); - return status; - } - - scaled_font->surface_backend = &_cairo_directfb_surface_backend; - scaled_font->surface_private = cache; - } - - if (num_chars) { - unsigned char *data; - int pitch; - - if (cache->dfbsurface->Lock (cache->dfbsurface, - DSLF_WRITE, (void *)&data, &pitch)) - { - _cairo_scaled_font_thaw_cache (scaled_font); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } - - D_DEBUG_AT (CairoDFB_Font, " => %d chars to load, cache %dx%d\n", num_chars, cache->width, cache->height); - - for (i = 0; i < num_chars; i++) { - cairo_image_surface_t *img = chars[i]->surface; - DFBRectangle *rect = chars[i]->surface_private; - unsigned char *dst = data; - unsigned char *src; - int j; - - D_DEBUG_AT (CairoDFB_Font, " -> loading [%2d] <- rect %p, img %p, entry %p\n", i, rect, img, chars[i]); - - src = img->data; - - D_DEBUG_AT (CairoDFB_Font, " from %p\n", src); - - dst += rect->y * pitch + (_directfb_argb_font ? (rect->x<<2) : rect->x); - - D_DEBUG_AT (CairoDFB_Font, " to %4d,%2d (%p)\n", rect->x, rect->y, dst); - - if (img->format == CAIRO_FORMAT_A1) { - for (h = rect->h; h; h--) { - if (_directfb_argb_font) { - for (j = 0; j < rect->w; j++) - ((uint32_t *) dst)[j] = (src[j>>3] & (1 << (j&7))) ? 0xffffffff : 0; - } else { - for (j = 0; j < rect->w; j++) - dst[j] = (src[j>>3] & (1 << (j&7))) ? 0xff : 0; - } - - dst += pitch; - src += img->stride; - } - } else if (img->format == CAIRO_FORMAT_A8) { - for (h = rect->h; h; h--) { - if (_directfb_argb_font) { - for (j = 0; j < rect->w; j++) - ((uint32_t *) dst)[j] = src[j] * 0x01010101; - } else { - direct_memcpy (dst, src, rect->w); - } - - dst += pitch; - src += img->stride; - } - } else { /* ARGB32 */ - for (h = rect->h; h; h--) { - if (_directfb_argb_font) { - direct_memcpy (dst, src, rect->w<<2); - } else { - for (j = 0; j < rect->w; j++) - dst[j] = ((uint32_t *) src)[j] >> 24; - } - - dst += pitch; - src += img->stride; - } - } - } - - cache->dfbsurface->Unlock (cache->dfbsurface); - } - - _cairo_scaled_font_thaw_cache (scaled_font); - - cache->x = x; - cache->y = y; - - D_DEBUG_AT (CairoDFB_Font, " => cache %d,%d, %p [%d]\n", x, y, cache, n); - - *ret_cache = cache; - *ret_num = n; - - return CAIRO_STATUS_SUCCESS; -} - -static void -_cairo_directfb_surface_scaled_font_fini (cairo_scaled_font_t *scaled_font) -{ - cairo_directfb_font_cache_t *cache = scaled_font->surface_private; - - D_DEBUG_AT (CairoDFB_Font, - "%s( scaled_font=%p ).\n", __FUNCTION__, scaled_font); - - if (cache != NULL) { - _directfb_destroy_font_cache (cache); - scaled_font->surface_private = NULL; - } -} - -static void -_cairo_directfb_surface_scaled_glyph_fini (cairo_scaled_glyph_t *scaled_glyph, - cairo_scaled_font_t *scaled_font) -{ - D_DEBUG_AT (CairoDFB_Font, - "%s( scaled_glyph=%p, scaled_font=%p ).\n", - __FUNCTION__, scaled_glyph, scaled_font); - - free (scaled_glyph->surface_private); - scaled_glyph->surface_private = NULL; -} - -static cairo_int_status_t -_cairo_directfb_surface_show_glyphs (void *abstract_dst, - cairo_operator_t op, - const cairo_pattern_t *pattern, - cairo_glyph_t *glyphs, - int num_glyphs, - cairo_scaled_font_t *scaled_font, - const cairo_clip_t *clip, - int *remaining_glyphs) -{ - cairo_directfb_surface_t *dst = abstract_dst; - cairo_directfb_font_cache_t *cache; - cairo_status_t status; - DFBSurfaceBlittingFlags flags; - DFBSurfaceBlendFunction sblend; - DFBSurfaceBlendFunction dblend; - DFBRectangle rects[num_glyphs]; - DFBPoint points[num_glyphs]; - int num; - const cairo_color_t *color; - cairo_region_t *clip_region = NULL; - - D_DEBUG_AT (CairoDFB_Font, - "%s( dst=%p, op=%d, pattern=%p, glyphs=%p, num_glyphs=%d, scaled_font=%p ).\n", - __FUNCTION__, dst, op, pattern, glyphs, num_glyphs, scaled_font); - - if (! dst->supported_destination) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (pattern->type != CAIRO_PATTERN_TYPE_SOLID) - return CAIRO_INT_STATUS_UNSUPPORTED; - - /* Fallback if we need to emulate clip regions */ - if (clip != NULL) { - clip_region = _cairo_clip_get_region (clip); - if (unlikely (clip_region == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } - - /* XXX Unbounded operators are not handled correctly */ - if (! _cairo_operator_bounded_by_mask (op)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (! _directfb_get_operator (op, &sblend, &dblend) || - sblend == DSBF_DESTALPHA || sblend == DSBF_INVDESTALPHA) - { - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - status = _directfb_acquire_font_cache (dst, scaled_font, glyphs, num_glyphs, - &cache, &rects[0], &points[0], &num); - if (status) { - if (status == CAIRO_INT_STATUS_NOTHING_TO_DO) - status = CAIRO_STATUS_SUCCESS; - return status; - } - - color = &((cairo_solid_pattern_t *) pattern)->color; - - flags = DSBLIT_BLEND_ALPHACHANNEL | DSBLIT_COLORIZE; - if (! CAIRO_COLOR_IS_OPAQUE (color)) - flags |= DSBLIT_BLEND_COLORALPHA; - - if (!_directfb_argb_font) { - if (sblend == DSBF_ONE) { - sblend = DSBF_SRCALPHA; - if (dblend == DSBF_ZERO) - dblend = DSBF_INVSRCALPHA; - } - } - - dst->dfbsurface->SetBlittingFlags (dst->dfbsurface, flags); - dst->dfbsurface->SetSrcBlendFunction (dst->dfbsurface, sblend); - dst->dfbsurface->SetDstBlendFunction (dst->dfbsurface, dblend); - if (dst->blit_premultiplied) { - dst->dfbsurface->SetColor (dst->dfbsurface, - color->red_short >> 8, - color->green_short >> 8, - color->blue_short >> 8, - color->alpha_short >> 8); - } else { - dst->dfbsurface->SetColor (dst->dfbsurface, - color->red * 0xff, - color->green * 0xff, - color->blue * 0xff, - color->alpha * 0xff); - } - - D_DEBUG_AT (CairoDFB_Font, "Running BatchBlit().\n"); - - RUN_CLIPPED (dst, clip_region, NULL, - dst->dfbsurface->BatchBlit (dst->dfbsurface, - cache->dfbsurface, rects, points, num)); - - return CAIRO_STATUS_SUCCESS; -} -#endif /* DFB_SHOW_GLYPHS */ - - -static cairo_bool_t -_cairo_directfb_surface_is_similar (void *surface_a, void *surface_b) -{ - cairo_directfb_surface_t *a = (cairo_directfb_surface_t *) surface_a; - cairo_directfb_surface_t *b = (cairo_directfb_surface_t *) surface_b; - - return a->dfb == b->dfb; -} - -static cairo_surface_backend_t -_cairo_directfb_surface_backend = { - CAIRO_SURFACE_TYPE_DIRECTFB, /*type*/ - _cairo_directfb_surface_finish, /*finish*/ - - _cairo_default_context_create, - - _cairo_directfb_surface_create_similar,/*create_similar*/ - NULL, /* create similar image */ - NULL, /* map to image */ - NULL, /* unmap image */ - - _cairo_directfb_surface_acquire_source_image,/*acquire_source_image*/ - _cairo_directfb_surface_release_source_image,/*release_source_image*/ - _cairo_directfb_surface_acquire_dest_image,/*acquire_dest_image*/ - _cairo_directfb_surface_release_dest_image,/*release_dest_image*/ - _cairo_directfb_surface_clone_similar,/*clone_similar*/ -#if DFB_COMPOSITE - _cairo_directfb_surface_composite,/*composite*/ -#else - NULL,/*composite*/ -#endif -#if DFB_RECTANGLES - _cairo_directfb_surface_fill_rectangles,/*fill_rectangles*/ -#else - NULL,/*fill_rectangles*/ -#endif -#if DFB_COMPOSITE_TRAPEZOIDS - _cairo_directfb_surface_composite_trapezoids,/*composite_trapezoids*/ -#else - NULL,/*composite_trapezoids*/ -#endif - NULL, /* create_span_renderer */ - NULL, /* check_span_renderer */ - NULL, /* copy_page */ - NULL, /* show_page */ - _cairo_directfb_abstract_surface_get_extents,/* get_extents */ - NULL, /* old_show_glyphs */ - NULL, /* get_font_options */ - NULL, /* flush */ - NULL, /* mark_dirty_rectangle */ -#if DFB_SHOW_GLYPHS - _cairo_directfb_surface_scaled_font_fini,/* scaled_font_fini */ - _cairo_directfb_surface_scaled_glyph_fini,/* scaled_glyph_fini */ -#else - NULL, - NULL, -#endif - NULL, /* paint */ - NULL, /* mask */ - NULL, /* stroke */ - NULL, /* fill */ -#if DFB_SHOW_GLYPHS - _cairo_directfb_surface_show_glyphs,/* show_glyphs */ -#else - NULL, /* show_glyphs */ -#endif - NULL, /* snapshot */ - _cairo_directfb_surface_is_similar, -}; - - -static void -cairo_directfb_surface_backend_init (IDirectFB *dfb) -{ - static int done = 0; - - if (done) - return; - - if (getenv ("CAIRO_DIRECTFB_NO_ACCEL")) { -#if DFB_RECTANGLES - _cairo_directfb_surface_backend.fill_rectangles = NULL; -#endif -#if DFB_COMPOSITE - _cairo_directfb_surface_backend.composite = NULL; -#endif -#if DFB_COMPOSITE_TRAPEZOIDS - _cairo_directfb_surface_backend.composite_trapezoids = NULL; -#endif -#if DFB_SHOW_GLYPHS - _cairo_directfb_surface_backend.scaled_font_fini = NULL; - _cairo_directfb_surface_backend.scaled_glyph_fini = NULL; - _cairo_directfb_surface_backend.show_glyphs = NULL; -#endif - D_DEBUG_AT (CairoDFB_Surface, "Acceleration disabled.\n"); - } else { - DFBGraphicsDeviceDescription dsc; - - dfb->GetDeviceDescription (dfb, &dsc); - -#if DFB_COMPOSITE - // if (!(dsc.acceleration_mask & DFXL_BLIT)) - // _cairo_directfb_surface_backend.composite = NULL; -#endif - -#if DFB_COMPOSITE_TRAPEZOIDS - // if (!(dsc.acceleration_mask & DFXL_TEXTRIANGLES)) - // _cairo_directfb_surface_backend.composite_trapezoids = NULL; -#endif - } - - if (getenv ("CAIRO_DIRECTFB_ARGB_FONT")) { - _directfb_argb_font = 1; - D_DEBUG_AT (CairoDFB_Surface, "Using ARGB fonts.\n"); - } - - done = 1; -} - -cairo_surface_t * -cairo_directfb_surface_create (IDirectFB *dfb, IDirectFBSurface *dfbsurface) -{ - cairo_directfb_surface_t *surface; - DFBSurfacePixelFormat format; - DFBSurfaceCapabilities caps; - - D_ASSERT (dfb != NULL); - D_ASSERT (dfbsurface != NULL); + _directfb_format_to_content (format)); - cairo_directfb_surface_backend_init (dfb); + surface->image.pixman_format = pixman_format; + surface->image.format = _cairo_format_from_pixman_format (pixman_format); - surface = calloc (1, sizeof (cairo_directfb_surface_t)); - if (surface == NULL) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + surface->image.width = width; + surface->image.height = height; + surface->image.depth = PIXMAN_FORMAT_DEPTH(pixman_format); - dfbsurface->AddRef (dfbsurface); - dfbsurface->GetPixelFormat (dfbsurface, &format); - dfbsurface->GetSize (dfbsurface, &surface->width, &surface->height); surface->dfb = dfb; - surface->dfbsurface = dfbsurface; - surface->pixman_format = _directfb_to_pixman_format (format); - surface->supported_destination = pixman_format_supported_destination (surface->pixman_format); + surface->dfb_surface = dfbsurface; + dfbsurface->AddRef (dfbsurface); dfbsurface->GetCapabilities (dfbsurface, &caps); if (caps & DSCAPS_PREMULTIPLIED) surface->blit_premultiplied = TRUE; - _cairo_surface_init (&surface->base, - &_cairo_directfb_surface_backend, - NULL, /* device */ - _directfb_format_to_content (format)); - - return &surface->base; + return &surface->image.base; } +slim_hidden_def(cairo_directfb_surface_create); diff --git a/src/cairo-egl-context.c b/src/cairo-egl-context.c index ec23852..74565e5 100644 --- a/src/cairo-egl-context.c +++ b/src/cairo-egl-context.c @@ -49,6 +49,10 @@ typedef struct _cairo_egl_context { EGLContext context; EGLSurface dummy_surface; + + EGLDisplay previous_display; + EGLContext previous_context; + EGLSurface previous_surface; } cairo_egl_context_t; typedef struct _cairo_egl_surface { @@ -58,20 +62,44 @@ typedef struct _cairo_egl_surface { } cairo_egl_surface_t; -static void -_egl_acquire (void *abstract_ctx) +static cairo_bool_t +_context_acquisition_changed_egl_state (cairo_egl_context_t *ctx, + EGLSurface current_surface) { - cairo_egl_context_t *ctx = abstract_ctx; - EGLSurface current_surface; + return !(ctx->previous_display == ctx->display && + ctx->previous_surface == current_surface && + ctx->previous_context == ctx->context); +} +static EGLSurface +_egl_get_current_surface (cairo_egl_context_t *ctx) +{ if (ctx->base.current_target == NULL || _cairo_gl_surface_is_texture (ctx->base.current_target)) { - current_surface = ctx->dummy_surface; - } else { - cairo_egl_surface_t *surface = (cairo_egl_surface_t *) ctx->base.current_target; - current_surface = surface->egl ; + return ctx->dummy_surface; } + return ((cairo_egl_surface_t *) ctx->base.current_target)->egl; +} + +static void +_egl_query_current_state (cairo_egl_context_t * ctx) +{ + ctx->previous_display = eglGetCurrentDisplay (); + ctx->previous_surface = eglGetCurrentSurface (EGL_DRAW); + ctx->previous_context = eglGetCurrentContext (); +} + +static void +_egl_acquire (void *abstract_ctx) +{ + cairo_egl_context_t *ctx = abstract_ctx; + EGLSurface current_surface = _egl_get_current_surface (ctx); + + _egl_query_current_state (ctx); + if (!_context_acquisition_changed_egl_state (ctx, current_surface)) + return; + eglMakeCurrent (ctx->display, current_surface, current_surface, ctx->context); } @@ -80,9 +108,12 @@ static void _egl_release (void *abstract_ctx) { cairo_egl_context_t *ctx = abstract_ctx; + if (!ctx->base.thread_aware) + return; + + eglMakeCurrent (ctx->display, EGL_NO_SURFACE, EGL_NO_SURFACE, + EGL_NO_CONTEXT); - eglMakeCurrent (ctx->display, - EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); } static void @@ -110,9 +141,11 @@ _egl_destroy (void *abstract_ctx) { cairo_egl_context_t *ctx = abstract_ctx; - eglMakeCurrent (ctx->display, - EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - eglDestroySurface (ctx->display, ctx->dummy_surface); + eglMakeCurrent (ctx->display, EGL_NO_SURFACE, EGL_NO_SURFACE, + EGL_NO_CONTEXT); + + if (ctx->dummy_surface != EGL_NO_SURFACE) + eglDestroySurface (ctx->display, ctx->dummy_surface); } static cairo_bool_t @@ -199,7 +232,7 @@ cairo_egl_device_create (EGLDisplay dpy, EGLContext egl) return _cairo_gl_context_create_in_error (status); } - eglMakeCurrent (dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + ctx->base.release (ctx); return &ctx->base.base; } @@ -218,6 +251,9 @@ cairo_gl_surface_create_for_egl (cairo_device_t *device, if (device->backend->type != CAIRO_DEVICE_TYPE_GL) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH)); + if (width <= 0 || height <= 0) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); + surface = calloc (1, sizeof (cairo_egl_surface_t)); if (unlikely (surface == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); diff --git a/src/cairo-error-inline.h b/src/cairo-error-inline.h new file mode 100644 index 0000000..9126c5e --- /dev/null +++ b/src/cairo-error-inline.h @@ -0,0 +1,52 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2002 University of Southern California + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Carl D. Worth + */ + +#ifndef _CAIRO_ERROR_INLINE_H_ +#define _CAIRO_ERROR_INLINE_H_ + +#include "cairo-error-private.h" + +CAIRO_BEGIN_DECLS + +static inline cairo_status_t +_cairo_public_status (cairo_int_status_t status) +{ + assert (status <= CAIRO_INT_STATUS_LAST_STATUS); + return (cairo_status_t) status; +} + +#endif /* _CAIRO_ERROR_INLINE_H_ */ diff --git a/src/cairo-error-private.h b/src/cairo-error-private.h index a548a35..ea9c2ea 100644 --- a/src/cairo-error-private.h +++ b/src/cairo-error-private.h @@ -109,13 +109,6 @@ typedef enum _cairo_int_status cairo_int_status_t; #define _cairo_int_status_is_error(status) \ (status != CAIRO_INT_STATUS_SUCCESS && status < CAIRO_INT_STATUS_LAST_STATUS) -static inline cairo_status_t -_cairo_public_status (cairo_int_status_t status) -{ - assert (status <= CAIRO_INT_STATUS_LAST_STATUS); - return (cairo_status_t) status; -} - cairo_private cairo_status_t _cairo_error (cairo_status_t status); diff --git a/src/cairo-fallback-compositor.c b/src/cairo-fallback-compositor.c index 105859d..efc8a79 100644 --- a/src/cairo-fallback-compositor.c +++ b/src/cairo-fallback-compositor.c @@ -53,10 +53,11 @@ _cairo_fallback_compositor_paint (const cairo_compositor_t *_compositor, cairo_surface_t *image; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); status = _cairo_surface_offset_paint (image, - -extents->unbounded.x, - -extents->unbounded.y, + extents->unbounded.x, + extents->unbounded.y, extents->op, &extents->source_pattern.base, extents->clip); @@ -72,6 +73,7 @@ _cairo_fallback_compositor_mask (const cairo_compositor_t *_compositor, cairo_surface_t *image; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); status = _cairo_surface_offset_mask (image, extents->unbounded.x, @@ -98,6 +100,7 @@ _cairo_fallback_compositor_stroke (const cairo_compositor_t *_compositor, cairo_surface_t *image; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); status = _cairo_surface_offset_stroke (image, extents->unbounded.x, @@ -125,6 +128,7 @@ _cairo_fallback_compositor_fill (const cairo_compositor_t *_compositor, cairo_surface_t *image; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); status = _cairo_surface_offset_fill (image, extents->unbounded.x, @@ -150,6 +154,7 @@ _cairo_fallback_compositor_glyphs (const cairo_compositor_t *_compositor, cairo_surface_t *image; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); image = cairo_surface_map_to_image (extents->surface, &extents->unbounded); status = _cairo_surface_offset_glyphs (image, extents->unbounded.x, diff --git a/src/cairo-fixed-private.h b/src/cairo-fixed-private.h index 9a16a03..b6cc6be 100644 --- a/src/cairo-fixed-private.h +++ b/src/cairo-fixed-private.h @@ -52,6 +52,8 @@ #define CAIRO_FIXED_ONE_DOUBLE ((double)(1 << CAIRO_FIXED_FRAC_BITS)) #define CAIRO_FIXED_EPSILON ((cairo_fixed_t)(1)) +#define CAIRO_FIXED_ERROR_DOUBLE (1. / (2 * CAIRO_FIXED_ONE_DOUBLE)) + #define CAIRO_FIXED_FRAC_MASK ((cairo_fixed_t)(((cairo_fixed_unsigned_t)(-1)) >> (CAIRO_FIXED_BITS - CAIRO_FIXED_FRAC_BITS))) #define CAIRO_FIXED_WHOLE_MASK (~CAIRO_FIXED_FRAC_MASK) diff --git a/src/cairo-font-face.c b/src/cairo-font-face.c index e379b25..b93bd8c 100644 --- a/src/cairo-font-face.c +++ b/src/cairo-font-face.c @@ -56,7 +56,7 @@ * or implicitly using the toy text API by way of * cairo_select_font_face(). The resulting face can be accessed using * cairo_get_font_face(). - */ + **/ /* #cairo_font_face_t */ @@ -108,6 +108,8 @@ _cairo_font_face_init (cairo_font_face_t *font_face, * cairo_font_face_get_reference_count(). * * Return value: the referenced #cairo_font_face_t. + * + * Since: 1.0 **/ cairo_font_face_t * cairo_font_face_reference (cairo_font_face_t *font_face) @@ -133,6 +135,8 @@ slim_hidden_def (cairo_font_face_reference); * Decreases the reference count on @font_face by one. If the result * is zero, then @font_face and all associated resources are freed. * See cairo_font_face_reference(). + * + * Since: 1.0 **/ void cairo_font_face_destroy (cairo_font_face_t *font_face) @@ -212,6 +216,8 @@ cairo_font_face_get_reference_count (cairo_font_face_t *font_face) * * Return value: %CAIRO_STATUS_SUCCESS or another error such as * %CAIRO_STATUS_NO_MEMORY. + * + * Since: 1.0 **/ cairo_status_t cairo_font_face_status (cairo_font_face_t *font_face) @@ -230,6 +236,8 @@ cairo_font_face_status (cairo_font_face_t *font_face) * function returns %NULL. * * Return value: the user data previously attached or %NULL. + * + * Since: 1.0 **/ void * cairo_font_face_get_user_data (cairo_font_face_t *font_face, @@ -255,6 +263,8 @@ slim_hidden_def (cairo_font_face_get_user_data); * * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY if a * slot could not be allocated for the user data. + * + * Since: 1.0 **/ cairo_status_t cairo_font_face_set_user_data (cairo_font_face_t *font_face, diff --git a/src/cairo-font-options.c b/src/cairo-font-options.c index 521d371..ad28745 100644 --- a/src/cairo-font-options.c +++ b/src/cairo-font-options.c @@ -47,7 +47,7 @@ * time the font options implied by a surface are just right and do not * need any changes, but for pixel-based targets tweaking font options * may result in superior output on a particular display. - */ + **/ static const cairo_font_options_t _cairo_font_options_nil = { CAIRO_ANTIALIAS_DEFAULT, @@ -98,6 +98,8 @@ _cairo_font_options_init_copy (cairo_font_options_t *options, * valid pointer; if memory cannot be allocated, then a special * error object is returned where all operations on the object do nothing. * You can check for this with cairo_font_options_status(). + * + * Since: 1.0 **/ cairo_font_options_t * cairo_font_options_create (void) @@ -127,6 +129,8 @@ cairo_font_options_create (void) * valid pointer; if memory cannot be allocated, then a special * error object is returned where all operations on the object do nothing. * You can check for this with cairo_font_options_status(). + * + * Since: 1.0 **/ cairo_font_options_t * cairo_font_options_copy (const cairo_font_options_t *original) @@ -153,6 +157,8 @@ cairo_font_options_copy (const cairo_font_options_t *original) * * Destroys a #cairo_font_options_t object created with * cairo_font_options_create() or cairo_font_options_copy(). + * + * Since: 1.0 **/ void cairo_font_options_destroy (cairo_font_options_t *options) @@ -171,6 +177,8 @@ cairo_font_options_destroy (cairo_font_options_t *options) * font options object * * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY + * + * Since: 1.0 **/ cairo_status_t cairo_font_options_status (cairo_font_options_t *options) @@ -193,6 +201,8 @@ slim_hidden_def (cairo_font_options_status); * existing values. This operation can be thought of as somewhat * similar to compositing @other onto @options with the operation * of %CAIRO_OPERATOR_OVER. + * + * Since: 1.0 **/ void cairo_font_options_merge (cairo_font_options_t *options, @@ -229,6 +239,8 @@ slim_hidden_def (cairo_font_options_merge); * Return value: %TRUE if all fields of the two font options objects match. * Note that this function will return %FALSE if either object is in * error. + * + * Since: 1.0 **/ cairo_bool_t cairo_font_options_equal (const cairo_font_options_t *options, @@ -262,6 +274,8 @@ slim_hidden_def (cairo_font_options_equal); * Return value: the hash value for the font options object. * The return value can be cast to a 32-bit type if a * 32-bit hash value is needed. + * + * Since: 1.0 **/ unsigned long cairo_font_options_hash (const cairo_font_options_t *options) @@ -284,6 +298,8 @@ slim_hidden_def (cairo_font_options_hash); * * Sets the antialiasing mode for the font options object. This * specifies the type of antialiasing to do when rendering text. + * + * Since: 1.0 **/ void cairo_font_options_set_antialias (cairo_font_options_t *options, @@ -303,6 +319,8 @@ slim_hidden_def (cairo_font_options_set_antialias); * Gets the antialiasing mode for the font options object. * * Return value: the antialiasing mode + * + * Since: 1.0 **/ cairo_antialias_t cairo_font_options_get_antialias (const cairo_font_options_t *options) @@ -323,6 +341,8 @@ cairo_font_options_get_antialias (const cairo_font_options_t *options) * the display device when rendering with an antialiasing mode of * %CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for * #cairo_subpixel_order_t for full details. + * + * Since: 1.0 **/ void cairo_font_options_set_subpixel_order (cairo_font_options_t *options, @@ -343,6 +363,8 @@ slim_hidden_def (cairo_font_options_set_subpixel_order); * See the documentation for #cairo_subpixel_order_t for full details. * * Return value: the subpixel order for the font options object + * + * Since: 1.0 **/ cairo_subpixel_order_t cairo_font_options_get_subpixel_order (const cairo_font_options_t *options) @@ -362,8 +384,6 @@ cairo_font_options_get_subpixel_order (const cairo_font_options_t *options) * specifies how pixels are filtered when rendered with an antialiasing * mode of %CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for * #cairo_lcd_filter_t for full details. - * - * Since: 1.8 **/ void _cairo_font_options_set_lcd_filter (cairo_font_options_t *options, @@ -383,8 +403,6 @@ _cairo_font_options_set_lcd_filter (cairo_font_options_t *options, * See the documentation for #cairo_lcd_filter_t for full details. * * Return value: the LCD filter for the font options object - * - * Since: 1.8 **/ cairo_lcd_filter_t _cairo_font_options_get_lcd_filter (const cairo_font_options_t *options) @@ -402,8 +420,6 @@ _cairo_font_options_get_lcd_filter (const cairo_font_options_t *options) * * Sets the rounding options for the font options object. If rounding is set, a * glyph's position will be rounded to integer values. - * - * Since: 1.12 **/ void _cairo_font_options_set_round_glyph_positions (cairo_font_options_t *options, @@ -422,8 +438,6 @@ _cairo_font_options_set_round_glyph_positions (cairo_font_options_t *options, * Gets the glyph position rounding option for the font options object. * * Return value: The round glyph posistions flag for the font options object. - * - * Since: 1.12 **/ cairo_round_glyph_positions_t _cairo_font_options_get_round_glyph_positions (const cairo_font_options_t *options) @@ -443,6 +457,8 @@ _cairo_font_options_get_round_glyph_positions (const cairo_font_options_t *optio * This controls whether to fit font outlines to the pixel grid, * and if so, whether to optimize for fidelity or contrast. * See the documentation for #cairo_hint_style_t for full details. + * + * Since: 1.0 **/ void cairo_font_options_set_hint_style (cairo_font_options_t *options, @@ -463,6 +479,8 @@ slim_hidden_def (cairo_font_options_set_hint_style); * See the documentation for #cairo_hint_style_t for full details. * * Return value: the hint style for the font options object + * + * Since: 1.0 **/ cairo_hint_style_t cairo_font_options_get_hint_style (const cairo_font_options_t *options) @@ -482,6 +500,8 @@ cairo_font_options_get_hint_style (const cairo_font_options_t *options) * controls whether metrics are quantized to integer values in * device units. * See the documentation for #cairo_hint_metrics_t for full details. + * + * Since: 1.0 **/ void cairo_font_options_set_hint_metrics (cairo_font_options_t *options, @@ -502,6 +522,8 @@ slim_hidden_def (cairo_font_options_set_hint_metrics); * See the documentation for #cairo_hint_metrics_t for full details. * * Return value: the metrics hinting mode for the font options object + * + * Since: 1.0 **/ cairo_hint_metrics_t cairo_font_options_get_hint_metrics (const cairo_font_options_t *options) diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index 2edcd0d..fba8025 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -101,14 +101,16 @@ * * The FreeType font backend is primarily used to render text on GNU/Linux * systems, but can be used on other platforms too. - */ + **/ /** * CAIRO_HAS_FT_FONT: * * Defined if the FreeType font backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.0 + **/ /** * CAIRO_HAS_FC_FONT: @@ -116,7 +118,9 @@ * Defined if the Fontconfig-specific functions of the FreeType font backend * are available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.10 + **/ /* * The simple 2x2 matrix is converted into separate scale and shape @@ -169,20 +173,10 @@ _cairo_ft_unscaled_font_keys_equal (const void *key_a, static void _cairo_ft_unscaled_font_fini (cairo_ft_unscaled_font_t *unscaled); -#ifdef TIZEN_ENABLE_SET_EXTRA_FLAGS -/* This enum is moved to cairo-ft.h for support to set extra_flags from application */ -#if 0 -typedef enum _cairo_ft_extra_flags { - CAIRO_FT_OPTIONS_HINT_METRICS = (1 << 0), - CAIRO_FT_OPTIONS_EMBOLDEN = (1 << 1) -} cairo_ft_extra_flags_t; -#endif -#endif - typedef struct _cairo_ft_options { - cairo_font_options_t base; - int load_flags; /* flags for FT_Load_Glyph */ - cairo_ft_extra_flags_t extra_flags; /* other flags that affect results */ + cairo_font_options_t base; + unsigned int load_flags; /* flags for FT_Load_Glyph */ + unsigned int synth_flags; } cairo_ft_options_t; struct _cairo_ft_font_face { @@ -1349,25 +1343,26 @@ _render_glyph_outline (FT_Face face, switch (render_mode) { case FT_RENDER_MODE_LCD: - if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_BGR) { + if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_BGR) rgba = FC_RGBA_BGR; - } else { + else rgba = FC_RGBA_RGB; - } + break; + case FT_RENDER_MODE_LCD_V: - if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_VBGR) { + if (font_options->subpixel_order == CAIRO_SUBPIXEL_ORDER_VBGR) rgba = FC_RGBA_VBGR; - } else { + else rgba = FC_RGBA_VRGB; - } break; + case FT_RENDER_MODE_MONO: case FT_RENDER_MODE_LIGHT: case FT_RENDER_MODE_NORMAL: case FT_RENDER_MODE_MAX: default: break; - } + } #if HAVE_FT_LIBRARY_SETLCDFILTER FT_Library_SetLcdFilter (library, lcd_filter); @@ -1480,7 +1475,7 @@ _transform_glyph_bitmap (cairo_matrix_t * shape, * the "shape" portion of the font transform */ original_to_transformed = *shape; - + cairo_surface_get_device_offset (&(*surface)->base, &origin_x, &origin_y); orig_width = (*surface)->width; orig_height = (*surface)->height; @@ -1600,7 +1595,7 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) _cairo_font_options_init_default (&ft_options.base); ft_options.load_flags = FT_LOAD_DEFAULT; - ft_options.extra_flags = 0; + ft_options.synth_flags = 0; #ifndef FC_EMBEDDED_BITMAP #define FC_EMBEDDED_BITMAP "embeddedbitmap" @@ -1615,7 +1610,7 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) if (FcPatternGetBool (pattern, FC_ANTIALIAS, 0, &antialias) != FcResultMatch) antialias = FcTrue; - + if (antialias) { cairo_subpixel_order_t subpixel_order; int lcd_filter; @@ -1736,7 +1731,7 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) embolden = FcFalse; if (embolden) - ft_options.extra_flags |= CAIRO_FT_OPTIONS_EMBOLDEN; + ft_options.synth_flags |= CAIRO_FT_SYNTHESIZE_BOLD; *ret = ft_options; } @@ -1816,9 +1811,7 @@ _cairo_ft_options_merge (cairo_ft_options_t *options, } options->load_flags = load_flags | load_target; - options->extra_flags = other->extra_flags; - if (options->base.hint_metrics != CAIRO_HINT_METRICS_OFF) - options->extra_flags |= CAIRO_FT_OPTIONS_HINT_METRICS; + options->synth_flags = other->synth_flags; } static cairo_status_t @@ -2173,14 +2166,19 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, glyph = face->glyph; -#if HAVE_FT_GLYPHSLOT_EMBOLDEN /* - * embolden glyphs if requested + * synthesize glyphs if requested */ - if (scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN) +#if HAVE_FT_GLYPHSLOT_EMBOLDEN + if (scaled_font->ft_options.synth_flags & CAIRO_FT_SYNTHESIZE_BOLD) FT_GlyphSlot_Embolden (glyph); #endif +#if HAVE_FT_GLYPHSLOT_OBLIQUE + if (scaled_font->ft_options.synth_flags & CAIRO_FT_SYNTHESIZE_OBLIQUE) + FT_GlyphSlot_Oblique (glyph); +#endif + if (vertical_layout) _cairo_ft_scaled_glyph_vertical_layout_bearing_fix (scaled_font, glyph); @@ -2325,12 +2323,13 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, goto FAIL; } #if HAVE_FT_GLYPHSLOT_EMBOLDEN - /* - * embolden glyphs if requested - */ - if (scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN) + if (scaled_font->ft_options.synth_flags & CAIRO_FT_SYNTHESIZE_BOLD) FT_GlyphSlot_Embolden (glyph); #endif +#if HAVE_FT_GLYPHSLOT_OBLIQUE + if (scaled_font->ft_options.synth_flags & CAIRO_FT_SYNTHESIZE_OBLIQUE) + FT_GlyphSlot_Oblique (glyph); +#endif if (vertical_layout) _cairo_ft_scaled_glyph_vertical_layout_bearing_fix (scaled_font, glyph); @@ -2450,11 +2449,7 @@ static cairo_bool_t _cairo_ft_is_synthetic (void *abstract_font) { cairo_ft_scaled_font_t *scaled_font = abstract_font; - - if (scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN) - return TRUE; - else - return FALSE; + return scaled_font->ft_options.synth_flags != 0; } static cairo_int_status_t @@ -2848,7 +2843,7 @@ _cairo_ft_font_face_create (cairo_ft_unscaled_font_t *unscaled, prev_font_face = &font_face->next, font_face = font_face->next) { if (font_face->ft_options.load_flags == ft_options->load_flags && - font_face->ft_options.extra_flags == ft_options->extra_flags && + font_face->ft_options.synth_flags == ft_options->synth_flags && cairo_font_options_equal (&font_face->ft_options.base, &ft_options->base)) { if (font_face->base.status) { @@ -3038,6 +3033,8 @@ _cairo_ft_font_options_substitute (const cairo_font_options_t *options, * so you should call this function after calling FcConfigSubstitute() (the * user's settings should override options based on the surface type), but * before calling FcDefaultSubstitute(). + * + * Since: 1.0 **/ void cairo_ft_font_options_substitute (const cairo_font_options_t *options, @@ -3167,11 +3164,13 @@ FREE_PATTERN: * If the FC_FT_FACE element of @pattern is set, the user is responsible * for making sure that the referenced FT_Face remains valid for the life * time of the returned #cairo_font_face_t. See - * cairo_ft_font_face_create_for_ft_face() for an exmaple of how to couple + * cairo_ft_font_face_create_for_ft_face() for an example of how to couple * the life time of the FT_Face to that of the cairo font-face. * * Return value: a newly created #cairo_font_face_t. Free with * cairo_font_face_destroy() when you are done using it. + * + * Since: 1.0 **/ cairo_font_face_t * cairo_ft_font_face_create_for_pattern (FcPattern *pattern) @@ -3243,6 +3242,8 @@ cairo_ft_font_face_create_for_pattern (FcPattern *pattern) * * Return value: a newly created #cairo_font_face_t. Free with * cairo_font_face_destroy() when you are done using it. + * + * Since: 1.0 **/ cairo_font_face_t * cairo_ft_font_face_create_for_ft_face (FT_Face face, @@ -3258,7 +3259,7 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, return (cairo_font_face_t *)&_cairo_font_face_nil; ft_options.load_flags = load_flags; - ft_options.extra_flags = 0; + ft_options.synth_flags = 0; _cairo_font_options_init_default (&ft_options.base); font_face = _cairo_ft_font_face_create (unscaled, &ft_options); @@ -3268,6 +3269,74 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, } /** + * cairo_ft_font_face_set_synthesize: + * @font_face: The #cairo_ft_font_face_t object to modify + * @synth_flags: the set of synthesis options to enable + * + * FreeType provides the ability to synthesize different glyphs from a base + * font, which is useful if you lack those glyphs from a true bold or oblique + * font. See also #cairo_ft_synthesize_t. + * + * Since: 1.12 + **/ +void +cairo_ft_font_face_set_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags) +{ + cairo_ft_font_face_t *ft; + + if (font_face->backend->type != CAIRO_FONT_TYPE_FT) + return; + + ft = (cairo_ft_font_face_t *) font_face; + ft->ft_options.synth_flags |= synth_flags; +} + +/** + * cairo_ft_font_face_unset_synthesize: + * @font_face: The #cairo_ft_font_face_t object to modify + * @synth_flags: the set of synthesis options to disable + * + * See cairo_ft_font_face_set_synthesize(). + * + * Since: 1.12 + **/ +void +cairo_ft_font_face_unset_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags) +{ + cairo_ft_font_face_t *ft; + + if (font_face->backend->type != CAIRO_FONT_TYPE_FT) + return; + + ft = (cairo_ft_font_face_t *) font_face; + ft->ft_options.synth_flags &= ~synth_flags; +} + +/** + * cairo_ft_font_face_get_synthesize: + * @font_face: The #cairo_ft_font_face_t object to query + * + * See #cairo_ft_synthesize_t. + * + * Returns: the current set of synthesis options. + * + * Since: 1.12 + **/ +unsigned int +cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face) +{ + cairo_ft_font_face_t *ft; + + if (font_face->backend->type != CAIRO_FONT_TYPE_FT) + return 0; + + ft = (cairo_ft_font_face_t *) font_face; + return ft->ft_options.synth_flags; +} + +/** * cairo_ft_scaled_font_lock_face: * @scaled_font: A #cairo_scaled_font_t from the FreeType font backend. Such an * object can be created by calling cairo_scaled_font_create() on a @@ -3296,6 +3365,8 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, * Return value: The #FT_Face object for @font, scaled appropriately, * or %NULL if @scaled_font is in an error state (see * cairo_scaled_font_status()) or there is insufficient memory. + * + * Since: 1.0 **/ FT_Face cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *abstract_font) @@ -3345,6 +3416,8 @@ cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *abstract_font) * cairo_ft_font_face_create_for_ft_face()). * * Releases a face obtained with cairo_ft_scaled_font_lock_face(). + * + * Since: 1.0 **/ void cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *abstract_font) @@ -3399,19 +3472,3 @@ _cairo_ft_font_reset_static_data (void) { _cairo_ft_unscaled_font_map_destroy (); } - -#ifdef TIZEN_ENABLE_SET_EXTRA_FLAGS -/* Set extra_flags to cairo_ft_font_face_t's ft_options from application */ -void -cairo_ft_font_option_set_extra_flags (cairo_font_face_t * font_face, - cairo_ft_extra_flags_t extra_flags) -{ - cairo_ft_font_face_t *ft_font_face =(cairo_ft_font_face_t *) font_face; - - if (extra_flags & CAIRO_FT_OPTIONS_HINT_METRICS) - ft_font_face->ft_options.extra_flags |= CAIRO_FT_OPTIONS_HINT_METRICS; - if (extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN) - ft_font_face->ft_options.extra_flags |= CAIRO_FT_OPTIONS_EMBOLDEN; -} -#endif - diff --git a/src/cairo-ft.h b/src/cairo-ft.h index a0f09e5..29c43c9 100644 --- a/src/cairo-ft.h +++ b/src/cairo-ft.h @@ -56,6 +56,42 @@ cairo_public cairo_font_face_t * cairo_ft_font_face_create_for_ft_face (FT_Face face, int load_flags); +/** + * cairo_ft_synthesize_t: + * @CAIRO_FT_SYNTHESIZE_BOLD: Embolden the glyphs (redraw with a pixel offset) + * @CAIRO_FT_SYNTHESIZE_OBLIQUE: Slant the glyph outline by 12 degrees to the + * right. + * + * A set of synthesis options to control how FreeType renders the glyphs + * for a particular font face. + * + * Individual synthesis features of a #cairo_ft_font_face_t can be set + * using cairo_ft_font_face_set_synthesize(), or disabled using + * cairo_ft_font_face_unset_synthesize(). The currently enabled set of + * synthesis options can be queried with cairo_ft_font_face_get_synthesize(). + * + * Note: that when synthesizing glyphs, the font metrics returned will only + * be estimates. + * + * Since: 1.12 + **/ +typedef enum { + CAIRO_FT_SYNTHESIZE_BOLD = 1 << 0, + CAIRO_FT_SYNTHESIZE_OBLIQUE = 1 << 1 +} cairo_ft_synthesize_t; + +cairo_public void +cairo_ft_font_face_set_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); + +cairo_public void +cairo_ft_font_face_unset_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); + +cairo_public unsigned int +cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face); + + cairo_public FT_Face cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font); @@ -73,23 +109,6 @@ cairo_ft_font_options_substitute (const cairo_font_options_t *options, #endif -#ifndef TIZEN_ENABLE_SET_EXTRA_FLAGS -/* For support to set extra_flags from application */ -#define TIZEN_ENABLE_SET_EXTRA_FLAGS -#endif - -#ifdef TIZEN_ENABLE_SET_EXTRA_FLAGS -/* This enum is moved from cairo-ft-font.c to cairo-ft.h for support to set extra_flags from application */ -typedef enum _cairo_ft_extra_flags { - CAIRO_FT_OPTIONS_HINT_METRICS = (1 << 0), - CAIRO_FT_OPTIONS_EMBOLDEN = (1 << 1) -} cairo_ft_extra_flags_t; - -/* Set extra_flags to cairo_ft_font_face_t's ft_options from application */ -cairo_public void cairo_ft_font_option_set_extra_flags (cairo_font_face_t * font_face, - cairo_ft_extra_flags_t extra_flags); -#endif - CAIRO_END_DECLS #else /* CAIRO_HAS_FT_FONT */ diff --git a/src/cairo-gl-composite.c b/src/cairo-gl-composite.c index 5bce04d..bc3f99d 100644 --- a/src/cairo-gl-composite.c +++ b/src/cairo-gl-composite.c @@ -4,6 +4,7 @@ * Copyright © 2009 Chris Wilson * Copyright © 2005,2010 Red Hat, Inc * Copyright © 2011 Linaro Limited + * Copyright © 2011 Samsung Electronics * * This library is free software; you can redistribute it and/or * modify it either under the terms of the GNU Lesser General Public @@ -38,6 +39,8 @@ * Chris Wilson * Eric Anholt * Alexandros Frantzis + * Henry Song + * Martin Robinson */ #include "cairoint.h" @@ -48,20 +51,18 @@ #include "cairo-clip-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-traps-private.h" cairo_int_status_t _cairo_gl_composite_set_source (cairo_gl_composite_t *setup, const cairo_pattern_t *pattern, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height) + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents, + cairo_bool_t use_color_attribute) { _cairo_gl_operand_destroy (&setup->src); - return _cairo_gl_operand_init (&setup->src, pattern, - setup->dst, - src_x, src_y, - dst_x, dst_y, - width, height); + return _cairo_gl_operand_init (&setup->src, pattern, setup->dst, + sample, extents, use_color_attribute); } void @@ -83,19 +84,28 @@ _cairo_gl_composite_set_solid_source (cairo_gl_composite_t *setup, cairo_int_status_t _cairo_gl_composite_set_mask (cairo_gl_composite_t *setup, const cairo_pattern_t *pattern, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height) + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents) { + cairo_int_status_t status; + _cairo_gl_operand_destroy (&setup->mask); if (pattern == NULL) return CAIRO_STATUS_SUCCESS; - return _cairo_gl_operand_init (&setup->mask, pattern, - setup->dst, - src_x, src_y, - dst_x, dst_y, - width, height); + /* XXX: shoot me - we need to set component_alpha to be true + if op is CAIRO_OPERATOR_CLEAR AND pattern is a surface_pattern + */ + status = _cairo_gl_operand_init (&setup->mask, pattern, setup->dst, + sample, extents, FALSE); + if (unlikely (status)) + return status; + + if (setup->op == CAIRO_OPERATOR_CLEAR && + ! _cairo_pattern_is_opaque (pattern, sample)) + setup->mask.texture.attributes.has_component_alpha = TRUE; + + return status; } void @@ -120,6 +130,13 @@ _cairo_gl_composite_set_clip_region (cairo_gl_composite_t *setup, setup->clip_region = clip_region; } +void +_cairo_gl_composite_set_clip (cairo_gl_composite_t *setup, + cairo_clip_t *clip) +{ + setup->clip = clip; +} + static void _cairo_gl_composite_bind_to_shader (cairo_gl_context_t *ctx, cairo_gl_composite_t *setup) @@ -156,34 +173,42 @@ _cairo_gl_texture_set_filter (cairo_gl_context_t *ctx, static void _cairo_gl_texture_set_extend (cairo_gl_context_t *ctx, GLuint target, - cairo_extend_t extend) + cairo_extend_t extend, + cairo_bool_t use_atlas) { + GLint wrap_mode; assert (! _cairo_gl_device_requires_power_of_two_textures (&ctx->base) || (extend != CAIRO_EXTEND_REPEAT && extend != CAIRO_EXTEND_REFLECT)); switch (extend) { case CAIRO_EXTEND_NONE: - if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) { - glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - } - else { - glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); - glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); - } + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) + wrap_mode = GL_CLAMP_TO_EDGE; + else + wrap_mode = GL_CLAMP_TO_BORDER; break; case CAIRO_EXTEND_PAD: - glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + wrap_mode = GL_CLAMP_TO_EDGE; break; case CAIRO_EXTEND_REPEAT: - glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_REPEAT); + if (ctx->has_npot_repeat) + wrap_mode = GL_REPEAT; + else + wrap_mode = GL_CLAMP_TO_EDGE; break; case CAIRO_EXTEND_REFLECT: - glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_MIRRORED_REPEAT); - glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_MIRRORED_REPEAT); + if (ctx->has_npot_repeat) + wrap_mode = GL_MIRRORED_REPEAT; + else + wrap_mode = GL_CLAMP_TO_EDGE; break; + default: + wrap_mode = 0; + } + + if (likely (wrap_mode)) { + glTexParameteri (target, GL_TEXTURE_WRAP_S, wrap_mode); + glTexParameteri (target, GL_TEXTURE_WRAP_T, wrap_mode); } } @@ -197,15 +222,18 @@ _cairo_gl_context_setup_operand (cairo_gl_context_t *ctx, { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; cairo_bool_t needs_setup; + cairo_bool_t needs_flush = TRUE; + void *attrib_location = (void *) ((uintptr_t) vertex_offset); /* XXX: we need to do setup when switching from shaders * to no shaders (or back) */ needs_setup = ctx->vertex_size != vertex_size; needs_setup |= _cairo_gl_operand_needs_setup (&ctx->operands[tex_unit], operand, - vertex_offset); + vertex_offset, + &needs_flush); - if (needs_setup) { + if (needs_setup && needs_flush) { _cairo_gl_composite_flush (ctx); _cairo_gl_context_destroy_operand (ctx, tex_unit); } @@ -216,6 +244,9 @@ _cairo_gl_context_setup_operand (cairo_gl_context_t *ctx, if (! needs_setup) return; + if (! ctx->has_map_buffer) + attrib_location = (void *) (ctx->vb_mem + vertex_offset); + switch (operand->type) { default: case CAIRO_GL_OPERAND_COUNT: @@ -224,19 +255,39 @@ _cairo_gl_context_setup_operand (cairo_gl_context_t *ctx, break; /* fall through */ case CAIRO_GL_OPERAND_CONSTANT: + if (operand->use_color_attribute) { + dispatch->VertexAttribPointer (CAIRO_GL_COLOR_ATTRIB_INDEX, 4, + GL_FLOAT, GL_FALSE, vertex_size, + attrib_location); + dispatch->EnableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); + } break; case CAIRO_GL_OPERAND_TEXTURE: glActiveTexture (GL_TEXTURE0 + tex_unit); glBindTexture (ctx->tex_target, operand->texture.tex); _cairo_gl_texture_set_extend (ctx, ctx->tex_target, - operand->texture.attributes.extend); + operand->texture.attributes.extend, + operand->texture.use_atlas); _cairo_gl_texture_set_filter (ctx, ctx->tex_target, operand->texture.attributes.filter); dispatch->VertexAttribPointer (CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + tex_unit, 2, GL_FLOAT, GL_FALSE, vertex_size, - (void *) (uintptr_t) vertex_offset); + attrib_location); dispatch->EnableVertexAttribArray (CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + tex_unit); + + if (operand->texture.use_atlas) { + dispatch->VertexAttribPointer (CAIRO_GL_START_COORD0_ATTRIB_INDEX + tex_unit, + 2, GL_FLOAT, GL_FALSE, + vertex_size, + (char *)attrib_location + 2 * sizeof (float)); + dispatch->EnableVertexAttribArray (CAIRO_GL_START_COORD0_ATTRIB_INDEX + tex_unit); + dispatch->VertexAttribPointer (CAIRO_GL_STOP_COORD0_ATTRIB_INDEX + tex_unit, + 2, GL_FLOAT, GL_FALSE, + vertex_size, + (char *)attrib_location + 4 * sizeof (float)); + dispatch->EnableVertexAttribArray (CAIRO_GL_STOP_COORD0_ATTRIB_INDEX + tex_unit); + } break; case CAIRO_GL_OPERAND_LINEAR_GRADIENT: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: @@ -244,12 +295,13 @@ _cairo_gl_context_setup_operand (cairo_gl_context_t *ctx, case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: glActiveTexture (GL_TEXTURE0 + tex_unit); glBindTexture (ctx->tex_target, operand->gradient.gradient->tex); - _cairo_gl_texture_set_extend (ctx, ctx->tex_target, operand->gradient.extend); + _cairo_gl_texture_set_extend (ctx, ctx->tex_target, + operand->gradient.extend, FALSE); _cairo_gl_texture_set_filter (ctx, ctx->tex_target, CAIRO_FILTER_BILINEAR); dispatch->VertexAttribPointer (CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + tex_unit, 2, GL_FLOAT, GL_FALSE, vertex_size, - (void *) (uintptr_t) vertex_offset); + attrib_location); dispatch->EnableVertexAttribArray (CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + tex_unit); break; } @@ -261,11 +313,16 @@ _cairo_gl_context_setup_spans (cairo_gl_context_t *ctx, unsigned int vertex_offset) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + void *attrib_location = (void *) ((uintptr_t) vertex_offset); + + if (! ctx->has_map_buffer) + attrib_location = (void *) (ctx->vb_mem + vertex_offset); - dispatch->VertexAttribPointer (CAIRO_GL_COLOR_ATTRIB_INDEX, 4, + dispatch->VertexAttribPointer (CAIRO_GL_COVERAGE_ATTRIB_INDEX, 4, GL_UNSIGNED_BYTE, GL_TRUE, vertex_size, - (void *) (uintptr_t) vertex_offset); - dispatch->EnableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); + attrib_location); + dispatch->EnableVertexAttribArray (CAIRO_GL_COVERAGE_ATTRIB_INDEX); + ctx->spans = TRUE; } void @@ -273,7 +330,9 @@ _cairo_gl_context_destroy_operand (cairo_gl_context_t *ctx, cairo_gl_tex_t tex_unit) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - assert (_cairo_gl_context_is_flushed (ctx)); + + if (!_cairo_gl_context_is_flushed (ctx)) + _cairo_gl_composite_flush (ctx); switch (ctx->operands[tex_unit].type) { default: @@ -283,9 +342,15 @@ _cairo_gl_context_destroy_operand (cairo_gl_context_t *ctx, break; /* fall through */ case CAIRO_GL_OPERAND_CONSTANT: + if (ctx->operands[tex_unit].use_color_attribute) + ctx->dispatch.DisableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); break; case CAIRO_GL_OPERAND_TEXTURE: dispatch->DisableVertexAttribArray (CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + tex_unit); + if (ctx->operands[tex_unit].texture.use_atlas) { + dispatch->DisableVertexAttribArray (CAIRO_GL_START_COORD0_ATTRIB_INDEX + tex_unit); + dispatch->DisableVertexAttribArray (CAIRO_GL_STOP_COORD0_ATTRIB_INDEX + tex_unit); + } break; case CAIRO_GL_OPERAND_LINEAR_GRADIENT: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: @@ -462,15 +527,192 @@ _cairo_gl_composite_begin_component_alpha (cairo_gl_context_t *ctx, return CAIRO_STATUS_SUCCESS; } +void +_cairo_gl_scissor_to_extents (cairo_gl_surface_t *surface, + const cairo_rectangle_int_t *extents) +{ + int x1, y1, height; + + x1 = extents->x; + y1 = extents->y; + height = extents->height; + + if (_cairo_gl_surface_is_texture (surface) == FALSE) + y1 = surface->height - (y1 + height); + glScissor (x1, y1, extents->width, height); + glEnable (GL_SCISSOR_TEST); +} + +static void +_scissor_to_box (cairo_gl_surface_t *surface, + const cairo_box_t *box) +{ + double x1, y1, x2, y2, height; + _cairo_box_to_doubles (box, &x1, &y1, &x2, &y2); + + height = y2 - y1; + if (_cairo_gl_surface_is_texture (surface) == FALSE) + y1 = surface->height - (y1 + height); + glScissor (x1, y1, x2 - x1, height); + glEnable (GL_SCISSOR_TEST); +} + +static void +_cairo_gl_composite_setup_vbo (cairo_gl_context_t *ctx, + unsigned int size_per_vertex) +{ + void *attrib_location = NULL; + + if (! ctx->has_map_buffer) + attrib_location = (void *) ctx->vb_mem; + + if (ctx->vertex_size != size_per_vertex) + _cairo_gl_composite_flush (ctx); + + if (_cairo_gl_context_is_flushed (ctx)) { + if (ctx->has_map_buffer) + ctx->dispatch.BindBuffer (GL_ARRAY_BUFFER, ctx->vbo); + + ctx->dispatch.VertexAttribPointer (CAIRO_GL_VERTEX_ATTRIB_INDEX, 2, + GL_FLOAT, GL_FALSE, size_per_vertex, attrib_location); + ctx->dispatch.EnableVertexAttribArray (CAIRO_GL_VERTEX_ATTRIB_INDEX); + } + ctx->vertex_size = size_per_vertex; +} + +void +_disable_stencil_buffer (void) +{ + if (glIsEnabled (GL_STENCIL_TEST)) + glDisable (GL_STENCIL_TEST); + glDepthMask (GL_FALSE); +} + +void +_disable_scissor_buffer (void) +{ + if (glIsEnabled (GL_SCISSOR_TEST)) + glDisable (GL_SCISSOR_TEST); +} + +static cairo_int_status_t +_cairo_gl_composite_setup_painted_clipping (cairo_gl_composite_t *setup, + cairo_gl_context_t *ctx, + int vertex_size, + cairo_bool_t equal_clip) +{ + cairo_int_status_t status = CAIRO_INT_STATUS_SUCCESS; + + cairo_gl_surface_t *dst = setup->dst; + cairo_clip_t *clip = setup->clip; + cairo_traps_t traps; + const cairo_rectangle_int_t *clip_extents; + + if (clip->num_boxes == 1 && clip->path == NULL) { + _scissor_to_box (dst, &clip->boxes[0]); + goto disable_stencil_buffer_and_return; + } + + if (! _cairo_gl_ensure_stencil (ctx, setup->dst)) { + status = CAIRO_INT_STATUS_UNSUPPORTED; + goto disable_stencil_buffer_and_return; + } + + glDepthMask (GL_TRUE); + glEnable (GL_STENCIL_TEST); + clip_extents = _cairo_clip_get_extents ((const cairo_clip_t *)clip); + _cairo_gl_scissor_to_extents (dst, clip_extents); + + if (equal_clip) + return CAIRO_INT_STATUS_SUCCESS; + + glClearStencil (0); + glClear (GL_STENCIL_BUFFER_BIT); + glStencilOp (GL_REPLACE, GL_REPLACE, GL_REPLACE); + glStencilFunc (GL_EQUAL, 1, 0xffffffff); + glColorMask (0, 0, 0, 0); + + _cairo_traps_init (&traps); + status = _cairo_gl_msaa_compositor_draw_clip (ctx, setup, clip, &traps); + _cairo_traps_fini (&traps); + + if (unlikely (status)) { + glColorMask (1, 1, 1, 1); + goto disable_stencil_buffer_and_return; + } + + /* We want to only render to the stencil buffer, so draw everything now. + Flushing also unbinds the VBO, which we want to rebind for regular + drawing. */ + _cairo_gl_composite_flush (ctx); + _cairo_gl_composite_setup_vbo (ctx, vertex_size); + + glColorMask (1, 1, 1, 1); + glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP); + glStencilFunc (GL_EQUAL, 1, 0xffffffff); + return CAIRO_INT_STATUS_SUCCESS; + +disable_stencil_buffer_and_return: + _disable_stencil_buffer (); + return status; +} + +static cairo_int_status_t +_cairo_gl_composite_setup_clipping (cairo_gl_composite_t *setup, + cairo_gl_context_t *ctx, + int vertex_size) +{ + cairo_bool_t same_clip; + + if (! ctx->clip && ! setup->clip && ! ctx->clip_region) + goto finish; + + same_clip = _cairo_clip_equal (ctx->clip, setup->clip); + if (! _cairo_gl_context_is_flushed (ctx) && + (! cairo_region_equal (ctx->clip_region, setup->clip_region) || + ! same_clip)) + _cairo_gl_composite_flush (ctx); + + cairo_region_destroy (ctx->clip_region); + ctx->clip_region = cairo_region_reference (setup->clip_region); + + assert (!setup->clip_region || !setup->clip); + + if (! same_clip) { + _cairo_clip_destroy (ctx->clip); + ctx->clip = _cairo_clip_copy (setup->clip); + } + + if (ctx->clip_region) { + _disable_stencil_buffer (); + glEnable (GL_SCISSOR_TEST); + return CAIRO_INT_STATUS_SUCCESS; + } + + if (setup->clip) + return _cairo_gl_composite_setup_painted_clipping (setup, ctx, + vertex_size, + same_clip); + +finish: + _disable_stencil_buffer (); + _disable_scissor_buffer (); + return CAIRO_INT_STATUS_SUCCESS; +} + + cairo_status_t -_cairo_gl_composite_begin (cairo_gl_composite_t *setup, - cairo_gl_context_t **ctx_out) +_cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup, + cairo_gl_context_t **ctx_out, + cairo_bool_t multisampling) { unsigned int dst_size, src_size, mask_size, vertex_size; cairo_gl_context_t *ctx; cairo_status_t status; cairo_bool_t component_alpha; cairo_gl_shader_t *shader; + cairo_operator_t op = setup->op; + cairo_surface_t *mask_surface = NULL; assert (setup->dst); @@ -478,10 +720,13 @@ _cairo_gl_composite_begin (cairo_gl_composite_t *setup, if (unlikely (status)) return status; + _cairo_gl_context_set_destination (ctx, setup->dst, multisampling); + glEnable (GL_BLEND); - component_alpha = ((setup->mask.type == CAIRO_GL_OPERAND_TEXTURE) && - setup->mask.texture.attributes.has_component_alpha); + component_alpha = + setup->mask.type == CAIRO_GL_OPERAND_TEXTURE && + setup->mask.texture.attributes.has_component_alpha; /* Do various magic for component alpha */ if (component_alpha) { @@ -513,34 +758,38 @@ _cairo_gl_composite_begin (cairo_gl_composite_t *setup, status = CAIRO_STATUS_SUCCESS; dst_size = 2 * sizeof (GLfloat); - src_size = _cairo_gl_operand_get_vertex_size (setup->src.type); - mask_size = _cairo_gl_operand_get_vertex_size (setup->mask.type); - + src_size = _cairo_gl_operand_get_vertex_size (&setup->src); + mask_size = _cairo_gl_operand_get_vertex_size (&setup->mask); vertex_size = dst_size + src_size + mask_size; - if (ctx->vertex_size != vertex_size) { - _cairo_gl_composite_flush (ctx); - } - - _cairo_gl_context_set_destination (ctx, setup->dst); - if (_cairo_gl_context_is_flushed (ctx)) { - ctx->dispatch.BindBuffer (GL_ARRAY_BUFFER, ctx->vbo); + if (setup->spans) + vertex_size += sizeof (GLfloat); - ctx->dispatch.VertexAttribPointer (CAIRO_GL_VERTEX_ATTRIB_INDEX, 2, - GL_FLOAT, GL_FALSE, vertex_size, NULL); - ctx->dispatch.EnableVertexAttribArray (CAIRO_GL_VERTEX_ATTRIB_INDEX); - } + _cairo_gl_composite_setup_vbo (ctx, vertex_size); _cairo_gl_context_setup_operand (ctx, CAIRO_GL_TEX_SOURCE, &setup->src, vertex_size, dst_size); _cairo_gl_context_setup_operand (ctx, CAIRO_GL_TEX_MASK, &setup->mask, vertex_size, dst_size + src_size); if (setup->spans) _cairo_gl_context_setup_spans (ctx, vertex_size, dst_size + src_size + mask_size); - else - ctx->dispatch.DisableVertexAttribArray (CAIRO_GL_COLOR_ATTRIB_INDEX); + else { + ctx->dispatch.DisableVertexAttribArray (CAIRO_GL_COVERAGE_ATTRIB_INDEX); + ctx->spans = FALSE; + } - _cairo_gl_set_operator (ctx, setup->op, component_alpha); + /* XXX: Shoot me - we have converted CLEAR to DEST_OUT, + so the dst_factor would be GL_ONE_MINUS_SRC_ALPHA, if the + mask is a surface and mask content not content_alpha, we want to use + GL_ONE_MINUS_SRC_COLOR, otherwise, we use GL_ONE_MINUS_SRC_ALPHA + */ + if (setup->mask.type == CAIRO_GL_OPERAND_TEXTURE) + mask_surface = &setup->mask.texture.surface->base; + if (op == CAIRO_OPERATOR_CLEAR && + component_alpha && + mask_surface != NULL && + cairo_surface_get_content (mask_surface) == CAIRO_CONTENT_ALPHA) + component_alpha = FALSE; - ctx->vertex_size = vertex_size; + _cairo_gl_set_operator (ctx, setup->op, component_alpha); if (_cairo_gl_context_is_flushed (ctx)) { if (ctx->pre_shader) { @@ -551,15 +800,9 @@ _cairo_gl_composite_begin (cairo_gl_composite_t *setup, _cairo_gl_composite_bind_to_shader (ctx, setup); } - if (! _cairo_gl_context_is_flushed (ctx) && - ! cairo_region_equal (ctx->clip_region, setup->clip_region)) - _cairo_gl_composite_flush (ctx); - cairo_region_destroy (ctx->clip_region); - ctx->clip_region = cairo_region_reference (setup->clip_region); - if (ctx->clip_region) - glEnable (GL_SCISSOR_TEST); - else - glDisable (GL_SCISSOR_TEST); + status = _cairo_gl_composite_setup_clipping (setup, ctx, vertex_size); + if (unlikely (status)) + goto FAIL; *ctx_out = ctx; @@ -570,6 +813,60 @@ FAIL: return status; } +cairo_status_t +_cairo_gl_composite_begin (cairo_gl_composite_t *setup, + cairo_gl_context_t **ctx_out) +{ + return _cairo_gl_composite_begin_multisample (setup, ctx_out, FALSE); +} + +static inline void +_cairo_gl_composite_draw_tristrip (cairo_gl_context_t *ctx) +{ + cairo_array_t* indices = &ctx->tristrip_indices; + const unsigned short *indices_array = _cairo_array_index_const (indices, 0); + + + if (ctx->pre_shader) { + cairo_gl_shader_t *prev_shader = ctx->current_shader; + + _cairo_gl_set_shader (ctx, ctx->pre_shader); + _cairo_gl_set_operator (ctx, CAIRO_OPERATOR_DEST_OUT, TRUE); + glDrawElements (GL_TRIANGLE_STRIP, _cairo_array_num_elements (indices), GL_UNSIGNED_SHORT, indices_array); + + _cairo_gl_set_shader (ctx, prev_shader); + _cairo_gl_set_operator (ctx, CAIRO_OPERATOR_ADD, TRUE); + } + + glDrawElements (GL_TRIANGLE_STRIP, _cairo_array_num_elements (indices), GL_UNSIGNED_SHORT, indices_array); + _cairo_array_truncate (indices, 0); +} + +static inline void +_cairo_gl_composite_draw_line (cairo_gl_context_t *ctx) +{ + GLenum type = GL_LINE_STRIP; + cairo_array_t* indices = &ctx->tristrip_indices; + const unsigned short *indices_array = _cairo_array_index_const (indices, 0); + + if (ctx->draw_mode == CAIRO_GL_LINES) + type = GL_LINES; + + if (ctx->pre_shader) { + cairo_gl_shader_t *prev_shader = ctx->current_shader; + + _cairo_gl_set_shader (ctx, ctx->pre_shader); + _cairo_gl_set_operator (ctx, CAIRO_OPERATOR_DEST_OUT, TRUE); + glDrawElements (type, _cairo_array_num_elements (indices), GL_UNSIGNED_SHORT, indices_array); + + _cairo_gl_set_shader (ctx, prev_shader); + _cairo_gl_set_operator (ctx, CAIRO_OPERATOR_ADD, TRUE); + } + + glDrawElements (type, _cairo_array_num_elements (indices), GL_UNSIGNED_SHORT, indices_array); + _cairo_array_truncate (indices, 0); +} + static inline void _cairo_gl_composite_draw (cairo_gl_context_t *ctx, unsigned int count) @@ -589,26 +886,35 @@ _cairo_gl_composite_draw (cairo_gl_context_t *ctx, } } +static void +_cairo_gl_composite_unmap_vertex_buffer (cairo_gl_context_t *ctx) +{ + if (ctx->has_map_buffer) + ctx->dispatch.UnmapBuffer (GL_ARRAY_BUFFER); + + ctx->vb = NULL; + ctx->vb_offset = 0; +} + void _cairo_gl_composite_flush (cairo_gl_context_t *ctx) { unsigned int count; + int i; if (_cairo_gl_context_is_flushed (ctx)) return; count = ctx->vb_offset / ctx->vertex_size; - - if (ctx->has_map_buffer) - ctx->dispatch.UnmapBuffer (GL_ARRAY_BUFFER); - else - ctx->dispatch.BufferData (GL_ARRAY_BUFFER, ctx->vb_offset, - ctx->vb, GL_DYNAMIC_DRAW); - - ctx->vb = NULL; - ctx->vb_offset = 0; - - if (ctx->clip_region) { + _cairo_gl_composite_unmap_vertex_buffer (ctx); + + if ( _cairo_array_num_elements (&ctx->tristrip_indices) > 0) { + if (ctx->draw_mode == CAIRO_GL_LINE_STRIP || + ctx->draw_mode == CAIRO_GL_LINES) + _cairo_gl_composite_draw_line (ctx); + else + _cairo_gl_composite_draw_tristrip (ctx); + } else if (ctx->clip_region) { int i, num_rectangles = cairo_region_num_rectangles (ctx->clip_region); for (i = 0; i < num_rectangles; i++) { @@ -622,14 +928,34 @@ _cairo_gl_composite_flush (cairo_gl_context_t *ctx) } else { _cairo_gl_composite_draw (ctx, count); } + + for (i = 0; i < ARRAY_LENGTH (&ctx->glyph_cache); i++) + _cairo_gl_glyph_cache_unlock (&ctx->glyph_cache[i]); + + _cairo_gl_image_cache_unlock (ctx); } +typedef enum cairo_gl_geometry { + CAIRO_GL_GEOMETRY_TYPE_TRIANGLES, + CAIRO_GL_GEOMETRY_TYPE_TRISTRIPS +} cairo_gl_geometry_t; + static void _cairo_gl_composite_prepare_buffer (cairo_gl_context_t *ctx, - unsigned int n_vertices) + unsigned int n_vertices, + cairo_gl_geometry_t geometry_type) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + size_t tristrip_indices =_cairo_array_num_elements (&ctx->tristrip_indices); + if (geometry_type == CAIRO_GL_GEOMETRY_TYPE_TRIANGLES && + tristrip_indices != 0) { + _cairo_gl_composite_flush (ctx); + } else if (geometry_type == CAIRO_GL_GEOMETRY_TYPE_TRISTRIPS && + ! _cairo_gl_context_is_flushed (ctx) && tristrip_indices == 0) { + _cairo_gl_composite_flush (ctx); + } + if (ctx->vb_offset + n_vertices * ctx->vertex_size > CAIRO_GL_VBO_SIZE) _cairo_gl_composite_flush (ctx); @@ -646,6 +972,61 @@ _cairo_gl_composite_prepare_buffer (cairo_gl_context_t *ctx, } static inline void +_cairo_gl_composite_operand_emit (cairo_gl_operand_t *operand, + GLfloat ** vb, + GLfloat x, + GLfloat y) +{ + switch (operand->type) { + default: + case CAIRO_GL_OPERAND_COUNT: + ASSERT_NOT_REACHED; + case CAIRO_GL_OPERAND_NONE: + break; + case CAIRO_GL_OPERAND_CONSTANT: + if (operand->use_color_attribute) { + *(*vb)++ = operand->constant.color[0]; + *(*vb)++ = operand->constant.color[1]; + *(*vb)++ = operand->constant.color[2]; + *(*vb)++ = operand->constant.color[3]; + } + break; + case CAIRO_GL_OPERAND_LINEAR_GRADIENT: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: + { + double s = x; + double t = y; + + cairo_matrix_transform_point (&operand->gradient.m, &s, &t); + + *(*vb)++ = s; + *(*vb)++ = t; + } + break; + case CAIRO_GL_OPERAND_TEXTURE: + { + cairo_surface_attributes_t *src_attributes = &operand->texture.attributes; + double s = x; + double t = y; + + cairo_matrix_transform_point (&src_attributes->matrix, &s, &t); + *(*vb)++ = s; + *(*vb)++ = t; + + if (operand->texture.use_atlas) { + *(*vb)++ = operand->texture.p1.x; + *(*vb)++ = operand->texture.p1.y; + *(*vb)++ = operand->texture.p2.x; + *(*vb)++ = operand->texture.p2.y; + } + } + break; + } +} + +static inline void _cairo_gl_composite_emit_vertex (cairo_gl_context_t *ctx, GLfloat x, GLfloat y, @@ -656,8 +1037,8 @@ _cairo_gl_composite_emit_vertex (cairo_gl_context_t *ctx, *vb++ = x; *vb++ = y; - _cairo_gl_operand_emit (&ctx->operands[CAIRO_GL_TEX_SOURCE], &vb, x, y); - _cairo_gl_operand_emit (&ctx->operands[CAIRO_GL_TEX_MASK ], &vb, x, y); + _cairo_gl_composite_operand_emit (&ctx->operands[CAIRO_GL_TEX_SOURCE], &vb, x, y); + _cairo_gl_composite_operand_emit (&ctx->operands[CAIRO_GL_TEX_MASK ], &vb, x, y); if (ctx->spans) { union fi { @@ -675,6 +1056,17 @@ _cairo_gl_composite_emit_vertex (cairo_gl_context_t *ctx, ctx->vb_offset += ctx->vertex_size; } +static inline void +_cairo_gl_composite_emit_point (cairo_gl_context_t *ctx, + const cairo_point_t *point, + uint8_t alpha) +{ + _cairo_gl_composite_emit_vertex (ctx, + _cairo_fixed_to_double (point->x), + _cairo_fixed_to_double (point->y), + alpha); +} + void _cairo_gl_composite_emit_rect (cairo_gl_context_t *ctx, GLfloat x1, @@ -683,7 +1075,13 @@ _cairo_gl_composite_emit_rect (cairo_gl_context_t *ctx, GLfloat y2, uint8_t alpha) { - _cairo_gl_composite_prepare_buffer (ctx, 6); + if (ctx->draw_mode != CAIRO_GL_VERTEX) { + _cairo_gl_composite_flush (ctx); + ctx->draw_mode = CAIRO_GL_VERTEX; + } + + _cairo_gl_composite_prepare_buffer (ctx, 6, + CAIRO_GL_GEOMETRY_TYPE_TRIANGLES); _cairo_gl_composite_emit_vertex (ctx, x1, y1, alpha); _cairo_gl_composite_emit_vertex (ctx, x2, y1, alpha); @@ -706,7 +1104,7 @@ _cairo_gl_composite_emit_glyph_vertex (cairo_gl_context_t *ctx, *vb++ = x; *vb++ = y; - _cairo_gl_operand_emit (&ctx->operands[CAIRO_GL_TEX_SOURCE], &vb, x, y); + _cairo_gl_composite_operand_emit (&ctx->operands[CAIRO_GL_TEX_SOURCE], &vb, x, y); *vb++ = glyph_x; *vb++ = glyph_y; @@ -725,7 +1123,13 @@ _cairo_gl_composite_emit_glyph (cairo_gl_context_t *ctx, GLfloat glyph_x2, GLfloat glyph_y2) { - _cairo_gl_composite_prepare_buffer (ctx, 6); + if (ctx->draw_mode != CAIRO_GL_VERTEX) { + _cairo_gl_composite_flush (ctx); + ctx->draw_mode = CAIRO_GL_VERTEX; + } + + _cairo_gl_composite_prepare_buffer (ctx, 6, + CAIRO_GL_GEOMETRY_TYPE_TRIANGLES); _cairo_gl_composite_emit_glyph_vertex (ctx, x1, y1, glyph_x1, glyph_y1); _cairo_gl_composite_emit_glyph_vertex (ctx, x2, y1, glyph_x2, glyph_y1); @@ -747,8 +1151,7 @@ cairo_status_t _cairo_gl_composite_init (cairo_gl_composite_t *setup, cairo_operator_t op, cairo_gl_surface_t *dst, - cairo_bool_t assume_component_alpha, - const cairo_rectangle_int_t *rect) + cairo_bool_t assume_component_alpha) { memset (setup, 0, sizeof (cairo_gl_composite_t)); @@ -764,6 +1167,110 @@ _cairo_gl_composite_init (cairo_gl_composite_t *setup, setup->dst = dst; setup->op = op; + setup->clip_region = dst->clip_region; return CAIRO_STATUS_SUCCESS; } + +static cairo_int_status_t +_cairo_gl_composite_append_vertex_indices (cairo_gl_context_t *ctx, + int number_of_new_indices, + cairo_bool_t is_connected) +{ + cairo_int_status_t status = CAIRO_INT_STATUS_SUCCESS; + cairo_array_t *indices = &ctx->tristrip_indices; + int number_of_indices = _cairo_array_num_elements (indices); + unsigned short current_vertex_index = 0; + int i; + + assert (number_of_new_indices > 0); + + /* If any preexisting triangle triangle strip indices exist on this + context, we insert a set of degenerate triangles from the last + preexisting vertex to our first one. */ + if (number_of_indices > 0 && is_connected) { + const unsigned short *indices_array = _cairo_array_index_const (indices, 0); + current_vertex_index = indices_array[number_of_indices - 1]; + + status = _cairo_array_append (indices, ¤t_vertex_index); + if (unlikely (status)) + return status; + + current_vertex_index++; + status =_cairo_array_append (indices, ¤t_vertex_index); + if (unlikely (status)) + return status; + } else + current_vertex_index = (unsigned short) number_of_indices; + + for (i = 0; i < number_of_new_indices; i++) { + status = _cairo_array_append (indices, ¤t_vertex_index); + current_vertex_index++; + if (unlikely (status)) + return status; + } + + return CAIRO_STATUS_SUCCESS; +} + +cairo_int_status_t +_cairo_gl_composite_emit_quad_as_tristrip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + const cairo_point_t quad[4]) +{ + if (ctx->draw_mode != CAIRO_GL_VERTEX) { + _cairo_gl_composite_flush (ctx); + ctx->draw_mode = CAIRO_GL_VERTEX; + } + + _cairo_gl_composite_prepare_buffer (ctx, 4, + CAIRO_GL_GEOMETRY_TYPE_TRISTRIPS); + + _cairo_gl_composite_emit_point (ctx, &quad[0], 0); + _cairo_gl_composite_emit_point (ctx, &quad[1], 0); + + /* Cairo stores quad vertices in counter-clockwise order, but we need to + emit them from top to bottom in the triangle strip, so we need to reverse + the order of the last two vertices. */ + _cairo_gl_composite_emit_point (ctx, &quad[3], 0); + _cairo_gl_composite_emit_point (ctx, &quad[2], 0); + + return _cairo_gl_composite_append_vertex_indices (ctx, 4, TRUE); +} + +cairo_int_status_t +_cairo_gl_composite_emit_triangle_as_tristrip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + const cairo_point_t triangle[3]) +{ + if (ctx->draw_mode != CAIRO_GL_VERTEX) { + _cairo_gl_composite_flush (ctx); + ctx->draw_mode = CAIRO_GL_VERTEX; + } + + _cairo_gl_composite_prepare_buffer (ctx, 3, + CAIRO_GL_GEOMETRY_TYPE_TRISTRIPS); + + _cairo_gl_composite_emit_point (ctx, &triangle[0], 0); + _cairo_gl_composite_emit_point (ctx, &triangle[1], 0); + _cairo_gl_composite_emit_point (ctx, &triangle[2], 0); + return _cairo_gl_composite_append_vertex_indices (ctx, 3, TRUE); +} + +cairo_int_status_t +_cairo_gl_composite_emit_point_as_single_line (cairo_gl_context_t *ctx, + const cairo_point_t point[2]) +{ + int num_indices = 2; + if (ctx->draw_mode != CAIRO_GL_LINES) + _cairo_gl_composite_flush (ctx); + + ctx->draw_mode = CAIRO_GL_LINES; + + _cairo_gl_composite_prepare_buffer (ctx, 2, + CAIRO_GL_GEOMETRY_TYPE_TRISTRIPS); + + _cairo_gl_composite_emit_point (ctx, &point[0], 0); + _cairo_gl_composite_emit_point (ctx, &point[1], 0); + return _cairo_gl_composite_append_vertex_indices (ctx, num_indices, FALSE); +} diff --git a/src/cairo-gl-device.c b/src/cairo-gl-device.c index f20850e..a4ec15c 100644 --- a/src/cairo-gl-device.c +++ b/src/cairo-gl-device.c @@ -44,6 +44,36 @@ #include "cairo-error-private.h" #include "cairo-gl-private.h" +#include "cairo-rtree-private.h" + +#define MAX_MSAA_SAMPLES 4 + +cairo_int_status_t +_cairo_gl_image_cache_init (cairo_gl_context_t *ctx) +{ + cairo_surface_t *cache_surface = _cairo_gl_surface_create_scratch (ctx, + CAIRO_CONTENT_COLOR_ALPHA, + IMAGE_CACHE_WIDTH, + IMAGE_CACHE_HEIGHT, + FALSE); + if (unlikely (cache_surface->status)) { + cairo_surface_destroy (cache_surface); + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + _cairo_surface_release_device_reference (cache_surface); + ctx->image_cache.surface = (cairo_gl_surface_t *)cache_surface; + + + return CAIRO_INT_STATUS_SUCCESS; +} + +static void +_cairo_gl_image_cache_fini (cairo_gl_context_t *ctx) +{ + _cairo_rtree_fini (&ctx->image_cache.rtree); + cairo_surface_destroy (&ctx->image_cache.surface->base); +} static void _gl_lock (void *device) @@ -89,7 +119,7 @@ _gl_flush (void *device) ctx->dispatch.BindBuffer (GL_ARRAY_BUFFER, 0); - glDisable (GL_SCISSOR_TEST); + _disable_scissor_buffer (); glDisable (GL_BLEND); return _cairo_gl_context_release (ctx, status); @@ -99,6 +129,7 @@ static void _gl_finish (void *device) { cairo_gl_context_t *ctx = device; + int n; _gl_lock (device); @@ -106,6 +137,16 @@ _gl_finish (void *device) _cairo_gl_context_fini_shaders (ctx); + if (ctx->shared_depth_stencil) + ctx->dispatch.DeleteRenderbuffers (1, &ctx->shared_depth_stencil); + if (ctx->shared_msaa_depth_stencil) + ctx->dispatch.DeleteRenderbuffers (1, &ctx->shared_msaa_depth_stencil); + + for (n = 0; n < ARRAY_LENGTH (ctx->glyph_cache); n++) + _cairo_gl_glyph_cache_fini (ctx, &ctx->glyph_cache[n]); + + _cairo_gl_image_cache_fini (ctx); + _gl_unlock (device); } @@ -113,7 +154,6 @@ static void _gl_destroy (void *device) { cairo_gl_context_t *ctx = device; - int n; ctx->acquire (ctx); @@ -129,10 +169,10 @@ _gl_destroy (void *device) free (font); } - for (n = 0; n < ARRAY_LENGTH (ctx->glyph_cache); n++) - _cairo_gl_glyph_cache_fini (ctx, &ctx->glyph_cache[n]); + _cairo_array_fini (&ctx->tristrip_indices); cairo_region_destroy (ctx->clip_region); + _cairo_clip_destroy (ctx->clip); free (ctx->vb_mem); @@ -152,6 +192,13 @@ static const cairo_device_backend_t _cairo_gl_device_backend = { _gl_destroy, }; +static cairo_bool_t +_cairo_gl_msaa_compositor_enabled (void) +{ + const char *env = getenv ("CAIRO_GL_COMPOSITOR"); + return env && strcmp(env, "msaa") == 0; +} + cairo_status_t _cairo_gl_context_init (cairo_gl_context_t *ctx) { @@ -163,7 +210,17 @@ _cairo_gl_context_init (cairo_gl_context_t *ctx) _cairo_device_init (&ctx->base, &_cairo_gl_device_backend); - ctx->compositor = _cairo_gl_span_compositor_get (); + /* XXX The choice of compositor should be made automatically at runtime. + * However, it is useful to force one particular compositor whilst + * testing. + */ + if (_cairo_gl_msaa_compositor_enabled ()) + ctx->compositor = _cairo_gl_msaa_compositor_get (); + else + ctx->compositor = _cairo_gl_span_compositor_get (); + + + ctx->thread_aware = TRUE; memset (ctx->glyph_cache, 0, sizeof (ctx->glyph_cache)); cairo_list_init (&ctx->fonts); @@ -174,18 +231,20 @@ _cairo_gl_context_init (cairo_gl_context_t *ctx) /* Check for required extensions */ if (gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) { - if (_cairo_gl_has_extension ("GL_ARB_texture_non_power_of_two")) + if (_cairo_gl_has_extension ("GL_ARB_texture_non_power_of_two")) { ctx->tex_target = GL_TEXTURE_2D; - else if (_cairo_gl_has_extension ("GL_ARB_texture_rectangle")) + ctx->has_npot_repeat = TRUE; + } else if (_cairo_gl_has_extension ("GL_ARB_texture_rectangle")) { ctx->tex_target = GL_TEXTURE_RECTANGLE; - else + ctx->has_npot_repeat = FALSE; + } else return _cairo_error (CAIRO_STATUS_DEVICE_ERROR); - } - else { + } else { + ctx->tex_target = GL_TEXTURE_2D; if (_cairo_gl_has_extension ("GL_OES_texture_npot")) - ctx->tex_target = GL_TEXTURE_2D; + ctx->has_npot_repeat = TRUE; else - return _cairo_error (CAIRO_STATUS_DEVICE_ERROR); + ctx->has_npot_repeat = FALSE; } if (gl_flavor == CAIRO_GL_FLAVOR_DESKTOP && @@ -204,6 +263,32 @@ _cairo_gl_context_init (cairo_gl_context_t *ctx) ctx->has_mesa_pack_invert = _cairo_gl_has_extension ("GL_MESA_pack_invert"); + ctx->has_packed_depth_stencil = + ((gl_flavor == CAIRO_GL_FLAVOR_DESKTOP && + _cairo_gl_has_extension ("GL_EXT_packed_depth_stencil")) || + (gl_flavor == CAIRO_GL_FLAVOR_ES && + _cairo_gl_has_extension ("GL_OES_packed_depth_stencil"))); + + ctx->num_samples = 1; + +#if CAIRO_HAS_GL_SURFACE + if (ctx->has_packed_depth_stencil && + _cairo_gl_has_extension ("GL_ARB_framebuffer_object")) { + glGetIntegerv(GL_MAX_SAMPLES_EXT, &ctx->num_samples); + } +#endif + +#if CAIRO_HAS_GLESV2_SURFACE && defined(GL_MAX_SAMPLES_EXT) + if (ctx->has_packed_depth_stencil && + _cairo_gl_has_extension ("GL_EXT_multisampled_render_to_texture")) { + glGetIntegerv(GL_MAX_SAMPLES_EXT, &ctx->num_samples); + } +#endif + ctx->supports_msaa = ctx->num_samples > 1; + if (ctx->num_samples > MAX_MSAA_SAMPLES) + ctx->num_samples = MAX_MSAA_SAMPLES; + + ctx->current_operator = -1; ctx->gl_flavor = gl_flavor; @@ -227,6 +312,8 @@ _cairo_gl_context_init (cairo_gl_context_t *ctx) } } + _cairo_array_init (&ctx->tristrip_indices, sizeof (unsigned short)); + /* PBO for any sort of texture upload */ dispatch->GenBuffers (1, &ctx->texture_load_pbo); dispatch->GenBuffers (1, &ctx->vbo); @@ -241,6 +328,12 @@ _cairo_gl_context_init (cairo_gl_context_t *ctx) for (n = 0; n < ARRAY_LENGTH (ctx->glyph_cache); n++) _cairo_gl_glyph_cache_init (&ctx->glyph_cache[n]); + ctx->image_cache.surface = NULL; + _cairo_rtree_init (&ctx->image_cache.rtree, IMAGE_CACHE_WIDTH, + IMAGE_CACHE_HEIGHT, IMAGE_CACHE_MIN_SIZE, + sizeof (cairo_gl_image_t), + _cairo_gl_image_node_destroy); + return CAIRO_STATUS_SUCCESS; } @@ -251,7 +344,7 @@ _cairo_gl_context_activate (cairo_gl_context_t *ctx, if (ctx->max_textures <= (GLint) tex_unit) { if (tex_unit < 2) { _cairo_gl_composite_flush (ctx); - _cairo_gl_context_destroy_operand (ctx, ctx->max_textures - 1); + _cairo_gl_context_destroy_operand (ctx, ctx->max_textures - 1); } glActiveTexture (ctx->max_textures - 1); } else { @@ -259,7 +352,49 @@ _cairo_gl_context_activate (cairo_gl_context_t *ctx, } } +static GLenum +_get_depth_stencil_format (cairo_gl_context_t *ctx) +{ + /* This is necessary to properly handle the situation where both + OpenGL and OpenGLES are active and returning a sane default. */ +#if CAIRO_HAS_GL_SURFACE + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) + return GL_DEPTH_STENCIL; +#endif + +#if CAIRO_HAS_GLESV2_SURFACE + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) + return GL_DEPTH24_STENCIL8_OES; +#endif + +#if CAIRO_HAS_GL_SURFACE + return GL_DEPTH_STENCIL; +#elif CAIRO_HAS_GLESV2_SURFACE + return GL_DEPTH24_STENCIL8_OES; +#endif +} + +#if CAIRO_HAS_GLESV2_SURFACE static void +_cairo_gl_ensure_msaa_gles_framebuffer (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + if (surface->msaa_active) + return; + + ctx->dispatch.FramebufferTexture2DMultisample(GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + ctx->tex_target, + surface->tex, + 0, + ctx->num_samples); + + /* From now on MSAA will always be active on this surface. */ + surface->msaa_active = TRUE; +} +#endif + +void _cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx, cairo_gl_surface_t *surface) { @@ -274,11 +409,22 @@ _cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx, */ dispatch->GenFramebuffers (1, &surface->fb); dispatch->BindFramebuffer (GL_FRAMEBUFFER, surface->fb); - dispatch->FramebufferTexture2D (GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - ctx->tex_target, - surface->tex, - 0); + + /* Unlike for desktop GL we only maintain one multisampling framebuffer + for OpenGLES since the EXT_multisampled_render_to_texture extension + does not require an explicit multisample resolution. */ +#if CAIRO_HAS_GLESV2_SURFACE + if (surface->supports_msaa && _cairo_gl_msaa_compositor_enabled () && + ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) { + _cairo_gl_ensure_msaa_gles_framebuffer (ctx, surface); + } else +#endif + dispatch->FramebufferTexture2D (GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + ctx->tex_target, + surface->tex, + 0); + #if CAIRO_HAS_GL_SURFACE glDrawBuffer (GL_COLOR_ATTACHMENT0); glReadBuffer (GL_COLOR_ATTACHMENT0); @@ -304,6 +450,189 @@ _cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx, } } +#if CAIRO_HAS_GL_SURFACE +static void +_cairo_gl_ensure_multisampling (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + assert (surface->supports_msaa); + assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP); + + if (surface->msaa_fb) + return; + + /* We maintain a separate framebuffer for multisampling operations. + This allows us to do a fast paint to the non-multisampling framebuffer + when mulitsampling is disabled. */ + ctx->dispatch.GenFramebuffers (1, &surface->msaa_fb); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->msaa_fb); + ctx->dispatch.GenRenderbuffers (1, &surface->msaa_rb); + ctx->dispatch.BindRenderbuffer (GL_RENDERBUFFER, surface->msaa_rb); + + /* FIXME: For now we assume that textures passed from the outside have GL_RGBA + format, but eventually we need to expose a way for the API consumer to pass + this information. */ + ctx->dispatch.RenderbufferStorageMultisample (GL_RENDERBUFFER, + ctx->num_samples, + GL_RGBA, + surface->width, + surface->height); + ctx->dispatch.FramebufferRenderbuffer (GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + GL_RENDERBUFFER, + surface->msaa_rb); + + /* Cairo surfaces start out initialized to transparent (black) */ + _disable_scissor_buffer (); + glClearColor (0, 0, 0, 0); + glClear (GL_COLOR_BUFFER_BIT); +} +#endif + +static void +_cairo_gl_replace_msaa_depth_stencil_buffer (cairo_gl_context_t *ctx, + int width, + int height) +{ + cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + + if (ctx->shared_msaa_depth_stencil) + dispatch->DeleteRenderbuffers (1, &ctx->shared_msaa_depth_stencil); + + dispatch->GenRenderbuffers (1, &ctx->shared_msaa_depth_stencil); + dispatch->BindRenderbuffer (GL_RENDERBUFFER, ctx->shared_msaa_depth_stencil); + dispatch->RenderbufferStorageMultisample (GL_RENDERBUFFER, ctx->num_samples, + _get_depth_stencil_format (ctx), + width, height); + ctx->shared_msaa_depth_stencil_width = width; + ctx->shared_msaa_depth_stencil_height = height; +} + +static cairo_bool_t +_cairo_gl_ensure_msaa_depth_stencil_buffer (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + _cairo_gl_ensure_framebuffer (ctx, surface); +#if CAIRO_HAS_GL_SURFACE + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) + _cairo_gl_ensure_multisampling (ctx, surface); +#endif + + if (! ctx->shared_msaa_depth_stencil || + ctx->shared_msaa_depth_stencil_width < surface->width || + ctx->shared_msaa_depth_stencil_height < surface->height) { + _cairo_gl_replace_msaa_depth_stencil_buffer (ctx, + surface->width, + surface->height); + } + + assert (ctx->shared_msaa_depth_stencil); + if (surface->msaa_depth_stencil == ctx->shared_msaa_depth_stencil) + return TRUE; + +#if CAIRO_HAS_GL_SURFACE + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) { + dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER, + GL_DEPTH_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, + ctx->shared_msaa_depth_stencil); + } +#endif + +#if CAIRO_HAS_GLESV2_SURFACE + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) { + dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER, + GL_DEPTH_ATTACHMENT, + GL_RENDERBUFFER, + ctx->shared_msaa_depth_stencil); + dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER, + GL_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, + ctx->shared_msaa_depth_stencil); + } +#endif + + surface->msaa_depth_stencil = ctx->shared_msaa_depth_stencil; + + if (dispatch->CheckFramebufferStatus (GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + dispatch->DeleteRenderbuffers (1, &surface->msaa_depth_stencil); + surface->msaa_depth_stencil = 0; + return FALSE; + } + + return TRUE; +} + +static void +_cairo_gl_replace_depth_stencil_buffer (cairo_gl_context_t *ctx, + int width, + int height) +{ + cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + + if (ctx->shared_depth_stencil) + dispatch->DeleteRenderbuffers (1, &ctx->shared_depth_stencil); + + dispatch->GenRenderbuffers (1, &ctx->shared_depth_stencil); + dispatch->BindRenderbuffer (GL_RENDERBUFFER, ctx->shared_depth_stencil); + dispatch->RenderbufferStorage (GL_RENDERBUFFER, + _get_depth_stencil_format (ctx), + width, height); + ctx->shared_depth_stencil_width = width; + ctx->shared_depth_stencil_height = height; +} + +static cairo_bool_t +_cairo_gl_ensure_depth_stencil_buffer (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + cairo_gl_dispatch_t *dispatch = &ctx->dispatch; + + _cairo_gl_ensure_framebuffer (ctx, surface); + + if (! ctx->shared_depth_stencil || + ctx->shared_depth_stencil_width < surface->width || + ctx->shared_depth_stencil_height < surface->height) { + _cairo_gl_replace_depth_stencil_buffer (ctx, + surface->width, + surface->height); + } + + if (surface->depth_stencil == ctx->shared_depth_stencil) + return TRUE; + + dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, + GL_RENDERBUFFER, ctx->shared_depth_stencil); + dispatch->FramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, + GL_RENDERBUFFER, ctx->shared_depth_stencil); + surface->depth_stencil = ctx->shared_depth_stencil; + + if (dispatch->CheckFramebufferStatus (GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + dispatch->DeleteRenderbuffers (1, &surface->depth_stencil); + surface->depth_stencil = 0; + return FALSE; + } + + return TRUE; +} + +cairo_bool_t +_cairo_gl_ensure_stencil (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + if (! _cairo_gl_surface_is_texture (surface)) + return TRUE; /* best guess for now, will check later */ + + if (! ctx->has_packed_depth_stencil) + return FALSE; + + if (surface->msaa_active) + return _cairo_gl_ensure_msaa_depth_stencil_buffer (ctx, surface); + else + return _cairo_gl_ensure_depth_stencil_buffer (ctx, surface); +} + /* * Stores a parallel projection transformation in matrix 'm', * using column-major order. @@ -344,12 +673,82 @@ _gl_identity_ortho (GLfloat *m, #undef M } +#if CAIRO_HAS_GL_SURFACE +static void +_cairo_gl_activate_surface_as_multisampling (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + assert (surface->supports_msaa); + assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP); + + _cairo_gl_ensure_framebuffer (ctx, surface); + _cairo_gl_ensure_multisampling (ctx, surface); + + + if (surface->msaa_active) { + glEnable (GL_MULTISAMPLE); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->msaa_fb); + return; + } + + _cairo_gl_composite_flush (ctx); + glEnable (GL_MULTISAMPLE); + + /* The last time we drew to the surface, we were not using multisampling, + so we need to blit from the non-multisampling framebuffer into the + multisampling framebuffer. */ + ctx->dispatch.BindFramebuffer (GL_DRAW_FRAMEBUFFER, surface->msaa_fb); + ctx->dispatch.BindFramebuffer (GL_READ_FRAMEBUFFER, surface->fb); + ctx->dispatch.BlitFramebuffer (0, 0, surface->width, surface->height, + 0, 0, surface->width, surface->height, + GL_COLOR_BUFFER_BIT, GL_NEAREST); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->msaa_fb); + surface->msaa_active = TRUE; +} +#endif + +void +_cairo_gl_activate_surface_as_nonmultisampling (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface) +{ + assert (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP); + _cairo_gl_ensure_framebuffer (ctx, surface); + +#if CAIRO_HAS_GL_SURFACE + if (! surface->msaa_active) { + glDisable (GL_MULTISAMPLE); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb); + return; + } + + _cairo_gl_composite_flush (ctx); + glDisable (GL_MULTISAMPLE); + + /* The last time we drew to the surface, we were using multisampling, + so we need to blit from the multisampling framebuffer into the + non-multisampling framebuffer. */ + ctx->dispatch.BindFramebuffer (GL_DRAW_FRAMEBUFFER, surface->fb); + ctx->dispatch.BindFramebuffer (GL_READ_FRAMEBUFFER, surface->msaa_fb); + ctx->dispatch.BlitFramebuffer (0, 0, surface->width, surface->height, + 0, 0, surface->width, surface->height, + GL_COLOR_BUFFER_BIT, GL_NEAREST); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb); + surface->msaa_active = FALSE; +#endif +} + void _cairo_gl_context_set_destination (cairo_gl_context_t *ctx, - cairo_gl_surface_t *surface) + cairo_gl_surface_t *surface, + cairo_bool_t multisampling) { - if (ctx->current_target == surface && ! surface->needs_update) - return; + /* OpenGL ES surfaces are always in MSAA mode once it's been turned on, + * so we don't need to check whether we are switching modes for that + * surface type. */ + if (ctx->current_target == surface && ! surface->needs_update && + (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES || + surface->msaa_active == multisampling)) + return; _cairo_gl_composite_flush (ctx); @@ -357,11 +756,29 @@ _cairo_gl_context_set_destination (cairo_gl_context_t *ctx, surface->needs_update = FALSE; if (_cairo_gl_surface_is_texture (surface)) { - _cairo_gl_ensure_framebuffer (ctx, surface); - ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb); + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) { + _cairo_gl_ensure_framebuffer (ctx, surface); + ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, surface->fb); +#if CAIRO_HAS_GL_SURFACE + } else if (multisampling) + _cairo_gl_activate_surface_as_multisampling (ctx, surface); + else { + _cairo_gl_activate_surface_as_nonmultisampling (ctx, surface); +#endif + } } else { ctx->make_current (ctx, surface); + +#if CAIRO_HAS_GL_SURFACE + if (multisampling) + glEnable(GL_MULTISAMPLE); + else + glDisable(GL_MULTISAMPLE); +#endif + + surface->msaa_active = multisampling; ctx->dispatch.BindFramebuffer (GL_FRAMEBUFFER, 0); + #if CAIRO_HAS_GL_SURFACE glDrawBuffer (GL_BACK_LEFT); glReadBuffer (GL_BACK_LEFT); @@ -377,3 +794,14 @@ _cairo_gl_context_set_destination (cairo_gl_context_t *ctx, _gl_identity_ortho (ctx->modelviewprojection_matrix, 0, surface->width, surface->height, 0); } + +void +cairo_gl_device_set_thread_aware (cairo_device_t *device, + cairo_bool_t thread_aware) +{ + if (device->backend->type != CAIRO_DEVICE_TYPE_GL) { + _cairo_error_throw (CAIRO_STATUS_DEVICE_TYPE_MISMATCH); + return; + } + ((cairo_gl_context_t *) device)->thread_aware = thread_aware; +} diff --git a/src/cairo-gl-dispatch-private.h b/src/cairo-gl-dispatch-private.h index 751913c..0c5dc39 100644 --- a/src/cairo-gl-dispatch-private.h +++ b/src/cairo-gl-dispatch-private.h @@ -53,6 +53,8 @@ typedef struct _cairo_gl_dispatch_entry { offsetof(cairo_gl_dispatch_t, name) } #define DISPATCH_ENTRY_ARB_OES(name) { { "gl"#name, "gl"#name"ARB", "gl"#name"OES" }, \ offsetof(cairo_gl_dispatch_t, name) } +#define DISPATCH_ENTRY_EXT_EXT(name) { { "gl"#name, "gl"#name"EXT", "gl"#name"EXT" }, \ + offsetof(cairo_gl_dispatch_t, name) } #define DISPATCH_ENTRY_CUSTOM(name, name2) { { "gl"#name, "gl"#name2, "gl"#name }, \ offsetof(cairo_gl_dispatch_t, name)} #define DISPATCH_ENTRY_LAST { { NULL, NULL, NULL }, 0 } @@ -109,6 +111,14 @@ cairo_private cairo_gl_dispatch_entry_t dispatch_fbo_entries[] = { DISPATCH_ENTRY_EXT (FramebufferTexture2D), DISPATCH_ENTRY_EXT (CheckFramebufferStatus), DISPATCH_ENTRY_EXT (DeleteFramebuffers), + DISPATCH_ENTRY_EXT (GenRenderbuffers), + DISPATCH_ENTRY_EXT (BindRenderbuffer), + DISPATCH_ENTRY_EXT (RenderbufferStorage), + DISPATCH_ENTRY_EXT (FramebufferRenderbuffer), + DISPATCH_ENTRY_EXT (DeleteRenderbuffers), + DISPATCH_ENTRY_EXT (BlitFramebuffer), + DISPATCH_ENTRY_EXT_EXT (RenderbufferStorageMultisample), + DISPATCH_ENTRY_EXT_EXT (FramebufferTexture2DMultisample), DISPATCH_ENTRY_LAST }; diff --git a/src/cairo-gl-glyphs.c b/src/cairo-gl-glyphs.c index ee5c543..4627fd7 100644 --- a/src/cairo-gl-glyphs.c +++ b/src/cairo-gl-glyphs.c @@ -54,22 +54,47 @@ typedef struct _cairo_gl_glyph { cairo_rtree_node_t node; cairo_scaled_glyph_private_t base; + cairo_scaled_glyph_t *glyph; cairo_gl_glyph_cache_t *cache; struct { float x, y; } p1, p2; } cairo_gl_glyph_t; static void -_cairo_gl_glyph_fini (cairo_scaled_glyph_private_t *_priv, +_cairo_gl_node_destroy (cairo_rtree_node_t *node) +{ + cairo_gl_glyph_t *priv = cairo_container_of (node, cairo_gl_glyph_t, node); + cairo_scaled_glyph_t *glyph; + + glyph = priv->glyph; + if (glyph == NULL) + return; + + if (glyph->dev_private_key == priv->cache) { + glyph->dev_private = NULL; + glyph->dev_private_key = NULL; + } + cairo_list_del (&priv->base.link); + priv->glyph = NULL; +} + +static void +_cairo_gl_glyph_fini (cairo_scaled_glyph_private_t *glyph_private, cairo_scaled_glyph_t *scaled_glyph, cairo_scaled_font_t *scaled_font) { - cairo_gl_glyph_t *priv = cairo_container_of (_priv, cairo_gl_glyph_t, base); + cairo_gl_glyph_t *priv = cairo_container_of (glyph_private, + cairo_gl_glyph_t, + base); + + assert (priv->glyph); - priv->node.owner = NULL; - if (! priv->node.pinned) { - /* XXX thread-safety? Probably ok due to the frozen scaled-font. */ + _cairo_gl_node_destroy (&priv->node); + + /* XXX thread-safety? Probably ok due to the frozen scaled-font. */ + if (! priv->node.pinned) _cairo_rtree_node_remove (&priv->cache->rtree, &priv->node); - } + + assert (priv->glyph == NULL); } static cairo_int_status_t @@ -78,7 +103,6 @@ _cairo_gl_glyph_cache_add_glyph (cairo_gl_context_t *ctx, cairo_scaled_glyph_t *scaled_glyph) { cairo_image_surface_t *glyph_surface = scaled_glyph->surface; - cairo_gl_surface_t *cache_surface; cairo_gl_glyph_t *glyph_private; cairo_rtree_node_t *node = NULL; cairo_int_status_t status; @@ -105,12 +129,9 @@ _cairo_gl_glyph_cache_add_glyph (cairo_gl_context_t *ctx, if (status) return status; - cache_surface = (cairo_gl_surface_t *) cache->pattern.surface; - /* XXX: Make sure we use the mask texture. This should work automagically somehow */ glActiveTexture (GL_TEXTURE1); - status = _cairo_gl_surface_draw_image (cache_surface, - glyph_surface, + status = _cairo_gl_surface_draw_image (cache->surface, glyph_surface, 0, 0, glyph_surface->width, glyph_surface->height, node->x, node->y); @@ -119,6 +140,7 @@ _cairo_gl_glyph_cache_add_glyph (cairo_gl_context_t *ctx, glyph_private = (cairo_gl_glyph_t *) node; glyph_private->cache = cache; + glyph_private->glyph = scaled_glyph; _cairo_scaled_glyph_attach_private (scaled_glyph, &glyph_private->base, cache, @@ -133,10 +155,10 @@ _cairo_gl_glyph_cache_add_glyph (cairo_gl_context_t *ctx, glyph_private->p2.x = node->x + glyph_surface->width; glyph_private->p2.y = node->y + glyph_surface->height; if (! _cairo_gl_device_requires_power_of_two_textures (&ctx->base)) { - glyph_private->p1.x /= cache_surface->width; - glyph_private->p1.y /= cache_surface->height; - glyph_private->p2.x /= cache_surface->width; - glyph_private->p2.y /= cache_surface->height; + glyph_private->p1.x /= GLYPH_CACHE_WIDTH; + glyph_private->p2.x /= GLYPH_CACHE_WIDTH; + glyph_private->p1.y /= GLYPH_CACHE_HEIGHT; + glyph_private->p2.y /= GLYPH_CACHE_HEIGHT; } return CAIRO_STATUS_SUCCESS; @@ -156,6 +178,7 @@ cairo_gl_context_get_glyph_cache (cairo_gl_context_t *ctx, { cairo_gl_glyph_cache_t *cache; cairo_content_t content; + cairo_bool_t true_alpha = FALSE; switch (format) { case CAIRO_FORMAT_RGB30: @@ -169,6 +192,7 @@ cairo_gl_context_get_glyph_cache (cairo_gl_context_t *ctx, case CAIRO_FORMAT_A1: cache = &ctx->glyph_cache[1]; content = CAIRO_CONTENT_ALPHA; + true_alpha = TRUE; break; default: case CAIRO_FORMAT_INVALID: @@ -176,50 +200,38 @@ cairo_gl_context_get_glyph_cache (cairo_gl_context_t *ctx, return _cairo_error (CAIRO_STATUS_INVALID_FORMAT); } - if (unlikely (cache->pattern.surface == NULL)) { + if (unlikely (cache->surface == NULL)) { cairo_surface_t *surface; - surface = cairo_gl_surface_create (&ctx->base, - content, - GLYPH_CACHE_WIDTH, - GLYPH_CACHE_HEIGHT); - if (unlikely (surface->status)) { - cairo_status_t status = surface->status; - cairo_surface_destroy (surface); - return status; - } + + surface = _cairo_gl_surface_create_scratch (ctx, + content, + GLYPH_CACHE_WIDTH, + GLYPH_CACHE_HEIGHT, + true_alpha); + + if (unlikely (surface->status)) + return surface->status; + _cairo_surface_release_device_reference (surface); - _cairo_pattern_init_for_surface (&cache->pattern, surface); - cairo_surface_destroy (surface); - cache->pattern.base.has_component_alpha = (content == CAIRO_CONTENT_COLOR_ALPHA); + + cache->surface = (cairo_gl_surface_t *)surface; + cache->surface->operand.texture.attributes.has_component_alpha = + content == CAIRO_CONTENT_COLOR_ALPHA; } *cache_out = cache; return CAIRO_STATUS_SUCCESS; } -static void -_cairo_gl_glyph_cache_unlock (cairo_gl_glyph_cache_t *cache) -{ - _cairo_rtree_unpin (&cache->rtree); -} - -static void -_cairo_gl_font_fini (cairo_scaled_font_private_t *_priv, - cairo_scaled_font_t *scaled_font) -{ - cairo_gl_font_t *priv = (cairo_gl_font_t *)_priv; - - cairo_list_del (&priv->link); - free (priv); -} - static cairo_status_t render_glyphs (cairo_gl_surface_t *dst, int dst_x, int dst_y, cairo_operator_t op, - const cairo_pattern_t *source, + cairo_surface_t *source, cairo_composite_glyphs_info_t *info, - cairo_bool_t *has_component_alpha) + cairo_bool_t *has_component_alpha, + cairo_clip_t *clip, + cairo_bool_t via_msaa_compositor) { cairo_format_t last_format = CAIRO_FORMAT_INVALID; cairo_gl_glyph_cache_t *cache = NULL; @@ -227,6 +239,11 @@ render_glyphs (cairo_gl_surface_t *dst, cairo_gl_composite_t setup; cairo_int_status_t status; int i = 0; + cairo_bool_t is_argb32; + + TRACE ((stderr, "%s (%d, %d)x(%d, %d)\n", __FUNCTION__, + info->extents.x, info->extents.y, + info->extents.width, info->extents.height)); *has_component_alpha = FALSE; @@ -234,21 +251,34 @@ render_glyphs (cairo_gl_surface_t *dst, if (unlikely (status)) return status; - status = _cairo_gl_composite_init (&setup, op, dst, TRUE, &info->extents); - if (unlikely (status)) - goto FINISH; + /* Traps compositor never has CLEAR operator. */ + is_argb32 = + info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL || + info->font->options.antialias == CAIRO_ANTIALIAS_BEST; + + /* If we are invoked by traps compositor, we keep what is in code + otherwise, we handle non-subpixel/best directly in msaa + compositor. */ + if (!via_msaa_compositor) + status = _cairo_gl_composite_init (&setup, op, dst, TRUE); + else if (info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL || + info->font->options.antialias == CAIRO_ANTIALIAS_BEST) + status = _cairo_gl_composite_init (&setup, op, dst, TRUE); + else + status = _cairo_gl_composite_init (&setup, op, dst, FALSE); - status = _cairo_gl_composite_set_source (&setup, source, - info->extents.x, - info->extents.y, - dst_x, dst_y, - info->extents.width, - info->extents.height); if (unlikely (status)) goto FINISH; + if (source == NULL) { + _cairo_gl_composite_set_solid_source (&setup, CAIRO_COLOR_WHITE); + } else { + _cairo_gl_composite_set_source_operand (&setup, + source_to_operand (source)); - //_cairo_gl_composite_set_clip_region (&setup, _cairo_clip_get_region (extents->clip)); + } + + _cairo_gl_composite_set_clip (&setup, clip); for (i = 0; i < info->num_glyphs; i++) { cairo_scaled_glyph_t *scaled_glyph; @@ -277,19 +307,20 @@ render_glyphs (cairo_gl_surface_t *dst, last_format = scaled_glyph->surface->format; - status = _cairo_gl_composite_set_mask (&setup, - &cache->pattern.base, - 0, 0, 0, 0, 0, 0); - if (unlikely (status)) - goto FINISH; - - *has_component_alpha |= cache->pattern.base.has_component_alpha; + /* In msaa compositor, clear operator needs component alpha, + we need to reset to FALSE if previously clear operator + has set it to TRUE. */ + if (via_msaa_compositor) { + if (op == CAIRO_OPERATOR_CLEAR || is_argb32) + cache->surface->operand.texture.attributes.has_component_alpha = TRUE; + else + cache->surface->operand.texture.attributes.has_component_alpha = FALSE; + } + _cairo_gl_composite_set_mask_operand (&setup, &cache->surface->operand); + *has_component_alpha |= cache->surface->operand.texture.attributes.has_component_alpha; - /* XXX: _cairo_gl_composite_begin() acquires the context a - * second time. Need to refactor this loop so this doesn't happen. - */ + /* XXX Shoot me. */ status = _cairo_gl_composite_begin (&setup, &ctx); - status = _cairo_gl_context_release (ctx, status); if (unlikely (status)) goto FINISH; @@ -303,7 +334,7 @@ render_glyphs (cairo_gl_surface_t *dst, scaled_glyph->dev_private_key = cache; scaled_glyph->dev_private = cairo_container_of (priv, cairo_gl_glyph_t, - base);; + base); } else { status = _cairo_gl_glyph_cache_add_glyph (ctx, cache, scaled_glyph); @@ -322,8 +353,8 @@ render_glyphs (cairo_gl_surface_t *dst, x_offset = scaled_glyph->surface->base.device_transform.x0; y_offset = scaled_glyph->surface->base.device_transform.y0; - x1 = _cairo_lround (info->glyphs[i].x - x_offset); - y1 = _cairo_lround (info->glyphs[i].y - y_offset); + x1 = _cairo_lround (info->glyphs[i].x - x_offset - dst_x); + y1 = _cairo_lround (info->glyphs[i].y - y_offset - dst_y); x2 = x1 + scaled_glyph->surface->width; y2 = y1 + scaled_glyph->surface->height; @@ -335,6 +366,7 @@ render_glyphs (cairo_gl_surface_t *dst, } status = CAIRO_STATUS_SUCCESS; + FINISH: status = _cairo_gl_context_release (ctx, status); @@ -343,15 +375,19 @@ render_glyphs (cairo_gl_surface_t *dst, } static cairo_int_status_t -render_glyphs_via_mask (cairo_gl_surface_t *dst, - cairo_operator_t op, - const cairo_surface_t *source, - cairo_composite_glyphs_info_t *info) +render_glyphs_via_mask (cairo_gl_surface_t *dst, + int dst_x, int dst_y, + cairo_operator_t op, + cairo_surface_t *source, + cairo_composite_glyphs_info_t *info, + cairo_clip_t *clip, + cairo_bool_t via_msaa_compositor) { cairo_surface_t *mask; cairo_status_t status; cairo_bool_t has_component_alpha; - int i; + + TRACE ((stderr, "%s\n", __FUNCTION__)); /* XXX: For non-CA, this should be CAIRO_CONTENT_ALPHA to save memory */ mask = cairo_gl_surface_create (dst->base.device, @@ -361,34 +397,35 @@ render_glyphs_via_mask (cairo_gl_surface_t *dst, if (unlikely (mask->status)) return mask->status; - for (i = 0; i < info->num_glyphs; i++) { - info->glyphs[i].x -= info->extents.x; - info->glyphs[i].y -= info->extents.y; - } - - status = render_glyphs ((cairo_gl_surface_t *) mask, 0, 0, - CAIRO_OPERATOR_ADD, - &_cairo_pattern_white.base, - info, &has_component_alpha); + status = render_glyphs ((cairo_gl_surface_t *) mask, + info->extents.x, info->extents.y, + CAIRO_OPERATOR_ADD, NULL, + info, &has_component_alpha, NULL, + via_msaa_compositor); if (likely (status == CAIRO_STATUS_SUCCESS)) { - /* XXX composite */ -#if 0 cairo_surface_pattern_t mask_pattern; - mask->is_clear = FALSE; + cairo_surface_pattern_t source_pattern; + + mask->is_clear = FALSE; _cairo_pattern_init_for_surface (&mask_pattern, mask); mask_pattern.base.has_component_alpha = has_component_alpha; + mask_pattern.base.filter = CAIRO_FILTER_NEAREST; + mask_pattern.base.extend = CAIRO_EXTEND_NONE; + cairo_matrix_init_translate (&mask_pattern.base.matrix, - -info->extents.x, -info->extents.y); + dst_x-info->extents.x, dst_y-info->extents.y); + + _cairo_pattern_init_for_surface (&source_pattern, source); + cairo_matrix_init_translate (&source_pattern.base.matrix, + dst_x-info->extents.x, dst_y-info->extents.y); + status = _cairo_surface_mask (&dst->base, op, - source, &mask_pattern.base, - NULL); + &source_pattern.base, + &mask_pattern.base, + clip); + _cairo_pattern_fini (&mask_pattern.base); -#endif - } else { - for (i = 0; i < info->num_glyphs; i++) { - info->glyphs[i].x += info->extents.x; - info->glyphs[i].y += info->extents.y; - } + _cairo_pattern_fini (&source_pattern.base); } cairo_surface_destroy (mask); @@ -413,45 +450,60 @@ _cairo_gl_check_composite_glyphs (const cairo_composite_rectangles_t *extents, } cairo_int_status_t -_cairo_gl_composite_glyphs (void *_dst, - cairo_operator_t op, - cairo_surface_t *_src, - int src_x, - int src_y, - int dst_x, - int dst_y, - cairo_composite_glyphs_info_t *info) +_cairo_gl_composite_glyphs_with_clip (void *_dst, + cairo_operator_t op, + cairo_surface_t *_src, + int src_x, + int src_y, + int dst_x, + int dst_y, + cairo_composite_glyphs_info_t *info, + cairo_clip_t *clip, + cairo_bool_t via_msaa_compositor) { cairo_gl_surface_t *dst = _dst; cairo_bool_t has_component_alpha; int i; - /* If any of the glyphs are component alpha, we have to go through a mask, - * since only _cairo_gl_surface_composite() currently supports component - * alpha. + TRACE ((stderr, "%s\n", __FUNCTION__)); + + /* If any of the glyphs require component alpha, we have to go through + * a mask, since only _cairo_gl_surface_composite() currently supports + * component alpha. */ - if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER) { - for (i = 0; i < info->num_glyphs; i++) { - cairo_scaled_glyph_t *scaled_glyph; - - if (_cairo_scaled_glyph_lookup (info->font, info->glyphs[i].index, - CAIRO_SCALED_GLYPH_INFO_SURFACE, - &scaled_glyph) == CAIRO_INT_STATUS_SUCCESS && - scaled_glyph->surface->format == CAIRO_FORMAT_ARGB32) - { - info->use_mask = TRUE; - break; - } - } + if (!dst->base.is_clear && ! info->use_mask && op != CAIRO_OPERATOR_OVER && + (info->font->options.antialias == CAIRO_ANTIALIAS_SUBPIXEL || + info->font->options.antialias == CAIRO_ANTIALIAS_BEST)) + { + info->use_mask = TRUE; } if (info->use_mask) { - return render_glyphs_via_mask (dst, op, _src, info); + return render_glyphs_via_mask (dst, dst_x, dst_y, + op, _src, info, clip, + via_msaa_compositor); } else { return render_glyphs (dst, dst_x, dst_y, op, _src, info, - &has_component_alpha); - } + &has_component_alpha, + clip, + via_msaa_compositor); + } + +} + +cairo_int_status_t +_cairo_gl_composite_glyphs (void *_dst, + cairo_operator_t op, + cairo_surface_t *_src, + int src_x, + int src_y, + int dst_x, + int dst_y, + cairo_composite_glyphs_info_t *info) +{ + return _cairo_gl_composite_glyphs_with_clip (_dst, op, _src, src_x, src_y, + dst_x, dst_y, info, NULL, FALSE); } void @@ -461,7 +513,8 @@ _cairo_gl_glyph_cache_init (cairo_gl_glyph_cache_t *cache) GLYPH_CACHE_WIDTH, GLYPH_CACHE_HEIGHT, GLYPH_CACHE_MIN_SIZE, - sizeof (cairo_gl_glyph_t)); + sizeof (cairo_gl_glyph_t), + _cairo_gl_node_destroy); } void @@ -469,9 +522,5 @@ _cairo_gl_glyph_cache_fini (cairo_gl_context_t *ctx, cairo_gl_glyph_cache_t *cache) { _cairo_rtree_fini (&cache->rtree); - - if (cache->pattern.surface) { - _cairo_pattern_fini (&cache->pattern.base); - cache->pattern.surface = NULL; - } + cairo_surface_destroy (&cache->surface->base); } diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c index aad2773..ffb5468 100644 --- a/src/cairo-gl-gradient.c +++ b/src/cairo-gl-gradient.c @@ -124,9 +124,9 @@ _cairo_gl_gradient_render (const cairo_gl_context_t *ctx, pixman_stops[i].color.alpha = stops[i].color.alpha_short; } - p1.x = 0; + p1.x = _cairo_fixed_16_16_from_double (0.5); p1.y = 0; - p2.x = width << 16; + p2.x = _cairo_fixed_16_16_from_double (width - 0.5); p2.y = 0; gradient = pixman_image_create_linear_gradient (&p1, &p2, @@ -206,23 +206,23 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, cairo_gl_gradient_t *gradient; cairo_status_t status; int tex_width; + GLint internal_format; void *data; - cairo_gl_dispatch_t *dispatch = &ctx->dispatch; if ((unsigned int) ctx->max_texture_size / 2 <= n_stops) - return CAIRO_INT_STATUS_UNSUPPORTED; + return CAIRO_INT_STATUS_UNSUPPORTED; hash = _cairo_gl_gradient_hash (n_stops, stops); gradient = _cairo_gl_gradient_lookup (ctx, hash, n_stops, stops); if (gradient) { - *gradient_out = _cairo_gl_gradient_reference (gradient); - return CAIRO_STATUS_SUCCESS; + *gradient_out = _cairo_gl_gradient_reference (gradient); + return CAIRO_STATUS_SUCCESS; } gradient = malloc (sizeof (cairo_gl_gradient_t) + sizeof (cairo_gradient_stop_t) * (n_stops - 1)); if (gradient == NULL) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + return _cairo_error (CAIRO_STATUS_NO_MEMORY); tex_width = _cairo_gl_gradient_sample_width (n_stops, stops); @@ -238,38 +238,29 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, _cairo_gl_context_activate (ctx, CAIRO_GL_TEX_TEMP); glBindTexture (ctx->tex_target, gradient->tex); - /* GL_PIXEL_UNPACK_BUFFER is only available in Desktop GL */ - if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) { - dispatch->BindBuffer (GL_PIXEL_UNPACK_BUFFER, ctx->texture_load_pbo); - dispatch->BufferData (GL_PIXEL_UNPACK_BUFFER, - tex_width * sizeof (uint32_t), 0, GL_STREAM_DRAW); - data = dispatch->MapBuffer (GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY); - - status = _cairo_gl_gradient_render (ctx, n_stops, stops, data, tex_width); - - dispatch->UnmapBuffer (GL_PIXEL_UNPACK_BUFFER); - - if (unlikely (status)) { - dispatch->BindBuffer (GL_PIXEL_UNPACK_BUFFER, 0); - free (gradient); - return status; - } - - glTexImage2D (ctx->tex_target, 0, GL_RGBA8, tex_width, 1, 0, - GL_BGRA, GL_UNSIGNED_BYTE, 0); - - dispatch->BindBuffer (GL_PIXEL_UNPACK_BUFFER, 0); + data = _cairo_malloc_ab (tex_width, sizeof (uint32_t)); + if (unlikely (data == NULL)) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto cleanup_gradient; } - else { - data = _cairo_malloc_ab (tex_width, sizeof (uint32_t)); - status = _cairo_gl_gradient_render (ctx, n_stops, stops, data, tex_width); + status = _cairo_gl_gradient_render (ctx, n_stops, stops, data, tex_width); + if (unlikely (status)) + goto cleanup_data; - glTexImage2D (ctx->tex_target, 0, GL_BGRA, tex_width, 1, 0, - GL_BGRA, GL_UNSIGNED_BYTE, data); + /* + * In OpenGL ES 2.0 no format conversion is allowed i.e. 'internalFormat' + * must match 'format' in glTexImage2D. + */ + if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES) + internal_format = GL_BGRA; + else + internal_format = GL_RGBA; - free (data); - } + glTexImage2D (ctx->tex_target, 0, internal_format, tex_width, 1, 0, + GL_BGRA, GL_UNSIGNED_BYTE, data); + + free (data); /* we ignore errors here and just return an uncached gradient */ if (unlikely (_cairo_cache_insert (&ctx->gradients, &gradient->cache_entry))) @@ -277,6 +268,12 @@ _cairo_gl_gradient_create (cairo_gl_context_t *ctx, *gradient_out = gradient; return CAIRO_STATUS_SUCCESS; + +cleanup_data: + free (data); +cleanup_gradient: + free (gradient); + return status; } cairo_gl_gradient_t * diff --git a/src/cairo-gl-hairline-stroke.c b/src/cairo-gl-hairline-stroke.c new file mode 100644 index 0000000..47a0640 --- /dev/null +++ b/src/cairo-gl-hairline-stroke.c @@ -0,0 +1,429 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2012 Samsung Electronics + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Henry Song + */ + +#include "cairo-gl-private.h" +#include "cairo-slope-private.h" + +#define SCALE_TOLERANCE 0.0000001 +#define POINT_ADJUST 0.5 + +static inline cairo_bool_t +_add_cap (cairo_gl_hairline_closure_t *hairline, + double slope_dx, + double slope_dy, + cairo_bool_t lead_cap, + cairo_point_t *outp) +{ + double dx, dy; + if (lead_cap) { + if (hairline->cap_style == CAIRO_LINE_CAP_BUTT) + return FALSE; + + dx = slope_dx * POINT_ADJUST; + dy = slope_dy * POINT_ADJUST; + + cairo_matrix_transform_distance (hairline->ctm, &dx, &dy); + outp->x -= _cairo_fixed_from_double (dx); + outp->y -= _cairo_fixed_from_double (dy); + return TRUE; + } else { + if (hairline->cap_style == CAIRO_LINE_CAP_BUTT) + return FALSE; + + dx = slope_dx * POINT_ADJUST; + dy = slope_dy * POINT_ADJUST; + hairline->line_last_capped = TRUE; + cairo_matrix_transform_distance (hairline->ctm, &dx, &dy); + outp->x += _cairo_fixed_from_double (dx); + outp->y += _cairo_fixed_from_double (dy); + return TRUE; + } +} + +static inline cairo_bool_t +_compute_normalized_device_slope (double *dx, double *dy, + const cairo_matrix_t *ctm_inverse, + double *mag_out) +{ + double dx0 = *dx, dy0 = *dy; + double mag; + + cairo_matrix_transform_distance (ctm_inverse, &dx0, &dy0); + + if (dx0 == 0.0 && dy0 == 0.0) { + if (mag_out) + *mag_out = 0.0; + return FALSE; + } + + if (dx0 == 0.0) { + *dx = 0.0; + if (dy0 > 0.0) { + mag = dy0; + *dy = 1.0; + } else { + mag = -dy0; + *dy = -1.0; + } + } else if (dy0 == 0.0) { + *dy = 0.0; + if (dx0 > 0.0) { + mag = dx0; + *dx = 1.0; + } else { + mag = -dx0; + *dx = -1.0; + } + } else { + mag = hypot (dx0, dy0); + *dx = dx0 / mag; + *dy = dy0 / mag; + } + + if (mag_out) + *mag_out = mag; + + return TRUE; +} + +/* We implement hairline optimization for stroke. */ +cairo_bool_t +_cairo_gl_hairline_style_is_hairline (const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm) +{ + double x, y; + + cairo_status_t status = _cairo_matrix_compute_basis_scale_factors (ctm, &x, &y, TRUE); + + if (unlikely (status)) + return FALSE; + + x = fabs (x - 1.0); + y = fabs (y - 1.0); + + return style->line_width == 1.0 && + (style->line_join != CAIRO_LINE_JOIN_MITER || + style->miter_limit <= 10.0) && + (x <= SCALE_TOLERANCE && y <= SCALE_TOLERANCE); +} + + +static cairo_status_t +_path_add_first_and_last_cap (cairo_gl_hairline_closure_t *hairline) +{ + cairo_point_t p[2]; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + cairo_bool_t needs_to_cap; + + /* check last point */ + if (hairline->initialized) { + if (! hairline->line_last_capped) { + p[0] = hairline->line_last_point; + p[1] = hairline->line_last_point; + needs_to_cap = _add_cap (hairline, + hairline->line_last_dx, + hairline->line_last_dy, + FALSE, + &p[1]); + if (needs_to_cap) { + status = _cairo_gl_composite_emit_point_as_single_line (hairline->ctx, p); + if (unlikely(status)) + return status; + } + } + if (! hairline->stroke_first_capped) { + p[0] = hairline->stroke_first_point; + p[1] = hairline->stroke_first_point; + needs_to_cap = _add_cap (hairline, + hairline->stroke_first_dx, + hairline->stroke_first_dy, + TRUE, + &p[0]); + + if (needs_to_cap) { + status = _cairo_gl_composite_emit_point_as_single_line (hairline->ctx, p); + if (unlikely(status)) + return status; + } + } + } + + return CAIRO_STATUS_SUCCESS; +} + +cairo_status_t +_cairo_gl_hairline_move_to (void *closure, + const cairo_point_t *point) +{ + cairo_status_t status; + + cairo_gl_hairline_closure_t *hairline = (cairo_gl_hairline_closure_t *)closure; + + hairline->current_point = *point; + hairline->moved_to_stroke_first_point = FALSE; + + /* check last point */ + + if (hairline->initialized) { + status = _path_add_first_and_last_cap (hairline); + if (unlikely(status)) + return status; + } + + hairline->line_last_capped = TRUE; + hairline->stroke_first_capped = FALSE; + hairline->stroke_first_point = *point; + hairline->initialized = TRUE; + + if (hairline->dash.dashed) { + _cairo_stroker_dash_start (&hairline->dash); + } + + return CAIRO_STATUS_SUCCESS; +} + +cairo_status_t +_cairo_gl_hairline_line_to (void *closure, + const cairo_point_t *point) +{ + double slope_dx, slope_dy; + double mag; + cairo_gl_hairline_closure_t *hairline = (cairo_gl_hairline_closure_t *)closure; + cairo_point_t *p1 = &hairline->current_point; + cairo_slope_t dev_slope; + cairo_point_t p[2]; + + _cairo_slope_init (&dev_slope, p1, point); + slope_dx = _cairo_fixed_to_double (point->x - p1->x); + slope_dy = _cairo_fixed_to_double (point->y - p1->y); + + if (! _compute_normalized_device_slope (&slope_dx, &slope_dy, + hairline->ctm_inverse, &mag)) + return CAIRO_STATUS_SUCCESS; + + hairline->line_last_point = *point; + hairline->line_last_capped = FALSE; + hairline->line_last_dx = slope_dx; + hairline->line_last_dy = slope_dy; + + if (! hairline->moved_to_stroke_first_point) { + hairline->stroke_first_dx = slope_dx; + hairline->stroke_first_dy = slope_dy; + hairline->moved_to_stroke_first_point = TRUE; + } + + p[0] = hairline->current_point; + p[1] = *point; + hairline->current_point = *point; + + return _cairo_gl_composite_emit_point_as_single_line (hairline->ctx, p); +} + +cairo_status_t +_cairo_gl_hairline_line_to_dashed (void *closure, + const cairo_point_t *point) +{ + cairo_point_t p[2]; + double remain, mag, step_length = 0; + double slope_dx, slope_dy; + double dx, dy; + cairo_line_t segment; + cairo_gl_hairline_closure_t *hairline = (cairo_gl_hairline_closure_t *)closure; + cairo_point_t *p1 = &hairline->current_point; + cairo_slope_t dev_slope; + cairo_status_t status; + cairo_bool_t needs_to_cap; + + _cairo_slope_init (&dev_slope, p1, point); + slope_dx = _cairo_fixed_to_double (point->x - p1->x); + slope_dy = _cairo_fixed_to_double (point->y - p1->y); + + if (! _compute_normalized_device_slope (&slope_dx, &slope_dy, + hairline->ctm_inverse, &mag)) + return CAIRO_STATUS_SUCCESS; + + remain = mag; + segment.p1 = *p1; + while (remain) { + step_length = MIN (hairline->dash.dash_remain, remain); + remain -= step_length; + + dx = slope_dx * (mag - remain); + dy = slope_dy * (mag - remain); + cairo_matrix_transform_distance (hairline->ctm, &dx, &dy); + segment.p2.x = _cairo_fixed_from_double (dx) + p1->x; + segment.p2.y = _cairo_fixed_from_double (dy) + p1->y; + + + if (hairline->dash.dash_on) { + p[0] = segment.p1; + p[1] = segment.p2; + /* Check leading cap. */ + if (segment.p1.x == hairline->stroke_first_point.x && + segment.p1.y == hairline->stroke_first_point.y) { + /* We are at the first stroke point, and we have + been here, add a leading cap. */ + if (hairline->moved_to_stroke_first_point) { + if (hairline->dash.dashes[hairline->dash.dash_index] == hairline->dash.dash_remain) + needs_to_cap = _add_cap (hairline, + slope_dx, + slope_dy, + TRUE, &p[0]); + } + else { + /* We have not been in the first stroke point, + this is the first line_to call sinece move_to() + save the slope, we need use it later. */ + hairline->stroke_first_dx = slope_dx; + hairline->stroke_first_dy = slope_dy; + hairline->moved_to_stroke_first_point = TRUE; + } + } + else if (segment.p1.x == hairline->current_point.x && + segment.p1.y == hairline->current_point.y) { + /* Start of the line segment, if we have the entire + dash length, we are at the begining of a dash, + add a leading cap. */ + if (hairline->dash.dashes[hairline->dash.dash_index] == hairline->dash.dash_remain) + needs_to_cap = _add_cap (hairline, + slope_dx, slope_dy, + TRUE, &p[0]); + } + else + /* We are in the middle of the line segment, add + a leading cap. */ + needs_to_cap = _add_cap (hairline, + slope_dx, slope_dy, + TRUE, &p[0]); + + /* Add trailing cap. We have not exhausted line segment, + or we have exhausted current dash length, add a + trailing cap. */ + if (remain || + hairline->dash.dash_remain - step_length < CAIRO_FIXED_ERROR_DOUBLE) + needs_to_cap = _add_cap (hairline, + slope_dx, slope_dy, + FALSE, &p[1]); + else { + /* We indicate here that we have not added a trailing + cap yet. If next move is move_to, we will add a + trailing cap, otherwise, it will be ignored. */ + hairline->line_last_capped = FALSE; + hairline->line_last_point = segment.p2; + hairline->line_last_dx = slope_dx; + hairline->line_last_dy = slope_dy; + } + + status = _cairo_gl_composite_emit_point_as_single_line (hairline->ctx, p); + if (unlikely (status)) + return status; + } + + _cairo_stroker_dash_step (&hairline->dash, step_length); + segment.p1 = segment.p2; + } + + hairline->current_point = *point; + return CAIRO_STATUS_SUCCESS; +} + +cairo_status_t +_cairo_gl_hairline_curve_to (void *closure, + const cairo_point_t *p0, + const cairo_point_t *p1, + const cairo_point_t *p2) +{ + cairo_gl_hairline_closure_t *hairline = (cairo_gl_hairline_closure_t *)closure; + cairo_spline_t spline; + cairo_path_fixed_line_to_func_t *line_to; + + line_to = hairline->dash.dashed ? + _cairo_gl_hairline_line_to_dashed : + _cairo_gl_hairline_line_to; + + if (! _cairo_spline_init (&spline, + (cairo_spline_add_point_func_t)line_to, + closure, + &hairline->current_point, p0, p1, p2)) + return _cairo_gl_hairline_line_to (closure, p2); + + return _cairo_spline_decompose (&spline, hairline->tolerance); + +} + +cairo_status_t +_cairo_gl_hairline_close_path (void *closure) +{ + cairo_gl_hairline_closure_t *hairline = (cairo_gl_hairline_closure_t *)closure; + + hairline->line_last_capped = TRUE; + hairline->stroke_first_capped = TRUE; + + if (hairline->dash.dashed) + return _cairo_gl_hairline_line_to_dashed (closure, + &hairline->stroke_first_point); + return _cairo_gl_hairline_line_to (closure, &hairline->stroke_first_point); +} + +cairo_status_t +_cairo_gl_path_fixed_stroke_to_hairline (const cairo_path_fixed_t *path, + cairo_gl_hairline_closure_t *closure, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + cairo_path_fixed_move_to_func_t *move_to, + cairo_path_fixed_line_to_func_t *line_to, + cairo_path_fixed_curve_to_func_t *curve_to, + cairo_path_fixed_close_path_func_t *close_path) +{ + cairo_status_t status; + + _cairo_stroker_dash_init (&closure->dash, style); + closure->ctm = (cairo_matrix_t *)ctm; + closure->ctm_inverse = (cairo_matrix_t *)ctm_inverse; + closure->cap_style = style->line_cap; + closure->initialized = FALSE; + + status = _cairo_path_fixed_interpret (path, + move_to, + line_to, + curve_to, + close_path, + (void *) closure); + if (unlikely (status)) + return status; + + return _path_add_first_and_last_cap (closure); +} diff --git a/src/cairo-gl-msaa-compositor.c b/src/cairo-gl-msaa-compositor.c new file mode 100755 index 0000000..fc7bd56 --- /dev/null +++ b/src/cairo-gl-msaa-compositor.c @@ -0,0 +1,1089 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2002 University of Southern California + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2011 Intel Corporation + * Copyright © 2011 Samsung Electronics + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Henry Song + * Martin Robinson + */ + +#include "cairoint.h" + +#include "cairo-clip-inline.h" +#include "cairo-composite-rectangles-private.h" +#include "cairo-compositor-private.h" +#include "cairo-gl-private.h" +#include "cairo-traps-private.h" +#include "cairo-surface-subsurface-inline.h" + +static cairo_bool_t +should_fall_back (cairo_gl_surface_t *surface, + cairo_antialias_t antialias); + +struct _tristrip_composite_info { + cairo_gl_composite_t setup; + cairo_gl_context_t *ctx; +}; + +static cairo_int_status_t +_draw_trap (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_trapezoid_t *trap) +{ + cairo_point_t quad[4]; + + quad[0].x = _cairo_edge_compute_intersection_x_for_y (&trap->left.p1, + &trap->left.p2, + trap->top); + quad[0].y = trap->top; + + quad[1].x = _cairo_edge_compute_intersection_x_for_y (&trap->left.p1, + &trap->left.p2, + trap->bottom); + quad[1].y = trap->bottom; + + quad[2].x = _cairo_edge_compute_intersection_x_for_y (&trap->right.p1, + &trap->right.p2, + trap->bottom); + quad[2].y = trap->bottom; + + quad[3].x = _cairo_edge_compute_intersection_x_for_y (&trap->right.p1, + &trap->right.p2, + trap->top); + quad[3].y = trap->top; + return _cairo_gl_composite_emit_quad_as_tristrip (ctx, setup, quad); +} + +static cairo_int_status_t +_draw_traps (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_traps_t *traps) +{ + cairo_int_status_t status = CAIRO_STATUS_SUCCESS; + int i; + + for (i = 0; i < traps->num_traps; i++) { + cairo_trapezoid_t *trap = traps->traps + i; + if (unlikely ((status = _draw_trap (ctx, setup, trap)))) + return status; + } + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_draw_quad (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_box_t *box) +{ + cairo_point_t quad[4]; + + quad[0].x = box->p1.x; + quad[0].y = box->p1.y; + + quad[1].x = box->p1.x; + quad[1].y = box->p2.y; + + quad[2].x = box->p2.x; + quad[2].y = box->p2.y; + + quad[3].x = box->p2.x; + quad[3].y = box->p1.y; + + return _cairo_gl_composite_emit_quad_as_tristrip (ctx, setup, quad); +} + +static cairo_int_status_t +_draw_int_rect (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_rectangle_int_t *rect) +{ + cairo_box_t box; + + _cairo_box_from_rectangle (&box, rect); + + return _cairo_gl_msaa_compositor_draw_quad (ctx, setup, &box); +} + +static cairo_int_status_t +_draw_triangle_fan (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + const cairo_point_t *midpt, + const cairo_point_t *points, + int npoints) +{ + int i; + + /* Our strategy here is to not even try to build a triangle fan, but to + draw each triangle as if it was an unconnected member of a triangle strip. */ + for (i = 1; i < npoints; i++) { + cairo_int_status_t status; + cairo_point_t triangle[3]; + + triangle[0] = *midpt; + triangle[1] = points[i - 1]; + triangle[2] = points[i]; + + status = _cairo_gl_composite_emit_triangle_as_tristrip (ctx, setup, triangle); + if (unlikely (status)) + return status; + } + + return CAIRO_STATUS_SUCCESS; +} + +cairo_int_status_t +_cairo_gl_msaa_compositor_draw_clip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_clip_t *clip, + cairo_traps_t *traps) +{ + cairo_int_status_t status; + + cairo_polygon_t polygon; + cairo_antialias_t antialias; + cairo_fill_rule_t fill_rule; + + if (! clip) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (clip->num_boxes == 1 && ! clip->path) + return _cairo_gl_msaa_compositor_draw_quad (ctx, setup, + &clip->boxes[0]); + + if (traps->num_traps == 0) { + status = _cairo_clip_get_polygon (clip, &polygon, &fill_rule, + &antialias); + if (unlikely (status)) + return status; + + /* We ignore the antialias mode of the clip here, since the user requested + * unantialiased rendering of their path and we expect that this stencil + * based rendering of the clip to be a reasonable approximation to + * the intersection between that clip and the path. + * + * In other words, what the user expects when they try to perform + * a geometric intersection between an unantialiased polygon and an + * antialiased polygon is open to interpretation. And we choose the fast + * option. + */ + status = _cairo_bentley_ottmann_tessellate_polygon (traps, + &polygon, + fill_rule); + _cairo_polygon_fini (&polygon); + if (unlikely (status)) + return status; + } + + status = _draw_traps (ctx, setup, traps); + + return status; +} + +static cairo_bool_t +_should_use_unbounded_surface (cairo_composite_rectangles_t *composite) +{ + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_rectangle_int_t *source = &composite->source; + + if (composite->is_bounded) + return FALSE; + + /* This isn't just an optimization. It also detects when painting is used + to paint back the unbounded surface, preventing infinite recursion. */ + return ! (source->x <= 0 && source->y <= 0 && + source->height + source->y >= dst->height && + source->width + source->x >= dst->width); +} + +static cairo_surface_t* +_prepare_unbounded_surface (cairo_gl_surface_t *dst) +{ + + cairo_surface_t* surface = cairo_gl_surface_create (dst->base.device, + dst->base.content, + dst->width, + dst->height); + if (surface == NULL) + return NULL; + if (unlikely (surface->status)) { + cairo_surface_destroy (surface); + return NULL; + } + return surface; +} + +static cairo_int_status_t +_paint_back_unbounded_surface (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + cairo_surface_t *surface) +{ + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_int_status_t status; + + cairo_pattern_t *pattern = cairo_pattern_create_for_surface (surface); + if (unlikely (pattern->status)) { + status = pattern->status; + goto finish; + } + + status = _cairo_compositor_paint (compositor, &dst->base, + composite->op, pattern, + composite->clip); + +finish: + cairo_pattern_destroy (pattern); + cairo_surface_destroy (surface); + return status; +} + +static void +_cairo_gl_msaa_compositor_set_clip (cairo_composite_rectangles_t *composite, + cairo_gl_composite_t *setup) +{ + uint32_t is_bounded; + + if (_cairo_clip_is_all_clipped (composite->clip)) + return; + + /* We don't need to check CAIRO_OPERATOR_BOUND_BY_MASK in these + situations. */ + is_bounded = composite->is_bounded; + composite->is_bounded = CAIRO_OPERATOR_BOUND_BY_SOURCE; + if (_cairo_composite_rectangles_can_reduce_clip (composite, composite->clip)) + return; + + _cairo_gl_composite_set_clip (setup, composite->clip); + + composite->is_bounded = is_bounded; +} + +static void +_gl_pattern_fix_reference_count (const cairo_pattern_t *pattern) +{ + cairo_pattern_type_t pattern_type = cairo_pattern_get_type ((cairo_pattern_t *)pattern); + + /* We need to increase reference count on surface and gradient if + the original_source_pattern is a cairo_gl_source_t type. */ + if (pattern_type == CAIRO_PATTERN_TYPE_SURFACE) { + + cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *)pattern; + cairo_surface_t *pattern_surface = surface_pattern->surface; + + if (cairo_surface_get_type (pattern_surface) == CAIRO_SURFACE_TYPE_GL && + ! pattern_surface->device && + ! _cairo_surface_is_subsurface (pattern_surface)) { + + cairo_gl_source_t *_source = (cairo_gl_source_t *)pattern_surface; + + switch (_source->operand.type) { + case CAIRO_GL_OPERAND_TEXTURE: + cairo_surface_reference (&(_source->operand.texture.owns_surface)->base); + break; + case CAIRO_GL_OPERAND_LINEAR_GRADIENT: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: + case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: + _cairo_gl_gradient_reference (_source->operand.gradient.gradient); + break; + default: + case CAIRO_GL_OPERAND_NONE: + case CAIRO_GL_OPERAND_CONSTANT: + case CAIRO_GL_OPERAND_COUNT: + break; + } + } + } +} + +/* We use two passes to paint with SOURCE operator */ +/* The first pass, we use mask as source, to get dst1 = (1 - ma) * dst) with + * DEST_OUT operator. In the second pass, we use ADD operator to achieve + * result = (src * ma) + dst1. Combining two passes, we have + * result = (src * ma) + (1 - ma) * dst + */ +static cairo_int_status_t +_cairo_gl_msaa_compositor_mask_source_operator (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite) +{ + cairo_gl_composite_t setup; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_gl_context_t *ctx = NULL; + cairo_int_status_t status; + cairo_traps_t traps; + + _cairo_traps_init (&traps); + + status = _cairo_gl_composite_init (&setup, + CAIRO_OPERATOR_DEST_OUT, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) + goto finish; + + _gl_pattern_fix_reference_count (composite->original_mask_pattern); + + status = _cairo_gl_composite_set_source (&setup, + &composite->mask_pattern.base, + &composite->mask_sample_area, + &composite->bounded, + FALSE); + if (unlikely (status)) + goto finish; + + status = _cairo_gl_composite_begin_multisample (&setup, &ctx, TRUE); + if (unlikely (status)) + goto finish; + + if (! composite->clip) + status = _draw_int_rect (ctx, &setup, &composite->bounded); + else + status = _cairo_gl_msaa_compositor_draw_clip (ctx, &setup, composite->clip, &traps); + + _cairo_gl_composite_fini (&setup); + status = _cairo_gl_context_release (ctx, status); + ctx = NULL; + if (unlikely (status)) + return status; + + /* second pass */ + status = _cairo_gl_composite_init (&setup, + CAIRO_OPERATOR_ADD, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) + goto finish; + + _gl_pattern_fix_reference_count (composite->original_source_pattern); + + status = _cairo_gl_composite_set_source (&setup, + &composite->source_pattern.base, + &composite->source_sample_area, + &composite->bounded, + FALSE); + if (unlikely (status)) + goto finish; + + status = _cairo_gl_composite_set_mask (&setup, + &composite->mask_pattern.base, + &composite->source_sample_area, + &composite->bounded); + if (unlikely (status)) + goto finish; + + /* We always use multisampling here, because we do not yet have the smarts + to calculate when the clip or the source requires it. */ + status = _cairo_gl_composite_begin_multisample (&setup, &ctx, TRUE); + if (unlikely (status)) + goto finish; + + if (! composite->clip) + status = _draw_int_rect (ctx, &setup, &composite->bounded); + else + status = _cairo_gl_msaa_compositor_draw_clip (ctx, &setup, composite->clip, &traps); + +finish: + _cairo_traps_fini (&traps); + _cairo_gl_composite_fini (&setup); + + if (ctx) + status = _cairo_gl_context_release (ctx, status); + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_mask (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite) +{ + cairo_gl_composite_t setup; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_gl_context_t *ctx = NULL; + cairo_int_status_t status; + cairo_operator_t op = composite->op; + cairo_traps_t traps; + cairo_bool_t use_color_attribute = FALSE; + + if (should_fall_back (dst, CAIRO_ANTIALIAS_GOOD)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* GL compositing operators cannot properly represent a mask operation + using the SOURCE compositing operator in one pass. This only matters if + there actually is a mask (there isn't in a paint operation) and if the + mask isn't totally opaque. */ + if (op == CAIRO_OPERATOR_SOURCE && + composite->original_mask_pattern != NULL && + ! _cairo_pattern_is_opaque (&composite->mask_pattern.base, + &composite->mask_sample_area)) { + + /* If the source is opaque the operation reduces to OVER. */ + if (_cairo_pattern_is_opaque (&composite->source_pattern.base, + &composite->source_sample_area)) + op = CAIRO_OPERATOR_OVER; + else + return _cairo_gl_msaa_compositor_mask_source_operator (compositor, composite); + } + + if (_should_use_unbounded_surface (composite)) { + cairo_surface_t* surface = _prepare_unbounded_surface (dst); + + if (unlikely (surface == NULL)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* This may be a paint operation. */ + if (composite->original_mask_pattern == NULL) { + status = _cairo_compositor_paint (compositor, surface, + CAIRO_OPERATOR_SOURCE, + &composite->source_pattern.base, + NULL); + } else { + status = _cairo_compositor_mask (compositor, surface, + CAIRO_OPERATOR_SOURCE, + &composite->source_pattern.base, + &composite->mask_pattern.base, + NULL); + } + + if (unlikely (status)) { + cairo_surface_destroy (surface); + return status; + } + + return _paint_back_unbounded_surface (compositor, composite, surface); + } + + status = _cairo_gl_composite_init (&setup, + op, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) + goto finish; + + _gl_pattern_fix_reference_count (composite->original_source_pattern); + + if (! composite->clip || + (composite->clip->num_boxes == 1 && ! composite->clip->path)) + use_color_attribute = TRUE; + + status = _cairo_gl_composite_set_source (&setup, + composite->original_source_pattern, + &composite->source_sample_area, + &composite->bounded, + use_color_attribute); + if (unlikely (status)) + goto finish; + + if (composite->original_mask_pattern != NULL) { + status = _cairo_gl_composite_set_mask (&setup, + composite->original_mask_pattern, + &composite->mask_sample_area, + &composite->bounded); + } + if (unlikely (status)) + goto finish; + + /* We always use multisampling here, because we do not yet have the smarts + to calculate when the clip or the source requires it. */ + status = _cairo_gl_composite_begin_multisample (&setup, &ctx, TRUE); + if (unlikely (status)) + goto finish; + + _cairo_traps_init (&traps); + + if (! composite->clip) + status = _draw_int_rect (ctx, &setup, &composite->bounded); + else + status = _cairo_gl_msaa_compositor_draw_clip (ctx, &setup, composite->clip, &traps); + + _cairo_traps_fini (&traps); + +finish: + _cairo_gl_composite_fini (&setup); + + if (ctx) + status = _cairo_gl_context_release (ctx, status); + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_paint (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite) +{ + return _cairo_gl_msaa_compositor_mask (compositor, composite); +} + +static cairo_status_t +_stroke_shaper_add_triangle (void *closure, + const cairo_point_t triangle[3]) +{ + struct _tristrip_composite_info *info = closure; + return _cairo_gl_composite_emit_triangle_as_tristrip (info->ctx, + &info->setup, + triangle); +} + +static cairo_status_t +_stroke_shaper_add_triangle_fan (void *closure, + const cairo_point_t *midpoint, + const cairo_point_t *points, + int npoints) +{ + struct _tristrip_composite_info *info = closure; + return _draw_triangle_fan (info->ctx, &info->setup, + midpoint, points, npoints); +} + +static cairo_status_t +_stroke_shaper_add_quad (void *closure, + const cairo_point_t quad[4]) +{ + struct _tristrip_composite_info *info = closure; + return _cairo_gl_composite_emit_quad_as_tristrip (info->ctx, &info->setup, + quad); +} + +static cairo_int_status_t +_prevent_overlapping_drawing (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm) +{ + cairo_rectangle_int_t stroke_extents; + const cairo_pattern_t *pattern = composite->original_source_pattern; + cairo_pattern_type_t type = cairo_pattern_get_type ((cairo_pattern_t *) pattern); + + if (! _cairo_gl_ensure_stencil (ctx, setup->dst)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* XXX: improve me - since we have lazy init, we cannot use sample + area */ + if (type == CAIRO_PATTERN_TYPE_SOLID && + _cairo_pattern_is_opaque_solid (pattern)) + return CAIRO_INT_STATUS_SUCCESS; + + if (glIsEnabled (GL_STENCIL_TEST) == FALSE) { + /* In case we have pending operations we have to flush before + adding the stencil buffer. */ + _cairo_gl_composite_flush (ctx); + + /* Enable the stencil buffer, even if we are not using it for clipping, + so we can use it below to prevent overlapping shapes. We initialize + it all to one here which represents infinite clip. */ + glDepthMask (GL_TRUE); + glEnable (GL_STENCIL_TEST); + + /* If we don't have clip, then we will setup clip extents based on + approximate stroke extent. */ + if (! setup->clip) { + _cairo_path_fixed_approximate_stroke_extents (path, style, ctm, + &stroke_extents); + _cairo_gl_scissor_to_extents (setup->dst, &stroke_extents); + } + + glClearStencil (1); + glClear (GL_STENCIL_BUFFER_BIT); + glStencilFunc (GL_EQUAL, 1, 1); + } + + /* This means that once we draw to a particular pixel nothing else can + be drawn there until the stencil buffer is reset or the stencil test + is disabled. */ + glStencilOp (GL_ZERO, GL_ZERO, GL_ZERO); + + /* we need to clean up clip cache */ + _cairo_clip_destroy (ctx->clip); + ctx->clip = NULL; + + return CAIRO_INT_STATUS_SUCCESS; +} + +static void +query_surface_capabilities (cairo_gl_surface_t *surface) +{ + GLint samples, stencil_bits; + cairo_gl_context_t *ctx; + cairo_int_status_t status; + + /* Texture surfaces are create in such a way that they always + have stencil and multisample bits if possible, so we don't + need to query their capabilities lazily. */ + if (_cairo_gl_surface_is_texture (surface)) + return; + if (surface->stencil_and_msaa_caps_initialized) + return; + + surface->stencil_and_msaa_caps_initialized = TRUE; + surface->supports_stencil = FALSE; + surface->supports_msaa = FALSE; + + status = _cairo_gl_context_acquire (surface->base.device, &ctx); + if (unlikely (status)) + return; + + _cairo_gl_context_set_destination (ctx, surface, FALSE); + + glGetIntegerv(GL_SAMPLES, &samples); + glGetIntegerv(GL_STENCIL_BITS, &stencil_bits); + surface->supports_stencil = stencil_bits > 0; + surface->supports_msaa = samples > 1; + + status = _cairo_gl_context_release (ctx, status); +} + +static cairo_bool_t +should_fall_back (cairo_gl_surface_t *surface, + cairo_antialias_t antialias) +{ + query_surface_capabilities (surface); + if (! surface->supports_stencil) + return TRUE; + + /* Multisampling OpenGL ES surfaces only maintain one multisampling + framebuffer and thus must use the spans compositor to do non + AA rendering */ + if (((cairo_gl_context_t *) surface->base.device)->gl_flavor == CAIRO_GL_FLAVOR_ES + && surface->supports_msaa + && antialias == CAIRO_ANTIALIAS_NONE) + return TRUE; + + if (antialias == CAIRO_ANTIALIAS_FAST) + return TRUE; + if (antialias == CAIRO_ANTIALIAS_NONE) + return FALSE; + return ! surface->supports_msaa; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_stroke (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + struct _tristrip_composite_info info; + cairo_bool_t use_color_attribute; + + if (should_fall_back (dst, antialias)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (composite->is_bounded == FALSE) { + cairo_surface_t* surface = _prepare_unbounded_surface (dst); + + if (unlikely (surface == NULL)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_compositor_stroke (compositor, surface, + CAIRO_OPERATOR_SOURCE, + &composite->source_pattern.base, + path, style, ctm, ctm_inverse, + tolerance, antialias, NULL); + if (unlikely (status)) { + cairo_surface_destroy (surface); + return status; + } + + return _paint_back_unbounded_surface (compositor, composite, surface); + } + + status = _cairo_gl_composite_init (&info.setup, + composite->op, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) + return status; + + info.ctx = NULL; + use_color_attribute = _cairo_path_fixed_stroke_is_rectilinear (path) || + _cairo_gl_hairline_style_is_hairline (style, ctm); + + status = _cairo_gl_composite_set_source (&info.setup, + composite->original_source_pattern, + &composite->source_sample_area, + &composite->bounded, + use_color_attribute); + if (unlikely (status)) + goto finish; + + _cairo_gl_msaa_compositor_set_clip (composite, &info.setup); + + status = _cairo_gl_composite_begin_multisample (&info.setup, &info.ctx, + antialias != CAIRO_ANTIALIAS_NONE); + if (unlikely (status)) + goto finish; + + if (_cairo_gl_hairline_style_is_hairline (style, ctm)) { + cairo_gl_hairline_closure_t closure; + + status = _prevent_overlapping_drawing (info.ctx, &info.setup, + composite, path, style, ctm); + if (unlikely (status)) + goto finish; + + closure.ctx = info.ctx; + + closure.tolerance = tolerance; + + status = _cairo_gl_path_fixed_stroke_to_hairline (path, &closure, + style, ctm, + ctm_inverse, + _cairo_gl_hairline_move_to, + style->dash ? + _cairo_gl_hairline_line_to_dashed : + _cairo_gl_hairline_line_to, + _cairo_gl_hairline_curve_to, + _cairo_gl_hairline_close_path); + goto finish; + } + + if (use_color_attribute || path->has_curve_to) { + cairo_traps_t traps; + + _cairo_traps_init (&traps); + + status = _cairo_path_fixed_stroke_to_traps (path, style, + ctm, ctm_inverse, + tolerance, &traps); + if (unlikely (status)) { + _cairo_traps_fini (&traps); + goto finish; + } + + status = _draw_traps (info.ctx, &info.setup, &traps); + _cairo_traps_fini (&traps); + } else { + status = _prevent_overlapping_drawing (info.ctx, &info.setup, + composite, path, style, ctm); + if (unlikely (status)) + goto finish; + + status = + _cairo_path_fixed_stroke_to_shaper ((cairo_path_fixed_t *) path, + style, + ctm, + ctm_inverse, + tolerance, + _stroke_shaper_add_triangle, + _stroke_shaper_add_triangle_fan, + _stroke_shaper_add_quad, + &info); + if (unlikely (status)) + goto finish; + } +finish: + _cairo_gl_composite_fini (&info.setup); + + if (info.ctx) + status = _cairo_gl_context_release (info.ctx, status); + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_fill_rectilinear (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + cairo_clip_t *clip) +{ + cairo_gl_composite_t setup; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_gl_context_t *ctx = NULL; + cairo_int_status_t status; + int i; + + status = _cairo_gl_composite_init (&setup, + composite->op, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) + goto cleanup_setup; + + status = _cairo_gl_composite_set_source (&setup, + composite->original_source_pattern, + &composite->source_sample_area, + &composite->bounded, + TRUE); + if (unlikely (status)) + goto cleanup_setup; + + status = _cairo_gl_composite_begin_multisample (&setup, &ctx, + antialias != CAIRO_ANTIALIAS_NONE); + if (unlikely (status)) + goto cleanup_setup; + + for (i = 0; i < clip->num_boxes; i++) { + status = _cairo_gl_msaa_compositor_draw_quad (ctx, &setup, + &clip->boxes[i]); + if (unlikely (status)) + goto cleanup_setup; + } + +cleanup_setup: + _cairo_gl_composite_fini (&setup); + + if (ctx) + status = _cairo_gl_context_release (ctx, status); + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_fill (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_gl_composite_t setup; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + cairo_gl_context_t *ctx = NULL; + cairo_int_status_t status = CAIRO_INT_STATUS_SUCCESS; + cairo_traps_t traps; + cairo_bool_t use_color_attr = FALSE; + + if (should_fall_back (dst, antialias)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (composite->is_bounded == FALSE) { + cairo_surface_t* surface = _prepare_unbounded_surface (dst); + + if (unlikely (surface == NULL)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + + status = _cairo_compositor_fill (compositor, surface, + CAIRO_OPERATOR_SOURCE, + &composite->source_pattern.base, + path, fill_rule, tolerance, + antialias, NULL); + + if (unlikely (status)) { + cairo_surface_destroy (surface); + return status; + } + + return _paint_back_unbounded_surface (compositor, composite, surface); + } + + if (_cairo_path_fixed_fill_is_rectilinear (path) && + composite->clip != NULL && + composite->clip->num_boxes == 1 && + composite->clip->path == NULL) { + cairo_clip_t *clip = _cairo_clip_copy (composite->clip); + clip = _cairo_clip_intersect_rectilinear_path (clip, + path, + fill_rule, + antialias); + if (clip->num_boxes) + status = _cairo_gl_msaa_compositor_fill_rectilinear (compositor, + composite, + path, + fill_rule, + tolerance, + antialias, + clip); + _cairo_clip_destroy (clip); + + return status; + } + + status = _cairo_gl_composite_init (&setup, + composite->op, + dst, + FALSE /* assume_component_alpha */); + if (unlikely (status)) { + _cairo_gl_composite_fini (&setup); + return status; + } + + _cairo_traps_init (&traps); + + if (_cairo_path_fixed_fill_is_rectilinear (path)) { + status = _cairo_path_fixed_fill_rectilinear_to_traps (path, + fill_rule, + antialias, + &traps); + use_color_attr = TRUE; + } else + status = _cairo_path_fixed_fill_to_traps (path, fill_rule, + tolerance, &traps); + if (unlikely (status)) + goto cleanup_traps; + + status = _cairo_gl_composite_set_source (&setup, + composite->original_source_pattern, + &composite->source_sample_area, + &composite->bounded, + use_color_attr); + if (unlikely (status)) + goto cleanup_setup; + + _cairo_gl_msaa_compositor_set_clip (composite, &setup); + + status = _cairo_gl_composite_begin_multisample (&setup, &ctx, + antialias != CAIRO_ANTIALIAS_NONE); + if (unlikely (status)) + goto cleanup_setup; + + status = _draw_traps (ctx, &setup, &traps); + if (unlikely (status)) + goto cleanup_setup; + +cleanup_setup: + _cairo_gl_composite_fini (&setup); + + if (ctx) + status = _cairo_gl_context_release (ctx, status); + +cleanup_traps: + _cairo_traps_fini (&traps); + + return status; +} + +static cairo_int_status_t +_cairo_gl_msaa_compositor_glyphs (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + cairo_scaled_font_t *scaled_font, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_bool_t overlap) +{ + cairo_int_status_t status; + cairo_surface_t *src = NULL; + int src_x, src_y; + cairo_composite_glyphs_info_t info; + + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) composite->surface; + + query_surface_capabilities (dst); + if (! dst->supports_stencil) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (composite->is_bounded == FALSE) { + cairo_surface_t* surface = _prepare_unbounded_surface (dst); + + if (unlikely (surface == NULL)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_compositor_glyphs (compositor, surface, + CAIRO_OPERATOR_SOURCE, + &composite->source_pattern.base, + glyphs, num_glyphs, + scaled_font, composite->clip); + + if (unlikely (status)) { + cairo_surface_destroy (surface); + return status; + } + + return _paint_back_unbounded_surface (compositor, composite, surface); + } + + src = _cairo_gl_pattern_to_source (&dst->base, + composite->original_source_pattern, + FALSE, + &composite->bounded, + &composite->source_sample_area, + &src_x, &src_y); + if (unlikely (src->status)) { + status = src->status; + goto finish; + } + + status = _cairo_gl_check_composite_glyphs (composite, + scaled_font, glyphs, + &num_glyphs); + if (unlikely (status != CAIRO_INT_STATUS_SUCCESS)) + goto finish; + + info.font = scaled_font; + info.glyphs = glyphs; + info.num_glyphs = num_glyphs; + info.use_mask = overlap || ! composite->is_bounded || + composite->op == CAIRO_OPERATOR_SOURCE; + info.extents = composite->bounded; + + _cairo_scaled_font_freeze_cache (scaled_font); + status = _cairo_gl_composite_glyphs_with_clip (dst, composite->op, + src, src_x, src_y, + 0, 0, &info, + composite->clip, + TRUE); + + _cairo_scaled_font_thaw_cache (scaled_font); + +finish: + if (src) + cairo_surface_destroy (src); + + return status; +} + +static void +_cairo_gl_msaa_compositor_init (cairo_compositor_t *compositor, + const cairo_compositor_t *delegate) +{ + compositor->delegate = delegate; + compositor->lazy_init = TRUE; + + compositor->paint = _cairo_gl_msaa_compositor_paint; + compositor->mask = _cairo_gl_msaa_compositor_mask; + compositor->fill = _cairo_gl_msaa_compositor_fill; + compositor->stroke = _cairo_gl_msaa_compositor_stroke; + compositor->glyphs = _cairo_gl_msaa_compositor_glyphs; +} + +const cairo_compositor_t * +_cairo_gl_msaa_compositor_get (void) +{ + static cairo_compositor_t compositor; + if (compositor.delegate == NULL) + _cairo_gl_msaa_compositor_init (&compositor, + _cairo_gl_span_compositor_get ()); + + return &compositor; +} diff --git a/src/cairo-gl-operand.c b/src/cairo-gl-operand.c index a7e187e..3298601 100644 --- a/src/cairo-gl-operand.c +++ b/src/cairo-gl-operand.c @@ -50,7 +50,9 @@ #include "cairo-image-surface-private.h" #include "cairo-surface-backend-private.h" #include "cairo-surface-offset-private.h" -#include "cairo-surface-subsurface-private.h" +#include "cairo-surface-snapshot-inline.h" +#include "cairo-surface-subsurface-inline.h" +#include "cairo-rtree-private.h" static cairo_int_status_t _cairo_gl_create_gradient_texture (cairo_gl_surface_t *dst, @@ -69,62 +71,485 @@ _cairo_gl_create_gradient_texture (cairo_gl_surface_t *dst, return _cairo_gl_context_release (ctx, status); } +static cairo_int_status_t +_resolve_multisampling (cairo_gl_surface_t *surface) +{ + cairo_gl_context_t *ctx; + cairo_int_status_t status; + + if (! surface->msaa_active) + return CAIRO_INT_STATUS_SUCCESS; + + if (surface->base.device == NULL) + return CAIRO_INT_STATUS_SUCCESS; + + /* GLES surfaces do not need explicit resolution. */ + if (((cairo_gl_context_t *) surface->base.device)->gl_flavor == CAIRO_GL_FLAVOR_ES) + return CAIRO_INT_STATUS_SUCCESS; + + if (! _cairo_gl_surface_is_texture (surface)) + return CAIRO_INT_STATUS_SUCCESS; + + status = _cairo_gl_context_acquire (surface->base.device, &ctx); + if (unlikely (status)) + return status; + + ctx->current_target = surface; + +#if CAIRO_HAS_GL_SURFACE + _cairo_gl_activate_surface_as_nonmultisampling (ctx, surface); +#endif + + status = _cairo_gl_context_release (ctx, status); + return status; +} + +static inline void +_cairo_gl_image_cache_lock (cairo_gl_context_t *ctx, + cairo_gl_image_t *image_node) +{ + _cairo_rtree_pin (&ctx->image_cache.rtree, &image_node->node); +} + +void +_cairo_gl_image_cache_unlock (cairo_gl_context_t *ctx) +{ + if (ctx->image_cache.surface) + _cairo_rtree_unpin (&(ctx->image_cache.rtree)); +} + +static cairo_int_status_t +_cairo_gl_copy_texture (cairo_gl_surface_t *dst, + cairo_gl_surface_t *image, + int x, int y, + int width, int height, + cairo_bool_t replace, + cairo_gl_context_t **ctx) +{ + cairo_int_status_t status; + cairo_gl_context_t *ctx_out; + cairo_gl_dispatch_t *dispatch; + cairo_gl_surface_t *cache_surface; + cairo_gl_surface_t *target; + + if (! _cairo_gl_surface_is_texture (image)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_gl_context_acquire (dst->base.device, &ctx_out); + if(unlikely (status)) + return status; + + if (! ctx_out->image_cache.surface) { + status = _cairo_gl_image_cache_init (ctx_out); + if (unlikely (status)) + return status; + } + + if (replace) + _cairo_gl_composite_flush (ctx_out); + + /* Bind framebuffer of source image. */ + dispatch = &ctx_out->dispatch; + cache_surface = ctx_out->image_cache.surface; + target = ctx_out->current_target; + + _cairo_gl_ensure_framebuffer (ctx_out, image); + dispatch->BindFramebuffer (GL_FRAMEBUFFER, image->fb); + glBindTexture (ctx_out->tex_target, cache_surface->tex); + + glCopyTexSubImage2D (ctx_out->tex_target, 0, x, y, 0, 0, width, height); + dispatch->BindFramebuffer (GL_FRAMEBUFFER, target->fb); + ctx_out->current_target = target; + *ctx = ctx_out; + + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_gl_image_cache_replace_image (cairo_gl_image_t *image_node, + cairo_gl_surface_t *dst, + cairo_gl_surface_t *image, + cairo_gl_context_t **ctx) +{ + cairo_int_status_t status; + /* Paint image to cache. */ + status = _cairo_gl_copy_texture (dst, image, image_node->node.x, + image_node->node.y, + image->width, image->height, + TRUE, + ctx); + image->content_changed = FALSE; + return status; +} + +static cairo_int_status_t +_cairo_gl_image_cache_add_image (cairo_gl_context_t *ctx, + cairo_gl_surface_t *dst, + cairo_gl_surface_t *image, + cairo_gl_image_t **image_node) +{ + cairo_int_status_t status; + cairo_rtree_node_t *node = NULL; + int width, height; + cairo_bool_t replaced = FALSE; + + if (! image->base.device || + (image->width > IMAGE_CACHE_MAX_SIZE || + image->height > IMAGE_CACHE_MAX_SIZE)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + width = image->width; + height = image->height; + + *image_node = + (cairo_gl_image_t *) cairo_surface_get_user_data (&image->base, + (const cairo_user_data_key_t *) (&image->base)); + if (*image_node) { + if (image->content_changed) { + status = _cairo_gl_image_cache_replace_image (*image_node, + dst, image, &ctx); + + if (unlikely (status)) + return status; + + replaced = TRUE; + } + + _cairo_gl_image_cache_lock (ctx, *image_node); + + image->content_changed = FALSE; + if (replaced) + return _cairo_gl_context_release (ctx, status); + return CAIRO_INT_STATUS_SUCCESS; + } + + status = _cairo_rtree_insert (&ctx->image_cache.rtree, width, + height, &node); + /* Search for an unlocked slot. */ + if (status == CAIRO_INT_STATUS_UNSUPPORTED) { + _cairo_gl_composite_flush (ctx); + _cairo_gl_image_cache_unlock (ctx); + + status = _cairo_rtree_evict_random (&ctx->image_cache.rtree, + width, height, &node); + + if (status == CAIRO_INT_STATUS_SUCCESS) + status = _cairo_rtree_node_insert (&ctx->image_cache.rtree, + node, width, height, &node); + } + + if (status) + return status; + + /* Paint image to cache. */ + status = _cairo_gl_copy_texture (dst, image, node->x, node->y, + image->width, image->height, + FALSE, &ctx); + if (unlikely (status)) + return status; + + *image_node = (cairo_gl_image_t *)node; + (*image_node)->ctx = ctx; + (*image_node)->original_surface = &image->base; + /* Coordinate. */ + (*image_node)->p1.x = node->x; + (*image_node)->p1.y = node->y; + (*image_node)->p2.x = node->x + image->width; + (*image_node)->p2.y = node->y + image->height; + if (! _cairo_gl_device_requires_power_of_two_textures (&ctx->base)) { + (*image_node)->p1.x /= IMAGE_CACHE_WIDTH; + (*image_node)->p2.x /= IMAGE_CACHE_WIDTH; + (*image_node)->p1.y /= IMAGE_CACHE_HEIGHT; + (*image_node)->p2.y /= IMAGE_CACHE_HEIGHT; + } + image->content_changed = FALSE; + /* Set user data. */ + status = cairo_surface_set_user_data (&image->base, + (const cairo_user_data_key_t *) &image->base, + (void *) *image_node, + _cairo_gl_image_node_fini); + + _cairo_gl_image_cache_lock (ctx, *image_node); + return _cairo_gl_context_release (ctx, status); +} + static cairo_status_t -_cairo_gl_surface_operand_init (cairo_gl_operand_t *operand, - const cairo_pattern_t *_src, - cairo_gl_surface_t *dst, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height) +_cairo_gl_subsurface_clone_operand_init (cairo_gl_operand_t *operand, + const cairo_pattern_t *_src, + cairo_gl_surface_t *dst, + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents) { const cairo_surface_pattern_t *src = (cairo_surface_pattern_t *)_src; + cairo_surface_pattern_t local_pattern; + cairo_surface_subsurface_t *sub; cairo_gl_surface_t *surface; + cairo_gl_context_t *ctx; cairo_surface_attributes_t *attributes; - cairo_matrix_t m; + cairo_status_t status; - surface = (cairo_gl_surface_t *) src->surface; - if (surface->base.type != CAIRO_SURFACE_TYPE_GL) - return CAIRO_INT_STATUS_UNSUPPORTED; - if (surface->base.backend->type != CAIRO_SURFACE_TYPE_GL) { - if (_cairo_surface_is_subsurface (&surface->base)) { - surface = (cairo_gl_surface_t *) - _cairo_surface_subsurface_get_target_with_offset (&surface->base, &src_x, &src_y); + sub = (cairo_surface_subsurface_t *) src->surface; + + if (sub->snapshot && + sub->snapshot->type == CAIRO_SURFACE_TYPE_GL && + sub->snapshot->device == dst->base.device) + { + surface = (cairo_gl_surface_t *) + cairo_surface_reference (sub->snapshot); + } + else + { + status = _cairo_gl_context_acquire (dst->base.device, &ctx); + if (unlikely (status)) + return status; + + /* XXX Trim surface to the sample area within the subsurface? */ + surface = (cairo_gl_surface_t *) + _cairo_gl_surface_create_scratch (ctx, + sub->target->content, + sub->extents.width, + sub->extents.height, + FALSE); + + if (surface->base.status) + return _cairo_gl_context_release (ctx, surface->base.status); + + _cairo_pattern_init_for_surface (&local_pattern, sub->target); + cairo_matrix_init_translate (&local_pattern.base.matrix, + sub->extents.x, sub->extents.y); + local_pattern.base.filter = CAIRO_FILTER_NEAREST; + status = _cairo_surface_paint (&surface->base, + CAIRO_OPERATOR_SOURCE, + &local_pattern.base, + NULL); + _cairo_pattern_fini (&local_pattern.base); + + status = _cairo_gl_context_release (ctx, status); + if (unlikely (status)) { + cairo_surface_destroy (&surface->base); + return status; } + + _cairo_surface_subsurface_set_snapshot (&sub->base, &surface->base); } + status = _resolve_multisampling (surface); + if (unlikely (status)) + return status; + attributes = &operand->texture.attributes; operand->type = CAIRO_GL_OPERAND_TEXTURE; - operand->texture.surface = - (cairo_gl_surface_t *) cairo_surface_reference (&surface->base); + operand->texture.surface = surface; + operand->texture.owns_surface = surface; operand->texture.tex = surface->tex; + operand->texture.use_atlas = FALSE; - /* Translate the matrix from - * (unnormalized src -> unnormalized src) to - * (unnormalized dst -> unnormalized src) - */ - cairo_matrix_init_translate (&m, src_x - dst_x, src_y - dst_y); - cairo_matrix_multiply (&attributes->matrix, &m, &src->base.matrix); - - /* Translate the matrix from - * (unnormalized dst -> unnormalized src) to - * (unnormalized dst -> normalized src) - */ if (_cairo_gl_device_requires_power_of_two_textures (dst->base.device)) { - cairo_matrix_init_scale (&m, - 1.0, - 1.0); + attributes->matrix = src->base.matrix; } else { + cairo_matrix_t m; + cairo_matrix_init_scale (&m, 1.0 / surface->width, 1.0 / surface->height); + cairo_matrix_multiply (&attributes->matrix, &src->base.matrix, &m); } - cairo_matrix_multiply (&attributes->matrix, - &attributes->matrix, - &m); attributes->extend = src->base.extend; attributes->filter = src->base.filter; + attributes->has_component_alpha = src->base.has_component_alpha; + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_gl_subsurface_operand_init (cairo_gl_operand_t *operand, + const cairo_pattern_t *_src, + cairo_gl_surface_t *dst, + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents) +{ + const cairo_surface_pattern_t *src = (cairo_surface_pattern_t *)_src; + cairo_surface_subsurface_t *sub; + cairo_gl_surface_t *surface; + cairo_surface_attributes_t *attributes; + cairo_int_status_t status; + cairo_gl_image_t *image_node = NULL; + cairo_gl_context_t *ctx = (cairo_gl_context_t *)dst->base.device; + + sub = (cairo_surface_subsurface_t *) src->surface; + + if (sample->x < 0 || sample->y < 0 || + sample->x + sample->width > sub->extents.width || + sample->y + sample->height > sub->extents.height) + { + return _cairo_gl_subsurface_clone_operand_init (operand, _src, + dst, sample, extents); + } + + surface = (cairo_gl_surface_t *) sub->target; + if (surface->base.device && + (surface->base.device != dst->base.device || + (! surface->tex && ! surface->bounded_tex))) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _resolve_multisampling (surface); + if (unlikely (status)) + return status; + + *operand = surface->operand; + operand->texture.use_atlas = FALSE; + + attributes = &operand->texture.attributes; + attributes->extend = src->base.extend; + attributes->filter = src->base.filter; + attributes->has_component_alpha = src->base.has_component_alpha; + + attributes->matrix = src->base.matrix; + attributes->matrix.x0 += sub->extents.x; + attributes->matrix.y0 += sub->extents.y; + + if (surface->needs_to_cache) + status = _cairo_gl_image_cache_add_image (ctx, dst, surface, + &image_node); + + /* Translate the matrix from + * (unnormalized src -> unnormalized src) to + * (unnormalized dst -> unnormalized src) + */ + + if (unlikely (status) || ! image_node) + cairo_matrix_multiply (&attributes->matrix, + &attributes->matrix, + &surface->operand.texture.attributes.matrix); + else { + cairo_matrix_t matrix = src->base.matrix; + operand->texture.surface = ctx->image_cache.surface; + operand->texture.owns_surface = NULL; + operand->texture.tex = ctx->image_cache.surface->tex; + attributes->extend = CAIRO_EXTEND_NONE; + operand->texture.extend = src->base.extend; + attributes->matrix.x0 = image_node->node.x + sub->extents.x; + attributes->matrix.y0 = image_node->node.y + sub->extents.y; + operand->texture.use_atlas = TRUE; + + operand->texture.p1.x = image_node->p1.x; + operand->texture.p1.y = image_node->p1.y; + operand->texture.p2.x = image_node->p2.x; + operand->texture.p2.y = image_node->p2.y; + if (src->base.extend == CAIRO_EXTEND_PAD) { + operand->texture.p1.x += 0.5 / IMAGE_CACHE_WIDTH; + operand->texture.p1.y += 0.5 / IMAGE_CACHE_HEIGHT; + operand->texture.p2.x -= 0.5 / IMAGE_CACHE_WIDTH; + operand->texture.p2.y -= 0.5 / IMAGE_CACHE_HEIGHT; + } + + cairo_matrix_multiply (&attributes->matrix, + &matrix, + &ctx->image_cache.surface->operand.texture.attributes.matrix); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_gl_surface_operand_init (cairo_gl_operand_t *operand, + const cairo_pattern_t *_src, + cairo_gl_surface_t *dst, + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents) +{ + const cairo_surface_pattern_t *src = (cairo_surface_pattern_t *)_src; + cairo_gl_surface_t *surface; + cairo_surface_attributes_t *attributes; + cairo_int_status_t status; + cairo_gl_image_t *image_node = NULL; + cairo_gl_context_t *ctx = (cairo_gl_context_t *)dst->base.device; + + surface = (cairo_gl_surface_t *) src->surface; + if (surface->base.type != CAIRO_SURFACE_TYPE_GL) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (surface->base.backend->type != CAIRO_SURFACE_TYPE_GL) { + if (_cairo_surface_is_subsurface (&surface->base)) + return _cairo_gl_subsurface_operand_init (operand, _src, dst, + sample, extents); + else if (_cairo_surface_is_snapshot (src->surface)) { + cairo_surface_snapshot_t *surface_snapshot; + cairo_pattern_t *sub_pattern; + + surface_snapshot = (cairo_surface_snapshot_t *)src->surface; + surface = (cairo_gl_surface_t *)surface_snapshot->target; + if (surface->base.type != CAIRO_SURFACE_TYPE_GL) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (_cairo_surface_is_subsurface (&surface->base)) { + sub_pattern = cairo_pattern_create_for_surface (&surface->base); + status = _cairo_gl_subsurface_operand_init (operand, + sub_pattern, + dst, + sample, + extents); + cairo_pattern_destroy (sub_pattern); + return status; + } + } + else + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + if (surface->base.device && + (surface->base.device != dst->base.device || + (! surface->tex && ! surface->bounded_tex))) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _resolve_multisampling (surface); + if (unlikely (status)) + return status; + + *operand = surface->operand; + operand->texture.use_atlas = FALSE; + + attributes = &operand->texture.attributes; + attributes->extend = src->base.extend; + attributes->filter = src->base.filter; + attributes->has_component_alpha = src->base.has_component_alpha; + + if (surface->needs_to_cache) + status = _cairo_gl_image_cache_add_image (ctx, dst, surface, + &image_node); + + if (unlikely (status) || ! image_node) + cairo_matrix_multiply (&attributes->matrix, + &src->base.matrix, + &attributes->matrix); + else { + cairo_matrix_t matrix = src->base.matrix; + operand->texture.use_atlas = TRUE; + attributes->extend = CAIRO_EXTEND_NONE; + operand->texture.extend = src->base.extend; + + operand->texture.p1.x = image_node->p1.x; + operand->texture.p1.y = image_node->p1.y; + operand->texture.p2.x = image_node->p2.x; + operand->texture.p2.y = image_node->p2.y; + if (src->base.extend == CAIRO_EXTEND_PAD) { + operand->texture.p1.x += 0.5 / IMAGE_CACHE_WIDTH; + operand->texture.p1.y += 0.5 / IMAGE_CACHE_HEIGHT; + operand->texture.p2.x -= 0.5 / IMAGE_CACHE_WIDTH; + operand->texture.p2.y -= 0.5 / IMAGE_CACHE_HEIGHT; + } + + operand->texture.surface = ctx->image_cache.surface; + operand->texture.owns_surface = NULL; + operand->texture.tex = ctx->image_cache.surface->tex; + matrix.x0 += image_node->node.x; + matrix.y0 += image_node->node.y; + cairo_matrix_multiply (&attributes->matrix, + &matrix, + &ctx->image_cache.surface->operand.texture.attributes.matrix); + } + return CAIRO_STATUS_SUCCESS; } @@ -132,18 +557,19 @@ static cairo_status_t _cairo_gl_pattern_texture_setup (cairo_gl_operand_t *operand, const cairo_pattern_t *_src, cairo_gl_surface_t *dst, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height) + const cairo_rectangle_int_t *extents) { - const cairo_surface_pattern_t *src = (cairo_surface_pattern_t *)_src; cairo_status_t status; - cairo_matrix_t m; cairo_gl_surface_t *surface; cairo_gl_context_t *ctx; - cairo_surface_attributes_t *attributes; + cairo_surface_t *image; + cairo_bool_t src_is_gl_surface = FALSE; + pixman_format_code_t pixman_format; - attributes = &operand->texture.attributes; + if (_src->type == CAIRO_PATTERN_TYPE_SURFACE) { + cairo_surface_t* src_surface = ((cairo_surface_pattern_t *) _src)->surface; + src_is_gl_surface = src_surface->type == CAIRO_SURFACE_TYPE_GL; + } status = _cairo_gl_context_acquire (dst->base.device, &ctx); if (unlikely (status)) @@ -151,60 +577,67 @@ _cairo_gl_pattern_texture_setup (cairo_gl_operand_t *operand, surface = (cairo_gl_surface_t *) _cairo_gl_surface_create_scratch (ctx, - src->surface->content, - width, height); - if (src->surface->backend->type == CAIRO_SURFACE_TYPE_IMAGE) { - status = _cairo_gl_surface_draw_image (surface, - (cairo_image_surface_t *)src->surface, - src_x, src_y, - width, height, - 0, 0); - - attributes->extend = src->base.extend; - attributes->filter = src->base.filter; - } else { - cairo_surface_t *image; + CAIRO_CONTENT_COLOR_ALPHA, + extents->width, extents->height, + FALSE); + + /* XXX: This is a hack for driver that does not support PBO, we + don't need an extra step of downloading newly created texture + to image, we can create image directly. */ + if (! _cairo_is_little_endian ()) + pixman_format = PIXMAN_r8g8b8a8; + else + pixman_format = PIXMAN_a8b8g8r8; + image = + _cairo_image_surface_create_with_pixman_format (NULL, + pixman_format, + extents->width, + extents->height, + -1); + if (unlikely (image->status)) { + status = _cairo_gl_context_release (ctx, status); + + /* The error status in the image is issue that caused the problem. */ + status = image->status; + + cairo_surface_destroy (image); + goto fail; + } + + /* If the pattern is a GL surface, it belongs to some other GL context, + so we need to release this device while we paint it to the image. */ + if (src_is_gl_surface) { + status = _cairo_gl_context_release (ctx, status); + if (unlikely (status)) + goto fail; + } - image = cairo_surface_map_to_image (&surface->base, NULL); - status = _cairo_surface_offset_paint (image, src_x, src_y, - CAIRO_OPERATOR_SOURCE, _src, - NULL); - cairo_surface_unmap_image (&surface->base, image); + status = _cairo_surface_offset_paint (image, extents->x, extents->y, + CAIRO_OPERATOR_SOURCE, _src, NULL); - attributes->extend = CAIRO_EXTEND_NONE; - attributes->filter = CAIRO_FILTER_NEAREST; + if (src_is_gl_surface) { + status = _cairo_gl_context_acquire (dst->base.device, &ctx); + if (unlikely (status)) + goto fail; } + cairo_surface_unmap_image (&surface->base, image); status = _cairo_gl_context_release (ctx, status); + if (unlikely (status)) + goto fail; - operand->type = CAIRO_GL_OPERAND_TEXTURE; - operand->texture.surface = surface; - operand->texture.tex = surface->tex; - - /* Translate the matrix from - * (unnormalized src -> unnormalized src) to - * (unnormalized dst -> unnormalized src) - */ - cairo_matrix_init_translate (&m, -dst_x, -dst_y); - cairo_matrix_multiply (&attributes->matrix, &m, &src->base.matrix); + *operand = surface->operand; + operand->texture.owns_surface = surface; + operand->texture.attributes.matrix.x0 -= extents->x * operand->texture.attributes.matrix.xx; + operand->texture.attributes.matrix.y0 -= extents->y * operand->texture.attributes.matrix.yy; + dst->needs_to_cache = TRUE; + operand->texture.use_atlas = FALSE; - /* Translate the matrix from - * (unnormalized dst -> unnormalized src) to - * (unnormalized dst -> normalized src) - */ - if (_cairo_gl_device_requires_power_of_two_textures (dst->base.device)) { - cairo_matrix_init_scale (&m, - 1.0, - 1.0); - } else { - cairo_matrix_init_scale (&m, - 1.0 / surface->width, - 1.0 / surface->height); - } - cairo_matrix_multiply (&attributes->matrix, - &attributes->matrix, - &m); return CAIRO_STATUS_SUCCESS; + +fail: + cairo_surface_destroy (&surface->base); + return status; } void @@ -218,12 +651,18 @@ _cairo_gl_solid_operand_init (cairo_gl_operand_t *operand, operand->constant.color[3] = color->alpha; } +void +_cairo_gl_operand_translate (cairo_gl_operand_t *operand, + double tx, double ty) +{ + operand->texture.attributes.matrix.x0 -= tx * operand->texture.attributes.matrix.xx; + operand->texture.attributes.matrix.y0 -= ty * operand->texture.attributes.matrix.yy; +} + static cairo_status_t _cairo_gl_gradient_operand_init (cairo_gl_operand_t *operand, const cairo_pattern_t *pattern, - cairo_gl_surface_t *dst, - int src_x, int src_y, - int dst_x, int dst_y) + cairo_gl_surface_t *dst) { const cairo_gradient_pattern_t *gradient = (const cairo_gradient_pattern_t *)pattern; cairo_status_t status; @@ -305,8 +744,6 @@ _cairo_gl_gradient_operand_init (cairo_gl_operand_t *operand, &m); } - cairo_matrix_translate (&operand->gradient.m, src_x - dst_x, src_y - dst_y); - operand->gradient.extend = pattern->extend; return CAIRO_STATUS_SUCCESS; @@ -327,6 +764,7 @@ _cairo_gl_operand_copy (cairo_gl_operand_t *dst, _cairo_gl_gradient_reference (dst->gradient.gradient); break; case CAIRO_GL_OPERAND_TEXTURE: + cairo_surface_reference (&dst->texture.owns_surface->base); break; default: case CAIRO_GL_OPERAND_COUNT: @@ -349,6 +787,7 @@ _cairo_gl_operand_destroy (cairo_gl_operand_t *operand) _cairo_gl_gradient_destroy (operand->gradient.gradient); break; case CAIRO_GL_OPERAND_TEXTURE: + cairo_surface_destroy (&operand->texture.owns_surface->base); break; default: case CAIRO_GL_OPERAND_COUNT: @@ -364,23 +803,22 @@ cairo_int_status_t _cairo_gl_operand_init (cairo_gl_operand_t *operand, const cairo_pattern_t *pattern, cairo_gl_surface_t *dst, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height) + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents, + cairo_bool_t use_color_attribute) { cairo_int_status_t status; + TRACE ((stderr, "%s: type=%d\n", __FUNCTION__, pattern->type)); switch (pattern->type) { case CAIRO_PATTERN_TYPE_SOLID: _cairo_gl_solid_operand_init (operand, &((cairo_solid_pattern_t *) pattern)->color); + operand->use_color_attribute = use_color_attribute; return CAIRO_STATUS_SUCCESS; case CAIRO_PATTERN_TYPE_SURFACE: - status = _cairo_gl_surface_operand_init (operand, - pattern, dst, - src_x, src_y, - dst_x, dst_y, - width, height); + status = _cairo_gl_surface_operand_init (operand, pattern, dst, + sample, extents); if (status == CAIRO_INT_STATUS_UNSUPPORTED) break; @@ -388,10 +826,7 @@ _cairo_gl_operand_init (cairo_gl_operand_t *operand, case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: - status = _cairo_gl_gradient_operand_init (operand, - pattern, dst, - src_x, src_y, - dst_x, dst_y); + status = _cairo_gl_gradient_operand_init (operand, pattern, dst); if (status == CAIRO_INT_STATUS_UNSUPPORTED) break; @@ -399,14 +834,11 @@ _cairo_gl_operand_init (cairo_gl_operand_t *operand, default: case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: break; } - return _cairo_gl_pattern_texture_setup (operand, - pattern, dst, - src_x, src_y, - dst_x, dst_y, - width, height); + return _cairo_gl_pattern_texture_setup (operand, pattern, dst, extents); } cairo_filter_t @@ -442,6 +874,15 @@ _cairo_gl_operand_get_gl_filter (cairo_gl_operand_t *operand) GL_NEAREST; } +cairo_bool_t +_cairo_gl_operand_get_use_atlas (cairo_gl_operand_t *operand) +{ + if (operand->type != CAIRO_GL_OPERAND_TEXTURE) + return FALSE; + + return operand->texture.use_atlas; +} + cairo_extend_t _cairo_gl_operand_get_extend (cairo_gl_operand_t *operand) { @@ -449,7 +890,10 @@ _cairo_gl_operand_get_extend (cairo_gl_operand_t *operand) switch ((int) operand->type) { case CAIRO_GL_OPERAND_TEXTURE: - extend = operand->texture.attributes.extend; + if (! operand->texture.use_atlas) + extend = operand->texture.attributes.extend; + else + extend = operand->texture.extend; break; case CAIRO_GL_OPERAND_LINEAR_GRADIENT: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: @@ -465,6 +909,25 @@ _cairo_gl_operand_get_extend (cairo_gl_operand_t *operand) return extend; } +cairo_extend_t +_cairo_gl_operand_get_atlas_extend (cairo_gl_operand_t *operand) +{ + cairo_extend_t extend; + + switch ((int) operand->type) { + case CAIRO_GL_OPERAND_TEXTURE: + if (operand->texture.use_atlas) + extend = operand->texture.extend; + else + extend = CAIRO_EXTEND_NONE; + break; + default: + extend = CAIRO_EXTEND_NONE; + break; + } + + return extend; +} void _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, @@ -485,13 +948,15 @@ _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, case CAIRO_GL_OPERAND_NONE: break; case CAIRO_GL_OPERAND_CONSTANT: - strcpy (custom_part, "_constant"); - _cairo_gl_shader_bind_vec4 (ctx, - uniform_name, - operand->constant.color[0], - operand->constant.color[1], - operand->constant.color[2], - operand->constant.color[3]); + if (!operand->use_color_attribute) { + strcpy (custom_part, "_constant"); + _cairo_gl_shader_bind_vec4 (ctx, + uniform_name, + operand->constant.color[0], + operand->constant.color[1], + operand->constant.color[2], + operand->constant.color[3]); + } break; case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: @@ -543,7 +1008,8 @@ _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, cairo_bool_t _cairo_gl_operand_needs_setup (cairo_gl_operand_t *dest, cairo_gl_operand_t *source, - unsigned int vertex_offset) + unsigned int vertex_offset, + cairo_bool_t *needs_flush) { if (dest->type != source->type) return TRUE; @@ -552,12 +1018,16 @@ _cairo_gl_operand_needs_setup (cairo_gl_operand_t *dest, switch (source->type) { case CAIRO_GL_OPERAND_NONE: - return FALSE; case CAIRO_GL_OPERAND_CONSTANT: - return dest->constant.color[0] != source->constant.color[0] || - dest->constant.color[1] != source->constant.color[1] || - dest->constant.color[2] != source->constant.color[2] || - dest->constant.color[3] != source->constant.color[3]; + if (source->use_color_attribute) { + *needs_flush = FALSE; + return TRUE; + } else { + return dest->constant.color[0] != source->constant.color[0] || + dest->constant.color[1] != source->constant.color[1] || + dest->constant.color[2] != source->constant.color[2] || + dest->constant.color[3] != source->constant.color[3]; + } case CAIRO_GL_OPERAND_TEXTURE: return dest->texture.surface != source->texture.surface || dest->texture.attributes.extend != source->texture.attributes.extend || @@ -578,16 +1048,24 @@ _cairo_gl_operand_needs_setup (cairo_gl_operand_t *dest, } unsigned int -_cairo_gl_operand_get_vertex_size (cairo_gl_operand_type_t type) +_cairo_gl_operand_get_vertex_size (cairo_gl_operand_t *operand) { - switch (type) { + switch (operand->type) { default: case CAIRO_GL_OPERAND_COUNT: ASSERT_NOT_REACHED; case CAIRO_GL_OPERAND_NONE: - case CAIRO_GL_OPERAND_CONSTANT: return 0; + case CAIRO_GL_OPERAND_CONSTANT: + if (operand->use_color_attribute) + return 4 * sizeof (GLfloat); + else + return 0; case CAIRO_GL_OPERAND_TEXTURE: + if (operand->texture.use_atlas) + return 6 * sizeof (GLfloat); + else + return 2 * sizeof (GLfloat); case CAIRO_GL_OPERAND_LINEAR_GRADIENT: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: @@ -596,43 +1074,47 @@ _cairo_gl_operand_get_vertex_size (cairo_gl_operand_type_t type) } } -void -_cairo_gl_operand_emit (cairo_gl_operand_t *operand, - GLfloat ** vb, - GLfloat x, - GLfloat y) +static inline cairo_int_status_t +_cairo_gl_context_get_image_cache (cairo_gl_context_t *ctx, + cairo_gl_image_cache_t **cache_out) { - switch (operand->type) { - default: - case CAIRO_GL_OPERAND_COUNT: - ASSERT_NOT_REACHED; - case CAIRO_GL_OPERAND_NONE: - case CAIRO_GL_OPERAND_CONSTANT: - break; - case CAIRO_GL_OPERAND_LINEAR_GRADIENT: - case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: - case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: - case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: - { - double s = x; - double t = y; + if (! ctx->image_cache.surface) + return CAIRO_INT_STATUS_UNSUPPORTED; - cairo_matrix_transform_point (&operand->gradient.m, &s, &t); + *cache_out = &(ctx->image_cache); + return CAIRO_INT_STATUS_SUCCESS; +} - *(*vb)++ = s; - *(*vb)++ = t; - } - break; - case CAIRO_GL_OPERAND_TEXTURE: - { - cairo_surface_attributes_t *src_attributes = &operand->texture.attributes; - double s = x; - double t = y; - - cairo_matrix_transform_point (&src_attributes->matrix, &s, &t); - *(*vb)++ = s; - *(*vb)++ = t; - } - break; +/* Called from _cairo_rtree_node_remove. */ +void +_cairo_gl_image_node_destroy (cairo_rtree_node_t *node) +{ + cairo_surface_t *surface; + + cairo_gl_image_t *image_node = cairo_container_of (node, + cairo_gl_image_t, + node); + + surface = image_node->original_surface; + image_node->node_removed = TRUE; + /* Remove from original surface. */ + if (image_node->original_surface && + ! image_node->user_data_removed) { + cairo_surface_set_user_data (image_node->original_surface, + (const cairo_user_data_key_t *) surface, + (void *) NULL, NULL); } } + +void +_cairo_gl_image_node_fini (void *data) +{ + cairo_gl_image_t *image_node = (cairo_gl_image_t *)data; + + image_node->user_data_removed = TRUE; + + if (! image_node->node_removed && ! image_node->node.pinned) + _cairo_rtree_node_remove (&image_node->ctx->image_cache.rtree, + &image_node->node); +} + diff --git a/src/cairo-gl-private.h b/src/cairo-gl-private.h index 9027178..aa9c3dc 100644 --- a/src/cairo-gl-private.h +++ b/src/cairo-gl-private.h @@ -56,6 +56,8 @@ #include "cairo-rtree-private.h" #include "cairo-scaled-font-private.h" #include "cairo-spans-compositor-private.h" +#include "cairo-array-private.h" +#include "cairo-stroke-dash-private.h" #include @@ -93,6 +95,13 @@ /* VBO size that we allocate, smaller size means we gotta flush more often */ #define CAIRO_GL_VBO_SIZE 16384 +#define IMAGE_CACHE_WIDTH 2048 +#define IMAGE_CACHE_HEIGHT 2048 +#define IMAGE_CACHE_MIN_SIZE 1 +#define IMAGE_CACHE_MAX_SIZE 256 + +typedef struct _cairo_gl_surface cairo_gl_surface_t; + /* GL flavor */ typedef enum cairo_gl_flavor { CAIRO_GL_FLAVOR_NONE = 0, @@ -104,25 +113,105 @@ typedef enum cairo_gl_flavor { enum { CAIRO_GL_VERTEX_ATTRIB_INDEX = 0, CAIRO_GL_COLOR_ATTRIB_INDEX = 1, - CAIRO_GL_TEXCOORD0_ATTRIB_INDEX = 2, - CAIRO_GL_TEXCOORD1_ATTRIB_INDEX = CAIRO_GL_TEXCOORD0_ATTRIB_INDEX + 1 + CAIRO_GL_COVERAGE_ATTRIB_INDEX = 2, + CAIRO_GL_TEXCOORD0_ATTRIB_INDEX = 3, + CAIRO_GL_TEXCOORD1_ATTRIB_INDEX = 4, + CAIRO_GL_START_COORD0_ATTRIB_INDEX = 5, + CAIRO_GL_START_COORD1_ATTRIB_INDEX = 6, + CAIRO_GL_STOP_COORD0_ATTRIB_INDEX = 7, + CAIRO_GL_STOP_COORD1_ATTRIB_INDEX = 8 }; -typedef struct _cairo_gl_surface { +typedef enum cairo_gl_operand_type { + CAIRO_GL_OPERAND_NONE, + CAIRO_GL_OPERAND_CONSTANT, + CAIRO_GL_OPERAND_TEXTURE, + CAIRO_GL_OPERAND_LINEAR_GRADIENT, + CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0, + CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE, + CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT, + + CAIRO_GL_OPERAND_COUNT +} cairo_gl_operand_type_t; + +typedef enum cairo_gl_draw_mode { + CAIRO_GL_VERTEX, + CAIRO_GL_LINE_STRIP, + CAIRO_GL_LINES +} cairo_gl_draw_mode_t; + +/* This union structure describes a potential source or mask operand to the + * compositing equation. + */ +typedef struct cairo_gl_operand { + cairo_gl_operand_type_t type; + union { + struct { + GLuint tex; + cairo_gl_surface_t *surface; + cairo_gl_surface_t *owns_surface; + cairo_surface_attributes_t attributes; + cairo_bool_t use_atlas; + cairo_extend_t extend; + struct { float x, y; } p1, p2; + } texture; + struct { + GLfloat color[4]; + } constant; + struct { + cairo_gl_gradient_t *gradient; + cairo_matrix_t m; + cairo_circle_double_t circle_d; + double radius_0, a; + cairo_extend_t extend; + } gradient; + }; + unsigned int vertex_offset; + cairo_bool_t use_color_attribute; +} cairo_gl_operand_t; + +typedef struct cairo_gl_source { + cairo_surface_t base; + cairo_gl_operand_t operand; +} cairo_gl_source_t; + +struct _cairo_gl_surface { cairo_surface_t base; + cairo_gl_operand_t operand; int width, height; GLuint tex; /* GL texture object containing our data. */ GLuint fb; /* GL framebuffer object wrapping our data. */ - GLuint depth; /* GL framebuffer object holding depth */ + GLuint depth_stencil; /* GL renderbuffer object for holding stencil buffer clip. */ + +#if CAIRO_HAS_GL_SURFACE + GLuint msaa_rb; /* The ARB MSAA path uses a renderbuffer. */ + GLuint msaa_fb; +#endif + GLuint msaa_depth_stencil; + + cairo_bool_t stencil_and_msaa_caps_initialized; + cairo_bool_t supports_stencil; /* Stencil support for for non-texture surfaces. */ + cairo_bool_t supports_msaa; + cairo_bool_t msaa_active; /* Whether the multisampling + framebuffer is active or not. */ + int owns_tex; cairo_bool_t needs_update; -} cairo_gl_surface_t; + + cairo_region_t *clip_region; + GLuint bounded_tex; /* bounded tex for non-texture surface */ + + /* Indicate whether we need to cache it in image_cache. */ + cairo_bool_t needs_to_cache; + /* Damage is too expensive to check, we use this flag. */ + cairo_bool_t content_changed; +}; typedef struct cairo_gl_glyph_cache { cairo_rtree_t rtree; - cairo_surface_pattern_t pattern; + cairo_gl_surface_t *surface; } cairo_gl_glyph_cache_t; typedef enum cairo_gl_tex { @@ -131,25 +220,28 @@ typedef enum cairo_gl_tex { CAIRO_GL_TEX_TEMP = 2 } cairo_gl_tex_t; -typedef enum cairo_gl_operand_type { - CAIRO_GL_OPERAND_NONE, - CAIRO_GL_OPERAND_CONSTANT, - CAIRO_GL_OPERAND_TEXTURE, - CAIRO_GL_OPERAND_LINEAR_GRADIENT, - CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0, - CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE, - CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT, - - CAIRO_GL_OPERAND_COUNT -} cairo_gl_operand_type_t; - typedef struct cairo_gl_shader_impl cairo_gl_shader_impl_t; typedef struct cairo_gl_shader { GLuint fragment_shader; GLuint program; + cairo_hash_table_t *uniform_cache; } cairo_gl_shader_t; +typedef struct cairo_gl_image_cache { + cairo_rtree_t rtree; + cairo_gl_surface_t *surface; +} cairo_gl_image_cache_t; + +typedef struct cairo_gl_image { + cairo_rtree_node_t node; + cairo_surface_t *original_surface; + struct { float x, y; } p1, p2; + cairo_gl_context_t *ctx; + cairo_bool_t node_removed; + cairo_bool_t user_data_removed; +} cairo_gl_image_t; + typedef enum cairo_gl_shader_in { CAIRO_GL_SHADER_IN_NORMAL, CAIRO_GL_SHADER_IN_CA_SOURCE, @@ -158,38 +250,41 @@ typedef enum cairo_gl_shader_in { CAIRO_GL_SHADER_IN_COUNT } cairo_gl_shader_in_t; + +typedef struct _cairo_gl_hairline_closure +{ + cairo_gl_context_t *ctx; + double tolerance; + cairo_stroker_dash_t dash; + cairo_matrix_t *ctm; + cairo_matrix_t *ctm_inverse; + cairo_point_t current_point; + + cairo_point_t stroke_first_point; /* First stroke point at move_to. */ + double stroke_first_dx; + double stroke_first_dy; + cairo_bool_t stroke_first_capped; + cairo_bool_t moved_to_stroke_first_point; + + cairo_line_cap_t cap_style; + + cairo_bool_t line_last_capped; + + cairo_point_t line_last_point; + double line_last_dx; + double line_last_dy; + + cairo_bool_t initialized; +} cairo_gl_hairline_closure_t; + typedef enum cairo_gl_var_type { CAIRO_GL_VAR_NONE, + CAIRO_GL_VAR_COLOR, CAIRO_GL_VAR_TEXCOORDS, } cairo_gl_var_type_t; -#define cairo_gl_var_type_hash(src,mask,spans,dest) ((spans) << 3) | ((mask) << 2 | (src << 1) | (dest)) -#define CAIRO_GL_VAR_TYPE_MAX ((CAIRO_GL_VAR_TEXCOORDS << 3) | (CAIRO_GL_VAR_TEXCOORDS << 2) | (CAIRO_GL_VAR_TEXCOORDS << 1) | CAIRO_GL_VAR_TEXCOORDS) - -/* This union structure describes a potential source or mask operand to the - * compositing equation. - */ -typedef struct cairo_gl_operand { - cairo_gl_operand_type_t type; - union { - struct { - GLuint tex; - cairo_gl_surface_t *surface; - cairo_surface_attributes_t attributes; - } texture; - struct { - GLfloat color[4]; - } constant; - struct { - cairo_gl_gradient_t *gradient; - cairo_matrix_t m; - cairo_circle_double_t circle_d; - double radius_0, a; - cairo_extend_t extend; - } gradient; - }; - unsigned int vertex_offset; -} cairo_gl_operand_t; +#define cairo_gl_var_type_hash(src,mask,src_atlas_extend,mask_atlas_extend,src_use_atlas,mask_use_atlas, spans,dest) ((spans) << 11) | ((mask) << 9 | (src << 7) | (mask_atlas_extend << 5) | (src_atlas_extend << 3) | (mask_use_atlas << 2) | (src_use_atlas << 1) | (dest)) +#define CAIRO_GL_VAR_TYPE_MAX ((CAIRO_GL_VAR_TEXCOORDS << 11) | (CAIRO_GL_VAR_TEXCOORDS << 9) | (CAIRO_GL_VAR_TEXCOORDS << 5) | CAIRO_GL_VAR_TEXCOORDS) typedef void (*cairo_gl_generic_func_t)(void); typedef cairo_gl_generic_func_t (*cairo_gl_get_proc_addr_func_t)(const char *procname); @@ -253,6 +348,22 @@ typedef struct _cairo_gl_dispatch { GLint level); GLenum (*CheckFramebufferStatus) (GLenum target); void (*DeleteFramebuffers) (GLsizei n, const GLuint* framebuffers); + void (*GenRenderbuffers) (GLsizei n, GLuint *renderbuffers); + void (*BindRenderbuffer) (GLenum target, GLuint renderbuffer); + void (*RenderbufferStorage) (GLenum target, GLenum internal_format, + GLsizei width, GLsizei height); + void (*FramebufferRenderbuffer) (GLenum target, GLenum attachment, + GLenum renderbuffer_ttarget, GLuint renderbuffer); + void (*DeleteRenderbuffers) (GLsizei n, GLuint *renderbuffers); + void (*BlitFramebuffer) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, + GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, + GLbitfield mask, GLenum filter); + void (*RenderbufferStorageMultisample) (GLenum target, GLsizei samples, + GLenum internalformat, + GLsizei width, GLsizei height); + void (*FramebufferTexture2DMultisample) (GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, + GLint level, GLsizei samples); } cairo_gl_dispatch_t; struct _cairo_gl_context { @@ -267,6 +378,9 @@ struct _cairo_gl_context { GLint max_textures; GLenum tex_target; + GLint num_samples; + cairo_bool_t supports_msaa; + const cairo_gl_shader_impl_t *shader_impl; GLuint vertex_shaders[CAIRO_GL_VAR_TYPE_MAX + 1]; @@ -291,12 +405,31 @@ struct _cairo_gl_context { unsigned int vb_offset; unsigned int vertex_size; cairo_region_t *clip_region; + cairo_clip_t *clip; + cairo_array_t tristrip_indices; cairo_bool_t has_mesa_pack_invert; cairo_gl_dispatch_t dispatch; GLfloat modelviewprojection_matrix[16]; cairo_gl_flavor_t gl_flavor; cairo_bool_t has_map_buffer; + cairo_bool_t has_packed_depth_stencil; + cairo_bool_t has_npot_repeat; + + cairo_bool_t thread_aware; + + /* GL stencil and depth buffers are shared among all surfaces + to preserve memory. In the future this could be a pool of renderbuffers + with an eviction policy. */ + GLuint shared_depth_stencil; + int shared_depth_stencil_width; + int shared_depth_stencil_height; + GLuint shared_msaa_depth_stencil; + int shared_msaa_depth_stencil_width; + int shared_msaa_depth_stencil_height; + + cairo_gl_image_cache_t image_cache; + cairo_gl_draw_mode_t draw_mode; void (*acquire) (void *ctx); void (*release) (void *ctx); @@ -314,6 +447,8 @@ typedef struct _cairo_gl_composite { cairo_gl_operand_t src; cairo_gl_operand_t mask; cairo_bool_t spans; + + cairo_clip_t *clip; } cairo_gl_composite_t; typedef struct _cairo_gl_font { @@ -322,8 +457,6 @@ typedef struct _cairo_gl_font { cairo_list_t link; } cairo_gl_font_t; -cairo_private extern const cairo_surface_backend_t _cairo_gl_surface_backend; - static cairo_always_inline GLenum _cairo_gl_get_error (void) { @@ -412,7 +545,13 @@ _cairo_gl_context_release (cairo_gl_context_t *ctx, cairo_status_t status) } cairo_private void -_cairo_gl_context_set_destination (cairo_gl_context_t *ctx, cairo_gl_surface_t *surface); +_cairo_gl_activate_surface_as_nonmultisampling (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface); + +cairo_private void +_cairo_gl_context_set_destination (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface, + cairo_bool_t multisampling); cairo_private void _cairo_gl_context_activate (cairo_gl_context_t *ctx, @@ -421,12 +560,21 @@ _cairo_gl_context_activate (cairo_gl_context_t *ctx, cairo_private cairo_bool_t _cairo_gl_operator_is_supported (cairo_operator_t op); +cairo_private cairo_bool_t +_cairo_gl_ensure_stencil (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface); + +cairo_private void +_disable_scissor_buffer (void); + +cairo_private void +_disable_stencil_buffer (void); + cairo_private cairo_status_t _cairo_gl_composite_init (cairo_gl_composite_t *setup, cairo_operator_t op, cairo_gl_surface_t *dst, - cairo_bool_t has_component_alpha, - const cairo_rectangle_int_t *rect); + cairo_bool_t has_component_alpha); cairo_private void _cairo_gl_composite_fini (cairo_gl_composite_t *setup); @@ -435,12 +583,17 @@ cairo_private void _cairo_gl_composite_set_clip_region (cairo_gl_composite_t *setup, cairo_region_t *clip_region); +cairo_private void +_cairo_gl_composite_set_clip(cairo_gl_composite_t *setup, + cairo_clip_t *clip); + cairo_private cairo_int_status_t _cairo_gl_composite_set_source (cairo_gl_composite_t *setup, const cairo_pattern_t *pattern, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height); + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents, + cairo_bool_t use_color_attribute); + cairo_private void _cairo_gl_composite_set_solid_source (cairo_gl_composite_t *setup, const cairo_color_t *color); @@ -452,9 +605,8 @@ _cairo_gl_composite_set_source_operand (cairo_gl_composite_t *setup, cairo_private cairo_int_status_t _cairo_gl_composite_set_mask (cairo_gl_composite_t *setup, const cairo_pattern_t *pattern, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height); + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents); cairo_private void _cairo_gl_composite_set_mask_operand (cairo_gl_composite_t *setup, @@ -467,6 +619,11 @@ cairo_private cairo_status_t _cairo_gl_composite_begin (cairo_gl_composite_t *setup, cairo_gl_context_t **ctx); +cairo_private cairo_status_t +_cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup, + cairo_gl_context_t **ctx_out, + cairo_bool_t multisampling); + cairo_private void _cairo_gl_composite_emit_rect (cairo_gl_context_t *ctx, GLfloat x1, @@ -489,6 +646,25 @@ _cairo_gl_composite_emit_glyph (cairo_gl_context_t *ctx, cairo_private void _cairo_gl_composite_flush (cairo_gl_context_t *ctx); +cairo_private cairo_int_status_t +_cairo_gl_composite_emit_quad_as_tristrip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + const cairo_point_t quad[4]); + +cairo_private cairo_int_status_t +_cairo_gl_composite_emit_triangle_as_tristrip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + const cairo_point_t triangle[3]); + +cairo_private cairo_int_status_t +_cairo_gl_composite_emit_point_as_tristrip_line (cairo_gl_context_t *ctx, + const cairo_point_t point[2], + cairo_bool_t start_point); + +cairo_private cairo_int_status_t +_cairo_gl_composite_emit_point_as_single_line (cairo_gl_context_t *ctx, + const cairo_point_t point[2]); + cairo_private void _cairo_gl_context_destroy_operand (cairo_gl_context_t *ctx, cairo_gl_tex_t tex_unit); @@ -517,15 +693,6 @@ _cairo_gl_surface_show_glyphs (void *abstract_dst, const cairo_clip_t *clip, int *remaining_glyphs); -static inline int -_cairo_gl_y_flip (cairo_gl_surface_t *surface, int y) -{ - if (surface->fb) - return y; - else - return (surface->height - 1) - y; -} - cairo_private cairo_status_t _cairo_gl_context_init_shaders (cairo_gl_context_t *ctx); @@ -603,9 +770,10 @@ cairo_private cairo_int_status_t _cairo_gl_operand_init (cairo_gl_operand_t *operand, const cairo_pattern_t *pattern, cairo_gl_surface_t *dst, - int src_x, int src_y, - int dst_x, int dst_y, - int width, int height); + const cairo_rectangle_int_t *sample, + const cairo_rectangle_int_t *extents, + cairo_bool_t use_color_attribute); + cairo_private void _cairo_gl_solid_operand_init (cairo_gl_operand_t *operand, const cairo_color_t *color); @@ -619,13 +787,20 @@ _cairo_gl_operand_get_gl_filter (cairo_gl_operand_t *operand); cairo_private cairo_extend_t _cairo_gl_operand_get_extend (cairo_gl_operand_t *operand); +cairo_private cairo_extend_t +_cairo_gl_operand_get_atlas_extend (cairo_gl_operand_t *operand); + cairo_private unsigned int -_cairo_gl_operand_get_vertex_size (cairo_gl_operand_type_t type); +_cairo_gl_operand_get_vertex_size (cairo_gl_operand_t *operand); + +cairo_private cairo_bool_t +_cairo_gl_operand_get_use_atlas (cairo_gl_operand_t *operand); cairo_private cairo_bool_t _cairo_gl_operand_needs_setup (cairo_gl_operand_t *dest, cairo_gl_operand_t *source, - unsigned int vertex_offset); + unsigned int vertex_offset, + cairo_bool_t *needs_flush); cairo_private void _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, @@ -633,19 +808,20 @@ _cairo_gl_operand_bind_to_shader (cairo_gl_context_t *ctx, cairo_gl_tex_t tex_unit); cairo_private void -_cairo_gl_operand_emit (cairo_gl_operand_t *operand, - GLfloat ** vb, - GLfloat x, - GLfloat y); - -cairo_private void _cairo_gl_operand_copy (cairo_gl_operand_t *dst, const cairo_gl_operand_t *src); cairo_private void +_cairo_gl_operand_translate (cairo_gl_operand_t *operand, + double tx, double ty); + +cairo_private void _cairo_gl_operand_destroy (cairo_gl_operand_t *operand); cairo_private const cairo_compositor_t * +_cairo_gl_msaa_compositor_get (void); + +cairo_private const cairo_compositor_t * _cairo_gl_span_compositor_get (void); cairo_private const cairo_compositor_t * @@ -667,11 +843,111 @@ _cairo_gl_composite_glyphs (void *_dst, int dst_y, cairo_composite_glyphs_info_t *info); +cairo_int_status_t +_cairo_gl_composite_glyphs_with_clip (void *_dst, + cairo_operator_t op, + cairo_surface_t *_src, + int src_x, + int src_y, + int dst_x, + int dst_y, + cairo_composite_glyphs_info_t *info, + cairo_clip_t *clip, + cairo_bool_t via_msaa_compositor); + +cairo_private void +_cairo_gl_image_node_destroy (cairo_rtree_node_t *node); + +cairo_private void +_cairo_gl_image_node_fini (void *data); + +cairo_private void +_cairo_gl_image_cache_unlock (cairo_gl_context_t *ctx); + +cairo_int_status_t +_cairo_gl_image_cache_init (cairo_gl_context_t *ctx); + +cairo_private void +_cairo_gl_ensure_framebuffer (cairo_gl_context_t *ctx, + cairo_gl_surface_t *surface); + cairo_private cairo_surface_t * _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx, cairo_content_t content, int width, - int height); + int height, + cairo_bool_t true_alpha); + +cairo_private cairo_surface_t * +_cairo_gl_pattern_to_source (cairo_surface_t *dst, + const cairo_pattern_t *pattern, + cairo_bool_t is_mask, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + int *src_x, int *src_y); + +cairo_private cairo_int_status_t +_cairo_gl_msaa_compositor_draw_clip (cairo_gl_context_t *ctx, + cairo_gl_composite_t *setup, + cairo_clip_t *clip, + cairo_traps_t *traps); + +cairo_private cairo_surface_t * +_cairo_gl_white_source (void); + +static inline cairo_gl_operand_t * +source_to_operand (cairo_surface_t *surface) +{ + cairo_gl_source_t *source = (cairo_gl_source_t *)surface; + return source ? &source->operand : NULL; +} + +static inline void +_cairo_gl_glyph_cache_unlock (cairo_gl_glyph_cache_t *cache) +{ + _cairo_rtree_unpin (&cache->rtree); +} + +cairo_private void +_cairo_gl_scissor_to_extents (cairo_gl_surface_t *surface, + const cairo_rectangle_int_t *extents); + + +cairo_private cairo_bool_t +_cairo_gl_hairline_style_is_hairline (const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm); + +cairo_private cairo_status_t +_cairo_gl_hairline_move_to (void *closure, + const cairo_point_t *point); + +cairo_private cairo_status_t +_cairo_gl_hairline_line_to (void *closure, + const cairo_point_t *point); + +cairo_private cairo_status_t +_cairo_gl_hairline_line_to_dashed (void *closure, + const cairo_point_t *point); + +cairo_private cairo_status_t +_cairo_gl_hairline_curve_to (void *closure, + const cairo_point_t *p0, + const cairo_point_t *p1, + const cairo_point_t *p2); + +cairo_private cairo_status_t +_cairo_gl_hairline_close_path (void *closure); + +cairo_private cairo_status_t +_cairo_gl_path_fixed_stroke_to_hairline (const cairo_path_fixed_t *path, + cairo_gl_hairline_closure_t *closure, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + cairo_path_fixed_move_to_func_t *move_to, + cairo_path_fixed_line_to_func_t *line_to, + cairo_path_fixed_curve_to_func_t *curve_to, + cairo_path_fixed_close_path_func_t *close_path); slim_hidden_proto (cairo_gl_surface_create); slim_hidden_proto (cairo_gl_surface_create_for_texture); diff --git a/src/cairo-gl-shaders.c b/src/cairo-gl-shaders.c index b3af6f7..b9a0f7d 100644 --- a/src/cairo-gl-shaders.c +++ b/src/cairo-gl-shaders.c @@ -106,8 +106,8 @@ typedef struct cairo_gl_shader_impl { static cairo_status_t _cairo_gl_shader_compile (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, - cairo_gl_var_type_t src, - cairo_gl_var_type_t mask, + cairo_gl_operand_t *src, + cairo_gl_operand_t *mask, cairo_bool_t use_coverage, const char *fragment_text); @@ -163,10 +163,20 @@ link_shader_core_2_0 (cairo_gl_context_t *ctx, GLuint *program, "Vertex"); dispatch->BindAttribLocation (*program, CAIRO_GL_COLOR_ATTRIB_INDEX, "Color"); + dispatch->BindAttribLocation (*program, CAIRO_GL_COVERAGE_ATTRIB_INDEX, + "Coverage"); dispatch->BindAttribLocation (*program, CAIRO_GL_TEXCOORD0_ATTRIB_INDEX, "MultiTexCoord0"); dispatch->BindAttribLocation (*program, CAIRO_GL_TEXCOORD1_ATTRIB_INDEX, "MultiTexCoord1"); + dispatch->BindAttribLocation (*program, CAIRO_GL_START_COORD0_ATTRIB_INDEX, + "StartCoords0"); + dispatch->BindAttribLocation (*program, CAIRO_GL_START_COORD1_ATTRIB_INDEX, + "StartCoords1"); + dispatch->BindAttribLocation (*program, CAIRO_GL_STOP_COORD0_ATTRIB_INDEX, + "StopCoords0"); + dispatch->BindAttribLocation (*program, CAIRO_GL_STOP_COORD1_ATTRIB_INDEX, + "StopCoords1"); dispatch->LinkProgram (*program); dispatch->GetProgramiv (*program, GL_LINK_STATUS, &gl_status); @@ -202,19 +212,99 @@ destroy_program_core_2_0 (cairo_gl_context_t *ctx, GLuint shader) ctx->dispatch.DeleteProgram (shader); } +typedef struct _cairo_gl_uniform_entry { + cairo_hash_entry_t base; + char *name; + GLint location; +} cairo_gl_uniform_entry_t; + static void +_cairo_gl_uniform_init_key (cairo_gl_uniform_entry_t *key, + const char *name) +{ + unsigned long sum = 0; + unsigned int i; + + for (i = 0; i < strlen(name); i++) + sum += name[i]; + key->base.hash = sum; + key->name = strdup(name); + key->location = -1; +} + +static cairo_status_t +create_gl_uniform_entry (const char *name, + cairo_gl_uniform_entry_t **entry) +{ + *entry = malloc (sizeof (cairo_gl_uniform_entry_t)); + if (unlikely (*entry == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + _cairo_gl_uniform_init_key (*entry, name); + return CAIRO_STATUS_SUCCESS; +} + + +static cairo_bool_t +_cairo_gl_uniform_equal (const void *key_a, + const void *key_b) +{ + const cairo_gl_uniform_entry_t *a = key_a; + const cairo_gl_uniform_entry_t *b = key_b; + + return strcmp (a->name, b->name) == 0; +} + +static cairo_int_status_t +get_uniform_location (cairo_gl_context_t *ctx, + cairo_gl_shader_t *shader, + const char *name, + GLint *location) +{ + cairo_gl_uniform_entry_t *key, *uniform_entry; + cairo_int_status_t status; + + status = create_gl_uniform_entry (name, &key); + if (status) + return status; + + //_cairo_gl_uniform_init_key (key, name); + uniform_entry = _cairo_hash_table_lookup (shader->uniform_cache, + &key->base); + if (uniform_entry) { + *location = uniform_entry->location; + free (key->name); + free (key); + return CAIRO_INT_STATUS_SUCCESS; + } + + key->location = ctx->dispatch.GetUniformLocation (shader->program, name); + status = _cairo_hash_table_insert (shader->uniform_cache, &key->base); + *location = key->location; + + return status; +} + +static cairo_int_status_t bind_float_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, float value) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); - assert (location != -1); + GLint location; + cairo_int_status_t status; + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->Uniform1f (location, value); + return CAIRO_INT_STATUS_SUCCESS; } -static void +static cairo_int_status_t bind_vec2_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, @@ -222,12 +312,19 @@ bind_vec2_core_2_0 (cairo_gl_context_t *ctx, float value1) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); - assert (location != -1); + GLint location; + cairo_int_status_t status; + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->Uniform2f (location, value0, value1); + return CAIRO_INT_STATUS_SUCCESS; } -static void +static cairo_int_status_t bind_vec3_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, @@ -236,12 +333,19 @@ bind_vec3_core_2_0 (cairo_gl_context_t *ctx, float value2) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); - assert (location != -1); + GLint location; + cairo_int_status_t status; + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->Uniform3f (location, value0, value1, value2); + return CAIRO_INT_STATUS_SUCCESS; } -static void +static cairo_int_status_t bind_vec4_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, @@ -251,38 +355,59 @@ bind_vec4_core_2_0 (cairo_gl_context_t *ctx, float value3) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); - assert (location != -1); + GLint location; + cairo_int_status_t status; + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->Uniform4f (location, value0, value1, value2, value3); + return CAIRO_INT_STATUS_SUCCESS; } -static void +static cairo_int_status_t bind_matrix_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, cairo_matrix_t* m) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); + GLint location; + cairo_int_status_t status; float gl_m[16] = { m->xx, m->xy, m->x0, m->yx, m->yy, m->y0, 0, 0, 1 }; - assert (location != -1); + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->UniformMatrix3fv (location, 1, GL_TRUE, gl_m); + return CAIRO_INT_STATUS_SUCCESS; } -static void +static cairo_int_status_t bind_matrix4f_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, const char *name, GLfloat* gl_m) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; - GLint location = dispatch->GetUniformLocation (shader->program, name); - assert (location != -1); + GLint location; + cairo_int_status_t status; + + status = get_uniform_location (ctx, shader, name, &location); + if (status) + return status; + + assert(location != -1); dispatch->UniformMatrix4fv (location, 1, GL_FALSE, gl_m); + return CAIRO_INT_STATUS_SUCCESS; } static void @@ -290,9 +415,9 @@ use_program_core_2_0 (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader) { if (shader) - ctx->dispatch.UseProgram (shader->program); + ctx->dispatch.UseProgram (shader->program); else - ctx->dispatch.UseProgram (0); + ctx->dispatch.UseProgram (0); } static const cairo_gl_shader_impl_t shader_impl_core_2_0 = { @@ -316,11 +441,17 @@ typedef struct _cairo_shader_cache_entry { cairo_gl_operand_type_t mask; cairo_gl_operand_type_t dest; cairo_bool_t use_coverage; + cairo_bool_t use_color_attribute; cairo_gl_shader_in_t in; GLint src_gl_filter; cairo_bool_t src_border_fade; + cairo_extend_t src_extend; GLint mask_gl_filter; cairo_bool_t mask_border_fade; + cairo_extend_t mask_extend; + + cairo_bool_t src_use_atlas; + cairo_bool_t mask_use_atlas; cairo_gl_context_t *ctx; /* XXX: needed to destroy the program */ cairo_gl_shader_t shader; @@ -331,12 +462,16 @@ _cairo_gl_shader_cache_equal_desktop (const void *key_a, const void *key_b) { const cairo_shader_cache_entry_t *a = key_a; const cairo_shader_cache_entry_t *b = key_b; + cairo_bool_t both_have_npot_repeat = + a->ctx->has_npot_repeat && b->ctx->has_npot_repeat; return a->src == b->src && a->mask == b->mask && a->dest == b->dest && a->use_coverage == b->use_coverage && - a->in == b->in; + a->in == b->in && + (both_have_npot_repeat || a->src_extend == b->src_extend) && + (both_have_npot_repeat || a->mask_extend == b->mask_extend); } /* @@ -349,6 +484,8 @@ _cairo_gl_shader_cache_equal_gles2 (const void *key_a, const void *key_b) { const cairo_shader_cache_entry_t *a = key_a; const cairo_shader_cache_entry_t *b = key_b; + cairo_bool_t both_have_npot_repeat = + a->ctx->has_npot_repeat && b->ctx->has_npot_repeat; return a->src == b->src && a->mask == b->mask && @@ -357,14 +494,16 @@ _cairo_gl_shader_cache_equal_gles2 (const void *key_a, const void *key_b) a->in == b->in && a->src_gl_filter == b->src_gl_filter && a->src_border_fade == b->src_border_fade && + (both_have_npot_repeat || a->src_extend == b->src_extend) && a->mask_gl_filter == b->mask_gl_filter && - a->mask_border_fade == b->mask_border_fade; + a->mask_border_fade == b->mask_border_fade && + (both_have_npot_repeat || a->mask_extend == b->mask_extend); } static unsigned long _cairo_gl_shader_cache_hash (const cairo_shader_cache_entry_t *entry) { - return (entry->src << 24) | (entry->mask << 16) | (entry->dest << 8) | (entry->in << 1) | entry->use_coverage; + return (entry->src << 16) | (entry->mask << 13) | (entry->dest << 10) | (entry->in << 8) | (entry->mask_extend << 6) | (entry->src_extend << 4) |(entry->mask_use_atlas << 3) | (entry->src_use_atlas << 2) |(entry->use_color_attribute << 1) | entry->use_coverage; } static void @@ -383,6 +522,7 @@ _cairo_gl_shader_init (cairo_gl_shader_t *shader) { shader->fragment_shader = 0; shader->program = 0; + shader->uniform_cache = _cairo_hash_table_create (_cairo_gl_uniform_equal); } cairo_status_t @@ -428,8 +568,8 @@ _cairo_gl_context_init_shaders (cairo_gl_context_t *ctx) _cairo_gl_shader_init (&ctx->fill_rectangles_shader); status = _cairo_gl_shader_compile (ctx, &ctx->fill_rectangles_shader, - CAIRO_GL_VAR_NONE, - CAIRO_GL_VAR_NONE, + NULL, + NULL, FALSE, fill_fs_source); if (unlikely (status)) @@ -449,6 +589,16 @@ _cairo_gl_context_fini_shaders (cairo_gl_context_t *ctx) } _cairo_cache_fini (&ctx->shaders); + _cairo_gl_shader_fini (ctx, &ctx->fill_rectangles_shader); +} + +static void +destroy_uniform_callback (void *entry, void *closure) +{ + cairo_gl_uniform_entry_t *key = entry; + _cairo_hash_table_remove ((cairo_hash_table_t *) closure, &key->base); + free (key->name); + free (key); } void @@ -460,20 +610,32 @@ _cairo_gl_shader_fini (cairo_gl_context_t *ctx, if (shader->program) ctx->shader_impl->destroy_program (ctx, shader->program); + + if (shader->uniform_cache) { + _cairo_hash_table_foreach (shader->uniform_cache, + destroy_uniform_callback, + shader->uniform_cache); + _cairo_hash_table_destroy (shader->uniform_cache); + } } static const char *operand_names[] = { "source", "mask", "dest" }; static cairo_gl_var_type_t -cairo_gl_operand_get_var_type (cairo_gl_operand_type_t type) +cairo_gl_operand_get_var_type (cairo_gl_operand_type_t type, + cairo_bool_t use_color_attribute) { switch (type) { default: case CAIRO_GL_OPERAND_COUNT: ASSERT_NOT_REACHED; case CAIRO_GL_OPERAND_NONE: - case CAIRO_GL_OPERAND_CONSTANT: return CAIRO_GL_VAR_NONE; + case CAIRO_GL_OPERAND_CONSTANT: + if (use_color_attribute) + return CAIRO_GL_VAR_COLOR; + else + return CAIRO_GL_VAR_NONE; case CAIRO_GL_OPERAND_LINEAR_GRADIENT: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: @@ -486,17 +648,27 @@ cairo_gl_operand_get_var_type (cairo_gl_operand_type_t type) static void cairo_gl_shader_emit_variable (cairo_output_stream_t *stream, cairo_gl_var_type_t type, - cairo_gl_tex_t name) + cairo_gl_tex_t name, + cairo_bool_t use_atlas) { switch (type) { default: ASSERT_NOT_REACHED; case CAIRO_GL_VAR_NONE: break; + case CAIRO_GL_VAR_COLOR: + _cairo_output_stream_printf (stream, + "varying vec4 fragment_color;\n"); + break; case CAIRO_GL_VAR_TEXCOORDS: _cairo_output_stream_printf (stream, "varying vec2 %s_texcoords;\n", operand_names[name]); + if (use_atlas) + _cairo_output_stream_printf (stream, + "varying vec2 %s_start_coords;\n" + "varying vec2 %s_stop_coords;\n", + operand_names[name], operand_names[name]); break; } } @@ -511,6 +683,10 @@ cairo_gl_shader_emit_vertex (cairo_output_stream_t *stream, ASSERT_NOT_REACHED; case CAIRO_GL_VAR_NONE: break; + case CAIRO_GL_VAR_COLOR: + _cairo_output_stream_printf (stream, + " fragment_color = Color;\n"); + break; case CAIRO_GL_VAR_TEXCOORDS: _cairo_output_stream_printf (stream, " %s_texcoords = MultiTexCoord%d.xy;\n", @@ -528,41 +704,70 @@ cairo_gl_shader_dcl_coverage (cairo_output_stream_t *stream) static void cairo_gl_shader_def_coverage (cairo_output_stream_t *stream) { - _cairo_output_stream_printf (stream, " coverage = Color.a;\n"); + _cairo_output_stream_printf (stream, " coverage = Coverage.a;\n"); +} + +static void +cairo_gl_shader_def_use_atlas (cairo_output_stream_t *stream, + cairo_gl_var_type_t type, + cairo_gl_tex_t name) +{ + if (type == CAIRO_GL_VAR_TEXCOORDS) { + _cairo_output_stream_printf (stream, + " %s_start_coords = StartCoords%d.xy;\n" + " %s_stop_coords = StopCoords%d.xy;\n", + operand_names[name], name, + operand_names[name], name); + } } static cairo_status_t -cairo_gl_shader_get_vertex_source (cairo_gl_var_type_t src, - cairo_gl_var_type_t mask, - cairo_bool_t use_coverage, +cairo_gl_shader_get_vertex_source (cairo_gl_var_type_t src_type, + cairo_gl_var_type_t mask_type, + cairo_bool_t src_use_atlas, + cairo_bool_t mask_use_atlas, + cairo_bool_t use_coverage, cairo_gl_var_type_t dest, - char **out) + char **out) { cairo_output_stream_t *stream = _cairo_memory_stream_create (); unsigned char *source; unsigned long length; cairo_status_t status; - cairo_gl_shader_emit_variable (stream, src, CAIRO_GL_TEX_SOURCE); - cairo_gl_shader_emit_variable (stream, mask, CAIRO_GL_TEX_MASK); + cairo_gl_shader_emit_variable (stream, src_type, CAIRO_GL_TEX_SOURCE, + src_use_atlas); + cairo_gl_shader_emit_variable (stream, mask_type, CAIRO_GL_TEX_MASK, + mask_use_atlas); if (use_coverage) cairo_gl_shader_dcl_coverage (stream); _cairo_output_stream_printf (stream, "attribute vec4 Vertex;\n" "attribute vec4 Color;\n" + "attribute vec4 Coverage;\n" "attribute vec4 MultiTexCoord0;\n" "attribute vec4 MultiTexCoord1;\n" + "attribute vec2 StartCoords0;\n" + "attribute vec2 StartCoords1;\n" + "attribute vec2 StopCoords0;\n" + "attribute vec2 StopCoords1;\n" "uniform mat4 ModelViewProjectionMatrix;\n" "void main()\n" "{\n" " gl_Position = ModelViewProjectionMatrix * Vertex;\n"); - cairo_gl_shader_emit_vertex (stream, src, CAIRO_GL_TEX_SOURCE); - cairo_gl_shader_emit_vertex (stream, mask, CAIRO_GL_TEX_MASK); + cairo_gl_shader_emit_vertex (stream, src_type, CAIRO_GL_TEX_SOURCE); + cairo_gl_shader_emit_vertex (stream, mask_type, CAIRO_GL_TEX_MASK); + if (use_coverage) cairo_gl_shader_def_coverage (stream); + if (src_use_atlas) + cairo_gl_shader_def_use_atlas (stream, src_type, CAIRO_GL_TEX_SOURCE); + if (mask_use_atlas) + cairo_gl_shader_def_use_atlas (stream, mask_type, CAIRO_GL_TEX_MASK); + _cairo_output_stream_write (stream, "}\n\0", 3); @@ -598,6 +803,7 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, { const char *namestr = operand_names[name]; const char *rectstr = (ctx->tex_target == GL_TEXTURE_RECTANGLE ? "Rect" : ""); + cairo_bool_t use_atlas = _cairo_gl_operand_get_use_atlas (op); switch (op->type) { case CAIRO_GL_OPERAND_COUNT: @@ -613,22 +819,44 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, namestr); break; case CAIRO_GL_OPERAND_CONSTANT: - _cairo_output_stream_printf (stream, - "uniform vec4 %s_constant;\n" - "vec4 get_%s()\n" - "{\n" - " return %s_constant;\n" - "}\n", - namestr, namestr, namestr); + if (op->use_color_attribute) + _cairo_output_stream_printf (stream, + "varying vec4 fragment_color;\n" + "vec4 get_%s()\n" + "{\n" + " return fragment_color;\n" + "}\n", + namestr); + else + _cairo_output_stream_printf (stream, + "uniform vec4 %s_constant;\n" + "vec4 get_%s()\n" + "{\n" + " return %s_constant;\n" + "}\n", + namestr, namestr, namestr); break; case CAIRO_GL_OPERAND_TEXTURE: - _cairo_output_stream_printf (stream, - "uniform sampler2D%s %s_sampler;\n" - "uniform vec2 %s_texdims;\n" - "varying vec2 %s_texcoords;\n" - "vec4 get_%s()\n" - "{\n", - rectstr, namestr, namestr, namestr, namestr); + if (! use_atlas) { + _cairo_output_stream_printf (stream, + "uniform sampler2D%s %s_sampler;\n" + "uniform vec2 %s_texdims;\n" + "varying vec2 %s_texcoords;\n" + "vec4 get_%s()\n" + "{\n", + rectstr, namestr, namestr, namestr, namestr); + } else { + _cairo_output_stream_printf (stream, + "uniform sampler2D%s %s_sampler;\n" + "uniform vec2 %s_texdims;\n" + "varying vec2 %s_texcoords;\n" + "varying vec2 %s_start_coords;\n" + "varying vec2 %s_stop_coords;\n" + "vec4 get_%s()\n" + "{\n", + rectstr, namestr, namestr, namestr, namestr, namestr, namestr); + } + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES && _cairo_gl_shader_needs_border_fade (op)) { @@ -641,10 +869,17 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, } else { - _cairo_output_stream_printf (stream, - " return texture2D%s (%s_sampler, %s_texcoords);\n" - "}\n", - rectstr, namestr, namestr); + if (! use_atlas) { + _cairo_output_stream_printf (stream, + " return texture2D%s (%s_sampler, %s_wrap (%s_texcoords));\n" + "}\n", + rectstr, namestr, namestr, namestr); + } else { + _cairo_output_stream_printf (stream, + " return texture2D%s (%s_sampler, %s_wrap (%s_texcoords, %s_start_coords, %s_stop_coords));\n" + "}\n", + rectstr, namestr, namestr, namestr, namestr, namestr); + } } break; case CAIRO_GL_OPERAND_LINEAR_GRADIENT: @@ -669,9 +904,9 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, else { _cairo_output_stream_printf (stream, - " return texture2D%s (%s_sampler, vec2 (%s_texcoords.x, 0.5));\n" + " return texture2D%s (%s_sampler, %s_wrap (vec2 (%s_texcoords.x, 0.5)));\n" "}\n", - rectstr, namestr, namestr); + rectstr, namestr, namestr, namestr); } break; case CAIRO_GL_OPERAND_RADIAL_GRADIENT_A0: @@ -706,9 +941,10 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, else { _cairo_output_stream_printf (stream, - " return mix (vec4 (0.0), texture2D%s (%s_sampler, vec2(t, 0.5)), is_valid);\n" + " vec4 texel = texture2D%s (%s_sampler, %s_wrap (vec2 (t, 0.5)));\n" + " return mix (vec4 (0.0), texel, is_valid);\n" "}\n", - rectstr, namestr); + rectstr, namestr, namestr); } break; case CAIRO_GL_OPERAND_RADIAL_GRADIENT_NONE: @@ -750,9 +986,10 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, else { _cairo_output_stream_printf (stream, - " return mix (vec4 (0.0), texture2D%s (%s_sampler, vec2 (upper_t, 0.5)), has_color);\n" + " vec4 texel = texture2D%s (%s_sampler, %s_wrap (vec2(upper_t, 0.5)));\n" + " return mix (vec4 (0.0), texel, has_color);\n" "}\n", - rectstr, namestr); + rectstr, namestr, namestr); } break; case CAIRO_GL_OPERAND_RADIAL_GRADIENT_EXT: @@ -778,11 +1015,12 @@ cairo_gl_shader_emit_color (cairo_output_stream_t *stream, " float has_color = step (0., det) * max (is_valid.x, is_valid.y);\n" " \n" " float upper_t = mix (t.y, t.x, is_valid.x);\n" - " return mix (vec4 (0.0), texture2D%s (%s_sampler, vec2 (upper_t, 0.5)), has_color);\n" + " vec4 texel = texture2D%s (%s_sampler, %s_wrap (vec2(upper_t, 0.5)));\n" + " return mix (vec4 (0.0), texel, has_color);\n" "}\n", namestr, rectstr, namestr, namestr, namestr, namestr, namestr, namestr, namestr, namestr, namestr, - namestr, namestr, namestr, rectstr, namestr); + namestr, namestr, namestr, rectstr, namestr, namestr); break; } } @@ -838,6 +1076,100 @@ _cairo_gl_shader_emit_border_fade (cairo_output_stream_t *stream, _cairo_output_stream_printf (stream, "}\n"); } +/* + * Emits the wrap function used by an operand. + * + * In OpenGL ES 2.0, repeat wrap modes (GL_REPEAT and GL_MIRRORED REPEAT) are + * only available for NPOT textures if the GL_OES_texture_npot is supported. + * If GL_OES_texture_npot is not supported, we need to implement the wrapping + * functionality in the shader. + */ +static void +_cairo_gl_shader_emit_wrap (cairo_gl_context_t *ctx, + cairo_output_stream_t *stream, + cairo_gl_operand_t *operand, + cairo_gl_tex_t name) +{ + const char *namestr = operand_names[name]; + cairo_extend_t extend = _cairo_gl_operand_get_extend (operand); + cairo_bool_t use_atlas = _cairo_gl_operand_get_use_atlas (operand); + + if (use_atlas) + _cairo_output_stream_printf (stream, + "vec2 %s_wrap (vec2 coords, vec2 start_coords, vec2 stop_coords)\n" + "{\n", + namestr); + else + _cairo_output_stream_printf (stream, + "vec2 %s_wrap(vec2 coords)\n" + "{\n", + namestr); + + if (use_atlas) { + if (extend == CAIRO_EXTEND_REPEAT) { + _cairo_output_stream_printf (stream, + " vec2 range = stop_coords - start_coords;\n" + " return mod (coords - start_coords, range) + start_coords;\n"); + } else if (extend == CAIRO_EXTEND_REFLECT){ + _cairo_output_stream_printf (stream, + " vec2 range = stop_coords - start_coords;\n" + " vec2 frac = mod (coords - start_coords, range);\n" + " return mix(frac + start_coords, range - frac + start_coords, mod(floor((coords - start_coords) / range), 2.0));\n"); + } + else if (extend == CAIRO_EXTEND_PAD) { + _cairo_output_stream_printf (stream, + " bvec2 compare_to_start = lessThan (coords, start_coords);\n" + " bvec2 compare_to_stop = greaterThan (coords, stop_coords);\n" + " if (all (compare_to_start))\n" + " return start_coords;\n" + " else if (all (compare_to_stop))\n" + " return stop_coords;\n" + " else if (compare_to_start.x && compare_to_stop.y)\n" + " return vec2 (start_coords.x, stop_coords.y);\n" + " else if (compare_to_start.x && ! compare_to_stop.y)\n" + " return vec2 (start_coords.x, coords.y);\n" + " else if (compare_to_stop.x && compare_to_start.y)\n" + " return vec2 (stop_coords.x, start_coords.y);\n" + " else if (compare_to_stop.x && ! compare_to_stop.y)\n" + " return vec2 (stop_coords.x, coords.y);\n" + " else if (compare_to_start.y && ! compare_to_start.x)\n" + " return vec2 (coords.x, start_coords.y);\n" + " else if (compare_to_stop.y && ! compare_to_start.x)\n" + " return vec2 (coords.x, stop_coords.y);\n" + " else\n" + " return coords;\n"); + } + else { + _cairo_output_stream_printf (stream, + " if (any (lessThan (coords, start_coords)))\n" + " return vec2 (-1.0);\n" + " if (any (greaterThan (coords, stop_coords)))\n" + " return vec2 (-1.0);\n" + " else\n" + " return coords;\n"); + } + } + else { + if (! ctx->has_npot_repeat && + (extend == CAIRO_EXTEND_REPEAT || + extend == CAIRO_EXTEND_REFLECT)) { + if (extend == CAIRO_EXTEND_REPEAT) { + _cairo_output_stream_printf (stream, + " return fract(coords);\n"); + } else { /* CAIRO_EXTEND_REFLECT */ + _cairo_output_stream_printf (stream, + " return mix(fract(coords), 1.0 - fract(coords), floor(mod(coords, 2.0)));\n"); + } + } + else + { + _cairo_output_stream_printf (stream, " return coords;\n"); + } + } + + _cairo_output_stream_printf (stream, "}\n"); +} + static cairo_status_t cairo_gl_shader_get_fragment_source (cairo_gl_context_t *ctx, cairo_gl_shader_in_t in, @@ -858,6 +1190,9 @@ cairo_gl_shader_get_fragment_source (cairo_gl_context_t *ctx, "precision mediump float;\n" "#endif\n"); + _cairo_gl_shader_emit_wrap (ctx, stream, src, CAIRO_GL_TEX_SOURCE); + _cairo_gl_shader_emit_wrap (ctx, stream, mask, CAIRO_GL_TEX_MASK); + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES) { if (_cairo_gl_shader_needs_border_fade (src)) _cairo_gl_shader_emit_border_fade (stream, src, CAIRO_GL_TEX_SOURCE); @@ -912,23 +1247,54 @@ cairo_gl_shader_get_fragment_source (cairo_gl_context_t *ctx, static cairo_status_t _cairo_gl_shader_compile (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader, - cairo_gl_var_type_t src, - cairo_gl_var_type_t mask, + cairo_gl_operand_t *src, + cairo_gl_operand_t *mask, cairo_bool_t use_coverage, const char *fragment_text) { unsigned int vertex_shader; cairo_status_t status; + cairo_gl_var_type_t src_type; + cairo_gl_var_type_t mask_type; + cairo_extend_t src_atlas_extend = CAIRO_EXTEND_NONE; + cairo_extend_t mask_atlas_extend = CAIRO_EXTEND_NONE; + cairo_bool_t src_use_atlas = FALSE; + cairo_bool_t mask_use_atlas = FALSE; assert (shader->program == 0); - vertex_shader = cairo_gl_var_type_hash (src, mask, use_coverage, + if (src != NULL) { + src_type = cairo_gl_operand_get_var_type (src->type, + src->use_color_attribute); + src_atlas_extend = _cairo_gl_operand_get_atlas_extend (src); + src_use_atlas = _cairo_gl_operand_get_use_atlas (src); + } + else + src_type = CAIRO_GL_VAR_NONE; + + if (mask != NULL) { + mask_type = cairo_gl_operand_get_var_type (mask->type, + mask->use_color_attribute); + mask_atlas_extend = _cairo_gl_operand_get_atlas_extend (mask); + mask_use_atlas = _cairo_gl_operand_get_use_atlas (mask); + } + else + mask_type = CAIRO_GL_VAR_NONE; + + vertex_shader = cairo_gl_var_type_hash (src_type, mask_type, + src_atlas_extend, + mask_atlas_extend, + src_use_atlas, + mask_use_atlas, + use_coverage, CAIRO_GL_VAR_NONE); if (ctx->vertex_shaders[vertex_shader] == 0) { char *source; - status = cairo_gl_shader_get_vertex_source (src, - mask, + status = cairo_gl_shader_get_vertex_source (src_type, + mask_type, + src_use_atlas, + mask_use_atlas, use_coverage, CAIRO_GL_VAR_NONE, &source); @@ -963,13 +1329,14 @@ _cairo_gl_shader_compile (cairo_gl_context_t *ctx, * texture unit 1 if present, so we can just initialize these once at * compile time. */ -static void +static cairo_int_status_t _cairo_gl_shader_set_samplers (cairo_gl_context_t *ctx, cairo_gl_shader_t *shader) { cairo_gl_dispatch_t *dispatch = &ctx->dispatch; GLint location; GLint saved_program; + cairo_int_status_t status; /* We have to save/restore the current program because we might be * asked for a different program while a shader is bound. This shouldn't @@ -978,17 +1345,22 @@ _cairo_gl_shader_set_samplers (cairo_gl_context_t *ctx, glGetIntegerv (GL_CURRENT_PROGRAM, &saved_program); dispatch->UseProgram (shader->program); - location = dispatch->GetUniformLocation (shader->program, "source_sampler"); + status = get_uniform_location (ctx, shader, "source_sampler", &location); + if (status) + return status; if (location != -1) { dispatch->Uniform1i (location, CAIRO_GL_TEX_SOURCE); } - location = dispatch->GetUniformLocation (shader->program, "mask_sampler"); + get_uniform_location (ctx, shader, "mask_sampler", &location); + if (status) + return status; if (location != -1) { dispatch->Uniform1i (location, CAIRO_GL_TEX_MASK); } dispatch->UseProgram (saved_program); + return CAIRO_INT_STATUS_SUCCESS; } void @@ -1065,15 +1437,21 @@ _cairo_gl_get_shader_by_type (cairo_gl_context_t *ctx, char *fs_source; cairo_status_t status; + lookup.ctx = ctx; lookup.src = source->type; lookup.mask = mask->type; lookup.dest = CAIRO_GL_OPERAND_NONE; lookup.use_coverage = use_coverage; + lookup.use_color_attribute = source->use_color_attribute; lookup.in = in; lookup.src_gl_filter = _cairo_gl_operand_get_gl_filter (source); lookup.src_border_fade = _cairo_gl_shader_needs_border_fade (source); + lookup.src_extend = _cairo_gl_operand_get_atlas_extend (source); lookup.mask_gl_filter = _cairo_gl_operand_get_gl_filter (mask); lookup.mask_border_fade = _cairo_gl_shader_needs_border_fade (mask); + lookup.mask_extend = _cairo_gl_operand_get_atlas_extend (mask); + lookup.src_use_atlas = _cairo_gl_operand_get_use_atlas (source); + lookup.mask_use_atlas = _cairo_gl_operand_get_use_atlas (mask); lookup.base.hash = _cairo_gl_shader_cache_hash (&lookup); lookup.base.size = 1; @@ -1106,27 +1484,29 @@ _cairo_gl_get_shader_by_type (cairo_gl_context_t *ctx, _cairo_gl_shader_init (&entry->shader); status = _cairo_gl_shader_compile (ctx, &entry->shader, - cairo_gl_operand_get_var_type (source->type), - cairo_gl_operand_get_var_type (mask->type), + source, + mask, use_coverage, fs_source); free (fs_source); - if (unlikely (status)) { - free (entry); - return status; - } + if (unlikely (status)) + goto error; - _cairo_gl_shader_set_samplers (ctx, &entry->shader); + status = _cairo_gl_shader_set_samplers (ctx, &entry->shader); + if (unlikely (status)) + goto error; status = _cairo_cache_insert (&ctx->shaders, &entry->base); - if (unlikely (status)) { - _cairo_gl_shader_fini (ctx, &entry->shader); - free (entry); - return status; - } + if (unlikely (status)) + goto error; *shader = &entry->shader; return CAIRO_STATUS_SUCCESS; + +error: + _cairo_gl_shader_fini (ctx, &entry->shader); + free (entry); + return status; } diff --git a/src/cairo-gl-source.c b/src/cairo-gl-source.c new file mode 100644 index 0000000..baef634 --- /dev/null +++ b/src/cairo-gl-source.c @@ -0,0 +1,110 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Chris Wilson + */ + +#include "cairoint.h" + +#include "cairo-gl-private.h" + +#include "cairo-surface-backend-private.h" + +static cairo_status_t +_cairo_gl_source_finish (void *abstract_surface) +{ + cairo_gl_source_t *source = abstract_surface; + + _cairo_gl_operand_destroy (&source->operand); + return CAIRO_STATUS_SUCCESS; +} + +static const cairo_surface_backend_t cairo_gl_source_backend = { + CAIRO_SURFACE_TYPE_GL, + _cairo_gl_source_finish, + NULL, /* read-only wrapper */ +}; + +cairo_surface_t * +_cairo_gl_pattern_to_source (cairo_surface_t *dst, + const cairo_pattern_t *pattern, + cairo_bool_t is_mask, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + int *src_x, int *src_y) +{ + cairo_gl_source_t *source; + cairo_int_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (pattern == NULL) + return _cairo_gl_white_source (); + + source = malloc (sizeof (*source)); + if (unlikely (source == NULL)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + _cairo_surface_init (&source->base, + &cairo_gl_source_backend, + NULL, /* device */ + CAIRO_CONTENT_COLOR_ALPHA); + + *src_x = *src_y = 0; + status = _cairo_gl_operand_init (&source->operand, pattern, + (cairo_gl_surface_t *)dst, + sample, extents, FALSE); + if (unlikely (status)) { + cairo_surface_destroy (&source->base); + return _cairo_surface_create_in_error (status); + } + + return &source->base; +} + +cairo_surface_t * +_cairo_gl_white_source (void) +{ + cairo_gl_source_t *source; + + source = malloc (sizeof (*source)); + if (unlikely (source == NULL)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + _cairo_surface_init (&source->base, + &cairo_gl_source_backend, + NULL, /* device */ + CAIRO_CONTENT_COLOR_ALPHA); + + _cairo_gl_solid_operand_init (&source->operand, CAIRO_COLOR_WHITE); + + return &source->base; +} diff --git a/src/cairo-gl-spans-compositor.c b/src/cairo-gl-spans-compositor.c index 3e52f28..0b23056 100644 --- a/src/cairo-gl-spans-compositor.c +++ b/src/cairo-gl-spans-compositor.c @@ -240,13 +240,14 @@ emit_aligned_boxes (cairo_gl_context_t *ctx, const struct _cairo_boxes_chunk *chunk; int i; + TRACE ((stderr, "%s: num_boxes=%d\n", __FUNCTION__, boxes->num_boxes)); for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { for (i = 0; i < chunk->count; i++) { int x1 = _cairo_fixed_integer_part (chunk->base[i].p1.x); int y1 = _cairo_fixed_integer_part (chunk->base[i].p1.y); int x2 = _cairo_fixed_integer_part (chunk->base[i].p2.x); int y2 = _cairo_fixed_integer_part (chunk->base[i].p2.y); - _cairo_gl_composite_emit_rect (ctx, x1, y1, x2, y2, 0); + _cairo_gl_composite_emit_rect (ctx, x1, y1, x2, y2, 255); } } } @@ -261,7 +262,8 @@ fill_boxes (void *_dst, cairo_gl_context_t *ctx; cairo_int_status_t status; - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, NULL); + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; @@ -279,65 +281,65 @@ FAIL: return status; } -typedef struct cairo_gl_source { - cairo_surface_t base; - - cairo_gl_operand_t operand; -} cairo_gl_source_t; - -static cairo_status_t -_cairo_gl_source_finish (void *abstract_surface) +static cairo_int_status_t +draw_image_boxes (void *_dst, + cairo_image_surface_t *image, + cairo_boxes_t *boxes, + int dx, int dy) { - cairo_gl_source_t *source = abstract_surface; + cairo_gl_surface_t *dst = _dst; + struct _cairo_boxes_chunk *chunk; + int i; + + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { + for (i = 0; i < chunk->count; i++) { + cairo_box_t *b = &chunk->base[i]; + int x = _cairo_fixed_integer_part (b->p1.x); + int y = _cairo_fixed_integer_part (b->p1.y); + int w = _cairo_fixed_integer_part (b->p2.x) - x; + int h = _cairo_fixed_integer_part (b->p2.y) - y; + cairo_status_t status; + + status = _cairo_gl_surface_draw_image (dst, image, + x + dx, y + dy, + w, h, + x, y); + if (unlikely (status)) + return status; + } + } - _cairo_gl_operand_destroy (&source->operand); return CAIRO_STATUS_SUCCESS; } -static const cairo_surface_backend_t cairo_gl_source_backend = { - CAIRO_SURFACE_TYPE_GL, - _cairo_gl_source_finish, - NULL, /* read-only wrapper */ -}; - -static cairo_surface_t * -pattern_to_surface (cairo_surface_t *dst, - const cairo_pattern_t *pattern, - cairo_bool_t is_mask, - const cairo_rectangle_int_t *extents, - const cairo_rectangle_int_t *sample, - int *src_x, int *src_y) +static cairo_int_status_t copy_boxes (void *_dst, + cairo_surface_t *src, + cairo_boxes_t *boxes, + const cairo_rectangle_int_t *extents, + int dx, int dy) { - cairo_gl_source_t *source; + cairo_gl_composite_t setup; + cairo_gl_context_t *ctx; cairo_int_status_t status; - source = malloc (sizeof (*source)); - if (unlikely (source == NULL)) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - - _cairo_surface_init (&source->base, - &cairo_gl_source_backend, - NULL, /* device */ - CAIRO_CONTENT_COLOR_ALPHA); - - *src_x = *src_y = 0; - status = _cairo_gl_operand_init (&source->operand, pattern, (cairo_gl_surface_t *)dst, - extents->x, extents->y, - extents->x, extents->y, - extents->width, extents->height); - if (unlikely (status)) { - cairo_surface_destroy (&source->base); - return _cairo_surface_create_in_error (status); - } + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_gl_composite_init (&setup, CAIRO_OPERATOR_SOURCE, _dst, FALSE); + if (unlikely (status)) + goto FAIL; - return &source->base; -} + _cairo_gl_composite_set_source_operand (&setup, source_to_operand (src)); + _cairo_gl_operand_translate (&setup.src, -dx, -dy); -static inline cairo_gl_operand_t * -source_to_operand (cairo_surface_t *surface) -{ - cairo_gl_source_t *source = (cairo_gl_source_t *)surface; - return source ? &source->operand : NULL; + status = _cairo_gl_composite_begin (&setup, &ctx); + if (unlikely (status)) + goto FAIL; + + emit_aligned_boxes (ctx, boxes); + status = _cairo_gl_context_release (ctx, CAIRO_STATUS_SUCCESS); + +FAIL: + _cairo_gl_composite_fini (&setup); + return status; } static cairo_int_status_t @@ -357,16 +359,36 @@ composite_boxes (void *_dst, cairo_gl_composite_t setup; cairo_gl_context_t *ctx; cairo_int_status_t status; - - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, extents); + cairo_gl_operand_t tmp_operand; + cairo_gl_operand_t *src_operand; + + TRACE ((stderr, "%s mask=(%d,%d), dst=(%d, %d)\n", __FUNCTION__, + mask_x, mask_y, dst_x, dst_y)); + + if (abstract_mask) { + if (op == CAIRO_OPERATOR_CLEAR) { + _cairo_gl_solid_operand_init (&tmp_operand, CAIRO_COLOR_WHITE); + src_operand = &tmp_operand; + op = CAIRO_OPERATOR_DEST_OUT; + } else if (op == CAIRO_OPERATOR_SOURCE) { + /* requires a LERP in the shader between dest and source */ + return CAIRO_INT_STATUS_UNSUPPORTED; + } else + src_operand = source_to_operand (abstract_src); + } else + src_operand = source_to_operand (abstract_src); + + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; _cairo_gl_composite_set_source_operand (&setup, - source_to_operand (abstract_src)); + src_operand); + _cairo_gl_operand_translate (&setup.src, -src_x, -src_y); _cairo_gl_composite_set_mask_operand (&setup, source_to_operand (abstract_mask)); + _cairo_gl_operand_translate (&setup.mask, -mask_x, -mask_y); status = _cairo_gl_composite_begin (&setup, &ctx); if (unlikely (status)) @@ -377,12 +399,15 @@ composite_boxes (void *_dst, FAIL: _cairo_gl_composite_fini (&setup); + if (src_operand == &tmp_operand) + _cairo_gl_operand_destroy (&tmp_operand); return status; } static cairo_int_status_t _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r, const cairo_composite_rectangles_t *composite, + cairo_antialias_t antialias, cairo_bool_t needs_clip) { cairo_gl_span_renderer_t *r = (cairo_gl_span_renderer_t *)_r; @@ -390,6 +415,13 @@ _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r, cairo_operator_t op = composite->op; cairo_int_status_t status; + if (op == CAIRO_OPERATOR_SOURCE) { + if (! _cairo_pattern_is_opaque (&composite->source_pattern.base, + &composite->source_sample_area)) + return CAIRO_INT_STATUS_UNSUPPORTED; + op = CAIRO_OPERATOR_OVER; + } + /* XXX earlier! */ if (op == CAIRO_OPERATOR_CLEAR) { source = &_cairo_pattern_white.base; @@ -407,17 +439,14 @@ _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r, status = _cairo_gl_composite_init (&r->setup, op, (cairo_gl_surface_t *)composite->surface, - FALSE, &composite->unbounded); + FALSE); if (unlikely (status)) goto FAIL; status = _cairo_gl_composite_set_source (&r->setup, source, - composite->unbounded.x, - composite->unbounded.y, - composite->unbounded.x, - composite->unbounded.y, - composite->unbounded.width, - composite->unbounded.height); + &composite->source_sample_area, + &composite->unbounded, + FALSE); if (unlikely (status)) goto FAIL; @@ -427,12 +456,8 @@ _cairo_gl_span_renderer_init (cairo_abstract_span_renderer_t *_r, } else { status = _cairo_gl_composite_set_mask (&r->setup, &composite->mask_pattern.base, - composite->unbounded.x, - composite->unbounded.y, - composite->unbounded.x, - composite->unbounded.y, - composite->unbounded.width, - composite->unbounded.height); + &composite->mask_sample_area, + &composite->unbounded); if (unlikely (status)) goto FAIL; } @@ -473,6 +498,9 @@ _cairo_gl_span_renderer_fini (cairo_abstract_span_renderer_t *_r, { cairo_gl_span_renderer_t *r = (cairo_gl_span_renderer_t *) _r; + if (status == CAIRO_INT_STATUS_UNSUPPORTED) + return; + if (status == CAIRO_INT_STATUS_SUCCESS) r->base.finish (r); @@ -482,21 +510,26 @@ _cairo_gl_span_renderer_fini (cairo_abstract_span_renderer_t *_r, const cairo_compositor_t * _cairo_gl_span_compositor_get (void) { - static cairo_spans_compositor_t compositor; + static cairo_spans_compositor_t spans; + static cairo_compositor_t shape; - if (compositor.base.delegate == NULL) { + if (spans.base.delegate == NULL) { /* The fallback to traps here is essentially just for glyphs... */ - _cairo_spans_compositor_init (&compositor, - _cairo_gl_traps_compositor_get()); - - compositor.fill_boxes = fill_boxes; - //compositor.check_composite_boxes = check_composite_boxes; - compositor.pattern_to_surface = pattern_to_surface; - compositor.composite_boxes = composite_boxes; - //compositor.check_span_renderer = check_span_renderer; - compositor.renderer_init = _cairo_gl_span_renderer_init; - compositor.renderer_fini = _cairo_gl_span_renderer_fini; + _cairo_shape_mask_compositor_init (&shape, + _cairo_gl_traps_compositor_get()); + shape.glyphs = NULL; + + _cairo_spans_compositor_init (&spans, &shape); + spans.fill_boxes = fill_boxes; + spans.draw_image_boxes = draw_image_boxes; + spans.copy_boxes = copy_boxes; + //spans.check_composite_boxes = check_composite_boxes; + spans.pattern_to_surface = _cairo_gl_pattern_to_source; + spans.composite_boxes = composite_boxes; + //spans.check_span_renderer = check_span_renderer; + spans.renderer_init = _cairo_gl_span_renderer_init; + spans.renderer_fini = _cairo_gl_span_renderer_fini; } - return &compositor.base; + return &spans.base; } diff --git a/src/cairo-gl-surface-legacy.c b/src/cairo-gl-surface-legacy.c index 0ba356e..31d0ee0 100644 --- a/src/cairo-gl-surface-legacy.c +++ b/src/cairo-gl-surface-legacy.c @@ -44,6 +44,7 @@ #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-gl-private.h" +#include "cairo-image-surface-inline.h" cairo_status_t _cairo_gl_surface_acquire_dest_image (void *abstract_surface, @@ -141,7 +142,7 @@ _cairo_gl_surface_clone_similar (void *abstract_surface, return UNSUPPORTED ("unknown src surface type in clone_similar"); } -/** Creates a cairo-gl pattern surface for the given trapezoids */ +/* Creates a cairo-gl pattern surface for the given trapezoids */ static cairo_status_t _cairo_gl_get_traps_pattern (cairo_gl_surface_t *dst, int dst_x, int dst_y, @@ -250,7 +251,8 @@ _cairo_gl_surface_composite (cairo_operator_t op, status = _cairo_gl_composite_set_source (&setup, src, src_x, src_y, dst_x, dst_y, - width, height); + width, height, + FALSE); if (unlikely (status)) goto CLEANUP; @@ -367,7 +369,8 @@ _cairo_gl_surface_fill_rectangles (void *abstract_dst, status = _cairo_gl_composite_set_source (&setup, &solid.base, 0, 0, 0, 0, - 0, 0); + 0, 0, + FALSE); if (unlikely (status)) goto CLEANUP; @@ -579,7 +582,8 @@ _cairo_gl_surface_create_span_renderer (cairo_operator_t op, status = _cairo_gl_composite_set_source (&renderer->setup, src, extents->x, extents->y, extents->x, extents->y, - extents->width, extents->height); + extents->width, extents->height, + FALSE); if (unlikely (status)) goto FAIL; diff --git a/src/cairo-gl-surface.c b/src/cairo-gl-surface.c index 9fcbc3e..754b0a8 100644 --- a/src/cairo-gl-surface.c +++ b/src/cairo-gl-surface.c @@ -49,6 +49,8 @@ #include "cairo-image-surface-private.h" #include "cairo-surface-backend-private.h" +static const cairo_surface_backend_t _cairo_gl_surface_backend; + static cairo_status_t _cairo_gl_surface_flush (void *abstract_surface); @@ -349,12 +351,38 @@ _cairo_gl_operator_is_supported (cairo_operator_t op) return op < CAIRO_OPERATOR_SATURATE; } +static void +_cairo_gl_surface_embedded_operand_init (cairo_gl_surface_t *surface) +{ + cairo_gl_operand_t *operand = &surface->operand; + cairo_surface_attributes_t *attributes = &operand->texture.attributes; + + memset (operand, 0, sizeof (cairo_gl_operand_t)); + + operand->type = CAIRO_GL_OPERAND_TEXTURE; + operand->texture.surface = surface; + operand->texture.tex = surface->tex; + + if (_cairo_gl_device_requires_power_of_two_textures (surface->base.device)) { + cairo_matrix_init_identity (&attributes->matrix); + } else { + cairo_matrix_init_scale (&attributes->matrix, + 1.0 / surface->width, + 1.0 / surface->height); + } + + attributes->extend = CAIRO_EXTEND_NONE; + attributes->filter = CAIRO_FILTER_NEAREST; +} + void _cairo_gl_surface_init (cairo_device_t *device, cairo_gl_surface_t *surface, cairo_content_t content, int width, int height) { + assert (width > 0 && height > 0); + _cairo_surface_init (&surface->base, &_cairo_gl_surface_backend, device, @@ -363,6 +391,9 @@ _cairo_gl_surface_init (cairo_device_t *device, surface->width = width; surface->height = height; surface->needs_update = FALSE; + surface->needs_to_cache = FALSE; + + _cairo_gl_surface_embedded_operand_init (surface); } static cairo_surface_t * @@ -375,13 +406,15 @@ _cairo_gl_surface_create_scratch_for_texture (cairo_gl_context_t *ctx, cairo_gl_surface_t *surface; assert (width <= ctx->max_framebuffer_size && height <= ctx->max_framebuffer_size); - surface = calloc (1, sizeof (cairo_gl_surface_t)); if (unlikely (surface == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - _cairo_gl_surface_init (&ctx->base, surface, content, width, height); surface->tex = tex; + _cairo_gl_surface_init (&ctx->base, surface, content, width, height); + + surface->supports_msaa = ctx->supports_msaa; + surface->supports_stencil = TRUE; /* Create the texture used to store the surface's data. */ _cairo_gl_context_activate (ctx, CAIRO_GL_TEX_TEMP); @@ -396,7 +429,8 @@ cairo_surface_t * _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx, cairo_content_t content, int width, - int height) + int height, + cairo_bool_t true_alpha) { cairo_gl_surface_t *surface; GLenum format; @@ -425,7 +459,10 @@ _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx, break; case CAIRO_CONTENT_ALPHA: /* We want to be trying GL_ALPHA framebuffer objects here. */ - format = GL_RGBA; + if (true_alpha) + format = GL_ALPHA; + else + format = GL_RGBA; break; case CAIRO_CONTENT_COLOR: /* GL_RGB is almost what we want here -- sampling 1 alpha when @@ -458,7 +495,10 @@ _cairo_gl_surface_clear (cairo_gl_surface_t *surface, if (unlikely (status)) return status; - _cairo_gl_context_set_destination (ctx, surface); + if (ctx->current_target == surface) + _cairo_gl_composite_flush (ctx); + + _cairo_gl_context_set_destination (ctx, surface, surface->msaa_active); if (surface->base.content & CAIRO_CONTENT_COLOR) { r = color->red * color->alpha; g = color->green * color->alpha; @@ -472,10 +512,11 @@ _cairo_gl_surface_clear (cairo_gl_surface_t *surface, a = 1.0; } - glDisable (GL_SCISSOR_TEST); + _disable_scissor_buffer (); glClearColor (r, g, b, a); glClear (GL_COLOR_BUFFER_BIT); + surface->content_changed = TRUE; return _cairo_gl_context_release (ctx, status); } @@ -506,7 +547,7 @@ cairo_gl_surface_create (cairo_device_t *abstract_device, return _cairo_surface_create_in_error (status); surface = (cairo_gl_surface_t *) - _cairo_gl_surface_create_scratch (ctx, content, width, height); + _cairo_gl_surface_create_scratch (ctx, content, width, height, FALSE); if (unlikely (surface->base.status)) { status = _cairo_gl_context_release (ctx, surface->base.status); cairo_surface_destroy (&surface->base); @@ -550,6 +591,8 @@ slim_hidden_def (cairo_gl_surface_create); * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if an error such as out of memory * occurs. You can use cairo_surface_status() to check for this. + * + * Since: TBD **/ cairo_surface_t * cairo_gl_surface_create_for_texture (cairo_device_t *abstract_device, @@ -666,7 +709,10 @@ cairo_gl_surface_swapbuffers (cairo_surface_t *abstract_surface) if (unlikely (status)) return; - cairo_surface_flush (abstract_surface); + /* For swapping on EGL, at least, we need a valid context/target. */ + _cairo_gl_context_set_destination (ctx, surface, FALSE); + /* And in any case we should flush any pending operations. */ + _cairo_gl_composite_flush (ctx); ctx->swap_buffers (ctx, surface); @@ -703,7 +749,8 @@ _cairo_gl_surface_create_similar (void *abstract_surface, if (unlikely (status)) return _cairo_surface_create_in_error (status); - surface = _cairo_gl_surface_create_scratch (ctx, content, width, height); + surface = _cairo_gl_surface_create_scratch (ctx, content, width, + height, FALSE); status = _cairo_gl_context_release (ctx, status); if (unlikely (status)) { @@ -726,8 +773,8 @@ _cairo_gl_surface_fill_alpha_channel (cairo_gl_surface_t *dst, _cairo_gl_composite_flush (ctx); glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); - status = _cairo_gl_composite_init (&setup, CAIRO_OPERATOR_SOURCE, dst, - FALSE, NULL); + status = _cairo_gl_composite_init (&setup, CAIRO_OPERATOR_SOURCE, + dst, FALSE); if (unlikely (status)) goto CLEANUP; @@ -801,8 +848,6 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, if (unlikely (status)) goto FAIL; - if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) - glPixelStorei (GL_UNPACK_ROW_LENGTH, src->stride / cpp); if (_cairo_gl_surface_is_texture (dst)) { void *data_start = src->data + src_y * src->stride + src_x * cpp; void *data_start_gles2 = NULL; @@ -815,9 +860,10 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, * b. the row stride cannot be handled by GL itself using a 4 byte * alignment constraint */ - if (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES && - (src->width * cpp < src->stride - 3 || - width != src->width)) + if (src->stride < 0 || + (ctx->gl_flavor == CAIRO_GL_FLAVOR_ES && + (src->width * cpp < src->stride - 3 || + width != src->width))) { glPixelStorei (GL_UNPACK_ALIGNMENT, 1); status = _cairo_gl_surface_extract_image_data (src, src_x, src_y, @@ -825,10 +871,14 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, &data_start_gles2); if (unlikely (status)) goto FAIL; + + data_start = data_start_gles2; } else { glPixelStorei (GL_UNPACK_ALIGNMENT, 4); + if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) + glPixelStorei (GL_UNPACK_ROW_LENGTH, src->stride / cpp); } _cairo_gl_context_activate (ctx, CAIRO_GL_TEX_TEMP); @@ -837,9 +887,7 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, glTexParameteri (ctx->tex_target, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexSubImage2D (ctx->tex_target, 0, dst_x, dst_y, width, height, - format, type, - data_start_gles2 != NULL ? data_start_gles2 : - data_start); + format, type, data_start); free (data_start_gles2); @@ -857,11 +905,10 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, tmp = _cairo_gl_surface_create_scratch (ctx, dst->base.content, - width, height); - if (unlikely (tmp->status)) { - cairo_surface_destroy (tmp); + width, height, FALSE); + if (unlikely (tmp->status)) goto FAIL; - } + status = _cairo_gl_surface_draw_image ((cairo_gl_surface_t *) tmp, src, src_x, src_y, @@ -869,12 +916,25 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, 0, 0); if (status == CAIRO_INT_STATUS_SUCCESS) { cairo_surface_pattern_t tmp_pattern; + cairo_rectangle_int_t r; + cairo_clip_t *clip; _cairo_pattern_init_for_surface (&tmp_pattern, tmp); + cairo_matrix_init_translate (&tmp_pattern.base.matrix, + -dst_x, -dst_y); + tmp_pattern.base.filter = CAIRO_FILTER_NEAREST; + tmp_pattern.base.extend = CAIRO_EXTEND_NONE; + + r.x = dst_x; + r.y = dst_y; + r.width = width; + r.height = height; + clip = _cairo_clip_intersect_rectangle (NULL, &r); status = _cairo_surface_paint (&dst->base, CAIRO_OPERATOR_SOURCE, &tmp_pattern.base, - NULL); + clip); + _cairo_clip_destroy (clip); _cairo_pattern_fini (&tmp_pattern.base); } @@ -882,14 +942,13 @@ _cairo_gl_surface_draw_image (cairo_gl_surface_t *dst, } FAIL: - if (ctx->gl_flavor == CAIRO_GL_FLAVOR_DESKTOP) - glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); - status = _cairo_gl_context_release (ctx, status); if (clone) cairo_surface_destroy (&clone->base); + if (likely (status)) + dst->content_changed = TRUE; return status; } @@ -911,21 +970,32 @@ _cairo_gl_surface_finish (void *abstract_surface) return status; if (ctx->operands[CAIRO_GL_TEX_SOURCE].type == CAIRO_GL_OPERAND_TEXTURE && - ctx->operands[CAIRO_GL_TEX_SOURCE].texture.surface == surface) + ctx->operands[CAIRO_GL_TEX_SOURCE].texture.surface == surface) { + _cairo_gl_composite_flush (ctx); _cairo_gl_context_destroy_operand (ctx, CAIRO_GL_TEX_SOURCE); - if (ctx->operands[CAIRO_GL_TEX_MASK].type == CAIRO_GL_OPERAND_TEXTURE && - ctx->operands[CAIRO_GL_TEX_MASK].texture.surface == surface) + } + else if (ctx->operands[CAIRO_GL_TEX_MASK].type == CAIRO_GL_OPERAND_TEXTURE && + ctx->operands[CAIRO_GL_TEX_MASK].texture.surface == surface) { + _cairo_gl_composite_flush (ctx); _cairo_gl_context_destroy_operand (ctx, CAIRO_GL_TEX_MASK); + } + if (ctx->current_target == surface) ctx->current_target = NULL; - if (surface->depth) - ctx->dispatch.DeleteFramebuffers (1, &surface->depth); if (surface->fb) ctx->dispatch.DeleteFramebuffers (1, &surface->fb); if (surface->owns_tex) glDeleteTextures (1, &surface->tex); +#if CAIRO_HAS_GL_SURFACE + if (surface->msaa_fb) + ctx->dispatch.DeleteFramebuffers (1, &surface->msaa_fb); + if (surface->msaa_rb) + ctx->dispatch.DeleteRenderbuffers (1, &surface->msaa_rb); +#endif + + return _cairo_gl_context_release (ctx, status); } @@ -941,6 +1011,7 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, unsigned int cpp; cairo_bool_t invert; cairo_status_t status; + int y; /* Want to use a switch statement here but the compiler gets whiny. */ if (surface->base.content == CAIRO_CONTENT_COLOR_ALPHA) { @@ -1004,12 +1075,14 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, return _cairo_surface_create_in_error (status); } + cairo_surface_set_device_offset (&image->base, -extents->x, -extents->y); + /* This is inefficient, as we'd rather just read the thing without making * it the destination. But then, this is the fallback path, so let's not * fall back instead. */ _cairo_gl_composite_flush (ctx); - _cairo_gl_context_set_destination (ctx, surface); + _cairo_gl_context_set_destination (ctx, surface, FALSE); invert = ! _cairo_gl_surface_is_texture (surface) && ctx->has_mesa_pack_invert; @@ -1019,7 +1092,12 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, glPixelStorei (GL_PACK_ROW_LENGTH, image->stride / cpp); if (invert) glPixelStorei (GL_PACK_INVERT_MESA, 1); - glReadPixels (extents->x, extents->y, + + y = extents->y; + if (! _cairo_gl_surface_is_texture (surface)) + y = surface->height - extents->y - extents->height; + + glReadPixels (extents->x, y, extents->width, extents->height, format, type, image->data); if (invert) @@ -1028,11 +1106,52 @@ _cairo_gl_surface_map_to_image (void *abstract_surface, status = _cairo_gl_context_release (ctx, status); if (unlikely (status)) { cairo_surface_destroy (&image->base); - image = (cairo_image_surface_t *) - _cairo_surface_create_in_error (status); + return _cairo_surface_create_in_error (status); } - return &image->base; + /* We must invert the image manualy if we lack GL_MESA_pack_invert */ + if (! ctx->has_mesa_pack_invert && ! _cairo_gl_surface_is_texture (surface)) { + uint8_t stack[1024], *row = stack; + uint8_t *top = image->data; + uint8_t *bot = image->data + (image->height-1)*image->stride; + + if (image->stride > sizeof(stack)) { + row = malloc (image->stride); + if (unlikely (row == NULL)) { + cairo_surface_destroy (&image->base); + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + } + + while (top < bot) { + memcpy (row, top, image->stride); + memcpy (top, bot, image->stride); + memcpy (bot, row, image->stride); + top += image->stride; + bot -= image->stride; + } + + if (row != stack) + free(row); + } + + image->base.is_clear = FALSE; + return image; +} + +static cairo_surface_t * +_cairo_gl_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_gl_surface_t *surface = abstract_surface; + + if (extents) { + extents->x = extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + } + + return &surface->base; } static cairo_status_t @@ -1121,22 +1240,26 @@ _cairo_gl_surface_paint (void *surface, const cairo_pattern_t *source, const cairo_clip_t *clip) { -#if 0 + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *)surface; + /* simplify the common case of clearing the surface */ if (clip == NULL) { if (op == CAIRO_OPERATOR_CLEAR) - return _cairo_gl_surface_clear (abstract_surface, CAIRO_COLOR_TRANSPARENT); + return _cairo_gl_surface_clear (surface, CAIRO_COLOR_TRANSPARENT); else if (source->type == CAIRO_PATTERN_TYPE_SOLID && (op == CAIRO_OPERATOR_SOURCE || (op == CAIRO_OPERATOR_OVER && _cairo_pattern_is_opaque_solid (source)))) { - return _cairo_gl_surface_clear (abstract_surface, + return _cairo_gl_surface_clear (surface, &((cairo_solid_pattern_t *) source)->color); } } -#endif - return _cairo_compositor_paint (get_compositor (surface), surface, - op, source, clip); + status = _cairo_compositor_paint (get_compositor (surface), surface, + op, source, clip); + if (likely (status)) + dst->content_changed = TRUE; + return status; } static cairo_int_status_t @@ -1146,8 +1269,14 @@ _cairo_gl_surface_mask (void *surface, const cairo_pattern_t *mask, const cairo_clip_t *clip) { - return _cairo_compositor_mask (get_compositor (surface), surface, - op, source, mask, clip); + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *) surface; + + status = _cairo_compositor_mask (get_compositor (surface), surface, + op, source, mask, clip); + if (likely (status)) + dst->content_changed = TRUE; + return status; } static cairo_int_status_t @@ -1162,10 +1291,16 @@ _cairo_gl_surface_stroke (void *surface, cairo_antialias_t antialias, const cairo_clip_t *clip) { - return _cairo_compositor_stroke (get_compositor (surface), surface, - op, source, path, style, - ctm, ctm_inverse, tolerance, antialias, - clip); + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *)surface; + + status = _cairo_compositor_stroke (get_compositor (surface), surface, + op, source, path, style, + ctm, ctm_inverse, tolerance, + antialias, clip); + if (likely (status)) + dst->content_changed = TRUE; + return status; } static cairo_int_status_t @@ -1178,10 +1313,16 @@ _cairo_gl_surface_fill (void *surface, cairo_antialias_t antialias, const cairo_clip_t *clip) { - return _cairo_compositor_fill (get_compositor (surface), surface, - op, source, path, - fill_rule, tolerance, antialias, - clip); + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *)surface; + + status = _cairo_compositor_fill (get_compositor (surface), surface, + op, source, path, + fill_rule, tolerance, antialias, + clip); + if (likely (status)) + dst->content_changed = TRUE; + return status; } static cairo_int_status_t @@ -1193,12 +1334,18 @@ _cairo_gl_surface_glyphs (void *surface, cairo_scaled_font_t *font, const cairo_clip_t *clip) { - return _cairo_compositor_glyphs (get_compositor (surface), surface, - op, source, glyphs, num_glyphs, font, - clip); + cairo_int_status_t status; + cairo_gl_surface_t *dst = (cairo_gl_surface_t *)surface; + + status = _cairo_compositor_glyphs (get_compositor (surface), surface, + op, source, glyphs, num_glyphs, + font, clip); + if (likely (status)) + dst->content_changed = TRUE; + return status; } -const cairo_surface_backend_t _cairo_gl_surface_backend = { +static const cairo_surface_backend_t _cairo_gl_surface_backend = { CAIRO_SURFACE_TYPE_GL, _cairo_gl_surface_finish, _cairo_default_context_create, @@ -1208,6 +1355,7 @@ const cairo_surface_backend_t _cairo_gl_surface_backend = { _cairo_gl_surface_map_to_image, _cairo_gl_surface_unmap_image, + _cairo_gl_surface_source, _cairo_gl_surface_acquire_source_image, _cairo_gl_surface_release_source_image, NULL, /* snapshot */ @@ -1228,3 +1376,20 @@ const cairo_surface_backend_t _cairo_gl_surface_backend = { NULL, /* fill/stroke */ _cairo_gl_surface_glyphs, }; + +cairo_status_t +cairo_gl_surface_set_binding_texture (cairo_surface_t *abstract_surface, + unsigned int texture) +{ + cairo_gl_surface_t *surface = (cairo_gl_surface_t *) abstract_surface; + + if ((cairo_surface_get_type (&surface->base) != CAIRO_SURFACE_TYPE_GL) || + surface->tex) + return CAIRO_STATUS_SURFACE_TYPE_MISMATCH; + + surface->bounded_tex = texture; + surface->operand.texture.tex = texture; + + return CAIRO_STATUS_SUCCESS; +} + diff --git a/src/cairo-gl-traps-compositor.c b/src/cairo-gl-traps-compositor.c index afc74d0..7129f61 100644 --- a/src/cairo-gl-traps-compositor.c +++ b/src/cairo-gl-traps-compositor.c @@ -69,7 +69,7 @@ set_clip_region (void *_surface, { cairo_gl_surface_t *surface = _surface; - //surface->clip_region = region; + surface->clip_region = region; return CAIRO_STATUS_SUCCESS; } @@ -132,7 +132,7 @@ fill_boxes (void *_dst, cairo_gl_context_t *ctx; cairo_int_status_t status; - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, NULL); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; @@ -150,67 +150,6 @@ FAIL: return status; } -typedef struct cairo_gl_source { - cairo_surface_t base; - - cairo_gl_operand_t operand; -} cairo_gl_source_t; - -static cairo_status_t -_cairo_gl_source_finish (void *abstract_surface) -{ - cairo_gl_source_t *source = abstract_surface; - - _cairo_gl_operand_destroy (&source->operand); - return CAIRO_STATUS_SUCCESS; -} - -static const cairo_surface_backend_t cairo_gl_source_backend = { - CAIRO_SURFACE_TYPE_GL, - _cairo_gl_source_finish, - NULL, /* read-only wrapper */ -}; - -static cairo_surface_t * -pattern_to_surface (cairo_surface_t *dst, - const cairo_pattern_t *pattern, - cairo_bool_t is_mask, - const cairo_rectangle_int_t *extents, - const cairo_rectangle_int_t *sample, - int *src_x, int *src_y) -{ - cairo_gl_source_t *source; - cairo_int_status_t status; - - source = malloc (sizeof (*source)); - if (unlikely (source == NULL)) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - - _cairo_surface_init (&source->base, - &cairo_gl_source_backend, - NULL, /* device */ - CAIRO_CONTENT_COLOR_ALPHA); - - *src_x = *src_y = 0; - status = _cairo_gl_operand_init (&source->operand, pattern, (cairo_gl_surface_t *)dst, - extents->x, extents->y, - extents->x, extents->y, - extents->width, extents->height); - if (unlikely (status)) { - cairo_surface_destroy (&source->base); - return _cairo_surface_create_in_error (status); - } - - return &source->base; -} - -static inline cairo_gl_operand_t * -source_to_operand (cairo_surface_t *surface) -{ - cairo_gl_source_t *source = (cairo_gl_source_t *)surface; - return &source->operand; -} - static cairo_int_status_t composite_boxes (void *_dst, cairo_operator_t op, @@ -229,7 +168,7 @@ composite_boxes (void *_dst, cairo_gl_context_t *ctx; cairo_int_status_t status; - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, extents); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; @@ -269,7 +208,7 @@ composite (void *_dst, cairo_gl_context_t *ctx; cairo_int_status_t status; - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, NULL); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; @@ -327,39 +266,42 @@ lerp (void *dst, return CAIRO_STATUS_SUCCESS; } -static cairo_gl_surface_t * -traps_to_surface (void *_dst, +static cairo_int_status_t +traps_to_operand (void *_dst, const cairo_rectangle_int_t *extents, cairo_antialias_t antialias, - cairo_traps_t *traps) + cairo_traps_t *traps, + cairo_gl_operand_t *operand) { pixman_format_code_t pixman_format; pixman_image_t *pixman_image; cairo_surface_t *image, *mask; + cairo_surface_pattern_t pattern; cairo_status_t status; - pixman_format = antialias != CAIRO_ANTIALIAS_NONE ? PIXMAN_a8 : PIXMAN_a1, + pixman_format = antialias != CAIRO_ANTIALIAS_NONE ? PIXMAN_a8 : PIXMAN_a1; pixman_image = pixman_image_create_bits (pixman_format, extents->width, extents->height, NULL, 0); if (unlikely (pixman_image == NULL)) - return (cairo_gl_surface_t *)_cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + return _cairo_error (CAIRO_STATUS_NO_MEMORY); _pixman_image_add_traps (pixman_image, extents->x, extents->y, traps); image = _cairo_image_surface_create_for_pixman_image (pixman_image, pixman_format); if (unlikely (image->status)) { pixman_image_unref (pixman_image); - return (cairo_gl_surface_t *)image; + return image->status; } - mask = _cairo_surface_create_similar_scratch (_dst, CAIRO_CONTENT_ALPHA, + mask = _cairo_surface_create_similar_scratch (_dst, + CAIRO_CONTENT_COLOR_ALPHA, extents->width, extents->height); if (unlikely (mask->status)) { cairo_surface_destroy (image); - return (cairo_gl_surface_t *)mask; + return mask->status; } status = _cairo_gl_surface_draw_image ((cairo_gl_surface_t *)mask, @@ -368,12 +310,29 @@ traps_to_surface (void *_dst, extents->width, extents->height, 0, 0); cairo_surface_destroy (image); - if (unlikely (status)) { - cairo_surface_destroy (mask); - return (cairo_gl_surface_t*)_cairo_surface_create_in_error (status); - } + if (unlikely (status)) + goto error; + + _cairo_pattern_init_for_surface (&pattern, mask); + cairo_matrix_init_translate (&pattern.base.matrix, + -extents->x, -extents->y); + pattern.base.filter = CAIRO_FILTER_NEAREST; + pattern.base.extend = CAIRO_EXTEND_NONE; + status = _cairo_gl_operand_init (operand, &pattern.base, _dst, + &_cairo_unbounded_rectangle, + &_cairo_unbounded_rectangle, + FALSE); + _cairo_pattern_fini (&pattern.base); - return (cairo_gl_surface_t*)mask; + if (unlikely (status)) + goto error; + + operand->texture.owns_surface = mask; + return CAIRO_STATUS_SUCCESS; + +error: + cairo_surface_destroy (mask); + return status; } static cairo_int_status_t @@ -390,21 +349,17 @@ composite_traps (void *_dst, { cairo_gl_composite_t setup; cairo_gl_context_t *ctx; - cairo_gl_surface_t *mask; cairo_int_status_t status; - mask = traps_to_surface (_dst, extents, antialias, traps); - if (unlikely (mask->base.status)) - return mask->base.status; - - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, NULL); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; _cairo_gl_composite_set_source_operand (&setup, source_to_operand (abstract_src)); - - //_cairo_gl_composite_set_mask_surface (&setup, mask, 0, 0); + status = traps_to_operand (_dst, extents, antialias, traps, &setup.mask); + if (unlikely (status)) + goto FAIL; status = _cairo_gl_composite_begin (&setup, &ctx); if (unlikely (status)) @@ -419,7 +374,6 @@ composite_traps (void *_dst, FAIL: _cairo_gl_composite_fini (&setup); - cairo_surface_destroy (&mask->base); return status; } @@ -450,7 +404,8 @@ tristrip_to_surface (void *_dst, return (cairo_gl_surface_t *)image; } - mask = _cairo_surface_create_similar_scratch (_dst, CAIRO_CONTENT_ALPHA, + mask = _cairo_surface_create_similar_scratch (_dst, + CAIRO_CONTENT_COLOR_ALPHA, extents->width, extents->height); if (unlikely (mask->status)) { @@ -493,7 +448,7 @@ composite_tristrip (void *_dst, if (unlikely (mask->base.status)) return mask->base.status; - status = _cairo_gl_composite_init (&setup, op, _dst, FALSE, NULL); + status = _cairo_gl_composite_init (&setup, op, _dst, FALSE); if (unlikely (status)) goto FAIL; @@ -519,6 +474,15 @@ FAIL: return status; } +static cairo_int_status_t +check_composite (const cairo_composite_rectangles_t *extents) +{ + if (! _cairo_gl_operator_is_supported (extents->op)) + return UNSUPPORTED ("unsupported operator"); + + return CAIRO_STATUS_SUCCESS; +} + const cairo_compositor_t * _cairo_gl_traps_compositor_get (void) { @@ -529,11 +493,11 @@ _cairo_gl_traps_compositor_get (void) compositor.acquire = acquire; compositor.release = release; compositor.set_clip_region = set_clip_region; - compositor.pattern_to_surface = pattern_to_surface; + compositor.pattern_to_surface = _cairo_gl_pattern_to_source; compositor.draw_image_boxes = draw_image_boxes; //compositor.copy_boxes = copy_boxes; compositor.fill_boxes = fill_boxes; - //compositor.check_composite = check_composite; + compositor.check_composite = check_composite; compositor.composite = composite; compositor.lerp = lerp; //compositor.check_composite_boxes = check_composite_boxes; diff --git a/src/cairo-gl.h b/src/cairo-gl.h index d23b8a5..837cb81 100644 --- a/src/cairo-gl.h +++ b/src/cairo-gl.h @@ -31,8 +31,8 @@ * The Initial Developer of the Original Code is Eric Anholt. */ -/** - * @file cairo-gl.h +/* + * cairo-gl.h: * * The cairo-gl backend provides an implementation of possibly * hardware-accelerated cairo rendering by targeting the OpenGL API. @@ -43,7 +43,7 @@ * * Cairo-gl allows interoperability with other GL rendering through GL * context sharing. Cairo-gl surfaces are created in reference to a - * #cairo_device_t, which represents an GL context created by the user. + * #cairo_device_t, which represents a GL context created by the user. * When that GL context is created with its sharePtr set to another * context (or vice versa), its objects (textures backing cairo-gl * surfaces) can be accessed in the other OpenGL context. This allows @@ -55,7 +55,7 @@ * call which interacts with a cairo-gl surface or the cairo-gl * device. As a result, the user must make their own context current * between any cairo calls and their own OpenGL rendering. - */ + **/ #ifndef CAIRO_GL_H #define CAIRO_GL_H @@ -88,6 +88,14 @@ cairo_gl_surface_get_height (cairo_surface_t *abstract_surface); cairo_public void cairo_gl_surface_swapbuffers (cairo_surface_t *surface); +cairo_public void +cairo_gl_device_set_thread_aware (cairo_device_t *device, + cairo_bool_t thread_aware); + +cairo_public cairo_status_t +cairo_gl_surface_set_binding_texture (cairo_surface_t *abstract_surface, + unsigned int texture); + #if CAIRO_HAS_GLX_FUNCTIONS #include diff --git a/src/cairo-glx-context.c b/src/cairo-glx-context.c index f89fa32..e182e0d 100644 --- a/src/cairo-glx-context.c +++ b/src/cairo-glx-context.c @@ -53,6 +53,10 @@ typedef struct _cairo_glx_context { Window dummy_window; GLXContext context; + Display *previous_display; + GLXDrawable previous_drawable; + GLXContext previous_context; + cairo_bool_t has_multithread_makecurrent; } cairo_glx_context_t; @@ -62,19 +66,43 @@ typedef struct _cairo_glx_surface { Window win; } cairo_glx_surface_t; +static cairo_bool_t +_context_acquisition_changed_glx_state (cairo_glx_context_t *ctx, + GLXDrawable current_drawable) +{ + return !(ctx->previous_display == ctx->display && + ctx->previous_drawable == current_drawable && + ctx->previous_context == ctx->context); +} + +static GLXDrawable +_glx_get_current_drawable (cairo_glx_context_t *ctx) +{ + if (ctx->base.current_target == NULL || + _cairo_gl_surface_is_texture (ctx->base.current_target)) { + return ctx->dummy_window; + } + + return ((cairo_glx_surface_t *) ctx->base.current_target)->win; +} + +static void +_glx_query_current_state (cairo_glx_context_t * ctx) +{ + ctx->previous_drawable = glXGetCurrentDrawable (); + ctx->previous_display = glXGetCurrentDisplay (); + ctx->previous_context = glXGetCurrentContext (); +} + static void _glx_acquire (void *abstract_ctx) { cairo_glx_context_t *ctx = abstract_ctx; - GLXDrawable current_drawable; + GLXDrawable current_drawable = _glx_get_current_drawable (ctx); - if (ctx->base.current_target == NULL || - _cairo_gl_surface_is_texture (ctx->base.current_target)) { - current_drawable = ctx->dummy_window; - } else { - cairo_glx_surface_t *surface = (cairo_glx_surface_t *) ctx->base.current_target; - current_drawable = surface->win; - } + _glx_query_current_state (ctx); + if (!_context_acquisition_changed_glx_state (ctx, current_drawable)) + return; glXMakeCurrent (ctx->display, current_drawable, ctx->context); } @@ -94,9 +122,10 @@ _glx_release (void *abstract_ctx) { cairo_glx_context_t *ctx = abstract_ctx; - if (!ctx->has_multithread_makecurrent) { - glXMakeCurrent (ctx->display, None, None); - } + if (ctx->has_multithread_makecurrent || !ctx->base.thread_aware) + return; + + glXMakeCurrent (ctx->display, None, None); } static void @@ -117,7 +146,7 @@ _glx_destroy (void *abstract_ctx) if (ctx->dummy_window != None) XDestroyWindow (ctx->display, ctx->dummy_window); - glXMakeCurrent (ctx->display, 0, 0); + glXMakeCurrent (ctx->display, None, None); } static cairo_status_t @@ -180,14 +209,16 @@ cairo_glx_device_create (Display *dpy, GLXContext gl_ctx) Window dummy = None; const char *glx_extensions; - status = _glx_dummy_ctx (dpy, gl_ctx, &dummy); - if (unlikely (status)) - return _cairo_gl_context_create_in_error (status); - ctx = calloc (1, sizeof (cairo_glx_context_t)); if (unlikely (ctx == NULL)) return _cairo_gl_context_create_in_error (CAIRO_STATUS_NO_MEMORY); + status = _glx_dummy_ctx (dpy, gl_ctx, &dummy); + if (unlikely (status)) { + free (ctx); + return _cairo_gl_context_create_in_error (status); + } + ctx->display = dpy; ctx->dummy_window = dummy; ctx->context = gl_ctx; @@ -265,6 +296,9 @@ cairo_gl_surface_create_for_window (cairo_device_t *device, if (device->backend->type != CAIRO_DEVICE_TYPE_GL) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH)); + if (width <= 0 || height <= 0) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); + surface = calloc (1, sizeof (cairo_glx_surface_t)); if (unlikely (surface == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index d232f9b..15dc46f 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -37,8 +37,10 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-error-private.h" +#include "cairo-list-inline.h" #include "cairo-gstate-private.h" #include "cairo-pattern-private.h" #include "cairo-traps-private.h" @@ -328,7 +330,7 @@ _cairo_gstate_redirect_target (cairo_gstate_t *gstate, cairo_surface_t *child) } /** - * _cairo_gstate_is_group + * _cairo_gstate_is_group: * @gstate: a #cairo_gstate_t * * Check if _cairo_gstate_redirect_target has been called on the head @@ -382,7 +384,7 @@ _cairo_gstate_get_original_target (cairo_gstate_t *gstate) * This space left intentionally blank. * * Return value: a pointer to the gstate's #cairo_clip_t structure. - */ + **/ cairo_clip_t * _cairo_gstate_get_clip (cairo_gstate_t *gstate) { @@ -516,8 +518,8 @@ _cairo_gstate_get_line_join (cairo_gstate_t *gstate) cairo_status_t _cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dashes, double offset) { - unsigned int i; - double dash_total; + double dash_total, on_total, off_total; + int i, j; free (gstate->stroke_style.dash); @@ -535,14 +537,27 @@ _cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dash return _cairo_error (CAIRO_STATUS_NO_MEMORY); } - memcpy (gstate->stroke_style.dash, dash, gstate->stroke_style.num_dashes * sizeof (double)); - - dash_total = 0.0; - for (i = 0; i < gstate->stroke_style.num_dashes; i++) { - if (gstate->stroke_style.dash[i] < 0) + on_total = off_total = dash_total = 0.0; + for (i = j = 0; i < num_dashes; i++) { + if (dash[i] < 0) return _cairo_error (CAIRO_STATUS_INVALID_DASH); - dash_total += gstate->stroke_style.dash[i]; + if (dash[i] == 0 && i > 0 && i < num_dashes - 1) { + if (dash[++i] < 0) + return _cairo_error (CAIRO_STATUS_INVALID_DASH); + + gstate->stroke_style.dash[j-1] += dash[i]; + gstate->stroke_style.num_dashes -= 2; + } else + gstate->stroke_style.dash[j++] = dash[i]; + + if (dash[i]) { + dash_total += dash[i]; + if ((i & 1) == 0) + on_total += dash[i]; + else + off_total += dash[i]; + } } if (dash_total == 0.0) @@ -550,8 +565,19 @@ _cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dash /* An odd dash value indicate symmetric repeating, so the total * is twice as long. */ - if (gstate->stroke_style.num_dashes & 1) + if (gstate->stroke_style.num_dashes & 1) { dash_total *= 2; + on_total += off_total; + } + + if (dash_total - on_total < CAIRO_FIXED_ERROR_DOUBLE) { + /* Degenerate dash -> solid line */ + free (gstate->stroke_style.dash); + gstate->stroke_style.dash = NULL; + gstate->stroke_style.num_dashes = 0; + gstate->stroke_style.dash_offset = 0.0; + return CAIRO_STATUS_SUCCESS; + } /* The dashing code doesn't like a negative offset or a big positive * offset, so we compute an equivalent offset which is guaranteed to be diff --git a/src/cairo-hash.c b/src/cairo-hash.c index f4fb7cd..928c74b 100644 --- a/src/cairo-hash.c +++ b/src/cairo-hash.c @@ -111,6 +111,8 @@ static const unsigned long hash_table_sizes[] = { struct _cairo_hash_table { cairo_hash_keys_equal_func_t keys_equal; + cairo_hash_entry_t *cache[32]; + const unsigned long *table_size; cairo_hash_entry_t **entries; @@ -173,6 +175,7 @@ _cairo_hash_table_create (cairo_hash_keys_equal_func_t keys_equal) else hash_table->keys_equal = keys_equal; + memset (&hash_table->cache, 0, sizeof (hash_table->cache)); hash_table->table_size = &hash_table_sizes[0]; hash_table->entries = calloc (*hash_table->table_size, @@ -337,19 +340,24 @@ _cairo_hash_table_lookup (cairo_hash_table_t *hash_table, { cairo_hash_entry_t *entry; unsigned long table_size, i, idx, step; + unsigned long hash = key->hash; + + entry = hash_table->cache[hash & 31]; + if (entry && entry->hash == hash && hash_table->keys_equal (key, entry)) + return entry; table_size = *hash_table->table_size; - idx = key->hash % table_size; + idx = hash % table_size; entry = hash_table->entries[idx]; if (ENTRY_IS_LIVE (entry)) { - if (entry->hash == key->hash && hash_table->keys_equal (key, entry)) - return entry; + if (entry->hash == hash && hash_table->keys_equal (key, entry)) + goto insert_cache; } else if (ENTRY_IS_FREE (entry)) return NULL; i = 1; - step = 1 + key->hash % (table_size - 2); + step = 1 + hash % (table_size - 2); do { idx += step; if (idx >= table_size) @@ -357,14 +365,18 @@ _cairo_hash_table_lookup (cairo_hash_table_t *hash_table, entry = hash_table->entries[idx]; if (ENTRY_IS_LIVE (entry)) { - if (entry->hash == key->hash && hash_table->keys_equal (key, entry)) - return entry; + if (entry->hash == hash && hash_table->keys_equal (key, entry)) + goto insert_cache; } else if (ENTRY_IS_FREE (entry)) return NULL; } while (++i < table_size); ASSERT_NOT_REACHED; return NULL; + +insert_cache: + hash_table->cache[hash & 31] = entry; + return entry; } /** @@ -459,6 +471,7 @@ _cairo_hash_table_insert (cairo_hash_table_t *hash_table, hash_table->free_entries--; *entry = key_and_value; + hash_table->cache[key_and_value->hash & 31] = key_and_value; hash_table->live_entries++; return CAIRO_STATUS_SUCCESS; @@ -509,6 +522,7 @@ _cairo_hash_table_remove (cairo_hash_table_t *hash_table, { *_cairo_hash_table_lookup_exact_key (hash_table, key) = DEAD_ENTRY; hash_table->live_entries--; + hash_table->cache[key->hash & 31] = NULL; /* Check for table resize. Don't do this when iterating as this will * reorder elements of the table and cause the iteration to potentially diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c index d299c9f..5a1ea4a 100644 --- a/src/cairo-image-compositor.c +++ b/src/cairo-image-compositor.c @@ -93,6 +93,8 @@ draw_image_boxes (void *_dst, struct _cairo_boxes_chunk *chunk; int i; + TRACE ((stderr, "%s x %d\n", __FUNCTION__, boxes->num_boxes)); + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { for (i = 0; i < chunk->count; i++) { cairo_box_t *b = &chunk->base[i]; @@ -279,6 +281,8 @@ fill_rectangles (void *_dst, uint32_t pixel; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (fill_reduces_to_source (op, color, dst) && color_to_pixel (color, dst->pixman_format, &pixel)) { @@ -321,6 +325,8 @@ fill_boxes (void *_dst, uint32_t pixel; int i; + TRACE ((stderr, "%s x %d\n", __FUNCTION__, boxes->num_boxes)); + if (fill_reduces_to_source (op, color, dst) && color_to_pixel (color, dst->pixman_format, &pixel)) { @@ -379,6 +385,9 @@ composite (void *_dst, { cairo_image_source_t *src = (cairo_image_source_t *)abstract_src; cairo_image_source_t *mask = (cairo_image_source_t *)abstract_mask; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (mask) { pixman_image_composite32 (_pixman_operator (op), src->pixman_image, mask->pixman_image, to_pixman_image (_dst), @@ -415,6 +424,8 @@ lerp (void *_dst, cairo_image_source_t *src = (cairo_image_source_t *)abstract_src; cairo_image_source_t *mask = (cairo_image_source_t *)abstract_mask; + TRACE ((stderr, "%s\n", __FUNCTION__)); + #if PIXMAN_HAS_OP_LERP pixman_image_composite32 (PIXMAN_OP_LERP_SRC, src->pixman_image, mask->pixman_image, dst->pixman_image, @@ -424,6 +435,10 @@ lerp (void *_dst, width, height); #else /* Punch the clip out of the destination */ + TRACE ((stderr, "%s - OUT_REVERSE (mask=%d/%p, dst=%d/%p)\n", + __FUNCTION__, + mask->base.unique_id, mask->pixman_image, + dst->base.unique_id, dst->pixman_image)); pixman_image_composite32 (PIXMAN_OP_OUT_REVERSE, mask->pixman_image, NULL, dst->pixman_image, mask_x, mask_y, @@ -432,6 +447,11 @@ lerp (void *_dst, width, height); /* Now add the two results together */ + TRACE ((stderr, "%s - ADD (src=%d/%p, mask=%d/%p, dst=%d/%p)\n", + __FUNCTION__, + src->base.unique_id, src->pixman_image, + mask->base.unique_id, mask->pixman_image, + dst->base.unique_id, dst->pixman_image)); pixman_image_composite32 (PIXMAN_OP_ADD, src->pixman_image, mask->pixman_image, dst->pixman_image, src_x, src_y, @@ -460,10 +480,12 @@ composite_boxes (void *_dst, pixman_image_t *dst = to_pixman_image (_dst); pixman_image_t *src = ((cairo_image_source_t *)abstract_src)->pixman_image; pixman_image_t *mask = abstract_mask ? ((cairo_image_source_t *)abstract_mask)->pixman_image : NULL; + pixman_image_t *free_src = NULL; struct _cairo_boxes_chunk *chunk; int i; /* XXX consider using a region? saves multiple prepare-composite */ + TRACE ((stderr, "%s x %d\n", __FUNCTION__, boxes->num_boxes)); if (((cairo_surface_t *)_dst)->is_clear && (op == CAIRO_OPERATOR_SOURCE || @@ -475,7 +497,7 @@ composite_boxes (void *_dst, #if PIXMAN_HAS_OP_LERP op = PIXMAN_OP_LERP_CLEAR; #else - src = _pixman_image_for_color (CAIRO_COLOR_WHITE); + free_src = src = _pixman_image_for_color (CAIRO_COLOR_WHITE); op = PIXMAN_OP_OUT_REVERSE; #endif } else if (op == CAIRO_OPERATOR_SOURCE) { @@ -506,6 +528,9 @@ composite_boxes (void *_dst, } } + if (free_src) + pixman_image_unref (free_src); + return CAIRO_STATUS_SUCCESS; } @@ -612,6 +637,8 @@ composite_traps (void *_dst, pixman_image_t *mask; pixman_format_code_t format; + TRACE ((stderr, "%s\n", __FUNCTION__)); + /* Special case adding trapezoids onto a mask surface; we want to avoid * creating an intermediate temporary mask unnecessarily. * @@ -690,6 +717,8 @@ composite_tristrip (void *_dst, pixman_image_t *mask; pixman_format_code_t format; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (strip->num_points < 3) return CAIRO_STATUS_SUCCESS; @@ -745,6 +774,8 @@ composite_one_glyph (void *_dst, cairo_status_t status; int x, y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_scaled_glyph_lookup (info->font, info->glyphs[0].index, CAIRO_SCALED_GLYPH_INFO_SURFACE, @@ -794,6 +825,8 @@ composite_glyphs_via_mask (void *_dst, cairo_status_t status; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + /* XXX convert the glyphs to common formats a8/a8r8g8b8 to hit * optimised paths through pixman. Should we increase the bit * depth of the target surface, we should reconsider the appropriate @@ -916,6 +949,8 @@ composite_glyphs (void *_dst, cairo_status_t status; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (info->num_glyphs == 1) return composite_one_glyph(_dst, op, _src, src_x, src_y, dst_x, dst_y, info); @@ -971,6 +1006,12 @@ composite_glyphs (void *_dst, return status; } +static cairo_int_status_t +check_composite (const cairo_composite_rectangles_t *extents) +{ + return CAIRO_STATUS_SUCCESS; +} + const cairo_compositor_t * _cairo_image_traps_compositor_get (void) { @@ -986,7 +1027,7 @@ _cairo_image_traps_compositor_get (void) compositor.draw_image_boxes = draw_image_boxes; //compositor.copy_boxes = copy_boxes; compositor.fill_boxes = fill_boxes; - //compositor.check_composite = check_composite; + compositor.check_composite = check_composite; compositor.composite = composite; compositor.lerp = lerp; //compositor.check_composite_boxes = check_composite_boxes; @@ -1190,6 +1231,8 @@ span_renderer_init (cairo_abstract_span_renderer_t *_r, int src_x, src_y; int mask_x, mask_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (op == CAIRO_OPERATOR_CLEAR) { op = PIXMAN_OP_LERP_CLEAR; } else if (dst->base.is_clear && @@ -1275,6 +1318,8 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, { cairo_image_span_renderer_t *r = (cairo_image_span_renderer_t *) _r; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (status == CAIRO_INT_STATUS_SUCCESS && r->base.finish) r->base.finish (r); @@ -1290,18 +1335,37 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, typedef struct _cairo_image_span_renderer { cairo_span_renderer_t base; - cairo_rectangle_int_t extents; - - float opacity; - int stride; - uint8_t *data; - const cairo_composite_rectangles_t *composite; - pixman_image_t *src, *mask; - int src_x, src_y; + float opacity; uint8_t op; + int bpp; + pixman_image_t *src, *mask; + union { + struct fill { + int stride; + uint8_t *data; + uint32_t pixel; + } fill; + struct blit { + int stride; + uint8_t *data; + int src_stride; + uint8_t *src_data; + } blit; + struct composite { + pixman_image_t *dst; + int src_x, src_y; + int mask_x, mask_y; + } composite; + struct finish { + cairo_rectangle_int_t extents; + int src_x, src_y; + int stride; + uint8_t *data; + } mask; + } u; uint8_t buf[sizeof(cairo_abstract_span_renderer_t)-128]; } cairo_image_span_renderer_t; COMPILE_TIME_ASSERT (sizeof (cairo_image_span_renderer_t) <= sizeof (cairo_abstract_span_renderer_t)); @@ -1319,8 +1383,8 @@ _cairo_image_spans (void *abstract_renderer, if (num_spans == 0) return CAIRO_STATUS_SUCCESS; - mask = r->data + (y - r->extents.y) * r->stride; - mask += spans[0].x - r->extents.x; + mask = r->u.mask.data + (y - r->u.mask.extents.y) * r->u.mask.stride; + mask += spans[0].x - r->u.mask.extents.x; row = mask; do { @@ -1337,7 +1401,7 @@ _cairo_image_spans (void *abstract_renderer, len = row - mask; row = mask; while (--height) { - mask += r->stride; + mask += r->u.mask.stride; memcpy (mask, row, len); } @@ -1354,22 +1418,22 @@ _cairo_image_spans_and_zero (void *abstract_renderer, uint8_t *mask; int len; - mask = r->data; - if (y > r->extents.y) { - len = (y - r->extents.y) * r->stride; + mask = r->u.mask.data; + if (y > r->u.mask.extents.y) { + len = (y - r->u.mask.extents.y) * r->u.mask.stride; memset (mask, 0, len); mask += len; } - r->extents.y = y + height; - r->data = mask + height * r->stride; + r->u.mask.extents.y = y + height; + r->u.mask.data = mask + height * r->u.mask.stride; if (num_spans == 0) { - memset (mask, 0, height * r->stride); + memset (mask, 0, height * r->u.mask.stride); } else { uint8_t *row = mask; - if (spans[0].x != r->extents.x) { - len = spans[0].x - r->extents.x; + if (spans[0].x != r->u.mask.extents.x) { + len = spans[0].x - r->u.mask.extents.x; memset (row, 0, len); row += len; } @@ -1384,15 +1448,15 @@ _cairo_image_spans_and_zero (void *abstract_renderer, spans++; } while (--num_spans > 1); - if (spans[0].x != r->extents.x + r->extents.width) { - len = r->extents.x + r->extents.width - spans[0].x; + if (spans[0].x != r->u.mask.extents.x + r->u.mask.extents.width) { + len = r->u.mask.extents.x + r->u.mask.extents.width - spans[0].x; memset (row, 0, len); } row = mask; while (--height) { - mask += r->stride; - memcpy (mask, row, r->extents.width); + mask += r->u.mask.stride; + memcpy (mask, row, r->u.mask.extents.width); } } @@ -1404,28 +1468,1098 @@ _cairo_image_finish_spans_and_zero (void *abstract_renderer) { cairo_image_span_renderer_t *r = abstract_renderer; - if (r->extents.y < r->extents.height) - memset (r->data, 0, (r->extents.height - r->extents.y) * r->stride); + if (r->u.mask.extents.y < r->u.mask.extents.height) + memset (r->u.mask.data, 0, (r->u.mask.extents.height - r->u.mask.extents.y) * r->u.mask.stride); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill8_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + if (spans[0].coverage) { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*y + spans[0].x; + if (len == 1) + *d = r->u.fill.pixel; + else + memset(d, r->u.fill.pixel, len); + } + spans++; + } while (--num_spans > 1); + } else { + do { + if (spans[0].coverage) { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*yy + spans[0].x; + if (len == 1) + *d = r->u.fill.pixel; + else + memset(d, r->u.fill.pixel, len); + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill16_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + if (spans[0].coverage) { + int len = spans[1].x - spans[0].x; + uint16_t *d = (uint16_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*2); + while (len--) + *d++ = r->u.fill.pixel; + } + spans++; + } while (--num_spans > 1); + } else { + do { + if (spans[0].coverage) { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint16_t *d = (uint16_t*)(r->u.fill.data + r->u.fill.stride*yy + spans[0].x*2); + while (len--) + *d++ = r->u.fill.pixel; + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill32_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + if (spans[0].coverage) { + int len = spans[1].x - spans[0].x; + if (len > 32) { + pixman_fill ((uint32_t *)r->u.fill.data, r->u.fill.stride / sizeof(uint32_t), r->bpp, + spans[0].x, y, len, 1, r->u.fill.pixel); + } else { + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); + while (len--) + *d++ = r->u.fill.pixel; + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + if (spans[0].coverage) { + if (spans[1].x - spans[0].x > 16) { + pixman_fill ((uint32_t *)r->u.fill.data, r->u.fill.stride / sizeof(uint32_t), r->bpp, + spans[0].x, y, spans[1].x - spans[0].x, h, + r->u.fill.pixel); + } else { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*yy + spans[0].x*4); + while (len--) + *d++ = r->u.fill.pixel; + yy++; + } while (--hh); + } + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +#if 0 +static cairo_status_t +_fill_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + do { + if (spans[0].coverage) { + pixman_fill ((uint32_t *) r->data, r->stride, r->bpp, + spans[0].x, y, + spans[1].x - spans[0].x, h, + r->pixel); + } + spans++; + } while (--num_spans > 1); + + return CAIRO_STATUS_SUCCESS; +} +#endif + +static cairo_status_t +_blit_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + int cpp; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + cpp = r->bpp/8; + if (likely (h == 1)) { + uint8_t *src = r->u.blit.src_data + y*r->u.blit.src_stride; + uint8_t *dst = r->u.blit.data + y*r->u.blit.stride; + do { + if (spans[0].coverage) { + void *s = src + spans[0].x*cpp; + void *d = dst + spans[0].x*cpp; + int len = (spans[1].x - spans[0].x) * cpp; + switch (len) { + case 1: + *(uint8_t *)d = *(uint8_t *)s; + break; + case 2: + *(uint16_t *)d = *(uint16_t *)s; + break; + case 4: + *(uint32_t *)d = *(uint32_t *)s; + break; +#if HAVE_UINT64_T + case 8: + *(uint64_t *)d = *(uint64_t *)s; + break; +#endif + default: + memcpy(d, s, len); + break; + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + if (spans[0].coverage) { + int yy = y, hh = h; + do { + void *src = r->u.blit.src_data + yy*r->u.blit.src_stride + spans[0].x*cpp; + void *dst = r->u.blit.data + yy*r->u.blit.stride + spans[0].x*cpp; + int len = (spans[1].x - spans[0].x) * cpp; + switch (len) { + case 1: + *(uint8_t *)dst = *(uint8_t *)src; + break; + case 2: + *(uint16_t *)dst = *(uint16_t *)src; + break; + case 4: + *(uint32_t *)dst = *(uint32_t *)src; + break; +#if HAVE_UINT64_T + case 8: + *(uint64_t *)dst = *(uint64_t *)src; + break; +#endif + default: + memcpy(dst, src, len); + break; + } + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_mono_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + do { + if (spans[0].coverage) { + pixman_image_composite32 (r->op, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + spans[0].x, y, + spans[1].x - spans[0].x, h); + } + spans++; + } while (--num_spans > 1); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_mono_unbounded_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) { + pixman_image_composite32 (PIXMAN_OP_CLEAR, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + r->composite->unbounded.x, y, + r->composite->unbounded.width, h); + r->u.composite.mask_y = y + h; + return CAIRO_STATUS_SUCCESS; + } + + if (y != r->u.composite.mask_y) { + pixman_image_composite32 (PIXMAN_OP_CLEAR, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + r->composite->unbounded.x, r->u.composite.mask_y, + r->composite->unbounded.width, y - r->u.composite.mask_y); + } + + if (spans[0].x != r->composite->unbounded.x) { + pixman_image_composite32 (PIXMAN_OP_CLEAR, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + r->composite->unbounded.x, y, + spans[0].x - r->composite->unbounded.x, h); + } + + do { + int op = spans[0].coverage ? r->op : PIXMAN_OP_CLEAR; + pixman_image_composite32 (op, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + spans[0].x, y, + spans[1].x - spans[0].x, h); + spans++; + } while (--num_spans > 1); + + if (spans[0].x != r->composite->unbounded.x + r->composite->unbounded.width) { + pixman_image_composite32 (PIXMAN_OP_CLEAR, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, y + r->u.composite.src_y, + 0, 0, + spans[0].x, y, + r->composite->unbounded.x + r->composite->unbounded.width - spans[0].x, h); + } + + r->u.composite.mask_y = y + h; + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_mono_finish_unbounded_spans (void *abstract_renderer) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (r->u.composite.mask_y < r->composite->unbounded.y + r->composite->unbounded.height) { + pixman_image_composite32 (PIXMAN_OP_CLEAR, + r->src, NULL, r->u.composite.dst, + r->composite->unbounded.x + r->u.composite.src_x, r->u.composite.mask_y + r->u.composite.src_y, + 0, 0, + r->composite->unbounded.x, r->u.composite.mask_y, + r->composite->unbounded.width, + r->composite->unbounded.y + r->composite->unbounded.height - r->u.composite.mask_y); + } return CAIRO_STATUS_SUCCESS; } static cairo_int_status_t +mono_renderer_init (cairo_image_span_renderer_t *r, + const cairo_composite_rectangles_t *composite, + cairo_antialias_t antialias, + cairo_bool_t needs_clip) +{ + cairo_image_surface_t *dst = (cairo_image_surface_t *)composite->surface; + + if (antialias != CAIRO_ANTIALIAS_NONE) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (!_cairo_pattern_is_opaque_solid (&composite->mask_pattern.base)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + r->base.render_rows = NULL; + if (composite->source_pattern.base.type == CAIRO_PATTERN_TYPE_SOLID) { + const cairo_color_t *color; + + color = &composite->source_pattern.solid.color; + if (composite->op == CAIRO_OPERATOR_CLEAR) + color = CAIRO_COLOR_TRANSPARENT; + + if (fill_reduces_to_source (composite->op, color, dst) && + color_to_pixel (color, dst->pixman_format, &r->u.fill.pixel)) { + /* Use plain C for the fill operations as the span length is + * typically small, too small to payback the startup overheads of + * using SSE2 etc. + */ + switch (PIXMAN_FORMAT_BPP(dst->pixman_format)) { + case 8: r->base.render_rows = _fill8_spans; break; + case 16: r->base.render_rows = _fill16_spans; break; + case 32: r->base.render_rows = _fill32_spans; break; + default: break; + } + r->u.fill.data = dst->data; + r->u.fill.stride = dst->stride; + } + } else if ((composite->op == CAIRO_OPERATOR_SOURCE || + (composite->op == CAIRO_OPERATOR_OVER && + (dst->base.is_clear || (dst->base.content & CAIRO_CONTENT_ALPHA) == 0))) && + composite->source_pattern.base.type == CAIRO_PATTERN_TYPE_SURFACE && + composite->source_pattern.surface.surface->backend->type == CAIRO_SURFACE_TYPE_IMAGE && + to_image_surface(composite->source_pattern.surface.surface)->format == dst->format) + { + cairo_image_surface_t *src = + to_image_surface(composite->source_pattern.surface.surface); + int tx, ty; + + if (_cairo_matrix_is_integer_translation(&composite->source_pattern.base.matrix, + &tx, &ty) && + composite->bounded.x + tx >= 0 && + composite->bounded.y + ty >= 0 && + composite->bounded.x + composite->bounded.width + tx <= src->width && + composite->bounded.y + composite->bounded.height + ty <= src->height) { + + r->u.blit.stride = dst->stride; + r->u.blit.data = dst->data; + r->u.blit.src_stride = src->stride; + r->u.blit.src_data = src->data + src->stride * ty + tx * 4; + r->base.render_rows = _blit_spans; + } + } + + if (r->base.render_rows == NULL) { + r->src = _pixman_image_for_pattern (dst, &composite->source_pattern.base, FALSE, + &composite->unbounded, + &composite->source_sample_area, + &r->u.composite.src_x, &r->u.composite.src_y); + if (unlikely (r->src == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + r->u.composite.dst = to_pixman_image (composite->surface); + r->op = _pixman_operator (composite->op); + if (composite->is_bounded == 0) { + r->base.render_rows = _mono_unbounded_spans; + r->base.finish = _mono_finish_unbounded_spans; + r->u.composite.mask_y = composite->unbounded.y; + } else + r->base.render_rows = _mono_spans; + } + r->bpp = PIXMAN_FORMAT_BPP(dst->pixman_format); + + return CAIRO_INT_STATUS_SUCCESS; +} + +#define ONE_HALF 0x7f +#define RB_MASK 0x00ff00ff +#define RB_ONE_HALF 0x007f007f +#define RB_MASK_PLUS_ONE 0x01000100 +#define G_SHIFT 8 +static inline uint32_t +mul8x2_8 (uint32_t a, uint8_t b) +{ + uint32_t t = (a & RB_MASK) * b + RB_ONE_HALF; + return ((t + ((t >> G_SHIFT) & RB_MASK)) >> G_SHIFT) & RB_MASK; +} + +static inline uint32_t +add8x2_8x2 (uint32_t a, uint32_t b) +{ + uint32_t t = a + b; + t |= RB_MASK_PLUS_ONE - ((t >> G_SHIFT) & RB_MASK); + return t & RB_MASK; +} + +static inline uint8_t +mul8_8 (uint8_t a, uint8_t b) +{ + uint16_t t = a * (uint16_t)b + ONE_HALF; + return ((t >> G_SHIFT) + t) >> G_SHIFT; +} + +static inline uint32_t +lerp8x4 (uint32_t src, uint8_t a, uint32_t dst) +{ + uint8_t ia = ~a; + uint32_t r1, r2; + + r1 = add8x2_8x2 (mul8x2_8 (src, a), + mul8x2_8 (dst, ia)); + r2 = add8x2_8x2 (mul8x2_8 (src >> G_SHIFT, a), + mul8x2_8 (dst >> G_SHIFT, ia)); + + return r1 | (r2 << G_SHIFT); +} + +static cairo_status_t +_fill_a8_lerp_opaque_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + uint8_t *d = r->u.fill.data + r->u.fill.stride*y; + do { + uint8_t a = spans[0].coverage; + if (a) { + int len = spans[1].x - spans[0].x; + if (a == 0xff) { + memset(d + spans[0].x, r->u.fill.pixel, len); + } else { + uint8_t s = mul8_8(a, r->u.fill.pixel); + uint8_t *dst = d + spans[0].x; + a = ~a; + while (len--) { + uint8_t t = mul8_8(*dst, a); + *dst++ = t + s; + } + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + uint8_t a = spans[0].coverage; + if (a) { + int yy = y, hh = h; + if (a == 0xff) { + do { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*yy + spans[0].x; + memset(d, r->u.fill.pixel, len); + yy++; + } while (--hh); + } else { + uint8_t s = mul8_8(a, r->u.fill.pixel); + a = ~a; + do { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*yy + spans[0].x; + while (len--) { + uint8_t t = mul8_8(*d, a); + *d++ = t + s; + } + yy++; + } while (--hh); + } + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill_xrgb32_lerp_opaque_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + uint8_t a = spans[0].coverage; + if (a) { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); + if (a == 0xff) { + if (len > 31) { + pixman_fill ((uint32_t *)r->u.fill.data, r->u.fill.stride / sizeof(uint32_t), r->bpp, + spans[0].x, y, len, 1, r->u.fill.pixel); + } else { + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); + while (len--) + *d++ = r->u.fill.pixel; + } + } else while (len--) { + *d = lerp8x4 (r->u.fill.pixel, a, *d); + d++; + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + uint8_t a = spans[0].coverage; + if (a) { + if (a == 0xff) { + if (spans[1].x - spans[0].x > 16) { + pixman_fill ((uint32_t *)r->u.fill.data, r->u.fill.stride / sizeof(uint32_t), r->bpp, + spans[0].x, y, spans[1].x - spans[0].x, h, + r->u.fill.pixel); + } else { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*yy + spans[0].x*4); + while (len--) + *d++ = r->u.fill.pixel; + yy++; + } while (--hh); + } + } else { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t *)(r->u.fill.data + r->u.fill.stride*yy + spans[0].x*4); + while (len--) { + *d = lerp8x4 (r->u.fill.pixel, a, *d); + d++; + } + yy++; + } while (--hh); + } + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill_a8_lerp_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*y + spans[0].x; + uint16_t p = (uint16_t)a * r->u.fill.pixel + 0x7f; + uint16_t ia = ~a; + while (len--) { + uint16_t t = *d*ia + p; + *d++ = (t + (t>>8)) >> 8; + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + int yy = y, hh = h; + uint16_t p = (uint16_t)a * r->u.fill.pixel + 0x7f; + uint16_t ia = ~a; + do { + int len = spans[1].x - spans[0].x; + uint8_t *d = r->u.fill.data + r->u.fill.stride*yy + spans[0].x; + while (len--) { + uint16_t t = *d*ia + p; + *d++ = (t + (t>>8)) >> 8; + } + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_fill_xrgb32_lerp_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t*)(r->u.fill.data + r->u.fill.stride*y + spans[0].x*4); + while (len--) { + *d = lerp8x4 (r->u.fill.pixel, a, *d); + d++; + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + int yy = y, hh = h; + do { + int len = spans[1].x - spans[0].x; + uint32_t *d = (uint32_t *)(r->u.fill.data + r->u.fill.stride*yy + spans[0].x*4); + while (len--) { + *d = lerp8x4 (r->u.fill.pixel, a, *d); + d++; + } + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_blit_xrgb32_lerp_spans (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (likely(h == 1)) { + uint8_t *src = r->u.blit.src_data + y*r->u.blit.src_stride; + uint8_t *dst = r->u.blit.data + y*r->u.blit.stride; + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + uint32_t *s = (uint32_t*)src + spans[0].x; + uint32_t *d = (uint32_t*)dst + spans[0].x; + int len = spans[1].x - spans[0].x; + if (a == 0xff) { + if (len == 1) + *d = *s; + else + memcpy(d, s, len*4); + } else { + while (len--) { + *d = lerp8x4 (*s, a, *d); + s++, d++; + } + } + } + spans++; + } while (--num_spans > 1); + } else { + do { + uint8_t a = mul8_8 (spans[0].coverage, r->op); + if (a) { + int yy = y, hh = h; + do { + uint32_t *s = (uint32_t *)(r->u.blit.src_data + yy*r->u.blit.src_stride + spans[0].x * 4); + uint32_t *d = (uint32_t *)(r->u.blit.data + yy*r->u.blit.stride + spans[0].x * 4); + int len = spans[1].x - spans[0].x; + if (a == 0xff) { + if (len == 1) + *d = *s; + else + memcpy(d, s, len * 4); + } else { + while (len--) { + *d = lerp8x4 (*s, a, *d); + s++, d++; + } + } + yy++; + } while (--hh); + } + spans++; + } while (--num_spans > 1); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_inplace_spans (void *abstract_renderer, + int y, int h, + const cairo_half_open_span_t *spans, + unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + uint8_t *mask; + int x0, x1; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + if (num_spans == 2 && spans[0].coverage == 0xff) { + pixman_image_composite32 (r->op, r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + spans[0].x, y, + spans[1].x - spans[0].x, h); + return CAIRO_STATUS_SUCCESS; + } + + mask = (uint8_t *)pixman_image_get_data (r->mask); + x0 = spans[0].x; + do { + int len = spans[1].x - spans[0].x; + *mask++ = spans[0].coverage; + if (len > 1) { + memset (mask, spans[0].coverage, --len); + mask += len; + } + x1 = spans[1].x; + spans++; + } while (--num_spans > 1); + + pixman_image_composite32 (r->op, r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + x1 - x0, h); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_inplace_src_spans (void *abstract_renderer, + int y, int h, + const cairo_half_open_span_t *spans, + unsigned num_spans) +{ + cairo_image_span_renderer_t *r = abstract_renderer; + uint8_t *m; + int x0; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + x0 = spans[0].x; + m = r->buf; + do { + int len = spans[1].x - spans[0].x; + if (spans[0].coverage == 0xff) { + if (spans[0].x != x0) { +#if PIXMAN_HAS_OP_LERP + pixman_image_composite32 (PIXMAN_OP_LERP_SRC, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#else + pixman_image_composite32 (PIXMAN_OP_OUT_REVERSE, + r->mask, NULL, r->u.composite.dst, + 0, 0, + 0, 0, + x0, y, + spans[0].x - x0, h); + pixman_image_composite32 (PIXMAN_OP_ADD, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#endif + } + + pixman_image_composite32 (PIXMAN_OP_SRC, + r->src, NULL, r->u.composite.dst, + spans[0].x + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + spans[0].x, y, + spans[1].x - spans[0].x, h); + + m = r->buf; + x0 = spans[1].x; + } else if (spans[0].coverage == 0x0) { + if (spans[0].x != x0) { +#if PIXMAN_HAS_OP_LERP + pixman_image_composite32 (PIXMAN_OP_LERP_SRC, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#else + pixman_image_composite32 (PIXMAN_OP_OUT_REVERSE, + r->mask, NULL, r->u.composite.dst, + 0, 0, + 0, 0, + x0, y, + spans[0].x - x0, h); + pixman_image_composite32 (PIXMAN_OP_ADD, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#endif + } + + m = r->buf; + x0 = spans[1].x; + } else { + *m++ = spans[0].coverage; + if (len > 1) { + memset (m, spans[0].coverage, --len); + m += len; + } + } + spans++; + } while (--num_spans > 1); + + if (spans[0].x != x0) { +#if PIXMAN_HAS_OP_LERP + pixman_image_composite32 (PIXMAN_OP_LERP_SRC, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#else + pixman_image_composite32 (PIXMAN_OP_OUT_REVERSE, + r->mask, NULL, r->u.composite.dst, + 0, 0, + 0, 0, + x0, y, + spans[0].x - x0, h); + pixman_image_composite32 (PIXMAN_OP_ADD, + r->src, r->mask, r->u.composite.dst, + x0 + r->u.composite.src_x, + y + r->u.composite.src_y, + 0, 0, + x0, y, + spans[0].x - x0, h); +#endif + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +inplace_renderer_init (cairo_image_span_renderer_t *r, + const cairo_composite_rectangles_t *composite, + cairo_antialias_t antialias, + cairo_bool_t needs_clip) +{ + cairo_image_surface_t *dst = (cairo_image_surface_t *)composite->surface; + + if (composite->mask_pattern.base.type != CAIRO_PATTERN_TYPE_SOLID) + return CAIRO_INT_STATUS_UNSUPPORTED; + + r->base.render_rows = NULL; + r->op = composite->mask_pattern.solid.color.alpha_short >> 8; + + if (composite->source_pattern.base.type == CAIRO_PATTERN_TYPE_SOLID) { + const cairo_color_t *color; + + color = &composite->source_pattern.solid.color; + if (composite->op == CAIRO_OPERATOR_CLEAR) + color = CAIRO_COLOR_TRANSPARENT; + + if (fill_reduces_to_source (composite->op, color, dst) && + color_to_pixel (color, dst->pixman_format, &r->u.fill.pixel)) { + /* Use plain C for the fill operations as the span length is + * typically small, too small to payback the startup overheads of + * using SSE2 etc. + */ + if (r->op == 0xff) { + switch (dst->format) { + case CAIRO_FORMAT_A8: + r->base.render_rows = _fill_a8_lerp_opaque_spans; + break; + case CAIRO_FORMAT_RGB24: + case CAIRO_FORMAT_ARGB32: + r->base.render_rows = _fill_xrgb32_lerp_opaque_spans; + break; + case CAIRO_FORMAT_A1: + case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: + case CAIRO_FORMAT_INVALID: + default: break; + } + } else { + switch (dst->format) { + case CAIRO_FORMAT_A8: + r->base.render_rows = _fill_a8_lerp_spans; + break; + case CAIRO_FORMAT_RGB24: + case CAIRO_FORMAT_ARGB32: + r->base.render_rows = _fill_xrgb32_lerp_spans; + break; + case CAIRO_FORMAT_A1: + case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: + case CAIRO_FORMAT_INVALID: + default: break; + } + } + r->u.fill.data = dst->data; + r->u.fill.stride = dst->stride; + } + } else if ((dst->format == CAIRO_FORMAT_ARGB32 || dst->format == CAIRO_FORMAT_RGB24) && + (composite->op == CAIRO_OPERATOR_SOURCE || + (composite->op == CAIRO_OPERATOR_OVER && + (dst->base.is_clear || (dst->base.content & CAIRO_CONTENT_ALPHA) == 0))) && + composite->source_pattern.base.type == CAIRO_PATTERN_TYPE_SURFACE && + composite->source_pattern.surface.surface->backend->type == CAIRO_SURFACE_TYPE_IMAGE && + to_image_surface(composite->source_pattern.surface.surface)->format == dst->format) + { + cairo_image_surface_t *src = + to_image_surface(composite->source_pattern.surface.surface); + int tx, ty; + + if (_cairo_matrix_is_integer_translation(&composite->source_pattern.base.matrix, + &tx, &ty) && + composite->bounded.x + tx >= 0 && + composite->bounded.y + ty >= 0 && + composite->bounded.x + composite->bounded.width + tx <= src->width && + composite->bounded.y + composite->bounded.height + ty <= src->height) { + + assert(PIXMAN_FORMAT_BPP(dst->pixman_format) == 32); + r->u.blit.stride = dst->stride; + r->u.blit.data = dst->data; + r->u.blit.src_stride = src->stride; + r->u.blit.src_data = src->data + src->stride * ty + tx * 4; + r->base.render_rows = _blit_xrgb32_lerp_spans; + } + } + if (r->base.render_rows == NULL) { + unsigned int width; + const cairo_pattern_t *src = &composite->source_pattern.base; + + if (r->op != 0xff) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (composite->is_bounded == 0) + return CAIRO_INT_STATUS_UNSUPPORTED; + + width = (composite->bounded.width + 3) & ~3; + r->base.render_rows = _inplace_spans; + if (dst->base.is_clear && + (composite->op == CAIRO_OPERATOR_SOURCE || + composite->op == CAIRO_OPERATOR_OVER || + composite->op == CAIRO_OPERATOR_ADD)) { + r->op = PIXMAN_OP_SRC; + } else if (composite->op == CAIRO_OPERATOR_SOURCE) { + r->base.render_rows = _inplace_src_spans; + r->u.composite.mask_y = r->composite->unbounded.y; + width = (composite->unbounded.width + 3) & ~3; + } else if (composite->op == CAIRO_OPERATOR_CLEAR) { + r->op = PIXMAN_OP_OUT_REVERSE; + src = NULL; + } else { + r->op = _pixman_operator (composite->op); + } + + if (width > sizeof (r->buf)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + r->src = _pixman_image_for_pattern (dst, src, FALSE, + &composite->bounded, + &composite->source_sample_area, + &r->u.composite.src_x, &r->u.composite.src_y); + if (unlikely (r->src == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + /* Create an effectively unbounded mask by repeating the single line */ + r->mask = pixman_image_create_bits (PIXMAN_a8, + width, composite->unbounded.height, + (uint32_t *)r->buf, 0); + if (unlikely (r->mask == NULL)) { + pixman_image_unref (r->src); + return _cairo_error(CAIRO_STATUS_NO_MEMORY); + } + + r->u.composite.dst = dst->pixman_image; + } + + r->bpp = PIXMAN_FORMAT_BPP(dst->pixman_format); + + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_int_status_t span_renderer_init (cairo_abstract_span_renderer_t *_r, const cairo_composite_rectangles_t *composite, + cairo_antialias_t antialias, cairo_bool_t needs_clip) { cairo_image_span_renderer_t *r = (cairo_image_span_renderer_t *)_r; cairo_image_surface_t *dst = (cairo_image_surface_t *)composite->surface; const cairo_pattern_t *source = &composite->source_pattern.base; cairo_operator_t op = composite->op; + cairo_int_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (needs_clip) + return CAIRO_INT_STATUS_UNSUPPORTED; r->composite = composite; r->mask = NULL; r->src = NULL; + r->base.finish = NULL; - if (needs_clip) - return CAIRO_INT_STATUS_UNSUPPORTED; + status = mono_renderer_init (r, composite, antialias, needs_clip); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + return status; + + status = inplace_renderer_init (r, composite, antialias, needs_clip); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + return status; + + r->bpp = 0; if (op == CAIRO_OPERATOR_CLEAR) { #if PIXMAN_HAS_OP_LERP @@ -1453,7 +2587,7 @@ span_renderer_init (cairo_abstract_span_renderer_t *_r, r->src = _pixman_image_for_pattern (dst, source, FALSE, &composite->unbounded, &composite->source_sample_area, - &r->src_x, &r->src_y); + &r->u.mask.src_x, &r->u.mask.src_y); if (unlikely (r->src == NULL)) return _cairo_error (CAIRO_STATUS_NO_MEMORY); @@ -1479,8 +2613,8 @@ span_renderer_init (cairo_abstract_span_renderer_t *_r, { pixman_image_unref (r->src); r->src = mask; - r->src_x = mask_x; - r->src_y = mask_y; + r->u.mask.src_x = mask_x; + r->u.mask.src_y = mask_y; mask = NULL; } @@ -1490,21 +2624,21 @@ span_renderer_init (cairo_abstract_span_renderer_t *_r, } } - r->extents = composite->unbounded; - r->stride = (r->extents.width + 3) & ~3; - if (r->extents.height * r->stride > (int)sizeof (r->buf)) { + r->u.mask.extents = composite->unbounded; + r->u.mask.stride = (r->u.mask.extents.width + 3) & ~3; + if (r->u.mask.extents.height * r->u.mask.stride > (int)sizeof (r->buf)) { r->mask = pixman_image_create_bits (PIXMAN_a8, - r->extents.width, - r->extents.height, + r->u.mask.extents.width, + r->u.mask.extents.height, NULL, 0); r->base.render_rows = _cairo_image_spans; r->base.finish = NULL; } else { r->mask = pixman_image_create_bits (PIXMAN_a8, - r->extents.width, - r->extents.height, - (uint32_t *)r->buf, r->stride); + r->u.mask.extents.width, + r->u.mask.extents.height, + (uint32_t *)r->buf, r->u.mask.stride); r->base.render_rows = _cairo_image_spans_and_zero; r->base.finish = _cairo_image_finish_spans_and_zero; @@ -1512,10 +2646,10 @@ span_renderer_init (cairo_abstract_span_renderer_t *_r, if (unlikely (r->mask == NULL)) return _cairo_error (CAIRO_STATUS_NO_MEMORY); - r->data = (uint8_t *) pixman_image_get_data (r->mask); - r->stride = pixman_image_get_stride (r->mask); + r->u.mask.data = (uint8_t *) pixman_image_get_data (r->mask); + r->u.mask.stride = pixman_image_get_stride (r->mask); - r->extents.height += r->extents.y; + r->u.mask.extents.height += r->u.mask.extents.y; return CAIRO_STATUS_SUCCESS; } @@ -1525,7 +2659,9 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, { cairo_image_span_renderer_t *r = (cairo_image_span_renderer_t *) _r; - if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (likely (status == CAIRO_INT_STATUS_SUCCESS && r->bpp == 0)) { const cairo_composite_rectangles_t *composite = r->composite; if (r->base.finish) @@ -1533,8 +2669,8 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, pixman_image_composite32 (r->op, r->src, r->mask, to_pixman_image (composite->surface), - composite->unbounded.x + r->src_x, - composite->unbounded.y + r->src_y, + composite->unbounded.x + r->u.mask.src_x, + composite->unbounded.y + r->u.mask.src_y, 0, 0, composite->unbounded.x, composite->unbounded.y, @@ -1552,27 +2688,33 @@ span_renderer_fini (cairo_abstract_span_renderer_t *_r, const cairo_compositor_t * _cairo_image_spans_compositor_get (void) { - static cairo_spans_compositor_t compositor; + static cairo_spans_compositor_t spans; + static cairo_compositor_t shape; - if (compositor.base.delegate == NULL) { - _cairo_spans_compositor_init (&compositor, - _cairo_image_traps_compositor_get()); + if (spans.base.delegate == NULL) { + _cairo_shape_mask_compositor_init (&shape, + _cairo_image_traps_compositor_get()); + shape.glyphs = NULL; + + _cairo_spans_compositor_init (&spans, &shape); - compositor.flags = 0; + spans.flags = 0; #if PIXMAN_HAS_OP_LERP - compositor.flags |= CAIRO_SPANS_COMPOSITOR_HAS_LERP; + spans.flags |= CAIRO_SPANS_COMPOSITOR_HAS_LERP; #endif - //compositor.acquire = acquire; - //compositor.release = release; - compositor.fill_boxes = fill_boxes; - compositor.pattern_to_surface = _cairo_image_source_create_for_pattern; - //compositor.check_composite_boxes = check_composite_boxes; - compositor.composite_boxes = composite_boxes; - //compositor.check_span_renderer = check_span_renderer; - compositor.renderer_init = span_renderer_init; - compositor.renderer_fini = span_renderer_fini; + //spans.acquire = acquire; + //spans.release = release; + spans.fill_boxes = fill_boxes; + spans.draw_image_boxes = draw_image_boxes; + //spans.copy_boxes = copy_boxes; + spans.pattern_to_surface = _cairo_image_source_create_for_pattern; + //spans.check_composite_boxes = check_composite_boxes; + spans.composite_boxes = composite_boxes; + //spans.check_span_renderer = check_span_renderer; + spans.renderer_init = span_renderer_init; + spans.renderer_fini = span_renderer_fini; } - return &compositor.base; + return &spans.base; } diff --git a/src/cairo-image-source.c b/src/cairo-image-source.c index 943790d..c5bd228 100644 --- a/src/cairo-image-source.c +++ b/src/cairo-image-source.c @@ -48,11 +48,11 @@ #include "cairo-compositor-private.h" #include "cairo-error-private.h" -#include "cairo-pattern-private.h" +#include "cairo-pattern-inline.h" #include "cairo-paginated-private.h" #include "cairo-recording-surface-private.h" #include "cairo-surface-observer-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-subsurface-private.h" #define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */ @@ -71,6 +71,8 @@ _pixman_transparent_image (void) { pixman_image_t *image; + TRACE ((stderr, "%s\n", __FUNCTION__)); + image = __pixman_transparent_image; if (unlikely (image == NULL)) { pixman_color_t color; @@ -101,6 +103,8 @@ _pixman_black_image (void) { pixman_image_t *image; + TRACE ((stderr, "%s\n", __FUNCTION__)); + image = __pixman_black_image; if (unlikely (image == NULL)) { pixman_color_t color; @@ -131,6 +135,8 @@ _pixman_white_image (void) { pixman_image_t *image; + TRACE ((stderr, "%s\n", __FUNCTION__)); + image = __pixman_white_image; if (unlikely (image == NULL)) { pixman_color_t color; @@ -175,18 +181,21 @@ static int n_cached; static pixman_image_t * _pixman_transparent_image (void) { + TRACE ((stderr, "%s\n", __FUNCTION__)); return _pixman_image_for_color (CAIRO_COLOR_TRANSPARENT); } static pixman_image_t * _pixman_black_image (void) { + TRACE ((stderr, "%s\n", __FUNCTION__)); return _pixman_image_for_color (CAIRO_COLOR_BLACK); } static pixman_image_t * _pixman_white_image (void) { + TRACE ((stderr, "%s\n", __FUNCTION__)); return _pixman_image_for_color (CAIRO_COLOR_WHITE); } #endif /* !PIXMAN_HAS_ATOMIC_OPS */ @@ -294,6 +303,8 @@ _pixman_image_for_gradient (const cairo_gradient_pattern_t *pattern, unsigned int i; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (pattern->n_stops > ARRAY_LENGTH(pixman_stops_static)) { pixman_stops = _cairo_malloc_ab (pattern->n_stops, sizeof(pixman_gradient_stop_t)); @@ -384,6 +395,8 @@ _pixman_image_for_mesh (const cairo_mesh_pattern_t *pattern, pixman_image_t *image; int width, height; + TRACE ((stderr, "%s\n", __FUNCTION__)); + *tx = -extents->x; *ty = -extents->y; width = extents->width; @@ -419,6 +432,13 @@ _acquire_source_cleanup (pixman_image_t *pixman_image, free (data); } +static void +_defer_free_cleanup (pixman_image_t *pixman_image, + void *closure) +{ + cairo_surface_destroy (closure); +} + static uint16_t expand_channel (uint16_t v, uint32_t bits) { @@ -437,6 +457,8 @@ _pixel_to_solid (cairo_image_surface_t *image, int x, int y) uint32_t pixel; pixman_color_t color; + TRACE ((stderr, "%s\n", __FUNCTION__)); + switch (image->format) { default: case CAIRO_FORMAT_INVALID: @@ -591,6 +613,82 @@ _pixman_image_set_properties (pixman_image_t *pixman_image, return TRUE; } +struct proxy { + cairo_surface_t base; + cairo_surface_t *image; +}; + +static cairo_status_t +proxy_acquire_source_image (void *abstract_surface, + cairo_image_surface_t **image_out, + void **image_extra) +{ + struct proxy *proxy = abstract_surface; + return _cairo_surface_acquire_source_image (proxy->image, image_out, image_extra); +} + +static void +proxy_release_source_image (void *abstract_surface, + cairo_image_surface_t *image, + void *image_extra) +{ + struct proxy *proxy = abstract_surface; + _cairo_surface_release_source_image (proxy->image, image, image_extra); +} + +static cairo_status_t +proxy_finish (void *abstract_surface) +{ + return CAIRO_STATUS_SUCCESS; +} + +static const cairo_surface_backend_t proxy_backend = { + CAIRO_INTERNAL_SURFACE_TYPE_NULL, + proxy_finish, + NULL, + + NULL, /* create similar */ + NULL, /* create similar image */ + NULL, /* map to image */ + NULL, /* unmap image */ + + _cairo_surface_default_source, + proxy_acquire_source_image, + proxy_release_source_image, +}; + +static cairo_surface_t * +attach_proxy (cairo_surface_t *source, + cairo_surface_t *image) +{ + struct proxy *proxy; + + proxy = malloc (sizeof (*proxy)); + if (unlikely (proxy == NULL)) + return _cairo_surface_create_in_error (CAIRO_STATUS_NO_MEMORY); + + _cairo_surface_init (&proxy->base, &proxy_backend, NULL, image->content); + + proxy->image = image; + _cairo_surface_attach_snapshot (source, &proxy->base, NULL); + + return &proxy->base; +} + +static void +detach_proxy (cairo_surface_t *source, + cairo_surface_t *proxy) +{ + cairo_surface_finish (proxy); + cairo_surface_destroy (proxy); +} + +static cairo_surface_t * +get_proxy (cairo_surface_t *proxy) +{ + return ((struct proxy *)proxy)->image; +} + static pixman_image_t * _pixman_image_for_recording (cairo_image_surface_t *dst, const cairo_surface_pattern_t *pattern, @@ -599,7 +697,7 @@ _pixman_image_for_recording (cairo_image_surface_t *dst, const cairo_rectangle_int_t *sample, int *ix, int *iy) { - cairo_surface_t *source, *clone; + cairo_surface_t *source, *clone, *proxy; cairo_rectangle_int_t limit; pixman_image_t *pixman_image; cairo_status_t status; @@ -607,38 +705,15 @@ _pixman_image_for_recording (cairo_image_surface_t *dst, cairo_matrix_t *m, matrix; int tx = 0, ty = 0; + TRACE ((stderr, "%s\n", __FUNCTION__)); + *ix = *iy = 0; - source = pattern->surface; - if (_cairo_surface_is_subsurface (source)) - source = _cairo_surface_subsurface_get_target_with_offset (source, &tx, &ty); - if (_cairo_surface_is_snapshot (source)) - source = _cairo_surface_snapshot_get_target (source); - if (_cairo_surface_is_observer (source)) - source = _cairo_surface_observer_get_target (source); - if (_cairo_surface_is_paginated (source)) - source = _cairo_paginated_surface_get_target (source); + source = _cairo_pattern_get_source (pattern, &limit); extend = pattern->base.extend; - if (_cairo_surface_get_extents (source, &limit)) { - if (sample->x >= limit.x && - sample->y >= limit.y && - sample->x + sample->width <= limit.x + limit.width && - sample->y + sample->height <= limit.y + limit.height) - { - extend = CAIRO_EXTEND_NONE; - } - else if (extend == CAIRO_EXTEND_NONE && - (sample->x + sample->width <= limit.x || - sample->x >= limit.x + limit.width || - sample->y + sample->height <= limit.y || - sample->y >= limit.y + limit.height)) - { - return _pixman_transparent_image (); - } - } else + if (_cairo_rectangle_contains_rectangle (&limit, sample)) extend = CAIRO_EXTEND_NONE; - if (extend == CAIRO_EXTEND_NONE) { if (! _cairo_rectangle_intersect (&limit, sample)) return _pixman_transparent_image (); @@ -664,15 +739,28 @@ _pixman_image_for_recording (cairo_image_surface_t *dst, limit.height = ceil (y2) - limit.y; } } + tx = limit.x; + ty = limit.y; + + /* XXX transformations! */ + proxy = _cairo_surface_has_snapshot (source, &proxy_backend); + if (proxy != NULL) { + clone = cairo_surface_reference (get_proxy (proxy)); + goto done; + } - if (dst->base.content == source->content) - clone = cairo_image_surface_create (dst->format, - limit.width, limit.height); - else - clone = _cairo_image_surface_create_with_content (source->content, - limit.width, - limit.height); - cairo_surface_set_device_offset (clone, -limit.x, -limit.y); + if (is_mask) { + clone = cairo_image_surface_create (CAIRO_FORMAT_A8, + limit.width, limit.height); + } else { + if (dst->base.content == source->content) + clone = cairo_image_surface_create (dst->format, + limit.width, limit.height); + else + clone = _cairo_image_surface_create_with_content (source->content, + limit.width, + limit.height); + } m = NULL; if (extend == CAIRO_EXTEND_NONE) { @@ -684,15 +772,21 @@ _pixman_image_for_recording (cairo_image_surface_t *dst, /* XXX extract scale factor for repeating patterns */ } + /* Handle recursion by returning future reads from the current image */ + proxy = attach_proxy (source, clone); status = _cairo_recording_surface_replay_with_clip (source, m, clone, NULL); + detach_proxy (source, proxy); if (unlikely (status)) { cairo_surface_destroy (clone); return NULL; } +done: pixman_image = pixman_image_ref (((cairo_image_surface_t *)clone)->pixman_image); cairo_surface_destroy (clone); + *ix = -limit.x; + *iy = -limit.y; if (extend != CAIRO_EXTEND_NONE) { if (! _pixman_image_set_properties (pixman_image, &pattern->base, extents, @@ -700,9 +794,6 @@ _pixman_image_for_recording (cairo_image_surface_t *dst, pixman_image_unref (pixman_image); pixman_image= NULL; } - } else { - *ix = -limit.x; - *iy = -limit.y; } return pixman_image; @@ -719,6 +810,8 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, cairo_extend_t extend = pattern->base.extend; pixman_image_t *pixman_image; + TRACE ((stderr, "%s\n", __FUNCTION__)); + *ix = *iy = 0; pixman_image = NULL; if (pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING) @@ -730,11 +823,14 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, (! is_mask || ! pattern->base.has_component_alpha || (pattern->surface->content & CAIRO_CONTENT_COLOR) == 0)) { + cairo_surface_t *defer_free = NULL; cairo_image_surface_t *source = (cairo_image_surface_t *) pattern->surface; cairo_surface_type_t type; - if (_cairo_surface_is_snapshot (&source->base)) - source = (cairo_image_surface_t *) _cairo_surface_snapshot_get_target (&source->base); + if (_cairo_surface_is_snapshot (&source->base)) { + defer_free = _cairo_surface_snapshot_get_target (&source->base); + source = (cairo_image_surface_t *) defer_free; + } type = source->base.backend->type; if (type == CAIRO_SURFACE_TYPE_IMAGE) { @@ -753,26 +849,30 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, sample->x >= source->width || sample->y >= source->height) { - if (extend == CAIRO_EXTEND_NONE) + if (extend == CAIRO_EXTEND_NONE) { + cairo_surface_destroy (defer_free); return _pixman_transparent_image (); + } } else { pixman_image = _pixel_to_solid (source, sample->x, sample->y); - if (pixman_image) + if (pixman_image) { + cairo_surface_destroy (defer_free); return pixman_image; + } } } #if PIXMAN_HAS_ATOMIC_OPS /* avoid allocating a 'pattern' image if we can reuse the original */ - *ix = *iy = 0; if (extend == CAIRO_EXTEND_NONE && _cairo_matrix_is_pixman_translation (&pattern->base.matrix, pattern->base.filter, ix, iy)) { + cairo_surface_destroy (defer_free); return pixman_image_ref (source->pixman_image); } #endif @@ -782,8 +882,16 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, source->height, (uint32_t *) source->data, source->stride); - if (unlikely (pixman_image == NULL)) + if (unlikely (pixman_image == NULL)) { + cairo_surface_destroy (defer_free); return NULL; + } + + if (defer_free) { + pixman_image_set_destroy_function (pixman_image, + _defer_free_cleanup, + defer_free); + } } else if (type == CAIRO_SURFACE_TYPE_SUBSURFACE) { cairo_surface_subsurface_t *sub; cairo_bool_t is_contained = FALSE; @@ -826,23 +934,26 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, /* Avoid sub-byte offsets, force a copy in that case. */ if (PIXMAN_FORMAT_BPP (source->pixman_format) >= 8) { - void *data = source->data - + sub->extents.x * PIXMAN_FORMAT_BPP(source->pixman_format)/8 - + sub->extents.y * source->stride; - pixman_image = pixman_image_create_bits (source->pixman_format, - sub->extents.width, - sub->extents.height, - data, - source->stride); - if (unlikely (pixman_image == NULL)) - return NULL; + if (is_contained) { + void *data = source->data + + sub->extents.x * PIXMAN_FORMAT_BPP(source->pixman_format)/8 + + sub->extents.y * source->stride; + pixman_image = pixman_image_create_bits (source->pixman_format, + sub->extents.width, + sub->extents.height, + data, + source->stride); + if (unlikely (pixman_image == NULL)) + return NULL; + } else { + /* XXX for a simple translation and EXTEND_NONE we can + * fix up the pattern matrix instead. + */ + } } } } -#if PIXMAN_HAS_ATOMIC_OPS - *ix = *iy = 0; -#endif if (pixman_image == NULL) { struct acquire_source_cleanup *cleanup; cairo_image_surface_t *image; @@ -853,35 +964,6 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, if (unlikely (status)) return NULL; - if (sample->x >= 0 && sample->y >= 0 && - sample->x + sample->width <= image->width && - sample->y + sample->height <= image->height) - { - extend = CAIRO_EXTEND_NONE; - } - - if (sample->width == 1 && sample->height == 1) { - if (sample->x < 0 || - sample->y < 0 || - sample->x >= image->width || - sample->y >= image->height) - { - if (extend == CAIRO_EXTEND_NONE) { - pixman_image = _pixman_transparent_image (); - _cairo_surface_release_source_image (pattern->surface, image, extra); - return pixman_image; - } - } - else - { - pixman_image = _pixel_to_solid (image, sample->x, sample->y); - if (pixman_image) { - _cairo_surface_release_source_image (pattern->surface, image, extra); - return pixman_image; - } - } - } - pixman_image = pixman_image_create_bits (image->pixman_format, image->width, image->height, @@ -916,6 +998,98 @@ _pixman_image_for_surface (cairo_image_surface_t *dst, return pixman_image; } +struct raster_source_cleanup { + const cairo_pattern_t *pattern; + cairo_surface_t *surface; + cairo_image_surface_t *image; + void *image_extra; +}; + +static void +_raster_source_cleanup (pixman_image_t *pixman_image, + void *closure) +{ + struct raster_source_cleanup *data = closure; + + _cairo_surface_release_source_image (data->surface, + data->image, + data->image_extra); + + _cairo_raster_source_pattern_release (data->pattern, + data->surface); + + free (data); +} + +static pixman_image_t * +_pixman_image_for_raster (cairo_image_surface_t *dst, + const cairo_raster_source_pattern_t *pattern, + cairo_bool_t is_mask, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + int *ix, int *iy) +{ + pixman_image_t *pixman_image; + struct raster_source_cleanup *cleanup; + cairo_image_surface_t *image; + void *extra; + cairo_status_t status; + cairo_surface_t *surface; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + *ix = *iy = 0; + + surface = _cairo_raster_source_pattern_acquire (&pattern->base, + &dst->base, NULL); + if (unlikely (surface == NULL || surface->status)) + return NULL; + + status = _cairo_surface_acquire_source_image (surface, &image, &extra); + if (unlikely (status)) { + _cairo_raster_source_pattern_release (&pattern->base, surface); + return NULL; + } + + assert (image->width == pattern->extents.width); + assert (image->height == pattern->extents.height); + + pixman_image = pixman_image_create_bits (image->pixman_format, + image->width, + image->height, + (uint32_t *) image->data, + image->stride); + if (unlikely (pixman_image == NULL)) { + _cairo_surface_release_source_image (surface, image, extra); + _cairo_raster_source_pattern_release (&pattern->base, surface); + return NULL; + } + + cleanup = malloc (sizeof (*cleanup)); + if (unlikely (cleanup == NULL)) { + pixman_image_unref (pixman_image); + _cairo_surface_release_source_image (surface, image, extra); + _cairo_raster_source_pattern_release (&pattern->base, surface); + return NULL; + } + + cleanup->pattern = &pattern->base; + cleanup->surface = surface; + cleanup->image = image; + cleanup->image_extra = extra; + pixman_image_set_destroy_function (pixman_image, + _raster_source_cleanup, cleanup); + + if (! _pixman_image_set_properties (pixman_image, + &pattern->base, extents, + ix, iy)) { + pixman_image_unref (pixman_image); + pixman_image= NULL; + } + + return pixman_image; +} + pixman_image_t * _pixman_image_for_pattern (cairo_image_surface_t *dst, const cairo_pattern_t *pattern, @@ -926,6 +1100,8 @@ _pixman_image_for_pattern (cairo_image_surface_t *dst, { *tx = *ty = 0; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (pattern == NULL) return _pixman_white_image (); @@ -950,6 +1126,11 @@ _pixman_image_for_pattern (cairo_image_surface_t *dst, is_mask, extents, sample, tx, ty); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _pixman_image_for_raster (dst, + (const cairo_raster_source_pattern_t *) pattern, + is_mask, extents, sample, + tx, ty); } } @@ -962,7 +1143,7 @@ _cairo_image_source_finish (void *abstract_surface) return CAIRO_STATUS_SUCCESS; } -static const cairo_surface_backend_t cairo_image_source_backend = { +const cairo_surface_backend_t _cairo_image_source_backend = { CAIRO_SURFACE_TYPE_IMAGE, _cairo_image_source_finish, NULL, /* read-only wrapper */ @@ -978,6 +1159,8 @@ _cairo_image_source_create_for_pattern (cairo_surface_t *dst, { cairo_image_source_t *source; + TRACE ((stderr, "%s\n", __FUNCTION__)); + source = malloc (sizeof (cairo_image_source_t)); if (unlikely (source == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); @@ -993,7 +1176,7 @@ _cairo_image_source_create_for_pattern (cairo_surface_t *dst, } _cairo_surface_init (&source->base, - &cairo_image_source_backend, + &_cairo_image_source_backend, NULL, /* device */ CAIRO_CONTENT_COLOR_ALPHA); diff --git a/src/cairo-image-surface-inline.h b/src/cairo-image-surface-inline.h new file mode 100644 index 0000000..95cbb99 --- /dev/null +++ b/src/cairo-image-surface-inline.h @@ -0,0 +1,82 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2002 University of Southern California + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Carl D. Worth + */ + +#ifndef CAIRO_IMAGE_SURFACE_INLINE_H +#define CAIRO_IMAGE_SURFACE_INLINE_H + +#include "cairo-image-surface-private.h" + +CAIRO_BEGIN_DECLS + +static inline void +_cairo_image_surface_set_parent (cairo_image_surface_t *image, + cairo_surface_t *parent) +{ + image->parent = parent; +} + +/** + * _cairo_surface_is_image: + * @surface: a #cairo_surface_t + * + * Checks if a surface is an #cairo_image_surface_t + * + * Return value: %TRUE if the surface is an image surface + **/ +static inline cairo_bool_t +_cairo_surface_is_image (const cairo_surface_t *surface) +{ + return surface->backend == &_cairo_image_surface_backend; +} + +/** + * _cairo_surface_is_image_source: + * @surface: a #cairo_surface_t + * + * Checks if a surface is an #cairo_image_source_t + * + * Return value: %TRUE if the surface is an image source + **/ +static inline cairo_bool_t +_cairo_surface_is_image_source (const cairo_surface_t *surface) +{ + return surface->backend == &_cairo_image_source_backend; +} + +CAIRO_END_DECLS + +#endif /* CAIRO_IMAGE_SURFACE_INLINE_H */ diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h index 227a447..3388c64 100644 --- a/src/cairo-image-surface-private.h +++ b/src/cairo-image-surface-private.h @@ -51,6 +51,20 @@ struct _cairo_image_surface { pixman_image_t *pixman_image; const cairo_compositor_t *compositor; + /* Parenting is tricky wrt lifetime tracking... + * + * One use for tracking the parent of an image surface is for + * create_similar_image() where we wish to create a device specific + * surface but return an image surface to the user. In such a case, + * the image may be owned by the device specific surface, its parent, + * but the user lifetime tracking is then performed on the image. So + * when the image is then finalized we call cairo_surface_destroy() + * on the parent. However, for normal usage where the lifetime tracking + * is done on the parent surface, we need to be careful to unhook + * the image->parent pointer before finalizing the image. + */ + cairo_surface_t *parent; + pixman_format_code_t pixman_format; cairo_format_t format; unsigned char *data; @@ -64,6 +78,7 @@ struct _cairo_image_surface { unsigned transparency : 2; unsigned color : 2; }; +#define to_image_surface(S) ((cairo_image_surface_t *)(S)) /* A wrapper for holding pixman images returned by create_for_pattern */ typedef struct _cairo_image_source { @@ -74,6 +89,7 @@ typedef struct _cairo_image_source { } cairo_image_source_t; cairo_private extern const cairo_surface_backend_t _cairo_image_surface_backend; +cairo_private extern const cairo_surface_backend_t _cairo_image_source_backend; cairo_private const cairo_compositor_t * _cairo_image_mask_compositor_get (void); @@ -84,6 +100,52 @@ _cairo_image_traps_compositor_get (void); cairo_private const cairo_compositor_t * _cairo_image_spans_compositor_get (void); +#define _cairo_image_default_compositor_get _cairo_image_spans_compositor_get + +cairo_private cairo_int_status_t +_cairo_image_surface_paint (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t +_cairo_image_surface_mask (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t +_cairo_image_surface_stroke (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t +_cairo_image_surface_fill (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip); + +cairo_private cairo_int_status_t +_cairo_image_surface_glyphs (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + const cairo_clip_t *clip); + cairo_private void _cairo_image_surface_init (cairo_image_surface_t *surface, pixman_image_t *pixman_image, @@ -96,6 +158,11 @@ _cairo_image_surface_map_to_image (void *abstract_other, cairo_private cairo_int_status_t _cairo_image_surface_unmap_image (void *abstract_surface, cairo_image_surface_t *image); + +cairo_private cairo_surface_t * +_cairo_image_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents); + cairo_private cairo_status_t _cairo_image_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -149,20 +216,6 @@ _pixman_image_add_tristrip (pixman_image_t *image, int dst_x, int dst_y, cairo_tristrip_t *strip); -/** - * _cairo_surface_is_image: - * @surface: a #cairo_surface_t - * - * Checks if a surface is an #cairo_image_surface_t - * - * Return value: %TRUE if the surface is an image surface - **/ -static inline cairo_bool_t -_cairo_surface_is_image (const cairo_surface_t *surface) -{ - return surface->backend == &_cairo_image_surface_backend; -} - CAIRO_END_DECLS #endif /* CAIRO_IMAGE_SURFACE_PRIVATE_H */ diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c index 6adbdd6..98f70c5 100644 --- a/src/cairo-image-surface.c +++ b/src/cairo-image-surface.c @@ -45,7 +45,7 @@ #include "cairo-compositor-private.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" -#include "cairo-image-surface-private.h" +#include "cairo-image-surface-inline.h" #include "cairo-paginated-private.h" #include "cairo-pattern-private.h" #include "cairo-recording-surface-private.h" @@ -68,7 +68,7 @@ * Image surfaces provide the ability to render to memory buffers * either allocated by cairo or by the calling code. The supported * image formats are those defined in #cairo_format_t. - */ + **/ /** * CAIRO_HAS_IMAGE_SURFACE: @@ -77,8 +77,8 @@ * The image surface backend is always built in. * This macro was added for completeness in cairo 1.8. * - * @Since: 1.8 - */ + * Since: 1.8 + **/ static cairo_bool_t _cairo_image_surface_is_size_valid (int width, int height) @@ -147,6 +147,7 @@ _cairo_image_surface_init (cairo_image_surface_t *surface, pixman_image_t *pixman_image, pixman_format_code_t pixman_format) { + surface->parent = NULL; surface->pixman_image = pixman_image; surface->pixman_format = pixman_format; @@ -372,6 +373,8 @@ _cairo_image_surface_create_with_pixman_format (unsigned char *data, * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if an error such as out of memory * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.0 **/ cairo_surface_t * cairo_image_surface_create (cairo_format_t format, @@ -487,6 +490,8 @@ slim_hidden_def (cairo_format_stride_for_width); * * See cairo_surface_set_user_data() for a means of attaching a * destroy-notification fallback to the surface if necessary. + * + * Since: 1.0 **/ cairo_surface_t * cairo_image_surface_create_for_data (unsigned char *data, @@ -544,7 +549,7 @@ slim_hidden_def (cairo_image_surface_create_for_data); * * Since: 1.2 **/ - unsigned char * +unsigned char * cairo_image_surface_get_data (cairo_surface_t *surface) { cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface; @@ -568,7 +573,7 @@ slim_hidden_def (cairo_image_surface_get_data); * * Since: 1.2 **/ - cairo_format_t +cairo_format_t cairo_image_surface_get_format (cairo_surface_t *surface) { cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface; @@ -589,8 +594,10 @@ slim_hidden_def (cairo_image_surface_get_format); * Get the width of the image surface in pixels. * * Return value: the width of the surface in pixels. + * + * Since: 1.0 **/ - int +int cairo_image_surface_get_width (cairo_surface_t *surface) { cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface; @@ -611,8 +618,10 @@ slim_hidden_def (cairo_image_surface_get_width); * Get the height of the image surface in pixels. * * Return value: the height of the surface in pixels. + * + * Since: 1.0 **/ - int +int cairo_image_surface_get_height (cairo_surface_t *surface) { cairo_image_surface_t *image_surface = (cairo_image_surface_t *) surface; @@ -639,7 +648,7 @@ slim_hidden_def (cairo_image_surface_get_height); * * Since: 1.2 **/ - int +int cairo_image_surface_get_stride (cairo_surface_t *surface) { @@ -714,7 +723,7 @@ _cairo_format_bits_per_pixel (cairo_format_t format) } } - static cairo_surface_t * +static cairo_surface_t * _cairo_image_surface_create_similar (void *abstract_other, cairo_content_t content, int width, @@ -722,6 +731,8 @@ _cairo_image_surface_create_similar (void *abstract_other, { cairo_image_surface_t *other = abstract_other; + TRACE ((stderr, "%s (other=%u)\n", __FUNCTION__, other->base.unique_id)); + if (! _cairo_image_surface_is_size_valid (width, height)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); @@ -742,6 +753,24 @@ _cairo_image_surface_snapshot (void *abstract_surface) cairo_image_surface_t *image = abstract_surface; cairo_image_surface_t *clone; + /* If we own the image, we can simply steal the memory for the snapshot */ + if (image->owns_data && image->base._finishing) { + clone = (cairo_image_surface_t *) + _cairo_image_surface_create_for_pixman_image (image->pixman_image, + image->pixman_format); + if (unlikely (clone->base.status)) + return &clone->base; + + image->pixman_image = NULL; + image->owns_data = FALSE; + + clone->transparency = image->transparency; + clone->color = image->color; + + clone->owns_data = FALSE; + return &clone->base; + } + clone = (cairo_image_surface_t *) _cairo_image_surface_create_with_pixman_format (NULL, image->pixman_format, @@ -810,6 +839,11 @@ _cairo_image_surface_finish (void *abstract_surface) surface->data = NULL; } + if (surface->parent) { + cairo_surface_destroy (surface->parent); + surface->parent = NULL; + } + return CAIRO_STATUS_SUCCESS; } @@ -819,6 +853,21 @@ _cairo_image_surface_assume_ownership_of_data (cairo_image_surface_t *surface) surface->owns_data = TRUE; } +cairo_surface_t * +_cairo_image_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_image_surface_t *surface = abstract_surface; + + if (extents) { + extents->x = extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + } + + return &surface->base; +} + cairo_status_t _cairo_image_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -852,18 +901,22 @@ _cairo_image_surface_get_extents (void *abstract_surface, return TRUE; } -static cairo_int_status_t +cairo_int_status_t _cairo_image_surface_paint (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, const cairo_clip_t *clip) { cairo_image_surface_t *surface = abstract_surface; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->base.unique_id)); + return _cairo_compositor_paint (surface->compositor, &surface->base, op, source, clip); } -static cairo_int_status_t +cairo_int_status_t _cairo_image_surface_mask (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, @@ -871,11 +924,15 @@ _cairo_image_surface_mask (void *abstract_surface, const cairo_clip_t *clip) { cairo_image_surface_t *surface = abstract_surface; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->base.unique_id)); + return _cairo_compositor_mask (surface->compositor, &surface->base, op, source, mask, clip); } -static cairo_int_status_t +cairo_int_status_t _cairo_image_surface_stroke (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, @@ -888,13 +945,17 @@ _cairo_image_surface_stroke (void *abstract_surface, const cairo_clip_t *clip) { cairo_image_surface_t *surface = abstract_surface; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->base.unique_id)); + return _cairo_compositor_stroke (surface->compositor, &surface->base, op, source, path, style, ctm, ctm_inverse, tolerance, antialias, clip); } -static cairo_int_status_t +cairo_int_status_t _cairo_image_surface_fill (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, @@ -905,13 +966,17 @@ _cairo_image_surface_fill (void *abstract_surface, const cairo_clip_t *clip) { cairo_image_surface_t *surface = abstract_surface; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->base.unique_id)); + return _cairo_compositor_fill (surface->compositor, &surface->base, op, source, path, fill_rule, tolerance, antialias, clip); } -static cairo_int_status_t +cairo_int_status_t _cairo_image_surface_glyphs (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, @@ -921,6 +986,10 @@ _cairo_image_surface_glyphs (void *abstract_surface, const cairo_clip_t *clip) { cairo_image_surface_t *surface = abstract_surface; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->base.unique_id)); + return _cairo_compositor_glyphs (surface->compositor, &surface->base, op, source, glyphs, num_glyphs, scaled_font, @@ -948,6 +1017,7 @@ const cairo_surface_backend_t _cairo_image_surface_backend = { _cairo_image_surface_map_to_image, _cairo_image_surface_unmap_image, + _cairo_image_surface_source, _cairo_image_surface_acquire_source_image, _cairo_image_surface_release_source_image, _cairo_image_surface_snapshot, @@ -959,7 +1029,7 @@ const cairo_surface_backend_t _cairo_image_surface_backend = { _cairo_image_surface_get_font_options, NULL, /* flush */ - NULL, /* mark dirty */ + NULL, _cairo_image_surface_paint, _cairo_image_surface_mask, @@ -1080,9 +1150,12 @@ _cairo_image_analyze_color (cairo_image_surface_t *image) if (image->color != CAIRO_IMAGE_UNKNOWN_COLOR) return image->color; - if (image->format == CAIRO_FORMAT_A1 || image->format == CAIRO_FORMAT_A8) + if (image->format == CAIRO_FORMAT_A1) return image->color = CAIRO_IMAGE_IS_MONOCHROME; + if (image->format == CAIRO_FORMAT_A8) + return image->color = CAIRO_IMAGE_IS_GRAYSCALE; + if (image->format == CAIRO_FORMAT_ARGB32) { image->color = CAIRO_IMAGE_IS_MONOCHROME; for (y = 0; y < image->height; y++) { diff --git a/src/cairo-list-inline.h b/src/cairo-list-inline.h new file mode 100644 index 0000000..d00f40e --- /dev/null +++ b/src/cairo-list-inline.h @@ -0,0 +1,209 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2009 Chris Wilson + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Chris Wilson. + * + * Contributor(s): + * Chris Wilson + * + */ + +#ifndef CAIRO_LIST_INLINE_H +#define CAIRO_LIST_INLINE_H + +#include "cairo-list-private.h" + +#define cairo_list_entry(ptr, type, member) \ + cairo_container_of(ptr, type, member) + +#define cairo_list_first_entry(ptr, type, member) \ + cairo_list_entry((ptr)->next, type, member) + +#define cairo_list_last_entry(ptr, type, member) \ + cairo_list_entry((ptr)->prev, type, member) + +#define cairo_list_foreach(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + +#define cairo_list_foreach_entry(pos, type, head, member) \ + for (pos = cairo_list_entry((head)->next, type, member);\ + &pos->member != (head); \ + pos = cairo_list_entry(pos->member.next, type, member)) + +#define cairo_list_foreach_entry_safe(pos, n, type, head, member) \ + for (pos = cairo_list_entry ((head)->next, type, member),\ + n = cairo_list_entry (pos->member.next, type, member);\ + &pos->member != (head); \ + pos = n, n = cairo_list_entry (n->member.next, type, member)) + +#define cairo_list_foreach_entry_reverse(pos, type, head, member) \ + for (pos = cairo_list_entry((head)->prev, type, member);\ + &pos->member != (head); \ + pos = cairo_list_entry(pos->member.prev, type, member)) + +#define cairo_list_foreach_entry_reverse_safe(pos, n, type, head, member) \ + for (pos = cairo_list_entry((head)->prev, type, member),\ + n = cairo_list_entry (pos->member.prev, type, member);\ + &pos->member != (head); \ + pos = n, n = cairo_list_entry (n->member.prev, type, member)) + +#ifdef CAIRO_LIST_DEBUG +static inline void +_cairo_list_validate (const cairo_list_t *link) +{ + assert (link->next->prev == link); + assert (link->prev->next == link); +} +static inline void +cairo_list_validate (const cairo_list_t *head) +{ + cairo_list_t *link; + + cairo_list_foreach (link, head) + _cairo_list_validate (link); +} +static inline cairo_bool_t +cairo_list_is_empty (const cairo_list_t *head); +static inline void +cairo_list_validate_is_empty (const cairo_list_t *head) +{ + assert (head->next == NULL || (cairo_list_is_empty (head) && head->next == head->prev)); +} +#else +#define _cairo_list_validate(link) +#define cairo_list_validate(head) +#define cairo_list_validate_is_empty(head) +#endif + +static inline void +cairo_list_init (cairo_list_t *entry) +{ + entry->next = entry; + entry->prev = entry; +} + +static inline void +__cairo_list_add (cairo_list_t *entry, + cairo_list_t *prev, + cairo_list_t *next) +{ + next->prev = entry; + entry->next = next; + entry->prev = prev; + prev->next = entry; +} + +static inline void +cairo_list_add (cairo_list_t *entry, cairo_list_t *head) +{ + cairo_list_validate (head); + cairo_list_validate_is_empty (entry); + __cairo_list_add (entry, head, head->next); + cairo_list_validate (head); +} + +static inline void +cairo_list_add_tail (cairo_list_t *entry, cairo_list_t *head) +{ + cairo_list_validate (head); + cairo_list_validate_is_empty (entry); + __cairo_list_add (entry, head->prev, head); + cairo_list_validate (head); +} + +static inline void +__cairo_list_del (cairo_list_t *prev, cairo_list_t *next) +{ + next->prev = prev; + prev->next = next; +} + +static inline void +cairo_list_del (cairo_list_t *entry) +{ + __cairo_list_del (entry->prev, entry->next); + cairo_list_init (entry); +} + +static inline void +cairo_list_move (cairo_list_t *entry, cairo_list_t *head) +{ + cairo_list_validate (head); + __cairo_list_del (entry->prev, entry->next); + __cairo_list_add (entry, head, head->next); + cairo_list_validate (head); +} + +static inline void +cairo_list_move_tail (cairo_list_t *entry, cairo_list_t *head) +{ + cairo_list_validate (head); + __cairo_list_del (entry->prev, entry->next); + __cairo_list_add (entry, head->prev, head); + cairo_list_validate (head); +} + +static inline void +cairo_list_swap (cairo_list_t *entry, cairo_list_t *other) +{ + __cairo_list_add (entry, other->prev, other->next); + cairo_list_init (other); +} + +static inline cairo_bool_t +cairo_list_is_first (const cairo_list_t *entry, + const cairo_list_t *head) +{ + cairo_list_validate (head); + return entry->prev == head; +} + +static inline cairo_bool_t +cairo_list_is_last (const cairo_list_t *entry, + const cairo_list_t *head) +{ + cairo_list_validate (head); + return entry->next == head; +} + +static inline cairo_bool_t +cairo_list_is_empty (const cairo_list_t *head) +{ + cairo_list_validate (head); + return head->next == head; +} + +static inline cairo_bool_t +cairo_list_is_singular (const cairo_list_t *head) +{ + cairo_list_validate (head); + return head->next == head || head->next == head->prev; +} + +#endif /* CAIRO_LIST_INLINE_H */ diff --git a/src/cairo-list-private.h b/src/cairo-list-private.h index ddfd0a4..9f39b66 100644 --- a/src/cairo-list-private.h +++ b/src/cairo-list-private.h @@ -45,171 +45,4 @@ typedef struct _cairo_list { struct _cairo_list *next, *prev; } cairo_list_t; -#define cairo_list_entry(ptr, type, member) \ - cairo_container_of(ptr, type, member) - -#define cairo_list_first_entry(ptr, type, member) \ - cairo_list_entry((ptr)->next, type, member) - -#define cairo_list_last_entry(ptr, type, member) \ - cairo_list_entry((ptr)->prev, type, member) - -#define cairo_list_foreach(pos, head) \ - for (pos = (head)->next; pos != (head); pos = pos->next) - -#define cairo_list_foreach_entry(pos, type, head, member) \ - for (pos = cairo_list_entry((head)->next, type, member);\ - &pos->member != (head); \ - pos = cairo_list_entry(pos->member.next, type, member)) - -#define cairo_list_foreach_entry_safe(pos, n, type, head, member) \ - for (pos = cairo_list_entry ((head)->next, type, member),\ - n = cairo_list_entry (pos->member.next, type, member);\ - &pos->member != (head); \ - pos = n, n = cairo_list_entry (n->member.next, type, member)) - -#define cairo_list_foreach_entry_reverse(pos, type, head, member) \ - for (pos = cairo_list_entry((head)->prev, type, member);\ - &pos->member != (head); \ - pos = cairo_list_entry(pos->member.prev, type, member)) - -#define cairo_list_foreach_entry_reverse_safe(pos, n, type, head, member) \ - for (pos = cairo_list_entry((head)->prev, type, member),\ - n = cairo_list_entry (pos->member.prev, type, member);\ - &pos->member != (head); \ - pos = n, n = cairo_list_entry (n->member.prev, type, member)) - -#ifdef CAIRO_LIST_DEBUG -static inline void -_cairo_list_validate (const cairo_list_t *link) -{ - assert (link->next->prev == link); - assert (link->prev->next == link); -} -static inline void -cairo_list_validate (const cairo_list_t *head) -{ - cairo_list_t *link; - - cairo_list_foreach (link, head) - _cairo_list_validate (link); -} -static inline cairo_bool_t -cairo_list_is_empty (const cairo_list_t *head); -static inline void -cairo_list_validate_is_empty (const cairo_list_t *head) -{ - assert (head->next == NULL || (cairo_list_is_empty (head) && head->next == head->prev)); -} -#else -#define _cairo_list_validate(link) -#define cairo_list_validate(head) -#define cairo_list_validate_is_empty(head) -#endif - -static inline void -cairo_list_init (cairo_list_t *entry) -{ - entry->next = entry; - entry->prev = entry; -} - -static inline void -__cairo_list_add (cairo_list_t *entry, - cairo_list_t *prev, - cairo_list_t *next) -{ - next->prev = entry; - entry->next = next; - entry->prev = prev; - prev->next = entry; -} - -static inline void -cairo_list_add (cairo_list_t *entry, cairo_list_t *head) -{ - cairo_list_validate (head); - cairo_list_validate_is_empty (entry); - __cairo_list_add (entry, head, head->next); - cairo_list_validate (head); -} - -static inline void -cairo_list_add_tail (cairo_list_t *entry, cairo_list_t *head) -{ - cairo_list_validate (head); - cairo_list_validate_is_empty (entry); - __cairo_list_add (entry, head->prev, head); - cairo_list_validate (head); -} - -static inline void -__cairo_list_del (cairo_list_t *prev, cairo_list_t *next) -{ - next->prev = prev; - prev->next = next; -} - -static inline void -cairo_list_del (cairo_list_t *entry) -{ - __cairo_list_del (entry->prev, entry->next); - cairo_list_init (entry); -} - -static inline void -cairo_list_move (cairo_list_t *entry, cairo_list_t *head) -{ - cairo_list_validate (head); - __cairo_list_del (entry->prev, entry->next); - __cairo_list_add (entry, head, head->next); - cairo_list_validate (head); -} - -static inline void -cairo_list_move_tail (cairo_list_t *entry, cairo_list_t *head) -{ - cairo_list_validate (head); - __cairo_list_del (entry->prev, entry->next); - __cairo_list_add (entry, head->prev, head); - cairo_list_validate (head); -} - -static inline void -cairo_list_swap (cairo_list_t *entry, cairo_list_t *other) -{ - __cairo_list_add (entry, other->prev, other->next); - cairo_list_init (other); -} - -static inline cairo_bool_t -cairo_list_is_first (const cairo_list_t *entry, - const cairo_list_t *head) -{ - cairo_list_validate (head); - return entry->prev == head; -} - -static inline cairo_bool_t -cairo_list_is_last (const cairo_list_t *entry, - const cairo_list_t *head) -{ - cairo_list_validate (head); - return entry->next == head; -} - -static inline cairo_bool_t -cairo_list_is_empty (const cairo_list_t *head) -{ - cairo_list_validate (head); - return head->next == head; -} - -static inline cairo_bool_t -cairo_list_is_singular (const cairo_list_t *head) -{ - cairo_list_validate (head); - return head->next == head || head->next == head->prev; -} - #endif /* CAIRO_LIST_PRIVATE_H */ diff --git a/src/cairo-malloc-private.h b/src/cairo-malloc-private.h index e5acf16..1e2c67f 100644 --- a/src/cairo-malloc-private.h +++ b/src/cairo-malloc-private.h @@ -57,17 +57,17 @@ * * Return value: A pointer to the newly allocated memory, or %NULL in * case of malloc() failure or size is 0. - */ + **/ #define _cairo_malloc(size) \ ((size) ? malloc((unsigned) (size)) : NULL) /** * _cairo_malloc_ab: - * @n: number of elements to allocate + * @a: number of elements to allocate * @size: size of each element * - * Allocates @n*@size memory using _cairo_malloc(), taking care to not + * Allocates @a*@size memory using _cairo_malloc(), taking care to not * overflow when doing the multiplication. Behaves much like * calloc(), except that the returned memory is not set to zero. * The memory should be freed using free(). @@ -77,7 +77,7 @@ * * Return value: A pointer to the newly allocated memory, or %NULL in * case of malloc() failure or overflow. - */ + **/ #define _cairo_malloc_ab(a, size) \ ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \ @@ -86,10 +86,10 @@ /** * _cairo_realloc_ab: * @ptr: original pointer to block of memory to be resized - * @n: number of elements to allocate + * @a: number of elements to allocate * @size: size of each element * - * Reallocates @ptr a block of @n*@size memory using realloc(), taking + * Reallocates @ptr a block of @a*@size memory using realloc(), taking * care to not overflow when doing the multiplication. The memory * should be freed using free(). * @@ -99,7 +99,7 @@ * Return value: A pointer to the newly allocated memory, or %NULL in * case of realloc() failure or overflow (whereupon the original block * of memory * is left untouched). - */ + **/ #define _cairo_realloc_ab(ptr, a, size) \ ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \ @@ -107,11 +107,11 @@ /** * _cairo_malloc_abc: - * @n: first factor of number of elements to allocate + * @a: first factor of number of elements to allocate * @b: second factor of number of elements to allocate * @size: size of each element * - * Allocates @n*@b*@size memory using _cairo_malloc(), taking care to not + * Allocates @a*@b*@size memory using _cairo_malloc(), taking care to not * overflow when doing the multiplication. Behaves like * _cairo_malloc_ab(). The memory should be freed using free(). * @@ -120,7 +120,7 @@ * * Return value: A pointer to the newly allocated memory, or %NULL in * case of malloc() failure or overflow. - */ + **/ #define _cairo_malloc_abc(a, b, size) \ ((b) && (unsigned) (a) >= INT32_MAX / (unsigned) (b) ? NULL : \ @@ -129,21 +129,21 @@ /** * _cairo_malloc_ab_plus_c: - * @n: number of elements to allocate + * @a: number of elements to allocate * @size: size of each element - * @k: additional size to allocate + * @c: additional size to allocate * - * Allocates @n*@ksize+@k memory using _cairo_malloc(), taking care to not - * overflow when doing the arithmetic. Behaves like + * Allocates @a*@size+@c memory using _cairo_malloc(), taking care to not + * overflow when doing the arithmetic. Behaves similar to * _cairo_malloc_ab(). The memory should be freed using free(). * * Return value: A pointer to the newly allocated memory, or %NULL in * case of malloc() failure or overflow. - */ + **/ -#define _cairo_malloc_ab_plus_c(n, size, k) \ - ((size) && (unsigned) (n) >= INT32_MAX / (unsigned) (size) ? NULL : \ - (unsigned) (k) >= INT32_MAX - (unsigned) (n) * (unsigned) (size) ? NULL : \ - _cairo_malloc((unsigned) (n) * (unsigned) (size) + (unsigned) (k))) +#define _cairo_malloc_ab_plus_c(a, size, c) \ + ((size) && (unsigned) (a) >= INT32_MAX / (unsigned) (size) ? NULL : \ + (unsigned) (c) >= INT32_MAX - (unsigned) (a) * (unsigned) (size) ? NULL : \ + _cairo_malloc((unsigned) (a) * (unsigned) (size) + (unsigned) (c))) #endif /* CAIRO_MALLOC_PRIVATE_H */ diff --git a/src/cairo-mask-compositor.c b/src/cairo-mask-compositor.c index b34ffa2..7976a79 100644 --- a/src/cairo-mask-compositor.c +++ b/src/cairo-mask-compositor.c @@ -45,9 +45,10 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" -#include "cairo-pattern-private.h" +#include "cairo-pattern-inline.h" #include "cairo-region-private.h" #include "cairo-surface-observer-private.h" #include "cairo-surface-offset-private.h" @@ -162,21 +163,39 @@ create_composite_mask (const cairo_mask_compositor_t *compositor, struct blt_in info; int i; - surface = _cairo_surface_create_similar_solid (dst, - CAIRO_CONTENT_ALPHA, - extents->bounded.width, - extents->bounded.height, - CAIRO_COLOR_TRANSPARENT); + surface = _cairo_surface_create_similar_scratch (dst, CAIRO_CONTENT_ALPHA, + extents->bounded.width, + extents->bounded.height); if (unlikely (surface->status)) return surface; + status = compositor->acquire (surface); + if (unlikely (status)) { + cairo_surface_destroy (surface); + return _cairo_surface_create_in_error (status); + } + + if (!surface->is_clear) { + cairo_rectangle_int_t rect; + + rect.x = rect.y = 0; + rect.width = extents->bounded.width; + rect.height = extents->bounded.height; + + status = compositor->fill_rectangles (surface, CAIRO_OPERATOR_CLEAR, + CAIRO_COLOR_TRANSPARENT, + &rect, 1); + if (unlikely (status)) + goto error; + } + if (mask_func) { status = mask_func (compositor, surface, draw_closure, CAIRO_OPERATOR_SOURCE, NULL, NULL, extents->bounded.x, extents->bounded.y, &extents->bounded, extents->clip); if (likely (status != CAIRO_INT_STATUS_UNSUPPORTED)) - return surface; + goto out; } /* Is it worth setting the clip region here? */ @@ -184,10 +203,8 @@ create_composite_mask (const cairo_mask_compositor_t *compositor, CAIRO_OPERATOR_ADD, NULL, NULL, extents->bounded.x, extents->bounded.y, &extents->bounded, NULL); - if (unlikely (status)) { - cairo_surface_destroy (surface); - return _cairo_surface_create_in_error (status); - } + if (unlikely (status)) + goto error; info.compositor = compositor; info.dst = surface; @@ -209,12 +226,21 @@ create_composite_mask (const cairo_mask_compositor_t *compositor, status = _cairo_clip_combine_with_surface (extents->clip, surface, extents->bounded.x, extents->bounded.y); - if (unlikely (status)) { - cairo_surface_destroy (surface); - return _cairo_surface_create_in_error (status); - } + if (unlikely (status)) + goto error; } +out: + compositor->release (surface); + surface->is_clear = FALSE; + return surface; + +error: + compositor->release (surface); + if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) { + cairo_surface_destroy (surface); + surface = _cairo_surface_create_in_error (status); + } return surface; } @@ -778,39 +804,30 @@ upload_boxes (const cairo_mask_compositor_t *compositor, { cairo_surface_t *dst = extents->surface; const cairo_pattern_t *source = &extents->source_pattern.base; - const cairo_surface_pattern_t *pattern; cairo_surface_t *src; cairo_rectangle_int_t limit; cairo_int_status_t status; int tx, ty; - pattern = (const cairo_surface_pattern_t *) source; - src = pattern->surface; + src = _cairo_pattern_get_source ((cairo_surface_pattern_t *)source, &limit); if (!(src->type == CAIRO_SURFACE_TYPE_IMAGE || src->type == dst->type)) return CAIRO_INT_STATUS_UNSUPPORTED; if (! _cairo_matrix_is_integer_translation (&source->matrix, &tx, &ty)) return CAIRO_INT_STATUS_UNSUPPORTED; - if (_cairo_surface_is_snapshot (src)) - src = _cairo_surface_snapshot_get_target (src); - if (_cairo_surface_is_observer (src)) - src = _cairo_surface_observer_get_target (src); - if (_cairo_surface_is_subsurface (src)) { - _cairo_surface_subsurface_offset (src, &tx, &ty); - src = _cairo_surface_subsurface_get_target (src); - } - /* Check that the data is entirely within the image */ - if (extents->bounded.x + tx < 0 || extents->bounded.y + ty < 0) + if (extents->bounded.x + tx < limit.x || extents->bounded.y + ty < limit.y) return CAIRO_INT_STATUS_UNSUPPORTED; - _cairo_surface_get_extents (pattern->surface, &limit); - if (extents->bounded.x + extents->bounded.width + tx > limit.width || - extents->bounded.y + extents->bounded.height + ty > limit.height) + if (extents->bounded.x + extents->bounded.width + tx > limit.x + limit.width || + extents->bounded.y + extents->bounded.height + ty > limit.y + limit.height) return CAIRO_INT_STATUS_UNSUPPORTED; - if (pattern->surface->type == CAIRO_SURFACE_TYPE_IMAGE) + tx += limit.x; + ty += limit.y; + + if (src->type == CAIRO_SURFACE_TYPE_IMAGE) status = compositor->draw_image_boxes (dst, (cairo_image_surface_t *)src, boxes, tx, ty); diff --git a/src/cairo-matrix.c b/src/cairo-matrix.c index 2521135..ba975be 100644 --- a/src/cairo-matrix.c +++ b/src/cairo-matrix.c @@ -67,7 +67,7 @@ * #cairo_matrix_t, defines the transformation from user-space * coordinates to device-space coordinates. See cairo_get_matrix() and * cairo_set_matrix(). - */ + **/ static void _cairo_matrix_scalar_multiply (cairo_matrix_t *matrix, double scalar); @@ -80,6 +80,8 @@ _cairo_matrix_compute_adjoint (cairo_matrix_t *matrix); * @matrix: a #cairo_matrix_t * * Modifies @matrix to be an identity transformation. + * + * Since: 1.0 **/ void cairo_matrix_init_identity (cairo_matrix_t *matrix) @@ -108,6 +110,8 @@ slim_hidden_def(cairo_matrix_init_identity); * x_new = xx * x + xy * y + x0; * y_new = yx * x + yy * y + y0; * + * + * Since: 1.0 **/ void cairo_matrix_init (cairo_matrix_t *matrix, @@ -168,6 +172,8 @@ _cairo_matrix_get_affine (const cairo_matrix_t *matrix, * * Initializes @matrix to a transformation that translates by @tx and * @ty in the X and Y dimensions, respectively. + * + * Since: 1.0 **/ void cairo_matrix_init_translate (cairo_matrix_t *matrix, @@ -190,6 +196,8 @@ slim_hidden_def(cairo_matrix_init_translate); * @matrix. The effect of the new transformation is to first translate * the coordinates by @tx and @ty, then apply the original transformation * to the coordinates. + * + * Since: 1.0 **/ void cairo_matrix_translate (cairo_matrix_t *matrix, double tx, double ty) @@ -210,6 +218,8 @@ slim_hidden_def (cairo_matrix_translate); * * Initializes @matrix to a transformation that scales by @sx and @sy * in the X and Y dimensions, respectively. + * + * Since: 1.0 **/ void cairo_matrix_init_scale (cairo_matrix_t *matrix, @@ -231,6 +241,8 @@ slim_hidden_def(cairo_matrix_init_scale); * Applies scaling by @sx, @sy to the transformation in @matrix. The * effect of the new transformation is to first scale the coordinates * by @sx and @sy, then apply the original transformation to the coordinates. + * + * Since: 1.0 **/ void cairo_matrix_scale (cairo_matrix_t *matrix, double sx, double sy) @@ -253,6 +265,8 @@ slim_hidden_def(cairo_matrix_scale); * direction. * * Initialized @matrix to a transformation that rotates by @radians. + * + * Since: 1.0 **/ void cairo_matrix_init_rotate (cairo_matrix_t *matrix, @@ -284,6 +298,8 @@ slim_hidden_def(cairo_matrix_init_rotate); * @matrix. The effect of the new transformation is to first rotate the * coordinates by @radians, then apply the original transformation * to the coordinates. + * + * Since: 1.0 **/ void cairo_matrix_rotate (cairo_matrix_t *matrix, double radians) @@ -308,6 +324,8 @@ cairo_matrix_rotate (cairo_matrix_t *matrix, double radians) * coordinates. * * It is allowable for @result to be identical to either @a or @b. + * + * Since: 1.0 **/ /* * XXX: The ordering of the arguments to this function corresponds @@ -333,6 +351,21 @@ cairo_matrix_multiply (cairo_matrix_t *result, const cairo_matrix_t *a, const ca } slim_hidden_def(cairo_matrix_multiply); +void +_cairo_matrix_multiply (cairo_matrix_t *r, + const cairo_matrix_t *a, + const cairo_matrix_t *b) +{ + r->xx = a->xx * b->xx + a->yx * b->xy; + r->yx = a->xx * b->yx + a->yx * b->yy; + + r->xy = a->xy * b->xx + a->yy * b->xy; + r->yy = a->xy * b->yx + a->yy * b->yy; + + r->x0 = a->x0 * b->xx + a->y0 * b->xy + b->x0; + r->y0 = a->x0 * b->yx + a->y0 * b->yy + b->y0; +} + /** * cairo_matrix_transform_distance: * @matrix: a #cairo_matrix_t @@ -353,6 +386,8 @@ slim_hidden_def(cairo_matrix_multiply); * always transforms to the same vector. If (@x1,@y1) transforms * to (@x2,@y2) then (@x1+@dx1,@y1+@dy1) will transform to * (@x1+@dx2,@y1+@dy2) for all values of @x1 and @x2. + * + * Since: 1.0 **/ void cairo_matrix_transform_distance (const cairo_matrix_t *matrix, double *dx, double *dy) @@ -374,6 +409,8 @@ slim_hidden_def(cairo_matrix_transform_distance); * @y: Y position. An in/out parameter * * Transforms the point (@x, @y) by @matrix. + * + * Since: 1.0 **/ void cairo_matrix_transform_point (const cairo_matrix_t *matrix, double *x, double *y) @@ -548,6 +585,8 @@ _cairo_matrix_compute_adjoint (cairo_matrix_t *matrix) * Returns: If @matrix has an inverse, modifies @matrix to * be the inverse matrix and returns %CAIRO_STATUS_SUCCESS. Otherwise, * returns %CAIRO_STATUS_INVALID_MATRIX. + * + * Since: 1.0 **/ cairo_status_t cairo_matrix_invert (cairo_matrix_t *matrix) @@ -686,21 +725,6 @@ _cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix, } cairo_bool_t -_cairo_matrix_is_identity (const cairo_matrix_t *matrix) -{ - return (matrix->xx == 1.0 && matrix->yx == 0.0 && - matrix->xy == 0.0 && matrix->yy == 1.0 && - matrix->x0 == 0.0 && matrix->y0 == 0.0); -} - -cairo_bool_t -_cairo_matrix_is_translation (const cairo_matrix_t *matrix) -{ - return (matrix->xx == 1.0 && matrix->yx == 0.0 && - matrix->xy == 0.0 && matrix->yy == 1.0); -} - -cairo_bool_t _cairo_matrix_is_integer_translation (const cairo_matrix_t *matrix, int *itx, int *ity) { diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c index 82b16e7..6f0dd66 100644 --- a/src/cairo-mesh-pattern-rasterizer.c +++ b/src/cairo-mesh-pattern-rasterizer.c @@ -333,7 +333,7 @@ fd_fixed_fwd (int32_t f[4]) * * max(|B'(t)|) <= 3 max (|p1-p0|, |p2-p0|/2, |p3-p1|/2, |p3-p2|) * - * So, to guarantee a maximum step lenght of 1/sqrt(2) we must do: + * So, to guarantee a maximum step length of 1/sqrt(2) we must do: * * 3 max (|p1-p0|, |p2-p0|/2, |p3-p1|/2, |p3-p2|) sqrt(2) steps */ diff --git a/src/cairo-misc.c b/src/cairo-misc.c index 27c264b..bb37e1a 100644 --- a/src/cairo-misc.c +++ b/src/cairo-misc.c @@ -62,7 +62,7 @@ COMPILE_TIME_ASSERT (CAIRO_INT_STATUS_LAST_STATUS <= 127); * the mean time, it is safe to call all cairo functions normally even if the * underlying object is in an error status. This means that no error handling * code is required before or after each individual cairo function call. - */ + **/ /* Public stuff */ @@ -73,7 +73,9 @@ COMPILE_TIME_ASSERT (CAIRO_INT_STATUS_LAST_STATUS <= 127); * Provides a human-readable description of a #cairo_status_t. * * Returns: a string representation of the status - */ + * + * Since: 1.0 + **/ const char * cairo_status_to_string (cairo_status_t status) { @@ -180,7 +182,7 @@ cairo_status_to_string (cairo_status_t status) * freed using cairo_glyph_free() * * Since: 1.8 - */ + **/ cairo_glyph_t * cairo_glyph_allocate (int num_glyphs) { @@ -203,7 +205,7 @@ slim_hidden_def (cairo_glyph_allocate); * for glyphs. * * Since: 1.8 - */ + **/ void cairo_glyph_free (cairo_glyph_t *glyphs) { @@ -230,7 +232,7 @@ slim_hidden_def (cairo_glyph_free); * freed using cairo_text_cluster_free() * * Since: 1.8 - */ + **/ cairo_text_cluster_t * cairo_text_cluster_allocate (int num_clusters) { @@ -253,7 +255,7 @@ slim_hidden_def (cairo_text_cluster_allocate); * for text clusters. * * Since: 1.8 - */ + **/ void cairo_text_cluster_free (cairo_text_cluster_t *clusters) { @@ -281,7 +283,7 @@ slim_hidden_def (cairo_text_cluster_free); * %CAIRO_STATUS_INVALID_CLUSTERS on error. * The error is either invalid UTF-8 input, * or bad cluster mapping. - */ + **/ cairo_status_t _cairo_validate_text_clusters (const char *utf8, int utf8_len, diff --git a/src/cairo-mono-scan-converter.c b/src/cairo-mono-scan-converter.c index a617f48..2a9546c 100644 --- a/src/cairo-mono-scan-converter.c +++ b/src/cairo-mono-scan-converter.c @@ -200,8 +200,8 @@ polygon_add_edge (struct polygon *polygon, e->x = floored_muldivrem (ytop * CAIRO_FIXED_ONE + CAIRO_FIXED_FRAC_MASK/2 - edge->line.p1.y, dx, dy); e->x.quo += edge->line.p1.x; - e->x.rem -= dy; } + e->x.rem -= dy; _polygon_insert_edge_into_its_y_bucket (polygon, e, ytop); } @@ -337,11 +337,13 @@ row (struct mono_scan_converter *c, unsigned int mask) int xend = I(edge->x.quo); if (--edge->height_left) { - edge->x.quo += edge->dxdy.quo; - edge->x.rem += edge->dxdy.rem; - if (edge->x.rem >= 0) { - ++edge->x.quo; - edge->x.rem -= edge->dy; + if (!edge->vertical) { + edge->x.quo += edge->dxdy.quo; + edge->x.rem += edge->dxdy.rem; + if (edge->x.rem >= 0) { + ++edge->x.quo; + edge->x.rem -= edge->dy; + } } if (edge->x.quo < prev_x) { @@ -390,13 +392,15 @@ _mono_scan_converter_init(struct mono_scan_converter *c, int xmax, int ymax) { cairo_status_t status; + int max_num_spans; status = polygon_init (c->polygon, ymin, ymax); if (unlikely (status)) return status; - if (xmax - xmin > ARRAY_LENGTH(c->spans_embedded)) { - c->spans = _cairo_malloc_ab (xmax - xmin, + max_num_spans = xmax - xmin + 1; + if (max_num_spans > ARRAY_LENGTH(c->spans_embedded)) { + c->spans = _cairo_malloc_ab (max_num_spans, sizeof (cairo_half_open_span_t)); if (unlikely (c->spans == NULL)) { polygon_fini (c->polygon); diff --git a/src/cairo-observer.c b/src/cairo-observer.c index 7c7b69c..36d6b93 100644 --- a/src/cairo-observer.c +++ b/src/cairo-observer.c @@ -36,6 +36,8 @@ #include "cairoint.h" +#include "cairo-list-inline.h" + void _cairo_observers_notify (cairo_list_t *observers, void *arg) { diff --git a/src/cairo-os2-surface.c b/src/cairo-os2-surface.c index 51171fa..19646fb 100644 --- a/src/cairo-os2-surface.c +++ b/src/cairo-os2-surface.c @@ -786,7 +786,7 @@ cairo_os2_surface_create (HPS hps_client_window, error_exit: - /* This point will only be reached if an error occured */ + /* This point will only be reached if an error occurred */ if (local_os2_surface) { if (local_os2_surface->pixels) @@ -1394,6 +1394,7 @@ static const cairo_surface_backend_t cairo_os2_surface_backend = { _cairo_os2_surface_map_to_image, _cairo_os2_surface_unmap_image, + _cairo_surface_default_source, _cairo_os2_surface_acquire_source_image, _cairo_os2_surface_release_source_image, NULL, /* snapshot */ diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c index 0418e67..fe9ccee 100644 --- a/src/cairo-paginated-surface.c +++ b/src/cairo-paginated-surface.c @@ -50,7 +50,7 @@ #include "cairo-analysis-surface-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" -#include "cairo-surface-subsurface-private.h" +#include "cairo-surface-subsurface-inline.h" static const cairo_surface_backend_t cairo_paginated_surface_backend; @@ -242,6 +242,14 @@ _cairo_paginated_surface_create_image_surface (void *abstract_surface, return image; } +static cairo_surface_t * +_cairo_paginated_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_paginated_surface_t *surface = abstract_surface; + return _cairo_surface_get_source (surface->target, extents); +} + static cairo_status_t _cairo_paginated_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -640,6 +648,17 @@ _cairo_paginated_surface_show_text_glyphs (void *abstract_surface, clip); } +static const char ** +_cairo_paginated_surface_get_supported_mime_types (void *abstract_surface) +{ + cairo_paginated_surface_t *surface = abstract_surface; + + if (surface->target->backend->get_supported_mime_types) + return surface->target->backend->get_supported_mime_types (surface->target); + + return NULL; +} + static cairo_surface_t * _cairo_paginated_surface_snapshot (void *abstract_other) { @@ -671,6 +690,7 @@ static const cairo_surface_backend_t cairo_paginated_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_paginated_surface_source, _cairo_paginated_surface_acquire_source_image, _cairo_paginated_surface_release_source_image, _cairo_paginated_surface_snapshot, @@ -691,5 +711,6 @@ static const cairo_surface_backend_t cairo_paginated_surface_backend = { NULL, /* fill_stroke */ NULL, /* show_glyphs */ _cairo_paginated_surface_has_show_text_glyphs, - _cairo_paginated_surface_show_text_glyphs + _cairo_paginated_surface_show_text_glyphs, + _cairo_paginated_surface_get_supported_mime_types, }; diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c index 087a7d0..9c72224 100644 --- a/src/cairo-path-bounds.c +++ b/src/cairo-path-bounds.c @@ -36,7 +36,7 @@ */ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-error-private.h" #include "cairo-path-fixed-private.h" diff --git a/src/cairo-path-fill.c b/src/cairo-path-fill.c index 4000c9c..7719383 100644 --- a/src/cairo-path-fill.c +++ b/src/cairo-path-fill.c @@ -339,3 +339,63 @@ _cairo_path_fixed_fill_rectilinear_to_boxes (const cairo_path_fixed_t *path, antialias, boxes); } + +cairo_status_t +_cairo_path_fixed_fill_rectilinear_to_traps (const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + cairo_antialias_t antialias, + cairo_traps_t *traps) +{ + cairo_box_t box; + cairo_status_t status; + + traps->is_rectilinear = TRUE; + traps->is_rectangular = TRUE; + + if (_cairo_path_fixed_is_box (path, &box)) { + if (antialias == CAIRO_ANTIALIAS_NONE) { + box.p1.x = _cairo_fixed_round_down (box.p1.x); + box.p1.y = _cairo_fixed_round_down (box.p1.y); + box.p2.x = _cairo_fixed_round_down (box.p2.x); + box.p2.y = _cairo_fixed_round_down (box.p2.y); + } + return _cairo_traps_tessellate_rectangle (traps, &box.p1, &box.p2); + } else { + cairo_path_fixed_iter_t iter; + + _cairo_path_fixed_iter_init (&iter, path); + while (_cairo_path_fixed_iter_is_fill_box (&iter, &box)) { + if (box.p1.y > box.p2.y) { + cairo_fixed_t t; + + t = box.p1.y; + box.p1.y = box.p2.y; + box.p2.y = t; + + t = box.p1.x; + box.p1.x = box.p2.x; + box.p2.x = t; + } + + if (antialias == CAIRO_ANTIALIAS_NONE) { + box.p1.x = _cairo_fixed_round_down (box.p1.x); + box.p1.y = _cairo_fixed_round_down (box.p1.y); + box.p2.x = _cairo_fixed_round_down (box.p2.x); + box.p2.y = _cairo_fixed_round_down (box.p2.y); + } + + status = _cairo_traps_tessellate_rectangle (traps, + &box.p1, &box.p2); + if (unlikely (status)) { + _cairo_traps_clear (traps); + return status; + } + } + + if (_cairo_path_fixed_iter_at_end (&iter)) + return _cairo_bentley_ottmann_tessellate_rectangular_traps (traps, fill_rule); + + _cairo_traps_clear (traps); + return CAIRO_INT_STATUS_UNSUPPORTED; + } +} diff --git a/src/cairo-path-fixed.c b/src/cairo-path-fixed.c index 1e9a759..459c680 100644 --- a/src/cairo-path-fixed.c +++ b/src/cairo-path-fixed.c @@ -38,8 +38,9 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-error-private.h" +#include "cairo-list-inline.h" #include "cairo-path-fixed-private.h" #include "cairo-slope-private.h" @@ -369,7 +370,7 @@ _cairo_path_fixed_destroy (cairo_path_fixed_t *path) free (path); } -static inline cairo_path_op_t +static cairo_path_op_t _cairo_path_fixed_last_op (cairo_path_fixed_t *path) { cairo_path_buf_t *buf; diff --git a/src/cairo-path-stroke-boxes.c b/src/cairo-path-stroke-boxes.c index c840e92..50c53f3 100644 --- a/src/cairo-path-stroke-boxes.c +++ b/src/cairo-path-stroke-boxes.c @@ -39,7 +39,7 @@ #define _BSD_SOURCE /* for hypot() */ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" #include "cairo-error-private.h" #include "cairo-path-fixed-private.h" @@ -48,8 +48,10 @@ typedef struct _segment_t { cairo_point_t p1, p2; - cairo_bool_t is_horizontal; - cairo_bool_t has_join; + unsigned flags; +#define HORIZONTAL 0x1 +#define FORWARDS 0x2 +#define JOIN 0x4 } segment_t; typedef struct _cairo_rectilinear_stroker { @@ -57,7 +59,7 @@ typedef struct _cairo_rectilinear_stroker { const cairo_matrix_t *ctm; cairo_antialias_t antialias; - cairo_fixed_t half_line_width; + cairo_fixed_t half_line_x, half_line_y; cairo_boxes_t *boxes; cairo_point_t current_point; cairo_point_t first_point; @@ -82,11 +84,11 @@ _cairo_rectilinear_stroker_limit (cairo_rectilinear_stroker_t *stroker, stroker->has_bounds = TRUE; _cairo_boxes_get_extents (boxes, num_boxes, &stroker->bounds); - stroker->bounds.p1.x -= stroker->half_line_width; - stroker->bounds.p2.x += stroker->half_line_width; + stroker->bounds.p1.x -= stroker->half_line_x; + stroker->bounds.p2.x += stroker->half_line_x; - stroker->bounds.p1.y -= stroker->half_line_width; - stroker->bounds.p2.y += stroker->half_line_width; + stroker->bounds.p1.y -= stroker->half_line_y; + stroker->bounds.p2.y += stroker->half_line_y; } static cairo_bool_t @@ -122,15 +124,17 @@ _cairo_rectilinear_stroker_init (cairo_rectilinear_stroker_t *stroker, return FALSE; } - if (! _cairo_matrix_has_unity_scale (ctm)) + if (! _cairo_matrix_is_scale (ctm)) return FALSE; stroker->stroke_style = stroke_style; stroker->ctm = ctm; stroker->antialias = antialias; - stroker->half_line_width = - _cairo_fixed_from_double (stroke_style->line_width / 2.0); + stroker->half_line_x = + _cairo_fixed_from_double (fabs(ctm->xx) * stroke_style->line_width / 2.0); + stroker->half_line_y = + _cairo_fixed_from_double (fabs(ctm->yy) * stroke_style->line_width / 2.0); stroker->open_sub_path = FALSE; stroker->segments = stroker->segments_embedded; @@ -157,8 +161,7 @@ static cairo_status_t _cairo_rectilinear_stroker_add_segment (cairo_rectilinear_stroker_t *stroker, const cairo_point_t *p1, const cairo_point_t *p2, - cairo_bool_t is_horizontal, - cairo_bool_t has_join) + unsigned flags) { if (CAIRO_INJECT_FAULT ()) return _cairo_error (CAIRO_STATUS_NO_MEMORY); @@ -187,8 +190,7 @@ _cairo_rectilinear_stroker_add_segment (cairo_rectilinear_stroker_t *stroker, stroker->segments[stroker->num_segments].p1 = *p1; stroker->segments[stroker->num_segments].p2 = *p2; - stroker->segments[stroker->num_segments].has_join = has_join; - stroker->segments[stroker->num_segments].is_horizontal = is_horizontal; + stroker->segments[stroker->num_segments].flags = flags; stroker->num_segments++; return CAIRO_STATUS_SUCCESS; @@ -198,7 +200,8 @@ static cairo_status_t _cairo_rectilinear_stroker_emit_segments (cairo_rectilinear_stroker_t *stroker) { cairo_line_cap_t line_cap = stroker->stroke_style->line_cap; - cairo_fixed_t half_line_width = stroker->half_line_width; + cairo_fixed_t half_line_x = stroker->half_line_x; + cairo_fixed_t half_line_y = stroker->half_line_y; cairo_status_t status; int i; @@ -239,26 +242,26 @@ _cairo_rectilinear_stroker_emit_segments (cairo_rectilinear_stroker_t *stroker) if (a->y == b->y) { if (a->x < b->x) { if (lengthen_initial) - a->x -= half_line_width; + a->x -= half_line_x; if (lengthen_final) - b->x += half_line_width; + b->x += half_line_x; } else { if (lengthen_initial) - a->x += half_line_width; + a->x += half_line_x; if (lengthen_final) - b->x -= half_line_width; + b->x -= half_line_x; } } else { if (a->y < b->y) { if (lengthen_initial) - a->y -= half_line_width; + a->y -= half_line_y; if (lengthen_final) - b->y += half_line_width; + b->y += half_line_y; } else { if (lengthen_initial) - a->y += half_line_width; + a->y += half_line_y; if (lengthen_final) - b->y -= half_line_width; + b->y -= half_line_y; } } } @@ -266,11 +269,11 @@ _cairo_rectilinear_stroker_emit_segments (cairo_rectilinear_stroker_t *stroker) /* Form the rectangle by expanding by half the line width in * either perpendicular direction. */ if (a->y == b->y) { - a->y -= half_line_width; - b->y += half_line_width; + a->y -= half_line_y; + b->y += half_line_y; } else { - a->x -= half_line_width; - b->x += half_line_width; + a->x -= half_line_x; + b->x += half_line_x; } if (a->x < b->x) { @@ -302,7 +305,8 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st { cairo_status_t status; cairo_line_cap_t line_cap = stroker->stroke_style->line_cap; - cairo_fixed_t half_line_width = stroker->half_line_width; + cairo_fixed_t half_line_x = stroker->half_line_x; + cairo_fixed_t half_line_y = stroker->half_line_y; int i; for (i = 0; i < stroker->num_segments; i++) { @@ -313,45 +317,43 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st a = &stroker->segments[i].p1; b = &stroker->segments[i].p2; - is_horizontal = stroker->segments[i].is_horizontal; + is_horizontal = stroker->segments[i].flags & HORIZONTAL; /* Handle the joins for a potentially degenerate segment. */ if (line_cap == CAIRO_LINE_CAP_BUTT && - stroker->segments[i].has_join && + stroker->segments[i].flags & JOIN && (i != stroker->num_segments - 1 || (! stroker->open_sub_path && stroker->dash.dash_starts_on))) { cairo_slope_t out_slope; int j = (i + 1) % stroker->num_segments; + cairo_bool_t forwards = !!(stroker->segments[i].flags & FORWARDS); - box.p1 = stroker->segments[i].p1; - box.p2 = stroker->segments[i].p2; _cairo_slope_init (&out_slope, &stroker->segments[j].p1, &stroker->segments[j].p2); + box.p2 = box.p1 = stroker->segments[i].p2; if (is_horizontal) { - if (box.p1.x <= box.p2.x) { - box.p1.x = box.p2.x; - box.p2.x += half_line_width; - } else { - box.p1.x = box.p2.x - half_line_width; - } - if (out_slope.dy >= 0) - box.p1.y -= half_line_width; - if (out_slope.dy <= 0) - box.p2.y += half_line_width; + if (forwards) + box.p2.x += half_line_x; + else + box.p1.x -= half_line_x; + + if (out_slope.dy > 0) + box.p1.y -= half_line_y; + else + box.p2.y += half_line_y; } else { - if (box.p1.y <= box.p2.y) { - box.p1.y = box.p2.y; - box.p2.y += half_line_width; - } else { - box.p1.y = box.p2.y - half_line_width; - } - if (out_slope.dx >= 0) - box.p1.x -= half_line_width; - if (out_slope.dx <= 0) - box.p2.x += half_line_width; + if (forwards) + box.p2.y += half_line_y; + else + box.p1.y -= half_line_y; + + if (out_slope.dx > 0) + box.p1.x -= half_line_x; + else + box.p2.x += half_line_x; } status = _cairo_boxes_add (stroker->boxes, stroker->antialias, &box); @@ -363,29 +365,29 @@ _cairo_rectilinear_stroker_emit_segments_dashed (cairo_rectilinear_stroker_t *st if (is_horizontal) { if (line_cap == CAIRO_LINE_CAP_SQUARE) { if (a->x <= b->x) { - a->x -= half_line_width; - b->x += half_line_width; + a->x -= half_line_x; + b->x += half_line_x; } else { - a->x += half_line_width; - b->x -= half_line_width; + a->x += half_line_x; + b->x -= half_line_x; } } - a->y += half_line_width; - b->y -= half_line_width; + a->y += half_line_y; + b->y -= half_line_y; } else { if (line_cap == CAIRO_LINE_CAP_SQUARE) { if (a->y <= b->y) { - a->y -= half_line_width; - b->y += half_line_width; + a->y -= half_line_y; + b->y += half_line_y; } else { - a->y += half_line_width; - b->y -= half_line_width; + a->y += half_line_y; + b->y -= half_line_y; } } - a->x += half_line_width; - b->x -= half_line_width; + a->x += half_line_x; + b->x -= half_line_x; } if (a->x == b->x && a->y == b->y) @@ -455,8 +457,7 @@ _cairo_rectilinear_stroker_line_to (void *closure, return CAIRO_STATUS_SUCCESS; status = _cairo_rectilinear_stroker_add_segment (stroker, a, b, - a->y == b->y, - TRUE); + (a->y == b->y) | JOIN); stroker->current_point = *b; stroker->open_sub_path = TRUE; @@ -472,12 +473,12 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, const cairo_point_t *a = &stroker->current_point; const cairo_point_t *b = point; cairo_bool_t fully_in_bounds; - double sign, remain; + double sf, sign, remain; cairo_fixed_t mag; cairo_status_t status; cairo_line_t segment; cairo_bool_t dash_on = FALSE; - cairo_bool_t is_horizontal; + unsigned is_horizontal; /* We don't draw anything for degenerate paths. */ if (a->x == b->x && a->y == b->y) @@ -495,15 +496,19 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, } is_horizontal = a->y == b->y; - if (is_horizontal) + if (is_horizontal) { mag = b->x - a->x; - else + sf = fabs (stroker->ctm->xx); + } else { mag = b->y - a->y; + sf = fabs (stroker->ctm->yy); + } if (mag < 0) { remain = _cairo_fixed_to_double (-mag); sign = 1.; } else { remain = _cairo_fixed_to_double (mag); + is_horizontal |= FORWARDS; sign = -1.; } @@ -511,11 +516,11 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, while (remain > 0.) { double step_length; - step_length = MIN (stroker->dash.dash_remain, remain); + step_length = MIN (sf * stroker->dash.dash_remain, remain); remain -= step_length; mag = _cairo_fixed_from_double (sign*remain); - if (is_horizontal) + if (is_horizontal & 0x1) segment.p2.x = b->x + mag; else segment.p2.y = b->y + mag; @@ -527,8 +532,7 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, status = _cairo_rectilinear_stroker_add_segment (stroker, &segment.p1, &segment.p2, - is_horizontal, - remain <= 0.); + is_horizontal | (remain <= 0.) << 2); if (unlikely (status)) return status; @@ -539,7 +543,7 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, dash_on = FALSE; } - _cairo_stroker_dash_step (&stroker->dash, step_length); + _cairo_stroker_dash_step (&stroker->dash, step_length / sf); segment.p1 = segment.p2; } @@ -555,8 +559,7 @@ _cairo_rectilinear_stroker_line_to_dashed (void *closure, status = _cairo_rectilinear_stroker_add_segment (stroker, &segment.p1, &segment.p1, - is_horizontal, - TRUE); + is_horizontal | JOIN); if (unlikely (status)) return status; } @@ -622,40 +625,40 @@ _cairo_path_fixed_stroke_rectilinear_to_boxes (const cairo_path_fixed_t *path, if (! rectilinear_stroker.dash.dashed && _cairo_path_fixed_is_stroke_box (path, &box) && /* if the segments overlap we need to feed them into the tessellator */ - box.p2.x - box.p1.x > 2* rectilinear_stroker.half_line_width && - box.p2.y - box.p1.y > 2* rectilinear_stroker.half_line_width) + box.p2.x - box.p1.x > 2* rectilinear_stroker.half_line_x && + box.p2.y - box.p1.y > 2* rectilinear_stroker.half_line_y) { cairo_box_t b; /* top */ - b.p1.x = box.p1.x - rectilinear_stroker.half_line_width; - b.p2.x = box.p2.x + rectilinear_stroker.half_line_width; - b.p1.y = box.p1.y - rectilinear_stroker.half_line_width; - b.p2.y = box.p1.y + rectilinear_stroker.half_line_width; + b.p1.x = box.p1.x - rectilinear_stroker.half_line_x; + b.p2.x = box.p2.x + rectilinear_stroker.half_line_x; + b.p1.y = box.p1.y - rectilinear_stroker.half_line_y; + b.p2.y = box.p1.y + rectilinear_stroker.half_line_y; status = _cairo_boxes_add (boxes, antialias, &b); assert (status == CAIRO_INT_STATUS_SUCCESS); /* left (excluding top/bottom) */ - b.p1.x = box.p1.x - rectilinear_stroker.half_line_width; - b.p2.x = box.p1.x + rectilinear_stroker.half_line_width; - b.p1.y = box.p1.y + rectilinear_stroker.half_line_width; - b.p2.y = box.p2.y - rectilinear_stroker.half_line_width; + b.p1.x = box.p1.x - rectilinear_stroker.half_line_x; + b.p2.x = box.p1.x + rectilinear_stroker.half_line_x; + b.p1.y = box.p1.y + rectilinear_stroker.half_line_y; + b.p2.y = box.p2.y - rectilinear_stroker.half_line_y; status = _cairo_boxes_add (boxes, antialias, &b); assert (status == CAIRO_INT_STATUS_SUCCESS); /* right (excluding top/bottom) */ - b.p1.x = box.p2.x - rectilinear_stroker.half_line_width; - b.p2.x = box.p2.x + rectilinear_stroker.half_line_width; - b.p1.y = box.p1.y + rectilinear_stroker.half_line_width; - b.p2.y = box.p2.y - rectilinear_stroker.half_line_width; + b.p1.x = box.p2.x - rectilinear_stroker.half_line_x; + b.p2.x = box.p2.x + rectilinear_stroker.half_line_x; + b.p1.y = box.p1.y + rectilinear_stroker.half_line_y; + b.p2.y = box.p2.y - rectilinear_stroker.half_line_y; status = _cairo_boxes_add (boxes, antialias, &b); assert (status == CAIRO_INT_STATUS_SUCCESS); /* bottom */ - b.p1.x = box.p1.x - rectilinear_stroker.half_line_width; - b.p2.x = box.p2.x + rectilinear_stroker.half_line_width; - b.p1.y = box.p2.y - rectilinear_stroker.half_line_width; - b.p2.y = box.p2.y + rectilinear_stroker.half_line_width; + b.p1.x = box.p1.x - rectilinear_stroker.half_line_x; + b.p2.x = box.p2.x + rectilinear_stroker.half_line_x; + b.p1.y = box.p2.y - rectilinear_stroker.half_line_y; + b.p2.y = box.p2.y + rectilinear_stroker.half_line_y; status = _cairo_boxes_add (boxes, antialias, &b); assert (status == CAIRO_INT_STATUS_SUCCESS); diff --git a/src/cairo-path-stroke-polygon.c b/src/cairo-path-stroke-polygon.c index 9128a00..88527f5 100644 --- a/src/cairo-path-stroke-polygon.c +++ b/src/cairo-path-stroke-polygon.c @@ -40,8 +40,9 @@ #define _BSD_SOURCE /* for hypot() */ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" +#include "cairo-contour-inline.h" #include "cairo-contour-private.h" #include "cairo-error-private.h" #include "cairo-path-fixed-private.h" @@ -163,6 +164,8 @@ add_fan (struct stroker *stroker, { int start, stop, step, i, npoints; + assert (stroker->pen.num_vertices); + if (clockwise) { step = 1; @@ -229,50 +232,6 @@ join_is_clockwise (const cairo_stroke_face_t *in, return _cairo_slope_compare (&in->dev_vector, &out->dev_vector) < 0; } -static cairo_int64_t -distance_from_face (const cairo_stroke_face_t *face, - const cairo_point_t *p, - cairo_bool_t negate) -{ - int32_t dx = (p->x - face->point.x); - int32_t dy = (p->y - face->point.y); - cairo_int64_t d; - - d = _cairo_int64_sub (_cairo_int32x32_64_mul (dx, face->dev_vector.dy), - _cairo_int32x32_64_mul (dy, face->dev_vector.dx)); - if (negate) - d = _cairo_int64_negate (d); - return d; -} - -static cairo_int64_t -distance_along_face (const cairo_stroke_face_t *face, - const cairo_point_t *p) -{ - int32_t dx = (p->x - face->point.x); - int32_t dy = (p->y - face->point.y); - return _cairo_int64_add (_cairo_int32x32_64_mul (dx, face->dev_vector.dx), - _cairo_int32x32_64_mul (dy, face->dev_vector.dy)); -} - -static void -compute_inner_joint (cairo_point_t *p1, cairo_int64_t d_p1, - const cairo_point_t *p2, cairo_int64_t d_p2, - cairo_int64_t half_line_width) -{ - int32_t dx = p2->x - p1->x; - int32_t dy = p2->y - p1->y; - - half_line_width = _cairo_int64_sub (half_line_width, d_p1); - d_p2 = _cairo_int64_sub (d_p2, d_p1); - - p1->x += _cairo_int_96by64_32x64_divrem (_cairo_int64x32_128_mul (half_line_width, dx), - d_p2).quo; - - p1->y += _cairo_int_96by64_32x64_divrem (_cairo_int64x32_128_mul (half_line_width, dy), - d_p2).quo; -} - static void inner_join (struct stroker *stroker, const cairo_stroke_face_t *in, @@ -440,7 +399,7 @@ outer_close (struct stroker *stroker, int clockwise; if (in->cw.x == out->cw.x && in->cw.y == out->cw.y && - in->ccw.x == out->ccw.x && out->ccw.y == out->ccw.y) + in->ccw.x == out->ccw.x && in->ccw.y == out->ccw.y) { return; } @@ -635,7 +594,7 @@ outer_join (struct stroker *stroker, struct stroke_contour *outer; if (in->cw.x == out->cw.x && in->cw.y == out->cw.y && - in->ccw.x == out->ccw.x && out->ccw.y == out->ccw.y) + in->ccw.x == out->ccw.x && in->ccw.y == out->ccw.y) { return; } @@ -1093,7 +1052,6 @@ line_to (void *closure, cairo_stroke_face_t start; cairo_point_t *p1 = &stroker->current_face.point; cairo_slope_t dev_slope; - int move_last = 0; stroker->has_initial_sub_path = TRUE; @@ -1110,9 +1068,7 @@ line_to (void *closure, if (stroker->has_current_face) { int clockwise = _cairo_slope_compare (&stroker->current_face.dev_vector, &start.dev_vector); - if (clockwise == 0) { - move_last = 1; - } else { + if (clockwise) { clockwise = clockwise < 0; /* Join with final face from previous segment */ if (! within_tolerance (&stroker->current_face.ccw, &start.ccw, @@ -1143,13 +1099,8 @@ line_to (void *closure, stroker->current_face.cw.x += dev_slope.dx; stroker->current_face.cw.y += dev_slope.dy; - if (move_last) { - *_cairo_contour_last_point (&stroker->cw.contour) = stroker->current_face.cw; - *_cairo_contour_last_point (&stroker->ccw.contour) = stroker->current_face.ccw; - } else { - contour_add_point (stroker, &stroker->cw, &stroker->current_face.cw); - contour_add_point (stroker, &stroker->ccw, &stroker->current_face.ccw); - } + contour_add_point (stroker, &stroker->cw, &stroker->current_face.cw); + contour_add_point (stroker, &stroker->ccw, &stroker->current_face.ccw); return CAIRO_STATUS_SUCCESS; } @@ -1357,16 +1308,21 @@ _cairo_path_fixed_stroke_to_polygon (const cairo_path_fixed_t *path, stroker.ctm_det_positive = _cairo_matrix_compute_determinant (ctm) >= 0.0; - status = _cairo_pen_init (&stroker.pen, - style->line_width / 2.0, - tolerance, ctm); - if (unlikely (status)) - return status; - - /* If the line width is so small that the pen is reduced to a - single point, then we have nothing to do. */ - if (stroker.pen.num_vertices <= 1) - return CAIRO_STATUS_SUCCESS; + stroker.pen.num_vertices = 0; + if (path->has_curve_to || + style->line_join == CAIRO_LINE_JOIN_ROUND || + style->line_cap == CAIRO_LINE_CAP_ROUND) { + status = _cairo_pen_init (&stroker.pen, + style->line_width / 2.0, + tolerance, ctm); + if (unlikely (status)) + return status; + + /* If the line width is so small that the pen is reduced to a + single point, then we have nothing to do. */ + if (stroker.pen.num_vertices <= 1) + return CAIRO_STATUS_SUCCESS; + } stroker.has_current_face = FALSE; stroker.has_first_face = FALSE; @@ -1396,7 +1352,8 @@ _cairo_path_fixed_stroke_to_polygon (const cairo_path_fixed_t *path, _cairo_contour_fini (&stroker.cw.contour); _cairo_contour_fini (&stroker.ccw.contour); - _cairo_pen_fini (&stroker.pen); + if (stroker.pen.num_vertices) + _cairo_pen_fini (&stroker.pen); #if DEBUG { diff --git a/src/cairo-path-stroke-tristrip.c b/src/cairo-path-stroke-tristrip.c index 337d814..6ce4131 100644 --- a/src/cairo-path-stroke-tristrip.c +++ b/src/cairo-path-stroke-tristrip.c @@ -40,7 +40,7 @@ #define _BSD_SOURCE /* for hypot() */ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" #include "cairo-error-private.h" #include "cairo-path-fixed-private.h" @@ -236,7 +236,7 @@ outer_close (struct stroker *stroker, int clockwise; if (in->cw.x == out->cw.x && in->cw.y == out->cw.y && - in->ccw.x == out->ccw.x && out->ccw.y == out->ccw.y) + in->ccw.x == out->ccw.x && in->ccw.y == out->ccw.y) { return; } @@ -422,7 +422,7 @@ outer_join (struct stroker *stroker, const cairo_point_t *inpt, *outpt; if (in->cw.x == out->cw.x && in->cw.y == out->cw.y && - in->ccw.x == out->ccw.x && out->ccw.y == out->ccw.y) + in->ccw.x == out->ccw.x && in->ccw.y == out->ccw.y) { return; } diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c index f25cfe4..bae66dc 100644 --- a/src/cairo-path-stroke.c +++ b/src/cairo-path-stroke.c @@ -39,7 +39,7 @@ #define _BSD_SOURCE /* for hypot() */ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" #include "cairo-error-private.h" #include "cairo-path-fixed-private.h" @@ -180,11 +180,11 @@ _cairo_stroker_join_is_clockwise (const cairo_stroke_face_t *in, } /** - * _cairo_slope_compare_sgn + * _cairo_slope_compare_sgn: * * Return -1, 0 or 1 depending on the relative slopes of * two lines. - */ + **/ static int _cairo_slope_compare_sgn (double dx1, double dy1, double dx2, double dy2) { diff --git a/src/cairo-path.c b/src/cairo-path.c index d3d9131..5c48373 100644 --- a/src/cairo-path.c +++ b/src/cairo-path.c @@ -48,7 +48,7 @@ * * Paths are the most basic drawing tools and are primarily used to implicitly * generate simple masks. - */ + **/ static const cairo_path_t _cairo_path_nil = { CAIRO_STATUS_NO_MEMORY, NULL, 0 }; @@ -358,6 +358,8 @@ _cairo_path_create_internal (cairo_path_fixed_t *path_fixed, * pointer to a #cairo_path_t returned by a cairo function. Any path * that is created manually (ie. outside of cairo) should be destroyed * manually as well. + * + * Since: 1.0 **/ void cairo_path_destroy (cairo_path_t *path) diff --git a/src/cairo-pattern-inline.h b/src/cairo-pattern-inline.h new file mode 100644 index 0000000..97e8ea0 --- /dev/null +++ b/src/cairo-pattern-inline.h @@ -0,0 +1,65 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Carl D. Worth + */ + +#ifndef CAIRO_PATTERN_INLINE_H +#define CAIRO_PATTERN_INLINE_H + +#include "cairo-pattern-private.h" + +#include "cairo-list-inline.h" + +CAIRO_BEGIN_DECLS + +static inline void +_cairo_pattern_add_observer (cairo_pattern_t *pattern, + cairo_pattern_observer_t *observer, + void (*func) (cairo_pattern_observer_t *, + cairo_pattern_t *, + unsigned int)) +{ + observer->notify = func; + cairo_list_add (&observer->link, &pattern->observers); +} + +static inline cairo_surface_t * +_cairo_pattern_get_source (const cairo_surface_pattern_t *pattern, + cairo_rectangle_int_t *extents) +{ + return _cairo_surface_get_source (pattern->surface, extents); +} + +CAIRO_END_DECLS + +#endif /* CAIRO_PATTERN_INLINE_H */ diff --git a/src/cairo-pattern-private.h b/src/cairo-pattern-private.h index 8be319e..ddbb2c8 100644 --- a/src/cairo-pattern-private.h +++ b/src/cairo-pattern-private.h @@ -39,6 +39,7 @@ #include "cairo-error-private.h" #include "cairo-types-private.h" #include "cairo-list-private.h" +#include "cairo-surface-private.h" #include /* FILE* */ @@ -167,6 +168,22 @@ typedef struct _cairo_mesh_pattern { cairo_bool_t has_color[4]; } cairo_mesh_pattern_t; +typedef struct _cairo_raster_source_pattern { + cairo_pattern_t base; + + cairo_content_t content; + cairo_rectangle_int_t extents; + + cairo_raster_source_acquire_func_t acquire; + cairo_raster_source_release_func_t release; + cairo_raster_source_snapshot_func_t snapshot; + cairo_raster_source_copy_func_t copy; + cairo_raster_source_finish_func_t finish; + + /* an explicit pre-allocated member in preference to the general user-data */ + void *user_data; +} cairo_raster_source_pattern_t; + typedef union { cairo_pattern_t base; @@ -174,9 +191,9 @@ typedef union { cairo_surface_pattern_t surface; cairo_gradient_pattern_union_t gradient; cairo_mesh_pattern_t mesh; + cairo_raster_source_pattern_t raster_source; } cairo_pattern_union_t; - /* cairo-pattern.c */ cairo_private cairo_pattern_t * @@ -186,6 +203,10 @@ cairo_private cairo_status_t _cairo_pattern_create_copy (cairo_pattern_t **pattern, const cairo_pattern_t *other); +cairo_private void +_cairo_pattern_init (cairo_pattern_t *pattern, + cairo_pattern_type_t type); + cairo_private cairo_status_t _cairo_pattern_init_copy (cairo_pattern_t *pattern, const cairo_pattern_t *other); @@ -306,17 +327,6 @@ cairo_private cairo_bool_t _cairo_pattern_equal (const cairo_pattern_t *a, const cairo_pattern_t *b); -static inline void -_cairo_pattern_add_observer (cairo_pattern_t *pattern, - cairo_pattern_observer_t *observer, - void (*func) (cairo_pattern_observer_t *, - cairo_pattern_t *, - unsigned int)) -{ - observer->notify = func; - cairo_list_add (&observer->link, &pattern->observers); -} - /* cairo-mesh-pattern-rasterizer.c */ cairo_private void @@ -328,11 +338,28 @@ _cairo_mesh_pattern_rasterize (const cairo_mesh_pattern_t *mesh, double x_offset, double y_offset); +cairo_private cairo_surface_t * +_cairo_raster_source_pattern_acquire (const cairo_pattern_t *abstract_pattern, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents); + +cairo_private void +_cairo_raster_source_pattern_release (const cairo_pattern_t *abstract_pattern, + cairo_surface_t *surface); + +cairo_private cairo_status_t +_cairo_raster_source_pattern_snapshot (cairo_pattern_t *abstract_pattern); + +cairo_private cairo_status_t +_cairo_raster_source_pattern_init_copy (cairo_pattern_t *pattern, + const cairo_pattern_t *other); + +cairo_private void +_cairo_raster_source_pattern_finish (cairo_pattern_t *abstract_pattern); + cairo_private void _cairo_debug_print_pattern (FILE *file, const cairo_pattern_t *pattern); CAIRO_END_DECLS #endif /* CAIRO_PATTERN_PRIVATE */ - - diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c index f91de26..940227d 100644 --- a/src/cairo-pattern.c +++ b/src/cairo-pattern.c @@ -34,9 +34,11 @@ #include "cairo-error-private.h" #include "cairo-freed-pool-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-path-private.h" #include "cairo-pattern-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" +#include "cairo-surface-snapshot-inline.h" #include @@ -59,7 +61,7 @@ * or implicitly through * cairo_set_source_type() * functions. - */ + **/ static freed_pool_t freed_pattern_pool[5]; @@ -187,7 +189,7 @@ _cairo_pattern_set_error (cairo_pattern_t *pattern, return _cairo_error (status); } -static void +void _cairo_pattern_init (cairo_pattern_t *pattern, cairo_pattern_type_t type) { #if HAVE_VALGRIND @@ -207,6 +209,8 @@ _cairo_pattern_init (cairo_pattern_t *pattern, cairo_pattern_type_t type) case CAIRO_PATTERN_TYPE_MESH: VALGRIND_MAKE_MEM_UNDEFINED (pattern, sizeof (cairo_mesh_pattern_t)); break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + break; } #endif @@ -219,7 +223,8 @@ _cairo_pattern_init (cairo_pattern_t *pattern, cairo_pattern_type_t type) _cairo_user_data_array_init (&pattern->user_data); - if (type == CAIRO_PATTERN_TYPE_SURFACE) + if (type == CAIRO_PATTERN_TYPE_SURFACE || + type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) pattern->extend = CAIRO_EXTEND_SURFACE_DEFAULT; else pattern->extend = CAIRO_EXTEND_GRADIENT_DEFAULT; @@ -291,6 +296,8 @@ cairo_status_t _cairo_pattern_init_copy (cairo_pattern_t *pattern, const cairo_pattern_t *other) { + cairo_status_t status; + if (other->status) return _cairo_pattern_set_error (pattern, other->status); @@ -316,7 +323,6 @@ _cairo_pattern_init_copy (cairo_pattern_t *pattern, case CAIRO_PATTERN_TYPE_RADIAL: { cairo_gradient_pattern_t *dst = (cairo_gradient_pattern_t *) pattern; cairo_gradient_pattern_t *src = (cairo_gradient_pattern_t *) other; - cairo_status_t status; if (other->type == CAIRO_PATTERN_TYPE_LINEAR) { VG (VALGRIND_MAKE_MEM_UNDEFINED (pattern, sizeof (cairo_linear_pattern_t))); @@ -332,7 +338,6 @@ _cairo_pattern_init_copy (cairo_pattern_t *pattern, case CAIRO_PATTERN_TYPE_MESH: { cairo_mesh_pattern_t *dst = (cairo_mesh_pattern_t *) pattern; cairo_mesh_pattern_t *src = (cairo_mesh_pattern_t *) other; - cairo_status_t status; VG (VALGRIND_MAKE_MEM_UNDEFINED (pattern, sizeof (cairo_mesh_pattern_t))); @@ -341,6 +346,12 @@ _cairo_pattern_init_copy (cairo_pattern_t *pattern, return status; } break; + + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: { + status = _cairo_raster_source_pattern_init_copy (pattern, other); + if (unlikely (status)) + return status; + } break; } /* The reference count and user_data array are unique to the copy. */ @@ -376,6 +387,9 @@ _cairo_pattern_init_static_copy (cairo_pattern_t *pattern, case CAIRO_PATTERN_TYPE_MESH: size = sizeof (cairo_mesh_pattern_t); break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + size = sizeof (cairo_raster_source_pattern_t); + break; } memcpy (pattern, other, size); @@ -407,11 +421,11 @@ _cairo_pattern_init_snapshot (cairo_pattern_t *pattern, cairo_surface_destroy (surface); - if (surface_pattern->surface->status) - return surface_pattern->surface->status; - } + status = surface_pattern->surface->status; + } else if (pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) + status = _cairo_raster_source_pattern_snapshot (pattern); - return CAIRO_STATUS_SUCCESS; + return status; } void @@ -442,6 +456,9 @@ _cairo_pattern_fini (cairo_pattern_t *pattern) _cairo_array_fini (&mesh->patches); } break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + _cairo_raster_source_pattern_finish (pattern); + break; } #if HAVE_VALGRIND @@ -461,6 +478,8 @@ _cairo_pattern_fini (cairo_pattern_t *pattern) case CAIRO_PATTERN_TYPE_MESH: VALGRIND_MAKE_MEM_NOACCESS (pattern, sizeof (cairo_mesh_pattern_t)); break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + break; } #endif } @@ -491,6 +510,9 @@ _cairo_pattern_create_copy (cairo_pattern_t **pattern_out, case CAIRO_PATTERN_TYPE_MESH: pattern = malloc (sizeof (cairo_mesh_pattern_t)); break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + pattern = malloc (sizeof (cairo_raster_source_pattern_t)); + break; default: ASSERT_NOT_REACHED; return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH); @@ -629,6 +651,8 @@ _cairo_pattern_create_in_error (cairo_status_t status) * This function will always return a valid pointer, but if an error * occurred the pattern status will be set to an error. To inspect * the status of a pattern use cairo_pattern_status(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_create_rgb (double red, double green, double blue) @@ -657,6 +681,8 @@ slim_hidden_def (cairo_pattern_create_rgb); * This function will always return a valid pointer, but if an error * occurred the pattern status will be set to an error. To inspect * the status of a pattern use cairo_pattern_status(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_create_rgba (double red, double green, double blue, @@ -691,6 +717,8 @@ slim_hidden_def (cairo_pattern_create_rgba); * This function will always return a valid pointer, but if an error * occurred the pattern status will be set to an error. To inspect * the status of a pattern use cairo_pattern_status(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_create_for_surface (cairo_surface_t *surface) @@ -749,6 +777,8 @@ slim_hidden_def (cairo_pattern_create_for_surface); * This function will always return a valid pointer, but if an error * occurred the pattern status will be set to an error. To inspect * the status of a pattern use cairo_pattern_status(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_create_linear (double x0, double y0, double x1, double y1) @@ -800,6 +830,8 @@ cairo_pattern_create_linear (double x0, double y0, double x1, double y1) * This function will always return a valid pointer, but if an error * occurred the pattern status will be set to an error. To inspect * the status of a pattern use cairo_pattern_status(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_create_radial (double cx0, double cy0, double radius0, @@ -858,7 +890,7 @@ static const int mesh_control_point_j[4] = { 1, 2, 2, 1 }; * Degenerate sides are permitted so straight lines may be used. A * zero length line on one side may be used to create 3 sided patches. * - * + * * C1 Side 1 C2 * +---------------+ * | | @@ -871,7 +903,7 @@ static const int mesh_control_point_j[4] = { 1, 2, 2, 1 }; * | | * +---------------+ * C0 Side 3 C3 - * + * * * Each patch is constructed by first calling * cairo_mesh_pattern_begin_patch(), then cairo_mesh_pattern_move_to() @@ -919,10 +951,10 @@ static const int mesh_control_point_j[4] = { 1, 2, 2, 1 }; * cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch(). * * - * cairo_pattern_t *mesh = cairo_mesh_pattern_create_mesh (); + * cairo_pattern_t *pattern = cairo_pattern_create_mesh (); * * /* Add a Coons patch */ - * cairo_mesh_pattern_begin_patch (mesh); + * cairo_mesh_pattern_begin_patch (pattern); * cairo_mesh_pattern_move_to (pattern, 0, 0); * cairo_mesh_pattern_curve_to (pattern, 30, -30, 60, 30, 100, 0); * cairo_mesh_pattern_curve_to (pattern, 60, 30, 130, 60, 100, 100); @@ -932,17 +964,17 @@ static const int mesh_control_point_j[4] = { 1, 2, 2, 1 }; * cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); * cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); * cairo_mesh_pattern_set_corner_color_rgb (pattern, 3, 1, 1, 0); - * cairo_mesh_pattern_end_patch (mesh); + * cairo_mesh_pattern_end_patch (pattern); * * /* Add a Gouraud-shaded triangle */ - * cairo_mesh_pattern_begin_patch (mesh) + * cairo_mesh_pattern_begin_patch (pattern) * cairo_mesh_pattern_move_to (pattern, 100, 100); * cairo_mesh_pattern_line_to (pattern, 130, 130); * cairo_mesh_pattern_line_to (pattern, 130, 70); * cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0); * cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); * cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); - * cairo_mesh_pattern_end_patch (mesh) + * cairo_mesh_pattern_end_patch (pattern) * * * When two patches overlap, the last one that has been added is drawn @@ -1017,6 +1049,8 @@ cairo_pattern_create_mesh (void) * cairo_pattern_get_reference_count(). * * Return value: the referenced #cairo_pattern_t. + * + * Since: 1.0 **/ cairo_pattern_t * cairo_pattern_reference (cairo_pattern_t *pattern) @@ -1060,6 +1094,8 @@ cairo_pattern_get_type (cairo_pattern_t *pattern) * Return value: %CAIRO_STATUS_SUCCESS, %CAIRO_STATUS_NO_MEMORY, * %CAIRO_STATUS_INVALID_MATRIX, %CAIRO_STATUS_PATTERN_TYPE_MISMATCH, * or %CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + * + * Since: 1.0 **/ cairo_status_t cairo_pattern_status (cairo_pattern_t *pattern) @@ -1074,6 +1110,8 @@ cairo_pattern_status (cairo_pattern_t *pattern) * Decreases the reference count on @pattern by one. If the result is * zero, then @pattern and all associated resources are freed. See * cairo_pattern_reference(). + * + * Since: 1.0 **/ void cairo_pattern_destroy (cairo_pattern_t *pattern) @@ -1093,7 +1131,10 @@ cairo_pattern_destroy (cairo_pattern_t *pattern) _cairo_pattern_fini (pattern); /* maintain a small cache of freed patterns */ - _freed_pool_put (&freed_pattern_pool[type], pattern); + if (type < ARRAY_LENGTH (freed_pattern_pool)) + _freed_pool_put (&freed_pattern_pool[type], pattern); + else + free (pattern); } slim_hidden_def (cairo_pattern_destroy); @@ -1521,7 +1562,7 @@ slim_hidden_def (cairo_mesh_pattern_line_to); * Note: If @pattern is not a mesh pattern then @pattern will be put * into an error status with a status of * %CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If @pattern has no current - * patch or the current patch already has at leas one side, @pattern + * patch or the current patch already has at least one side, @pattern * will be put into an error status with a status of * %CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. * @@ -1850,6 +1891,8 @@ _cairo_pattern_add_color_stop (cairo_gradient_pattern_t *pattern, * Note: If the pattern is not a gradient pattern, (eg. a linear or * radial pattern), then the pattern will be put into an error status * with a status of %CAIRO_STATUS_PATTERN_TYPE_MISMATCH. + * + * Since: 1.0 **/ void cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, @@ -1887,7 +1930,9 @@ cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, * Note: If the pattern is not a gradient pattern, (eg. a linear or * radial pattern), then the pattern will be put into an error status * with a status of %CAIRO_STATUS_PATTERN_TYPE_MISMATCH. - */ + * + * Since: 1.0 + **/ void cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, double offset, @@ -1948,6 +1993,8 @@ slim_hidden_def (cairo_pattern_add_color_stop_rgba); * * Also, please note the discussion of the user-space locking * semantics of cairo_set_source(). + * + * Since: 1.0 **/ void cairo_pattern_set_matrix (cairo_pattern_t *pattern, @@ -1978,6 +2025,8 @@ slim_hidden_def (cairo_pattern_set_matrix); * @matrix: return value for the matrix * * Stores the pattern's transformation matrix into @matrix. + * + * Since: 1.0 **/ void cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix) @@ -2004,6 +2053,8 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix) * cairo_set_source_surface (cr, image, x, y); * cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); * + * + * Since: 1.0 **/ void cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter) @@ -2023,6 +2074,8 @@ cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter) * for details on each filter. * * Return value: the current filter used for resizing the pattern. + * + * Since: 1.0 **/ cairo_filter_t cairo_pattern_get_filter (cairo_pattern_t *pattern) @@ -2042,6 +2095,8 @@ cairo_pattern_get_filter (cairo_pattern_t *pattern) * * The default extend mode is %CAIRO_EXTEND_NONE for surface patterns * and %CAIRO_EXTEND_PAD for gradient patterns. + * + * Since: 1.0 **/ void cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend) @@ -2062,6 +2117,8 @@ cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend) * * Return value: the current extend strategy used for drawing the * pattern. + * + * Since: 1.0 **/ cairo_extend_t cairo_pattern_get_extend (cairo_pattern_t *pattern) @@ -2183,8 +2240,8 @@ _extend_range (double range[2], double value, cairo_bool_t valid) return TRUE; } -/** - * _cairo_radial_pattern_focus_is_inside +/* + * _cairo_radial_pattern_focus_is_inside: * * Returns %TRUE if and only if the focus point exists and is * contained in one of the two extreme circles. This condition is @@ -2196,7 +2253,7 @@ _extend_range (double range[2], double value, cairo_bool_t valid) * considered as contained in the circle, hence this function returns * %FALSE. * - **/ + */ cairo_bool_t _cairo_radial_pattern_focus_is_inside (const cairo_radial_pattern_t *radial) { @@ -2559,7 +2616,7 @@ _cairo_radial_pattern_box_to_parameter (const cairo_radial_pattern_t *radial, } /** - * _cairo_gradient_pattern_box_to_parameter + * _cairo_gradient_pattern_box_to_parameter: * * Compute a interpolation range sufficient to draw (within the given * tolerance) the gradient in the given box getting the same result as @@ -2591,7 +2648,7 @@ _cairo_gradient_pattern_box_to_parameter (const cairo_gradient_pattern_t *gradie } /** - * _cairo_gradient_pattern_interpolate + * _cairo_gradient_pattern_interpolate: * * Interpolate between the start and end objects of linear or radial * gradients. The interpolated object is stored in out_circle, with @@ -2624,7 +2681,7 @@ _cairo_gradient_pattern_interpolate (const cairo_gradient_pattern_t *gradient, /** - * _cairo_gradient_pattern_fit_to_range + * _cairo_gradient_pattern_fit_to_range: * * Scale the extremes of a gradient to guarantee that the coordinates * and their deltas are within the range (-max_value, max_value). The @@ -2863,7 +2920,7 @@ _gradient_color_average (const cairo_gradient_pattern_t *gradient, } /** - * _cairo_pattern_alpha_range + * _cairo_pattern_alpha_range: * * Convenience function to determine the minimum and maximum alpha in * the drawn part of a pattern (i.e. ignoring clear parts caused by @@ -2929,6 +2986,7 @@ _cairo_pattern_alpha_range (const cairo_pattern_t *pattern, /* fall through */ case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: alpha_min = 0; alpha_max = 1; break; @@ -2941,7 +2999,7 @@ _cairo_pattern_alpha_range (const cairo_pattern_t *pattern, } /** - * _cairo_mesh_pattern_coord_box + * _cairo_mesh_pattern_coord_box: * * Convenience function to determine the range of the coordinates of * the points used to define the patches of the mesh. @@ -2998,7 +3056,7 @@ _cairo_mesh_pattern_coord_box (const cairo_mesh_pattern_t *mesh, } /** - * _cairo_gradient_pattern_is_solid + * _cairo_gradient_pattern_is_solid: * * Convenience function to determine whether a gradient pattern is * a solid color within the given extents. In this case the color @@ -3081,7 +3139,7 @@ _mesh_is_clear (const cairo_mesh_pattern_t *mesh) } /** - * _cairo_pattern_is_opaque_solid + * _cairo_pattern_is_opaque_solid: * * Convenience function to determine whether a pattern is an opaque * (alpha==1.0) solid color pattern. This is done by testing whether @@ -3108,28 +3166,37 @@ static cairo_bool_t _surface_is_opaque (const cairo_surface_pattern_t *pattern, const cairo_rectangle_int_t *sample) { + cairo_rectangle_int_t extents; + if (pattern->surface->content & CAIRO_CONTENT_ALPHA) return FALSE; if (pattern->base.extend != CAIRO_EXTEND_NONE) return TRUE; - if (sample != NULL) { - cairo_rectangle_int_t extents; + if (! _cairo_surface_get_extents (pattern->surface, &extents)) + return TRUE; - if (! _cairo_surface_get_extents (pattern->surface, &extents)) - return TRUE; + if (sample == NULL) + return FALSE; - if (sample->x >= extents.x && - sample->y >= extents.y && - sample->x + sample->width <= extents.x + extents.width && - sample->y + sample->height <= extents.y + extents.height) - { - return TRUE; - } - } + return _cairo_rectangle_contains_rectangle (&extents, sample); +} - return FALSE; +static cairo_bool_t +_raster_source_is_opaque (const cairo_raster_source_pattern_t *pattern, + const cairo_rectangle_int_t *sample) +{ + if (pattern->content & CAIRO_CONTENT_ALPHA) + return FALSE; + + if (pattern->base.extend != CAIRO_EXTEND_NONE) + return TRUE; + + if (sample == NULL) + return FALSE; + + return _cairo_rectangle_contains_rectangle (&pattern->extents, sample); } static cairo_bool_t @@ -3146,6 +3213,12 @@ _surface_is_clear (const cairo_surface_pattern_t *pattern) } static cairo_bool_t +_raster_source_is_clear (const cairo_raster_source_pattern_t *pattern) +{ + return pattern->extents.width == 0 || pattern->extents.height == 0; +} + +static cairo_bool_t _gradient_is_opaque (const cairo_gradient_pattern_t *gradient, const cairo_rectangle_int_t *sample) { @@ -3192,7 +3265,7 @@ _gradient_is_opaque (const cairo_gradient_pattern_t *gradient, } /** - * _cairo_pattern_is_opaque + * _cairo_pattern_is_opaque: * * Convenience function to determine whether a pattern is an opaque * pattern (of any type). The same caveats that apply to @@ -3215,6 +3288,8 @@ _cairo_pattern_is_opaque (const cairo_pattern_t *abstract_pattern, return _cairo_pattern_is_opaque_solid (abstract_pattern); case CAIRO_PATTERN_TYPE_SURFACE: return _surface_is_opaque (&pattern->surface, sample); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _raster_source_is_opaque (&pattern->raster_source, sample); case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: return _gradient_is_opaque (&pattern->gradient.base, sample); @@ -3240,6 +3315,8 @@ _cairo_pattern_is_clear (const cairo_pattern_t *abstract_pattern) return CAIRO_COLOR_IS_CLEAR (&pattern->solid.color); case CAIRO_PATTERN_TYPE_SURFACE: return _surface_is_clear (&pattern->surface); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _raster_source_is_clear (&pattern->raster_source); case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: return _gradient_is_clear (&pattern->gradient.base, NULL); @@ -3264,7 +3341,7 @@ _cairo_pattern_is_clear (const cairo_pattern_t *abstract_pattern) * XXX: We don't actually have any way of querying the backend for * the filter radius, so we just guess base on what we know that * backends do currently (see bug #10508) - */ + **/ cairo_filter_t _cairo_pattern_analyze_filter (const cairo_pattern_t *pattern, double *pad_out) @@ -3409,6 +3486,29 @@ _cairo_pattern_get_extents (const cairo_pattern_t *pattern, } break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + { + const cairo_raster_source_pattern_t *raster = + (const cairo_raster_source_pattern_t *) pattern; + double pad; + + if (raster->extents.width == 0 || raster->extents.height == 0) + goto EMPTY; + + if (pattern->extend != CAIRO_EXTEND_NONE) + goto UNBOUNDED; + + /* The filter can effectively enlarge the extents of the + * pattern, so extend as necessary. + */ + _cairo_pattern_analyze_filter (pattern, &pad); + x1 = raster->extents.x - pad; + y1 = raster->extents.y - pad; + x2 = raster->extents.x + (int) raster->extents.width + pad; + y2 = raster->extents.y + (int) raster->extents.height + pad; + } + break; + case CAIRO_PATTERN_TYPE_RADIAL: { const cairo_radial_pattern_t *radial = @@ -3568,6 +3668,7 @@ _cairo_pattern_get_ink_extents (const cairo_pattern_t *pattern, (const cairo_surface_pattern_t *) pattern; cairo_surface_t *surface = surface_pattern->surface; + surface = _cairo_surface_get_source (surface, NULL); if (_cairo_surface_is_recording (surface)) { cairo_matrix_t imatrix; cairo_box_t box; @@ -3666,6 +3767,15 @@ _cairo_surface_pattern_hash (unsigned long hash, return hash; } +static unsigned long +_cairo_raster_source_pattern_hash (unsigned long hash, + const cairo_raster_source_pattern_t *raster) +{ + hash ^= (uintptr_t)raster->user_data; + + return hash; +} + unsigned long _cairo_pattern_hash (const cairo_pattern_t *pattern) { @@ -3698,6 +3808,8 @@ _cairo_pattern_hash (const cairo_pattern_t *pattern) return _cairo_mesh_pattern_hash (hash, (cairo_mesh_pattern_t *) pattern); case CAIRO_PATTERN_TYPE_SURFACE: return _cairo_surface_pattern_hash (hash, (cairo_surface_pattern_t *) pattern); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _cairo_raster_source_pattern_hash (hash, (cairo_raster_source_pattern_t *) pattern); default: ASSERT_NOT_REACHED; return FALSE; @@ -3804,6 +3916,13 @@ _cairo_surface_pattern_equal (const cairo_surface_pattern_t *a, return a->surface->unique_id == b->surface->unique_id; } +static cairo_bool_t +_cairo_raster_source_pattern_equal (const cairo_raster_source_pattern_t *a, + const cairo_raster_source_pattern_t *b) +{ + return a->user_data == b->user_data; +} + cairo_bool_t _cairo_pattern_equal (const cairo_pattern_t *a, const cairo_pattern_t *b) { @@ -3846,6 +3965,9 @@ _cairo_pattern_equal (const cairo_pattern_t *a, const cairo_pattern_t *b) case CAIRO_PATTERN_TYPE_SURFACE: return _cairo_surface_pattern_equal ((cairo_surface_pattern_t *) a, (cairo_surface_pattern_t *) b); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _cairo_raster_source_pattern_equal ((cairo_raster_source_pattern_t *) a, + (cairo_raster_source_pattern_t *) b); default: ASSERT_NOT_REACHED; return FALSE; @@ -3853,7 +3975,7 @@ _cairo_pattern_equal (const cairo_pattern_t *a, const cairo_pattern_t *b) } /** - * cairo_pattern_get_rgba + * cairo_pattern_get_rgba: * @pattern: a #cairo_pattern_t * @red: return value for red component of color, or %NULL * @green: return value for green component of color, or %NULL @@ -3897,7 +4019,7 @@ cairo_pattern_get_rgba (cairo_pattern_t *pattern, } /** - * cairo_pattern_get_surface + * cairo_pattern_get_surface: * @pattern: a #cairo_pattern_t * @surface: return value for surface of pattern, or %NULL * @@ -3930,7 +4052,7 @@ cairo_pattern_get_surface (cairo_pattern_t *pattern, } /** - * cairo_pattern_get_color_stop_rgba + * cairo_pattern_get_color_stop_rgba: * @pattern: a #cairo_pattern_t * @index: index of the stop to return data for * @offset: return value for the offset of the stop, or %NULL @@ -3983,7 +4105,7 @@ cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, } /** - * cairo_pattern_get_color_stop_count + * cairo_pattern_get_color_stop_count: * @pattern: a #cairo_pattern_t * @count: return value for the number of color stops, or %NULL * @@ -3995,7 +4117,7 @@ cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, * pattern. * * Since: 1.4 - */ + **/ cairo_status_t cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, int *count) @@ -4016,7 +4138,7 @@ cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, } /** - * cairo_pattern_get_linear_points + * cairo_pattern_get_linear_points: * @pattern: a #cairo_pattern_t * @x0: return value for the x coordinate of the first point, or %NULL * @y0: return value for the y coordinate of the first point, or %NULL @@ -4057,7 +4179,7 @@ cairo_pattern_get_linear_points (cairo_pattern_t *pattern, } /** - * cairo_pattern_get_radial_circles + * cairo_pattern_get_radial_circles: * @pattern: a #cairo_pattern_t * @x0: return value for the x coordinate of the center of the first circle, or %NULL * @y0: return value for the y coordinate of the center of the first circle, or %NULL @@ -4105,7 +4227,7 @@ cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, } /** - * cairo_mesh_pattern_get_patch_count + * cairo_mesh_pattern_get_patch_count: * @pattern: a #cairo_pattern_t * @count: return value for the number patches, or %NULL * @@ -4120,7 +4242,7 @@ cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, * pattern. * * Since: 1.12 - */ + **/ cairo_status_t cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, unsigned int *count) @@ -4144,7 +4266,7 @@ cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, slim_hidden_def (cairo_mesh_pattern_get_patch_count); /** - * cairo_mesh_pattern_get_path + * cairo_mesh_pattern_get_path: * @pattern: a #cairo_pattern_t * @patch_num: the patch number to return data for * @@ -4160,7 +4282,7 @@ slim_hidden_def (cairo_mesh_pattern_get_patch_count); * status %CAIRO_STATUS_PATTERN_TYPE_MISMATCH is returned. * * Since: 1.12 - */ + **/ cairo_path_t * cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, unsigned int patch_num) @@ -4232,7 +4354,7 @@ cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, slim_hidden_def (cairo_mesh_pattern_get_path); /** - * cairo_mesh_pattern_get_corner_color_rgba + * cairo_mesh_pattern_get_corner_color_rgba: * @pattern: a #cairo_pattern_t * @patch_num: the patch number to return data for * @corner_num: the corner number to return data for @@ -4300,7 +4422,7 @@ cairo_mesh_pattern_get_corner_color_rgba (cairo_pattern_t *pattern, slim_hidden_def (cairo_mesh_pattern_get_corner_color_rgba); /** - * cairo_mesh_pattern_get_control_point + * cairo_mesh_pattern_get_control_point: * @pattern: a #cairo_pattern_t * @patch_num: the patch number to return data for * @point_num: the control point number to return data for @@ -4381,6 +4503,13 @@ _cairo_debug_print_surface_pattern (FILE *file, } static void +_cairo_debug_print_raster_source_pattern (FILE *file, + const cairo_raster_source_pattern_t *raster) +{ + printf (" content: %x, size %dx%d\n", raster->content, raster->extents.width, raster->extents.height); +} + +static void _cairo_debug_print_linear_pattern (FILE *file, const cairo_linear_pattern_t *pattern) { @@ -4408,6 +4537,7 @@ _cairo_debug_print_pattern (FILE *file, const cairo_pattern_t *pattern) case CAIRO_PATTERN_TYPE_LINEAR: s = "linear"; break; case CAIRO_PATTERN_TYPE_RADIAL: s = "radial"; break; case CAIRO_PATTERN_TYPE_MESH: s = "mesh"; break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: s = "raster"; break; default: s = "invalid"; ASSERT_NOT_REACHED; break; } @@ -4442,6 +4572,9 @@ _cairo_debug_print_pattern (FILE *file, const cairo_pattern_t *pattern) default: case CAIRO_PATTERN_TYPE_SOLID: break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + _cairo_debug_print_raster_source_pattern (file, (cairo_raster_source_pattern_t *)pattern); + break; case CAIRO_PATTERN_TYPE_SURFACE: _cairo_debug_print_surface_pattern (file, (cairo_surface_pattern_t *)pattern); break; diff --git a/src/cairo-pdf-surface-private.h b/src/cairo-pdf-surface-private.h index 08620e6..a58fbbf 100644 --- a/src/cairo-pdf-surface-private.h +++ b/src/cairo-pdf-surface-private.h @@ -60,6 +60,7 @@ typedef struct _cairo_pdf_group_resources { cairo_array_t alphas; cairo_array_t smasks; cairo_array_t patterns; + cairo_array_t shadings; cairo_array_t xobjects; cairo_array_t fonts; } cairo_pdf_group_resources_t; @@ -74,11 +75,15 @@ typedef struct _cairo_pdf_source_surface_entry { cairo_pdf_resource_t surface_res; int width; int height; + double x_offset; + double y_offset; cairo_rectangle_int_t extents; } cairo_pdf_source_surface_entry_t; typedef struct _cairo_pdf_source_surface { + cairo_pattern_type_t type; cairo_surface_t *surface; + cairo_pattern_t *raster_pattern; cairo_pdf_source_surface_entry_t *hash_entry; } cairo_pdf_source_surface_t; @@ -89,6 +94,7 @@ typedef struct _cairo_pdf_pattern { cairo_pattern_t *pattern; cairo_pdf_resource_t pattern_res; cairo_pdf_resource_t gstate_res; + cairo_bool_t is_shading; } cairo_pdf_pattern_t; typedef enum _cairo_pdf_operation { diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 988a215..a017601 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -59,7 +59,7 @@ #include "cairo-paginated-private.h" #include "cairo-scaled-font-subsets-private.h" #include "cairo-surface-clipper-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-subsurface-private.h" #include "cairo-type3-glyph-surface-private.h" @@ -130,7 +130,7 @@ * * The PDF surface is used to render cairo graphics to Adobe * PDF files and is a multi-page vector surface backend. - */ + **/ static cairo_bool_t _cairo_pdf_surface_get_extents (void *abstract_surface, @@ -141,7 +141,9 @@ _cairo_pdf_surface_get_extents (void *abstract_surface, * * Defined if the PDF surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.2 + **/ static const cairo_pdf_version_t _cairo_pdf_versions[] = { @@ -157,6 +159,14 @@ static const char * _cairo_pdf_version_strings[CAIRO_PDF_VERSION_LAST] = "PDF 1.5" }; +static const char *_cairo_pdf_supported_mime_types[] = +{ + CAIRO_MIME_TYPE_JPEG, + CAIRO_MIME_TYPE_JP2, + CAIRO_MIME_TYPE_UNIQUE_ID, + NULL +}; + typedef struct _cairo_pdf_object { long offset; } cairo_pdf_object_t; @@ -453,7 +463,7 @@ BAIL0: * occurs. You can use cairo_surface_status() to check for this. * * Since: 1.2 - */ + **/ cairo_surface_t * cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func, void *closure, @@ -715,6 +725,7 @@ _cairo_pdf_group_resources_init (cairo_pdf_group_resources_t *res) _cairo_array_init (&res->alphas, sizeof (double)); _cairo_array_init (&res->smasks, sizeof (cairo_pdf_resource_t)); _cairo_array_init (&res->patterns, sizeof (cairo_pdf_resource_t)); + _cairo_array_init (&res->shadings, sizeof (cairo_pdf_resource_t)); _cairo_array_init (&res->xobjects, sizeof (cairo_pdf_resource_t)); _cairo_array_init (&res->fonts, sizeof (cairo_pdf_font_t)); } @@ -725,6 +736,7 @@ _cairo_pdf_group_resources_fini (cairo_pdf_group_resources_t *res) _cairo_array_fini (&res->alphas); _cairo_array_fini (&res->smasks); _cairo_array_fini (&res->patterns); + _cairo_array_fini (&res->shadings); _cairo_array_fini (&res->xobjects); _cairo_array_fini (&res->fonts); } @@ -740,6 +752,7 @@ _cairo_pdf_group_resources_clear (cairo_pdf_group_resources_t *res) _cairo_array_truncate (&res->alphas, 0); _cairo_array_truncate (&res->smasks, 0); _cairo_array_truncate (&res->patterns, 0); + _cairo_array_truncate (&res->shadings, 0); _cairo_array_truncate (&res->xobjects, 0); _cairo_array_truncate (&res->fonts, 0); } @@ -796,6 +809,14 @@ _cairo_pdf_surface_add_pattern (cairo_pdf_surface_t *surface, } static cairo_status_t +_cairo_pdf_surface_add_shading (cairo_pdf_surface_t *surface, + cairo_pdf_resource_t shading) +{ + return _cairo_array_append (&(surface->resources.shadings), &shading); +} + + +static cairo_status_t _cairo_pdf_surface_add_xobject (cairo_pdf_surface_t *surface, cairo_pdf_resource_t xobject) { @@ -908,7 +929,7 @@ _cairo_pdf_surface_emit_group_resources (cairo_pdf_surface_t *surface, { int num_alphas, num_smasks, num_resources, i; double alpha; - cairo_pdf_resource_t *smask, *pattern, *xobject; + cairo_pdf_resource_t *smask, *pattern, *shading, *xobject; cairo_pdf_font_t *font; _cairo_output_stream_printf (surface->output, "<<\n"); @@ -960,6 +981,21 @@ _cairo_pdf_surface_emit_group_resources (cairo_pdf_surface_t *surface, " >>\n"); } + num_resources = _cairo_array_num_elements (&res->shadings); + if (num_resources > 0) { + _cairo_output_stream_printf (surface->output, + " /Shading <<"); + for (i = 0; i < num_resources; i++) { + shading = _cairo_array_index (&res->shadings, i); + _cairo_output_stream_printf (surface->output, + " /sh%d %d 0 R", + shading->id, shading->id); + } + + _cairo_output_stream_printf (surface->output, + " >>\n"); + } + num_resources = _cairo_array_num_elements (&res->xobjects); if (num_resources > 0) { _cairo_output_stream_printf (surface->output, @@ -1078,6 +1114,67 @@ _cairo_pdf_source_surface_init_key (cairo_pdf_source_surface_entry_t *key) } static cairo_int_status_t +_cairo_pdf_surface_acquire_source_image_from_pattern (cairo_pdf_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents, + cairo_image_surface_t **image, + void **image_extra) +{ + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SURFACE: { + cairo_surface_pattern_t *surf_pat = (cairo_surface_pattern_t *) pattern; + return _cairo_surface_acquire_source_image (surf_pat->surface, image, image_extra); + } break; + + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: { + cairo_surface_t *surf; + surf = _cairo_raster_source_pattern_acquire (pattern, &surface->base, extents); + if (!surf) + return CAIRO_INT_STATUS_UNSUPPORTED; + assert (cairo_surface_get_type (surf) == CAIRO_SURFACE_TYPE_IMAGE); + *image = (cairo_image_surface_t *) surf; + } break; + + case CAIRO_PATTERN_TYPE_SOLID: + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + default: + ASSERT_NOT_REACHED; + break; + } + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_pdf_surface_release_source_image_from_pattern (cairo_pdf_surface_t *surface, + const cairo_pattern_t *pattern, + cairo_image_surface_t *image, + void *image_extra) +{ + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SURFACE: { + cairo_surface_pattern_t *surf_pat = (cairo_surface_pattern_t *) pattern; + _cairo_surface_release_source_image (surf_pat->surface, image, image_extra); + } break; + + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + _cairo_raster_source_pattern_release (pattern, &image->base); + break; + + case CAIRO_PATTERN_TYPE_SOLID: + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + default: + + ASSERT_NOT_REACHED; + break; + } +} + +static cairo_int_status_t _get_jpx_image_info (cairo_surface_t *source, cairo_image_info_t *info, const unsigned char **mime_data, @@ -1124,23 +1221,28 @@ _get_source_surface_size (cairo_surface_t *source, *width = extents->width; *height = extents->height; } else { + cairo_surface_t *free_me = NULL; cairo_rectangle_int_t surf_extents; cairo_box_t box; cairo_bool_t bounded; if (_cairo_surface_is_snapshot (source)) - source = _cairo_surface_snapshot_get_target (source); + free_me = source = _cairo_surface_snapshot_get_target (source); status = _cairo_recording_surface_get_ink_bbox ((cairo_recording_surface_t *)source, &box, NULL); - if (unlikely (status)) + if (unlikely (status)) { + cairo_surface_destroy (free_me); return status; - - _cairo_box_round_to_rectangle (&box, extents); + } bounded = _cairo_surface_get_extents (source, &surf_extents); + cairo_surface_destroy (free_me); + *width = surf_extents.width; *height = surf_extents.height; + + _cairo_box_round_to_rectangle (&box, extents); } return CAIRO_STATUS_SUCCESS; @@ -1176,23 +1278,56 @@ _get_source_surface_size (cairo_surface_t *source, return CAIRO_STATUS_SUCCESS; } +/** + * _cairo_pdf_surface_add_source_surface: + * @surface: the pdf surface + * @source_surface: A #cairo_surface_t to use as the source surface + * @source_pattern: A #cairo_pattern_t of type SURFACE or RASTER_SOURCE to use as the source + * @filter: filter type of the source pattern + * @stencil_mask: if true, the surface will be written to the PDF as an /ImageMask + * @extents: extents of the operation that is using this source + * @surface_res: return PDF resource number of the surface + * @width: returns width of surface + * @height: returns height of surface + * @x_offset: x offset of surface + * @t_offset: y offset of surface + * @source_extents: returns extents of source (either ink extents or extents needed to cover @extents) + * + * Add surface or raster_source pattern to list of surfaces to be + * written to the PDF file when the current page is finished. Returns + * a PDF resource to reference the image. A hash table of all images + * in the PDF files (keyed by CAIRO_MIME_TYPE_UNIQUE_ID or surface + * unique_id) to ensure surfaces with the same id are only written + * once to the PDF file. + * + * Only one of @source_pattern or @source_surface is to be + * specified. Set the other to NULL. + **/ static cairo_status_t -_cairo_pdf_surface_add_source_surface (cairo_pdf_surface_t *surface, - cairo_surface_t *source, - cairo_filter_t filter, - cairo_bool_t stencil_mask, - cairo_pdf_resource_t *surface_res, - int *width, - int *height, - cairo_rectangle_int_t *extents) +_cairo_pdf_surface_add_source_surface (cairo_pdf_surface_t *surface, + cairo_surface_t *source_surface, + const cairo_pattern_t *source_pattern, + cairo_filter_t filter, + cairo_bool_t stencil_mask, + const cairo_rectangle_int_t *extents, + cairo_pdf_resource_t *surface_res, + int *width, + int *height, + double *x_offset, + double *y_offset, + cairo_rectangle_int_t *source_extents) { cairo_pdf_source_surface_t src_surface; cairo_pdf_source_surface_entry_t surface_key; cairo_pdf_source_surface_entry_t *surface_entry; cairo_status_t status; cairo_bool_t interpolate; - const unsigned char *unique_id; - unsigned long unique_id_length; + unsigned char *unique_id; + unsigned long unique_id_length = 0; + cairo_box_t box; + cairo_rectangle_int_t rect; + cairo_image_surface_t *image; + void *image_extra; switch (filter) { default: @@ -1208,9 +1343,30 @@ _cairo_pdf_surface_add_source_surface (cairo_pdf_surface_t *surface, break; } - surface_key.id = source->unique_id; + *x_offset = 0; + *y_offset = 0; + if (source_pattern) { + if (source_pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) { + /* get the operation extents in pattern space */ + _cairo_box_from_rectangle (&box, extents); + _cairo_matrix_transform_bounding_box_fixed (&source_pattern->matrix, &box, NULL); + _cairo_box_round_to_rectangle (&box, &rect); + status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, source_pattern, + &rect, &image, + &image_extra); + if (unlikely (status)) + return status; + source_surface = &image->base; + cairo_surface_get_device_offset (source_surface, x_offset, y_offset); + } else { + cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) source_pattern; + source_surface = surface_pattern->surface; + } + } + + surface_key.id = source_surface->unique_id; surface_key.interpolate = interpolate; - cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_UNIQUE_ID, + cairo_surface_get_mime_data (source_surface, CAIRO_MIME_TYPE_UNIQUE_ID, (const unsigned char **) &surface_key.unique_id, &surface_key.unique_id_length); _cairo_pdf_source_surface_init_key (&surface_key); @@ -1219,78 +1375,117 @@ _cairo_pdf_surface_add_source_surface (cairo_pdf_surface_t *surface, *surface_res = surface_entry->surface_res; *width = surface_entry->width; *height = surface_entry->height; - *extents = surface_entry->extents; + *source_extents = surface_entry->extents; + status = CAIRO_STATUS_SUCCESS; + } else { + status = _get_source_surface_size (source_surface, + width, + height, + source_extents); + if (unlikely(status)) + goto release_source; + + if (surface_key.unique_id && surface_key.unique_id_length > 0) { + unique_id = _cairo_malloc (surface_key.unique_id_length); + if (unique_id == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto release_source; + } - return CAIRO_STATUS_SUCCESS; + unique_id_length = surface_key.unique_id_length; + memcpy (unique_id, surface_key.unique_id, unique_id_length); + } else { + unique_id = NULL; + unique_id_length = 0; + } } +release_source: + if (source_pattern && source_pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) + _cairo_pdf_surface_release_source_image_from_pattern (surface, source_pattern, image, image_extra); + + if (status || surface_entry) + return status; + surface_entry = malloc (sizeof (cairo_pdf_source_surface_entry_t)); - if (surface_entry == NULL) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + if (surface_entry == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto fail1; + } surface_entry->id = surface_key.id; surface_entry->interpolate = interpolate; surface_entry->stencil_mask = stencil_mask; - cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_UNIQUE_ID, - &unique_id, &unique_id_length); - if (unique_id && unique_id_length > 0) { - surface_entry->unique_id = malloc (unique_id_length); - if (surface_entry->unique_id == NULL) { - cairo_surface_destroy (source); - free (surface_entry); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } + surface_entry->unique_id_length = unique_id_length; + surface_entry->unique_id = unique_id; + surface_entry->width = *width; + surface_entry->height = *height; + surface_entry->x_offset = *x_offset; + surface_entry->y_offset = *y_offset; + surface_entry->extents = *source_extents; + _cairo_pdf_source_surface_init_key (surface_entry); + + src_surface.hash_entry = surface_entry; + if (source_pattern && source_pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) { + src_surface.type = CAIRO_PATTERN_TYPE_RASTER_SOURCE; + src_surface.surface = NULL; + status = _cairo_pattern_create_copy (&src_surface.raster_pattern, source_pattern); + if (unlikely (status)) + goto fail2; - surface_entry->unique_id_length = unique_id_length; - memcpy (surface_entry->unique_id, unique_id, unique_id_length); } else { - surface_entry->unique_id = NULL; - surface_entry->unique_id_length = 0; + src_surface.type = CAIRO_PATTERN_TYPE_SURFACE; + src_surface.surface = cairo_surface_reference (source_surface); + src_surface.raster_pattern = NULL; } - _cairo_pdf_source_surface_init_key (surface_entry); - src_surface.hash_entry = surface_entry; - src_surface.surface = cairo_surface_reference (source); surface_entry->surface_res = _cairo_pdf_surface_new_object (surface); if (surface_entry->surface_res.id == 0) { - cairo_surface_destroy (source); - free (surface_entry); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto fail3; } - status = _get_source_surface_size (source, - &surface_entry->width, - &surface_entry->height, - &surface_entry->extents); - status = _cairo_array_append (&surface->page_surfaces, &src_surface); - if (unlikely (status)) { - cairo_surface_destroy (source); - free (surface_entry); - return status; - } + if (unlikely (status)) + goto fail3; status = _cairo_hash_table_insert (surface->all_surfaces, &surface_entry->base); + if (unlikely(status)) + goto fail3; *surface_res = surface_entry->surface_res; - *width = surface_entry->width; - *height = surface_entry->height; - *extents = surface_entry->extents; + + return status; + +fail3: + if (source_pattern && source_pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) + cairo_pattern_destroy (src_surface.raster_pattern); + else + cairo_surface_destroy (src_surface.surface); + +fail2: + free (surface_entry); + +fail1: + free (unique_id); return status; } static cairo_status_t -_cairo_pdf_surface_add_pdf_pattern (cairo_pdf_surface_t *surface, - const cairo_pattern_t *pattern, - const cairo_rectangle_int_t *extents, - cairo_pdf_resource_t *pattern_res, - cairo_pdf_resource_t *gstate_res) +_cairo_pdf_surface_add_pdf_pattern_or_shading (cairo_pdf_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents, + cairo_bool_t is_shading, + cairo_pdf_resource_t *pattern_res, + cairo_pdf_resource_t *gstate_res) { cairo_pdf_pattern_t pdf_pattern; cairo_status_t status; + pdf_pattern.is_shading = is_shading; + /* Solid colors are emitted into the content stream */ if (pattern->type == CAIRO_PATTERN_TYPE_SOLID) { pattern_res->id = 0; @@ -1363,6 +1558,36 @@ _get_bbox_from_extents (double surface_height, } static cairo_status_t +_cairo_pdf_surface_add_pdf_shading (cairo_pdf_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents, + cairo_pdf_resource_t *shading_res, + cairo_pdf_resource_t *gstate_res) +{ + return _cairo_pdf_surface_add_pdf_pattern_or_shading (surface, + pattern, + extents, + TRUE, + shading_res, + gstate_res); +} + +static cairo_status_t +_cairo_pdf_surface_add_pdf_pattern (cairo_pdf_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents, + cairo_pdf_resource_t *pattern_res, + cairo_pdf_resource_t *gstate_res) +{ + return _cairo_pdf_surface_add_pdf_pattern_or_shading (surface, + pattern, + extents, + FALSE, + pattern_res, + gstate_res); +} + +static cairo_status_t _cairo_pdf_surface_open_stream (cairo_pdf_surface_t *surface, cairo_pdf_resource_t *resource, cairo_bool_t compressed, @@ -1506,6 +1731,7 @@ _cairo_pdf_surface_write_memory_stream (cairo_pdf_surface_t *surface, " /Group <<\n" " /Type /Group\n" " /S /Transparency\n" + " /I true\n" " /CS /DeviceRGB\n", bbox->p1.x, bbox->p1.y, bbox->p2.x, bbox->p2.y); @@ -1654,6 +1880,7 @@ _cairo_pdf_surface_open_content_stream (cairo_pdf_surface_t *surface, " /Group <<\n" " /Type /Group\n" " /S /Transparency\n" + " /I true\n" " /CS /DeviceRGB\n" " >>\n" " /Resources %d 0 R\n", @@ -1875,6 +2102,91 @@ _cairo_pdf_surface_supports_fine_grained_fallbacks (void *abstract_surface) return TRUE; } +static cairo_status_t +_cairo_pdf_surface_add_padded_image_surface (cairo_pdf_surface_t *surface, + const cairo_pattern_t *source, + const cairo_rectangle_int_t *extents, + cairo_pdf_resource_t *surface_res, + int *width, + int *height, + double *x_offset, + double *y_offset) +{ + cairo_image_surface_t *image; + cairo_surface_t *pad_image; + void *image_extra; + cairo_int_status_t status; + int w, h; + cairo_rectangle_int_t extents2; + cairo_box_t box; + cairo_rectangle_int_t rect; + cairo_surface_pattern_t pad_pattern; + + status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, source, extents, + &image, &image_extra); + if (unlikely (status)) + return status; + + pad_image = &image->base; + + /* get the operation extents in pattern space */ + _cairo_box_from_rectangle (&box, extents); + _cairo_matrix_transform_bounding_box_fixed (&source->matrix, &box, NULL); + _cairo_box_round_to_rectangle (&box, &rect); + + /* Check if image needs padding to fill extents */ + w = image->width; + h = image->height; + if (_cairo_fixed_integer_ceil(box.p1.x) < 0 || + _cairo_fixed_integer_ceil(box.p1.y) < 0 || + _cairo_fixed_integer_floor(box.p2.y) > w || + _cairo_fixed_integer_floor(box.p2.y) > h) + { + pad_image = _cairo_image_surface_create_with_content (cairo_surface_get_content (&image->base), + rect.width, + rect.height); + if (pad_image->status) { + status = pad_image->status; + goto BAIL; + } + + _cairo_pattern_init_for_surface (&pad_pattern, &image->base); + cairo_matrix_init_translate (&pad_pattern.base.matrix, rect.x, rect.y); + pad_pattern.base.extend = CAIRO_EXTEND_PAD; + status = _cairo_surface_paint (pad_image, + CAIRO_OPERATOR_SOURCE, &pad_pattern.base, + NULL); + _cairo_pattern_fini (&pad_pattern.base); + if (unlikely (status)) + goto BAIL; + + cairo_surface_set_device_offset (pad_image, rect.x, rect.y); + } + + status = _cairo_pdf_surface_add_source_surface (surface, + pad_image, + NULL, + source->filter, + FALSE, + extents, + surface_res, + width, + height, + x_offset, + y_offset, + &extents2); + if (unlikely (status)) + goto BAIL; + +BAIL: + if (pad_image != &image->base) + cairo_surface_destroy (pad_image); + + _cairo_pdf_surface_release_source_image_from_pattern (surface, source, image, image_extra); + + return status; +} + /* Emit alpha channel from the image into the given data, providing * an id that can be used to reference the resulting SMask object. * @@ -2016,7 +2328,7 @@ _cairo_pdf_surface_emit_smask (cairo_pdf_surface_t *surface, * can be used to reference the data in image_ret. */ static cairo_status_t _cairo_pdf_surface_emit_image (cairo_pdf_surface_t *surface, - cairo_image_surface_t *image, + cairo_image_surface_t *image_surf, cairo_pdf_resource_t *image_res, cairo_filter_t filter, cairo_bool_t stencil_mask) @@ -2030,16 +2342,34 @@ _cairo_pdf_surface_emit_image (cairo_pdf_surface_t *surface, cairo_bool_t need_smask; const char *interpolate = "true"; cairo_image_color_t color; + cairo_image_surface_t *image; - /* These are the only image formats we currently support, (which - * makes things a lot simpler here). This is enforced through - * _cairo_pdf_surface_analyze_operation which only accept source surfaces of - * CONTENT_COLOR or CONTENT_COLOR_ALPHA. - */ - assert (image->format == CAIRO_FORMAT_RGB24 || - image->format == CAIRO_FORMAT_ARGB32 || - image->format == CAIRO_FORMAT_A8 || - image->format == CAIRO_FORMAT_A1); + image = image_surf; + if (image->format != CAIRO_FORMAT_RGB24 && + image->format != CAIRO_FORMAT_ARGB32 && + image->format != CAIRO_FORMAT_A8 && + image->format != CAIRO_FORMAT_A1) + { + cairo_surface_t *surf; + cairo_surface_pattern_t pattern; + + surf = _cairo_image_surface_create_with_content (cairo_surface_get_content (&image_surf->base), + image_surf->width, + image_surf->height); + image = (cairo_image_surface_t *) surf; + if (surf->status) { + status = surf->status; + goto CLEANUP; + } + + _cairo_pattern_init_for_surface (&pattern, &image_surf->base); + status = _cairo_surface_paint (surf, + CAIRO_OPERATOR_SOURCE, &pattern.base, + NULL); + _cairo_pattern_fini (&pattern.base); + if (unlikely (status)) + goto CLEANUP; + } switch (filter) { case CAIRO_FILTER_GOOD: @@ -2190,6 +2520,9 @@ _cairo_pdf_surface_emit_image (cairo_pdf_surface_t *surface, CLEANUP_RGB: free (data); CLEANUP: + if (image != image_surf) + cairo_surface_destroy (&image->base); + return status; } @@ -2243,6 +2576,7 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t *surface, const unsigned char *mime_data; unsigned long mime_data_length; cairo_image_info_t info; + const char *colorspace; cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JPEG, &mime_data, &mime_data_length); @@ -2255,8 +2589,19 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t *surface, if (unlikely (status)) return status; - if (info.num_components != 1 && info.num_components != 3) - return CAIRO_INT_STATUS_UNSUPPORTED; + switch (info.num_components) { + case 1: + colorspace = "/DeviceGray"; + break; + case 3: + colorspace = "/DeviceRGB"; + break; + case 4: + colorspace = "/DeviceCMYK"; + break; + default: + return CAIRO_INT_STATUS_UNSUPPORTED; + } status = _cairo_pdf_surface_open_stream (surface, &res, @@ -2270,7 +2615,7 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t *surface, " /Filter /DCTDecode\n", info.width, info.height, - info.num_components == 1 ? "/DeviceGray" : "/DeviceRGB", + colorspace, info.bits_per_component); if (unlikely (status)) return status; @@ -2282,135 +2627,48 @@ _cairo_pdf_surface_emit_jpeg_image (cairo_pdf_surface_t *surface, } static cairo_status_t -_cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, - cairo_surface_t *source, - cairo_pdf_resource_t resource, - cairo_bool_t interpolate, - cairo_bool_t stencil_mask) +_cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, + cairo_pdf_source_surface_t *source) { cairo_image_surface_t *image; void *image_extra; cairo_int_status_t status; - if (!stencil_mask) { - status = _cairo_pdf_surface_emit_jpx_image (surface, source, resource); - if (status != CAIRO_INT_STATUS_UNSUPPORTED) - return status; - - status = _cairo_pdf_surface_emit_jpeg_image (surface, source, resource); - if (status != CAIRO_INT_STATUS_UNSUPPORTED) - return status; + if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { + status = _cairo_surface_acquire_source_image (source->surface, &image, &image_extra); + } else { + status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, source->raster_pattern, + &source->hash_entry->extents, + &image, &image_extra); } - - status = _cairo_surface_acquire_source_image (source, &image, &image_extra); if (unlikely (status)) return status; - status = _cairo_pdf_surface_emit_image (surface, image, - &resource, interpolate, stencil_mask); - if (unlikely (status)) - goto BAIL; - -BAIL: - _cairo_surface_release_source_image (source, image, image_extra); - - return status; -} - -static cairo_status_t -_cairo_pdf_surface_emit_padded_image_surface (cairo_pdf_surface_t *surface, - cairo_pdf_pattern_t *pdf_pattern, - cairo_pdf_resource_t *resource, - int *width, - int *height, - int *origin_x, - int *origin_y) -{ - cairo_image_surface_t *image; - cairo_surface_t *pad_image; - void *image_extra; - cairo_int_status_t status; - cairo_surface_pattern_t *pattern = (cairo_surface_pattern_t *) pdf_pattern->pattern; - int x = 0; - int y = 0; - cairo_bool_t interpolate; - - status = _cairo_surface_acquire_source_image (pattern->surface, &image, &image_extra); - if (unlikely (status)) - return status; - - pad_image = &image->base; - if (pattern->base.extend == CAIRO_EXTEND_PAD) { - cairo_box_t box; - cairo_rectangle_int_t rect; - cairo_surface_pattern_t pad_pattern; - - /* get the operation extents in pattern space */ - _cairo_box_from_rectangle (&box, &pdf_pattern->extents); - _cairo_matrix_transform_bounding_box_fixed (&pattern->base.matrix, &box, NULL); - _cairo_box_round_to_rectangle (&box, &rect); - x = -rect.x; - y = -rect.y; - - pad_image = _cairo_image_surface_create_with_content (pattern->surface->content, - rect.width, - rect.height); - if (pad_image->status) { - status = pad_image->status; - goto BAIL; - } - - _cairo_pattern_init_for_surface (&pad_pattern, &image->base); - cairo_matrix_init_translate (&pad_pattern.base.matrix, -x, -y); - pad_pattern.base.extend = CAIRO_EXTEND_PAD; - status = _cairo_surface_paint (pad_image, - CAIRO_OPERATOR_SOURCE, &pad_pattern.base, - NULL); - _cairo_pattern_fini (&pad_pattern.base); - if (unlikely (status)) - goto BAIL; - } - - switch (pdf_pattern->pattern->filter) { - default: - case CAIRO_FILTER_GOOD: - case CAIRO_FILTER_BEST: - case CAIRO_FILTER_BILINEAR: - interpolate = TRUE; - break; - case CAIRO_FILTER_FAST: - case CAIRO_FILTER_NEAREST: - case CAIRO_FILTER_GAUSSIAN: - interpolate = FALSE; - break; - } + if (!source->hash_entry->stencil_mask) { + status = _cairo_pdf_surface_emit_jpx_image (surface, &image->base, source->hash_entry->surface_res); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + goto release_source; - *resource = _cairo_pdf_surface_new_object (surface); - if (resource->id == 0) { - status = _cairo_error (CAIRO_STATUS_NO_MEMORY); - goto BAIL; + status = _cairo_pdf_surface_emit_jpeg_image (surface, &image->base, source->hash_entry->surface_res); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + goto release_source; } - status = _cairo_pdf_surface_emit_image (surface, (cairo_image_surface_t *)pad_image, - resource, interpolate, FALSE); - if (unlikely (status)) - goto BAIL; - - *width = ((cairo_image_surface_t *)pad_image)->width; - *height = ((cairo_image_surface_t *)pad_image)->height; - *origin_x = x; - *origin_y = y; - -BAIL: - if (pad_image != &image->base) - cairo_surface_destroy (pad_image); + status = _cairo_pdf_surface_emit_image (surface, image, + &source->hash_entry->surface_res, + source->hash_entry->interpolate, + source->hash_entry->stencil_mask); - _cairo_surface_release_source_image (pattern->surface, image, image_extra); +release_source: + if (source->type == CAIRO_PATTERN_TYPE_SURFACE) + _cairo_surface_release_source_image (source->surface, image, image_extra); + else + _cairo_pdf_surface_release_source_image_from_pattern (surface, source->raster_pattern, + image, image_extra); return status; } - static cairo_status_t _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface, cairo_pdf_source_surface_t *pdf_source) @@ -2421,10 +2679,13 @@ _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface, cairo_box_double_t bbox; cairo_int_status_t status; int alpha = 0; - cairo_surface_t *source = pdf_source->surface; + cairo_surface_t *free_me = NULL; + cairo_surface_t *source; + assert (pdf_source->type == CAIRO_PATTERN_TYPE_SURFACE); + source = pdf_source->surface; if (_cairo_surface_is_snapshot (source)) - source = _cairo_surface_snapshot_get_target (source); + free_me = source = _cairo_surface_snapshot_get_target (source); old_width = surface->width; old_height = surface->height; @@ -2445,12 +2706,12 @@ _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface, _get_bbox_from_extents (pdf_source->hash_entry->height, &pdf_source->hash_entry->extents, &bbox); status = _cairo_pdf_surface_open_content_stream (surface, &bbox, &pdf_source->hash_entry->surface_res, TRUE); if (unlikely (status)) - return status; + goto err; if (cairo_surface_get_content (source) == CAIRO_CONTENT_COLOR) { status = _cairo_pdf_surface_add_alpha (surface, 1.0, &alpha); if (unlikely (status)) - return status; + goto err; _cairo_output_stream_printf (surface->output, "q /a%d gs 0 0 0 rg 0 0 %f %f re f Q\n", @@ -2465,7 +2726,7 @@ _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface, CAIRO_RECORDING_REGION_NATIVE); assert (status != CAIRO_INT_STATUS_UNSUPPORTED); if (unlikely (status)) - return status; + goto err; status = _cairo_pdf_surface_close_content_stream (surface); @@ -2476,6 +2737,8 @@ _cairo_pdf_surface_emit_recording_surface (cairo_pdf_surface_t *surface, old_height); surface->paginated_mode = old_paginated_mode; +err: + cairo_surface_destroy (free_me); return status; } @@ -2549,68 +2812,66 @@ static cairo_status_t _cairo_pdf_surface_emit_surface (cairo_pdf_surface_t *surface, cairo_pdf_source_surface_t *src_surface) { - if (src_surface->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { - if (src_surface->surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { - cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) src_surface->surface; - return _cairo_pdf_surface_emit_recording_subsurface (surface, - sub->target, - &sub->extents, - src_surface->hash_entry->surface_res); - } else { - return _cairo_pdf_surface_emit_recording_surface (surface, - src_surface); + if (src_surface->type == CAIRO_PATTERN_TYPE_SURFACE) { + if (src_surface->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { + if (src_surface->surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { + cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) src_surface->surface; + return _cairo_pdf_surface_emit_recording_subsurface (surface, + sub->target, + &sub->extents, + src_surface->hash_entry->surface_res); + } else { + return _cairo_pdf_surface_emit_recording_surface (surface, + src_surface); + } } - } else { - return _cairo_pdf_surface_emit_image_surface (surface, - src_surface->surface, - src_surface->hash_entry->surface_res, - src_surface->hash_entry->interpolate, - src_surface->hash_entry->stencil_mask); } + return _cairo_pdf_surface_emit_image_surface (surface, src_surface); } static cairo_status_t _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, cairo_pdf_pattern_t *pdf_pattern) { - cairo_surface_pattern_t *pattern = (cairo_surface_pattern_t *) pdf_pattern->pattern; + cairo_pattern_t *pattern = pdf_pattern->pattern; cairo_status_t status; cairo_pdf_resource_t pattern_resource = {0}; cairo_matrix_t cairo_p2d, pdf_p2d; - cairo_extend_t extend = cairo_pattern_get_extend (&pattern->base); + cairo_extend_t extend = cairo_pattern_get_extend (pattern); double xstep, ystep; cairo_rectangle_int_t pattern_extents; int pattern_width = 0; /* squelch bogus compiler warning */ int pattern_height = 0; /* squelch bogus compiler warning */ - int origin_x = 0; /* squelch bogus compiler warning */ - int origin_y = 0; /* squelch bogus compiler warning */ + double x_offset; + double y_offset; char draw_surface[200]; cairo_box_double_t bbox; - if (pattern->base.extend == CAIRO_EXTEND_PAD && - pattern->surface->type != CAIRO_SURFACE_TYPE_RECORDING) - { - status = _cairo_pdf_surface_emit_padded_image_surface (surface, - pdf_pattern, - &pattern_resource, - &pattern_width, - &pattern_height, - &origin_x, - &origin_y); + if (pattern->extend == CAIRO_EXTEND_PAD) { + status = _cairo_pdf_surface_add_padded_image_surface (surface, + pattern, + &pdf_pattern->extents, + &pattern_resource, + &pattern_width, + &pattern_height, + &x_offset, + &y_offset); pattern_extents.x = 0; pattern_extents.y = 0; pattern_extents.width = pattern_width; pattern_extents.height = pattern_height; - } - else - { + } else { status = _cairo_pdf_surface_add_source_surface (surface, - pattern->surface, - pdf_pattern->pattern->filter, + NULL, + pattern, + pattern->filter, FALSE, + &pdf_pattern->extents, &pattern_resource, &pattern_width, &pattern_height, + &x_offset, + &y_offset, &pattern_extents); } if (unlikely (status)) @@ -2634,7 +2895,7 @@ _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, */ double x1 = 0.0, y1 = 0.0; double x2 = surface->width, y2 = surface->height; - _cairo_matrix_transform_bounding_box (&pattern->base.matrix, + _cairo_matrix_transform_bounding_box (&pattern->matrix, &x1, &y1, &x2, &y2, NULL); @@ -2693,13 +2954,13 @@ _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, * have to scale it up by the image width and height to fill our * pattern cell. */ - cairo_p2d = pattern->base.matrix; + cairo_p2d = pattern->matrix; status = cairo_matrix_invert (&cairo_p2d); /* cairo_pattern_set_matrix ensures the matrix is invertible */ assert (status == CAIRO_STATUS_SUCCESS); cairo_matrix_multiply (&pdf_p2d, &cairo_p2d, &surface->cairo_to_pdf); - cairo_matrix_translate (&pdf_p2d, -origin_x, -origin_y); + cairo_matrix_translate (&pdf_p2d, -x_offset, -y_offset); cairo_matrix_translate (&pdf_p2d, 0.0, pattern_height); cairo_matrix_scale (&pdf_p2d, 1.0, -1.0); @@ -2726,7 +2987,8 @@ _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, if (unlikely (status)) return status; - if (pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { + if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE && + ((cairo_surface_pattern_t *) pattern)->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { snprintf(draw_surface, sizeof (draw_surface), "/x%d Do\n", @@ -3173,11 +3435,27 @@ _cairo_pdf_surface_emit_repeating_function (cairo_pdf_surface_t *surface, static cairo_status_t cairo_pdf_surface_emit_transparency_group (cairo_pdf_surface_t *surface, + cairo_pdf_pattern_t *pdf_pattern, cairo_pdf_resource_t gstate_resource, cairo_pdf_resource_t gradient_mask) { cairo_pdf_resource_t smask_resource; cairo_status_t status; + char buf[100]; + + if (pdf_pattern->is_shading) { + snprintf(buf, sizeof(buf), + " /Shading\n" + " << /sh%d %d 0 R >>\n", + gradient_mask.id, + gradient_mask.id); + } else { + snprintf(buf, sizeof(buf), + " /Pattern\n" + " << /p%d %d 0 R >>\n", + gradient_mask.id, + gradient_mask.id); + } status = _cairo_pdf_surface_open_stream (surface, NULL, @@ -3190,34 +3468,39 @@ cairo_pdf_surface_emit_transparency_group (cairo_pdf_surface_t *surface, " << /ExtGState\n" " << /a0 << /ca 1 /CA 1 >>" " >>\n" - " /Pattern\n" - " << /p%d %d 0 R >>\n" + "%s" " >>\n" " /Group\n" " << /Type /Group\n" " /S /Transparency\n" + " /I true\n" " /CS /DeviceGray\n" " >>\n", surface->width, surface->height, - gradient_mask.id, - gradient_mask.id); + buf); if (unlikely (status)) return status; - _cairo_output_stream_printf (surface->output, - "q\n" - "/a0 gs\n" - "/Pattern cs /p%d scn\n" - "0 0 %f %f re\n" - "f\n" - "Q\n", - gradient_mask.id, - surface->width, - surface->height); - - status = _cairo_pdf_surface_close_stream (surface); - if (unlikely (status)) + if (pdf_pattern->is_shading) { + _cairo_output_stream_printf (surface->output, + "/a0 gs /sh%d sh\n", + gradient_mask.id); + } else { + _cairo_output_stream_printf (surface->output, + "q\n" + "/a0 gs\n" + "/Pattern cs /p%d scn\n" + "0 0 %f %f re\n" + "f\n" + "Q\n", + gradient_mask.id, + surface->width, + surface->height); + } + + status = _cairo_pdf_surface_close_stream (surface); + if (unlikely (status)) return status; smask_resource = _cairo_pdf_surface_new_object (surface); @@ -3264,15 +3547,19 @@ _cairo_pdf_surface_output_gradient (cairo_pdf_surface_t *surface, cairo_pdf_resource_t color_function) { _cairo_output_stream_printf (surface->output, - "%d 0 obj\n" - "<< /Type /Pattern\n" - " /PatternType 2\n" - " /Matrix [ %f %f %f %f %f %f ]\n" - " /Shading\n", - pattern_resource.id, - pat_to_pdf->xx, pat_to_pdf->yx, - pat_to_pdf->xy, pat_to_pdf->yy, - pat_to_pdf->x0, pat_to_pdf->y0); + "%d 0 obj\n", + pattern_resource.id); + + if (!pdf_pattern->is_shading) { + _cairo_output_stream_printf (surface->output, + "<< /Type /Pattern\n" + " /PatternType 2\n" + " /Matrix [ %f %f %f %f %f %f ]\n" + " /Shading\n", + pat_to_pdf->xx, pat_to_pdf->yx, + pat_to_pdf->xy, pat_to_pdf->yy, + pat_to_pdf->x0, pat_to_pdf->y0); + } if (pdf_pattern->pattern->type == CAIRO_PATTERN_TYPE_LINEAR) { _cairo_output_stream_printf (surface->output, @@ -3308,10 +3595,14 @@ _cairo_pdf_surface_output_gradient (cairo_pdf_surface_t *surface, _cairo_output_stream_printf (surface->output, " /Function %d 0 R\n" - " >>\n" - ">>\n" - "endobj\n", + " >>\n", color_function.id); + + if (!pdf_pattern->is_shading) { + _cairo_output_stream_printf (surface->output, + ">>\n" + "endobj\n"); + } } static cairo_status_t @@ -3449,11 +3740,8 @@ _cairo_pdf_surface_emit_gradient (cairo_pdf_surface_t *surface, &pat_to_pdf, &start, &end, domain, "/DeviceGray", alpha_function); - status = _cairo_pdf_surface_add_pattern (surface, mask_resource); - if (unlikely (status)) - return status; - status = cairo_pdf_surface_emit_transparency_group (surface, + pdf_pattern, pdf_pattern->gstate_res, mask_resource); if (unlikely (status)) @@ -3598,6 +3886,7 @@ _cairo_pdf_surface_emit_mesh_pattern (cairo_pdf_surface_t *surface, res.id); status = cairo_pdf_surface_emit_transparency_group (surface, + pdf_pattern, pdf_pattern->gstate_res, mask_resource); if (unlikely (status)) @@ -3626,6 +3915,7 @@ _cairo_pdf_surface_emit_pattern (cairo_pdf_surface_t *surface, cairo_pdf_pattern break; case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: status = _cairo_pdf_surface_emit_surface_pattern (surface, pdf_pattern); break; @@ -3652,39 +3942,64 @@ _cairo_pdf_surface_emit_pattern (cairo_pdf_surface_t *surface, cairo_pdf_pattern } static cairo_status_t -_cairo_pdf_surface_paint_surface_pattern (cairo_pdf_surface_t *surface, - cairo_surface_pattern_t *source, - cairo_bool_t stencil_mask) +_cairo_pdf_surface_paint_surface_pattern (cairo_pdf_surface_t *surface, + const cairo_pattern_t *source, + const cairo_rectangle_int_t *extents, + cairo_bool_t stencil_mask) { cairo_pdf_resource_t surface_res; int width, height; cairo_matrix_t cairo_p2d, pdf_p2d; cairo_status_t status; int alpha; - cairo_rectangle_int_t extents; + cairo_rectangle_int_t extents2; + double x_offset; + double y_offset; - status = _cairo_pdf_surface_add_source_surface (surface, - source->surface, - source->base.filter, - stencil_mask, - &surface_res, - &width, - &height, - &extents); + if (source->extend == CAIRO_EXTEND_PAD && + !(source->type == CAIRO_PATTERN_TYPE_SURFACE && + ((cairo_surface_pattern_t *)source)->surface->type == CAIRO_SURFACE_TYPE_RECORDING)) + { + status = _cairo_pdf_surface_add_padded_image_surface (surface, + source, + extents, + &surface_res, + &width, + &height, + &x_offset, + &y_offset); + } else { + status = _cairo_pdf_surface_add_source_surface (surface, + NULL, + source, + source->filter, + stencil_mask, + extents, + &surface_res, + &width, + &height, + &x_offset, + &y_offset, + &extents2); + } if (unlikely (status)) return status; - cairo_p2d = source->base.matrix; + cairo_p2d = source->matrix; status = cairo_matrix_invert (&cairo_p2d); /* cairo_pattern_set_matrix ensures the matrix is invertible */ assert (status == CAIRO_STATUS_SUCCESS); pdf_p2d = surface->cairo_to_pdf; cairo_matrix_multiply (&pdf_p2d, &cairo_p2d, &pdf_p2d); + cairo_matrix_translate (&pdf_p2d, x_offset, y_offset); cairo_matrix_translate (&pdf_p2d, 0.0, height); cairo_matrix_scale (&pdf_p2d, 1.0, -1.0); - if (source->surface->type != CAIRO_SURFACE_TYPE_RECORDING) + if (!(source->type == CAIRO_PATTERN_TYPE_SURFACE && + ((cairo_surface_pattern_t *)source)->surface->type == CAIRO_SURFACE_TYPE_RECORDING)) + { cairo_matrix_scale (&pdf_p2d, width, height); + } status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) @@ -3717,6 +4032,121 @@ _cairo_pdf_surface_paint_surface_pattern (cairo_pdf_surface_t *surface, } static cairo_status_t +_cairo_pdf_surface_paint_gradient (cairo_pdf_surface_t *surface, + const cairo_pattern_t *source, + const cairo_rectangle_int_t *extents) +{ + cairo_pdf_resource_t shading_res, gstate_res; + cairo_matrix_t pat_to_pdf; + cairo_status_t status; + int alpha; + + status = _cairo_pdf_surface_add_pdf_shading (surface, source, + extents, + &shading_res, &gstate_res); + if (unlikely (status == CAIRO_INT_STATUS_NOTHING_TO_DO)) + return CAIRO_STATUS_SUCCESS; + if (unlikely (status)) + return status; + + pat_to_pdf = source->matrix; + status = cairo_matrix_invert (&pat_to_pdf); + /* cairo_pattern_set_matrix ensures the matrix is invertible */ + assert (status == CAIRO_STATUS_SUCCESS); + cairo_matrix_multiply (&pat_to_pdf, &pat_to_pdf, &surface->cairo_to_pdf); + + status = _cairo_pdf_operators_flush (&surface->pdf_operators); + if (unlikely (status)) + return status; + + if (! _cairo_matrix_is_identity (&pat_to_pdf)) { + _cairo_output_stream_printf (surface->output, + "%f %f %f %f %f %f cm\n", + pat_to_pdf.xx, pat_to_pdf.yx, + pat_to_pdf.xy, pat_to_pdf.yy, + pat_to_pdf.x0, pat_to_pdf.y0); + } + + status = _cairo_pdf_surface_add_shading (surface, shading_res); + if (unlikely (status)) + return status; + + if (gstate_res.id != 0) { + status = _cairo_pdf_surface_add_smask (surface, gstate_res); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "/s%d gs /sh%d sh\n", + gstate_res.id, + shading_res.id); + } else { + status = _cairo_pdf_surface_add_alpha (surface, 1.0, &alpha); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "/a%d gs /sh%d sh\n", + alpha, + shading_res.id); + } + + return status; +} + +static cairo_status_t +_cairo_pdf_surface_paint_pattern (cairo_pdf_surface_t *surface, + const cairo_pattern_t *source, + const cairo_rectangle_int_t *extents, + cairo_bool_t mask) +{ + switch (source->type) { + case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _cairo_pdf_surface_paint_surface_pattern (surface, + source, + extents, + mask); + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + return _cairo_pdf_surface_paint_gradient (surface, + source, + extents); + + case CAIRO_PATTERN_TYPE_SOLID: + default: + ASSERT_NOT_REACHED; + return CAIRO_STATUS_SUCCESS; + } +} + +static cairo_bool_t +_can_paint_pattern (const cairo_pattern_t *pattern) +{ + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SOLID: + return FALSE; + + case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return (pattern->extend == CAIRO_EXTEND_NONE || + pattern->extend == CAIRO_EXTEND_PAD); + + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + return TRUE; + + case CAIRO_PATTERN_TYPE_MESH: + return FALSE; + + default: + ASSERT_NOT_REACHED; + return FALSE; + } +} + +static cairo_status_t _cairo_pdf_surface_select_operator (cairo_pdf_surface_t *surface, cairo_operator_t op) { @@ -5302,56 +5732,68 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, if (unlikely (status)) return status; - pattern_res.id = 0; - gstate_res.id = 0; - status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, - &pattern_res, &gstate_res); - if (unlikely (status)) - return status; - - if (gstate_res.id != 0) { - smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); - if (unlikely (smask_group == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - smask_group->width = group->width; - smask_group->height = group->height; - smask_group->operation = PDF_PAINT; - smask_group->source = cairo_pattern_reference (group->mask); - smask_group->source_res = pattern_res; - status = _cairo_pdf_surface_add_smask_group (surface, smask_group); - if (unlikely (status)) { - _cairo_pdf_smask_group_destroy (smask_group); - return status; - } - - status = _cairo_pdf_surface_add_smask (surface, gstate_res); - if (unlikely (status)) - return status; - - status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); + if (_can_paint_pattern (group->mask)) { + _cairo_output_stream_printf (surface->output, "q\n"); + status = _cairo_pdf_surface_paint_pattern (surface, + group->mask, + &group->extents, + FALSE); if (unlikely (status)) return status; - _cairo_output_stream_printf (surface->output, - "q /s%d gs /x%d Do Q\n", - gstate_res.id, - smask_group->group_res.id); + _cairo_output_stream_printf (surface->output, "Q\n"); } else { - status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); + pattern_res.id = 0; + gstate_res.id = 0; + status = _cairo_pdf_surface_add_pdf_pattern (surface, group->mask, NULL, + &pattern_res, &gstate_res); if (unlikely (status)) return status; - _cairo_output_stream_printf (surface->output, - "%f %f %f %f re f\n", - bbox.p1.x, - bbox.p1.y, - bbox.p2.x - bbox.p1.x, - bbox.p2.y - bbox.p1.y); + if (gstate_res.id != 0) { + smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); + if (unlikely (smask_group == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); - status = _cairo_pdf_surface_unselect_pattern (surface); - if (unlikely (status)) - return status; + smask_group->width = group->width; + smask_group->height = group->height; + smask_group->operation = PDF_PAINT; + smask_group->source = cairo_pattern_reference (group->mask); + smask_group->source_res = pattern_res; + status = _cairo_pdf_surface_add_smask_group (surface, smask_group); + if (unlikely (status)) { + _cairo_pdf_smask_group_destroy (smask_group); + return status; + } + + status = _cairo_pdf_surface_add_smask (surface, gstate_res); + if (unlikely (status)) + return status; + + status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "q /s%d gs /x%d Do Q\n", + gstate_res.id, + smask_group->group_res.id); + } else { + status = _cairo_pdf_surface_select_pattern (surface, group->mask, pattern_res, FALSE); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "%f %f %f %f re f\n", + bbox.p1.x, + bbox.p1.y, + bbox.p2.x - bbox.p1.x, + bbox.p2.y - bbox.p1.y); + + status = _cairo_pdf_surface_unselect_pattern (surface); + if (unlikely (status)) + return status; + } } status = _cairo_pdf_surface_close_group (surface, &mask_group); @@ -5363,54 +5805,66 @@ _cairo_pdf_surface_write_mask_group (cairo_pdf_surface_t *surface, if (unlikely (status)) return status; - pattern_res.id = 0; - gstate_res.id = 0; - status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, - &pattern_res, &gstate_res); - if (unlikely (status)) - return status; - - if (gstate_res.id != 0) { - smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); - if (unlikely (smask_group == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - smask_group->operation = PDF_PAINT; - smask_group->source = cairo_pattern_reference (group->source); - smask_group->source_res = pattern_res; - status = _cairo_pdf_surface_add_smask_group (surface, smask_group); - if (unlikely (status)) { - _cairo_pdf_smask_group_destroy (smask_group); - return status; - } - - status = _cairo_pdf_surface_add_smask (surface, gstate_res); - if (unlikely (status)) - return status; - - status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); + if (_can_paint_pattern (group->source)) { + _cairo_output_stream_printf (surface->output, "q\n"); + status = _cairo_pdf_surface_paint_pattern (surface, + group->source, + &group->extents, + FALSE); if (unlikely (status)) return status; - _cairo_output_stream_printf (surface->output, - "q /s%d gs /x%d Do Q\n", - gstate_res.id, - smask_group->group_res.id); + _cairo_output_stream_printf (surface->output, "Q\n"); } else { - status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); + pattern_res.id = 0; + gstate_res.id = 0; + status = _cairo_pdf_surface_add_pdf_pattern (surface, group->source, NULL, + &pattern_res, &gstate_res); if (unlikely (status)) return status; - _cairo_output_stream_printf (surface->output, - "%f %f %f %f re f\n", - bbox.p1.x, - bbox.p1.y, - bbox.p2.x - bbox.p1.x, - bbox.p2.y - bbox.p1.y); + if (gstate_res.id != 0) { + smask_group = _cairo_pdf_surface_create_smask_group (surface, &group->extents); + if (unlikely (smask_group == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); - status = _cairo_pdf_surface_unselect_pattern (surface); - if (unlikely (status)) - return status; + smask_group->operation = PDF_PAINT; + smask_group->source = cairo_pattern_reference (group->source); + smask_group->source_res = pattern_res; + status = _cairo_pdf_surface_add_smask_group (surface, smask_group); + if (unlikely (status)) { + _cairo_pdf_smask_group_destroy (smask_group); + return status; + } + + status = _cairo_pdf_surface_add_smask (surface, gstate_res); + if (unlikely (status)) + return status; + + status = _cairo_pdf_surface_add_xobject (surface, smask_group->group_res); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "q /s%d gs /x%d Do Q\n", + gstate_res.id, + smask_group->group_res.id); + } else { + status = _cairo_pdf_surface_select_pattern (surface, group->source, pattern_res, FALSE); + if (unlikely (status)) + return status; + + _cairo_output_stream_printf (surface->output, + "%f %f %f %f re f\n", + bbox.p1.x, + bbox.p1.y, + bbox.p2.x - bbox.p1.x, + bbox.p2.y - bbox.p1.y); + + status = _cairo_pdf_surface_unselect_pattern (surface); + if (unlikely (status)) + return status; + } } status = _cairo_pdf_surface_close_group (surface, NULL); @@ -5648,6 +6102,7 @@ _cairo_pdf_surface_write_page (cairo_pdf_surface_t *surface) " /Group <<\n" " /Type /Group\n" " /S /Transparency\n" + " /I true\n" " /CS /DeviceRGB\n" " >>\n" " /Resources %d 0 R\n" @@ -5742,7 +6197,8 @@ _pattern_supported (const cairo_pattern_t *pattern) case CAIRO_PATTERN_TYPE_SOLID: case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: - case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: return TRUE; case CAIRO_PATTERN_TYPE_SURFACE: @@ -5893,28 +6349,29 @@ _cairo_pdf_surface_start_fallback (cairo_pdf_surface_t *surface) /* A PDF stencil mask is an A1 mask used with the current color */ static cairo_int_status_t -_cairo_pdf_surface_emit_stencil_mask (cairo_pdf_surface_t *surface, - const cairo_pattern_t *source, - const cairo_pattern_t *mask) +_cairo_pdf_surface_emit_stencil_mask (cairo_pdf_surface_t *surface, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_rectangle_int_t *extents) { cairo_status_t status; - cairo_surface_pattern_t *surface_pattern; cairo_image_surface_t *image; void *image_extra; cairo_image_transparency_t transparency; cairo_pdf_resource_t pattern_res = {0}; if (! (source->type == CAIRO_PATTERN_TYPE_SOLID && - mask->type == CAIRO_PATTERN_TYPE_SURFACE)) + (mask->type == CAIRO_PATTERN_TYPE_SURFACE || mask->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE))) return CAIRO_INT_STATUS_UNSUPPORTED; - surface_pattern = (cairo_surface_pattern_t *) mask; - if (surface_pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING) + if (mask->type == CAIRO_PATTERN_TYPE_SURFACE && + ((cairo_surface_pattern_t *) mask)->surface->type == CAIRO_SURFACE_TYPE_RECORDING) + { return CAIRO_INT_STATUS_UNSUPPORTED; + } - status = _cairo_surface_acquire_source_image (surface_pattern->surface, - &image, - &image_extra); + status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, mask, extents, + &image, &image_extra); if (unlikely (status)) return status; @@ -5939,19 +6396,16 @@ _cairo_pdf_surface_emit_stencil_mask (cairo_pdf_surface_t *surface, return status; _cairo_output_stream_printf (surface->output, "q\n"); - status = _cairo_pdf_surface_paint_surface_pattern (surface, - (cairo_surface_pattern_t *) surface_pattern, - TRUE); + status = _cairo_pdf_surface_paint_surface_pattern (surface, mask, NULL, TRUE); if (unlikely (status)) return status; _cairo_output_stream_printf (surface->output, "Q\n"); - _cairo_surface_release_source_image (surface_pattern->surface, image, image_extra); status = _cairo_output_stream_get_status (surface->output); cleanup: - _cairo_surface_release_source_image (surface_pattern->surface, image, image_extra); + _cairo_pdf_surface_release_source_image_from_pattern (surface, mask, image, image_extra); return status; } @@ -6015,13 +6469,12 @@ _cairo_pdf_surface_paint (void *abstract_surface, if (unlikely (status)) goto cleanup; - if (source->type == CAIRO_PATTERN_TYPE_SURFACE && - source->extend == CAIRO_EXTEND_NONE) - { + if (_can_paint_pattern (source)) { _cairo_output_stream_printf (surface->output, "q\n"); - status = _cairo_pdf_surface_paint_surface_pattern (surface, - (cairo_surface_pattern_t *) source, - FALSE); + status = _cairo_pdf_surface_paint_pattern (surface, + source, + &extents.bounded, + FALSE); if (unlikely (status)) goto cleanup; @@ -6173,7 +6626,7 @@ _cairo_pdf_surface_mask (void *abstract_surface, goto cleanup; /* Check if we can use a stencil mask */ - status = _cairo_pdf_surface_emit_stencil_mask (surface, source, mask); + status = _cairo_pdf_surface_emit_stencil_mask (surface, source, mask, &extents.bounded); if (status != CAIRO_INT_STATUS_UNSUPPORTED) goto cleanup; @@ -6430,9 +6883,7 @@ _cairo_pdf_surface_fill (void *abstract_surface, if (unlikely (status)) goto cleanup; - if (source->type == CAIRO_PATTERN_TYPE_SURFACE && - source->extend == CAIRO_EXTEND_NONE) - { + if (_can_paint_pattern (source)) { status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) goto cleanup; @@ -6444,9 +6895,10 @@ _cairo_pdf_surface_fill (void *abstract_surface, if (unlikely (status)) goto cleanup; - status = _cairo_pdf_surface_paint_surface_pattern (surface, - (cairo_surface_pattern_t *) source, - FALSE); + status = _cairo_pdf_surface_paint_pattern (surface, + source, + &extents.bounded, + FALSE); if (unlikely (status)) goto cleanup; @@ -6853,6 +7305,11 @@ cleanup: return status; } +static const char ** +_cairo_pdf_surface_get_supported_mime_types (void *abstract_surface) +{ + return _cairo_pdf_supported_mime_types; +} static void _cairo_pdf_surface_set_paginated_mode (void *abstract_surface, @@ -6874,6 +7331,7 @@ static const cairo_surface_backend_t cairo_pdf_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ @@ -6896,6 +7354,7 @@ static const cairo_surface_backend_t cairo_pdf_surface_backend = { NULL, /* show_glyphs */ _cairo_pdf_surface_has_show_text_glyphs, _cairo_pdf_surface_show_text_glyphs, + _cairo_pdf_surface_get_supported_mime_types, }; static const cairo_paginated_surface_backend_t diff --git a/src/cairo-pdf.h b/src/cairo-pdf.h index 50460cc..1bc8524 100644 --- a/src/cairo-pdf.h +++ b/src/cairo-pdf.h @@ -45,14 +45,14 @@ CAIRO_BEGIN_DECLS /** * cairo_pdf_version_t: - * @CAIRO_PDF_VERSION_1_4: The version 1.4 of the PDF specification. - * @CAIRO_PDF_VERSION_1_5: The version 1.5 of the PDF specification. + * @CAIRO_PDF_VERSION_1_4: The version 1.4 of the PDF specification. (Since 1.10) + * @CAIRO_PDF_VERSION_1_5: The version 1.5 of the PDF specification. (Since 1.10) * * #cairo_pdf_version_t is used to describe the version number of the PDF * specification that a generated PDF file will conform to. * - * Since 1.10 - */ + * Since: 1.10 + **/ typedef enum _cairo_pdf_version { CAIRO_PDF_VERSION_1_4, CAIRO_PDF_VERSION_1_5 diff --git a/src/cairo-png.c b/src/cairo-png.c index 59bbe68..e74a4a8 100644 --- a/src/cairo-png.c +++ b/src/cairo-png.c @@ -62,7 +62,7 @@ * cairo_image_surface_get_data() or a backend-specific access * function, and process it with another library, e.g. gdk-pixbuf or * libpng. - */ + **/ /** * CAIRO_HAS_PNG_FUNCTIONS: @@ -70,7 +70,9 @@ * Defined if the PNG functions are available. * This macro can be used to conditionally compile code using the cairo * PNG functions. - */ + * + * Since: 1.0 + **/ struct png_read_closure_t { cairo_read_func_t read_func; @@ -348,6 +350,8 @@ stdio_write_func (png_structp png, png_bytep data, png_size_t size) * %CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have * pixel contents, or %CAIRO_STATUS_WRITE_ERROR if an I/O error occurs * while attempting to write the file. + * + * Since: 1.0 **/ cairo_status_t cairo_surface_write_to_png (cairo_surface_t *surface, @@ -414,6 +418,8 @@ stream_write_func (png_structp png, png_bytep data, png_size_t size) * memory could not be allocated for the operation, * %CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have * pixel contents. + * + * Since: 1.0 **/ cairo_status_t cairo_surface_write_to_png_stream (cairo_surface_t *surface, @@ -742,6 +748,8 @@ read_png (struct png_read_closure_t *png_closure) * Alternatively, you can allow errors to propagate through the drawing * operations and check the status on the context upon completion * using cairo_status(). + * + * Since: 1.0 **/ cairo_surface_t * cairo_image_surface_create_from_png (const char *filename) @@ -795,6 +803,8 @@ cairo_image_surface_create_from_png (const char *filename) * Alternatively, you can allow errors to propagate through the drawing * operations and check the status on the context upon completion * using cairo_status(). + * + * Since: 1.0 **/ cairo_surface_t * cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func, diff --git a/src/cairo-polygon-intersect.c b/src/cairo-polygon-intersect.c index 92becd0..c900c89 100644 --- a/src/cairo-polygon-intersect.c +++ b/src/cairo-polygon-intersect.c @@ -40,7 +40,7 @@ #include "cairo-error-private.h" #include "cairo-freelist-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" typedef cairo_point_t cairo_bo_point32_t; @@ -1172,13 +1172,23 @@ edges_start_or_continue (cairo_bo_edge_t *left, int top, cairo_polygon_t *polygon) { + assert (right->deferred.other == NULL); + if (left->deferred.other == right) return; if (left->deferred.other != NULL) { if (right != NULL && edges_colinear (left->deferred.other, right)) { - /* continuation on right, so just swap edges */ - assert (left->deferred.other->deferred.other == NULL); + cairo_bo_edge_t *old = left->deferred.other; + + /* continuation on right, extend right to cover both */ + assert (old->deferred.other == NULL); + assert (old->edge.line.p2.y > old->edge.line.p1.y); + + if (old->edge.line.p1.y < right->edge.line.p1.y) + right->edge.line.p1 = old->edge.line.p1; + if (old->edge.line.p2.y > right->edge.line.p2.y) + right->edge.line.p2 = old->edge.line.p2; left->deferred.other = right; return; } @@ -1233,13 +1243,11 @@ active_edges (cairo_bo_edge_t *left, } right = right->next; - } while (right); + } while (1); edges_start_or_continue (left, right, top, polygon); - left = right; - if (left != NULL) - left = left->next; + left = right->next; } } @@ -1324,6 +1332,11 @@ intersection_sweep (cairo_bo_event_t **start_events, if (e2 != e1->next) break; + if (e1->deferred.other) + edges_end (e1, sweep_line.current_y, polygon); + if (e2->deferred.other) + edges_end (e2, sweep_line.current_y, polygon); + left = e1->prev; right = e2->next; diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c index f18e234..8758070 100644 --- a/src/cairo-polygon-reduce.c +++ b/src/cairo-polygon-reduce.c @@ -40,7 +40,7 @@ #include "cairo-error-private.h" #include "cairo-freelist-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" typedef cairo_point_t cairo_bo_point32_t; diff --git a/src/cairo-polygon.c b/src/cairo-polygon.c index 90f81f7..c714b32 100644 --- a/src/cairo-polygon.c +++ b/src/cairo-polygon.c @@ -41,6 +41,38 @@ #include "cairo-contour-private.h" #include "cairo-error-private.h" +#define DEBUG_POLYGON 0 + +#if DEBUG_POLYGON && !NDEBUG +static void +assert_last_edge_is_valid(cairo_polygon_t *polygon, + const cairo_box_t *limit) +{ + cairo_edge_t *edge; + cairo_fixed_t x; + + edge = &polygon->edges[polygon->num_edges-1]; + + assert (edge->bottom > edge->top); + assert (edge->top >= limit->p1.y); + assert (edge->bottom <= limit->p2.y); + + x = _cairo_edge_compute_intersection_x_for_y (&edge->line.p1, + &edge->line.p2, + edge->top); + assert (x >= limit->p1.x); + assert (x <= limit->p2.x); + + x = _cairo_edge_compute_intersection_x_for_y (&edge->line.p1, + &edge->line.p2, + edge->bottom); + assert (x >= limit->p1.x); + assert (x <= limit->p2.x); +} +#else +#define assert_last_edge_is_valid(p, l) +#endif + static void _cairo_polygon_add_edge (cairo_polygon_t *polygon, const cairo_point_t *p1, @@ -340,16 +372,19 @@ _add_clipped_edge (cairo_polygon_t *polygon, * clip vertically by restricting top and bottom */ _add_edge (polygon, p1, p2, top_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); } else if (pright <= limits->p1.x) { /* Projection of the edge to the left of the box: * replace with the left side of the box (clipped top/bottom) */ _add_edge (polygon, &limits->p1, &bot_left, top_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); } else if (limits->p2.x <= pleft) { /* Projection of the edge to the right of the box: * replace with the right side of the box (clipped top/bottom) */ _add_edge (polygon, &top_right, &limits->p2, top_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); } else { /* The edge and the box intersect in a generic way */ cairo_fixed_t left_y, right_y; @@ -388,37 +423,55 @@ _add_clipped_edge (cairo_polygon_t *polygon, top_left_to_bottom_right = (p1->x < p2->x) == (p1->y < p2->y); if (top_left_to_bottom_right) { + if (_cairo_edge_compute_intersection_x_for_y (p1, p2, left_y) < limits->p1.x) + left_y++; + left_y = MIN (left_y, bot_y); if (top_y < left_y) { _add_edge (polygon, &limits->p1, &bot_left, top_y, left_y, dir); + assert_last_edge_is_valid (polygon, limits); top_y = left_y; } + if (_cairo_edge_compute_intersection_x_for_y (p1, p2, right_y) > limits->p1.y) + right_y--; + right_y = MAX (right_y, top_y); if (bot_y > right_y) { _add_edge (polygon, &top_right, &limits->p2, right_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); bot_y = right_y; } } else { + if (_cairo_edge_compute_intersection_x_for_y (p1, p2, right_y) > limits->p2.x) + right_y++; + right_y = MIN (right_y, bot_y); if (top_y < right_y) { _add_edge (polygon, &top_right, &limits->p2, top_y, right_y, dir); + assert_last_edge_is_valid (polygon, limits); top_y = right_y; } + if (_cairo_edge_compute_intersection_x_for_y (p1, p2, left_y) < limits->p1.x) + left_y--; + left_y = MAX (left_y, top_y); if (bot_y > left_y) { _add_edge (polygon, &limits->p1, &bot_left, left_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); bot_y = left_y; } } - if (top_y != bot_y) + if (top_y != bot_y) { _add_edge (polygon, p1, p2, top_y, bot_y, dir); + assert_last_edge_is_valid (polygon, limits); + } } } } diff --git a/src/cairo-ps-surface-private.h b/src/cairo-ps-surface-private.h index a5a8cd0..1d5d27d 100644 --- a/src/cairo-ps-surface-private.h +++ b/src/cairo-ps-surface-private.h @@ -70,11 +70,6 @@ typedef struct cairo_ps_surface { int bbox_x1, bbox_y1, bbox_x2, bbox_y2; cairo_matrix_t cairo_to_ps; - /* XXX These 3 are used as temporary storage whilst emitting patterns */ - cairo_image_surface_t *image; - cairo_image_surface_t *acquired_image; - void *image_extra; - cairo_bool_t use_string_datasource; cairo_bool_t current_pattern_is_solid_color; diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index 36d555d..1285108 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -67,11 +67,12 @@ #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-scaled-font-subsets-private.h" #include "cairo-paginated-private.h" #include "cairo-recording-surface-private.h" #include "cairo-surface-clipper-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-subsurface-private.h" #include "cairo-output-stream-private.h" #include "cairo-type3-glyph-surface-private.h" @@ -104,14 +105,16 @@ * * The PostScript surface is used to render cairo graphics to Adobe * PostScript files and is a multi-page vector surface backend. - */ + **/ /** * CAIRO_HAS_PS_SURFACE: * * Defined if the PostScript surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.2 + **/ typedef enum { CAIRO_PS_COMPRESS_NONE, @@ -126,10 +129,6 @@ static cairo_bool_t _cairo_ps_surface_get_extents (void *abstract_surface, cairo_rectangle_int_t *rectangle); -static void -_cairo_ps_surface_release_surface (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern); - static const cairo_ps_level_t _cairo_ps_levels[] = { CAIRO_PS_LEVEL_2, @@ -144,6 +143,12 @@ static const char * _cairo_ps_level_strings[CAIRO_PS_LEVEL_LAST] = "PS Level 3" }; +static const char *_cairo_ps_supported_mime_types[] = +{ + CAIRO_MIME_TYPE_JPEG, + NULL +}; + typedef struct _cairo_page_standard_media { const char *name; int width; @@ -268,10 +273,8 @@ _cairo_ps_surface_emit_header (cairo_ps_surface_t *surface) if (surface->eps) { _cairo_output_stream_printf (surface->final_stream, - "/cairo_eps_state save def\n" - "/dict_count countdictstack def\n" - "/op_count count 1 sub def\n" - "userdict begin\n"); + "save\n" + "50 dict begin\n"); } else { _cairo_output_stream_printf (surface->final_stream, "/languagelevel where\n" @@ -807,9 +810,7 @@ _cairo_ps_surface_emit_footer (cairo_ps_surface_t *surface) if (surface->eps) { _cairo_output_stream_printf (surface->final_stream, - "count op_count sub {pop} repeat\n" - "countdictstack dict_count sub {end} repeat\n" - "cairo_eps_state restore\n"); + "end restore\n"); } _cairo_output_stream_printf (surface->final_stream, @@ -1123,7 +1124,7 @@ cairo_ps_surface_create (const char *filename, * occurs. You can use cairo_surface_status() to check for this. * * Since: 1.2 - */ + **/ cairo_surface_t * cairo_ps_surface_create_for_stream (cairo_write_func_t write_func, void *closure, @@ -1627,62 +1628,264 @@ _cairo_ps_surface_start_page (void *abstract_surface) } static cairo_int_status_t -_cairo_ps_surface_end_page (cairo_ps_surface_t *surface) +_cairo_ps_surface_show_page (void *abstract_surface) { + cairo_ps_surface_t *surface = abstract_surface; cairo_int_status_t status; + if (surface->clipper.clip != NULL) + _cairo_surface_clipper_reset (&surface->clipper); + status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) return status; - if (surface->clipper.clip != NULL) { - _cairo_output_stream_printf (surface->stream, "Q Q\n"); - _cairo_surface_clipper_reset (&surface->clipper); - } else - _cairo_output_stream_printf (surface->stream, "Q\n"); + _cairo_output_stream_printf (surface->stream, + "Q Q\n" + "showpage\n"); return CAIRO_STATUS_SUCCESS; } -static cairo_int_status_t -_cairo_ps_surface_show_page (void *abstract_surface) +static cairo_bool_t +color_is_gray (double red, double green, double blue) { - cairo_ps_surface_t *surface = abstract_surface; - cairo_int_status_t status; + const double epsilon = 0.00001; - status = _cairo_ps_surface_end_page (surface); - if (unlikely (status)) - return status; + return (fabs (red - green) < epsilon && + fabs (red - blue) < epsilon); +} + +/** + * _cairo_ps_surface_acquire_source_surface_from_pattern: + * @surface: the ps surface + * @pattern: A #cairo_pattern_t of type SURFACE or RASTER_SOURCE to use as the source + * @extents: extents of the operation that is using this source + * @width: returns width of surface + * @height: returns height of surface + * @x_offset: returns x offset of surface + * @y_offset: returns y offset of surface + * @surface: returns surface of type image surface or recording surface + * @image_extra: returns image extra for image type surface + * + * Acquire source surface or raster source pattern. + **/ +static cairo_status_t +_cairo_ps_surface_acquire_source_surface_from_pattern (cairo_ps_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents, + int *width, + int *height, + double *x_offset, + double *y_offset, + cairo_surface_t **source_surface, + void **image_extra) +{ + cairo_status_t status; + cairo_image_surface_t *image; + + *x_offset = *y_offset = 0; + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SURFACE: { + cairo_surface_t *surf = ((cairo_surface_pattern_t *) pattern)->surface; + + if (surf->type == CAIRO_SURFACE_TYPE_RECORDING) { + if (surf->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { + cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) surf; + + *width = sub->extents.width; + *height = sub->extents.height; + } else { + cairo_surface_t *free_me = NULL; + cairo_recording_surface_t *recording_surface; + cairo_box_t bbox; + cairo_rectangle_int_t extents; + + recording_surface = (cairo_recording_surface_t *) surf; + if (_cairo_surface_is_snapshot (&recording_surface->base)) { + free_me = _cairo_surface_snapshot_get_target (&recording_surface->base); + recording_surface = (cairo_recording_surface_t *) free_me; + } - _cairo_output_stream_printf (surface->stream, "showpage\n"); + status = _cairo_recording_surface_get_bbox (recording_surface, &bbox, NULL); + cairo_surface_destroy (free_me); + if (unlikely (status)) + return status; + _cairo_box_round_to_rectangle (&bbox, &extents); + *width = extents.width; + *height = extents.height; + } + *source_surface = surf; + + return CAIRO_STATUS_SUCCESS; + } else { + status = _cairo_surface_acquire_source_image (surf, &image, image_extra); + if (unlikely (status)) + return status; + } + } break; + + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: { + cairo_surface_t *surf; + cairo_box_t box; + cairo_rectangle_int_t rect; + + /* get the operation extents in pattern space */ + _cairo_box_from_rectangle (&box, extents); + _cairo_matrix_transform_bounding_box_fixed (&pattern->matrix, &box, NULL); + _cairo_box_round_to_rectangle (&box, &rect); + surf = _cairo_raster_source_pattern_acquire (pattern, &surface->base, &rect); + if (!surf) + return CAIRO_INT_STATUS_UNSUPPORTED; + assert (cairo_surface_get_type (surf) == CAIRO_SURFACE_TYPE_IMAGE); + image = (cairo_image_surface_t *) surf; + } break; + + case CAIRO_PATTERN_TYPE_SOLID: + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + default: + ASSERT_NOT_REACHED; + break; + } + + *width = image->width; + *height = image->height; + *source_surface = &image->base; return CAIRO_STATUS_SUCCESS; } -static cairo_bool_t -color_is_gray (double red, double green, double blue) +static void +_cairo_ps_surface_release_source_surface_from_pattern (cairo_ps_surface_t *surface, + const cairo_pattern_t *pattern, + cairo_surface_t *source, + void *image_extra) { - const double epsilon = 0.00001; + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SURFACE: { + cairo_surface_pattern_t *surf_pat = (cairo_surface_pattern_t *) pattern; + if (surf_pat->surface->type != CAIRO_SURFACE_TYPE_RECORDING) { + cairo_image_surface_t *image = (cairo_image_surface_t *) source; + _cairo_surface_release_source_image (surf_pat->surface, image, image_extra); + } + } break; - return (fabs (red - green) < epsilon && - fabs (red - blue) < epsilon); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + _cairo_raster_source_pattern_release (pattern, source); + break; + + case CAIRO_PATTERN_TYPE_SOLID: + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + default: + + ASSERT_NOT_REACHED; + break; + } +} + +/** + * _cairo_ps_surface_create_padded_image_from_image: + * @surface: the ps surface + * @source: The source image + * @extents: extents of the operation that is using this source + * @width: returns width of padded image + * @height: returns height of padded image + * @x_offset: returns x offset of padded image + * @y_offset: returns y offset of padded image + * @image: returns the padded image or NULL if padding not required to fill @extents + * + * Creates a padded image if the source image does not fill the extents. + **/ +static cairo_status_t +_cairo_ps_surface_create_padded_image_from_image (cairo_ps_surface_t *surface, + cairo_image_surface_t *source, + const cairo_matrix_t *source_matrix, + const cairo_rectangle_int_t *extents, + int *width, + int *height, + double *x_offset, + double *y_offset, + cairo_image_surface_t **image) +{ + cairo_box_t box; + cairo_rectangle_int_t rect; + cairo_surface_t *pad_image; + cairo_surface_pattern_t pad_pattern; + int w, h; + cairo_int_status_t status; + + /* get the operation extents in pattern space */ + _cairo_box_from_rectangle (&box, extents); + _cairo_matrix_transform_bounding_box_fixed (source_matrix, &box, NULL); + _cairo_box_round_to_rectangle (&box, &rect); + + /* Check if image needs padding to fill extents. */ + w = source->width; + h = source->height; + if (_cairo_fixed_integer_ceil(box.p1.x) < 0 || + _cairo_fixed_integer_ceil(box.p1.y) < 0 || + _cairo_fixed_integer_floor(box.p2.y) > w || + _cairo_fixed_integer_floor(box.p2.y) > h) + { + pad_image = + _cairo_image_surface_create_with_pixman_format (NULL, + source->pixman_format, + rect.width, rect.height, + 0); + if (pad_image->status) + return pad_image->status; + + _cairo_pattern_init_for_surface (&pad_pattern, &source->base); + cairo_matrix_init_translate (&pad_pattern.base.matrix, rect.x, rect.y); + pad_pattern.base.extend = CAIRO_EXTEND_PAD; + status = _cairo_surface_paint (pad_image, + CAIRO_OPERATOR_SOURCE, + &pad_pattern.base, + NULL); + _cairo_pattern_fini (&pad_pattern.base); + *image = (cairo_image_surface_t *) pad_image; + *width = rect.width; + *height = rect.height; + *x_offset = rect.x; + *y_offset = rect.y; + } else { + *image = NULL; + status = CAIRO_STATUS_SUCCESS; + } + + return status; } static cairo_int_status_t -_cairo_ps_surface_analyze_surface_pattern_transparency (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern) +_cairo_ps_surface_analyze_surface_pattern_transparency (cairo_ps_surface_t *surface, + const cairo_pattern_t *pattern, + const cairo_rectangle_int_t *extents) { - cairo_image_surface_t *image; - void *image_extra; + int width, height; + double x_offset, y_offset; + cairo_surface_t *source; + cairo_image_surface_t *image; + void *image_extra; cairo_int_status_t status; cairo_image_transparency_t transparency; - status = _cairo_surface_acquire_source_image (pattern->surface, - &image, - &image_extra); + status = _cairo_ps_surface_acquire_source_surface_from_pattern (surface, + pattern, + extents, + &width, + &height, + &x_offset, + &y_offset, + &source, + &image_extra); if (unlikely (status)) return status; + image = (cairo_image_surface_t *) source; if (image->base.status) return image->base.status; @@ -1709,7 +1912,7 @@ _cairo_ps_surface_analyze_surface_pattern_transparency (cairo_ps_surface_t ASSERT_NOT_REACHED; } - _cairo_surface_release_source_image (pattern->surface, image, image_extra); + _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source, image_extra); return status; } @@ -1770,6 +1973,9 @@ pattern_supported (cairo_ps_surface_t *surface, const cairo_pattern_t *pattern) case CAIRO_PATTERN_TYPE_SURFACE: return surface_pattern_supported ((cairo_surface_pattern_t *) pattern); + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return TRUE; + default: ASSERT_NOT_REACHED; return FALSE; @@ -1777,7 +1983,9 @@ pattern_supported (cairo_ps_surface_t *surface, const cairo_pattern_t *pattern) } static cairo_bool_t -mask_supported (cairo_ps_surface_t *surface, const cairo_pattern_t *mask) +mask_supported (cairo_ps_surface_t *surface, + const cairo_pattern_t *mask, + const cairo_rectangle_int_t *extents) { if (surface->ps_level == CAIRO_PS_LEVEL_2) return FALSE; @@ -1786,7 +1994,7 @@ mask_supported (cairo_ps_surface_t *surface, const cairo_pattern_t *mask) cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) mask; if (surface_pattern->surface->type == CAIRO_SURFACE_TYPE_IMAGE) { /* check if mask if opaque or bilevel alpha */ - if (_cairo_ps_surface_analyze_surface_pattern_transparency (surface, surface_pattern) == CAIRO_INT_STATUS_SUCCESS) { + if (_cairo_ps_surface_analyze_surface_pattern_transparency (surface, mask, extents) == CAIRO_INT_STATUS_SUCCESS) { surface->ps_level_used = CAIRO_PS_LEVEL_3; return TRUE; } @@ -1818,7 +2026,7 @@ _cairo_ps_surface_analyze_operation (cairo_ps_surface_t *surface, return CAIRO_INT_STATUS_UNSUPPORTED; /* Mask is only supported when the mask is an image with opaque or bilevel alpha. */ - if (mask && !mask_supported (surface, mask)) + if (mask && !mask_supported (surface, mask, extents)) return CAIRO_INT_STATUS_UNSUPPORTED; if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { @@ -1848,12 +2056,8 @@ _cairo_ps_surface_analyze_operation (cairo_ps_surface_t *surface, * render stage and we blend the transparency into the white * background to convert the pattern to opaque. */ - if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { - cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern; - - return _cairo_ps_surface_analyze_surface_pattern_transparency (surface, - surface_pattern); - } + if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE || pattern->type == CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return _cairo_ps_surface_analyze_surface_pattern_transparency (surface, pattern, extents); /* Patterns whose drawn part is opaque are directly supported; those whose drawn part is partially transparent can be @@ -2152,7 +2356,7 @@ _cairo_ps_surface_emit_base85_string (cairo_ps_surface_t *surface, static cairo_status_t _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface, - cairo_image_surface_t *image, + cairo_image_surface_t *image_surf, cairo_operator_t op, cairo_filter_t filter, cairo_bool_t stencil_mask) @@ -2160,7 +2364,7 @@ _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface, cairo_status_t status; unsigned char *data; unsigned long data_size; - cairo_image_surface_t *ps_image = image; + cairo_image_surface_t *ps_image; int x, y, i, a; cairo_image_transparency_t transparency; cairo_bool_t use_mask; @@ -2171,9 +2375,38 @@ _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface, const char *interpolate; cairo_ps_compress_t compress; const char *compress_filter; + cairo_image_surface_t *image; - if (image->base.status) - return image->base.status; + if (image_surf->base.status) + return image_surf->base.status; + + image = image_surf; + if (image->format != CAIRO_FORMAT_RGB24 && + image->format != CAIRO_FORMAT_ARGB32 && + image->format != CAIRO_FORMAT_A8 && + image->format != CAIRO_FORMAT_A1) + { + cairo_surface_t *surf; + cairo_surface_pattern_t pattern; + + surf = _cairo_image_surface_create_with_content (cairo_surface_get_content (&image_surf->base), + image_surf->width, + image_surf->height); + image = (cairo_image_surface_t *) surf; + if (surf->status) { + status = surf->status; + goto bail0; + } + + _cairo_pattern_init_for_surface (&pattern, &image_surf->base); + status = _cairo_surface_paint (surf, + CAIRO_OPERATOR_SOURCE, &pattern.base, + NULL); + _cairo_pattern_fini (&pattern.base); + if (unlikely (status)) + goto bail0; + } + ps_image = image; switch (filter) { default: @@ -2496,6 +2729,10 @@ bail1: if (!use_mask && ps_image != image) cairo_surface_destroy (&ps_image->base); +bail0: + if (image != image_surf) + cairo_surface_destroy (&image->base); + return status; } @@ -2509,6 +2746,8 @@ _cairo_ps_surface_emit_jpeg_image (cairo_ps_surface_t *surface, const unsigned char *mime_data; unsigned long mime_data_length; cairo_image_info_t info; + const char *colorspace; + const char *decode; cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JPEG, &mime_data, &mime_data_length); @@ -2521,8 +2760,22 @@ _cairo_ps_surface_emit_jpeg_image (cairo_ps_surface_t *surface, if (unlikely (status)) return status; - if (info.num_components != 1 && info.num_components != 3) - return CAIRO_INT_STATUS_UNSUPPORTED; + switch (info.num_components) { + case 1: + colorspace = "/DeviceGray"; + decode = "0 1"; + break; + case 3: + colorspace = "/DeviceRGB"; + decode = "0 1 0 1 0 1"; + break; + case 4: + colorspace = "/DeviceCMYK"; + decode = "0 1 0 1 0 1 0 1"; + break; + default: + return CAIRO_INT_STATUS_UNSUPPORTED; + } if (surface->use_string_datasource) { /* Emit the image data as a base85-encoded string which will @@ -2545,18 +2798,18 @@ _cairo_ps_surface_emit_jpeg_image (cairo_ps_surface_t *surface, } _cairo_output_stream_printf (surface->stream, - "/%s setcolorspace\n" + "%s setcolorspace\n" "8 dict dup begin\n" " /ImageType 1 def\n" " /Width %d def\n" " /Height %d def\n" " /BitsPerComponent %d def\n" " /Decode [ %s ] def\n", - info.num_components == 1 ? "DeviceGray" : "DeviceRGB", + colorspace, info.width, info.height, info.bits_per_component, - info.num_components == 1 ? "0 1" : "0 1 0 1 0 1"); + decode); if (surface->use_string_datasource) { _cairo_output_stream_printf (surface->stream, @@ -2598,6 +2851,7 @@ _cairo_ps_surface_emit_recording_surface (cairo_ps_surface_t *surface, cairo_matrix_t old_cairo_to_ps; cairo_content_t old_content; cairo_rectangle_int_t old_page_bbox; + cairo_surface_t *free_me = NULL; cairo_surface_clipper_t old_clipper; cairo_box_t bbox; cairo_int_status_t status; @@ -2612,14 +2866,14 @@ _cairo_ps_surface_emit_recording_surface (cairo_ps_surface_t *surface, _cairo_ps_surface_clipper_intersect_clip_path); if (_cairo_surface_is_snapshot (recording_surface)) - recording_surface = _cairo_surface_snapshot_get_target (recording_surface); + free_me = recording_surface = _cairo_surface_snapshot_get_target (recording_surface); status = _cairo_recording_surface_get_bbox ((cairo_recording_surface_t *) recording_surface, &bbox, NULL); if (unlikely (status)) - return status; + goto err; #if DEBUG_PS _cairo_output_stream_printf (surface->stream, @@ -2657,11 +2911,11 @@ _cairo_ps_surface_emit_recording_surface (cairo_ps_surface_t *surface, CAIRO_RECORDING_REGION_NATIVE); assert (status != CAIRO_INT_STATUS_UNSUPPORTED); if (unlikely (status)) - return status; + goto err; status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) - return status; + goto err; _cairo_output_stream_printf (surface->stream, " Q\n"); @@ -2678,7 +2932,9 @@ _cairo_ps_surface_emit_recording_surface (cairo_ps_surface_t *surface, _cairo_pdf_operators_set_cairo_to_pdf_matrix (&surface->pdf_operators, &surface->cairo_to_ps); - return CAIRO_STATUS_SUCCESS; +err: + cairo_surface_destroy (free_me); + return status; } static cairo_int_status_t @@ -2691,6 +2947,7 @@ _cairo_ps_surface_emit_recording_subsurface (cairo_ps_surface_t *surface, cairo_content_t old_content; cairo_rectangle_int_t old_page_bbox; cairo_surface_clipper_t old_clipper; + cairo_surface_t *free_me = NULL; cairo_int_status_t status; old_content = surface->content; @@ -2721,7 +2978,7 @@ _cairo_ps_surface_emit_recording_subsurface (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, " q\n"); if (_cairo_surface_is_snapshot (recording_surface)) - recording_surface = _cairo_surface_snapshot_get_target (recording_surface); + free_me = recording_surface = _cairo_surface_snapshot_get_target (recording_surface); if (recording_surface->content == CAIRO_CONTENT_COLOR) { surface->content = CAIRO_CONTENT_COLOR; @@ -2739,11 +2996,11 @@ _cairo_ps_surface_emit_recording_subsurface (cairo_ps_surface_t *surface, CAIRO_RECORDING_REGION_NATIVE); assert (status != CAIRO_INT_STATUS_UNSUPPORTED); if (unlikely (status)) - return status; + goto err; status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) - return status; + goto err; _cairo_output_stream_printf (surface->stream, " Q\n"); @@ -2760,7 +3017,9 @@ _cairo_ps_surface_emit_recording_subsurface (cairo_ps_surface_t *surface, _cairo_pdf_operators_set_cairo_to_pdf_matrix (&surface->pdf_operators, &surface->cairo_to_ps); - return CAIRO_STATUS_SUCCESS; +err: + cairo_surface_destroy (free_me); + return status; } static void @@ -2806,109 +3065,9 @@ _cairo_ps_surface_emit_solid_pattern (cairo_ps_surface_t *surface, } static cairo_status_t -_cairo_ps_surface_acquire_surface (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern, - cairo_rectangle_int_t *extents, - int *width, - int *height, - int *origin_x, - int *origin_y) -{ - cairo_status_t status; - cairo_surface_t *pad_image; - int x = 0; - int y = 0; - - surface->acquired_image = NULL; - surface->image = NULL; - - if (pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { - if (pattern->surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { - cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) pattern->surface; - - *width = sub->extents.width; - *height = sub->extents.height; - } else { - cairo_recording_surface_t *recording_surface; - cairo_box_t bbox; - cairo_rectangle_int_t extents; - - recording_surface = (cairo_recording_surface_t *) pattern->surface; - if (_cairo_surface_is_snapshot (&recording_surface->base)) - recording_surface = (cairo_recording_surface_t *) - _cairo_surface_snapshot_get_target (&recording_surface->base); - - status = _cairo_recording_surface_get_bbox (recording_surface, &bbox, NULL); - if (unlikely (status)) - return status; - - _cairo_box_round_to_rectangle (&bbox, &extents); - *width = extents.width; - *height = extents.height; - } - return CAIRO_STATUS_SUCCESS; - } else { - status = _cairo_surface_acquire_source_image (pattern->surface, - &surface->acquired_image, - &surface->image_extra); - if (unlikely (status)) - return status; - - pad_image = &surface->acquired_image->base; - if (cairo_pattern_get_extend (&pattern->base) == CAIRO_EXTEND_PAD) { - cairo_box_t box; - cairo_rectangle_int_t rect; - cairo_surface_pattern_t pad_pattern; - - /* get the operation extents in pattern space */ - _cairo_box_from_rectangle (&box, extents); - _cairo_matrix_transform_bounding_box_fixed (&pattern->base.matrix, &box, NULL); - _cairo_box_round_to_rectangle (&box, &rect); - x = -rect.x; - y = -rect.y; - - pad_image = - _cairo_image_surface_create_with_pixman_format (NULL, - surface->acquired_image->pixman_format, - rect.width, rect.height, - 0); - if (pad_image->status) { - status = pad_image->status; - goto BAIL; - } - - _cairo_pattern_init_for_surface (&pad_pattern, &surface->acquired_image->base); - cairo_matrix_init_translate (&pad_pattern.base.matrix, -x, -y); - pad_pattern.base.extend = CAIRO_EXTEND_PAD; - status = _cairo_surface_paint (pad_image, - CAIRO_OPERATOR_SOURCE, - &pad_pattern.base, - NULL); - _cairo_pattern_fini (&pad_pattern.base); - if (unlikely (status)) { - if (pad_image != &surface->acquired_image->base) - cairo_surface_destroy (pad_image); - - goto BAIL; - } - } - - surface->image = (cairo_image_surface_t *) pad_image; - *width = surface->image->width; - *height = surface->image->height; - *origin_x = x; - *origin_y = y; - return CAIRO_STATUS_SUCCESS; - } - -BAIL: - _cairo_ps_surface_release_surface (surface, pattern); - return status; -} - -static cairo_status_t _cairo_ps_surface_emit_surface (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern, + cairo_pattern_t *source_pattern, + cairo_surface_t *source_surface, cairo_operator_t op, int width, int height, @@ -2916,46 +3075,29 @@ _cairo_ps_surface_emit_surface (cairo_ps_surface_t *surface, { cairo_int_status_t status; - if (pattern->surface->type == CAIRO_SURFACE_TYPE_RECORDING) { - cairo_surface_t *source = pattern->surface; - - if (source->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { - cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) source; + if (source_surface->type == CAIRO_SURFACE_TYPE_RECORDING) { + if (source_surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { + cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) source_surface; status = _cairo_ps_surface_emit_recording_subsurface (surface, sub->target, &sub->extents); } else { - status = _cairo_ps_surface_emit_recording_surface (surface, source); + status = _cairo_ps_surface_emit_recording_surface (surface, source_surface); } } else { - if (pattern->base.extend != CAIRO_EXTEND_PAD) { - status = _cairo_ps_surface_emit_jpeg_image (surface, pattern->surface, + cairo_image_surface_t *image = (cairo_image_surface_t *) source_surface; + if (source_pattern->extend != CAIRO_EXTEND_PAD) { + status = _cairo_ps_surface_emit_jpeg_image (surface, source_surface, width, height); if (status != CAIRO_INT_STATUS_UNSUPPORTED) return status; } - status = _cairo_ps_surface_emit_image (surface, surface->image, - op, pattern->base.filter, stencil_mask); + status = _cairo_ps_surface_emit_image (surface, image, + op, source_pattern->filter, stencil_mask); } return status; } -static void -_cairo_ps_surface_release_surface (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern) -{ - if (surface->image != surface->acquired_image) - cairo_surface_destroy (&surface->image->base); - - if (pattern->surface->type != CAIRO_SURFACE_TYPE_RECORDING) { - _cairo_surface_release_source_image (pattern->surface, - surface->acquired_image, - surface->image_extra); - } - - surface->acquired_image = NULL; - surface->image = NULL; -} static void _path_fixed_init_rectangle (cairo_path_fixed_t *path, @@ -2987,51 +3129,83 @@ _path_fixed_init_rectangle (cairo_path_fixed_t *path, } static cairo_status_t -_cairo_ps_surface_paint_surface (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern, - cairo_rectangle_int_t *extents, - cairo_operator_t op, - cairo_bool_t stencil_mask) +_cairo_ps_surface_paint_surface (cairo_ps_surface_t *surface, + cairo_pattern_t *pattern, + cairo_rectangle_int_t *extents, + cairo_operator_t op, + cairo_bool_t stencil_mask) { cairo_status_t status; int width, height; cairo_matrix_t cairo_p2d, ps_p2d; cairo_path_fixed_t path; - int origin_x = 0; - int origin_y = 0; + double x_offset, y_offset; + cairo_surface_t *source; + cairo_image_surface_t *image = NULL; + void *image_extra; status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) return status; - status = _cairo_ps_surface_acquire_surface (surface, - pattern, - extents, - &width, &height, - &origin_x, &origin_y); + status = _cairo_ps_surface_acquire_source_surface_from_pattern (surface, + pattern, + extents, + &width, &height, + &x_offset, &y_offset, + &source, + &image_extra); if (unlikely (status)) return status; + if (pattern->extend == CAIRO_EXTEND_PAD) { + cairo_image_surface_t *img; + + assert (source->type == CAIRO_SURFACE_TYPE_IMAGE); + img = (cairo_image_surface_t *) source; + status = _cairo_ps_surface_create_padded_image_from_image (surface, + img, + &pattern->matrix, + extents, + &width, &height, + &x_offset, &y_offset, + &image); + if (unlikely (status)) + goto release_source; + } + _path_fixed_init_rectangle (&path, extents); status = _cairo_pdf_operators_clip (&surface->pdf_operators, &path, CAIRO_FILL_RULE_WINDING); _cairo_path_fixed_fini (&path); if (unlikely (status)) - return status; + goto release_source; - cairo_p2d = pattern->base.matrix; + cairo_p2d = pattern->matrix; if (surface->paginated_mode == CAIRO_PAGINATED_MODE_FALLBACK) { - double scale = cairo_p2d.xx; + double x_scale = cairo_p2d.xx; + double y_scale = cairo_p2d.yy; _cairo_output_stream_printf (surface->stream, - "%% Fallback Image: x=%f y=%f w=%d h=%d res=%fppi size=%ld\n", - -cairo_p2d.x0/scale, - -cairo_p2d.y0/scale, - (int)(width/scale), - (int)(height/scale), - scale*72, + "%% Fallback Image: x=%f y=%f w=%d h=%d ", + -cairo_p2d.x0/x_scale, + -cairo_p2d.y0/y_scale, + (int)(width/x_scale), + (int)(height/y_scale)); + if (x_scale == y_scale) { + _cairo_output_stream_printf (surface->stream, + "res=%fppi ", + x_scale*72); + } else { + _cairo_output_stream_printf (surface->stream, + "res=%fx%fppi ", + x_scale*72, + y_scale*72); + } + _cairo_output_stream_printf (surface->stream, + "size=%ld\n", (long)width*height*3); } else { if (op == CAIRO_OPERATOR_SOURCE) { @@ -3049,7 +3223,7 @@ _cairo_ps_surface_paint_surface (cairo_ps_surface_t *surface, ps_p2d = surface->cairo_to_ps; cairo_matrix_multiply (&ps_p2d, &cairo_p2d, &ps_p2d); - cairo_matrix_translate (&ps_p2d, -origin_x, -origin_y); + cairo_matrix_translate (&ps_p2d, x_offset, y_offset); cairo_matrix_translate (&ps_p2d, 0.0, height); cairo_matrix_scale (&ps_p2d, 1.0, -1.0); @@ -3061,15 +3235,25 @@ _cairo_ps_surface_paint_surface (cairo_ps_surface_t *surface, ps_p2d.x0, ps_p2d.y0); } - status = _cairo_ps_surface_emit_surface (surface, pattern, op, width, height, stencil_mask); - _cairo_ps_surface_release_surface (surface, pattern); + status = _cairo_ps_surface_emit_surface (surface, + pattern, + image ? &image->base : source, + op, + width, height, + stencil_mask); + + release_source: + if (image) + cairo_surface_destroy (&image->base); + + _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source, image_extra); return status; } static cairo_status_t _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, - cairo_surface_pattern_t *pattern, + cairo_pattern_t *pattern, cairo_rectangle_int_t *extents, cairo_operator_t op) { @@ -3079,23 +3263,45 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, double xstep, ystep; cairo_matrix_t cairo_p2d, ps_p2d; cairo_bool_t old_use_string_datasource; - int origin_x = 0; - int origin_y = 0; + double x_offset, y_offset; + cairo_surface_t *source; + cairo_image_surface_t *image = NULL; + void *image_extra; - cairo_p2d = pattern->base.matrix; + cairo_p2d = pattern->matrix; status = cairo_matrix_invert (&cairo_p2d); /* cairo_pattern_set_matrix ensures the matrix is invertible */ assert (status == CAIRO_STATUS_SUCCESS); - status = _cairo_ps_surface_acquire_surface (surface, - pattern, - extents, - &pattern_width, &pattern_height, - &origin_x, &origin_y); + status = _cairo_ps_surface_acquire_source_surface_from_pattern (surface, + pattern, + extents, + &pattern_width, &pattern_height, + &x_offset, &y_offset, + &source, + &image_extra); if (unlikely (status)) return status; - switch (pattern->base.extend) { + if (pattern->extend == CAIRO_EXTEND_PAD) { + cairo_image_surface_t *img; + + assert (source->type == CAIRO_SURFACE_TYPE_IMAGE); + img = (cairo_image_surface_t *) source; + status = _cairo_ps_surface_create_padded_image_from_image (surface, + img, + &pattern->matrix, + extents, + &pattern_width, &pattern_height, + &x_offset, &y_offset, + &image); + if (unlikely (status)) + goto release_source; + } + if (unlikely (status)) + goto release_source; + + switch (pattern->extend) { case CAIRO_EXTEND_PAD: case CAIRO_EXTEND_NONE: { @@ -3113,7 +3319,7 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, */ double x1 = 0.0, y1 = 0.0; double x2 = surface->width, y2 = surface->height; - _cairo_matrix_transform_bounding_box (&pattern->base.matrix, + _cairo_matrix_transform_bounding_box (&pattern->matrix, &x1, &y1, &x2, &y2, NULL); @@ -3152,10 +3358,13 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, surface->content == CAIRO_CONTENT_COLOR ? 0 : 1, xstep, ystep); } - status = _cairo_ps_surface_emit_surface (surface, pattern, op, + status = _cairo_ps_surface_emit_surface (surface, + pattern, + image ? &image->base : source, + op, pattern_width, pattern_height, FALSE); if (unlikely (status)) - return status; + goto release_source; surface->use_string_datasource = old_use_string_datasource; _cairo_output_stream_printf (surface->stream, @@ -3169,7 +3378,7 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, " /XStep %f /YStep %f\n", xstep, ystep); - if (pattern->base.extend == CAIRO_EXTEND_REFLECT) { + if (pattern->extend == CAIRO_EXTEND_REFLECT) { _cairo_output_stream_printf (surface->stream, " /BBox [0 0 %d %d]\n" " /PaintProc {\n" @@ -3200,7 +3409,7 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, ">>\n"); - cairo_p2d = pattern->base.matrix; + cairo_p2d = pattern->matrix; status = cairo_matrix_invert (&cairo_p2d); /* cairo_pattern_set_matrix ensures the matrix is invertible */ assert (status == CAIRO_STATUS_SUCCESS); @@ -3220,7 +3429,13 @@ _cairo_ps_surface_emit_surface_pattern (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, "makepattern setpattern\n"); - return CAIRO_STATUS_SUCCESS; + release_source: + if (image) + cairo_surface_destroy (&image->base); + + _cairo_ps_surface_release_source_surface_from_pattern (surface, pattern, source, image_extra); + + return status; } typedef struct _cairo_ps_color_stop { @@ -3435,7 +3650,8 @@ _cairo_ps_surface_emit_repeating_function (cairo_ps_surface_t *surface, static cairo_status_t _cairo_ps_surface_emit_gradient (cairo_ps_surface_t *surface, - cairo_gradient_pattern_t *pattern) + cairo_gradient_pattern_t *pattern, + cairo_bool_t is_ps_pattern) { cairo_matrix_t pat_to_ps; cairo_circle_double_t start, end; @@ -3531,10 +3747,14 @@ _cairo_ps_surface_emit_gradient (cairo_ps_surface_t *surface, domain[1] = 1.0; } - if (pattern->base.type == CAIRO_PATTERN_TYPE_LINEAR) { + if (is_ps_pattern) { _cairo_output_stream_printf (surface->stream, "<< /PatternType 2\n" - " /Shading\n" + " /Shading\n"); + } + + if (pattern->base.type == CAIRO_PATTERN_TYPE_LINEAR) { + _cairo_output_stream_printf (surface->stream, " << /ShadingType 2\n" " /ColorSpace /DeviceRGB\n" " /Coords [ %f %f %f %f ]\n", @@ -3542,8 +3762,6 @@ _cairo_ps_surface_emit_gradient (cairo_ps_surface_t *surface, end.center.x, end.center.y); } else { _cairo_output_stream_printf (surface->stream, - "<< /PatternType 2\n" - " /Shading\n" " << /ShadingType 3\n" " /ColorSpace /DeviceRGB\n" " /Coords [ %f %f %f %f %f %f ]\n", @@ -3553,10 +3771,6 @@ _cairo_ps_surface_emit_gradient (cairo_ps_surface_t *surface, MAX (end.radius, 0)); } - _cairo_output_stream_printf (surface->stream, - " /Domain [ %f %f ]\n", - domain[0], domain[1]); - if (pattern->base.extend != CAIRO_EXTEND_NONE) { _cairo_output_stream_printf (surface->stream, " /Extend [ true true ]\n"); @@ -3565,22 +3779,44 @@ _cairo_ps_surface_emit_gradient (cairo_ps_surface_t *surface, " /Extend [ false false ]\n"); } + if (domain[0] == 0.0 && domain[1] == 1.0) { + _cairo_output_stream_printf (surface->stream, + " /Function CairoFunction\n"); + } else { + _cairo_output_stream_printf (surface->stream, + " /Function <<\n" + " /FunctionType 3\n" + " /Domain [ 0 1 ]\n" + " /Bounds [ ]\n" + " /Encode [ %f %f ]\n" + " /Functions [ CairoFunction ]\n" + " >>\n", + domain[0], domain[1]); + } + _cairo_output_stream_printf (surface->stream, - " /Function CairoFunction\n" - " >>\n" - ">>\n" - "[ %f %f %f %f %f %f ]\n" - "makepattern setpattern\n", - pat_to_ps.xx, pat_to_ps.yx, - pat_to_ps.xy, pat_to_ps.yy, - pat_to_ps.x0, pat_to_ps.y0); + " >>\n"); + + if (is_ps_pattern) { + _cairo_output_stream_printf (surface->stream, + ">>\n" + "[ %f %f %f %f %f %f ]\n" + "makepattern setpattern\n", + pat_to_ps.xx, pat_to_ps.yx, + pat_to_ps.xy, pat_to_ps.yy, + pat_to_ps.x0, pat_to_ps.y0); + } else { + _cairo_output_stream_printf (surface->stream, + "shfill\n"); + } return status; } static cairo_status_t _cairo_ps_surface_emit_mesh_pattern (cairo_ps_surface_t *surface, - cairo_mesh_pattern_t *pattern) + cairo_mesh_pattern_t *pattern, + cairo_bool_t is_ps_pattern) { cairo_matrix_t pat_to_ps; cairo_status_t status; @@ -3615,9 +3851,15 @@ _cairo_ps_surface_emit_mesh_pattern (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, "\n" - "/CairoData exch def\n" - "<< /PatternType 2\n" - " /Shading\n" + "/CairoData exch def\n"); + + if (is_ps_pattern) { + _cairo_output_stream_printf (surface->stream, + "<< /PatternType 2\n" + " /Shading\n"); + } + + _cairo_output_stream_printf (surface->stream, " << /ShadingType %d\n" " /ColorSpace /DeviceRGB\n" " /DataSource CairoData\n" @@ -3635,17 +3877,23 @@ _cairo_ps_surface_emit_mesh_pattern (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, "]\n" - " >>\n" - ">>\n"); + " >>\n"); + + if (is_ps_pattern) { + _cairo_output_stream_printf (surface->stream, + ">>\n" + "[ %f %f %f %f %f %f ]\n", + pat_to_ps.xx, pat_to_ps.yx, + pat_to_ps.xy, pat_to_ps.yy, + pat_to_ps.x0, pat_to_ps.y0); + _cairo_output_stream_printf (surface->stream, + "makepattern\n" + "setpattern\n"); + } else { + _cairo_output_stream_printf (surface->stream, "shfill\n"); + } _cairo_output_stream_printf (surface->stream, - "[ %f %f %f %f %f %f ]\n", - pat_to_ps.xx, pat_to_ps.yx, - pat_to_ps.xy, pat_to_ps.yy, - pat_to_ps.x0, pat_to_ps.y0); - _cairo_output_stream_printf (surface->stream, - "makepattern\n" - "setpattern\n" "currentdict /CairoData undef\n"); _cairo_pdf_shading_fini (&shading); @@ -3692,8 +3940,9 @@ _cairo_ps_surface_emit_pattern (cairo_ps_surface_t *surface, break; case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: status = _cairo_ps_surface_emit_surface_pattern (surface, - (cairo_surface_pattern_t *) pattern, + (cairo_pattern_t *)pattern, extents, op); if (unlikely (status)) @@ -3703,14 +3952,16 @@ _cairo_ps_surface_emit_pattern (cairo_ps_surface_t *surface, case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: status = _cairo_ps_surface_emit_gradient (surface, - (cairo_gradient_pattern_t *) pattern); + (cairo_gradient_pattern_t *) pattern, + TRUE); if (unlikely (status)) return status; break; case CAIRO_PATTERN_TYPE_MESH: status = _cairo_ps_surface_emit_mesh_pattern (surface, - (cairo_mesh_pattern_t *) pattern); + (cairo_mesh_pattern_t *) pattern, + TRUE); if (unlikely (status)) return status; break; @@ -3719,6 +3970,98 @@ _cairo_ps_surface_emit_pattern (cairo_ps_surface_t *surface, return CAIRO_STATUS_SUCCESS; } +static cairo_status_t +_cairo_ps_surface_paint_gradient (cairo_ps_surface_t *surface, + const cairo_pattern_t *source, + const cairo_rectangle_int_t *extents) +{ + cairo_matrix_t pat_to_ps; + cairo_status_t status; + + pat_to_ps = source->matrix; + status = cairo_matrix_invert (&pat_to_ps); + /* cairo_pattern_set_matrix ensures the matrix is invertible */ + assert (status == CAIRO_STATUS_SUCCESS); + cairo_matrix_multiply (&pat_to_ps, &pat_to_ps, &surface->cairo_to_ps); + + if (! _cairo_matrix_is_identity (&pat_to_ps)) { + _cairo_output_stream_printf (surface->stream, + "[%f %f %f %f %f %f] concat\n", + pat_to_ps.xx, pat_to_ps.yx, + pat_to_ps.xy, pat_to_ps.yy, + pat_to_ps.x0, pat_to_ps.y0); + } + + if (source->type == CAIRO_PATTERN_TYPE_MESH) { + status = _cairo_ps_surface_emit_mesh_pattern (surface, + (cairo_mesh_pattern_t *)source, + FALSE); + if (unlikely (status)) + return status; + } else { + status = _cairo_ps_surface_emit_gradient (surface, + (cairo_gradient_pattern_t *)source, + FALSE); + if (unlikely (status)) + return status; + } + + return status; +} + +static cairo_status_t +_cairo_ps_surface_paint_pattern (cairo_ps_surface_t *surface, + const cairo_pattern_t *source, + cairo_rectangle_int_t *extents, + cairo_operator_t op, + cairo_bool_t stencil_mask) +{ + switch (source->type) { + case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return _cairo_ps_surface_paint_surface (surface, + (cairo_pattern_t *)source, + extents, + op, + stencil_mask); + + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + return _cairo_ps_surface_paint_gradient (surface, + source, + extents); + + case CAIRO_PATTERN_TYPE_SOLID: + default: + ASSERT_NOT_REACHED; + return CAIRO_STATUS_SUCCESS; + } +} + +static cairo_bool_t +_can_paint_pattern (const cairo_pattern_t *pattern) +{ + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SOLID: + return FALSE; + + case CAIRO_PATTERN_TYPE_SURFACE: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + return (pattern->extend == CAIRO_EXTEND_NONE || + pattern->extend == CAIRO_EXTEND_PAD); + + case CAIRO_PATTERN_TYPE_LINEAR: + case CAIRO_PATTERN_TYPE_RADIAL: + case CAIRO_PATTERN_TYPE_MESH: + return TRUE; + + default: + ASSERT_NOT_REACHED; + return FALSE; + } +} + static cairo_bool_t _cairo_ps_surface_get_extents (void *abstract_surface, cairo_rectangle_int_t *rectangle) @@ -3801,17 +4144,14 @@ _cairo_ps_surface_paint (void *abstract_surface, if (unlikely (status)) goto cleanup_composite; - if (source->type == CAIRO_PATTERN_TYPE_SURFACE && - (source->extend == CAIRO_EXTEND_NONE || - source->extend == CAIRO_EXTEND_PAD)) - { + if (_can_paint_pattern (source)) { status = _cairo_pdf_operators_flush (&surface->pdf_operators); if (unlikely (status)) goto cleanup_composite; _cairo_output_stream_printf (stream, "q\n"); - status = _cairo_ps_surface_paint_surface (surface, - (cairo_surface_pattern_t *) source, + status = _cairo_ps_surface_paint_pattern (surface, + source, &extents.bounded, op, FALSE); if (unlikely (status)) goto cleanup_composite; @@ -3870,8 +4210,8 @@ _cairo_ps_surface_mask (void *abstract_surface, goto cleanup_composite; _cairo_output_stream_printf (stream, "q\n"); - status = _cairo_ps_surface_paint_surface (surface, - (cairo_surface_pattern_t *) mask, + status = _cairo_ps_surface_paint_pattern (surface, + mask, &extents.bounded, op, TRUE); if (unlikely (status)) goto cleanup_composite; @@ -4013,10 +4353,7 @@ _cairo_ps_surface_fill (void *abstract_surface, if (unlikely (status)) goto cleanup_composite; - if (source->type == CAIRO_PATTERN_TYPE_SURFACE && - (source->extend == CAIRO_EXTEND_NONE || - source->extend == CAIRO_EXTEND_PAD)) - { + if (_can_paint_pattern (source)) { _cairo_output_stream_printf (surface->stream, "q\n"); status = _cairo_pdf_operators_clip (&surface->pdf_operators, @@ -4025,8 +4362,8 @@ _cairo_ps_surface_fill (void *abstract_surface, if (unlikely (status)) goto cleanup_composite; - status = _cairo_ps_surface_paint_surface (surface, - (cairo_surface_pattern_t *) source, + status = _cairo_ps_surface_paint_pattern (surface, + source, &extents.bounded, op, FALSE); if (unlikely (status)) goto cleanup_composite; @@ -4115,6 +4452,12 @@ cleanup_composite: return status; } +static const char ** +_cairo_ps_surface_get_supported_mime_types (void *abstract_surface) +{ + return _cairo_ps_supported_mime_types; +} + static void _cairo_ps_surface_set_paginated_mode (void *abstract_surface, cairo_paginated_mode_t paginated_mode) @@ -4241,6 +4584,7 @@ static const cairo_surface_backend_t cairo_ps_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ @@ -4264,6 +4608,7 @@ static const cairo_surface_backend_t cairo_ps_surface_backend = { NULL, /* show_glyphs */ _cairo_ps_surface_has_show_text_glyphs, _cairo_ps_surface_show_text_glyphs, + _cairo_ps_surface_get_supported_mime_types, }; static const cairo_paginated_surface_backend_t cairo_ps_surface_paginated_backend = { diff --git a/src/cairo-ps.h b/src/cairo-ps.h index fd1d21d..33d0e0d 100644 --- a/src/cairo-ps.h +++ b/src/cairo-ps.h @@ -49,13 +49,15 @@ CAIRO_BEGIN_DECLS /** * cairo_ps_level_t: - * @CAIRO_PS_LEVEL_2: The language level 2 of the PostScript specification. - * @CAIRO_PS_LEVEL_3: The language level 3 of the PostScript specification. + * @CAIRO_PS_LEVEL_2: The language level 2 of the PostScript specification. (Since 1.6) + * @CAIRO_PS_LEVEL_3: The language level 3 of the PostScript specification. (Since 1.6) * * #cairo_ps_level_t is used to describe the language level of the * PostScript Language Reference that a generated PostScript file will * conform to. - */ + * + * Since: 1.6 + **/ typedef enum _cairo_ps_level { CAIRO_PS_LEVEL_2, CAIRO_PS_LEVEL_3 diff --git a/src/cairo-qt-surface.cpp b/src/cairo-qt-surface.cpp index aaed90c..b75f522 100644 --- a/src/cairo-qt-surface.cpp +++ b/src/cairo-qt-surface.cpp @@ -45,6 +45,9 @@ #include "cairo-region-private.h" #include "cairo-surface-clipper-private.h" #include "cairo-types-private.h" +#include "cairo-image-surface-private.h" +#include "cairo-pattern-private.h" +#include "cairo-surface-backend-private.h" #include "cairo-ft.h" #include "cairo-qt.h" @@ -58,8 +61,7 @@ #include #include #include -#include -#include +#include #include #if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) @@ -134,9 +136,9 @@ struct cairo_qt_surface_t { */ static cairo_bool_t _qpixmaps_have_no_alpha = FALSE; -/** - ** Helper methods - **/ +/* + * Helper methods + */ static QPainter::CompositionMode _qpainter_compositionmode_from_cairo_op (cairo_operator_t op) @@ -311,7 +313,7 @@ _qmatrix_from_cairo_matrix (const cairo_matrix_t& m) return QMatrix(m.xx, m.yx, m.xy, m.yy, m.x0, m.y0); } -/** Path conversion **/ +/* Path conversion */ typedef struct _qpainter_path_transform { QPainterPath path; const cairo_matrix_t *ctm_inverse; @@ -381,7 +383,7 @@ _cairo_path_to_qpainterpath_close_path (void *closure) } static inline QPainterPath -path_to_qt (cairo_path_fixed_t *path, +path_to_qt (const cairo_path_fixed_t *path, const cairo_matrix_t *ctm_inverse = NULL) { qpainter_path_data data; @@ -403,7 +405,7 @@ path_to_qt (cairo_path_fixed_t *path, } static inline QPainterPath -path_to_qt (cairo_path_fixed_t *path, +path_to_qt (const cairo_path_fixed_t *path, cairo_fill_rule_t fill_rule, cairo_matrix_t *ctm_inverse = NULL) { @@ -416,9 +418,9 @@ path_to_qt (cairo_path_fixed_t *path, return qpath; } -/** - ** Surface backend methods - **/ +/* + * Surface backend methods + */ static cairo_surface_t * _cairo_qt_surface_create_similar (void *abstract_surface, cairo_content_t content, @@ -649,29 +651,6 @@ _cairo_qt_surface_release_dest_image (void *abstract_surface, } } -static cairo_status_t -_cairo_qt_surface_clone_similar (void *abstract_surface, - cairo_surface_t *src, - int src_x, - int src_y, - int width, - int height, - int *clone_offset_x, - int *clone_offset_y, - cairo_surface_t **clone_out) -{ - cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; - - if (src->backend == qs->base.backend) { - *clone_offset_x = 0; - *clone_offset_y = 0; - *clone_out = cairo_surface_reference (src); - return CAIRO_STATUS_SUCCESS; - } - - return (cairo_status_t) CAIRO_INT_STATUS_UNSUPPORTED; -} - static cairo_bool_t _cairo_qt_surface_get_extents (void *abstract_surface, cairo_rectangle_int_t *extents) @@ -715,7 +694,7 @@ _cairo_qt_surface_clipper_intersect_clip_path (cairo_surface_clipper_t *clipper, static void _cairo_qt_surface_set_clip_region (cairo_qt_surface_t *qs, - cairo_region_t *clip_region) + const cairo_region_t *clip_region) { _cairo_surface_clipper_reset (&qs->clipper); @@ -746,7 +725,7 @@ _cairo_qt_surface_set_clip_region (cairo_qt_surface_t *qs, static cairo_int_status_t _cairo_qt_surface_set_clip (cairo_qt_surface_t *qs, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_int_status_t status; @@ -796,9 +775,9 @@ _cairo_qt_surface_set_clip (cairo_qt_surface_t *qs, return status; } -/** - ** Brush conversion - **/ +/* + * Brush conversion + */ struct PatternToBrushConverter { PatternToBrushConverter (const cairo_pattern_t *pattern) : @@ -1103,14 +1082,14 @@ struct PatternToPenConverter { PatternToBrushConverter mBrushConverter; }; -/** - ** Core drawing operations - **/ +/* + * Core drawing operations + */ static bool _cairo_qt_fast_fill (cairo_qt_surface_t *qs, const cairo_pattern_t *source, - cairo_path_fixed_t *path = NULL, + const cairo_path_fixed_t *path = NULL, cairo_fill_rule_t fill_rule = CAIRO_FILL_RULE_WINDING, double tolerance = 0.0, cairo_antialias_t antialias = CAIRO_ANTIALIAS_NONE) @@ -1226,7 +1205,7 @@ static cairo_int_status_t _cairo_qt_surface_paint (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; cairo_int_status_t status; @@ -1261,11 +1240,11 @@ static cairo_int_status_t _cairo_qt_surface_fill (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, - cairo_path_fixed_t *path, + const cairo_path_fixed_t *path, cairo_fill_rule_t fill_rule, double tolerance, cairo_antialias_t antialias, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; @@ -1306,13 +1285,13 @@ static cairo_int_status_t _cairo_qt_surface_stroke (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, - cairo_path_fixed_t *path, + const cairo_path_fixed_t *path, const cairo_stroke_style_t *style, const cairo_matrix_t *ctm, const cairo_matrix_t *ctm_inverse, double tolerance, cairo_antialias_t antialias, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; @@ -1361,8 +1340,7 @@ _cairo_qt_surface_show_glyphs (void *abstract_surface, cairo_glyph_t *glyphs, int num_glyphs, cairo_scaled_font_t *scaled_font, - cairo_clip_t *clip, - int *remaining_glyphs) + const cairo_clip_t *clip) { #if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) || defined(QT_GLYPHS_API_BACKPORT) cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; @@ -1405,7 +1383,7 @@ _cairo_qt_surface_mask (void *abstract_surface, cairo_operator_t op, const cairo_pattern_t *source, const cairo_pattern_t *mask, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; @@ -1431,108 +1409,6 @@ _cairo_qt_surface_mask (void *abstract_surface, return CAIRO_INT_STATUS_UNSUPPORTED; } -static cairo_int_status_t -_cairo_qt_surface_composite (cairo_operator_t op, - const cairo_pattern_t *pattern, - const cairo_pattern_t *mask_pattern, - void *abstract_surface, - int src_x, - int src_y, - int mask_x, - int mask_y, - int dst_x, - int dst_y, - unsigned int width, - unsigned int height, - cairo_region_t *clip_region) -{ - cairo_qt_surface_t *qs = (cairo_qt_surface_t *) abstract_surface; - - if (mask_pattern) - return CAIRO_INT_STATUS_UNSUPPORTED; - - if (! _op_is_supported (qs, op)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - _cairo_qt_surface_set_clip_region (qs, clip_region); - - D(fprintf(stderr, "q[%p] composite op:%s src:%p [%d %d] dst [%d %d] dim [%d %d]\n", - abstract_surface, _opstr(op), (void*)pattern, - src_x, src_y, dst_x, dst_y, width, height)); - - if (pattern->type == CAIRO_PATTERN_TYPE_SOLID) { - cairo_solid_pattern_t *solid = (cairo_solid_pattern_t*) pattern; - - QColor color; - color.setRgbF(solid->color.red, - solid->color.green, - solid->color.blue, - solid->color.alpha); - - if (qs->supports_porter_duff) - qs->p->setCompositionMode (_qpainter_compositionmode_from_cairo_op (op)); - - qs->p->fillRect (dst_x, dst_y, width, height, color); - - if (qs->supports_porter_duff) - qs->p->setCompositionMode (QPainter::CompositionMode_SourceOver); - } else if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { - cairo_surface_pattern_t *spattern = (cairo_surface_pattern_t*) pattern; - cairo_surface_t *surface = spattern->surface; - - QImage *qimg = NULL; - QPixmap *qpixmap = NULL; - std::auto_ptr qimg_d; - - if (surface->type == CAIRO_SURFACE_TYPE_IMAGE) { - cairo_image_surface_t *isurf = (cairo_image_surface_t*) surface; - qimg = new QImage ((const uchar *) isurf->data, - isurf->width, - isurf->height, - isurf->stride, - _qimage_format_from_cairo_format (isurf->format)); - qimg_d.reset(qimg); - } - - if (surface->type == CAIRO_SURFACE_TYPE_QT) { - cairo_qt_surface_t *qsrc = (cairo_qt_surface_t*) surface; - - if (qsrc->image) - qimg = qsrc->image; - else if (qsrc->pixmap) - qpixmap = qsrc->pixmap; - } - - if (!qimg && !qpixmap) - return CAIRO_INT_STATUS_UNSUPPORTED; - - QMatrix savedMatrix = qs->p->worldMatrix(); - if (! _cairo_matrix_is_identity (&pattern->matrix)) { - cairo_matrix_t pm = pattern->matrix; - cairo_status_t status; - - status = cairo_matrix_invert (&pm); - assert (status == CAIRO_STATUS_SUCCESS); - qs->p->setWorldMatrix(_qmatrix_from_cairo_matrix (pm), true); - } - - if (qs->supports_porter_duff) - qs->p->setCompositionMode (_qpainter_compositionmode_from_cairo_op (op)); - - if (qimg) - qs->p->drawImage (dst_x, dst_y, *qimg, src_x, src_y, width, height); - else if (qpixmap) - qs->p->drawPixmap (dst_x, dst_y, *qpixmap, src_x, src_y, width, height); - - if (qs->supports_porter_duff) - qs->p->setCompositionMode (QPainter::CompositionMode_SourceOver); - } else { - return CAIRO_INT_STATUS_UNSUPPORTED; - } - - return CAIRO_INT_STATUS_SUCCESS; -} - static cairo_status_t _cairo_qt_surface_mark_dirty (void *abstract_surface, int x, int y, @@ -1546,55 +1422,34 @@ _cairo_qt_surface_mark_dirty (void *abstract_surface, return CAIRO_STATUS_SUCCESS; } -/** - ** Backend struct - **/ +/* + * Backend struct + */ static const cairo_surface_backend_t cairo_qt_surface_backend = { CAIRO_SURFACE_TYPE_QT, _cairo_qt_surface_finish, - - _cairo_default_context_create, - + _cairo_default_context_create, /* XXX */ _cairo_qt_surface_create_similar, NULL, /* similar image */ NULL, /* map to image */ NULL, /* unmap image */ - + _cairo_surface_default_source, _cairo_qt_surface_acquire_source_image, _cairo_qt_surface_release_source_image, - _cairo_qt_surface_acquire_dest_image, - _cairo_qt_surface_release_dest_image, - _cairo_qt_surface_clone_similar, - - _cairo_qt_surface_composite, - NULL, /* fill_rectangles */ - NULL, /* composite_trapezoids */ - NULL, /* create_span_renderer */ - NULL, /* check_span_renderer */ + NULL, /* snapshot */ NULL, /* copy_page */ NULL, /* show_page */ _cairo_qt_surface_get_extents, - NULL, /* old_show_glyphs */ NULL, /* get_font_options */ NULL, /* flush */ _cairo_qt_surface_mark_dirty, - NULL, /* scaled_font_fini */ - NULL, /* scaled_glyph_fini */ - _cairo_qt_surface_paint, _cairo_qt_surface_mask, _cairo_qt_surface_stroke, _cairo_qt_surface_fill, - _cairo_qt_surface_show_glyphs, - - NULL, /* snapshot */ - NULL, /* is_similar */ NULL, /* fill_stroke */ - NULL, /* create_solid_pattern_surface */ - NULL, /* can_repaint_solid_pattern_surface */ - NULL, /* has_show_text_glyphs */ - NULL, /* show_text_glyphs */ + _cairo_qt_surface_show_glyphs }; cairo_surface_t * diff --git a/src/cairo-quartz-font.c b/src/cairo-quartz-font.c index 53d5c35..a9bbbdc 100644 --- a/src/cairo-quartz-font.c +++ b/src/cairo-quartz-font.c @@ -53,14 +53,16 @@ * The Quartz font backend is primarily used to render text on Apple * MacOS X systems. The CGFont API is used for the internal * implementation of the font backend methods. - */ + **/ /** * CAIRO_HAS_QUARTZ_FONT: * * Defined if the Quartz font backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.6 + **/ static CFDataRef (*CGFontCopyTableForTagPtr) (CGFontRef font, uint32_t tag) = NULL; @@ -340,7 +342,7 @@ const cairo_font_face_backend_t _cairo_quartz_font_face_backend = { }; /** - * cairo_quartz_font_face_create_for_cgfont + * cairo_quartz_font_face_create_for_cgfont: * @font: a #CGFontRef obtained through a method external to cairo. * * Creates a new font for the Quartz font backend based on a @@ -351,7 +353,7 @@ const cairo_font_face_backend_t _cairo_quartz_font_face_backend = { * cairo_font_face_destroy() when you are done using it. * * Since: 1.6 - */ + **/ cairo_font_face_t * cairo_quartz_font_face_create_for_cgfont (CGFontRef font) { @@ -815,7 +817,7 @@ _cairo_quartz_scaled_font_get_cg_font_ref (cairo_scaled_font_t *abstract_font) */ /** - * cairo_quartz_font_face_create_for_atsu_font_id + * cairo_quartz_font_face_create_for_atsu_font_id: * @font_id: an ATSUFontID for the font. * * Creates a new font for the Quartz font backend based on an diff --git a/src/cairo-quartz-image-surface.c b/src/cairo-quartz-image-surface.c index b04c421..763ce96 100644 --- a/src/cairo-quartz-image-surface.c +++ b/src/cairo-quartz-image-surface.c @@ -36,8 +36,10 @@ #include "cairoint.h" +#include "cairo-image-surface-private.h" #include "cairo-quartz-image.h" #include "cairo-quartz-private.h" +#include "cairo-surface-backend-private.h" #include "cairo-error-private.h" #include "cairo-default-context-private.h" @@ -110,14 +112,18 @@ _cairo_quartz_image_surface_map_to_image (void *asurface, const cairo_rectangle_int_t *extents) { cairo_quartz_image_surface_t *surface = (cairo_quartz_image_surface_t *) asurface; - return _cairo_surface_create_for_rectangle_int (surface->imageSurface, extents); + + return cairo_surface_map_to_image (&surface->imageSurface->base, extents); } static cairo_int_status_t _cairo_quartz_image_surface_unmap_image (void *asurface, cairo_image_surface_t *image) { - cairo_surface_destroy (&image->base); + cairo_quartz_image_surface_t *surface = (cairo_quartz_image_surface_t *) asurface; + + cairo_surface_unmap_image (&surface->imageSurface->base, &image->base); + return cairo_surface_status (&surface->imageSurface->base); } static cairo_bool_t @@ -149,15 +155,15 @@ _cairo_quartz_image_surface_flush (void *asurface) /* To be released by the ReleaseCallback */ cairo_surface_reference ((cairo_surface_t*) surface->imageSurface); - newImage = _cairo_quartz_create_cgimage (surface->imageSurface->format, - surface->imageSurface->width, - surface->imageSurface->height, - surface->imageSurface->stride, - surface->imageSurface->data, - TRUE, - NULL, - DataProviderReleaseCallback, - surface->imageSurface); + newImage = CairoQuartzCreateCGImage (surface->imageSurface->format, + surface->imageSurface->width, + surface->imageSurface->height, + surface->imageSurface->stride, + surface->imageSurface->data, + TRUE, + NULL, + DataProviderReleaseCallback, + surface->imageSurface); surface->image = newImage; CGImageRelease (oldImage); @@ -234,10 +240,12 @@ _cairo_quartz_image_surface_glyphs (void *abstract_surface, const cairo_clip_t *clip) { cairo_quartz_image_surface_t *surface = abstract_surface; - return _cairo_surface_show_glyphs (&surface->imageSurface->base, - op, source, - glyphs, num_glyphs, scaled_font, - clip, num_remaining); + return _cairo_surface_show_text_glyphs (&surface->imageSurface->base, + op, source, + NULL, 0, + glyphs, num_glyphs, + NULL, 0, 0, + scaled_font, clip); } @@ -252,6 +260,7 @@ static const cairo_surface_backend_t cairo_quartz_image_surface_backend = { _cairo_quartz_image_surface_map_to_image, _cairo_quartz_image_surface_unmap_image, + _cairo_surface_default_source, _cairo_quartz_image_surface_acquire_source_image, NULL, /* release_source_image */ NULL, /* snapshot */ @@ -269,13 +278,13 @@ static const cairo_surface_backend_t cairo_quartz_image_surface_backend = { _cairo_quartz_image_surface_mask, _cairo_quartz_image_surface_stroke, _cairo_quartz_image_surface_fill, - NULL /* fill-stroke */ + NULL, /* fill-stroke */ _cairo_quartz_image_surface_glyphs, }; /** - * cairo_quartz_image_surface_create - * @surface: a cairo image surface to wrap with a quartz image surface + * cairo_quartz_image_surface_create: + * @image_surface: a cairo image surface to wrap with a quartz image surface * * Creates a Quartz surface backed by a CGImageRef that references the * given image surface. The resulting surface can be rendered quickly @@ -287,7 +296,7 @@ static const cairo_surface_backend_t cairo_quartz_image_surface_backend = { * Return value: the newly created surface. * * Since: 1.6 - */ + **/ cairo_surface_t * cairo_quartz_image_surface_create (cairo_surface_t *surface) { @@ -334,14 +343,14 @@ cairo_quartz_image_surface_create (cairo_surface_t *surface) */ cairo_surface_reference (surface); - image = _cairo_quartz_create_cgimage (format, - width, height, - stride, - data, - TRUE, - NULL, - DataProviderReleaseCallback, - image_surface); + image = CairoQuartzCreateCGImage (format, + width, height, + stride, + data, + TRUE, + NULL, + DataProviderReleaseCallback, + image_surface); if (!image) { free (qisurf); diff --git a/src/cairo-quartz-private.h b/src/cairo-quartz-private.h index 474ec15..f841a49 100644 --- a/src/cairo-quartz-private.h +++ b/src/cairo-quartz-private.h @@ -80,10 +80,10 @@ typedef struct cairo_quartz_image_surface { cairo_image_surface_t *imageSurface; } cairo_quartz_image_surface_t; -cairo_bool_t +cairo_private cairo_bool_t _cairo_quartz_verify_surface_size(int width, int height); -CGImageRef +cairo_private CGImageRef CairoQuartzCreateCGImage (cairo_format_t format, unsigned int width, unsigned int height, @@ -94,7 +94,7 @@ CairoQuartzCreateCGImage (cairo_format_t format, CGDataProviderReleaseDataCallback releaseCallback, void *releaseInfo); -CGFontRef +cairo_private CGFontRef _cairo_quartz_scaled_font_get_cg_font_ref (cairo_scaled_font_t *sfont); #else diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c index e18461b..d216261 100644 --- a/src/cairo-quartz-surface.c +++ b/src/cairo-quartz-surface.c @@ -74,14 +74,16 @@ * * The Quartz surface is used to render cairo graphics targeting the * Apple OS X Quartz rendering system. - */ + **/ /** * CAIRO_HAS_QUARTZ_SURFACE: * * Defined if the Quartz surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.6 + **/ #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050 /* This method is private, but it exists. Its params are are exposed @@ -1634,7 +1636,8 @@ _cairo_quartz_cg_paint (const cairo_compositor_t *compositor, cairo_quartz_drawing_state_t state; cairo_int_status_t rv; - ND ((stderr, "%p _cairo_quartz_surface_paint op %d source->type %d\n", surface, op, source->type)); + ND ((stderr, "%p _cairo_quartz_surface_paint op %d source->type %d\n", + extents->surface, extents->op, extents->source_pattern.base.type)); rv = _cairo_quartz_setup_state (&state, extents); if (unlikely (rv)) @@ -1732,7 +1735,9 @@ _cairo_quartz_cg_mask (const cairo_compositor_t *compositor, cairo_bool_t need_temp; CGInterpolationQuality filter; - ND ((stderr, "%p _cairo_quartz_surface_mask op %d source->type %d mask->type %d\n", surface, op, source->type, mask->type)); + ND ((stderr, "%p _cairo_quartz_surface_mask op %d source->type %d mask->type %d\n", + extents->surface, extents->op, extents->source_pattern.base.type, + extents->mask_pattern.base.type)); if (mask->type == CAIRO_PATTERN_TYPE_SOLID) return _cairo_quartz_cg_mask_with_solid (surface, extents); @@ -1820,7 +1825,8 @@ _cairo_quartz_cg_fill (const cairo_compositor_t *compositor, cairo_quartz_drawing_state_t state; cairo_int_status_t rv = CAIRO_STATUS_SUCCESS; - ND ((stderr, "%p _cairo_quartz_surface_fill op %d source->type %d\n", surface, op, source->type)); + ND ((stderr, "%p _cairo_quartz_surface_fill op %d source->type %d\n", + extents->surface, extents->op, extents->source_pattern.base.type)); rv = _cairo_quartz_setup_state (&state, extents); if (unlikely (rv)) @@ -1866,7 +1872,8 @@ _cairo_quartz_cg_stroke (const cairo_compositor_t *compositor, cairo_int_status_t rv = CAIRO_STATUS_SUCCESS; CGAffineTransform strokeTransform, invStrokeTransform; - ND ((stderr, "%p _cairo_quartz_surface_stroke op %d source->type %d\n", surface, op, source->type)); + ND ((stderr, "%p _cairo_quartz_surface_stroke op %d source->type %d\n", + extents->surface, extents->op, extents->source_pattern.base.type)); rv = _cairo_quartz_setup_state (&state, extents); if (unlikely (rv)) @@ -1975,6 +1982,7 @@ _cairo_quartz_cg_glyphs (const cairo_compositor_t *compositor, switch (scaled_font->options.antialias) { case CAIRO_ANTIALIAS_SUBPIXEL: + case CAIRO_ANTIALIAS_BEST: CGContextSetShouldAntialias (state.cgMaskContext, TRUE); CGContextSetShouldSmoothFonts (state.cgMaskContext, TRUE); if (CGContextSetAllowsFontSmoothingPtr && @@ -1988,6 +1996,8 @@ _cairo_quartz_cg_glyphs (const cairo_compositor_t *compositor, CGContextSetShouldAntialias (state.cgMaskContext, FALSE); break; case CAIRO_ANTIALIAS_GRAY: + case CAIRO_ANTIALIAS_GOOD: + case CAIRO_ANTIALIAS_FAST: CGContextSetShouldAntialias (state.cgMaskContext, TRUE); CGContextSetShouldSmoothFonts (state.cgMaskContext, FALSE); break; @@ -2206,6 +2216,7 @@ static const struct _cairo_surface_backend cairo_quartz_surface_backend = { _cairo_quartz_surface_map_to_image, _cairo_quartz_surface_unmap_image, + _cairo_surface_default_source, _cairo_quartz_surface_acquire_source_image, _cairo_quartz_surface_release_source_image, _cairo_quartz_surface_snapshot, @@ -2280,7 +2291,7 @@ _cairo_quartz_surface_create_internal (CGContextRef cgContext, } /** - * cairo_quartz_surface_create_for_cg_context + * cairo_quartz_surface_create_for_cg_context: * @cgContext: the existing CGContext for which to create the surface * @width: width of the surface, in pixels * @height: height of the surface, in pixels @@ -2303,7 +2314,7 @@ _cairo_quartz_surface_create_internal (CGContextRef cgContext, * * Return value: the newly created Cairo surface. * - * Since: 1.4 + * Since: 1.6 **/ cairo_surface_t * @@ -2322,7 +2333,7 @@ cairo_quartz_surface_create_for_cg_context (CGContextRef cgContext, } /** - * cairo_quartz_surface_create + * cairo_quartz_surface_create: * @format: format of pixels in the surface to create * @width: width of the surface, in pixels * @height: height of the surface, in pixels @@ -2334,7 +2345,7 @@ cairo_quartz_surface_create_for_cg_context (CGContextRef cgContext, * * Return value: the newly created surface. * - * Since: 1.4 + * Since: 1.6 **/ cairo_surface_t * cairo_quartz_surface_create (cairo_format_t format, @@ -2432,7 +2443,7 @@ cairo_quartz_surface_create (cairo_format_t format, } /** - * cairo_quartz_surface_get_cg_context + * cairo_quartz_surface_get_cg_context: * @surface: the Cairo Quartz surface * * Returns the CGContextRef that the given Quartz surface is backed @@ -2447,7 +2458,7 @@ cairo_quartz_surface_create (cairo_format_t format, * * Return value: the CGContextRef for the given surface. * - * Since: 1.4 + * Since: 1.6 **/ CGContextRef cairo_quartz_surface_get_cg_context (cairo_surface_t *surface) diff --git a/src/cairo-raster-source-pattern.c b/src/cairo-raster-source-pattern.c new file mode 100644 index 0000000..601fe60 --- /dev/null +++ b/src/cairo-raster-source-pattern.c @@ -0,0 +1,432 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Chris Wilson + */ + +#include "cairoint.h" +#include "cairo-error-private.h" +#include "cairo-pattern-private.h" + +/** + * SECTION:cairo-raster-source + * @Title: Raster Sources + * @Short_Description: Supplying arbitrary image data + * @See_Also: #cairo_pattern_t + * + * The raster source provides the ability to supply arbitrary pixel data + * whilst rendering. The pixels are queried at the time of rasterisation + * by means of user callback functions, allowing for the ultimate + * flexibility. For example, in handling compressed image sources, you + * may keep a MRU cache of decompressed images and decompress sources on the + * fly and discard old ones to conserve memory. + * + * For the raster source to be effective, you must at least specify + * the acquire and release callbacks which are used to retrieve the pixel + * data for the region of interest and demark when it can be freed afterwards. + * Other callbacks are provided for when the pattern is copied temporarily + * during rasterisation, or more permanently as a snapshot in order to keep + * the pixel data available for printing. + * + * Since: 1.12 + **/ + +cairo_surface_t * +_cairo_raster_source_pattern_acquire (const cairo_pattern_t *abstract_pattern, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents) +{ + cairo_raster_source_pattern_t *pattern = + (cairo_raster_source_pattern_t *) abstract_pattern; + + if (pattern->acquire == NULL) + return NULL; + + if (extents == NULL) + extents = &pattern->extents; + + return pattern->acquire (&pattern->base, pattern->user_data, + target, extents); +} + +void +_cairo_raster_source_pattern_release (const cairo_pattern_t *abstract_pattern, + cairo_surface_t *surface) +{ + cairo_raster_source_pattern_t *pattern = + (cairo_raster_source_pattern_t *) abstract_pattern; + + if (pattern->release == NULL) + return; + + pattern->release (&pattern->base, pattern->user_data, surface); +} + +cairo_status_t +_cairo_raster_source_pattern_init_copy (cairo_pattern_t *abstract_pattern, + const cairo_pattern_t *other) +{ + cairo_raster_source_pattern_t *pattern = + (cairo_raster_source_pattern_t *) abstract_pattern; + cairo_status_t status; + + VG (VALGRIND_MAKE_MEM_UNDEFINED (pattern, sizeof (cairo_raster_source_pattern_t))); + memcpy(pattern, other, sizeof (cairo_raster_source_pattern_t)); + + status = CAIRO_STATUS_SUCCESS; + if (pattern->copy) + status = pattern->copy (&pattern->base, pattern->user_data, other); + + return status; +} + +cairo_status_t +_cairo_raster_source_pattern_snapshot (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern = + (cairo_raster_source_pattern_t *) abstract_pattern; + + if (pattern->snapshot == NULL) + return CAIRO_STATUS_SUCCESS; + + return pattern->snapshot (&pattern->base, pattern->user_data); +} + +void +_cairo_raster_source_pattern_finish (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern = + (cairo_raster_source_pattern_t *) abstract_pattern; + + if (pattern->finish == NULL) + return; + + pattern->finish (&pattern->base, pattern->user_data); +} + +/* Public interface */ + +/** + * cairo_pattern_create_raster_source: + * @user_data: the user data to be passed to all callbacks + * @content: content type for the pixel data that will be returned. Knowing + * the content type ahead of time is used for analysing the operation and + * picking the appropriate rendering path. + * @width: maximum size of the sample area + * @height: maximum size of the sample area + * + * Creates a new user pattern for providing pixel data. + * + * Use the setter functions to associate callbacks with the returned + * pattern. The only mandatory callback is acquire. + * + * Return value: a newly created #cairo_pattern_t. Free with + * cairo_pattern_destroy() when you are done using it. + * + * Since: 1.12 + **/ +cairo_pattern_t * +cairo_pattern_create_raster_source (void *user_data, + cairo_content_t content, + int width, int height) +{ + cairo_raster_source_pattern_t *pattern; + + CAIRO_MUTEX_INITIALIZE (); + + if (width < 0 || height < 0) + return _cairo_pattern_create_in_error (CAIRO_STATUS_INVALID_SIZE); + + if (! CAIRO_CONTENT_VALID (content)) + return _cairo_pattern_create_in_error (CAIRO_STATUS_INVALID_CONTENT); + + pattern = calloc (1, sizeof (*pattern)); + if (unlikely (pattern == NULL)) + return _cairo_pattern_create_in_error (CAIRO_STATUS_NO_MEMORY); + + _cairo_pattern_init (&pattern->base, + CAIRO_PATTERN_TYPE_RASTER_SOURCE); + CAIRO_REFERENCE_COUNT_INIT (&pattern->base.ref_count, 1); + + pattern->content = content; + + pattern->extents.x = 0; + pattern->extents.y = 0; + pattern->extents.width = width; + pattern->extents.height = height; + + pattern->user_data = user_data; + + return &pattern->base; +} + +/** + * cairo_raster_source_pattern_set_callback_data: + * @pattern: the pattern to update + * @data: the user data to be passed to all callbacks + * + * Updates the user data that is provided to all callbacks. + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_set_callback_data (cairo_pattern_t *abstract_pattern, + void *data) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + pattern->user_data = data; +} + +/** + * cairo_raster_source_pattern_get_callback_data: + * @pattern: the pattern to update + * + * Queries the current user data. + * + * Return value: the current user-data passed to each callback + * + * Since: 1.12 + **/ +void * +cairo_raster_source_pattern_get_callback_data (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return NULL; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + return pattern->user_data; +} + +/** + * cairo_raster_source_pattern_set_acquire: + * @pattern: the pattern to update + * @acquire: acquire callback + * @release: release callback + * + * Specifies the callbacks used to generate the image surface for a rendering + * operation (acquire) and the function used to cleanup that surface afterwards. + * + * The @acquire callback should create a surface (preferably an image + * surface created to match the target using + * cairo_surface_create_similar_image()) that defines at least the region + * of interest specified by extents. The surface is allowed to be the entire + * sample area, but if it does contain a subsection of the sample area, + * the surface extents should be provided by setting the device offset (along + * with its width and height) using cairo_surface_set_device_offset(). + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_set_acquire (cairo_pattern_t *abstract_pattern, + cairo_raster_source_acquire_func_t acquire, + cairo_raster_source_release_func_t release) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + pattern->acquire = acquire; + pattern->release = release; +} + +/** + * cairo_raster_source_pattern_get_acquire: + * @pattern: the pattern to query + * @acquire: return value for the current acquire callback + * @release: return value for the current release callback + * + * Queries the current acquire and release callbacks. + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_get_acquire (cairo_pattern_t *abstract_pattern, + cairo_raster_source_acquire_func_t *acquire, + cairo_raster_source_release_func_t *release) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + if (acquire) + *acquire = pattern->acquire; + if (release) + *release = pattern->release; +} + +/** + * cairo_raster_source_pattern_set_snapshot: + * @pattern: the pattern to update + * @snapshot: snapshot callback + * + * Sets the callback that will be used whenever a snapshot is taken of the + * pattern, that is whenever the current contents of the pattern should be + * preserved for later use. This is typically invoked whilst printing. + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_set_snapshot (cairo_pattern_t *abstract_pattern, + cairo_raster_source_snapshot_func_t snapshot) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + pattern->snapshot = snapshot; +} + +/** + * cairo_raster_source_pattern_get_snapshot: + * @pattern: the pattern to query + * + * Queries the current snapshot callback. + * + * Return value: the current snapshot callback + * + * Since: 1.12 + **/ +cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return NULL; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + return pattern->snapshot; +} + +/** + * cairo_raster_source_pattern_set_copy: + * @pattern: the pattern to update + * @copy: the copy callback + * + * Updates the copy callback which is used whenever a temporary copy of the + * pattern is taken. + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_set_copy (cairo_pattern_t *abstract_pattern, + cairo_raster_source_copy_func_t copy) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + pattern->copy = copy; +} + +/** + * cairo_raster_source_pattern_get_copy: + * @pattern: the pattern to query + * + * Queries the current copy callback. + * + * Return value: the current copy callback + * + * Since: 1.12 + **/ +cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return NULL; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + return pattern->copy; +} + +/** + * cairo_raster_source_pattern_set_finish: + * @pattern: the pattern to update + * @finish: the finish callback + * + * Updates the finish callback which is used whenever a pattern (or a copy + * thereof) will no longer be used. + * + * Since: 1.12 + **/ +void +cairo_raster_source_pattern_set_finish (cairo_pattern_t *abstract_pattern, + cairo_raster_source_finish_func_t finish) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + pattern->finish = finish; +} + +/** + * cairo_raster_source_pattern_get_finish: + * @pattern: the pattern to query + * + * Queries the current finish callback. + * + * Return value: the current finish callback + * + * Since: 1.12 + **/ +cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish (cairo_pattern_t *abstract_pattern) +{ + cairo_raster_source_pattern_t *pattern; + + if (abstract_pattern->type != CAIRO_PATTERN_TYPE_RASTER_SOURCE) + return NULL; + + pattern = (cairo_raster_source_pattern_t *) abstract_pattern; + return pattern->finish; +} diff --git a/src/cairo-recording-surface-inline.h b/src/cairo-recording-surface-inline.h new file mode 100644 index 0000000..9002ccd --- /dev/null +++ b/src/cairo-recording-surface-inline.h @@ -0,0 +1,68 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Kristian Høgsberg + * Adrian Johnson + */ + +#ifndef CAIRO_RECORDING_SURFACE_INLINE_H +#define CAIRO_RECORDING_SURFACE_INLINE_H + +#include "cairo-recording-surface-private.h" + +static inline cairo_bool_t +_cairo_recording_surface_get_bounds (cairo_surface_t *surface, + cairo_rectangle_t *extents) +{ + cairo_recording_surface_t *recording = (cairo_recording_surface_t *)surface; + if (recording->unbounded) + return FALSE; + + *extents = recording->extents_pixels; + return TRUE; +} + +/** + * _cairo_surface_is_recording: + * @surface: a #cairo_surface_t + * + * Checks if a surface is a #cairo_recording_surface_t + * + * Return value: %TRUE if the surface is a recording surface + **/ +static inline cairo_bool_t +_cairo_surface_is_recording (const cairo_surface_t *surface) +{ + return surface->backend->type == CAIRO_SURFACE_TYPE_RECORDING; +} + +#endif /* CAIRO_RECORDING_SURFACE_INLINE_H */ diff --git a/src/cairo-recording-surface-private.h b/src/cairo-recording-surface-private.h index 6e93eab..0235b0f 100644 --- a/src/cairo-recording-surface-private.h +++ b/src/cairo-recording-surface-private.h @@ -184,30 +184,4 @@ _cairo_recording_surface_get_ink_bbox (cairo_recording_surface_t *surface, cairo_box_t *bbox, const cairo_matrix_t *transform); -static inline cairo_bool_t -_cairo_recording_surface_get_bounds (cairo_surface_t *surface, - cairo_rectangle_t *extents) -{ - cairo_recording_surface_t *recording = (cairo_recording_surface_t *)surface; - if (recording->unbounded) - return FALSE; - - *extents = recording->extents_pixels; - return TRUE; -} - -/** - * _cairo_surface_is_recording: - * @surface: a #cairo_surface_t - * - * Checks if a surface is a #cairo_recording_surface_t - * - * Return value: %TRUE if the surface is a recording surface - **/ -static inline cairo_bool_t -_cairo_surface_is_recording (const cairo_surface_t *surface) -{ - return surface->backend->type == CAIRO_SURFACE_TYPE_RECORDING; -} - #endif /* CAIRO_RECORDING_SURFACE_H */ diff --git a/src/cairo-recording-surface.c b/src/cairo-recording-surface.c index 5316a10..02d8afd 100644 --- a/src/cairo-recording-surface.c +++ b/src/cairo-recording-surface.c @@ -74,19 +74,19 @@ * improved by improving the implementation of snapshot for the * various objects. For example, it would be nice to have a * copy-on-write implementation for _cairo_surface_snapshot. - */ + **/ #include "cairoint.h" #include "cairo-array-private.h" #include "cairo-analysis-surface-private.h" #include "cairo-clip-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-composite-rectangles-private.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-surface-wrapper-private.h" #include "cairo-traps-private.h" @@ -105,7 +105,7 @@ static const cairo_surface_backend_t cairo_recording_surface_backend; * This macro was added for completeness in cairo 1.10. * * Since: 1.10 - */ + **/ /* Currently all recording surfaces do have a size which should be passed * in as the maximum size of any target surface against which the @@ -535,6 +535,7 @@ static const cairo_surface_backend_t proxy_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, proxy_acquire_source_image, proxy_release_source_image, }; @@ -676,6 +677,21 @@ _cairo_recording_surface_reset (cairo_recording_surface_t *surface) _cairo_array_init (&surface->commands, sizeof (cairo_command_t *)); } +static cairo_bool_t +is_identity_recording_pattern (const cairo_pattern_t *pattern) +{ + cairo_surface_t *surface; + + if (pattern->type != CAIRO_PATTERN_TYPE_SURFACE) + return FALSE; + + if (!_cairo_matrix_is_identity(&pattern->matrix)) + return FALSE; + + surface = ((cairo_surface_pattern_t *)pattern)->surface; + return surface->backend->type == CAIRO_SURFACE_TYPE_RECORDING; +} + static cairo_int_status_t _cairo_recording_surface_paint (void *abstract_surface, cairo_operator_t op, @@ -687,6 +703,8 @@ _cairo_recording_surface_paint (void *abstract_surface, cairo_command_paint_t *command; cairo_composite_rectangles_t composite; + TRACE ((stderr, "%s: surface=%d\n", __FUNCTION__, surface->base.unique_id)); + if (op == CAIRO_OPERATOR_CLEAR && clip == NULL) { if (surface->optimize_clears) { _cairo_recording_surface_reset (surface); @@ -695,12 +713,15 @@ _cairo_recording_surface_paint (void *abstract_surface, } if (clip == NULL && surface->optimize_clears && - source->type == CAIRO_PATTERN_TYPE_SOLID && (op == CAIRO_OPERATOR_SOURCE || (op == CAIRO_OPERATOR_OVER && (surface->base.is_clear || _cairo_pattern_is_opaque_solid (source))))) { _cairo_recording_surface_reset (surface); + if (is_identity_recording_pattern (source)) { + cairo_surface_t *src = ((cairo_surface_pattern_t *)source)->surface; + return _cairo_recording_surface_replay (src, &surface->base); + } } status = _cairo_composite_rectangles_init_for_paint (&composite, @@ -757,6 +778,8 @@ _cairo_recording_surface_mask (void *abstract_surface, cairo_command_mask_t *command; cairo_composite_rectangles_t composite; + TRACE ((stderr, "%s: surface=%d\n", __FUNCTION__, surface->base.unique_id)); + status = _cairo_composite_rectangles_init_for_mask (&composite, &surface->base, op, source, mask, @@ -822,6 +845,8 @@ _cairo_recording_surface_stroke (void *abstract_surface, cairo_command_stroke_t *command; cairo_composite_rectangles_t composite; + TRACE ((stderr, "%s: surface=%d\n", __FUNCTION__, surface->base.unique_id)); + status = _cairo_composite_rectangles_init_for_stroke (&composite, &surface->base, op, source, @@ -897,6 +922,8 @@ _cairo_recording_surface_fill (void *abstract_surface, cairo_command_fill_t *command; cairo_composite_rectangles_t composite; + TRACE ((stderr, "%s: surface=%d\n", __FUNCTION__, surface->base.unique_id)); + status = _cairo_composite_rectangles_init_for_fill (&composite, &surface->base, op, source, path, @@ -974,6 +1001,8 @@ _cairo_recording_surface_show_text_glyphs (void *abstract_surface, cairo_command_show_text_glyphs_t *command; cairo_composite_rectangles_t composite; + TRACE ((stderr, "%s: surface=%d\n", __FUNCTION__, surface->base.unique_id)); + status = _cairo_composite_rectangles_init_for_glyphs (&composite, &surface->base, op, source, @@ -1060,7 +1089,7 @@ CLEANUP_COMPOSITE: } /** - * _cairo_recording_surface_snapshot + * _cairo_recording_surface_snapshot: * @surface: a #cairo_surface_t which must be a recording surface * * Make an immutable copy of @surface. It is an error to call a @@ -1135,6 +1164,7 @@ static const cairo_surface_backend_t cairo_recording_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, _cairo_recording_surface_acquire_source_image, _cairo_recording_surface_release_source_image, _cairo_recording_surface_snapshot, @@ -1694,6 +1724,18 @@ _cairo_recording_surface_get_ink_bbox (cairo_recording_surface_t *surface, return _recording_surface_get_ink_bbox (surface, bbox, transform); } +/** + * cairo_recording_surface_get_extents: + * @surface: a #cairo_recording_surface_t + * @extents: the #cairo_rectangle_t to be assigned the extents + * + * Get the extents of the recording-surface. + * + * Return value: %TRUE if the surface is bounded, of recording type, and + * not in an error state, otherwise %FALSE + * + * Since: 1.12 + **/ cairo_bool_t cairo_recording_surface_get_extents (cairo_surface_t *surface, cairo_rectangle_t *extents) diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c index edad369..9613065 100644 --- a/src/cairo-rectangle.c +++ b/src/cairo-rectangle.c @@ -39,7 +39,7 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" const cairo_rectangle_int_t _cairo_empty_rectangle = { 0, 0, 0, 0 }; const cairo_rectangle_int_t _cairo_unbounded_rectangle = { @@ -272,7 +272,8 @@ _cairo_box_intersects_line_segment (cairo_box_t *box, cairo_line_t *line) static cairo_status_t _cairo_box_add_spline_point (void *closure, - const cairo_point_t *point) + const cairo_point_t *point, + const cairo_slope_t *tangent) { _cairo_box_add_point (closure, point); diff --git a/src/cairo-rectangular-scan-converter.c b/src/cairo-rectangular-scan-converter.c index b4214c8..e353b34 100644 --- a/src/cairo-rectangular-scan-converter.c +++ b/src/cairo-rectangular-scan-converter.c @@ -33,7 +33,7 @@ #include "cairoint.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-error-private.h" #include "cairo-freelist-private.h" #include "cairo-list-private.h" diff --git a/src/cairo-region-private.h b/src/cairo-region-private.h index 11070ba..549e508 100644 --- a/src/cairo-region-private.h +++ b/src/cairo-region-private.h @@ -66,6 +66,12 @@ _cairo_region_init_rectangle (cairo_region_t *region, cairo_private void _cairo_region_fini (cairo_region_t *region); +cairo_private cairo_region_t * +_cairo_region_create_from_boxes (const cairo_box_t *boxes, int count); + +cairo_private cairo_box_t * +_cairo_region_get_boxes (const cairo_region_t *region, int *nbox); + CAIRO_END_DECLS #endif /* CAIRO_REGION_PRIVATE_H */ diff --git a/src/cairo-region.c b/src/cairo-region.c index f3ccb89..a51e224 100644 --- a/src/cairo-region.c +++ b/src/cairo-region.c @@ -52,7 +52,7 @@ * Regions are a simple graphical data type representing an area of * integer-aligned rectangles. They are often used on raster surfaces * to track areas of interest, such as change or clip areas. - */ + **/ static const cairo_region_t _cairo_region_nil = { CAIRO_REFERENCE_COUNT_INVALID, /* ref_count */ @@ -276,6 +276,38 @@ cairo_region_create_rectangles (const cairo_rectangle_int_t *rects, } slim_hidden_def (cairo_region_create_rectangles); +cairo_region_t * +_cairo_region_create_from_boxes (const cairo_box_t *boxes, int count) +{ + cairo_region_t *region; + + region = _cairo_malloc (sizeof (cairo_region_t)); + if (unlikely (region == NULL)) + return _cairo_region_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + CAIRO_REFERENCE_COUNT_INIT (®ion->ref_count, 1); + region->status = CAIRO_STATUS_SUCCESS; + + if (! pixman_region32_init_rects (®ion->rgn, + (pixman_box32_t *)boxes, count)) { + free (region); + return _cairo_region_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + + return region; +} + +cairo_box_t * +_cairo_region_get_boxes (const cairo_region_t *region, int *nbox) +{ + if (region->status) { + nbox = 0; + return NULL; + } + + return (cairo_box_t *) pixman_region32_rectangles (CONST_CAST ®ion->rgn, nbox); +} + /** * cairo_region_create_rectangle: * @rectangle: a #cairo_rectangle_int_t @@ -484,7 +516,7 @@ slim_hidden_def (cairo_region_get_extents); * cairo_region_status: * @region: a #cairo_region_t * - * Checks whether an error has previous occured for this + * Checks whether an error has previous occurred for this * region object. * * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY @@ -810,13 +842,15 @@ slim_hidden_def (cairo_region_translate); /** * cairo_region_overlap_t: - * @CAIRO_REGION_OVERLAP_IN: The contents are entirely inside the region - * @CAIRO_REGION_OVERLAP_OUT: The contents are entirely outside the region + * @CAIRO_REGION_OVERLAP_IN: The contents are entirely inside the region. (Since 1.10) + * @CAIRO_REGION_OVERLAP_OUT: The contents are entirely outside the region. (Since 1.10) * @CAIRO_REGION_OVERLAP_PART: The contents are partially inside and - * partially outside the region. - * + * partially outside the region. (Since 1.10) + * * Used as the return value for cairo_region_contains_rectangle(). - */ + * + * Since: 1.10 + **/ /** * cairo_region_contains_rectangle: diff --git a/src/cairo-rtree-private.h b/src/cairo-rtree-private.h index 11079e7..27806ca 100644 --- a/src/cairo-rtree-private.h +++ b/src/cairo-rtree-private.h @@ -42,7 +42,7 @@ #include "cairo-types-private.h" #include "cairo-freelist-private.h" -#include "cairo-list-private.h" +#include "cairo-list-inline.h" enum { CAIRO_RTREE_NODE_AVAILABLE, @@ -52,7 +52,6 @@ enum { typedef struct _cairo_rtree_node { struct _cairo_rtree_node *children[4], *parent; - void **owner; cairo_list_t link; uint16_t pinned; uint16_t state; @@ -66,6 +65,7 @@ typedef struct _cairo_rtree { cairo_list_t pinned; cairo_list_t available; cairo_list_t evictable; + void (*destroy) (cairo_rtree_node_t *); cairo_freepool_t node_freepool; } cairo_rtree_t; @@ -98,7 +98,8 @@ _cairo_rtree_init (cairo_rtree_t *rtree, int width, int height, int min_size, - int node_size); + int node_size, + void (*destroy)(cairo_rtree_node_t *)); cairo_private cairo_int_status_t _cairo_rtree_insert (cairo_rtree_t *rtree, @@ -112,9 +113,15 @@ _cairo_rtree_evict_random (cairo_rtree_t *rtree, int height, cairo_rtree_node_t **out); +cairo_private void +_cairo_rtree_foreach (cairo_rtree_t *rtree, + void (*func)(cairo_rtree_node_t *, void *data), + void *data); + static inline void * _cairo_rtree_pin (cairo_rtree_t *rtree, cairo_rtree_node_t *node) { + assert (node->state == CAIRO_RTREE_NODE_OCCUPIED); if (! node->pinned) { cairo_list_move (&node->link, &rtree->pinned); node->pinned = 1; diff --git a/src/cairo-rtree.c b/src/cairo-rtree.c index d6e5791..dbc0409 100644 --- a/src/cairo-rtree.c +++ b/src/cairo-rtree.c @@ -57,7 +57,6 @@ _cairo_rtree_node_create (cairo_rtree_t *rtree, node->children[0] = NULL; node->parent = parent; - node->owner = NULL; node->state = CAIRO_RTREE_NODE_AVAILABLE; node->pinned = FALSE; node->x = x; @@ -78,8 +77,7 @@ _cairo_rtree_node_destroy (cairo_rtree_t *rtree, cairo_rtree_node_t *node) cairo_list_del (&node->link); if (node->state == CAIRO_RTREE_NODE_OCCUPIED) { - if (node->owner != NULL) - *node->owner = NULL; + rtree->destroy (node); } else { for (i = 0; i < 4 && node->children[i] != NULL; i++) _cairo_rtree_node_destroy (rtree, node->children[i]); @@ -186,6 +184,8 @@ _cairo_rtree_node_remove (cairo_rtree_t *rtree, cairo_rtree_node_t *node) assert (node->state == CAIRO_RTREE_NODE_OCCUPIED); assert (node->pinned == FALSE); + rtree->destroy (node); + node->state = CAIRO_RTREE_NODE_AVAILABLE; cairo_list_move (&node->link, &rtree->available); @@ -225,15 +225,22 @@ _cairo_rtree_evict_random (cairo_rtree_t *rtree, int height, cairo_rtree_node_t **out) { + cairo_int_status_t ret = CAIRO_INT_STATUS_UNSUPPORTED; cairo_rtree_node_t *node, *next; + cairo_list_t tmp_pinned; int i, cnt; + cairo_list_init (&tmp_pinned); + /* propagate pinned from children to root */ - cairo_list_foreach_entry_safe (node, next, cairo_rtree_node_t, - &rtree->pinned, link) - { - if (node->parent != NULL) - _cairo_rtree_pin (rtree, node->parent); + cairo_list_foreach_entry_safe (node, next, + cairo_rtree_node_t, &rtree->pinned, link) { + node = node->parent; + while (node && ! node->pinned) { + node->pinned = 1; + cairo_list_move (&node->link, &tmp_pinned); + node = node->parent; + } } cnt = 0; @@ -245,7 +252,7 @@ _cairo_rtree_evict_random (cairo_rtree_t *rtree, } if (cnt == 0) - return CAIRO_INT_STATUS_UNSUPPORTED; + goto out; cnt = hars_petruska_f54_1_random () % cnt; cairo_list_foreach_entry (node, cairo_rtree_node_t, @@ -253,8 +260,7 @@ _cairo_rtree_evict_random (cairo_rtree_t *rtree, { if (node->width >= width && node->height >= height && cnt-- == 0) { if (node->state == CAIRO_RTREE_NODE_OCCUPIED) { - if (node->owner != NULL) - *node->owner = NULL; + rtree->destroy (node); } else { for (i = 0; i < 4 && node->children[i] != NULL; i++) _cairo_rtree_node_destroy (rtree, node->children[i]); @@ -265,60 +271,29 @@ _cairo_rtree_evict_random (cairo_rtree_t *rtree, cairo_list_move (&node->link, &rtree->available); *out = node; - return CAIRO_STATUS_SUCCESS; + ret = CAIRO_STATUS_SUCCESS; + break; } } - return CAIRO_INT_STATUS_UNSUPPORTED; +out: + while (! cairo_list_is_empty (&tmp_pinned)) { + node = cairo_list_first_entry (&tmp_pinned, cairo_rtree_node_t, link); + node->pinned = 0; + cairo_list_move (&node->link, &rtree->evictable); + } + return ret; } void _cairo_rtree_unpin (cairo_rtree_t *rtree) { - cairo_rtree_node_t *node, *next; - cairo_list_t can_collapse; - - if (cairo_list_is_empty (&rtree->pinned)) - return; - - cairo_list_init (&can_collapse); - - cairo_list_foreach_entry_safe (node, next, - cairo_rtree_node_t, - &rtree->pinned, - link) - { - node->pinned = FALSE; - if (node->state == CAIRO_RTREE_NODE_OCCUPIED && node->owner == NULL) { - cairo_bool_t all_available; - int i; - - node->state = CAIRO_RTREE_NODE_AVAILABLE; - cairo_list_move (&node->link, &rtree->available); - - all_available = TRUE; - node = node->parent; - for (i = 0; i < 4 && node->children[i] != NULL && all_available; i++) - all_available &= node->children[i]->state == CAIRO_RTREE_NODE_AVAILABLE; - - if (all_available) { - cairo_list_move (&node->link, &can_collapse); - for (i = 0; i < 4 && node->children[i] != NULL; i++) - cairo_list_del (&node->children[i]->link); - } - } - else - { - cairo_list_move (&node->link, &rtree->evictable); - } - } - - cairo_list_foreach_entry_safe (node, next, - cairo_rtree_node_t, - &can_collapse, - link) - { - _cairo_rtree_node_collapse (rtree, node); + while (! cairo_list_is_empty (&rtree->pinned)) { + cairo_rtree_node_t *node = cairo_list_first_entry (&rtree->pinned, + cairo_rtree_node_t, + link); + node->pinned = 0; + cairo_list_move (&node->link, &rtree->evictable); } } @@ -327,7 +302,8 @@ _cairo_rtree_init (cairo_rtree_t *rtree, int width, int height, int min_size, - int node_size) + int node_size, + void (*destroy) (cairo_rtree_node_t *)) { assert (node_size >= (int) sizeof (cairo_rtree_node_t)); _cairo_freepool_init (&rtree->node_freepool, node_size); @@ -337,6 +313,7 @@ _cairo_rtree_init (cairo_rtree_t *rtree, cairo_list_init (&rtree->evictable); rtree->min_size = min_size; + rtree->destroy = destroy; memset (&rtree->root, 0, sizeof (rtree->root)); rtree->root.width = width; @@ -351,8 +328,7 @@ _cairo_rtree_reset (cairo_rtree_t *rtree) int i; if (rtree->root.state == CAIRO_RTREE_NODE_OCCUPIED) { - if (rtree->root.owner != NULL) - *rtree->root.owner = NULL; + rtree->destroy (&rtree->root); } else { for (i = 0; i < 4 && rtree->root.children[i] != NULL; i++) _cairo_rtree_node_destroy (rtree, rtree->root.children[i]); @@ -368,14 +344,41 @@ _cairo_rtree_reset (cairo_rtree_t *rtree) cairo_list_add (&rtree->root.link, &rtree->available); } +static void +_cairo_rtree_node_foreach (cairo_rtree_node_t *node, + void (*func)(cairo_rtree_node_t *, void *data), + void *data) +{ + int i; + + for (i = 0; i < 4 && node->children[i] != NULL; i++) + _cairo_rtree_node_foreach(node->children[i], func, data); + + func(node, data); +} + +void +_cairo_rtree_foreach (cairo_rtree_t *rtree, + void (*func)(cairo_rtree_node_t *, void *data), + void *data) +{ + int i; + + if (rtree->root.state == CAIRO_RTREE_NODE_OCCUPIED) { + func(&rtree->root, data); + } else { + for (i = 0; i < 4 && rtree->root.children[i] != NULL; i++) + _cairo_rtree_node_foreach (rtree->root.children[i], func, data); + } +} + void _cairo_rtree_fini (cairo_rtree_t *rtree) { int i; if (rtree->root.state == CAIRO_RTREE_NODE_OCCUPIED) { - if (rtree->root.owner != NULL) - *rtree->root.owner = NULL; + rtree->destroy (&rtree->root); } else { for (i = 0; i < 4 && rtree->root.children[i] != NULL; i++) _cairo_rtree_node_destroy (rtree, rtree->root.children[i]); diff --git a/src/cairo-scaled-font-subsets-private.h b/src/cairo-scaled-font-subsets-private.h index 2edf770..dd19962 100644 --- a/src/cairo-scaled-font-subsets-private.h +++ b/src/cairo-scaled-font-subsets-private.h @@ -225,7 +225,7 @@ typedef cairo_int_status_t void *closure); /** - * _cairo_scaled_font_subsets_foreach: + * _cairo_scaled_font_subsets_foreach_scaled: * @font_subsets: a #cairo_scaled_font_subsets_t * @font_subset_callback: a function to be called for each font subset * @closure: closure data for the callback function @@ -439,7 +439,7 @@ typedef struct _cairo_truetype_subset { } cairo_truetype_subset_t; /** - * _cairo_truetype_subset_init: + * _cairo_truetype_subset_init_ps: * @truetype_subset: a #cairo_truetype_subset_t to initialize * @font_subset: the #cairo_scaled_font_subset_t to initialize from * @@ -460,7 +460,7 @@ _cairo_truetype_subset_init_ps (cairo_truetype_subset_t *truetype_subset, cairo_scaled_font_subset_t *font_subset); /** - * _cairo_truetype_subset_init: + * _cairo_truetype_subset_init_pdf: * @truetype_subset: a #cairo_truetype_subset_t to initialize * @font_subset: the #cairo_scaled_font_subset_t to initialize from * @@ -576,7 +576,7 @@ _cairo_type1_fallback_init_binary (cairo_type1_subset_t *type_subset, cairo_scaled_font_subset_t *font_subset); /** - * _cairo_type1_fallback_init_hexencode: + * _cairo_type1_fallback_init_hex: * @type1_subset: a #cairo_type1_subset_t to initialize * @font_subset: the #cairo_scaled_font_subset_t to initialize from * diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c index 355245a..e78e0c2 100644 --- a/src/cairo-scaled-font-subsets.c +++ b/src/cairo-scaled-font-subsets.c @@ -522,11 +522,6 @@ _cairo_sub_font_add_glyph (cairo_sub_font_t *sub_font, y_advance = scaled_glyph->metrics.y_advance; _cairo_scaled_font_thaw_cache (sub_font->scaled_font); - if (unlikely (status)) { - _cairo_sub_font_glyph_destroy (sub_font_glyph); - return status; - } - if (!is_latin && sub_font->num_glyphs_in_current_subset == sub_font->max_glyphs_per_subset) { sub_font->current_subset++; diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index be612a9..f719266 100644 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -41,10 +41,13 @@ #include "cairoint.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-pattern-private.h" #include "cairo-scaled-font-private.h" #include "cairo-surface-backend-private.h" +#define TOLERANCE 0.00001 + #if _XOPEN_SOURCE >= 600 || defined (_ISOC99_SOURCE) #define ISFINITE(x) isfinite (x) #else @@ -59,7 +62,10 @@ * * #cairo_scaled_font_t represents a realization of a font face at a particular * size and transformation and a certain set of font options. - */ + **/ + +static uint32_t +_cairo_scaled_font_compute_hash (cairo_scaled_font_t *scaled_font); /* Global Glyph Cache * @@ -314,6 +320,8 @@ cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font) * * Return value: %CAIRO_STATUS_SUCCESS or another error such as * %CAIRO_STATUS_NO_MEMORY. + * + * Since: 1.0 **/ cairo_status_t cairo_scaled_font_status (cairo_scaled_font_t *scaled_font) @@ -506,6 +514,8 @@ _cairo_scaled_font_register_placeholder_and_unlock_font_map (cairo_scaled_font_t placeholder_scaled_font->placeholder = TRUE; + placeholder_scaled_font->hash_entry.hash + = _cairo_scaled_font_compute_hash (placeholder_scaled_font); status = _cairo_hash_table_insert (cairo_scaled_font_map->hash_table, &placeholder_scaled_font->hash_entry); if (unlikely (status)) @@ -531,6 +541,9 @@ _cairo_scaled_font_unregister_placeholder_and_lock_font_map (cairo_scaled_font_t CAIRO_MUTEX_LOCK (_cairo_scaled_font_map_mutex); + /* temporary hash value to match the placeholder */ + scaled_font->hash_entry.hash + = _cairo_scaled_font_compute_hash (scaled_font); placeholder_scaled_font = _cairo_hash_table_lookup (cairo_scaled_font_map->hash_table, &scaled_font->hash_entry); @@ -602,6 +615,26 @@ _hash_mix_bits (uint32_t hash) return hash; } +static uint32_t +_cairo_scaled_font_compute_hash (cairo_scaled_font_t *scaled_font) +{ + uint32_t hash = FNV1_32_INIT; + + /* We do a bytewise hash on the font matrices */ + hash = _hash_matrix_fnv (&scaled_font->font_matrix, hash); + hash = _hash_matrix_fnv (&scaled_font->ctm, hash); + hash = _hash_mix_bits (hash); + + hash ^= (unsigned long) scaled_font->original_font_face; + hash ^= cairo_font_options_hash (&scaled_font->options); + + /* final mixing of bits */ + hash = _hash_mix_bits (hash); + assert (hash != ZOMBIE); + + return hash; +} + static void _cairo_scaled_font_init_key (cairo_scaled_font_t *scaled_font, cairo_font_face_t *font_face, @@ -609,8 +642,6 @@ _cairo_scaled_font_init_key (cairo_scaled_font_t *scaled_font, const cairo_matrix_t *ctm, const cairo_font_options_t *options) { - uint32_t hash = FNV1_32_INIT; - scaled_font->status = CAIRO_STATUS_SUCCESS; scaled_font->placeholder = FALSE; scaled_font->font_face = font_face; @@ -622,19 +653,8 @@ _cairo_scaled_font_init_key (cairo_scaled_font_t *scaled_font, scaled_font->ctm.y0 = 0.; _cairo_font_options_init_copy (&scaled_font->options, options); - /* We do a bytewise hash on the font matrices */ - hash = _hash_matrix_fnv (&scaled_font->font_matrix, hash); - hash = _hash_matrix_fnv (&scaled_font->ctm, hash); - hash = _hash_mix_bits (hash); - - hash ^= (unsigned long) scaled_font->font_face; - hash ^= cairo_font_options_hash (&scaled_font->options); - - /* final mixing of bits */ - hash = _hash_mix_bits (hash); - - assert (hash != ZOMBIE); - scaled_font->hash_entry.hash = hash; + scaled_font->hash_entry.hash = + _cairo_scaled_font_compute_hash (scaled_font); } static cairo_bool_t @@ -689,8 +709,16 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font, if (unlikely (status)) return status; - _cairo_scaled_font_init_key (scaled_font, font_face, - font_matrix, ctm, options); + scaled_font->status = CAIRO_STATUS_SUCCESS; + scaled_font->placeholder = FALSE; + scaled_font->font_face = font_face; + scaled_font->original_font_face = font_face; + scaled_font->font_matrix = *font_matrix; + scaled_font->ctm = *ctm; + /* ignore translation values in the ctm */ + scaled_font->ctm.x0 = 0.; + scaled_font->ctm.y0 = 0.; + _cairo_font_options_init_copy (&scaled_font->options, options); cairo_matrix_multiply (&scaled_font->scale, &scaled_font->font_matrix, @@ -936,6 +964,8 @@ _cairo_scaled_glyph_find_private (cairo_scaled_glyph_t *scaled_glyph, * * Return value: a newly created #cairo_scaled_font_t. Destroy with * cairo_scaled_font_destroy() + * + * Since: 1.0 **/ cairo_scaled_font_t * cairo_scaled_font_create (cairo_font_face_t *font_face, @@ -996,106 +1026,88 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, scaled_font->hash_entry.hash = ZOMBIE; dead = scaled_font; font_map->mru_scaled_font = NULL; - - if (font_face->backend->get_implementation != NULL) { - font_face = font_face->backend->get_implementation (font_face, - font_matrix, - ctm, - options); - if (unlikely (font_face->status)) { - _cairo_scaled_font_map_unlock (); - cairo_scaled_font_destroy (scaled_font); - return _cairo_scaled_font_create_in_error (font_face->status); - } - } - - _cairo_scaled_font_init_key (&key, original_font_face, - font_matrix, ctm, options); } - else - { - if (font_face->backend->get_implementation != NULL) { - font_face = font_face->backend->get_implementation (font_face, - font_matrix, - ctm, - options); - if (unlikely (font_face->status)) { - _cairo_scaled_font_map_unlock (); - return _cairo_scaled_font_create_in_error (font_face->status); - } - } - _cairo_scaled_font_init_key (&key, original_font_face, - font_matrix, ctm, options); + _cairo_scaled_font_init_key (&key, font_face, font_matrix, ctm, options); - while ((scaled_font = _cairo_hash_table_lookup (font_map->hash_table, - &key.hash_entry))) - { - if (! scaled_font->placeholder) - break; + while ((scaled_font = _cairo_hash_table_lookup (font_map->hash_table, + &key.hash_entry))) + { + if (! scaled_font->placeholder) + break; - /* If the scaled font is being created (happens for user-font), - * just wait until it's done, then retry */ - _cairo_scaled_font_placeholder_wait_for_creation_to_finish (scaled_font); - } + /* If the scaled font is being created (happens for user-font), + * just wait until it's done, then retry */ + _cairo_scaled_font_placeholder_wait_for_creation_to_finish (scaled_font); + } - /* Return existing scaled_font if it exists in the hash table. */ - if (scaled_font != NULL) { - /* If the original reference count is 0, then this font must have - * been found in font_map->holdovers, (which means this caching is - * actually working). So now we remove it from the holdovers - * array, unless we caught the font in the middle of destruction. - */ - if (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&scaled_font->ref_count)) { - if (scaled_font->holdover) { - int i; - - for (i = 0; i < font_map->num_holdovers; i++) { - if (font_map->holdovers[i] == scaled_font) { - font_map->num_holdovers--; - memmove (&font_map->holdovers[i], - &font_map->holdovers[i+1], - (font_map->num_holdovers - i) * sizeof (cairo_scaled_font_t*)); - break; - } + if (scaled_font != NULL) { + /* If the original reference count is 0, then this font must have + * been found in font_map->holdovers, (which means this caching is + * actually working). So now we remove it from the holdovers + * array, unless we caught the font in the middle of destruction. + */ + if (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&scaled_font->ref_count)) { + if (scaled_font->holdover) { + int i; + + for (i = 0; i < font_map->num_holdovers; i++) { + if (font_map->holdovers[i] == scaled_font) { + font_map->num_holdovers--; + memmove (&font_map->holdovers[i], + &font_map->holdovers[i+1], + (font_map->num_holdovers - i) * sizeof (cairo_scaled_font_t*)); + break; } - - scaled_font->holdover = FALSE; } - /* reset any error status */ - scaled_font->status = CAIRO_STATUS_SUCCESS; + scaled_font->holdover = FALSE; } - if (likely (scaled_font->status == CAIRO_STATUS_SUCCESS)) { - /* We increment the reference count manually here, (rather - * than calling into cairo_scaled_font_reference), since we - * must modify the reference count while our lock is still - * held. */ - - old = font_map->mru_scaled_font; - font_map->mru_scaled_font = scaled_font; - /* increment reference count for the mru cache */ - _cairo_reference_count_inc (&scaled_font->ref_count); - /* and increment for the returned reference */ - _cairo_reference_count_inc (&scaled_font->ref_count); - _cairo_scaled_font_map_unlock (); - - cairo_scaled_font_destroy (old); - if (font_face != original_font_face) - cairo_font_face_destroy (font_face); - - return scaled_font; - } + /* reset any error status */ + scaled_font->status = CAIRO_STATUS_SUCCESS; + } + + if (likely (scaled_font->status == CAIRO_STATUS_SUCCESS)) { + /* We increment the reference count manually here, (rather + * than calling into cairo_scaled_font_reference), since we + * must modify the reference count while our lock is still + * held. */ + + old = font_map->mru_scaled_font; + font_map->mru_scaled_font = scaled_font; + /* increment reference count for the mru cache */ + _cairo_reference_count_inc (&scaled_font->ref_count); + /* and increment for the returned reference */ + _cairo_reference_count_inc (&scaled_font->ref_count); + _cairo_scaled_font_map_unlock (); + + cairo_scaled_font_destroy (old); + if (font_face != original_font_face) + cairo_font_face_destroy (font_face); - /* the font has been put into an error status - abandon the cache */ - _cairo_hash_table_remove (font_map->hash_table, - &scaled_font->hash_entry); - scaled_font->hash_entry.hash = ZOMBIE; + return scaled_font; } + + /* the font has been put into an error status - abandon the cache */ + _cairo_hash_table_remove (font_map->hash_table, + &scaled_font->hash_entry); + scaled_font->hash_entry.hash = ZOMBIE; } + /* Otherwise create it and insert it into the hash table. */ + if (font_face->backend->get_implementation != NULL) { + font_face = font_face->backend->get_implementation (font_face, + font_matrix, + ctm, + options); + if (unlikely (font_face->status)) { + _cairo_scaled_font_map_unlock (); + return _cairo_scaled_font_create_in_error (font_face->status); + } + } + status = font_face->backend->scaled_font_create (font_face, font_matrix, ctm, options, &scaled_font); /* Did we leave the backend in an error state? */ @@ -1131,6 +1143,8 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, scaled_font->original_font_face = cairo_font_face_reference (original_font_face); + scaled_font->hash_entry.hash = _cairo_scaled_font_compute_hash(scaled_font); + status = _cairo_hash_table_insert (font_map->hash_table, &scaled_font->hash_entry); if (likely (status == CAIRO_STATUS_SUCCESS)) { @@ -1229,6 +1243,8 @@ _cairo_scaled_font_reset_static_data (void) * cairo_scaled_font_get_reference_count(). * * Returns: the referenced #cairo_scaled_font_t + * + * Since: 1.0 **/ cairo_scaled_font_t * cairo_scaled_font_reference (cairo_scaled_font_t *scaled_font) @@ -1252,6 +1268,8 @@ slim_hidden_def (cairo_scaled_font_reference); * Decreases the reference count on @font by one. If the result * is zero, then @font and all associated resources are freed. * See cairo_scaled_font_reference(). + * + * Since: 1.0 **/ void cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font) @@ -1408,6 +1426,8 @@ slim_hidden_def (cairo_scaled_font_set_user_data); * @extents: a #cairo_font_extents_t which to store the retrieved extents. * * Gets the metrics for a #cairo_scaled_font_t. + * + * Since: 1.0 **/ void cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font, @@ -1505,6 +1525,8 @@ ZERO_EXTENTS: * * Note that whitespace glyphs do not contribute to the size of the * rectangle (extents.width and extents.height). + * + * Since: 1.0 **/ void cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, @@ -2088,6 +2110,29 @@ cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, } slim_hidden_def (cairo_scaled_font_text_to_glyphs); +/* XXX: Shoot me - cairo has two basic ways of rendring text in API. + * The first way is cairo_show_text() and the second way is + * cairo_show_glyphs(). + * + * For the first method, each glyph location is advanced by x_advance + * and y_advance computed from glyph metrics. For the second method, + * app is responsible for supplying the glyph location. This gives us + * opportunity to check whether the computed x_advance and _y_advance + * is equala/larger than supplied glyphs difference for each adjacent + * glyphs. The rational is that if the spacing between glyphs is at + * least larger than computed x_advance/y_advance, there should be no + * overlapping in text portion of the text images. + */ +static inline cairo_bool_t +_glyph_is_next_to_glyph (cairo_glyph_t *prev, + cairo_glyph_t *current, + double x_advance, + double y_advance) +{ + return current->x - prev->x >= x_advance - TOLERANCE && + current->y - prev->y >= y_advance - TOLERANCE; +} + static inline cairo_bool_t _range_contains_glyph (const cairo_box_t *extents, cairo_fixed_t left, @@ -2095,6 +2140,9 @@ _range_contains_glyph (const cairo_box_t *extents, cairo_fixed_t right, cairo_fixed_t bottom) { + if (left == right || top == bottom) + return FALSE; + return right > extents->p1.x && left < extents->p2.x && bottom > extents->p1.y && @@ -2152,8 +2200,10 @@ _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, cairo_box_t box = { { INT_MAX, INT_MAX }, { INT_MIN, INT_MIN }}; cairo_scaled_glyph_t *glyph_cache[64]; cairo_bool_t overlap = overlap_out ? FALSE : TRUE; + cairo_scaled_glyph_t *prev_scaled_glyph = NULL; cairo_round_glyph_positions_t round_glyph_positions = _cairo_font_options_get_round_glyph_positions (&scaled_font->options); int i; + cairo_bool_t is_next = FALSE; if (unlikely (scaled_font->status)) return scaled_font->status; @@ -2203,13 +2253,22 @@ _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, y1 = y + scaled_glyph->bbox.p1.y; y2 = y + scaled_glyph->bbox.p2.y; - if (overlap == FALSE) - overlap = _range_contains_glyph (&box, x1, y1, x2, y2); + if (prev_scaled_glyph != NULL && overlap == FALSE) { + is_next = _glyph_is_next_to_glyph ((cairo_glyph_t *)&glyphs[i-1], + (cairo_glyph_t *)&glyphs[i], + prev_scaled_glyph->metrics.x_advance, + prev_scaled_glyph->metrics.y_advance); + + if (is_next == FALSE) + overlap = _range_contains_glyph (&box, x1, y1, x2, y2); + } if (x1 < box.p1.x) box.p1.x = x1; if (x2 > box.p2.x) box.p2.x = x2; if (y1 < box.p1.y) box.p1.y = y1; if (y2 > box.p2.y) box.p2.y = y2; + + prev_scaled_glyph = scaled_glyph; } _cairo_scaled_font_thaw_cache (scaled_font); diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c index 811b015..2149e7e 100644 --- a/src/cairo-script-surface.c +++ b/src/cairo-script-surface.c @@ -42,6 +42,28 @@ * without having to copy and hold the data in memory. */ +/** + * SECTION:cairo-script + * @Title: Script Surfaces + * @Short_Description: Rendering to replayable scripts + * @See_Also: #cairo_surface_t + * + * The script surface provides the ability to render to a native + * script that matches the cairo drawing model. The scripts can + * be replayed using tools under the util/cairo-script directoriy, + * or with cairo-perf-trace. + **/ + +/** + * CAIRO_HAS_SCRIPT_SURFACE: + * + * Defined if the script surface backend is available. + * The script surface backend is always built in since 1.12. + * + * Since: 1.12 + **/ + + #include "cairoint.h" #include "cairo-script.h" @@ -51,13 +73,14 @@ #include "cairo-default-context-private.h" #include "cairo-device-private.h" #include "cairo-error-private.h" -#include "cairo-list-private.h" +#include "cairo-list-inline.h" #include "cairo-image-surface-private.h" -#include "cairo-recording-surface-private.h" #include "cairo-output-stream-private.h" +#include "cairo-pattern-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-scaled-font-private.h" #include "cairo-surface-clipper-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-subsurface-private.h" #include "cairo-surface-wrapper-private.h" @@ -985,7 +1008,7 @@ _emit_mesh_pattern (cairo_script_surface_t *surface, cairo_path_data_t *data; int j; - _cairo_output_stream_printf (ctx->stream, "\n mesh-begin-patch"); + _cairo_output_stream_printf (ctx->stream, "\n begin-patch"); path = cairo_mesh_pattern_get_path (mesh, i); if (unlikely (path->status)) @@ -996,17 +1019,17 @@ _emit_mesh_pattern (cairo_script_surface_t *surface, switch (data->header.type) { case CAIRO_PATH_MOVE_TO: _cairo_output_stream_printf (ctx->stream, - "\n %f %f mesh-move-to", + "\n %f %f m", data[1].point.x, data[1].point.y); break; case CAIRO_PATH_LINE_TO: _cairo_output_stream_printf (ctx->stream, - "\n %f %f mesh-line-to", + "\n %f %f l", data[1].point.x, data[1].point.y); break; case CAIRO_PATH_CURVE_TO: _cairo_output_stream_printf (ctx->stream, - "\n %f %f %f %f %f %f mesh-curve-to", + "\n %f %f %f %f %f %f c", data[1].point.x, data[1].point.y, data[2].point.x, data[2].point.y, data[3].point.x, data[3].point.y); @@ -1024,7 +1047,7 @@ _emit_mesh_pattern (cairo_script_surface_t *surface, if (unlikely (status)) return status; _cairo_output_stream_printf (ctx->stream, - "\n %d %f %f mesh-set-control-point", + "\n %d %f %f set-control-point", j, x, y); } @@ -1036,11 +1059,11 @@ _emit_mesh_pattern (cairo_script_surface_t *surface, return status; _cairo_output_stream_printf (ctx->stream, - "\n %d %f %f %f %f mesh-set-corner-color", + "\n %d %f %f %f %f set-corner-color", j, r, g, b, a); } - _cairo_output_stream_printf (ctx->stream, "\n mesh-end-patch"); + _cairo_output_stream_printf (ctx->stream, "\n end-patch"); } return CAIRO_STATUS_SUCCESS; @@ -1469,7 +1492,6 @@ _emit_image_surface (cairo_script_surface_t *surface, _cairo_output_stream_puts (ctx->stream, "~> set-mime-data\n"); } - attach_snapshot (ctx, &image->base); return CAIRO_INT_STATUS_SUCCESS; } @@ -1527,7 +1549,7 @@ _emit_surface_pattern (cairo_script_surface_t *surface, { cairo_script_context_t *ctx = to_context (surface); cairo_surface_pattern_t *surface_pattern; - cairo_surface_t *source, *snapshot; + cairo_surface_t *source, *snapshot, *free_me = NULL; cairo_surface_t *take_snapshot = NULL; cairo_int_status_t status; @@ -1546,7 +1568,7 @@ _emit_surface_pattern (cairo_script_surface_t *surface, if (_cairo_surface_snapshot_is_reused (source)) take_snapshot = source; - source = _cairo_surface_snapshot_get_target (source); + free_me = source = _cairo_surface_snapshot_get_target (source); } switch ((int) source->backend->type) { @@ -1563,6 +1585,7 @@ _emit_surface_pattern (cairo_script_surface_t *surface, status = _emit_image_surface_pattern (surface, source); break; } + cairo_surface_destroy (free_me); if (unlikely (status)) return status; @@ -1574,6 +1597,30 @@ _emit_surface_pattern (cairo_script_surface_t *surface, } static cairo_int_status_t +_emit_raster_pattern (cairo_script_surface_t *surface, + const cairo_pattern_t *pattern) +{ + cairo_surface_t *source; + cairo_int_status_t status; + + source = _cairo_raster_source_pattern_acquire (pattern, &surface->base, NULL); + if (unlikely (source == NULL)) { + ASSERT_NOT_REACHED; + return CAIRO_INT_STATUS_UNSUPPORTED; + } + if (unlikely (source->status)) + return source->status; + + status = _emit_image_surface_pattern (surface, source); + _cairo_raster_source_pattern_release (pattern, source); + if (unlikely (status)) + return status; + + _cairo_output_stream_puts (to_context(surface)->stream, "pattern"); + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_int_status_t _emit_pattern (cairo_script_surface_t *surface, const cairo_pattern_t *pattern) { @@ -1603,6 +1650,10 @@ _emit_pattern (cairo_script_surface_t *surface, status = _emit_surface_pattern (surface, pattern); is_default_extend = pattern->extend == CAIRO_EXTEND_SURFACE_DEFAULT; break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + status = _emit_raster_pattern (surface, pattern); + is_default_extend = pattern->extend == CAIRO_EXTEND_SURFACE_DEFAULT; + break; default: ASSERT_NOT_REACHED; @@ -2040,6 +2091,21 @@ _device_destroy (void *abstract_device) free (ctx); } +static cairo_surface_t * +_cairo_script_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_script_surface_t *surface = abstract_surface; + + if (extents) { + extents->x = extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + } + + return &surface->base; +} + static cairo_status_t _cairo_script_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -3507,6 +3573,7 @@ _cairo_script_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_script_surface_source, _cairo_script_surface_acquire_source_image, _cairo_script_surface_release_source_image, _cairo_script_surface_snapshot, @@ -3666,6 +3733,23 @@ _cairo_script_context_create (cairo_output_stream_t *stream) return &ctx->base; } +/** + * cairo_script_create: + * @filename: the name (path) of the file to write the script to + * + * Creates a output device for emitting the script, used when + * creating the individual surfaces. + * + * Return value: a pointer to the newly created device. The caller + * owns the surface and should call cairo_device_destroy() when done + * with it. + * + * This function always returns a valid pointer, but it will return a + * pointer to a "nil" device if an error such as out of memory + * occurs. You can use cairo_device_status() to check for this. + * + * Since: 1.12 + **/ cairo_device_t * cairo_script_create (const char *filename) { @@ -3679,6 +3763,24 @@ cairo_script_create (const char *filename) return _cairo_script_context_create (stream); } +/** + * cairo_script_create_for_stream: + * @write_func: callback function passed the bytes written to the script + * @closure: user data to be passed to the callback + * + * Creates a output device for emitting the script, used when + * creating the individual surfaces. + * + * Return value: a pointer to the newly created device. The caller + * owns the surface and should call cairo_device_destroy() when done + * with it. + * + * This function always returns a valid pointer, but it will return a + * pointer to a "nil" device if an error such as out of memory + * occurs. You can use cairo_device_status() to check for this. + * + * Since: 1.12 + **/ cairo_device_t * cairo_script_create_for_stream (cairo_write_func_t write_func, void *closure) @@ -3693,12 +3795,22 @@ cairo_script_create_for_stream (cairo_write_func_t write_func, return _cairo_script_context_create (stream); } +/** + * cairo_script_write_comment: + * @script: the script (output device) + * @comment: the string to emit + * @len:the length of the sting to write, or -1 to use strlen() + * + * Emit a string verbatim into the script. + * + * Since: 1.12 + **/ void -cairo_script_write_comment (cairo_device_t *device, +cairo_script_write_comment (cairo_device_t *script, const char *comment, int len) { - cairo_script_context_t *context = (cairo_script_context_t *) device; + cairo_script_context_t *context = (cairo_script_context_t *) script; if (len < 0) len = strlen (comment); @@ -3708,36 +3820,74 @@ cairo_script_write_comment (cairo_device_t *device, _cairo_output_stream_puts (context->stream, "\n"); } +/** + * cairo_script_set_mode: + * @script: The script (output device) + * @mode: the new mode + * + * Change the output mode of the script + * + * Since: 1.12 + **/ void -cairo_script_set_mode (cairo_device_t *device, +cairo_script_set_mode (cairo_device_t *script, cairo_script_mode_t mode) { - cairo_script_context_t *context = (cairo_script_context_t *) device; + cairo_script_context_t *context = (cairo_script_context_t *) script; context->mode = mode; } +/** + * cairo_script_get_mode: + * @script: The script (output device) to query + * + * Queries the script for its current output mode. + * + * Return value: the current output mode of the script + * + * Since: 1.12 + **/ cairo_script_mode_t -cairo_script_get_mode (cairo_device_t *device) +cairo_script_get_mode (cairo_device_t *script) { - cairo_script_context_t *context = (cairo_script_context_t *) device; + cairo_script_context_t *context = (cairo_script_context_t *) script; return context->mode; } +/** + * cairo_script_surface_create: + * @script: the script (output device) + * @content: the content of the surface + * @width: width in pixels + * @height: height in pixels + * + * Create a new surface that will emit its rendering through @script + * + * Return value: a pointer to the newly created surface. The caller + * owns the surface and should call cairo_surface_destroy() when done + * with it. + * + * This function always returns a valid pointer, but it will return a + * pointer to a "nil" surface if an error such as out of memory + * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.12 + **/ cairo_surface_t * -cairo_script_surface_create (cairo_device_t *device, +cairo_script_surface_create (cairo_device_t *script, cairo_content_t content, double width, double height) { cairo_rectangle_t *extents, r; - if (unlikely (device->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) + if (unlikely (script->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) return _cairo_surface_create_in_error (CAIRO_STATUS_DEVICE_TYPE_MISMATCH); - if (unlikely (device->status)) - return _cairo_surface_create_in_error (device->status); + if (unlikely (script->status)) + return _cairo_surface_create_in_error (script->status); extents = NULL; if (width > 0 && height > 0) { @@ -3746,24 +3896,42 @@ cairo_script_surface_create (cairo_device_t *device, r.height = height; extents = &r; } - return &_cairo_script_surface_create_internal ((cairo_script_context_t *) device, + return &_cairo_script_surface_create_internal ((cairo_script_context_t *) script, content, extents, NULL)->base; } slim_hidden_def (cairo_script_surface_create); +/** + * cairo_script_surface_create_for_target: + * @script: the script (output device) + * @target: a target surface to wrap + * + * Create a pxoy surface that will render to @target and record + * the operations to @device. + * + * Return value: a pointer to the newly created surface. The caller + * owns the surface and should call cairo_surface_destroy() when done + * with it. + * + * This function always returns a valid pointer, but it will return a + * pointer to a "nil" surface if an error such as out of memory + * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.12 + **/ cairo_surface_t * -cairo_script_surface_create_for_target (cairo_device_t *device, +cairo_script_surface_create_for_target (cairo_device_t *script, cairo_surface_t *target) { cairo_rectangle_int_t extents; cairo_rectangle_t rect, *r; - if (unlikely (device->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) + if (unlikely (script->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) return _cairo_surface_create_in_error (CAIRO_STATUS_DEVICE_TYPE_MISMATCH); - if (unlikely (device->status)) - return _cairo_surface_create_in_error (device->status); + if (unlikely (script->status)) + return _cairo_surface_create_in_error (script->status); if (unlikely (target->status)) return _cairo_surface_create_in_error (target->status); @@ -3775,24 +3943,35 @@ cairo_script_surface_create_for_target (cairo_device_t *device, rect.height = extents.height; r= ▭ } - return &_cairo_script_surface_create_internal ((cairo_script_context_t *) device, + return &_cairo_script_surface_create_internal ((cairo_script_context_t *) script, target->content, r, target)->base; } +/** + * cairo_script_from_recording_surface: + * @script: the script (output device) + * @recording_surface: the recording surface to replay + * + * Converts the record operations in @recording_surface into a script. + * + * Return value: #CAIRO_STATUS_SUCCESS on successful completion or an error code. + * + * Since: 1.12 + **/ cairo_status_t -cairo_script_from_recording_surface (cairo_device_t *device, +cairo_script_from_recording_surface (cairo_device_t *script, cairo_surface_t *recording_surface) { cairo_rectangle_t r, *extents; cairo_surface_t *surface; cairo_status_t status; - if (unlikely (device->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) + if (unlikely (script->backend->type != CAIRO_DEVICE_TYPE_SCRIPT)) return _cairo_error (CAIRO_STATUS_DEVICE_TYPE_MISMATCH); - if (unlikely (device->status)) - return _cairo_error (device->status); + if (unlikely (script->status)) + return _cairo_error (script->status); if (unlikely (recording_surface->status)) return recording_surface->status; @@ -3804,7 +3983,7 @@ cairo_script_from_recording_surface (cairo_device_t *device, if (_cairo_recording_surface_get_bounds (recording_surface, &r)) extents = &r; - surface = &_cairo_script_surface_create_internal ((cairo_script_context_t *) device, + surface = &_cairo_script_surface_create_internal ((cairo_script_context_t *) script, recording_surface->content, extents, NULL)->base; diff --git a/src/cairo-script.h b/src/cairo-script.h index b82230f..b5a8cf3 100644 --- a/src/cairo-script.h +++ b/src/cairo-script.h @@ -42,9 +42,18 @@ CAIRO_BEGIN_DECLS +/** + * cairo_script_mode_t: + * @CAIRO_SCRIPT_MODE_ASCII: the output will be in readable text (default). (Since 1.12) + * @CAIRO_SCRIPT_MODE_BINARY: the output will use byte codes. (Since 1.12) + * + * A set of script output variants. + * + * Since: 1.12 + **/ typedef enum { - CAIRO_SCRIPT_MODE_BINARY, - CAIRO_SCRIPT_MODE_ASCII + CAIRO_SCRIPT_MODE_ASCII, + CAIRO_SCRIPT_MODE_BINARY } cairo_script_mode_t; cairo_public cairo_device_t * diff --git a/src/cairo-shape-mask-compositor.c b/src/cairo-shape-mask-compositor.c new file mode 100644 index 0000000..c2425b0 --- /dev/null +++ b/src/cairo-shape-mask-compositor.c @@ -0,0 +1,337 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Chris Wilson + */ + +#include "cairoint.h" + +#include "cairo-compositor-private.h" +#include "cairo-clip-private.h" +#include "cairo-pattern-private.h" +#include "cairo-surface-private.h" +#include "cairo-surface-offset-private.h" + +static cairo_int_status_t +_cairo_shape_mask_compositor_stroke (const cairo_compositor_t *_compositor, + cairo_composite_rectangles_t *extents, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_surface_t *mask; + cairo_surface_pattern_t pattern; + cairo_int_status_t status; + cairo_clip_t *clip; + + if (! extents->is_bounded) + return CAIRO_INT_STATUS_UNSUPPORTED; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = _cairo_surface_create_similar_scratch (extents->surface, + CAIRO_CONTENT_ALPHA, + extents->bounded.width, + extents->bounded.height); + if (unlikely (mask->status)) + return mask->status; + + clip = extents->clip; + if (! _cairo_clip_is_region (clip)) + clip = _cairo_clip_copy_region (clip); + + if (! mask->is_clear) { + status = _cairo_surface_offset_paint (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_CLEAR, + &_cairo_pattern_clear.base, + clip); + if (unlikely (status)) + goto error; + } + + status = _cairo_surface_offset_stroke (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_ADD, + &_cairo_pattern_white.base, + path, style, ctm, ctm_inverse, + tolerance, antialias, + clip); + if (unlikely (status)) + goto error; + + if (clip != extents->clip) { + status = _cairo_clip_combine_with_surface (extents->clip, mask, + extents->bounded.x, + extents->bounded.y); + if (unlikely (status)) + goto error; + } + + _cairo_pattern_init_for_surface (&pattern, mask); + cairo_matrix_init_translate (&pattern.base.matrix, + -extents->bounded.x, + -extents->bounded.y); + pattern.base.filter = CAIRO_FILTER_NEAREST; + pattern.base.extend = CAIRO_EXTEND_NONE; + if (extents->op == CAIRO_OPERATOR_SOURCE) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_DEST_OUT, + &_cairo_pattern_white.base, + &pattern.base, + clip); + if ((status == CAIRO_INT_STATUS_SUCCESS)) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_ADD, + &extents->source_pattern.base, + &pattern.base, + clip); + } + } else { + status = _cairo_surface_mask (extents->surface, + extents->op, + &extents->source_pattern.base, + &pattern.base, + clip); + } + _cairo_pattern_fini (&pattern.base); + +error: + cairo_surface_destroy (mask); + if (clip != extents->clip) + _cairo_clip_destroy (clip); + return status; +} + +static cairo_int_status_t +_cairo_shape_mask_compositor_fill (const cairo_compositor_t *_compositor, + cairo_composite_rectangles_t *extents, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_surface_t *mask; + cairo_surface_pattern_t pattern; + cairo_int_status_t status; + cairo_clip_t *clip; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if (! extents->is_bounded) + return CAIRO_INT_STATUS_UNSUPPORTED; + + mask = _cairo_surface_create_similar_scratch (extents->surface, + CAIRO_CONTENT_ALPHA, + extents->bounded.width, + extents->bounded.height); + if (unlikely (mask->status)) + return mask->status; + + clip = extents->clip; + if (! _cairo_clip_is_region (clip)) + clip = _cairo_clip_copy_region (clip); + + if (! mask->is_clear) { + status = _cairo_surface_offset_paint (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_CLEAR, + &_cairo_pattern_clear.base, + clip); + if (unlikely (status)) + goto error; + } + + status = _cairo_surface_offset_fill (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_ADD, + &_cairo_pattern_white.base, + path, fill_rule, tolerance, antialias, + clip); + if (unlikely (status)) + goto error; + + if (clip != extents->clip) { + status = _cairo_clip_combine_with_surface (extents->clip, mask, + extents->bounded.x, + extents->bounded.y); + if (unlikely (status)) + goto error; + } + + _cairo_pattern_init_for_surface (&pattern, mask); + cairo_matrix_init_translate (&pattern.base.matrix, + -extents->bounded.x, + -extents->bounded.y); + pattern.base.filter = CAIRO_FILTER_NEAREST; + pattern.base.extend = CAIRO_EXTEND_NONE; + if (extents->op == CAIRO_OPERATOR_SOURCE) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_DEST_OUT, + &_cairo_pattern_white.base, + &pattern.base, + clip); + if ((status == CAIRO_INT_STATUS_SUCCESS)) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_ADD, + &extents->source_pattern.base, + &pattern.base, + clip); + } + } else { + status = _cairo_surface_mask (extents->surface, + extents->op, + &extents->source_pattern.base, + &pattern.base, + clip); + } + _cairo_pattern_fini (&pattern.base); + +error: + if (clip != extents->clip) + _cairo_clip_destroy (clip); + cairo_surface_destroy (mask); + return status; +} + +static cairo_int_status_t +_cairo_shape_mask_compositor_glyphs (const cairo_compositor_t *_compositor, + cairo_composite_rectangles_t *extents, + cairo_scaled_font_t *scaled_font, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_bool_t overlap) +{ + cairo_surface_t *mask; + cairo_surface_pattern_t pattern; + cairo_int_status_t status; + cairo_clip_t *clip; + + if (! extents->is_bounded) + return CAIRO_INT_STATUS_UNSUPPORTED; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = _cairo_surface_create_similar_scratch (extents->surface, + CAIRO_CONTENT_ALPHA, + extents->bounded.width, + extents->bounded.height); + if (unlikely (mask->status)) + return mask->status; + + clip = extents->clip; + if (! _cairo_clip_is_region (clip)) + clip = _cairo_clip_copy_region (clip); + + if (! mask->is_clear) { + status = _cairo_surface_offset_paint (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_CLEAR, + &_cairo_pattern_clear.base, + clip); + if (unlikely (status)) + goto error; + } + + status = _cairo_surface_offset_glyphs (mask, + extents->bounded.x, + extents->bounded.y, + CAIRO_OPERATOR_ADD, + &_cairo_pattern_white.base, + scaled_font, glyphs, num_glyphs, + clip); + if (unlikely (status)) + goto error; + + if (clip != extents->clip) { + status = _cairo_clip_combine_with_surface (extents->clip, mask, + extents->bounded.x, + extents->bounded.y); + if (unlikely (status)) + goto error; + } + + _cairo_pattern_init_for_surface (&pattern, mask); + cairo_matrix_init_translate (&pattern.base.matrix, + -extents->bounded.x, + -extents->bounded.y); + pattern.base.filter = CAIRO_FILTER_NEAREST; + pattern.base.extend = CAIRO_EXTEND_NONE; + if (extents->op == CAIRO_OPERATOR_SOURCE) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_DEST_OUT, + &_cairo_pattern_white.base, + &pattern.base, + clip); + if ((status == CAIRO_INT_STATUS_SUCCESS)) { + status = _cairo_surface_mask (extents->surface, + CAIRO_OPERATOR_ADD, + &extents->source_pattern.base, + &pattern.base, + clip); + } + } else { + status = _cairo_surface_mask (extents->surface, + extents->op, + &extents->source_pattern.base, + &pattern.base, + clip); + } + _cairo_pattern_fini (&pattern.base); + +error: + if (clip != extents->clip) + _cairo_clip_destroy (clip); + cairo_surface_destroy (mask); + return status; +} + +void +_cairo_shape_mask_compositor_init (cairo_compositor_t *compositor, + const cairo_compositor_t *delegate) +{ + compositor->delegate = delegate; + + compositor->paint = NULL; + compositor->mask = NULL; + compositor->fill = _cairo_shape_mask_compositor_fill; + compositor->stroke = _cairo_shape_mask_compositor_stroke; + compositor->glyphs = _cairo_shape_mask_compositor_glyphs; +} diff --git a/src/cairo-skia-surface.cpp b/src/cairo-skia-surface.cpp index 537c1bc..bf6b14a 100644 --- a/src/cairo-skia-surface.cpp +++ b/src/cairo-skia-surface.cpp @@ -39,6 +39,7 @@ #include "cairo-skia.h" #include "cairo-surface-clipper-private.h" +#include "cairo-image-surface-inline.h" #include #include @@ -1151,7 +1152,7 @@ cairo_skia_surface_get_image (cairo_surface_t *surface) return &_get_image_surface (esurf)->base; } -/*** +/* Todo: @@ -1171,4 +1172,4 @@ Medium: Low: - implement EXTEND_NONE -***/ +*/ diff --git a/src/cairo-spans-compositor-private.h b/src/cairo-spans-compositor-private.h index cab09f6..d8b94fb 100644 --- a/src/cairo-spans-compositor-private.h +++ b/src/cairo-spans-compositor-private.h @@ -61,6 +61,17 @@ struct cairo_spans_compositor { const cairo_color_t *color, cairo_boxes_t *boxes); + cairo_int_status_t (*draw_image_boxes) (void *surface, + cairo_image_surface_t *image, + cairo_boxes_t *boxes, + int dx, int dy); + + cairo_int_status_t (*copy_boxes) (void *surface, + cairo_surface_t *src, + cairo_boxes_t *boxes, + const cairo_rectangle_int_t *extents, + int dx, int dy); + cairo_surface_t * (*pattern_to_surface) (cairo_surface_t *dst, const cairo_pattern_t *pattern, cairo_bool_t is_mask, @@ -84,6 +95,7 @@ struct cairo_spans_compositor { /* general shape masks using a span renderer */ cairo_int_status_t (*renderer_init) (cairo_abstract_span_renderer_t *renderer, const cairo_composite_rectangles_t *extents, + cairo_antialias_t antialias, cairo_bool_t needs_clip); void (*renderer_fini) (cairo_abstract_span_renderer_t *renderer, diff --git a/src/cairo-spans-compositor.c b/src/cairo-spans-compositor.c index cbcd6b3..6cc9a7b 100644 --- a/src/cairo-spans-compositor.c +++ b/src/cairo-spans-compositor.c @@ -42,12 +42,13 @@ #include "cairoint.h" #include "cairo-compositor-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-image-surface-private.h" #include "cairo-paginated-private.h" -#include "cairo-pattern-private.h" +#include "cairo-pattern-inline.h" #include "cairo-region-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-spans-compositor-private.h" #include "cairo-surface-subsurface-private.h" #include "cairo-surface-snapshot-private.h" @@ -77,95 +78,19 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor, cairo_polygon_t *polygon, cairo_fill_rule_t fill_rule, cairo_antialias_t antialias); - -static cairo_int_status_t -get_clip_polygon (const cairo_clip_path_t *clip_path, - cairo_antialias_t antialias, - cairo_polygon_t *polygon, - cairo_fill_rule_t *fill_rule) -{ - cairo_int_status_t status; - cairo_bool_t is_first_polygon = TRUE; - - while (clip_path) { - if (clip_path->antialias == antialias) { - if (is_first_polygon) { - status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, - clip_path->tolerance, - polygon); - *fill_rule = clip_path->fill_rule; - polygon->limits = NULL; - polygon->num_limits = 0; - is_first_polygon = FALSE; - } else if (polygon->num_edges == 0) { - /* Intersecting with empty polygon will generate empty polygon. */ - return CAIRO_INT_STATUS_NOTHING_TO_DO; - } else { - cairo_polygon_t next; - - _cairo_polygon_init (&next, NULL, 0); - status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, - clip_path->tolerance, - &next); - if (likely (status == CAIRO_INT_STATUS_SUCCESS)) - status = _cairo_polygon_intersect (polygon, *fill_rule, - &next, clip_path->fill_rule); - _cairo_polygon_fini (&next); - *fill_rule = CAIRO_FILL_RULE_WINDING; - } - - if (unlikely (status)) - return status; - } - - clip_path = clip_path->prev; - } - - if (polygon->num_edges == 0) - return CAIRO_INT_STATUS_NOTHING_TO_DO; - - assert (is_first_polygon == FALSE); - return CAIRO_INT_STATUS_SUCCESS; -} - -static cairo_int_status_t -composite_clip_polygon (const cairo_spans_compositor_t *compositor, - cairo_surface_t *surface, - cairo_operator_t op, - cairo_polygon_t *polygon, - cairo_fill_rule_t fill_rule, - cairo_antialias_t antialias) -{ - cairo_int_status_t status; - cairo_composite_rectangles_t composite; - - status = _cairo_composite_rectangles_init_for_polygon (&composite, surface, op, - &_cairo_pattern_white.base, - polygon, - NULL); - if (unlikely (status)) - return CAIRO_INT_STATUS_UNSUPPORTED; - - status = composite_polygon (compositor, &composite, - polygon, fill_rule, antialias); - _cairo_composite_rectangles_fini (&composite); - - return status; -} - static cairo_surface_t * get_clip_surface (const cairo_spans_compositor_t *compositor, cairo_surface_t *dst, const cairo_clip_t *clip, const cairo_rectangle_int_t *extents) { + cairo_composite_rectangles_t composite; cairo_surface_t *surface; cairo_box_t box; - cairo_polygon_t polygon0; - cairo_polygon_t polygon1; - cairo_fill_rule_t fill_rule0; - cairo_fill_rule_t fill_rule1; + cairo_polygon_t polygon; + const cairo_clip_path_t *clip_path; cairo_antialias_t antialias; + cairo_fill_rule_t fill_rule; cairo_int_status_t status; assert (clip->path); @@ -177,68 +102,137 @@ get_clip_surface (const cairo_spans_compositor_t *compositor, CAIRO_COLOR_TRANSPARENT); _cairo_box_from_rectangle (&box, extents); - _cairo_polygon_init (&polygon0, &box, 1); - _cairo_polygon_init (&polygon1, &box, 1); + _cairo_polygon_init (&polygon, &box, 1); + + clip_path = clip->path; + status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, + clip_path->tolerance, + &polygon); + if (unlikely (status)) + goto cleanup_polygon; - if (! surface) - return _cairo_surface_create_in_error (CAIRO_INT_STATUS_NO_MEMORY); + antialias = clip_path->antialias; + fill_rule = clip_path->fill_rule; - status = _cairo_clip_get_polygon (clip, &polygon0, &fill_rule0, &antialias); + if (clip->boxes) { + cairo_polygon_t intersect; + cairo_boxes_t tmp; - if (status != CAIRO_INT_STATUS_UNSUPPORTED) { - if (status == CAIRO_INT_STATUS_NOTHING_TO_DO) + _cairo_boxes_init_for_array (&tmp, clip->boxes, clip->num_boxes); + status= _cairo_polygon_init_boxes (&intersect, &tmp); + if (unlikely (status)) goto cleanup_polygon; - _cairo_polygon_translate (&polygon0, -extents->x, -extents->y); - status = composite_clip_polygon (compositor, surface, CAIRO_OPERATOR_ADD, - &polygon0, fill_rule0, antialias); - _cairo_polygon_fini (&polygon0); - _cairo_polygon_fini (&polygon1); + status = _cairo_polygon_intersect (&polygon, fill_rule, + &intersect, CAIRO_FILL_RULE_WINDING); + _cairo_polygon_fini (&intersect); if (unlikely (status)) goto cleanup_polygon; - return surface; + fill_rule = CAIRO_FILL_RULE_WINDING; } - /* Here, we can assume that clip paths have heterogeneous antialias, - * as this code is fallback for that kind of clip. - * This code might not work if all clip paths have equal antialias. - */ - status = get_clip_polygon (clip->path, CAIRO_ANTIALIAS_DEFAULT, &polygon0, &fill_rule0); + polygon.limits = NULL; + polygon.num_limits = 0; - if (unlikely (status)) - goto cleanup_polygon; + clip_path = clip_path->prev; + while (clip_path) { + if (clip_path->antialias == antialias) { + cairo_polygon_t next; + + _cairo_polygon_init (&next, NULL, 0); + status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, + clip_path->tolerance, + &next); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = _cairo_polygon_intersect (&polygon, fill_rule, + &next, clip_path->fill_rule); + _cairo_polygon_fini (&next); + if (unlikely (status)) + goto cleanup_polygon; - status = get_clip_polygon (clip->path, CAIRO_ANTIALIAS_NONE, &polygon1, &fill_rule1); + fill_rule = CAIRO_FILL_RULE_WINDING; + } + + clip_path = clip_path->prev; + } + _cairo_polygon_translate (&polygon, -extents->x, -extents->y); + status = _cairo_composite_rectangles_init_for_polygon (&composite, surface, + CAIRO_OPERATOR_ADD, + &_cairo_pattern_white.base, + &polygon, + NULL); if (unlikely (status)) goto cleanup_polygon; - _cairo_polygon_translate (&polygon0, -extents->x, -extents->y); - status = composite_clip_polygon (compositor, surface, CAIRO_OPERATOR_ADD, - &polygon0, fill_rule0, CAIRO_ANTIALIAS_DEFAULT); - + status = composite_polygon (compositor, &composite, + &polygon, fill_rule, antialias); + _cairo_composite_rectangles_fini (&composite); + _cairo_polygon_fini (&polygon); if (unlikely (status)) - goto cleanup_polygon; + goto error; - _cairo_polygon_translate (&polygon1, -extents->x, -extents->y); - status = composite_clip_polygon (compositor, surface, CAIRO_OPERATOR_IN, - &polygon1, fill_rule1, CAIRO_ANTIALIAS_NONE); + _cairo_polygon_init (&polygon, &box, 1); - if (unlikely (status)) - goto cleanup_polygon; + clip_path = clip->path; + antialias = clip_path->antialias == CAIRO_ANTIALIAS_DEFAULT ? CAIRO_ANTIALIAS_NONE : CAIRO_ANTIALIAS_DEFAULT; + clip_path = clip_path->prev; + while (clip_path) { + if (clip_path->antialias == antialias) { + if (polygon.num_edges == 0) { + status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, + clip_path->tolerance, + &polygon); - _cairo_polygon_fini (&polygon0); - _cairo_polygon_fini (&polygon1); + fill_rule = clip_path->fill_rule; + polygon.limits = NULL; + polygon.num_limits = 0; + } else { + cairo_polygon_t next; + + _cairo_polygon_init (&next, NULL, 0); + status = _cairo_path_fixed_fill_to_polygon (&clip_path->path, + clip_path->tolerance, + &next); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = _cairo_polygon_intersect (&polygon, fill_rule, + &next, clip_path->fill_rule); + _cairo_polygon_fini (&next); + fill_rule = CAIRO_FILL_RULE_WINDING; + } + if (unlikely (status)) + goto error; + } + + clip_path = clip_path->prev; + } + + if (polygon.num_edges) { + _cairo_polygon_translate (&polygon, -extents->x, -extents->y); + status = _cairo_composite_rectangles_init_for_polygon (&composite, surface, + CAIRO_OPERATOR_IN, + &_cairo_pattern_white.base, + &polygon, + NULL); + if (unlikely (status)) + goto cleanup_polygon; + + status = composite_polygon (compositor, &composite, + &polygon, fill_rule, antialias); + _cairo_composite_rectangles_fini (&composite); + _cairo_polygon_fini (&polygon); + if (unlikely (status)) + goto error; + } return surface; cleanup_polygon: - _cairo_polygon_fini (&polygon0); - _cairo_polygon_fini (&polygon1); + _cairo_polygon_fini (&polygon); +error: cairo_surface_destroy (surface); - return _cairo_int_surface_create_in_error (status); } @@ -251,6 +245,8 @@ fixup_unbounded_mask (const cairo_spans_compositor_t *compositor, cairo_surface_t *clip; cairo_int_status_t status; + TRACE((stderr, "%s\n", __FUNCTION__)); + clip = get_clip_surface (compositor, extents->surface, extents->clip, &extents->unbounded); if (unlikely (clip->status)) { @@ -294,6 +290,8 @@ fixup_unbounded_polygon (const cairo_spans_compositor_t *compositor, cairo_antialias_t antialias; cairo_int_status_t status; + TRACE((stderr, "%s\n", __FUNCTION__)); + /* Can we treat the clip as a regular clear-polygon and use it to fill? */ status = _cairo_clip_get_polygon (extents->clip, &polygon, &fill_rule, &antialias); @@ -341,6 +339,7 @@ fixup_unbounded_boxes (const cairo_spans_compositor_t *compositor, assert (boxes->is_pixel_aligned); + TRACE ((stderr, "%s\n", __FUNCTION__)); if (extents->bounded.width == extents->unbounded.width && extents->bounded.height == extents->unbounded.height) { @@ -378,26 +377,41 @@ fixup_unbounded_boxes (const cairo_spans_compositor_t *compositor, assert (status == CAIRO_INT_STATUS_SUCCESS); } - /* Now intersect with the clip boxes */ - if (extents->clip->num_boxes) { - _cairo_boxes_init_for_array (&tmp, - extents->clip->boxes, - extents->clip->num_boxes); - status = _cairo_boxes_intersect (&clear, &tmp, &clear); - if (unlikely (status)) - goto error; - } - /* If we have a clip polygon, we need to intersect with that as well */ if (extents->clip->path) { status = fixup_unbounded_polygon (compositor, extents, &clear); if (status == CAIRO_INT_STATUS_UNSUPPORTED) status = fixup_unbounded_mask (compositor, extents, &clear); } else { - status = compositor->fill_boxes (extents->surface, - CAIRO_OPERATOR_CLEAR, - CAIRO_COLOR_TRANSPARENT, - &clear); + /* Otherwise just intersect with the clip boxes */ + if (extents->clip->num_boxes) { + _cairo_boxes_init_for_array (&tmp, + extents->clip->boxes, + extents->clip->num_boxes); + status = _cairo_boxes_intersect (&clear, &tmp, &clear); + if (unlikely (status)) + goto error; + } + + if (clear.is_pixel_aligned) { + status = compositor->fill_boxes (extents->surface, + CAIRO_OPERATOR_CLEAR, + CAIRO_COLOR_TRANSPARENT, + &clear); + } else { + cairo_composite_rectangles_t composite; + + status = _cairo_composite_rectangles_init_for_boxes (&composite, + extents->surface, + CAIRO_OPERATOR_CLEAR, + &_cairo_pattern_clear.base, + &clear, + NULL); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + status = composite_boxes (compositor, &composite, &clear); + _cairo_composite_rectangles_fini (&composite); + } + } } error: @@ -406,18 +420,12 @@ error: } static cairo_surface_t * -unwrap_surface (const cairo_pattern_t *pattern) +unwrap_source (const cairo_pattern_t *pattern) { - cairo_surface_t *surface; + cairo_rectangle_int_t limit; - surface = ((const cairo_surface_pattern_t *) pattern)->surface; - if (_cairo_surface_is_paginated (surface)) - surface = _cairo_paginated_surface_get_recording (surface); - if (_cairo_surface_is_snapshot (surface)) - surface = _cairo_surface_snapshot_get_target (surface); - if (_cairo_surface_is_observer (surface)) - surface = _cairo_surface_observer_get_target (surface); - return surface; + return _cairo_pattern_get_source ((cairo_surface_pattern_t *)pattern, + &limit); } static cairo_bool_t @@ -444,23 +452,16 @@ recording_pattern_contains_sample (const cairo_pattern_t *pattern, if (pattern->extend == CAIRO_EXTEND_NONE) return TRUE; - surface = (cairo_recording_surface_t *) unwrap_surface (pattern); + surface = (cairo_recording_surface_t *) unwrap_source (pattern); if (surface->unbounded) return TRUE; - if (sample->x >= surface->extents.x && - sample->y >= surface->extents.y && - sample->x + sample->width <= surface->extents.x + surface->extents.width && - sample->y + sample->height <= surface->extents.y + surface->extents.height) - { - return TRUE; - } - - return FALSE; + return _cairo_rectangle_contains_rectangle (&surface->extents, sample); } static cairo_bool_t -op_reduces_to_source (const cairo_composite_rectangles_t *extents) +op_reduces_to_source (const cairo_composite_rectangles_t *extents, + cairo_bool_t no_mask) { if (extents->op == CAIRO_OPERATOR_SOURCE) return TRUE; @@ -468,9 +469,76 @@ op_reduces_to_source (const cairo_composite_rectangles_t *extents) if (extents->surface->is_clear) return extents->op == CAIRO_OPERATOR_OVER || extents->op == CAIRO_OPERATOR_ADD; + if (no_mask && extents->op == CAIRO_OPERATOR_OVER) + return _cairo_pattern_is_opaque (&extents->source_pattern.base, + &extents->source_sample_area); + return FALSE; } +static cairo_status_t +upload_boxes (const cairo_spans_compositor_t *compositor, + const cairo_composite_rectangles_t *extents, + cairo_boxes_t *boxes) +{ + cairo_surface_t *dst = extents->surface; + const cairo_surface_pattern_t *source = &extents->source_pattern.surface; + cairo_surface_t *src; + cairo_rectangle_int_t limit; + cairo_int_status_t status; + int tx, ty; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + src = _cairo_pattern_get_source(source, &limit); + if (!(src->type == CAIRO_SURFACE_TYPE_IMAGE || src->type == dst->type)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (! _cairo_matrix_is_integer_translation (&source->base.matrix, &tx, &ty)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* Check that the data is entirely within the image */ + if (extents->bounded.x + tx < limit.x || extents->bounded.y + ty < limit.y) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (extents->bounded.x + extents->bounded.width + tx > limit.x + limit.width || + extents->bounded.y + extents->bounded.height + ty > limit.y + limit.height) + return CAIRO_INT_STATUS_UNSUPPORTED; + + tx += limit.x; + ty += limit.y; + + if (src->type == CAIRO_SURFACE_TYPE_IMAGE) + status = compositor->draw_image_boxes (dst, + (cairo_image_surface_t *)src, + boxes, tx, ty); + else + status = compositor->copy_boxes (dst, src, boxes, &extents->bounded, + tx, ty); + + return status; +} + +static cairo_bool_t +_clip_is_region (const cairo_clip_t *clip) +{ + int i; + + if (clip->is_region) + return TRUE; + + if (clip->path) + return FALSE; + + for (i = 0; i < clip->num_boxes; i++) { + const cairo_box_t *b = &clip->boxes[i]; + if (!_cairo_fixed_is_integer (b->p1.x | b->p1.y | b->p2.x | b->p2.y)) + return FALSE; + } + + return TRUE; +} + static cairo_int_status_t composite_aligned_boxes (const cairo_spans_compositor_t *compositor, const cairo_composite_rectangles_t *extents, @@ -480,19 +548,24 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, cairo_operator_t op = extents->op; const cairo_pattern_t *source = &extents->source_pattern.base; cairo_int_status_t status; - cairo_bool_t need_clip_mask = extents->clip->path != NULL; + cairo_bool_t need_clip_mask = ! _clip_is_region (extents->clip); cairo_bool_t op_is_source; cairo_bool_t no_mask; cairo_bool_t inplace; + TRACE ((stderr, "%s: need_clip_mask=%d, is-bounded=%d\n", + __FUNCTION__, need_clip_mask, extents->is_bounded)); if (need_clip_mask && ! extents->is_bounded) return CAIRO_INT_STATUS_UNSUPPORTED; - op_is_source = op_reduces_to_source (extents); no_mask = extents->mask_pattern.base.type == CAIRO_PATTERN_TYPE_SOLID && - CAIRO_ALPHA_IS_OPAQUE (extents->mask_pattern.solid.color.alpha); + CAIRO_COLOR_IS_OPAQUE (&extents->mask_pattern.solid.color); + op_is_source = op_reduces_to_source (extents, no_mask); inplace = ! need_clip_mask && op_is_source && no_mask; + TRACE ((stderr, "%s: op-is-source=%d [op=%d], no-mask=%d, inplace=%d\n", + __FUNCTION__, op_is_source, op, no_mask, inplace)); + if (op == CAIRO_OPERATOR_SOURCE && (need_clip_mask || ! no_mask)) { /* SOURCE with a mask is actually a LERP in cairo semantics */ if ((compositor->flags & CAIRO_SPANS_COMPOSITOR_HAS_LERP) == 0) @@ -517,7 +590,7 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, boxes); recording_clip = _cairo_clip_from_boxes (boxes); - status = _cairo_recording_surface_replay_with_clip (unwrap_surface (source), + status = _cairo_recording_surface_replay_with_clip (unwrap_source (source), &source->matrix, dst, recording_clip); _cairo_clip_destroy (recording_clip); @@ -525,6 +598,7 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, return status; } + status = CAIRO_INT_STATUS_UNSUPPORTED; if (! need_clip_mask && no_mask && source->type == CAIRO_PATTERN_TYPE_SOLID) { const cairo_color_t *color; @@ -532,11 +606,10 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, if (op_is_source) op = CAIRO_OPERATOR_SOURCE; status = compositor->fill_boxes (dst, op, color, boxes); -#if 0 } else if (inplace && source->type == CAIRO_PATTERN_TYPE_SURFACE) { - status = upload_inplace (compositor, extents, boxes); -#endif - } else { + status = upload_boxes (compositor, extents, boxes); + } + if (status == CAIRO_INT_STATUS_UNSUPPORTED) { cairo_surface_t *src; cairo_surface_t *mask = NULL; int src_x, src_y; @@ -546,12 +619,8 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, if (need_clip_mask) { mask = get_clip_surface (compositor, dst, extents->clip, &extents->bounded); - if (unlikely (mask->status)) { - if ((cairo_int_status_t)mask->status == CAIRO_INT_STATUS_NOTHING_TO_DO) - return CAIRO_STATUS_SUCCESS; - + if (unlikely (mask->status)) return mask->status; - } mask_x = -extents->bounded.x; mask_y = -extents->bounded.y; @@ -610,19 +679,10 @@ composite_aligned_boxes (const cairo_spans_compositor_t *compositor, } static cairo_bool_t -composite_needs_clip (const cairo_composite_rectangles_t *composit, +composite_needs_clip (const cairo_composite_rectangles_t *composite, const cairo_box_t *extents) { - cairo_bool_t needs_clip; - - if (composit->clip && composit->clip->path != NULL) - return TRUE; - - needs_clip = ! composit->is_bounded; - if (needs_clip) - needs_clip = ! _cairo_clip_contains_box (composit->clip, extents); - - return needs_clip; + return !_cairo_clip_contains_box (composite->clip, extents); } static cairo_int_status_t @@ -636,11 +696,12 @@ composite_boxes (const cairo_spans_compositor_t *compositor, cairo_int_status_t status; cairo_box_t box; - _cairo_box_from_rectangle (&box, &extents->bounded); + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_box_from_rectangle (&box, &extents->unbounded); if (composite_needs_clip (extents, &box)) return CAIRO_INT_STATUS_UNSUPPORTED; - _cairo_rectangular_scan_converter_init (&converter, &extents->bounded); + _cairo_rectangular_scan_converter_init (&converter, &extents->unbounded); for (chunk = &boxes->chunks; chunk != NULL; chunk = chunk->next) { const cairo_box_t *box = chunk->base; int i; @@ -652,7 +713,8 @@ composite_boxes (const cairo_spans_compositor_t *compositor, } } - status = compositor->renderer_init (&renderer, extents, FALSE); + status = compositor->renderer_init (&renderer, extents, + CAIRO_ANTIALIAS_DEFAULT, FALSE); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = converter.base.generate (&converter.base, &renderer.base); compositor->renderer_fini (&renderer, status); @@ -674,14 +736,16 @@ composite_polygon (const cairo_spans_compositor_t *compositor, cairo_bool_t needs_clip; cairo_int_status_t status; - needs_clip = composite_needs_clip (extents, &polygon->extents); + needs_clip = ! extents->is_bounded && + (! _clip_is_region (extents->clip) || extents->clip->num_boxes > 1); + TRACE ((stderr, "%s - needs_clip=%d\n", __FUNCTION__, needs_clip)); if (needs_clip) { return CAIRO_INT_STATUS_UNSUPPORTED; converter = _cairo_clip_tor_scan_converter_create (extents->clip, polygon, fill_rule, antialias); } else { - const cairo_rectangle_int_t *r = &extents->bounded; + const cairo_rectangle_int_t *r = &extents->unbounded; if (antialias == CAIRO_ANTIALIAS_FAST) { converter = _cairo_tor22_scan_converter_create (r->x, r->y, @@ -706,7 +770,8 @@ composite_polygon (const cairo_spans_compositor_t *compositor, if (unlikely (status)) goto cleanup_converter; - status = compositor->renderer_init (&renderer, extents, needs_clip); + status = compositor->renderer_init (&renderer, extents, + antialias, needs_clip); if (likely (status == CAIRO_INT_STATUS_SUCCESS)) status = converter->generate (converter, &renderer.base); compositor->renderer_fini (&renderer, status); @@ -741,9 +806,8 @@ clip_and_composite_boxes (const cairo_spans_compositor_t *compositor, { cairo_int_status_t status; cairo_polygon_t polygon; - struct _cairo_boxes_chunk *chunk; - int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); status = trim_extents_to_boxes (extents, boxes); if (unlikely (status)) return status; @@ -764,6 +828,9 @@ clip_and_composite_boxes (const cairo_spans_compositor_t *compositor, clip = _cairo_clip_copy (extents->clip); clip = _cairo_clip_intersect_boxes (clip, boxes); + if (_cairo_clip_is_all_clipped (clip)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + status = _cairo_clip_get_polygon (clip, &polygon, &fill_rule, &antialias); _cairo_clip_path_destroy (clip->path); @@ -817,6 +884,8 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + /* XXX simply uses polygon limits.point extemities, tessellation? */ status = trim_extents_to_polygon (extents, polygon); if (unlikely (status)) @@ -838,6 +907,9 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor, cairo_antialias_t clip_antialias; cairo_fill_rule_t clip_fill_rule; + TRACE((stderr, "%s - combining shape with clip polygon\n", + __FUNCTION__)); + status = _cairo_clip_get_polygon (extents->clip, &clipper, &clip_fill_rule, @@ -858,6 +930,10 @@ clip_and_composite_polygon (const cairo_spans_compositor_t *compositor, old_clip = extents->clip; extents->clip = _cairo_clip_copy_region (extents->clip); _cairo_clip_destroy (old_clip); + + status = trim_extents_to_polygon (extents, polygon); + if (unlikely (status)) + return status; } else { _cairo_polygon_fini (&clipper); } @@ -878,6 +954,7 @@ _cairo_spans_compositor_paint (const cairo_compositor_t *_compositor, cairo_boxes_t boxes; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); _cairo_clip_steal_boxes (extents->clip, &boxes); status = clip_and_composite_boxes (compositor, extents, &boxes); _cairo_clip_unsteal_boxes (extents->clip, &boxes); @@ -893,6 +970,7 @@ _cairo_spans_compositor_mask (const cairo_compositor_t *_compositor, cairo_int_status_t status; cairo_boxes_t boxes; + TRACE ((stderr, "%s\n", __FUNCTION__)); _cairo_clip_steal_boxes (extents->clip, &boxes); status = clip_and_composite_boxes (compositor, extents, &boxes); _cairo_clip_unsteal_boxes (extents->clip, &boxes); @@ -913,6 +991,8 @@ _cairo_spans_compositor_stroke (const cairo_compositor_t *_compositor, const cairo_spans_compositor_t *compositor = (cairo_spans_compositor_t*)_compositor; cairo_int_status_t status; + TRACE_ (_cairo_debug_print_path (stderr, path)); + status = CAIRO_INT_STATUS_UNSUPPORTED; if (_cairo_path_fixed_stroke_is_rectilinear (path)) { cairo_boxes_t boxes; @@ -935,25 +1015,46 @@ _cairo_spans_compositor_stroke (const cairo_compositor_t *_compositor, if (status == CAIRO_INT_STATUS_UNSUPPORTED) { cairo_polygon_t polygon; + cairo_fill_rule_t fill_rule = CAIRO_FILL_RULE_WINDING; if (extents->mask.width > extents->unbounded.width || extents->mask.height > extents->unbounded.height) { - _cairo_polygon_init_with_clip (&polygon, extents->clip); + cairo_box_t limits; + _cairo_box_from_rectangle (&limits, &extents->unbounded); + _cairo_polygon_init (&polygon, &limits, 1); } else { - _cairo_polygon_init_with_clip (&polygon, NULL); + _cairo_polygon_init (&polygon, NULL, 0); } status = _cairo_path_fixed_stroke_to_polygon (path, style, ctm, ctm_inverse, tolerance, &polygon); + TRACE_ (_cairo_debug_print_polygon (stderr, &polygon)); + if (status == CAIRO_INT_STATUS_SUCCESS && extents->clip->num_boxes > 1) { + status = _cairo_polygon_intersect_with_boxes (&polygon, &fill_rule, + extents->clip->boxes, + extents->clip->num_boxes); + } if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + cairo_clip_t *saved_clip = extents->clip; + + if (extents->is_bounded) { + extents->clip = _cairo_clip_copy_path (extents->clip); + extents->clip = _cairo_clip_intersect_box(extents->clip, + &polygon.extents); + } + status = clip_and_composite_polygon (compositor, extents, &polygon, - CAIRO_FILL_RULE_WINDING, - antialias); + fill_rule, antialias); + + if (extents->is_bounded) { + _cairo_clip_destroy (extents->clip); + extents->clip = saved_clip; + } } _cairo_polygon_fini (&polygon); } @@ -972,10 +1073,14 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, const cairo_spans_compositor_t *compositor = (cairo_spans_compositor_t*)_compositor; cairo_int_status_t status; + TRACE((stderr, "%s op=%d, antialias=%d\n", __FUNCTION__, extents->op, antialias)); + status = CAIRO_INT_STATUS_UNSUPPORTED; if (_cairo_path_fixed_fill_is_rectilinear (path)) { cairo_boxes_t boxes; + TRACE((stderr, "%s - rectilinear\n", __FUNCTION__)); + _cairo_boxes_init (&boxes); if (! _cairo_clip_contains_rectangle (extents->clip, &extents->mask)) _cairo_boxes_limit (&boxes, @@ -992,10 +1097,13 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, if (status == CAIRO_INT_STATUS_UNSUPPORTED) { cairo_polygon_t polygon; + TRACE((stderr, "%s - polygon\n", __FUNCTION__)); + if (extents->mask.width > extents->unbounded.width || extents->mask.height > extents->unbounded.height) { cairo_box_t limits; + TRACE((stderr, "%s - clipping to bounds\n", __FUNCTION__)); _cairo_box_from_rectangle (&limits, &extents->unbounded); _cairo_polygon_init (&polygon, &limits, 1); } @@ -1005,24 +1113,35 @@ _cairo_spans_compositor_fill (const cairo_compositor_t *_compositor, } status = _cairo_path_fixed_fill_to_polygon (path, tolerance, &polygon); - if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + if (status == CAIRO_INT_STATUS_SUCCESS && extents->clip->num_boxes > 1) { + TRACE((stderr, "%s - polygon intersect with %d clip boxes\n", + __FUNCTION__, extents->clip->num_boxes)); status = _cairo_polygon_intersect_with_boxes (&polygon, &fill_rule, extents->clip->boxes, extents->clip->num_boxes); } if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { - if (extents->is_bounded) { - if (extents->clip->boxes != &extents->clip->embedded_box) - free (extents->clip->boxes); + cairo_clip_t *saved_clip = extents->clip; - extents->clip->num_boxes = 1; - extents->clip->boxes = &extents->clip->embedded_box; - extents->clip->boxes[0] = polygon.extents; + if (extents->is_bounded) { + TRACE((stderr, "%s - polygon discard clip boxes\n", + __FUNCTION__)); + extents->clip = _cairo_clip_copy_path (extents->clip); + extents->clip = _cairo_clip_intersect_box(extents->clip, + &polygon.extents); } + status = clip_and_composite_polygon (compositor, extents, &polygon, fill_rule, antialias); + + if (extents->is_bounded) { + _cairo_clip_destroy (extents->clip); + extents->clip = saved_clip; + } } _cairo_polygon_fini (&polygon); + + TRACE((stderr, "%s - polygon status=%d\n", __FUNCTION__, status)); } return status; diff --git a/src/cairo-spline.c b/src/cairo-spline.c index 34ad585..44634fa 100644 --- a/src/cairo-spline.c +++ b/src/cairo-spline.c @@ -36,7 +36,7 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-slope-private.h" cairo_bool_t diff --git a/src/cairo-stroke-dash.c b/src/cairo-stroke-dash.c index d581bdc..9494010 100644 --- a/src/cairo-stroke-dash.c +++ b/src/cairo-stroke-dash.c @@ -71,12 +71,12 @@ void _cairo_stroker_dash_step (cairo_stroker_dash_t *dash, double step) { dash->dash_remain -= step; - if (dash->dash_remain <= 0.) { + if (dash->dash_remain < CAIRO_FIXED_ERROR_DOUBLE) { if (++dash->dash_index == dash->num_dashes) dash->dash_index = 0; dash->dash_on = ! dash->dash_on; - dash->dash_remain = dash->dashes[dash->dash_index]; + dash->dash_remain += dash->dashes[dash->dash_index]; } } diff --git a/src/cairo-stroke-style.c b/src/cairo-stroke-style.c index 9b7e407..3ebaf01 100644 --- a/src/cairo-stroke-style.c +++ b/src/cairo-stroke-style.c @@ -196,7 +196,7 @@ _cairo_stroke_style_dash_stroked (const cairo_stroke_style_t *style) } else { /* Even (0, 2, ...) dashes are on and simply counted for the coverage, odd dashes are off, thus * their coverage is approximated based on the area covered by the caps of adjacent on dases. */ - for (i = 0; i < style->num_dashes; i+=2) + for (i = 0; i + 1 < style->num_dashes; i += 2) stroked += style->dash[i] + cap_scale * MIN (style->dash[i+1], style->line_width); } diff --git a/src/cairo-surface-backend-private.h b/src/cairo-surface-backend-private.h index 03468cc..fbaa912 100644 --- a/src/cairo-surface-backend-private.h +++ b/src/cairo-surface-backend-private.h @@ -70,6 +70,10 @@ struct _cairo_surface_backend { (*unmap_image) (void *surface, cairo_image_surface_t *image); + cairo_surface_t * + (*source) (void *abstract_surface, + cairo_rectangle_int_t *extents); + cairo_warn cairo_status_t (*acquire_source_image) (void *abstract_surface, cairo_image_surface_t **image_out, @@ -192,8 +196,25 @@ struct _cairo_surface_backend { cairo_text_cluster_flags_t cluster_flags, cairo_scaled_font_t *scaled_font, const cairo_clip_t *clip); + + const char ** + (*get_supported_mime_types) (void *surface); }; +cairo_private cairo_status_t +_cairo_surface_default_acquire_source_image (void *surface, + cairo_image_surface_t **image_out, + void **image_extra); + +cairo_private void +_cairo_surface_default_release_source_image (void *surface, + cairo_image_surface_t *image, + void *image_extra); + +cairo_private cairo_surface_t * +_cairo_surface_default_source (void *surface, + cairo_rectangle_int_t *extents); + CAIRO_END_DECLS #endif /* CAIRO_SURFACE_BACKEND_PRIVATE_H */ diff --git a/src/cairo-surface-clipper.c b/src/cairo-surface-clipper.c index 0d2890c..5309362 100644 --- a/src/cairo-surface-clipper.c +++ b/src/cairo-surface-clipper.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-surface-clipper-private.h" /* A collection of routines to facilitate vector surface clipping */ diff --git a/src/cairo-surface-inline.h b/src/cairo-surface-inline.h new file mode 100644 index 0000000..27ea8f0 --- /dev/null +++ b/src/cairo-surface-inline.h @@ -0,0 +1,60 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2002 University of Southern California + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Carl D. Worth + */ + +#ifndef CAIRO_SURFACE_INLINE_H +#define CAIRO_SURFACE_INLINE_H + +#include "cairo-surface-private.h" + +static inline cairo_status_t +_cairo_surface_flush (cairo_surface_t *surface) +{ + cairo_status_t status = CAIRO_STATUS_SUCCESS; + if (surface->backend->flush) + status = surface->backend->flush (surface); + return status; +} + +static inline cairo_surface_t * +_cairo_surface_reference (cairo_surface_t *surface) +{ + if (!CAIRO_REFERENCE_COUNT_IS_INVALID (&surface->ref_count)) + _cairo_reference_count_inc (&surface->ref_count); + return surface; +} + +#endif /* CAIRO_SURFACE_INLINE_H */ diff --git a/src/cairo-surface-observer-inline.h b/src/cairo-surface-observer-inline.h new file mode 100644 index 0000000..07b9477 --- /dev/null +++ b/src/cairo-surface-observer-inline.h @@ -0,0 +1,59 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2011 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Intel Corporation. + * + * Contributor(s): + * Chris Wilson + */ + +#ifndef CAIRO_SURFACE_OBSERVER_INLINE_H +#define CAIRO_SURFACE_OBSERVER_INLINE_H + +#include "cairo-surface-observer-private.h" + +static inline cairo_surface_t * +_cairo_surface_observer_get_target (cairo_surface_t *surface) +{ + return ((cairo_surface_observer_t *) surface)->target; +} + +static inline cairo_bool_t +_cairo_surface_is_observer (cairo_surface_t *surface) +{ + return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_OBSERVER; +} + +static inline cairo_bool_t +_cairo_device_is_observer (cairo_device_t *device) +{ + return device->backend->type == (cairo_device_type_t)CAIRO_INTERNAL_DEVICE_TYPE_OBSERVER; +} + +#endif /* CAIRO_SURFACE_OBSERVER_INLINE_H */ diff --git a/src/cairo-surface-observer-private.h b/src/cairo-surface-observer-private.h index 1b5d6d9..70c87db 100644 --- a/src/cairo-surface-observer-private.h +++ b/src/cairo-surface-observer-private.h @@ -205,23 +205,4 @@ struct _cairo_surface_observer { cairo_list_t finish_callbacks; }; -static inline cairo_surface_t * -_cairo_surface_observer_get_target (cairo_surface_t *surface) -{ - return ((cairo_surface_observer_t *) surface)->target; -} - -static inline cairo_bool_t -_cairo_surface_is_observer (cairo_surface_t *surface) -{ - return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_OBSERVER; -} - -static inline cairo_bool_t -_cairo_device_is_observer (cairo_device_t *device) -{ - return device->backend->type == (cairo_device_type_t)CAIRO_INTERNAL_DEVICE_TYPE_OBSERVER; -} - - -#endif /* CAIRO_SURFACE_SNAPSHOT_PRIVATE_H */ +#endif /* CAIRO_SURFACE_OBSERVER_PRIVATE_H */ diff --git a/src/cairo-surface-observer.c b/src/cairo-surface-observer.c index ebb38b9..9247bc4 100644 --- a/src/cairo-surface-observer.c +++ b/src/cairo-surface-observer.c @@ -36,16 +36,18 @@ #include "cairoint.h" #include "cairo-surface-observer-private.h" +#include "cairo-surface-observer-inline.h" #include "cairo-array-private.h" -#include "cairo-combsort-private.h" +#include "cairo-combsort-inline.h" #include "cairo-composite-rectangles-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-pattern-private.h" #include "cairo-output-stream-private.h" #include "cairo-recording-surface-private.h" -#include "cairo-surface-subsurface-private.h" +#include "cairo-surface-subsurface-inline.h" #include "cairo-reference-count-private.h" #if CAIRO_HAS_SCRIPT_SURFACE @@ -184,6 +186,9 @@ classify_pattern (const cairo_pattern_t *pattern, case CAIRO_PATTERN_TYPE_MESH: classify = 6; break; + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: + classify = 7; + break; } return classify; } @@ -283,7 +288,11 @@ static void _cairo_device_observer_lock (void *_device) { cairo_device_observer_t *device = (cairo_device_observer_t *) _device; - cairo_device_acquire (device->target); + cairo_status_t ignored; + + /* cairo_device_acquire() can fail for nil and finished + * devices. We don't care about observing them. */ + ignored = cairo_device_acquire (device->target); } static void @@ -1273,6 +1282,14 @@ _cairo_surface_observer_get_font_options (void *abstract_surface, surface->target->backend->get_font_options (surface->target, options); } +static cairo_surface_t * +_cairo_surface_observer_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_surface_observer_t *surface = abstract_surface; + return _cairo_surface_get_source (surface->target, extents); +} + static cairo_status_t _cairo_surface_observer_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -1336,6 +1353,7 @@ static const cairo_surface_backend_t _cairo_surface_observer_backend = { _cairo_surface_observer_map_to_image, _cairo_surface_observer_unmap_image, + _cairo_surface_observer_source, _cairo_surface_observer_acquire_source_image, _cairo_surface_observer_release_source_image, _cairo_surface_observer_snapshot, @@ -1687,7 +1705,8 @@ static const char *pattern_names[] = { "solid", "linear", "radial", - "mesh" + "mesh", + "raster" }; static void print_pattern (cairo_output_stream_t *stream, @@ -1944,7 +1963,7 @@ _cairo_observation_print (cairo_output_stream_t *stream, cairo_device_destroy (script); } -void +cairo_status_t cairo_surface_observer_print (cairo_surface_t *abstract_surface, cairo_write_func_t write_func, void *closure) @@ -1952,17 +1971,17 @@ cairo_surface_observer_print (cairo_surface_t *abstract_surface, cairo_output_stream_t *stream; cairo_surface_observer_t *surface; - if (unlikely (CAIRO_REFERENCE_COUNT_IS_INVALID (&abstract_surface->ref_count))) - return; + if (unlikely (abstract_surface->status)) + return abstract_surface->status; - if (! _cairo_surface_is_observer (abstract_surface)) - return; + if (unlikely (! _cairo_surface_is_observer (abstract_surface))) + return _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH); surface = (cairo_surface_observer_t *) abstract_surface; stream = _cairo_output_stream_create (write_func, NULL, closure); _cairo_observation_print (stream, &surface->log); - _cairo_output_stream_destroy (stream); + return _cairo_output_stream_destroy (stream); } double @@ -1980,7 +1999,7 @@ cairo_surface_observer_elapsed (cairo_surface_t *abstract_surface) return _cairo_time_to_ns (_cairo_observation_total_elapsed (&surface->log)); } -void +cairo_status_t cairo_device_observer_print (cairo_device_t *abstract_device, cairo_write_func_t write_func, void *closure) @@ -1988,17 +2007,17 @@ cairo_device_observer_print (cairo_device_t *abstract_device, cairo_output_stream_t *stream; cairo_device_observer_t *device; - if (unlikely (CAIRO_REFERENCE_COUNT_IS_INVALID (&abstract_device->ref_count))) - return; + if (unlikely (abstract_device->status)) + return abstract_device->status; - if (! _cairo_device_is_observer (abstract_device)) - return; + if (unlikely (! _cairo_device_is_observer (abstract_device))) + return _cairo_error (CAIRO_STATUS_DEVICE_TYPE_MISMATCH); device = (cairo_device_observer_t *) abstract_device; stream = _cairo_output_stream_create (write_func, NULL, closure); _cairo_observation_print (stream, &device->log); - _cairo_output_stream_destroy (stream); + return _cairo_output_stream_destroy (stream); } double diff --git a/src/cairo-surface-offset.c b/src/cairo-surface-offset.c index d2cc030..98f57f2 100644 --- a/src/cairo-surface-offset.c +++ b/src/cairo-surface-offset.c @@ -37,6 +37,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-pattern-private.h" #include "cairo-surface-offset-private.h" diff --git a/src/cairo-surface-private.h b/src/cairo-surface-private.h index 5a66480..d23fc05 100644 --- a/src/cairo-surface-private.h +++ b/src/cairo-surface-private.h @@ -44,6 +44,7 @@ #include "cairo-list-private.h" #include "cairo-reference-count-private.h" #include "cairo-clip-private.h" +#include "cairo-surface-backend-private.h" typedef void (*cairo_surface_func_t) (cairo_surface_t *); @@ -62,7 +63,9 @@ struct _cairo_surface { cairo_status_t status; unsigned int unique_id; unsigned int serial; + cairo_damage_t *damage; + unsigned _finishing : 1; unsigned finished : 1; unsigned is_clear : 1; unsigned has_font_options : 1; @@ -105,4 +108,8 @@ struct _cairo_surface { cairo_private cairo_surface_t * _cairo_int_surface_create_in_error (cairo_int_status_t status); +cairo_private cairo_surface_t * +_cairo_surface_get_source (cairo_surface_t *surface, + cairo_rectangle_int_t *extents); + #endif /* CAIRO_SURFACE_PRIVATE_H */ diff --git a/src/cairo-surface-snapshot-inline.h b/src/cairo-surface-snapshot-inline.h new file mode 100644 index 0000000..bf89c77 --- /dev/null +++ b/src/cairo-surface-snapshot-inline.h @@ -0,0 +1,67 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2009 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Intel Corporation. + * + * Contributor(s): + * Chris Wilson + */ + +#ifndef CAIRO_SURFACE_SNAPSHOT_INLINE_H +#define CAIRO_SURFACE_SNAPSHOT_INLINE_H + +#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-inline.h" + +static inline cairo_bool_t +_cairo_surface_snapshot_is_reused (cairo_surface_t *surface) +{ + return CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count) > 2; +} + +static inline cairo_surface_t * +_cairo_surface_snapshot_get_target (cairo_surface_t *surface) +{ + cairo_surface_snapshot_t *snapshot = (cairo_surface_snapshot_t *) surface; + cairo_surface_t *target; + + CAIRO_MUTEX_LOCK (snapshot->mutex); + target = _cairo_surface_reference (snapshot->target); + CAIRO_MUTEX_UNLOCK (snapshot->mutex); + + return target; +} + +static inline cairo_bool_t +_cairo_surface_is_snapshot (cairo_surface_t *surface) +{ + return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT; +} + +#endif /* CAIRO_SURFACE_SNAPSHOT_INLINE_H */ diff --git a/src/cairo-surface-snapshot-private.h b/src/cairo-surface-snapshot-private.h index b7a4d05..58bee7b 100644 --- a/src/cairo-surface-snapshot-private.h +++ b/src/cairo-surface-snapshot-private.h @@ -36,32 +36,16 @@ #ifndef CAIRO_SURFACE_SNAPSHOT_PRIVATE_H #define CAIRO_SURFACE_SNAPSHOT_PRIVATE_H +#include "cairo-mutex-private.h" #include "cairo-surface-private.h" #include "cairo-surface-backend-private.h" struct _cairo_surface_snapshot { cairo_surface_t base; + cairo_mutex_t mutex; cairo_surface_t *target; cairo_surface_t *clone; }; -static inline cairo_bool_t -_cairo_surface_snapshot_is_reused (cairo_surface_t *surface) -{ - return CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count) > 2; -} - -static inline cairo_surface_t * -_cairo_surface_snapshot_get_target (cairo_surface_t *surface) -{ - return ((cairo_surface_snapshot_t *) surface)->target; -} - -static inline cairo_bool_t -_cairo_surface_is_snapshot (cairo_surface_t *surface) -{ - return surface->backend->type == (cairo_surface_type_t)CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT; -} - #endif /* CAIRO_SURFACE_SNAPSHOT_PRIVATE_H */ diff --git a/src/cairo-surface-snapshot.c b/src/cairo-surface-snapshot.c index 4bc40e7..9471e47 100644 --- a/src/cairo-surface-snapshot.c +++ b/src/cairo-surface-snapshot.c @@ -41,7 +41,7 @@ #include "cairo-error-private.h" #include "cairo-image-surface-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" static cairo_status_t _cairo_surface_snapshot_finish (void *abstract_surface) @@ -49,6 +49,8 @@ _cairo_surface_snapshot_finish (void *abstract_surface) cairo_surface_snapshot_t *surface = abstract_surface; cairo_status_t status = CAIRO_STATUS_SUCCESS; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (surface->clone != NULL) { cairo_surface_finish (surface->clone); status = surface->clone->status; @@ -56,6 +58,8 @@ _cairo_surface_snapshot_finish (void *abstract_surface) cairo_surface_destroy (surface->clone); } + CAIRO_MUTEX_FINI (surface->mutex); + return status; } @@ -63,29 +67,64 @@ static cairo_status_t _cairo_surface_snapshot_flush (void *abstract_surface) { cairo_surface_snapshot_t *surface = abstract_surface; + cairo_surface_t *target; + cairo_status_t status; + + target = _cairo_surface_snapshot_get_target (&surface->base); + cairo_surface_flush (target); + status = target->status; + cairo_surface_destroy (target); + + return status; +} - cairo_surface_flush (surface->target); - return surface->target->status; +static cairo_surface_t * +_cairo_surface_snapshot_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_surface_snapshot_t *surface = abstract_surface; + return _cairo_surface_get_source (surface->target, extents); /* XXX racy */ } +struct snapshot_extra { + cairo_surface_t *target; + void *extra; +}; + static cairo_status_t _cairo_surface_snapshot_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, void **extra_out) { cairo_surface_snapshot_t *surface = abstract_surface; + struct snapshot_extra *extra; + cairo_status_t status; + + extra = malloc (sizeof (*extra)); + if (unlikely (extra == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + extra->target = _cairo_surface_snapshot_get_target (&surface->base); + status = _cairo_surface_acquire_source_image (extra->target, image_out, &extra->extra); + if (unlikely (status)) { + cairo_surface_destroy (extra->target); + free (extra); + } - return _cairo_surface_acquire_source_image (surface->target, image_out, extra_out); + *extra_out = extra; + return status; } static void _cairo_surface_snapshot_release_source_image (void *abstract_surface, cairo_image_surface_t *image, - void *extra) + void *_extra) { - cairo_surface_snapshot_t *surface = abstract_surface; + struct snapshot_extra *extra = _extra; - _cairo_surface_release_source_image (surface->target, image, extra); + _cairo_surface_release_source_image (extra->target, image, extra->extra); + cairo_surface_destroy (extra->target); + free (extra); } static cairo_bool_t @@ -93,8 +132,14 @@ _cairo_surface_snapshot_get_extents (void *abstract_surface, cairo_rectangle_int_t *extents) { cairo_surface_snapshot_t *surface = abstract_surface; + cairo_surface_t *target; + cairo_bool_t bounded; + + target = _cairo_surface_snapshot_get_target (&surface->base); + bounded = _cairo_surface_get_extents (target, extents); + cairo_surface_destroy (target); - return _cairo_surface_get_extents (surface->target, extents); + return bounded; } static const cairo_surface_backend_t _cairo_surface_snapshot_backend = { @@ -107,6 +152,7 @@ static const cairo_surface_backend_t _cairo_surface_snapshot_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_snapshot_source, _cairo_surface_snapshot_acquire_source_image, _cairo_surface_snapshot_release_source_image, NULL, /* snapshot */ @@ -129,12 +175,17 @@ _cairo_surface_snapshot_copy_on_write (cairo_surface_t *surface) void *extra; cairo_status_t status; + TRACE ((stderr, "%s: target=%d\n", + __FUNCTION__, snapshot->target->unique_id)); + /* We need to make an image copy of the original surface since the * snapshot may exceed the lifetime of the original device, i.e. * when we later need to use the snapshot the data may have already * been lost. */ + CAIRO_MUTEX_LOCK (snapshot->mutex); + if (snapshot->target->backend->snapshot != NULL) { clone = snapshot->target->backend->snapshot (snapshot->target); if (clone != NULL) { @@ -151,7 +202,7 @@ _cairo_surface_snapshot_copy_on_write (cairo_surface_t *surface) if (unlikely (status)) { snapshot->target = _cairo_surface_create_in_error (status); status = _cairo_surface_set_error (surface, status); - return; + goto unlock; } clone = image->base.backend->snapshot (&image->base); _cairo_surface_release_source_image (snapshot->target, image, extra); @@ -160,10 +211,12 @@ done: status = _cairo_surface_set_error (surface, clone->status); snapshot->target = snapshot->clone = clone; snapshot->base.type = clone->type; +unlock: + CAIRO_MUTEX_UNLOCK (snapshot->mutex); } /** - * _cairo_surface_snapshot + * _cairo_surface_snapshot: * @surface: a #cairo_surface_t * * Make an immutable reference to @surface. It is an error to call a @@ -187,6 +240,8 @@ _cairo_surface_snapshot (cairo_surface_t *surface) cairo_surface_snapshot_t *snapshot; cairo_status_t status; + TRACE ((stderr, "%s: target=%d\n", __FUNCTION__, surface->unique_id)); + if (unlikely (surface->status)) return _cairo_surface_create_in_error (surface->status); @@ -214,6 +269,7 @@ _cairo_surface_snapshot (cairo_surface_t *surface) surface->content); snapshot->base.type = surface->type; + CAIRO_MUTEX_INIT (snapshot->mutex); snapshot->target = surface; snapshot->clone = NULL; diff --git a/src/cairo-surface-subsurface-inline.h b/src/cairo-surface-subsurface-inline.h new file mode 100644 index 0000000..0cd09e6 --- /dev/null +++ b/src/cairo-surface-subsurface-inline.h @@ -0,0 +1,72 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2009 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Intel Corporation. + * + * Contributor(s): + * Chris Wilson + */ + +#ifndef CAIRO_SURFACE_SUBSURFACE_INLINE_H +#define CAIRO_SURFACE_SUBSURFACE_INLINE_H + +#include "cairo-surface-subsurface-private.h" + +static inline cairo_surface_t * +_cairo_surface_subsurface_get_target (cairo_surface_t *surface) +{ + return ((cairo_surface_subsurface_t *) surface)->target; +} + +static inline void +_cairo_surface_subsurface_offset (cairo_surface_t *surface, + int *x, int *y) +{ + cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; + *x += ss->extents.x; + *y += ss->extents.y; +} + +static inline cairo_surface_t * +_cairo_surface_subsurface_get_target_with_offset (cairo_surface_t *surface, + int *x, int *y) +{ + cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; + *x += ss->extents.x; + *y += ss->extents.y; + return ss->target; +} + +static inline cairo_bool_t +_cairo_surface_is_subsurface (cairo_surface_t *surface) +{ + return surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE; +} + +#endif /* CAIRO_SURFACE_SUBSURFACE_INLINE_H */ diff --git a/src/cairo-surface-subsurface-private.h b/src/cairo-surface-subsurface-private.h index 6a43c8f..89c5cc0 100644 --- a/src/cairo-surface-subsurface-private.h +++ b/src/cairo-surface-subsurface-private.h @@ -45,37 +45,11 @@ struct _cairo_surface_subsurface { cairo_rectangle_int_t extents; cairo_surface_t *target; + cairo_surface_t *snapshot; }; -static inline cairo_surface_t * -_cairo_surface_subsurface_get_target (cairo_surface_t *surface) -{ - return ((cairo_surface_subsurface_t *) surface)->target; -} - -static inline void -_cairo_surface_subsurface_offset (cairo_surface_t *surface, - int *x, int *y) -{ - cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; - *x += ss->extents.x; - *y += ss->extents.y; -} - -static inline cairo_surface_t * -_cairo_surface_subsurface_get_target_with_offset (cairo_surface_t *surface, - int *x, int *y) -{ - cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; - *x += ss->extents.x; - *y += ss->extents.y; - return ss->target; -} - -static inline cairo_bool_t -_cairo_surface_is_subsurface (cairo_surface_t *surface) -{ - return surface->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE; -} +cairo_private void +_cairo_surface_subsurface_set_snapshot (cairo_surface_t *surface, + cairo_surface_t *snapshot); #endif /* CAIRO_SURFACE_SUBSURFACE_PRIVATE_H */ diff --git a/src/cairo-surface-subsurface.c b/src/cairo-surface-subsurface.c index 9ed483c..2bae01d 100644 --- a/src/cairo-surface-subsurface.c +++ b/src/cairo-surface-subsurface.c @@ -35,6 +35,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" #include "cairo-recording-surface-private.h" @@ -50,6 +51,7 @@ _cairo_surface_subsurface_finish (void *abstract_surface) cairo_surface_subsurface_t *surface = abstract_surface; cairo_surface_destroy (surface->target); + cairo_surface_destroy (surface->snapshot); return CAIRO_STATUS_SUCCESS; } @@ -60,6 +62,10 @@ _cairo_surface_subsurface_create_similar (void *other, int width, int height) { cairo_surface_subsurface_t *surface = other; + + if (surface->target->backend->create_similar == NULL) + return NULL; + return surface->target->backend->create_similar (surface->target, content, width, height); } @@ -69,6 +75,10 @@ _cairo_surface_subsurface_create_similar_image (void *other, int width, int height) { cairo_surface_subsurface_t *surface = other; + + if (surface->target->backend->create_similar_image == NULL) + return NULL; + return surface->target->backend->create_similar_image (surface->target, format, width, height); @@ -284,138 +294,53 @@ _cairo_surface_subsurface_get_font_options (void *abstract_surface, surface->target->backend->get_font_options (surface->target, options); } -struct extra { - cairo_image_surface_t *image; - void *image_extra; -}; +static cairo_surface_t * +_cairo_surface_subsurface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_surface_subsurface_t *surface = abstract_surface; + cairo_surface_t *source; + + source = _cairo_surface_get_source (surface->target, extents); + if (extents) + *extents = surface->extents; + + return source; +} static cairo_status_t _cairo_surface_subsurface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, void **extra_out) { - cairo_rectangle_int_t target_extents; cairo_surface_subsurface_t *surface = abstract_surface; - cairo_image_surface_t *image; + cairo_surface_pattern_t pattern; + cairo_surface_t *image; cairo_status_t status; - struct extra *extra; - uint8_t *data; - cairo_bool_t ret; - - if (surface->target->type == CAIRO_SURFACE_TYPE_RECORDING) { - cairo_surface_t *meta, *snapshot; - - snapshot = _cairo_surface_has_snapshot (&surface->base, - &_cairo_image_surface_backend); - if (snapshot != NULL) { - *image_out = (cairo_image_surface_t *) cairo_surface_reference (snapshot); - *extra_out = NULL; - return CAIRO_STATUS_SUCCESS; - } - meta = surface->target; - if (_cairo_surface_is_snapshot (meta)) - meta = _cairo_surface_snapshot_get_target (meta); - - if (! _cairo_surface_has_snapshot (meta, &_cairo_image_surface_backend)) { - cairo_surface_pattern_t pattern; - - image = (cairo_image_surface_t *) - _cairo_image_surface_create_with_content (meta->content, - surface->extents.width, - surface->extents.height); - if (unlikely (image->base.status)) - return image->base.status; - - _cairo_pattern_init_for_surface (&pattern, &image->base); - cairo_matrix_init_translate (&pattern.base.matrix, - -surface->extents.x, -surface->extents.y); - pattern.base.filter = CAIRO_FILTER_NEAREST; - status = _cairo_surface_paint (&image->base, - CAIRO_OPERATOR_SOURCE, - &pattern.base, NULL); - _cairo_pattern_fini (&pattern.base); - if (unlikely (status)) { - cairo_surface_destroy (&image->base); - return status; - } - - _cairo_surface_attach_snapshot (&surface->base, &image->base, NULL); - - *image_out = image; - *extra_out = NULL; - return CAIRO_STATUS_SUCCESS; - } - } + image = _cairo_image_surface_create_with_content (surface->base.content, + surface->extents.width, + surface->extents.height); + if (unlikely (image->status)) + return image->status; - extra = malloc (sizeof (struct extra)); - if (unlikely (extra == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - status = _cairo_surface_acquire_source_image (surface->target, &extra->image, &extra->image_extra); - if (unlikely (status)) - goto CLEANUP; - - ret = _cairo_surface_get_extents (&extra->image->base, &target_extents); - assert (ret); - - /* only copy if we need to perform sub-byte manipulation */ - if (PIXMAN_FORMAT_BPP (extra->image->pixman_format) >= 8 && - target_extents.x <= surface->extents.x && - target_extents.y <= surface->extents.y && - surface->extents.x + surface->extents.width <= target_extents.x + target_extents.width && - surface->extents.y + surface->extents.height <= target_extents.y + target_extents.height) { - - assert ((PIXMAN_FORMAT_BPP (extra->image->pixman_format) % 8) == 0); - - data = extra->image->data + surface->extents.y * extra->image->stride; - data += PIXMAN_FORMAT_BPP (extra->image->pixman_format) / 8 * surface->extents.x; - - image = (cairo_image_surface_t *) - _cairo_image_surface_create_with_pixman_format (data, - extra->image->pixman_format, - surface->extents.width, - surface->extents.height, - extra->image->stride); - if (unlikely ((status = image->base.status))) - goto CLEANUP_IMAGE; - - image->base.is_clear = FALSE; - } else { - cairo_surface_pattern_t pattern; - - image = (cairo_image_surface_t *) - _cairo_image_surface_create_with_pixman_format (NULL, - extra->image->pixman_format, - surface->extents.width, - surface->extents.height, - 0); - if (unlikely ((status = image->base.status))) - goto CLEANUP_IMAGE; - - _cairo_pattern_init_for_surface (&pattern, &image->base); - cairo_matrix_init_translate (&pattern.base.matrix, - -surface->extents.x, -surface->extents.y); - pattern.base.filter = CAIRO_FILTER_NEAREST; - status = _cairo_surface_paint (&image->base, - CAIRO_OPERATOR_SOURCE, - &pattern.base, NULL); - _cairo_pattern_fini (&pattern.base); - if (unlikely (status)) { - cairo_surface_destroy (&image->base); - return status; - } + _cairo_pattern_init_for_surface (&pattern, surface->target); + cairo_matrix_init_translate (&pattern.base.matrix, + surface->extents.x, + surface->extents.y); + pattern.base.filter = CAIRO_FILTER_NEAREST; + status = _cairo_surface_paint (image, + CAIRO_OPERATOR_SOURCE, + &pattern.base, NULL); + _cairo_pattern_fini (&pattern.base); + if (unlikely (status)) { + cairo_surface_destroy (image); + return status; } - *image_out = image; - *extra_out = extra; + *image_out = (cairo_image_surface_t *)image; + *extra_out = NULL; return CAIRO_STATUS_SUCCESS; - -CLEANUP_IMAGE: - _cairo_surface_release_source_image (surface->target, extra->image, extra->image_extra); -CLEANUP: - free (extra); - return status; } static void @@ -423,15 +348,6 @@ _cairo_surface_subsurface_release_source_image (void *abstract cairo_image_surface_t *image, void *abstract_extra) { - cairo_surface_subsurface_t *surface = abstract_surface; - - if (abstract_extra != NULL) { - struct extra *extra = abstract_extra; - - _cairo_surface_release_source_image (surface->target, extra->image, extra->image_extra); - free (extra); - } - cairo_surface_destroy (&image->base); } @@ -443,6 +359,8 @@ _cairo_surface_subsurface_snapshot (void *abstract_surface) cairo_surface_t *clone; cairo_status_t status; + TRACE ((stderr, "%s: target=%d\n", __FUNCTION__, surface->target->unique_id)); + clone = _cairo_surface_create_similar_scratch (surface->target, surface->target->content, surface->extents.width, @@ -485,6 +403,7 @@ static const cairo_surface_backend_t _cairo_surface_subsurface_backend = { _cairo_surface_subsurface_map_to_image, _cairo_surface_subsurface_unmap_image, + _cairo_surface_subsurface_source, _cairo_surface_subsurface_acquire_source_image, _cairo_surface_subsurface_release_source_image, _cairo_surface_subsurface_snapshot, @@ -544,6 +463,9 @@ cairo_surface_create_for_rectangle (cairo_surface_t *target, { cairo_surface_subsurface_t *surface; + if (unlikely (width < 0 || height < 0)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); + if (unlikely (target->status)) return _cairo_surface_create_in_error (target->status); if (unlikely (target->finished)) @@ -567,6 +489,8 @@ cairo_surface_create_for_rectangle (cairo_surface_t *target, surface->extents.y = ceil (y); surface->extents.width = floor (x + width) - surface->extents.x; surface->extents.height = floor (y + height) - surface->extents.y; + if ((surface->extents.width | surface->extents.height) < 0) + surface->extents.width = surface->extents.height = 0; if (target->backend->type == CAIRO_SURFACE_TYPE_SUBSURFACE) { /* Maintain subsurfaces as 1-depth */ @@ -577,6 +501,9 @@ cairo_surface_create_for_rectangle (cairo_surface_t *target, } surface->target = cairo_surface_reference (target); + surface->base.type = surface->target->type; + + surface->snapshot = NULL; return &surface->base; } @@ -608,8 +535,47 @@ _cairo_surface_create_for_rectangle_int (cairo_surface_t *target, surface->extents = *extents; surface->extents.x += target->device_transform.x0; surface->extents.y += target->device_transform.y0; + surface->target = cairo_surface_reference (target); + surface->base.type = surface->target->type; + + surface->snapshot = NULL; return &surface->base; } /* XXX observe mark-dirty */ + +static void +_cairo_surface_subsurface_detach_snapshot (cairo_surface_t *surface) +{ + cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; + + TRACE ((stderr, "%s: target=%d\n", __FUNCTION__, ss->target->unique_id)); + + cairo_surface_destroy (ss->snapshot); + ss->snapshot = NULL; +} + +void +_cairo_surface_subsurface_set_snapshot (cairo_surface_t *surface, + cairo_surface_t *snapshot) +{ + cairo_surface_subsurface_t *ss = (cairo_surface_subsurface_t *) surface; + + TRACE ((stderr, "%s: target=%d, snapshot=%d\n", __FUNCTION__, + ss->target->unique_id, snapshot->unique_id)); + + /* FIXME: attaching the subsurface as a snapshot to its target creates + * a reference cycle. Let's make this call as a no-op until that bug + * is fixed. + */ + return; + + if (ss->snapshot) + _cairo_surface_detach_snapshot (ss->snapshot); + + ss->snapshot = cairo_surface_reference (snapshot); + + _cairo_surface_attach_snapshot (ss->target, &ss->base, + _cairo_surface_subsurface_detach_snapshot); +} diff --git a/src/cairo-surface-wrapper.c b/src/cairo-surface-wrapper.c index 00d9aa3..578e8e2 100644 --- a/src/cairo-surface-wrapper.c +++ b/src/cairo-surface-wrapper.c @@ -37,6 +37,7 @@ #include "cairoint.h" +#include "cairo-clip-inline.h" #include "cairo-error-private.h" #include "cairo-pattern-private.h" #include "cairo-surface-wrapper-private.h" @@ -122,18 +123,10 @@ _cairo_surface_wrapper_get_clip (cairo_surface_wrapper_t *wrapper, copy = _cairo_clip_copy (clip); if (wrapper->has_extents) { copy = _cairo_clip_intersect_rectangle (copy, &wrapper->extents); - if (wrapper->extents.x | wrapper->extents.y) - copy = _cairo_clip_translate (copy, - -wrapper->extents.x, - -wrapper->extents.y); } copy = _cairo_clip_transform (copy, &wrapper->transform); - if (! _cairo_matrix_is_identity (&wrapper->target->device_transform)) { - /* XXX */ - copy = _cairo_clip_translate (copy, - wrapper->target->device_transform.x0, - wrapper->target->device_transform.y0); - } + if (! _cairo_matrix_is_identity (&wrapper->target->device_transform)) + copy = _cairo_clip_transform (copy, &wrapper->target->device_transform); if (wrapper->clip) copy = _cairo_clip_intersect_clip (copy, wrapper->clip); @@ -424,7 +417,9 @@ _cairo_surface_wrapper_show_text_glyphs (cairo_surface_wrapper_t *wrapper, cairo_clip_t *dev_clip; cairo_glyph_t stack_glyphs [CAIRO_STACK_ARRAY_LENGTH(cairo_glyph_t)]; cairo_glyph_t *dev_glyphs = stack_glyphs; + cairo_scaled_font_t *dev_scaled_font = scaled_font; cairo_pattern_union_t source_copy; + cairo_font_options_t options; if (unlikely (wrapper->target->status)) return wrapper->target->status; @@ -433,12 +428,27 @@ _cairo_surface_wrapper_show_text_glyphs (cairo_surface_wrapper_t *wrapper, if (_cairo_clip_is_all_clipped (dev_clip)) return CAIRO_INT_STATUS_NOTHING_TO_DO; + cairo_surface_get_font_options (wrapper->target, &options); + cairo_font_options_merge (&options, &scaled_font->options); + if (wrapper->needs_transform) { cairo_matrix_t m; int i; _cairo_surface_wrapper_get_transform (wrapper, &m); + if (! _cairo_matrix_is_translation (&wrapper->transform)) { + cairo_matrix_t ctm; + + /* XXX No device-transform? A bug in the tangle of layers? */ + _cairo_matrix_multiply (&ctm, + &wrapper->transform, + &scaled_font->ctm); + dev_scaled_font = cairo_scaled_font_create (scaled_font->font_face, + &scaled_font->font_matrix, + &ctm, &options); + } + if (num_glyphs > ARRAY_LENGTH (stack_glyphs)) { dev_glyphs = _cairo_malloc_ab (num_glyphs, sizeof (cairo_glyph_t)); if (unlikely (dev_glyphs == NULL)) { @@ -460,6 +470,13 @@ _cairo_surface_wrapper_show_text_glyphs (cairo_surface_wrapper_t *wrapper, _copy_transformed_pattern (&source_copy.base, source, &m); source = &source_copy.base; } else { + if (! cairo_font_options_equal (&options, &scaled_font->options)) { + dev_scaled_font = cairo_scaled_font_create (scaled_font->font_face, + &scaled_font->font_matrix, + &scaled_font->ctm, + &options); + } + /* show_text_glyphs is special because _cairo_surface_show_text_glyphs is allowed * to modify the glyph array that's passed in. We must always * copy the array before handing it to the backend. @@ -480,12 +497,14 @@ _cairo_surface_wrapper_show_text_glyphs (cairo_surface_wrapper_t *wrapper, dev_glyphs, num_glyphs, clusters, num_clusters, cluster_flags, - scaled_font, + dev_scaled_font, dev_clip); FINISH: _cairo_clip_destroy (dev_clip); if (dev_glyphs != stack_glyphs) free (dev_glyphs); + if (dev_scaled_font != scaled_font) + cairo_scaled_font_destroy (dev_scaled_font); return status; } diff --git a/src/cairo-surface.c b/src/cairo-surface.c index c026a3d..35ac391 100644 --- a/src/cairo-surface.c +++ b/src/cairo-surface.c @@ -39,10 +39,13 @@ #include "cairoint.h" #include "cairo-array-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" +#include "cairo-damage-private.h" #include "cairo-device-private.h" #include "cairo-error-private.h" -#include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" +#include "cairo-image-surface-inline.h" #include "cairo-recording-surface-private.h" #include "cairo-region-private.h" #include "cairo-tee-surface-private.h" @@ -92,7 +95,7 @@ * Note that for other surface types it might be necessary to acquire the * surface's device first. See cairo_device_acquire() for a discussion of * devices. - */ + **/ #define DEFINE_NIL_SURFACE(status, name) \ const cairo_surface_t name = { \ @@ -104,6 +107,8 @@ const cairo_surface_t name = { \ status, /* status */ \ 0, /* unique id */ \ 0, /* serial */ \ + NULL, /* damage */ \ + FALSE, /* _finishing */ \ FALSE, /* finished */ \ TRUE, /* is_clear */ \ FALSE, /* has_font_options */ \ @@ -150,6 +155,9 @@ static DEFINE_NIL_SURFACE(CAIRO_STATUS_DEVICE_ERROR, _cairo_surface_nil_device_e static DEFINE_NIL_SURFACE(CAIRO_INT_STATUS_UNSUPPORTED, _cairo_surface_nil_unsupported); static DEFINE_NIL_SURFACE(CAIRO_INT_STATUS_NOTHING_TO_DO, _cairo_surface_nil_nothing_to_do); +static void _cairo_surface_finish_snapshots (cairo_surface_t *surface); +static void _cairo_surface_finish (cairo_surface_t *surface); + /** * _cairo_surface_set_error: * @surface: a surface @@ -243,6 +251,8 @@ slim_hidden_def(cairo_surface_get_content); * %CAIRO_STATUS_NO_MEMORY, %CAIRO_STATUS_READ_ERROR, * %CAIRO_STATUS_INVALID_CONTENT, %CAIRO_STATUS_INVALID_FORMAT, or * %CAIRO_STATUS_INVALID_VISUAL. + * + * Since: 1.0 **/ cairo_status_t cairo_surface_status (cairo_surface_t *surface) @@ -378,14 +388,16 @@ _cairo_surface_has_snapshot (cairo_surface_t *surface, return NULL; } -static void +void _cairo_surface_begin_modification (cairo_surface_t *surface) { assert (surface->status == CAIRO_STATUS_SUCCESS); assert (! surface->finished); - assert (surface->snapshot_of == NULL); _cairo_surface_detach_snapshots (surface); + if (surface->snapshot_of != NULL) + _cairo_surface_detach_snapshot (surface); + _cairo_surface_detach_mime_data (surface); } @@ -408,6 +420,7 @@ _cairo_surface_init (cairo_surface_t *surface, surface->finished = FALSE; surface->is_clear = FALSE; surface->serial = 0; + surface->damage = NULL; surface->owns_device = (device != NULL); _cairo_user_data_array_init (&surface->user_data); @@ -499,6 +512,8 @@ _cairo_surface_create_similar_scratch (cairo_surface_t *other, * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if @other is already in an error state * or any other error occurs. + * + * Since: 1.0 **/ cairo_surface_t * cairo_surface_create_similar (cairo_surface_t *other, @@ -629,10 +644,7 @@ cairo_surface_map_to_image (cairo_surface_t *surface, /* If this surface is bounded, we can't map parts * that are outside of it. */ if (likely (surface->backend->get_extents (surface, &surface_extents))) { - if (unlikely (extents->x < surface_extents.x || - extents->y < surface_extents.y || - extents->x + extents->width > surface_extents.x + surface_extents.width || - extents->y + extents->height > surface_extents.y + surface_extents.height)) + if (unlikely (! _cairo_rectangle_contains_rectangle (&surface_extents, extents))) return _cairo_surface_create_in_error (CAIRO_STATUS_INVALID_SIZE); } } @@ -649,7 +661,7 @@ cairo_surface_map_to_image (cairo_surface_t *surface, _cairo_format_from_content (surface->content), extents->width, extents->height); - cairo_surface_set_device_offset (image, -extents->y, -extents->y); + cairo_surface_set_device_offset (image, -extents->x, -extents->y); _cairo_pattern_init_for_surface (&pattern, surface); pattern.base.filter = CAIRO_FILTER_NEAREST; @@ -802,6 +814,8 @@ _cairo_surface_create_similar_solid (cairo_surface_t *other, * cairo_surface_get_reference_count(). * * Return value: the referenced #cairo_surface_t. + * + * Since: 1.0 **/ cairo_surface_t * cairo_surface_reference (cairo_surface_t *surface) @@ -825,6 +839,8 @@ slim_hidden_def (cairo_surface_reference); * Decreases the reference count on @surface by one. If the result is * zero, then @surface and all associated resources are freed. See * cairo_surface_reference(). + * + * Since: 1.0 **/ void cairo_surface_destroy (cairo_surface_t *surface) @@ -840,11 +856,21 @@ cairo_surface_destroy (cairo_surface_t *surface) assert (surface->snapshot_of == NULL); - if (! surface->finished) - cairo_surface_finish (surface); + if (! surface->finished) { + _cairo_surface_finish_snapshots (surface); + /* We may have been referenced by a snapshot prior to have + * detaching it with the copy-on-write. + */ + if (CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count)) + return; + + _cairo_surface_finish (surface); + /* paranoid check that nobody took a reference whilst finishing */ + assert (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)); + } - /* paranoid check that nobody took a reference whilst finishing */ - assert (! CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->ref_count)); + if (surface->damage) + _cairo_damage_destroy (surface->damage); _cairo_user_data_array_fini (&surface->user_data); _cairo_user_data_array_fini (&surface->mime_data); @@ -880,6 +906,37 @@ cairo_surface_get_reference_count (cairo_surface_t *surface) return CAIRO_REFERENCE_COUNT_GET_VALUE (&surface->ref_count); } +static void +_cairo_surface_finish_snapshots (cairo_surface_t *surface) +{ + cairo_surface_flush (surface); + + /* update the snapshots *before* we declare the surface as finished */ + surface->_finishing = TRUE; + + _cairo_surface_detach_snapshots (surface); + if (surface->snapshot_of != NULL) + _cairo_surface_detach_snapshot (surface); +} + +static void +_cairo_surface_finish (cairo_surface_t *surface) +{ + cairo_status_t status; + + surface->finished = TRUE; + + /* call finish even if in error mode */ + if (surface->backend->finish) { + status = surface->backend->finish (surface); + if (unlikely (status)) + _cairo_surface_set_error (surface, status); + } + + assert (surface->snapshot_of == NULL); + assert (!_cairo_surface_has_snapshots (surface)); +} + /** * cairo_surface_finish: * @surface: the #cairo_surface_t to finish @@ -898,12 +955,12 @@ cairo_surface_get_reference_count (cairo_surface_t *surface) * reference count to zero, cairo will call cairo_surface_finish() if * it hasn't been called already, before freeing the resources * associated with the surface. + * + * Since: 1.0 **/ void cairo_surface_finish (cairo_surface_t *surface) { - cairo_status_t status; - if (surface == NULL) return; @@ -913,24 +970,14 @@ cairo_surface_finish (cairo_surface_t *surface) if (surface->finished) return; - cairo_surface_flush (surface); - - /* update the snapshots *before* we declare the surface as finished */ - _cairo_surface_detach_snapshots (surface); - if (surface->snapshot_of != NULL) - _cairo_surface_detach_snapshot (surface); - - surface->finished = TRUE; + /* We have to be careful when decoupling potential reference cycles */ + cairo_surface_reference (surface); - /* call finish even if in error mode */ - if (surface->backend->finish) { - status = surface->backend->finish (surface); - if (unlikely (status)) - _cairo_surface_set_error (surface, status); - } + _cairo_surface_finish_snapshots (surface); + /* XXX need to block and wait for snapshot references */ + _cairo_surface_finish (surface); - assert (surface->snapshot_of == NULL); - assert (!_cairo_surface_has_snapshots (surface)); + cairo_surface_destroy (surface); } slim_hidden_def (cairo_surface_finish); @@ -966,6 +1013,8 @@ _cairo_surface_release_device_reference (cairo_surface_t *surface) * function returns %NULL. * * Return value: the user data previously attached or %NULL. + * + * Since: 1.0 **/ void * cairo_surface_get_user_data (cairo_surface_t *surface, @@ -989,6 +1038,8 @@ cairo_surface_get_user_data (cairo_surface_t *surface, * * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY if a * slot could not be allocated for the user data. + * + * Since: 1.0 **/ cairo_status_t cairo_surface_set_user_data (cairo_surface_t *surface, @@ -1068,40 +1119,40 @@ _cairo_mime_data_destroy (void *ptr) * * The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1). * - * @Since: 1.10 - */ + * Since: 1.10 + **/ /** * CAIRO_MIME_TYPE_JPEG: * * The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1). * - * @Since: 1.10 - */ + * Since: 1.10 + **/ /** * CAIRO_MIME_TYPE_PNG: * * The Portable Network Graphics image file format (ISO/IEC 15948). * - * @Since: 1.10 - */ + * Since: 1.10 + **/ /** * CAIRO_MIME_TYPE_URI: * * URI for an image file (unofficial MIME type). * - * @Since: 1.10 - */ + * Since: 1.10 + **/ /** * CAIRO_MIME_TYPE_UNIQUE_ID: * * Unique identifier for a surface (cairo specific MIME type). * - * @Since: 1.12 - */ + * Since: 1.12 + **/ /** * cairo_surface_set_mime_data: @@ -1132,10 +1183,10 @@ _cairo_mime_data_destroy (void *ptr) * discarded if you draw on the surface afterwards. Use this function * with care. * - * Since: 1.10 - * * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY if a * slot could not be allocated for the user data. + * + * Since: 1.10 **/ cairo_status_t cairo_surface_set_mime_data (cairo_surface_t *surface, @@ -1185,6 +1236,39 @@ cairo_surface_set_mime_data (cairo_surface_t *surface, } slim_hidden_def (cairo_surface_set_mime_data); +/** + * cairo_surface_supports_mime_type: + * @surface: a #cairo_surface_t + * @mime_type: the mime type + * + * Return whether @surface supports @mime_type. + * + * Return value: %TRUE if @surface supports + * @mime_type, %FALSE otherwise + * + * Since: 1.12 + **/ +cairo_bool_t +cairo_surface_supports_mime_type (cairo_surface_t *surface, + const char *mime_type) +{ + const char **types; + + if (surface->backend->get_supported_mime_types) { + types = surface->backend->get_supported_mime_types (surface); + if (types) { + while (*types) { + if (strcmp (*types, mime_type) == 0) + return TRUE; + types++; + } + } + } + + return FALSE; +} +slim_hidden_def (cairo_surface_supports_mime_type); + static void _cairo_mime_data_reference (const void *key, void *elt, void *closure) { @@ -1266,6 +1350,8 @@ _cairo_surface_set_font_options (cairo_surface_t *surface, * for rendering on them, print surfaces to disable hinting of * metrics and so forth. The result can then be used with * cairo_scaled_font_create(). + * + * Since: 1.0 **/ void cairo_surface_get_font_options (cairo_surface_t *surface, @@ -1303,6 +1389,8 @@ slim_hidden_def (cairo_surface_get_font_options); * drawing on the surface with cairo to drawing on it directly * with native APIs. If the surface doesn't support direct access, * then this function does nothing. + * + * Since: 1.0 **/ void cairo_surface_flush (cairo_surface_t *surface) @@ -1334,7 +1422,9 @@ slim_hidden_def (cairo_surface_flush); * Tells cairo that drawing has been done to surface using means other * than cairo, and that cairo should reread any cached areas. Note * that you must call cairo_surface_flush() before doing such drawing. - */ + * + * Since: 1.0 + **/ void cairo_surface_mark_dirty (cairo_surface_t *surface) { @@ -1357,7 +1447,9 @@ slim_hidden_def (cairo_surface_mark_dirty); * Any cached clip set on the surface will be reset by this function, * to make sure that future cairo calls have the clip set that they * expect. - */ + * + * Since: 1.0 + **/ void cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, int x, @@ -1386,6 +1478,17 @@ cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, surface->is_clear = FALSE; surface->serial++; + if (surface->damage) { + cairo_box_t box; + + box.p1.x = x; + box.p1.y = y; + box.p2.x = x + width; + box.p2.y = y + height; + + surface->damage = _cairo_damage_add_box (surface->damage, &box); + } + if (surface->backend->mark_dirty_rectangle != NULL) { /* XXX: FRAGILE: We're ignoring the scaling component of * device_transform here. I don't know what the right thing to @@ -1469,6 +1572,8 @@ _cairo_surface_set_device_scale (cairo_surface_t *surface, * * Note that the offset affects drawing to the surface as well as * using the surface in a source pattern. + * + * Since: 1.0 **/ void cairo_surface_set_device_offset (cairo_surface_t *surface, @@ -1658,6 +1763,17 @@ _cairo_surface_acquire_source_image (cairo_surface_t *surface, return CAIRO_STATUS_SUCCESS; } +cairo_status_t +_cairo_surface_default_acquire_source_image (void *surface, + cairo_image_surface_t **image_out, + void **image_extra) +{ + *image_out = (cairo_image_surface_t *) + cairo_surface_map_to_image (surface, NULL); + *image_extra = NULL; + return (*image_out)->base.status; +} + /** * _cairo_surface_release_source_image: * @surface: a #cairo_surface_t @@ -1676,6 +1792,32 @@ _cairo_surface_release_source_image (cairo_surface_t *surface, surface->backend->release_source_image (surface, image, image_extra); } +void +_cairo_surface_default_release_source_image (void *surface, + cairo_image_surface_t *image, + void *image_extra) +{ + cairo_surface_unmap_image (surface, &image->base); +} + + +cairo_surface_t * +_cairo_surface_get_source (cairo_surface_t *surface, + cairo_rectangle_int_t *extents) +{ + assert (surface->backend->source); + return surface->backend->source (surface, extents); +} + +cairo_surface_t * +_cairo_surface_default_source (void *surface, + cairo_rectangle_int_t *extents) +{ + if (extents) + _cairo_surface_get_extents(surface, extents); + return surface; +} + static cairo_status_t _pattern_has_error (const cairo_pattern_t *pattern) { @@ -1727,6 +1869,7 @@ _cairo_surface_paint (cairo_surface_t *surface, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -1760,6 +1903,7 @@ _cairo_surface_mask (cairo_surface_t *surface, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -1814,6 +1958,7 @@ _cairo_surface_fill_stroke (cairo_surface_t *surface, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -1891,6 +2036,7 @@ _cairo_surface_stroke (cairo_surface_t *surface, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -1931,6 +2077,7 @@ _cairo_surface_fill (cairo_surface_t *surface, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -1971,7 +2118,7 @@ _cairo_surface_fill (cairo_surface_t *surface, * namely cairo_copy_page(). * * Since: 1.6 - */ + **/ void cairo_surface_copy_page (cairo_surface_t *surface) { @@ -2049,7 +2196,7 @@ slim_hidden_def (cairo_surface_show_page); * * This behavior would have to be changed is we ever exported a public * variant of this function. - */ + **/ cairo_bool_t _cairo_surface_get_extents (cairo_surface_t *surface, cairo_rectangle_int_t *extents) @@ -2137,6 +2284,7 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, cairo_int_status_t status; cairo_scaled_font_t *dev_scaled_font = scaled_font; + TRACE ((stderr, "%s\n", __FUNCTION__)); if (unlikely (surface->status)) return surface->status; @@ -2238,7 +2386,7 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, } /** - * _cairo_surface_set_resolution + * _cairo_surface_set_resolution: * @surface: the surface * @x_res: x resolution, in dpi * @y_res: y resolution, in dpi @@ -2246,7 +2394,7 @@ _cairo_surface_show_text_glyphs (cairo_surface_t *surface, * Set the actual surface resolution of @surface to the given x and y DPI. * Mainly used for correctly computing the scale factor when fallback * rendering needs to take place in the paginated surface. - */ + **/ void _cairo_surface_set_resolution (cairo_surface_t *surface, double x_res, diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index 6f607d3..824a27d 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -50,7 +50,7 @@ #include "cairo-error-private.h" #include "cairo-image-info-private.h" #include "cairo-image-surface-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-output-stream-private.h" #include "cairo-path-fixed-private.h" #include "cairo-paginated-private.h" @@ -66,14 +66,16 @@ * * The SVG surface is used to render cairo graphics to * SVG files and is a multi-page vector surface backend. - */ + **/ /** * CAIRO_HAS_SVG_SURFACE: * * Defined if the SVG surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.2 + **/ typedef struct cairo_svg_page cairo_svg_page_t; @@ -87,6 +89,14 @@ static const cairo_svg_version_t _cairo_svg_versions[] = #define CAIRO_SVG_VERSION_LAST ARRAY_LENGTH (_cairo_svg_versions) +static const char *_cairo_svg_supported_mime_types[] = +{ + CAIRO_MIME_TYPE_JPEG, + CAIRO_MIME_TYPE_PNG, + CAIRO_MIME_TYPE_URI, + NULL +}; + static void _cairo_svg_surface_emit_path (cairo_output_stream_t *output, const cairo_path_fixed_t *path, @@ -197,7 +207,7 @@ static const cairo_paginated_surface_backend_t cairo_svg_surface_paginated_backe * occurs. You can use cairo_surface_status() to check for this. * * Since: 1.2 - */ + **/ cairo_surface_t * cairo_svg_surface_create_for_stream (cairo_write_func_t write_func, void *closure, @@ -2035,6 +2045,7 @@ _cairo_svg_surface_emit_pattern (cairo_svg_surface_t *surface, output, is_stroke, parent_matrix); case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: ASSERT_NOT_REACHED; } return _cairo_error (CAIRO_STATUS_PATTERN_TYPE_MISMATCH); @@ -2576,6 +2587,13 @@ _cairo_svg_surface_get_font_options (void *abstract_surface, _cairo_font_options_set_round_glyph_positions (options, CAIRO_ROUND_GLYPH_POS_OFF); } + +static const char ** +_cairo_svg_surface_get_supported_mime_types (void *abstract_surface) +{ + return _cairo_svg_supported_mime_types; +} + static const cairo_surface_backend_t cairo_svg_surface_backend = { CAIRO_SURFACE_TYPE_SVG, _cairo_svg_surface_finish, @@ -2587,6 +2605,7 @@ static const cairo_surface_backend_t cairo_svg_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ @@ -2606,6 +2625,9 @@ static const cairo_surface_backend_t cairo_svg_surface_backend = { _cairo_svg_surface_fill, _cairo_svg_surface_fill_stroke, _cairo_svg_surface_show_glyphs, + NULL, /* has_show_text_glyphs */ + NULL, /* show_text_glyphs */ + _cairo_svg_surface_get_supported_mime_types, }; static cairo_status_t diff --git a/src/cairo-svg.h b/src/cairo-svg.h index 0f739fc..592c645 100644 --- a/src/cairo-svg.h +++ b/src/cairo-svg.h @@ -40,12 +40,14 @@ CAIRO_BEGIN_DECLS /** * cairo_svg_version_t: - * @CAIRO_SVG_VERSION_1_1: The version 1.1 of the SVG specification. - * @CAIRO_SVG_VERSION_1_2: The version 1.2 of the SVG specification. + * @CAIRO_SVG_VERSION_1_1: The version 1.1 of the SVG specification. (Since 1.2) + * @CAIRO_SVG_VERSION_1_2: The version 1.2 of the SVG specification. (Since 1.2) * * #cairo_svg_version_t is used to describe the version number of the SVG * specification that a generated SVG file will conform to. - */ + * + * Since: 1.2 + **/ typedef enum _cairo_svg_version { CAIRO_SVG_VERSION_1_1, CAIRO_SVG_VERSION_1_2 diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c index 4930a0b..294e5f1 100644 --- a/src/cairo-tee-surface.c +++ b/src/cairo-tee-surface.c @@ -45,10 +45,10 @@ #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-tee-surface-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-surface-wrapper-private.h" #include "cairo-array-private.h" -#include "cairo-image-surface-private.h" +#include "cairo-image-surface-inline.h" typedef struct _cairo_tee_surface { cairo_surface_t base; @@ -119,6 +119,14 @@ _cairo_tee_surface_finish (void *abstract_surface) return CAIRO_STATUS_SUCCESS; } +static cairo_surface_t * +_cairo_tee_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_tee_surface_t *surface = abstract_surface; + return _cairo_surface_get_source (surface->master.target, extents); +} + static cairo_status_t _cairo_tee_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -389,6 +397,7 @@ static const cairo_surface_backend_t cairo_tee_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_tee_surface_source, _cairo_tee_surface_acquire_source_image, _cairo_tee_surface_release_source_image, _cairo_tee_surface_snapshot, diff --git a/src/cairo-tor-scan-converter.c b/src/cairo-tor-scan-converter.c index d6ea778..099b50b 100644 --- a/src/cairo-tor-scan-converter.c +++ b/src/cairo-tor-scan-converter.c @@ -115,10 +115,8 @@ typedef cairo_status_t glitter_status_t; /* The input coordinate scale and the rasterisation grid scales. */ #define GLITTER_INPUT_BITS CAIRO_FIXED_FRAC_BITS -//#define GRID_X_BITS CAIRO_FIXED_FRAC_BITS -//#define GRID_Y 15 -#define GRID_X_BITS 2 -#define GRID_Y_BITS 2 +#define GRID_X_BITS CAIRO_FIXED_FRAC_BITS +#define GRID_Y 15 /* Set glitter up to use a cairo span renderer to do the coverage * blitting. */ diff --git a/src/cairo-traps-compositor.c b/src/cairo-traps-compositor.c index 2f77ff8..eeee20c 100644 --- a/src/cairo-traps-compositor.c +++ b/src/cairo-traps-compositor.c @@ -41,18 +41,19 @@ #include "cairoint.h" -#include "cairo-box-private.h" +#include "cairo-box-inline.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-compositor-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" -#include "cairo-pattern-private.h" +#include "cairo-pattern-inline.h" #include "cairo-paginated-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-surface-subsurface-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-observer-private.h" #include "cairo-region-private.h" #include "cairo-spans-private.h" @@ -153,6 +154,21 @@ static void blt_in(void *closure, &info->boxes); } +static void +add_rect_with_offset (cairo_boxes_t *boxes, int x1, int y1, int x2, int y2, int dx, int dy) +{ + cairo_box_t box; + cairo_int_status_t status; + + box.p1.x = _cairo_fixed_from_int (x1 - dx); + box.p1.y = _cairo_fixed_from_int (y1 - dy); + box.p2.x = _cairo_fixed_from_int (x2 - dx); + box.p2.y = _cairo_fixed_from_int (y2 - dy); + + status = _cairo_boxes_add (boxes, CAIRO_ANTIALIAS_DEFAULT, &box); + assert (status == CAIRO_INT_STATUS_SUCCESS); +} + static cairo_int_status_t combine_clip_as_traps (const cairo_traps_compositor_t *compositor, cairo_surface_t *mask, @@ -164,9 +180,13 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor, cairo_antialias_t antialias; cairo_traps_t traps; cairo_surface_t *src; + cairo_box_t box; + cairo_rectangle_int_t fixup; int src_x, src_y; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_clip_get_polygon (clip, &polygon, &fill_rule, &antialias); if (status) @@ -194,45 +214,208 @@ combine_clip_as_traps (const cairo_traps_compositor_t *compositor, extents, antialias, &traps); - cairo_surface_destroy (src); + _cairo_traps_extents (&traps, &box); + _cairo_box_round_to_rectangle (&box, &fixup); _cairo_traps_fini (&traps); + cairo_surface_destroy (src); + + if (unlikely (status)) + return status; + + if (! _cairo_rectangle_intersect (&fixup, extents)) + return CAIRO_STATUS_SUCCESS; + + if (fixup.width < extents->width || fixup.height < extents->height) { + cairo_boxes_t clear; + + _cairo_boxes_init (&clear); + + /* top */ + if (fixup.y != extents->y) { + add_rect_with_offset (&clear, + extents->x, extents->y, + extents->x + extents->width, + fixup.y, + extents->x, extents->y); + } + /* left */ + if (fixup.x != extents->x) { + add_rect_with_offset (&clear, + extents->x, fixup.y, + fixup.x, + fixup.y + fixup.height, + extents->x, extents->y); + } + /* right */ + if (fixup.x + fixup.width != extents->x + extents->width) { + add_rect_with_offset (&clear, + fixup.x + fixup.width, + fixup.y, + extents->x + extents->width, + fixup.y + fixup.height, + extents->x, extents->y); + } + /* bottom */ + if (fixup.y + fixup.height != extents->y + extents->height) { + add_rect_with_offset (&clear, + extents->x, + fixup.y + fixup.height, + extents->x + extents->width, + extents->y + extents->height, + extents->x, extents->y); + } + + status = compositor->fill_boxes (mask, + CAIRO_OPERATOR_CLEAR, + CAIRO_COLOR_TRANSPARENT, + &clear); + + _cairo_boxes_fini (&clear); + } + + return status; +} + +static cairo_status_t +__clip_to_surface (const cairo_traps_compositor_t *compositor, + const cairo_composite_rectangles_t *composite, + const cairo_rectangle_int_t *extents, + cairo_surface_t **surface) +{ + cairo_surface_t *mask; + cairo_polygon_t polygon; + cairo_fill_rule_t fill_rule; + cairo_antialias_t antialias; + cairo_traps_t traps; + cairo_boxes_t clear; + cairo_surface_t *src; + int src_x, src_y; + cairo_int_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = _cairo_clip_get_polygon (composite->clip, &polygon, + &fill_rule, &antialias); + if (status) + return status; + + _cairo_traps_init (&traps); + status = _cairo_bentley_ottmann_tessellate_polygon (&traps, + &polygon, + fill_rule); + _cairo_polygon_fini (&polygon); + if (unlikely (status)) + return status; + mask = _cairo_surface_create_similar_scratch (composite->surface, + CAIRO_CONTENT_ALPHA, + extents->width, + extents->height); + if (unlikely (mask->status)) { + _cairo_traps_fini (&traps); + return status; + } + + src = compositor->pattern_to_surface (mask, NULL, FALSE, + extents, NULL, + &src_x, &src_y); + if (unlikely (status = src->status)) + goto error; + + status = compositor->acquire (mask); + if (unlikely (status)) + goto error; + + _cairo_boxes_init_from_rectangle (&clear, + 0, 0, + extents->width, + extents->height); + status = compositor->fill_boxes (mask, + CAIRO_OPERATOR_CLEAR, + CAIRO_COLOR_TRANSPARENT, + &clear); + if (unlikely (status)) + goto error_release; + + status = compositor->composite_traps (mask, CAIRO_OPERATOR_ADD, src, + src_x, src_y, + extents->x, extents->y, + extents, + antialias, &traps); + if (unlikely (status)) + goto error_release; + + compositor->release (mask); + *surface = mask; +out: + cairo_surface_destroy (src); + _cairo_traps_fini (&traps); return status; + +error_release: + compositor->release (mask); +error: + cairo_surface_destroy (mask); + goto out; } static cairo_surface_t * traps_get_clip_surface (const cairo_traps_compositor_t *compositor, - cairo_surface_t *target, - const cairo_clip_t *clip, + const cairo_composite_rectangles_t *composite, const cairo_rectangle_int_t *extents) { - cairo_surface_t *surface; + cairo_surface_t *surface = NULL; cairo_int_status_t status; - surface = _cairo_surface_create_similar_solid (target, - CAIRO_CONTENT_ALPHA, - extents->width, - extents->height, - CAIRO_COLOR_WHITE); - if (unlikely (surface->status)) - return surface; - - status = compositor->acquire (surface); - if (unlikely (status)) { - cairo_surface_destroy (surface); - return _cairo_surface_create_in_error (status); - } + TRACE ((stderr, "%s\n", __FUNCTION__)); - status = combine_clip_as_traps (compositor, surface, clip, extents); + status = __clip_to_surface (compositor, composite, extents, &surface); if (status == CAIRO_INT_STATUS_UNSUPPORTED) { - status = _cairo_clip_combine_with_surface (clip, surface, + surface = _cairo_surface_create_similar_solid (composite->surface, + CAIRO_CONTENT_ALPHA, + extents->width, + extents->height, + CAIRO_COLOR_WHITE); + if (unlikely (surface->status)) + return surface; + + status = _cairo_clip_combine_with_surface (composite->clip, surface, extents->x, extents->y); } - compositor->release (surface); + if (unlikely (status)) { + cairo_surface_destroy (surface); + surface = _cairo_surface_create_in_error (status); + } return surface; } +static void blt_unaligned_boxes(const cairo_traps_compositor_t *compositor, + cairo_surface_t *surface, + int dx, int dy, + cairo_box_t *boxes, + int num_boxes) +{ + struct blt_in info; + int i; + + info.compositor = compositor; + info.dst = surface; + _cairo_boxes_init (&info.boxes); + info.boxes.num_boxes = 1; + for (i = 0; i < num_boxes; i++) { + cairo_box_t *b = &boxes[i]; + + if (! _cairo_fixed_is_integer (b->p1.x) || + ! _cairo_fixed_is_integer (b->p1.y) || + ! _cairo_fixed_is_integer (b->p2.x) || + ! _cairo_fixed_is_integer (b->p2.y)) + { + do_unaligned_box(blt_in, &info, b, dx, dy); + } + } +} + static cairo_surface_t * create_composite_mask (const cairo_traps_compositor_t *compositor, cairo_surface_t *dst, @@ -243,15 +426,13 @@ create_composite_mask (const cairo_traps_compositor_t *compositor, { cairo_surface_t *surface, *src; cairo_int_status_t status; - struct blt_in info; int src_x, src_y; - int i; - surface = _cairo_surface_create_similar_solid (dst, - CAIRO_CONTENT_ALPHA, - extents->bounded.width, - extents->bounded.height, - CAIRO_COLOR_TRANSPARENT); + TRACE ((stderr, "%s\n", __FUNCTION__)); + + surface = _cairo_surface_create_similar_scratch (dst, CAIRO_CONTENT_ALPHA, + extents->bounded.width, + extents->bounded.height); if (unlikely (surface->status)) return surface; @@ -261,8 +442,10 @@ create_composite_mask (const cairo_traps_compositor_t *compositor, &extents->bounded, &extents->bounded, &src_x, &src_y); - if (unlikely (src->status)) + if (unlikely (src->status)) { + cairo_surface_destroy (surface); return src; + } status = compositor->acquire (surface); if (unlikely (status)) { @@ -271,15 +454,34 @@ create_composite_mask (const cairo_traps_compositor_t *compositor, return _cairo_surface_create_in_error (status); } - if (mask_func && extents->clip->path == NULL) { + if (!surface->is_clear) { + cairo_boxes_t clear; + + _cairo_boxes_init_from_rectangle (&clear, + 0, 0, + extents->bounded.width, + extents->bounded.height); + status = compositor->fill_boxes (surface, + CAIRO_OPERATOR_CLEAR, + CAIRO_COLOR_TRANSPARENT, + &clear); + if (unlikely (status)) + goto error; + + surface->is_clear = TRUE; + } + + if (mask_func) { status = mask_func (compositor, surface, draw_closure, CAIRO_OPERATOR_SOURCE, src, src_x, src_y, extents->bounded.x, extents->bounded.y, &extents->bounded, extents->clip); - if (likely (status != CAIRO_INT_STATUS_UNSUPPORTED)) { - cairo_surface_destroy (src); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + surface->is_clear = FALSE; goto out; } + if (unlikely (status != CAIRO_INT_STATUS_UNSUPPORTED)) + goto error; } /* Is it worth setting the clip region here? */ @@ -287,28 +489,10 @@ create_composite_mask (const cairo_traps_compositor_t *compositor, CAIRO_OPERATOR_ADD, src, src_x, src_y, extents->bounded.x, extents->bounded.y, &extents->bounded, NULL); - cairo_surface_destroy (src); if (unlikely (status)) goto error; - info.compositor = compositor; - info.dst = surface; - _cairo_boxes_init (&info.boxes); - info.boxes.num_boxes = 1; - for (i = 0; i < extents->clip->num_boxes; i++) { - cairo_box_t *b = &extents->clip->boxes[i]; - - if (! _cairo_fixed_is_integer (b->p1.x) || - ! _cairo_fixed_is_integer (b->p1.y) || - ! _cairo_fixed_is_integer (b->p2.x) || - ! _cairo_fixed_is_integer (b->p2.y)) - { - do_unaligned_box(blt_in, &info, b, - extents->bounded.x, - extents->bounded.y); - } - } - + surface->is_clear = FALSE; if (extents->clip->path != NULL) { status = combine_clip_as_traps (compositor, surface, extents->clip, &extents->bounded); @@ -319,19 +503,25 @@ create_composite_mask (const cairo_traps_compositor_t *compositor, } if (unlikely (status)) goto error; + } else if (extents->clip->boxes) { + blt_unaligned_boxes(compositor, surface, + extents->bounded.x, extents->bounded.y, + extents->clip->boxes, extents->clip->num_boxes); + } out: compositor->release (surface); - surface->is_clear = FALSE; + cairo_surface_destroy (src); return surface; error: + compositor->release (surface); if (status != CAIRO_INT_STATUS_NOTHING_TO_DO) { cairo_surface_destroy (surface); surface = _cairo_surface_create_in_error (status); } - compositor->release (surface); + cairo_surface_destroy (src); return surface; } @@ -351,6 +541,8 @@ clip_and_composite_with_mask (const cairo_traps_compositor_t *compositor, cairo_surface_t *dst = extents->surface; cairo_surface_t *mask; + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = create_composite_mask (compositor, dst, draw_closure, draw_func, mask_func, extents); @@ -396,6 +588,8 @@ clip_and_composite_combine (const cairo_traps_compositor_t *compositor, cairo_surface_t *tmp, *clip; cairo_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + tmp = _cairo_surface_create_similar_scratch (dst, dst->content, extents->bounded.width, extents->bounded.height); @@ -424,8 +618,7 @@ clip_and_composite_combine (const cairo_traps_compositor_t *compositor, if (unlikely (status)) goto cleanup; - clip = traps_get_clip_surface (compositor, dst, extents->clip, - &extents->bounded); + clip = traps_get_clip_surface (compositor, extents, &extents->bounded); if (unlikely ((status = clip->status))) goto cleanup; @@ -467,6 +660,8 @@ clip_and_composite_source (const cairo_traps_compositor_t *compositor, { cairo_surface_t *mask; + TRACE ((stderr, "%s\n", __FUNCTION__)); + /* Create a surface that is mask IN clip */ mask = create_composite_mask (compositor, dst, draw_closure, draw_func, mask_func, @@ -528,11 +723,12 @@ fixup_unbounded_with_mask (const cairo_traps_compositor_t *compositor, const cairo_composite_rectangles_t *extents) { cairo_surface_t *dst = extents->surface; - cairo_clip_t *clip = extents->clip; cairo_surface_t *mask; + TRACE ((stderr, "%s\n", __FUNCTION__)); + /* XXX can we avoid querying the clip surface again? */ - mask = traps_get_clip_surface (compositor, dst, clip, &extents->unbounded); + mask = traps_get_clip_surface (compositor, extents, &extents->unbounded); if (unlikely (mask->status)) return mask->status; @@ -622,6 +818,8 @@ fixup_unbounded (const cairo_traps_compositor_t *compositor, cairo_box_t box; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (extents->bounded.width == extents->unbounded.width && extents->bounded.height == extents->unbounded.height) { @@ -772,6 +970,8 @@ clip_and_composite (const cairo_traps_compositor_t *compositor, cairo_region_t *clip_region = NULL; cairo_status_t status = CAIRO_STATUS_SUCCESS; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (reduce_alpha_op (extents)) { op = CAIRO_OPERATOR_ADD; source = NULL; @@ -882,6 +1082,8 @@ composite_traps (const cairo_traps_compositor_t *compositor, { composite_traps_info_t *info = closure; + TRACE ((stderr, "%s\n", __FUNCTION__)); + return compositor->composite_traps (dst, op, src, src_x - dst_x, src_y - dst_y, dst_x, dst_y, @@ -907,6 +1109,8 @@ composite_tristrip (const cairo_traps_compositor_t *compositor, { composite_tristrip_info_t *info = closure; + TRACE ((stderr, "%s\n", __FUNCTION__)); + return compositor->composite_tristrip (dst, op, src, src_x - dst_x, src_y - dst_y, dst_x, dst_y, @@ -923,10 +1127,7 @@ is_recording_pattern (const cairo_pattern_t *pattern) return FALSE; surface = ((const cairo_surface_pattern_t *) pattern)->surface; - if (_cairo_surface_is_paginated (surface)) - surface = _cairo_paginated_surface_get_recording (surface); - if (_cairo_surface_is_snapshot (surface)) - surface = _cairo_surface_snapshot_get_target (surface); + surface = _cairo_surface_get_source (surface, NULL); return _cairo_surface_is_recording (surface); } @@ -936,11 +1137,7 @@ recording_pattern_get_surface (const cairo_pattern_t *pattern) cairo_surface_t *surface; surface = ((const cairo_surface_pattern_t *) pattern)->surface; - if (_cairo_surface_is_paginated (surface)) - surface = _cairo_paginated_surface_get_recording (surface); - if (_cairo_surface_is_snapshot (surface)) - surface = _cairo_surface_snapshot_get_target (surface); - return surface; + return _cairo_surface_get_source (surface, NULL); } static cairo_bool_t @@ -959,15 +1156,7 @@ recording_pattern_contains_sample (const cairo_pattern_t *pattern, if (surface->unbounded) return TRUE; - if (sample->x >= surface->extents.x && - sample->y >= surface->extents.y && - sample->x + sample->width <= surface->extents.x + surface->extents.width && - sample->y + sample->height <= surface->extents.y + surface->extents.height) - { - return TRUE; - } - - return FALSE; + return _cairo_rectangle_contains_rectangle (&surface->extents, sample); } static cairo_bool_t @@ -989,10 +1178,12 @@ composite_aligned_boxes (const cairo_traps_compositor_t *compositor, { cairo_surface_t *dst = extents->surface; cairo_operator_t op = extents->op; - cairo_bool_t need_clip_mask = extents->clip->path != NULL; + cairo_bool_t need_clip_mask = ! _cairo_clip_is_region (extents->clip); cairo_bool_t op_is_source; cairo_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (need_clip_mask && (! extents->is_bounded || extents->op == CAIRO_OPERATOR_SOURCE)) { @@ -1063,8 +1254,8 @@ composite_aligned_boxes (const cairo_traps_compositor_t *compositor, int mask_x = 0, mask_y = 0; if (need_clip_mask) { - mask = traps_get_clip_surface (compositor, dst, extents->clip, - &extents->bounded); + mask = traps_get_clip_surface (compositor, + extents, &extents->bounded); if (unlikely (mask->status)) return mask->status; @@ -1110,39 +1301,33 @@ upload_boxes (const cairo_traps_compositor_t *compositor, { cairo_surface_t *dst = extents->surface; const cairo_pattern_t *source = &extents->source_pattern.base; - const cairo_surface_pattern_t *pattern; cairo_surface_t *src; cairo_rectangle_int_t limit; cairo_int_status_t status; int tx, ty; - pattern = (const cairo_surface_pattern_t *) source; - src = pattern->surface; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + src = _cairo_pattern_get_source((cairo_surface_pattern_t *)source, + &limit); if (!(src->type == CAIRO_SURFACE_TYPE_IMAGE || src->type == dst->type)) return CAIRO_INT_STATUS_UNSUPPORTED; if (! _cairo_matrix_is_integer_translation (&source->matrix, &tx, &ty)) return CAIRO_INT_STATUS_UNSUPPORTED; - if (_cairo_surface_is_snapshot (src)) - src = _cairo_surface_snapshot_get_target (src); - if (_cairo_surface_is_observer (src)) - src = _cairo_surface_observer_get_target (src); - if (_cairo_surface_is_subsurface (src)) { - _cairo_surface_subsurface_offset (src, &tx, &ty); - src = _cairo_surface_subsurface_get_target (src); - } - /* Check that the data is entirely within the image */ - if (extents->bounded.x + tx < 0 || extents->bounded.y + ty < 0) + if (extents->bounded.x + tx < limit.x || extents->bounded.y + ty < limit.y) return CAIRO_INT_STATUS_UNSUPPORTED; - _cairo_surface_get_extents (pattern->surface, &limit); - if (extents->bounded.x + extents->bounded.width + tx > limit.width || - extents->bounded.y + extents->bounded.height + ty > limit.height) + if (extents->bounded.x + extents->bounded.width + tx > limit.x + limit.width || + extents->bounded.y + extents->bounded.height + ty > limit.y + limit.height) return CAIRO_INT_STATUS_UNSUPPORTED; - if (pattern->surface->type == CAIRO_SURFACE_TYPE_IMAGE) + tx += limit.x; + ty += limit.y; + + if (src->type == CAIRO_SURFACE_TYPE_IMAGE) status = compositor->draw_image_boxes (dst, (cairo_image_surface_t *)src, boxes, tx, ty); @@ -1267,13 +1452,16 @@ clip_and_composite_polygon (const cairo_traps_compositor_t *compositor, cairo_composite_rectangles_t *extents, cairo_polygon_t *polygon, cairo_antialias_t antialias, - cairo_fill_rule_t fill_rule) + cairo_fill_rule_t fill_rule, + cairo_bool_t curvy) { composite_traps_info_t traps; cairo_surface_t *dst = extents->surface; cairo_bool_t clip_surface = ! _cairo_clip_is_region (extents->clip); cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (polygon->num_edges == 0) { status = CAIRO_INT_STATUS_SUCCESS; @@ -1328,9 +1516,27 @@ clip_and_composite_polygon (const cairo_traps_compositor_t *compositor, } } + if (antialias == CAIRO_ANTIALIAS_NONE && curvy) { + cairo_boxes_t boxes; + + _cairo_boxes_init (&boxes); + status = _cairo_rasterise_polygon_to_boxes (polygon, fill_rule, &boxes); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { + assert (boxes.is_pixel_aligned); + status = clip_and_composite_boxes (compositor, extents, &boxes); + } + _cairo_boxes_fini (&boxes); + if ((status != CAIRO_INT_STATUS_UNSUPPORTED)) + return status; + } + _cairo_traps_init (&traps.traps); - status = _cairo_bentley_ottmann_tessellate_polygon (&traps.traps, polygon, fill_rule); + if (antialias == CAIRO_ANTIALIAS_NONE && curvy) { + status = _cairo_rasterise_polygon_to_traps (polygon, fill_rule, antialias, &traps.traps); + } else { + status = _cairo_bentley_ottmann_tessellate_polygon (&traps.traps, polygon, fill_rule); + } if (unlikely (status)) goto CLEANUP_TRAPS; @@ -1442,6 +1648,8 @@ composite_opacity_boxes (const cairo_traps_compositor_t *compositor, struct composite_opacity_info info; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + info.compositor = compositor; info.op = op; info.dst = dst; @@ -1476,6 +1684,8 @@ composite_boxes (const cairo_traps_compositor_t *compositor, cairo_traps_t traps; cairo_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_traps_init_boxes (&traps, closure); if (unlikely (status)) return status; @@ -1497,6 +1707,8 @@ clip_and_composite_boxes (const cairo_traps_compositor_t *compositor, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (boxes->num_boxes == 0 && extents->is_bounded) return CAIRO_STATUS_SUCCESS; @@ -1524,17 +1736,19 @@ clip_and_composite_boxes (const cairo_traps_compositor_t *compositor, clip = _cairo_clip_copy (extents->clip); clip = _cairo_clip_intersect_boxes (clip, boxes); + if (_cairo_clip_is_all_clipped (clip)) + return CAIRO_INT_STATUS_NOTHING_TO_DO; + status = _cairo_clip_get_polygon (clip, &polygon, &fill_rule, &antialias); - if (clip->path) - _cairo_clip_path_destroy (clip->path); + _cairo_clip_path_destroy (clip->path); clip->path = NULL; if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { cairo_clip_t *saved_clip = extents->clip; extents->clip = clip; status = clip_and_composite_polygon (compositor, extents, &polygon, - antialias, fill_rule); + antialias, fill_rule, FALSE); clip = extents->clip; extents->clip = saved_clip; @@ -1555,7 +1769,7 @@ clip_and_composite_boxes (const cairo_traps_compositor_t *compositor, } return clip_and_composite (compositor, extents, - composite_boxes, composite_boxes, boxes, + composite_boxes, NULL, boxes, need_unbounded_clip (extents)); } @@ -1566,6 +1780,8 @@ composite_traps_as_boxes (const cairo_traps_compositor_t *compositor, { cairo_boxes_t boxes; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (! _cairo_traps_to_boxes (&info->traps, info->antialias, &boxes)) return CAIRO_INT_STATUS_UNSUPPORTED; @@ -1579,6 +1795,8 @@ clip_and_composite_traps (const cairo_traps_compositor_t *compositor, { cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = trim_extents_to_traps (extents, &info->traps); if (unlikely (status != CAIRO_INT_STATUS_SUCCESS)) return status; @@ -1613,6 +1831,8 @@ clip_and_composite_tristrip (const cairo_traps_compositor_t *compositor, cairo_int_status_t status; unsigned int flags = 0; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = trim_extents_to_tristrip (extents, &info->strip); if (unlikely (status != CAIRO_INT_STATUS_SUCCESS)) return status; @@ -1647,6 +1867,8 @@ composite_mask (const cairo_traps_compositor_t *compositor, { struct composite_mask *data = closure; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (src != NULL) { compositor->composite (dst, op, src, data->mask, extents->x + src_x, extents->y + src_y, @@ -1680,6 +1902,8 @@ static void composite_box(void *closure, struct composite_box_info *info = closure; const cairo_traps_compositor_t *compositor = info->compositor; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (! CAIRO_ALPHA_SHORT_IS_OPAQUE (coverage)) { cairo_surface_t *mask; cairo_color_t color; @@ -1729,6 +1953,8 @@ composite_mask_clip_boxes (const cairo_traps_compositor_t *compositor, struct composite_box_info info; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + info.compositor = compositor; info.op = CAIRO_OPERATOR_SOURCE; info.dst = dst; @@ -1764,6 +1990,8 @@ composite_mask_clip (const cairo_traps_compositor_t *compositor, composite_traps_info_t info; cairo_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_clip_get_polygon (clip, &polygon, &fill_rule, &info.antialias); if (unlikely (status)) @@ -1798,6 +2026,12 @@ _cairo_traps_compositor_paint (const cairo_compositor_t *_compositor, cairo_boxes_t boxes; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = compositor->check_composite (extents); + if (unlikely (status)) + return status; + _cairo_clip_steal_boxes (extents->clip, &boxes); status = clip_and_composite_boxes (compositor, extents, &boxes); _cairo_clip_unsteal_boxes (extents->clip, &boxes); @@ -1812,6 +2046,12 @@ _cairo_traps_compositor_mask (const cairo_compositor_t *_compositor, const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t*)_compositor; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = compositor->check_composite (extents); + if (unlikely (status)) + return status; + if (extents->mask_pattern.base.type == CAIRO_PATTERN_TYPE_SOLID && extents->clip->path == NULL) { status = clip_and_composite (compositor, extents, @@ -1829,6 +2069,8 @@ _cairo_traps_compositor_mask (const cairo_compositor_t *_compositor, &extents->mask_sample_area, &data.mask_x, &data.mask_y); + if (unlikely (data.mask->status)) + return data.mask->status; status = clip_and_composite (compositor, extents, composite_mask, @@ -1854,6 +2096,12 @@ _cairo_traps_compositor_stroke (const cairo_compositor_t *_compositor, const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = compositor->check_composite (extents); + if (unlikely (status)) + return status; + status = CAIRO_INT_STATUS_UNSUPPORTED; if (_cairo_path_fixed_stroke_is_rectilinear (path)) { cairo_boxes_t boxes; @@ -1885,6 +2133,24 @@ _cairo_traps_compositor_stroke (const cairo_compositor_t *_compositor, _cairo_tristrip_fini (&info.strip); } + if (status == CAIRO_INT_STATUS_UNSUPPORTED && + path->has_curve_to && antialias == CAIRO_ANTIALIAS_NONE) { + cairo_polygon_t polygon; + + _cairo_polygon_init_with_clip (&polygon, extents->clip); + status = _cairo_path_fixed_stroke_to_polygon (path, style, + ctm, ctm_inverse, + tolerance, + &polygon); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = clip_and_composite_polygon (compositor, + extents, &polygon, + CAIRO_ANTIALIAS_NONE, + CAIRO_FILL_RULE_WINDING, + TRUE); + _cairo_polygon_fini (&polygon); + } + if (status == CAIRO_INT_STATUS_UNSUPPORTED) { composite_traps_info_t info; @@ -1913,6 +2179,12 @@ _cairo_traps_compositor_fill (const cairo_compositor_t *_compositor, const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = compositor->check_composite (extents); + if (unlikely (status)) + return status; + status = CAIRO_INT_STATUS_UNSUPPORTED; if (_cairo_path_fixed_fill_is_rectilinear (path)) { cairo_boxes_t boxes; @@ -1955,7 +2227,7 @@ _cairo_traps_compositor_fill (const cairo_compositor_t *_compositor, #endif if (likely (status == CAIRO_INT_STATUS_SUCCESS)) { status = clip_and_composite_polygon (compositor, extents, &polygon, - antialias, fill_rule); + antialias, fill_rule, path->has_curve_to); } _cairo_polygon_fini (&polygon); } @@ -1976,6 +2248,8 @@ composite_glyphs (const cairo_traps_compositor_t *compositor, { cairo_composite_glyphs_info_t *info = closure; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (op == CAIRO_OPERATOR_ADD && (dst->content & CAIRO_CONTENT_COLOR) == 0) info->use_mask = 0; @@ -1996,6 +2270,12 @@ _cairo_traps_compositor_glyphs (const cairo_compositor_t *_compositor, const cairo_traps_compositor_t *compositor = (cairo_traps_compositor_t *)_compositor; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + + status = compositor->check_composite (extents); + if (unlikely (status)) + return status; + _cairo_scaled_font_freeze_cache (scaled_font); status = compositor->check_composite_glyphs (extents, scaled_font, glyphs, diff --git a/src/cairo-traps-private.h b/src/cairo-traps-private.h index 5b17719..62c0fe7 100644 --- a/src/cairo-traps-private.h +++ b/src/cairo-traps-private.h @@ -121,6 +121,12 @@ cairo_private cairo_status_t _cairo_traps_path (const cairo_traps_t *traps, cairo_path_fixed_t *path); +cairo_private cairo_int_status_t +_cairo_rasterise_polygon_to_traps (cairo_polygon_t *polygon, + cairo_fill_rule_t fill_rule, + cairo_antialias_t antialias, + cairo_traps_t *traps); + CAIRO_END_DECLS #endif /* CAIRO_TRAPS_PRIVATE_H */ diff --git a/src/cairo-traps.c b/src/cairo-traps.c index a6e7f94..48eaf98 100644 --- a/src/cairo-traps.c +++ b/src/cairo-traps.c @@ -44,6 +44,7 @@ #include "cairo-region-private.h" #include "cairo-slope-private.h" #include "cairo-traps-private.h" +#include "cairo-spans-private.h" /* private functions */ @@ -158,7 +159,7 @@ _cairo_traps_add_trap (cairo_traps_t *traps, } /** - * _cairo_traps_init_box: + * _cairo_traps_init_boxes: * @traps: a #cairo_traps_t * @box: an array box that will each be converted to a single trapezoid * to store in @traps. @@ -715,3 +716,99 @@ _cairo_traps_path (const cairo_traps_t *traps, return CAIRO_STATUS_SUCCESS; } + +void +_cairo_debug_print_traps (FILE *file, const cairo_traps_t *traps) +{ + cairo_box_t extents; + int n; + +#if 0 + if (traps->has_limits) { + printf ("%s: limits=(%d, %d, %d, %d)\n", + filename, + traps->limits.p1.x, traps->limits.p1.y, + traps->limits.p2.x, traps->limits.p2.y); + } +#endif + + _cairo_traps_extents (traps, &extents); + fprintf (file, "extents=(%d, %d, %d, %d)\n", + extents.p1.x, extents.p1.y, + extents.p2.x, extents.p2.y); + + for (n = 0; n < traps->num_traps; n++) { + fprintf (file, "%d %d L:(%d, %d), (%d, %d) R:(%d, %d), (%d, %d)\n", + traps->traps[n].top, + traps->traps[n].bottom, + traps->traps[n].left.p1.x, + traps->traps[n].left.p1.y, + traps->traps[n].left.p2.x, + traps->traps[n].left.p2.y, + traps->traps[n].right.p1.x, + traps->traps[n].right.p1.y, + traps->traps[n].right.p2.x, + traps->traps[n].right.p2.y); + } +} + +struct cairo_trap_renderer { + cairo_span_renderer_t base; + cairo_traps_t *traps; +}; + +static cairo_status_t +span_to_traps (void *abstract_renderer, int y, int h, + const cairo_half_open_span_t *spans, unsigned num_spans) +{ + struct cairo_trap_renderer *r = abstract_renderer; + cairo_fixed_t top, bot; + + if (num_spans == 0) + return CAIRO_STATUS_SUCCESS; + + top = _cairo_fixed_from_int (y); + bot = _cairo_fixed_from_int (y + h); + do { + if (spans[0].coverage) { + cairo_fixed_t x0 = _cairo_fixed_from_int(spans[0].x); + cairo_fixed_t x1 = _cairo_fixed_from_int(spans[1].x); + cairo_line_t left = { { x0, top }, { x0, bot } }, + right = { { x1, top }, { x1, bot } }; + _cairo_traps_add_trap (r->traps, top, bot, &left, &right); + } + spans++; + } while (--num_spans > 1); + + return CAIRO_STATUS_SUCCESS; +} + +cairo_int_status_t +_cairo_rasterise_polygon_to_traps (cairo_polygon_t *polygon, + cairo_fill_rule_t fill_rule, + cairo_antialias_t antialias, + cairo_traps_t *traps) +{ + struct cairo_trap_renderer renderer; + cairo_scan_converter_t *converter; + cairo_int_status_t status; + cairo_rectangle_int_t r; + + TRACE ((stderr, "%s: fill_rule=%d, antialias=%d\n", + __FUNCTION__, fill_rule, antialias)); + assert(antialias == CAIRO_ANTIALIAS_NONE); + + renderer.traps = traps; + renderer.base.render_rows = span_to_traps; + + _cairo_box_round_to_rectangle (&polygon->extents, &r); + converter = _cairo_mono_scan_converter_create (r.x, r.y, + r.x + r.width, + r.y + r.height, + fill_rule); + status = _cairo_mono_scan_converter_add_polygon (converter, polygon); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = converter->generate (converter, &renderer.base); + converter->destroy (converter); + return status; +} diff --git a/src/cairo-truetype-subset.c b/src/cairo-truetype-subset.c index 1afdf3a..18ee685 100644 --- a/src/cairo-truetype-subset.c +++ b/src/cairo-truetype-subset.c @@ -1250,7 +1250,6 @@ _cairo_truetype_reverse_cmap (cairo_scaled_font_t *scaled_font, uint16_t *end_code; uint16_t *delta; uint16_t *range_offset; - uint16_t *glyph_array; uint16_t c; backend = scaled_font->backend; @@ -1290,7 +1289,6 @@ _cairo_truetype_reverse_cmap (cairo_scaled_font_t *scaled_font, start_code = &(end_code[num_segments + 1]); delta = &(start_code[num_segments]); range_offset = &(delta[num_segments]); - glyph_array = &(range_offset[num_segments]); /* search for glyph in segments with rangeOffset=0 */ for (i = 0; i < num_segments; i++) { diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c index efe3028..e507abe 100644 --- a/src/cairo-type1-subset.c +++ b/src/cairo-type1-subset.c @@ -1,3 +1,4 @@ +/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ /* cairo - a vector graphics library with display and print output * * Copyright © 2006 Red Hat, Inc @@ -98,6 +99,8 @@ typedef struct _cairo_type1_font_subset { struct { const char *subr_string; int subr_length; + const char *np; + int np_length; cairo_bool_t used; } *subrs; @@ -378,6 +381,7 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) { const char *start, *end, *segment_end; char *s; + int i; segment_end = font->header_segment + font->header_segment_size; start = find_token (font->header_segment, segment_end, "/FontName"); @@ -403,6 +407,16 @@ cairo_type1_font_subset_get_fontname (cairo_type1_font_subset_t *font) return CAIRO_INT_STATUS_UNSUPPORTED; } + /* If font name is prefixed with a subset tag, strip it off. */ + if (strlen(start) > 7 && start[6] == '+') { + for (i = 0; i < 6; i++) { + if (start[i] < 'A' || start[i] > 'Z') + break; + } + if (i == 6) + start += 7; + } + font->base.base_font = strdup (start); free (s); if (unlikely (font->base.base_font == NULL)) @@ -748,80 +762,79 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, if (*p < 32) { command = *p++; switch (command) { - case TYPE1_CHARSTRING_COMMAND_HSBW: - font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + case TYPE1_CHARSTRING_COMMAND_HSBW: + if (! last_op_was_integer) + return CAIRO_INT_STATUS_UNSUPPORTED; + + font->glyphs[glyph].width = font->build_stack.stack[1]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; + + case TYPE1_CHARSTRING_COMMAND_CALLSUBR: + if (font->subset_subrs && + last_op_was_integer && + font->build_stack.top_value >= 0 && + font->build_stack.top_value < font->num_subrs) + { + subr_num = font->build_stack.top_value; + font->subrs[subr_num].used = TRUE; + last_op_was_integer = FALSE; + status = cairo_type1_font_subset_parse_charstring (font, + glyph, + font->subrs[subr_num].subr_string, + font->subrs[subr_num].subr_length); + } else { + font->subset_subrs = FALSE; + } + break; + + case TYPE1_CHARSTRING_COMMAND_ESCAPE: + command = command << 8 | *p++; + switch (command) { + case TYPE1_CHARSTRING_COMMAND_SEAC: + /* The seac command takes five integer arguments. The + * last two are glyph indices into the PS standard + * encoding give the names of the glyphs that this + * glyph is composed from. All we need to do is to + * make sure those glyphs are present in the subset + * under their standard names. */ + status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); + if (unlikely (status)) + return status; + + status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); + if (unlikely (status)) + return status; + font->build_stack.sp = 0; last_op_was_integer = FALSE; break; - case TYPE1_CHARSTRING_COMMAND_CALLSUBR: - if (font->subset_subrs && - last_op_was_integer && - font->build_stack.top_value >= 0 && - font->build_stack.top_value < font->num_subrs) - { - subr_num = font->build_stack.top_value; - font->subrs[subr_num].used = TRUE; - last_op_was_integer = FALSE; - status = cairo_type1_font_subset_parse_charstring (font, - glyph, - font->subrs[subr_num].subr_string, - font->subrs[subr_num].subr_length); - } else { - font->subset_subrs = FALSE; - } + case TYPE1_CHARSTRING_COMMAND_SBW: + if (! last_op_was_integer) + return CAIRO_INT_STATUS_UNSUPPORTED; + + font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; + + case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: + for (i = 0; i < font->build_stack.sp; i++) + font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; + font->ps_stack.num_other_subr_args = font->build_stack.sp; + font->ps_stack.cur_other_subr_arg = 0; + font->build_stack.sp = 0; + last_op_was_integer = FALSE; break; - case TYPE1_CHARSTRING_COMMAND_ESCAPE: - command = command << 8 | *p++; - switch (command) { - case TYPE1_CHARSTRING_COMMAND_SEAC: - /* The seac command takes five integer arguments. The - * last two are glyph indices into the PS standard - * encoding give the names of the glyphs that this - * glyph is composed from. All we need to do is to - * make sure those glyphs are present in the subset - * under their standard names. */ - status = use_standard_encoding_glyph (font, font->build_stack.stack[3]); - if (unlikely (status)) - return status; - - status = use_standard_encoding_glyph (font, font->build_stack.stack[4]); - if (unlikely (status)) - return status; - - font->build_stack.sp = 0; - last_op_was_integer = FALSE; - break; - - case TYPE1_CHARSTRING_COMMAND_SBW: - font->glyphs[glyph].width = font->build_stack.stack[2]/font->base.units_per_em; - font->build_stack.sp = 0; - last_op_was_integer = FALSE; - break; - - case TYPE1_CHARSTRING_COMMAND_CALLOTHERSUBR: - for (i = 0; i < font->build_stack.sp; i++) - font->ps_stack.other_subr_args[i] = font->build_stack.stack[i]; - font->ps_stack.num_other_subr_args = font->build_stack.sp; - font->ps_stack.cur_other_subr_arg = 0; - font->build_stack.sp = 0; - last_op_was_integer = FALSE; - break; - - case TYPE1_CHARSTRING_COMMAND_POP: - if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { - font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; - last_op_was_integer = TRUE; - } else { - font->subset_subrs = FALSE; - } - break; - - default: - font->build_stack.sp = 0; - last_op_was_integer = FALSE; - break; + case TYPE1_CHARSTRING_COMMAND_POP: + if (font->ps_stack.num_other_subr_args > font->ps_stack.cur_other_subr_arg) { + font->build_stack.top_value = font->ps_stack.other_subr_args[font->ps_stack.cur_other_subr_arg++]; + last_op_was_integer = TRUE; + } else { + font->subset_subrs = FALSE; } break; @@ -829,6 +842,13 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, font->build_stack.sp = 0; last_op_was_integer = FALSE; break; + } + break; + + default: + font->build_stack.sp = 0; + last_op_was_integer = FALSE; + break; } } else { /* integer argument */ @@ -847,11 +867,14 @@ cairo_type1_font_subset_parse_charstring (cairo_type1_font_subset_t *font, static cairo_status_t cairo_type1_font_subset_build_subr_list (cairo_type1_font_subset_t *font, int subr_number, - const char *encrypted_charstring, int encrypted_charstring_length) + const char *encrypted_charstring, int encrypted_charstring_length, + const char *np, int np_length) { font->subrs[subr_number].subr_string = encrypted_charstring; font->subrs[subr_number].subr_length = encrypted_charstring_length; + font->subrs[subr_number].np = np; + font->subrs[subr_number].np_length = np_length; return CAIRO_STATUS_SUCCESS; } @@ -859,7 +882,8 @@ cairo_type1_font_subset_build_subr_list (cairo_type1_font_subset_t *font, static cairo_status_t write_used_subrs (cairo_type1_font_subset_t *font, int subr_number, - const char *subr_string, int subr_string_length) + const char *subr_string, int subr_string_length, + const char *np, int np_length) { cairo_status_t status; char buffer[256]; @@ -881,8 +905,12 @@ write_used_subrs (cairo_type1_font_subset_t *font, if (unlikely (status)) return status; - length = snprintf (buffer, sizeof buffer, "%s\n", font->np); - status = cairo_type1_font_subset_write_encrypted (font, buffer, length); + if (np) { + status = cairo_type1_font_subset_write_encrypted (font, np, np_length); + } else { + length = snprintf (buffer, sizeof buffer, "%s\n", font->np); + status = cairo_type1_font_subset_write_encrypted (font, buffer, length); + } if (unlikely (status)) return status; @@ -890,8 +918,9 @@ write_used_subrs (cairo_type1_font_subset_t *font, } typedef cairo_status_t (*subr_func_t) (cairo_type1_font_subset_t *font, - int subr_number, - const char *subr_string, int subr_string_length); + int subr_number, + const char *subr_string, int subr_string_length, + const char *np, int np_length); static cairo_status_t cairo_type1_font_for_each_subr (cairo_type1_font_subset_t *font, @@ -903,6 +932,8 @@ cairo_type1_font_for_each_subr (cairo_type1_font_subset_t *font, const char *p, *subr_string; char *end; int subr_num, subr_length; + const char *np; + int np_length; cairo_status_t status; /* We're looking at "dup" at the start of the first subroutine. The subroutines @@ -936,15 +967,29 @@ cairo_type1_font_for_each_subr (cairo_type1_font_subset_t *font, * between the -| or RD token and the encrypted data, thus '+ 1'. */ subr_string = skip_token (end, cleartext_end) + 1; - status = func (font, subr_num, - subr_string, subr_length); - if (unlikely (status)) - return status; + np = NULL; + np_length = 0; /* Skip binary data and | or NP token. */ p = skip_token (subr_string + subr_length, cleartext_end); while (p < cleartext_end && _cairo_isspace(*p)) p++; + + /* Some fonts have "noaccess put" instead of "NP" */ + if (p + 3 < cleartext_end && strncmp (p, "put", 3) == 0) { + p = skip_token (p, cleartext_end); + while (p < cleartext_end && _cairo_isspace(*p)) + p++; + + np = subr_string + subr_length; + np_length = p - np; + } + + status = func (font, subr_num, + subr_string, subr_length, np, np_length); + if (unlikely (status)) + return status; + } *array_end = (char *) p; @@ -1094,9 +1139,10 @@ cairo_type1_font_subset_write_private_dict (cairo_type1_font_subset_t *font, const char *p, *subrs, *charstrings, *array_start, *array_end, *dict_start, *dict_end; const char *closefile_token; char buffer[32], *subr_count_end, *glyph_count_end; - int num_charstrings, length; + int length; const cairo_scaled_font_backend_t *backend; unsigned int i; + int glyph, j; /* The private dict holds hint information, common subroutines and * the actual glyph definitions (charstrings). @@ -1160,7 +1206,7 @@ skip_subrs: /* Scan past /CharStrings and the integer following it. */ p = charstrings + strlen ("/CharStrings"); - num_charstrings = strtol (p, &glyph_count_end, 10); + strtol (p, &glyph_count_end, 10); if (p == glyph_count_end) return CAIRO_INT_STATUS_UNSUPPORTED; @@ -1214,18 +1260,18 @@ skip_subrs: /* Go through the charstring of each glyph in use, get the glyph * width and figure out which extra glyphs may be required by the - * seac operator. Also subset the Subrs. */ - for (i = 0; i < font->base.num_glyphs; i++) { - if (font->glyphs[i].subset_index >= 0) { - font->build_stack.sp = 0; - font->ps_stack.num_other_subr_args = 0; - status = cairo_type1_font_subset_parse_charstring (font, - i, - font->glyphs[i].encrypted_charstring, - font->glyphs[i].encrypted_charstring_length); - if (unlikely (status)) - return status; - } + * seac operator (which may cause font->num_glyphs to increase + * while this loop is executing). Also subset the Subrs. */ + for (j = 0; j < font->num_glyphs; j++) { + glyph = font->subset_index_to_glyphs[j]; + font->build_stack.sp = 0; + font->ps_stack.num_other_subr_args = 0; + status = cairo_type1_font_subset_parse_charstring (font, + glyph, + font->glyphs[glyph].encrypted_charstring, + font->glyphs[glyph].encrypted_charstring_length); + if (unlikely (status)) + return status; } closefile_token = find_token (dict_end, font->cleartext_end, "closefile"); @@ -1513,7 +1559,7 @@ _cairo_type1_subset_init (cairo_type1_subset_t *type1_subset, cairo_bool_t hex_encode) { cairo_type1_font_subset_t font; - cairo_status_t status, status_ignored; + cairo_status_t status; unsigned long length; unsigned int i; char buf[30]; @@ -1579,7 +1625,7 @@ _cairo_type1_subset_init (cairo_type1_subset_t *type1_subset, fail2: free (type1_subset->base_font); fail1: - status_ignored = _cairo_type1_font_subset_fini (&font); + _cairo_type1_font_subset_fini (&font); return status; } diff --git a/src/cairo-type3-glyph-surface.c b/src/cairo-type3-glyph-surface.c index ee2d0e3..5bb6bfc 100644 --- a/src/cairo-type3-glyph-surface.c +++ b/src/cairo-type3-glyph-surface.c @@ -331,6 +331,7 @@ static const cairo_surface_backend_t cairo_type3_glyph_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + NULL, /* source */ NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ diff --git a/src/cairo-types-private.h b/src/cairo-types-private.h index 2fdd0a1..3c2d21a 100644 --- a/src/cairo-types-private.h +++ b/src/cairo-types-private.h @@ -52,7 +52,7 @@ CAIRO_BEGIN_DECLS * @Short_Description: Generic data types * * This section lists generic data types used in the cairo API. - */ + **/ typedef struct _cairo_array cairo_array_t; typedef struct _cairo_backend cairo_backend_t; @@ -66,6 +66,7 @@ typedef struct _cairo_color_stop cairo_color_stop_t; typedef struct _cairo_contour cairo_contour_t; typedef struct _cairo_contour_chain cairo_contour_chain_t; typedef struct _cairo_contour_iter cairo_contour_iter_t; +typedef struct _cairo_damage cairo_damage_t; typedef struct _cairo_device_backend cairo_device_backend_t; typedef struct _cairo_font_face_backend cairo_font_face_backend_t; typedef struct _cairo_gstate cairo_gstate_t; @@ -130,7 +131,7 @@ struct _cairo_observer { * * _cairo_hash_table_insert (hash_table, &my_entry->base); * - * IMPORTANT: The caller is reponsible for initializing + * IMPORTANT: The caller is responsible for initializing * my_entry->base.hash with a hash code derived from the key. The * essential property of the hash code is that keys_equal must never * return %TRUE for two keys that have different hashes. The best hash diff --git a/src/cairo-user-font.c b/src/cairo-user-font.c index 1b507fc..297f21c 100644 --- a/src/cairo-user-font.c +++ b/src/cairo-user-font.c @@ -49,7 +49,7 @@ * in a font. This is most useful in implementing fonts in non-standard * formats, like SVG fonts and Flash fonts, but can also be used by games and * other application to draw "funky" fonts. - */ + **/ /** * CAIRO_HAS_USER_FONT: @@ -59,8 +59,8 @@ * The user font backend is always built in versions of cairo that support * this feature (1.8 and later). * - * @Since: 1.8 - */ + * Since: 1.8 + **/ typedef struct _cairo_user_scaled_font_methods { cairo_user_scaled_font_init_func_t init; diff --git a/src/cairo-version.c b/src/cairo-version.c index 2f53e11..d9ad240 100644 --- a/src/cairo-version.c +++ b/src/cairo-version.c @@ -54,31 +54,31 @@ * vs. in-progress development, (such as from git instead of a tar file, * or as a "snapshot" tar file as opposed to a "release" tar file). * - * + * * _____ Major. Always 1, until we invent a new scheme. * / ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git) * | / _ Micro. Even/Odd = Tar-file/git * | | / * 1.0.0 - * + * * * Here are a few examples of versions that one might see. - * + * * Releases * -------- * 1.0.0 - A major release * 1.0.2 - A subsequent maintenance release * 1.2.0 - Another major release - * + *   * Snapshots * --------- * 1.1.2 - A snapshot (working toward the 1.2.0 release) - * + *   * In-progress development (eg. from git) * -------------------------------------- * 1.0.1 - Development on a maintenance branch (toward 1.0.2 release) * 1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release) - * + * * * * Compatibility @@ -112,17 +112,17 @@ * an encoded form suitable for direct comparison. Cairo also provides the * macro CAIRO_VERSION_ENCODE() to perform the encoding. * - * + * * Compile-time * ------------ * CAIRO_VERSION_STRING Human-readable * CAIRO_VERSION Encoded, suitable for comparison - * + *   * Run-time * -------- * cairo_version_string() Human-readable * cairo_version() Encoded, suitable for comparison - * + * * * For example, checking that the cairo version is greater than or equal * to 1.0.0 could be achieved at compile-time or run-time as follows: @@ -137,53 +137,65 @@ * * * - */ + **/ /** * CAIRO_VERSION: * * The version of cairo available at compile-time, encoded using * CAIRO_VERSION_ENCODE(). - */ + * + * Since: 1.0 + **/ /** * CAIRO_VERSION_MAJOR: * * The major component of the version of cairo available at compile-time. - */ + * + * Since: 1.0 + **/ /** * CAIRO_VERSION_MINOR: * * The minor component of the version of cairo available at compile-time. - */ + * + * Since: 1.0 + **/ /** * CAIRO_VERSION_MICRO: * * The micro component of the version of cairo available at compile-time. - */ + * + * Since: 1.0 + **/ /** * CAIRO_VERSION_STRING: * * A human-readable string literal containing the version of cairo available * at compile-time, in the form of "X.Y.Z". - */ + * + * Since: 1.8 + **/ /** * CAIRO_VERSION_ENCODE: * @major: the major component of the version number * @minor: the minor component of the version number * @micro: the micro component of the version number - * + * * This macro encodes the given cairo version into an integer. The numbers * returned by %CAIRO_VERSION and cairo_version() are encoded using this macro. * Two encoded version numbers can be compared as integers. The encoding ensures * that later versions compare greater than earlier versions. * - * @Returns: the encoded version. - */ + * Returns: the encoded version. + * + * Since: 1.0 + **/ /** * CAIRO_VERSION_STRINGIZE: @@ -195,10 +207,10 @@ * returned by %CAIRO_VERSION_STRING and cairo_version_string() are encoded using this macro. * The parameters to this macro must expand to numerical literals. * - * @Returns: a string literal containing the version. + * Returns: a string literal containing the version. * - * @Since: 1.8 - */ + * Since: 1.8 + **/ /** * cairo_version: @@ -218,6 +230,8 @@ * equivalents %CAIRO_VERSION and %CAIRO_VERSION_STRING. * * Return value: the encoded version. + * + * Since: 1.0 **/ int cairo_version (void) @@ -235,6 +249,8 @@ cairo_version (void) * %CAIRO_VERSION_STRING and %CAIRO_VERSION. * * Return value: a string containing the version. + * + * Since: 1.0 **/ const char* cairo_version_string (void) diff --git a/src/cairo-vg-surface.c b/src/cairo-vg-surface.c index a2ea547..6e0d9a0 100644 --- a/src/cairo-vg-surface.c +++ b/src/cairo-vg-surface.c @@ -41,8 +41,9 @@ #include "cairo-cache-private.h" #include "cairo-default-context-private.h" #include "cairo-error-private.h" +#include "cairo-image-surface-private.h" #include "cairo-path-fixed-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #include "cairo-surface-clipper-private.h" #include @@ -248,7 +249,7 @@ _vg_format_to_pixman (VGImageFormat format, /* RGB{A,X} channel ordering */ case VG_sRGBX_8888: return PIXMAN_r8g8b8x8; case VG_sRGBA_8888: *needs_premult_fixup = TRUE; return PIXMAN_r8g8b8a8; - case VG_sRGBA_8888_PRE: return PIXMAN_r8b8g8a8; + case VG_sRGBA_8888_PRE: return PIXMAN_r8g8b8a8; case VG_sRGB_565: return PIXMAN_r5g6b5; case VG_sRGBA_5551: return 0; case VG_sRGBA_4444: return 0; @@ -466,7 +467,7 @@ _vg_surface_get_extents (void *abstract_surface, typedef struct _vg_path { VGPath path; - cairo_matrix_t *ctm_inverse; + const cairo_matrix_t *ctm_inverse; VGubyte gseg[MAX_SEG]; VGfloat gdata[MAX_SEG*3*2]; @@ -1057,16 +1058,16 @@ setup_source (cairo_vg_context_t *context, } static cairo_int_status_t -_vg_surface_stroke (void *abstract_surface, - cairo_operator_t op, - const cairo_pattern_t*source, - cairo_path_fixed_t *path, - cairo_stroke_style_t *style, - cairo_matrix_t *ctm, - cairo_matrix_t *ctm_inverse, - double tolerance, - cairo_antialias_t antialias, - cairo_clip_t *clip) +_vg_surface_stroke (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) { cairo_vg_surface_t *surface = abstract_surface; cairo_vg_context_t *context; @@ -1133,14 +1134,14 @@ _vg_surface_stroke (void *abstract_surface, } static cairo_int_status_t -_vg_surface_fill (void *abstract_surface, - cairo_operator_t op, - const cairo_pattern_t *source, - cairo_path_fixed_t *path, - cairo_fill_rule_t fill_rule, - double tolerance, - cairo_antialias_t antialias, - cairo_clip_t *clip) +_vg_surface_fill (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) { cairo_vg_surface_t *surface = abstract_surface; cairo_vg_context_t *context; @@ -1200,10 +1201,10 @@ _vg_surface_fill (void *abstract_surface, } static cairo_int_status_t -_vg_surface_paint (void *abstract_surface, - cairo_operator_t op, - const cairo_pattern_t *source, - cairo_clip_t *clip) +_vg_surface_paint (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip) { cairo_vg_surface_t *surface = abstract_surface; cairo_vg_context_t *context; @@ -1268,10 +1269,10 @@ _vg_surface_paint (void *abstract_surface, static cairo_int_status_t _vg_surface_mask (void *abstract_surface, - cairo_operator_t op, + cairo_operator_t op, const cairo_pattern_t *source, const cairo_pattern_t *mask, - cairo_clip_t *clip) + const cairo_clip_t *clip) { cairo_vg_surface_t *surface = abstract_surface; cairo_status_t status; @@ -1314,8 +1315,7 @@ _vg_surface_show_glyphs (void *abstract_surface, cairo_glyph_t *glyphs, int num_glyphs, cairo_scaled_font_t *scaled_font, - cairo_clip_t *clip, - int *remaining_glyphs) + const cairo_clip_t *clip) { cairo_status_t status = CAIRO_STATUS_SUCCESS; cairo_path_fixed_t path; @@ -1450,79 +1450,6 @@ _vg_surface_release_source_image (void *abstract_surface, } static cairo_status_t -_vg_surface_acquire_dest_image (void *abstract_surface, - cairo_rectangle_int_t *interest_rect, - cairo_image_surface_t **image_out, - cairo_rectangle_int_t *image_rect_out, - void **image_extra) -{ - cairo_vg_surface_t *surface = abstract_surface; - - *image_rect_out = *interest_rect; - *image_extra = NULL; - return _vg_get_image (surface, - interest_rect->x, interest_rect->y, - interest_rect->width, interest_rect->height, - image_out); -} - -static void -unpremultiply_argb (uint8_t *data, - int width, - int height, - int stride) -{ - int i; - - while (height--) { - uint32_t *row = (uint32_t *) data; - - for (i = 0; i < width; i ++) { - uint32_t p = row[i]; - uint8_t alpha; - - alpha = p >> 24; - if (alpha == 0) { - row[i] = 0; - } else if (alpha != 0xff) { - uint8_t r = (((p >> 16) & 0xff) * 255 + alpha / 2) / alpha; - uint8_t g = (((p >> 8) & 0xff) * 255 + alpha / 2) / alpha; - uint8_t b = (((p >> 0) & 0xff) * 255 + alpha / 2) / alpha; - row[i] = (alpha << 24) | (r << 16) | (g << 8) | (b << 0); - } - } - - data += stride; - } -} - -static void -_vg_surface_release_dest_image (void *abstract_surface, - cairo_rectangle_int_t *interest_rect, - cairo_image_surface_t *image, - cairo_rectangle_int_t *image_rect, - void *image_extra) -{ - cairo_vg_surface_t *surface = abstract_surface; - cairo_bool_t needs_unpremultiply; - - _vg_format_to_pixman (surface->format, &needs_unpremultiply); - if (needs_unpremultiply) { - unpremultiply_argb (image->data, - image->width, image->height, - image->stride); - } - - vgImageSubData (surface->image, - image->data, image->stride, - surface->format, - image_rect->x, image_rect->y, - image_rect->width, image_rect->height); - - cairo_surface_destroy (&image->base); -} - -static cairo_status_t _vg_surface_finish (void *abstract_surface) { cairo_vg_surface_t *surface = abstract_surface; @@ -1552,6 +1479,7 @@ _vg_surface_finish (void *abstract_surface) static const cairo_surface_backend_t cairo_vg_surface_backend = { CAIRO_SURFACE_TYPE_VG, _vg_surface_finish, + _cairo_default_context_create, /* XXX */ _vg_surface_create_similar, @@ -1559,36 +1487,26 @@ static const cairo_surface_backend_t cairo_vg_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, _vg_surface_acquire_source_image, _vg_surface_release_source_image, - _vg_surface_acquire_dest_image, - _vg_surface_release_dest_image, - - NULL, /* clone_similar */ - NULL, /* composite */ - NULL, /* fill_rectangles */ - NULL, /* composite_trapezoids */ - NULL, /* create_span_renderer */ - NULL, /* check_span_renderer */ + NULL, /* snapshot */ NULL, /* copy_page */ NULL, /* show_page */ + _vg_surface_get_extents, - NULL, /* old_show_glyphs */ _vg_surface_get_font_options, /* get_font_options */ + NULL, /* flush */ - NULL, /* mark_dirty_rectangle */ - NULL, /* scaled_font_fini */ - NULL, /* scaled_glyph_fini */ + NULL, /* mark dirty */ _vg_surface_paint, _vg_surface_mask, _vg_surface_stroke, _vg_surface_fill, + NULL, /* fill-stroke */ _vg_surface_show_glyphs, - - NULL, /* snapshot */ - NULL, /* is_similar */ }; static cairo_surface_t * diff --git a/src/cairo-wgl-context.c b/src/cairo-wgl-context.c index 82f1211..4872374 100644 --- a/src/cairo-wgl-context.c +++ b/src/cairo-wgl-context.c @@ -246,6 +246,9 @@ cairo_gl_surface_create_for_dc (cairo_device_t *device, if (device->backend->type != CAIRO_DEVICE_TYPE_GL) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH)); + if (width <= 0 || height <= 0) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); + surface = calloc (1, sizeof (cairo_wgl_surface_t)); if (unlikely (surface == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); diff --git a/src/cairo-wideint-private.h b/src/cairo-wideint-private.h index 24c506a..4051a1d 100644 --- a/src/cairo-wideint-private.h +++ b/src/cairo-wideint-private.h @@ -161,7 +161,7 @@ static cairo_always_inline double I _cairo_int64_to_double (cairo_int64_t i) { r #endif /* - * 64-bit comparisions derived from lt or eq + * 64-bit comparisons derived from lt or eq */ #define _cairo_uint64_le(a,b) (!_cairo_uint64_gt(a,b)) #define _cairo_uint64_ne(a,b) (!_cairo_uint64_eq(a,b)) diff --git a/src/cairo-wideint.c b/src/cairo-wideint.c index 59af2c8..bba266b 100644 --- a/src/cairo-wideint.c +++ b/src/cairo-wideint.c @@ -704,7 +704,8 @@ _cairo_int128_divrem (cairo_int128_t num, cairo_int128_t den) * bits then the returned remainder is equal to the divisor, and the * quotient is the largest representable 64 bit integer. It is an * error to call this function with the high 32 bits of @num being - * non-zero. */ + * non-zero. + **/ cairo_uquorem64_t _cairo_uint_96by64_32x64_divrem (cairo_uint128_t num, cairo_uint64_t den) diff --git a/src/cairo-xcb-connection-core.c b/src/cairo-xcb-connection-core.c index fe86876..0eb2b84 100644 --- a/src/cairo-xcb-connection-core.c +++ b/src/cairo-xcb-connection-core.c @@ -168,7 +168,7 @@ _cairo_xcb_connection_put_subimage (cairo_xcb_connection_t *connection, uint16_t width, uint16_t height, uint16_t cpp, - uint16_t stride, + int stride, int16_t dst_x, int16_t dst_y, uint8_t depth, diff --git a/src/cairo-xcb-connection.c b/src/cairo-xcb-connection.c index 2c63a93..b48add1 100644 --- a/src/cairo-xcb-connection.c +++ b/src/cairo-xcb-connection.c @@ -35,7 +35,7 @@ #include "cairo-xcb-private.h" #include "cairo-hash-private.h" #include "cairo-freelist-private.h" -#include "cairo-list-private.h" +#include "cairo-list-inline.h" #include #include @@ -776,6 +776,16 @@ _cairo_xcb_connection_get_xid (cairo_xcb_connection_t *connection) return xid; } +/** + * cairo_xcb_device_get_connection: + * @device: a #cairo_device_t for the XCB backend + * + * Get the connection for the XCB device. + * + * Returns: the #xcb_connection_t for the connection + * + * Since: 1.12 + **/ xcb_connection_t * cairo_xcb_device_get_connection (cairo_device_t *device) { @@ -799,6 +809,8 @@ cairo_xcb_device_get_connection (cairo_device_t *device) * the SHM extension. * * Use the special values -1 and -1 for disabling the SHM extension. + * + * Since: 1.12 **/ void cairo_xcb_device_debug_cap_xshm_version (cairo_device_t *device, @@ -808,7 +820,10 @@ cairo_xcb_device_debug_cap_xshm_version (cairo_device_t *device, cairo_xcb_connection_t *connection = (cairo_xcb_connection_t *) device; if (device->backend->type != CAIRO_DEVICE_TYPE_XCB) { - _cairo_device_set_error (device, CAIRO_STATUS_DEVICE_TYPE_MISMATCH); + cairo_status_t status; + + status = _cairo_device_set_error (device, CAIRO_STATUS_DEVICE_TYPE_MISMATCH); + (void) status; return; } @@ -835,6 +850,8 @@ cairo_xcb_device_debug_cap_xshm_version (cairo_device_t *device, * the RENDER extension. * * Use the special values -1 and -1 for disabling the RENDER extension. + * + * Since: 1.12 **/ void cairo_xcb_device_debug_cap_xrender_version (cairo_device_t *device, @@ -844,7 +861,10 @@ cairo_xcb_device_debug_cap_xrender_version (cairo_device_t *device, cairo_xcb_connection_t *connection = (cairo_xcb_connection_t *) device; if (device->backend->type != CAIRO_DEVICE_TYPE_XCB) { - _cairo_device_set_error (device, CAIRO_STATUS_DEVICE_TYPE_MISMATCH); + cairo_status_t status; + + status = _cairo_device_set_error (device, CAIRO_STATUS_DEVICE_TYPE_MISMATCH); + (void) status; return; } @@ -893,8 +913,20 @@ cairo_xcb_device_debug_cap_xrender_version (cairo_device_t *device, connection->flags &= ~CAIRO_XCB_RENDER_HAS_GRADIENTS; } } +#if CAIRO_HAS_XLIB_XCB_FUNCTIONS +slim_hidden_def (cairo_xcb_device_debug_cap_xrender_version); +#endif - +/** + * cairo_xcb_device_debug_set_precision: + * @device: a #cairo_device_t for the XCB backend + * @precision: the precision to use + * + * Render supports two modes of precision when rendering trapezoids. Set + * the precision to the desired mode. + * + * Since: 1.12 + **/ void cairo_xcb_device_debug_set_precision (cairo_device_t *device, int precision) @@ -915,6 +947,16 @@ cairo_xcb_device_debug_set_precision (cairo_device_t *device, slim_hidden_def (cairo_xcb_device_debug_set_precision); #endif +/** + * cairo_xcb_device_debug_get_precision: + * @device: a #cairo_device_t for the XCB backend + * + * Get the Xrender precision mode. + * + * Returns: the render precision mode + * + * Since: 1.12 + **/ int cairo_xcb_device_debug_get_precision (cairo_device_t *device) { diff --git a/src/cairo-xcb-private.h b/src/cairo-xcb-private.h index 42a112c..1df5a11 100644 --- a/src/cairo-xcb-private.h +++ b/src/cairo-xcb-private.h @@ -552,7 +552,7 @@ _cairo_xcb_connection_put_subimage (cairo_xcb_connection_t *connection, uint16_t width, uint16_t height, uint16_t cpp, - uint16_t stride, + int stride, int16_t dst_x, int16_t dst_y, uint8_t depth, @@ -806,8 +806,10 @@ slim_hidden_proto (cairo_xcb_surface_create); slim_hidden_proto (cairo_xcb_surface_create_for_bitmap); slim_hidden_proto (cairo_xcb_surface_create_with_xrender_format); slim_hidden_proto (cairo_xcb_surface_set_size); +slim_hidden_proto (cairo_xcb_surface_set_drawable); slim_hidden_proto (cairo_xcb_device_debug_get_precision); slim_hidden_proto_no_warn (cairo_xcb_device_debug_set_precision); +slim_hidden_proto_no_warn (cairo_xcb_device_debug_cap_xrender_version); #endif #endif /* CAIRO_XCB_PRIVATE_H */ diff --git a/src/cairo-xcb-screen.c b/src/cairo-xcb-screen.c index 18e75a5..2858d23 100644 --- a/src/cairo-xcb-screen.c +++ b/src/cairo-xcb-screen.c @@ -33,6 +33,7 @@ #include "cairoint.h" #include "cairo-xcb-private.h" +#include "cairo-list-inline.h" struct pattern_cache_entry { cairo_cache_entry_t key; @@ -57,9 +58,7 @@ _cairo_xcb_screen_finish (cairo_xcb_screen_t *screen) cairo_xcb_surface_t, link)->base; - cairo_surface_reference (surface); cairo_surface_finish (surface); - cairo_surface_destroy (surface); } while (! cairo_list_is_empty (&screen->pictures)) { @@ -69,9 +68,7 @@ _cairo_xcb_screen_finish (cairo_xcb_screen_t *screen) cairo_xcb_picture_t, link)->base; - cairo_surface_reference (surface); cairo_surface_finish (surface); - cairo_surface_destroy (surface); } for (i = 0; i < screen->solid_cache_size; i++) diff --git a/src/cairo-xcb-shm.c b/src/cairo-xcb-shm.c index 6972720..d655e62 100644 --- a/src/cairo-xcb-shm.c +++ b/src/cairo-xcb-shm.c @@ -39,6 +39,7 @@ #if CAIRO_HAS_XCB_SHM_FUNCTIONS #include "cairo-xcb-private.h" +#include "cairo-list-inline.h" #include #include @@ -473,7 +474,7 @@ _cairo_xcb_shm_process_pending (cairo_xcb_connection_t *connection, shm_wait_typ info->sync.sequence, (void **) &reply, NULL)) /* We cannot be sure the server finished with this image yet, so - * try again later. All other shm info are guranteed to have a + * try again later. All other shm info are guaranteed to have a * larger sequence number and thus don't have to be checked. */ return; break; diff --git a/src/cairo-xcb-surface-core.c b/src/cairo-xcb-surface-core.c index 447529d..c608c9a 100644 --- a/src/cairo-xcb-surface-core.c +++ b/src/cairo-xcb-surface-core.c @@ -485,6 +485,7 @@ _cairo_xcb_pixmap_for_pattern (cairo_xcb_surface_t *target, case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: return _render_to_pixmap (target, pattern, extents); default: diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c index 033aef9..7736ed8 100644 --- a/src/cairo-xcb-surface-render.c +++ b/src/cairo-xcb-surface-render.c @@ -34,30 +34,21 @@ #include "cairo-xcb-private.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-clip-private.h" #include "cairo-composite-rectangles-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-region-private.h" #include "cairo-surface-offset-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" #include "cairo-surface-subsurface-private.h" #include "cairo-traps-private.h" +#include "cairo-recording-surface-inline.h" +#include "cairo-paginated-private.h" #define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */ -/** - * SECTION:cairo-xcb-xrender - * @Title: XCB Surfaces - * @Short_Description: X Window System rendering using the XCB library and the X Render extension - * @See_Also: #cairo_surface_t - * - * The XCB surface is used to render cairo graphics to X Window System - * windows and pixmaps using the XCB library and its X Render extension. - * - * Note that the XCB surface automatically takes advantage of the X Render - * extension if it is available. - */ - static cairo_status_t _clip_and_composite_boxes (cairo_xcb_surface_t *dst, cairo_operator_t op, @@ -468,6 +459,7 @@ _cairo_xcb_picture_set_matrix (cairo_xcb_picture_t *picture, ignored = _cairo_matrix_to_pixman_matrix_offset (matrix, filter, xc, yc, pixman_transform, &picture->x, &picture->y); + (void) ignored; if (memcmp (&picture->transform, &transform, sizeof (xcb_render_transform_t))) { _cairo_xcb_connection_render_set_picture_transform (_picture_to_connection (picture), @@ -1031,6 +1023,93 @@ _copy_to_picture (cairo_xcb_surface_t *source) return picture; } +static void +_cairo_xcb_surface_setup_surface_picture(cairo_xcb_picture_t *picture, + const cairo_surface_pattern_t *pattern, + const cairo_rectangle_int_t *extents) +{ + cairo_filter_t filter; + + filter = pattern->base.filter; + if (filter != CAIRO_FILTER_NEAREST && + _cairo_matrix_has_unity_scale (&pattern->base.matrix) && + _cairo_fixed_is_integer (_cairo_fixed_from_double (pattern->base.matrix.x0)) && + _cairo_fixed_is_integer (_cairo_fixed_from_double (pattern->base.matrix.y0))) + { + filter = CAIRO_FILTER_NEAREST; + } + _cairo_xcb_picture_set_filter (picture, filter); + + _cairo_xcb_picture_set_matrix (picture, + &pattern->base.matrix, filter, + extents->x + extents->width/2., + extents->y + extents->height/2.); + + + _cairo_xcb_picture_set_extend (picture, pattern->base.extend); + _cairo_xcb_picture_set_component_alpha (picture, pattern->base.has_component_alpha); +} + +static cairo_xcb_picture_t * +record_to_picture (cairo_surface_t *target, + const cairo_surface_pattern_t *pattern, + const cairo_rectangle_int_t *extents) +{ + cairo_surface_pattern_t tmp_pattern; + cairo_xcb_picture_t *picture; + cairo_status_t status; + cairo_matrix_t matrix; + cairo_surface_t *tmp; + cairo_surface_t *source = pattern->surface; + + /* XXX: The following is more or less copied from cairo-xlibs-ource.c, + * record_source() and recording_pattern_get_surface(), can we share a + * single version? + */ + + /* First get the 'real' recording surface */ + if (_cairo_surface_is_paginated (source)) + source = _cairo_paginated_surface_get_recording (source); + if (_cairo_surface_is_snapshot (source)) + source = _cairo_surface_snapshot_get_target (source); + assert (_cairo_surface_is_recording (source)); + + /* Now draw the recording surface to an xcb surface */ + tmp = _cairo_surface_create_similar_scratch (target, + source->content, + extents->width, + extents->height); + if (tmp->status != CAIRO_STATUS_SUCCESS) { + return (cairo_xcb_picture_t *) tmp; + } + + cairo_matrix_init_translate (&matrix, extents->x, extents->y); + status = _cairo_recording_surface_replay_with_clip (source, + &matrix, tmp, + NULL); + if (unlikely (status)) { + cairo_surface_destroy (tmp); + return (cairo_xcb_picture_t *) _cairo_surface_create_in_error (status); + } + + /* Now that we have drawn this to an xcb surface, try again with that */ + _cairo_pattern_init_static_copy (&tmp_pattern.base, &pattern->base); + tmp_pattern.surface = tmp; + + if (extents->x | extents->y) { + cairo_matrix_t *pmatrix = &tmp_pattern.base.matrix; + + cairo_matrix_init_translate (&matrix, -extents->x, -extents->y); + cairo_matrix_multiply (pmatrix, pmatrix, &matrix); + } + + picture = _copy_to_picture ((cairo_xcb_surface_t *) tmp); + if (picture->base.status == CAIRO_STATUS_SUCCESS) + _cairo_xcb_surface_setup_surface_picture (picture, &tmp_pattern, extents); + cairo_surface_destroy (tmp); + return picture; +} + static cairo_xcb_picture_t * _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, const cairo_surface_pattern_t *pattern, @@ -1038,22 +1117,23 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, { cairo_surface_t *source = pattern->surface; cairo_xcb_picture_t *picture; - cairo_filter_t filter; picture = (cairo_xcb_picture_t *) _cairo_surface_has_snapshot (source, &_cairo_xcb_picture_backend); if (picture != NULL) { if (picture->screen == target->screen) { picture = (cairo_xcb_picture_t *) cairo_surface_reference (&picture->base); - goto setup_picture; + _cairo_xcb_surface_setup_surface_picture (picture, pattern, extents); + return picture; } picture = NULL; } - if (source->type == CAIRO_SURFACE_TYPE_XCB && ((cairo_xcb_surface_t *) source)->fallback == NULL) + if (source->type == CAIRO_SURFACE_TYPE_XCB) { if (source->backend->type == CAIRO_SURFACE_TYPE_XCB) { - if (((cairo_xcb_surface_t *) source)->screen == target->screen) { + cairo_xcb_surface_t *xcb = (cairo_xcb_surface_t *) source; + if (xcb->screen == target->screen && xcb->fallback == NULL) { picture = _copy_to_picture ((cairo_xcb_surface_t *) source); if (unlikely (picture->base.status)) return picture; @@ -1063,7 +1143,7 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, cairo_xcb_surface_t *xcb = (cairo_xcb_surface_t *) sub->target; /* XXX repeat interval with source clipping? */ - if (FALSE && xcb->screen == target->screen) { + if (FALSE && xcb->screen == target->screen && xcb->fallback == NULL) { xcb_rectangle_t rect; picture = _copy_to_picture (xcb); @@ -1088,7 +1168,7 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, cairo_surface_snapshot_t *snap = (cairo_surface_snapshot_t *) source; cairo_xcb_surface_t *xcb = (cairo_xcb_surface_t *) snap->target; - if (xcb->screen == target->screen) { + if (xcb->screen == target->screen && xcb->fallback == NULL) { picture = _copy_to_picture (xcb); if (unlikely (picture->base.status)) return picture; @@ -1096,11 +1176,12 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, } } #if CAIRO_HAS_XLIB_XCB_FUNCTIONS - else if (source->type == CAIRO_SURFACE_TYPE_XLIB && ((cairo_xlib_xcb_surface_t *) source)->xcb->fallback == NULL) + else if (source->type == CAIRO_SURFACE_TYPE_XLIB) { if (source->backend->type == CAIRO_SURFACE_TYPE_XLIB) { - if (((cairo_xlib_xcb_surface_t *) source)->xcb->screen == target->screen) { - picture = _copy_to_picture (((cairo_xlib_xcb_surface_t *) source)->xcb); + cairo_xcb_surface_t *xcb = ((cairo_xlib_xcb_surface_t *) source)->xcb; + if (xcb->screen == target->screen && xcb->fallback == NULL) { + picture = _copy_to_picture (xcb); if (unlikely (picture->base.status)) return picture; } @@ -1108,7 +1189,7 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, cairo_surface_subsurface_t *sub = (cairo_surface_subsurface_t *) source; cairo_xcb_surface_t *xcb = ((cairo_xlib_xcb_surface_t *) sub->target)->xcb; - if (FALSE && xcb->screen == target->screen) { + if (FALSE && xcb->screen == target->screen && xcb->fallback == NULL) { xcb_rectangle_t rect; picture = _copy_to_picture (xcb); @@ -1129,11 +1210,11 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, picture->width = rect.width; picture->height = rect.height; } - } else if (source->backend->type == CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT) { + } else if (_cairo_surface_is_snapshot (source)) { cairo_surface_snapshot_t *snap = (cairo_surface_snapshot_t *) source; cairo_xcb_surface_t *xcb = ((cairo_xlib_xcb_surface_t *) snap->target)->xcb; - if (xcb->screen == target->screen) { + if (xcb->screen == target->screen && xcb->fallback == NULL) { picture = _copy_to_picture (xcb); if (unlikely (picture->base.status)) return picture; @@ -1147,6 +1228,14 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, /* pixmap from texture */ } #endif + else if (source->type == CAIRO_SURFACE_TYPE_RECORDING) + { + /* We have to skip the call to attach_snapshot() because we possibly + * only drew part of the recording surface. + * TODO: When can we safely attach a snapshot? + */ + return record_to_picture(&target->base, pattern, extents); + } if (picture == NULL) { cairo_image_surface_t *image; @@ -1188,26 +1277,7 @@ _cairo_xcb_surface_picture (cairo_xcb_surface_t *target, &picture->base, NULL); -setup_picture: - filter = pattern->base.filter; - if (filter != CAIRO_FILTER_NEAREST && - _cairo_matrix_has_unity_scale (&pattern->base.matrix) && - _cairo_fixed_is_integer (_cairo_fixed_from_double (pattern->base.matrix.x0)) && - _cairo_fixed_is_integer (_cairo_fixed_from_double (pattern->base.matrix.y0))) - { - filter = CAIRO_FILTER_NEAREST; - } - _cairo_xcb_picture_set_filter (picture, filter); - - _cairo_xcb_picture_set_matrix (picture, - &pattern->base.matrix, filter, - extents->x + extents->width/2., - extents->y + extents->height/2.); - - - _cairo_xcb_picture_set_extend (picture, pattern->base.extend); - _cairo_xcb_picture_set_component_alpha (picture, pattern->base.has_component_alpha); - + _cairo_xcb_surface_setup_surface_picture (picture, pattern, extents); return picture; } @@ -1240,9 +1310,10 @@ _cairo_xcb_picture_for_pattern (cairo_xcb_surface_t *target, return _cairo_xcb_surface_picture (target, (cairo_surface_pattern_t *) pattern, extents); - case CAIRO_PATTERN_TYPE_MESH: default: ASSERT_NOT_REACHED; + case CAIRO_PATTERN_TYPE_MESH: + case CAIRO_PATTERN_TYPE_RASTER_SOURCE: return _render_to_picture (target, pattern, extents); } } @@ -3543,7 +3614,7 @@ _cairo_xcb_surface_render_stroke_via_mask (cairo_xcb_surface_t *dst, x = extents->bounded.x; y = extents->bounded.y; - image = _cairo_xcb_surface_create_similar_image (dst, CAIRO_CONTENT_ALPHA, + image = _cairo_xcb_surface_create_similar_image (dst, CAIRO_FORMAT_A8, extents->bounded.width, extents->bounded.height); if (unlikely (image->status)) @@ -3684,8 +3755,7 @@ _cairo_xcb_surface_render_fill_via_mask (cairo_xcb_surface_t *dst, x = extents->bounded.x; y = extents->bounded.y; - image = _cairo_xcb_surface_create_similar_image (dst, - CAIRO_CONTENT_ALPHA, + image = _cairo_xcb_surface_create_similar_image (dst, CAIRO_FORMAT_A8, extents->bounded.width, extents->bounded.height); if (unlikely (image->status)) @@ -3795,7 +3865,8 @@ _cairo_xcb_surface_render_glyphs_via_mask (cairo_xcb_surface_t *dst, x = extents->bounded.x; y = extents->bounded.y; - image = _cairo_xcb_surface_create_similar_image (dst, content, + image = _cairo_xcb_surface_create_similar_image (dst, + _cairo_format_from_content (content), extents->bounded.width, extents->bounded.height); if (unlikely (image->status)) diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c index 75a1f87..c6a1d29 100644 --- a/src/cairo-xcb-surface.c +++ b/src/cairo-xcb-surface.c @@ -45,6 +45,7 @@ #include "cairo-composite-rectangles-private.h" #include "cairo-default-context-private.h" +#include "cairo-list-inline.h" #include "cairo-image-surface-private.h" #include "cairo-surface-backend-private.h" @@ -65,14 +66,16 @@ slim_hidden_proto (cairo_xcb_surface_create_with_xrender_format); * * Note that the XCB surface automatically takes advantage of the X render * extension if it is available. - */ + **/ /** * CAIRO_HAS_XCB_SURFACE: * * Defined if the xcb surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.12 + **/ cairo_surface_t * _cairo_xcb_surface_create_similar (void *abstract_other, @@ -172,6 +175,12 @@ _cairo_xcb_surface_create_similar_image (void *abstract_other, cairo_status_t status; pixman_format_code_t pixman_format; + if (unlikely(width > XLIB_COORD_MAX || + height > XLIB_COORD_MAX || + width <= 0 || + height <= 0)) + return NULL; + pixman_format = _cairo_format_to_pixman_format_code (format); status = _cairo_xcb_shm_image_create (connection, pixman_format, @@ -179,6 +188,7 @@ _cairo_xcb_surface_create_similar_image (void *abstract_other, &shm_info); if (unlikely (status)) return _cairo_surface_create_in_error (status); + return &image->base; } @@ -229,7 +239,7 @@ _cairo_xcb_surface_create_shm_image (cairo_xcb_connection_t *connection, { cairo_surface_t *image; cairo_xcb_shm_info_t *shm_info; - cairo_status_t status; + cairo_int_status_t status; size_t stride; *shm_info_out = NULL; @@ -240,8 +250,12 @@ _cairo_xcb_surface_create_shm_image (cairo_xcb_connection_t *connection, stride * height, might_reuse, &shm_info); - if (unlikely (status)) + if (unlikely (status)) { + if (status == CAIRO_INT_STATUS_UNSUPPORTED) + return NULL; + return _cairo_surface_create_in_error (status); + } image = _cairo_image_surface_create_with_pixman_format (shm_info->mem, pixman_format, @@ -354,9 +368,7 @@ _get_image (cairo_xcb_surface_t *surface, if (use_shm) { image = _get_shm_image (surface, x, y, width, height); if (image) { - /* XXX This only wants to catch SHM exhaustion, - * not other allocation failures. */ - if (image->status != CAIRO_STATUS_NO_MEMORY) { + if (image->status == CAIRO_STATUS_SUCCESS) { _cairo_xcb_connection_release (connection); return image; } @@ -448,6 +460,21 @@ FAIL: return _cairo_surface_create_in_error (status); } +static cairo_surface_t * +_cairo_xcb_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_xcb_surface_t *surface = abstract_surface; + + if (extents) { + extents->x = extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + } + + return &surface->base; +} + static cairo_status_t _cairo_xcb_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -1043,6 +1070,7 @@ const cairo_surface_backend_t _cairo_xcb_surface_backend = { _cairo_xcb_surface_map_to_image, _cairo_xcb_surface_unmap, + _cairo_xcb_surface_source, _cairo_xcb_surface_acquire_source_image, _cairo_xcb_surface_release_source_image, NULL, /* snapshot */ @@ -1147,7 +1175,7 @@ _cairo_xcb_screen_from_visual (xcb_connection_t *connection, /** * cairo_xcb_surface_create: - * @xcb_connection: an XCB connection + * @connection: an XCB connection * @drawable: an XCB drawable * @visual: the visual to use for drawing to @drawable. The depth * of the visual must match the depth of the drawable. @@ -1175,9 +1203,11 @@ _cairo_xcb_screen_from_visual (xcb_connection_t *connection, * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if an error such as out of memory * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.12 **/ cairo_surface_t * -cairo_xcb_surface_create (xcb_connection_t *xcb_connection, +cairo_xcb_surface_create (xcb_connection_t *connection, xcb_drawable_t drawable, xcb_visualtype_t *visual, int width, @@ -1190,7 +1220,7 @@ cairo_xcb_surface_create (xcb_connection_t *xcb_connection, xcb_render_pictformat_t xrender_format; int depth; - if (xcb_connection_has_error (xcb_connection)) + if (xcb_connection_has_error (connection)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_WRITE_ERROR)); if (unlikely (width > XLIB_COORD_MAX || height > XLIB_COORD_MAX)) @@ -1198,7 +1228,7 @@ cairo_xcb_surface_create (xcb_connection_t *xcb_connection, if (unlikely (width <= 0 || height <= 0)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); - xcb_screen = _cairo_xcb_screen_from_visual (xcb_connection, visual, &depth); + xcb_screen = _cairo_xcb_screen_from_visual (connection, visual, &depth); if (unlikely (xcb_screen == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_VISUAL)); @@ -1221,7 +1251,7 @@ cairo_xcb_surface_create (xcb_connection_t *xcb_connection, if (! _pixman_format_from_masks (&image_masks, &pixman_format)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); - screen = _cairo_xcb_screen_get (xcb_connection, xcb_screen); + screen = _cairo_xcb_screen_get (connection, xcb_screen); if (unlikely (screen == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); @@ -1240,11 +1270,11 @@ slim_hidden_def (cairo_xcb_surface_create); /** * cairo_xcb_surface_create_for_bitmap: - * @xcb_connection: an XCB connection - * @xcb_screen: the XCB screen associated with @bitmap + * @connection: an XCB connection + * @screen: the XCB screen associated with @bitmap * @bitmap: an XCB drawable (a Pixmap with depth 1) - * @width: the current width of @drawable - * @height: the current height of @drawable + * @width: the current width of @bitmap + * @height: the current height of @bitmap * * Creates an XCB surface that draws to the given bitmap. * This will be drawn to as a %CAIRO_FORMAT_A1 object. @@ -1256,17 +1286,19 @@ slim_hidden_def (cairo_xcb_surface_create); * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if an error such as out of memory * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.12 **/ cairo_surface_t * -cairo_xcb_surface_create_for_bitmap (xcb_connection_t *xcb_connection, - xcb_screen_t *xcb_screen, +cairo_xcb_surface_create_for_bitmap (xcb_connection_t *connection, + xcb_screen_t *screen, xcb_pixmap_t bitmap, int width, int height) { - cairo_xcb_screen_t *screen; + cairo_xcb_screen_t *cairo_xcb_screen; - if (xcb_connection_has_error (xcb_connection)) + if (xcb_connection_has_error (connection)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_WRITE_ERROR)); if (width > XLIB_COORD_MAX || height > XLIB_COORD_MAX) @@ -1274,13 +1306,13 @@ cairo_xcb_surface_create_for_bitmap (xcb_connection_t *xcb_connection, if (unlikely (width <= 0 || height <= 0)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_SIZE)); - screen = _cairo_xcb_screen_get (xcb_connection, xcb_screen); - if (unlikely (screen == NULL)) + cairo_xcb_screen = _cairo_xcb_screen_get (connection, screen); + if (unlikely (cairo_xcb_screen == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - return _cairo_xcb_surface_create_internal (screen, bitmap, FALSE, + return _cairo_xcb_surface_create_internal (cairo_xcb_screen, bitmap, FALSE, PIXMAN_a1, - screen->connection->standard_formats[CAIRO_FORMAT_A1], + cairo_xcb_screen->connection->standard_formats[CAIRO_FORMAT_A1], width, height); } #if CAIRO_HAS_XLIB_XCB_FUNCTIONS @@ -1317,20 +1349,22 @@ slim_hidden_def (cairo_xcb_surface_create_for_bitmap); * This function always returns a valid pointer, but it will return a * pointer to a "nil" surface if an error such as out of memory * occurs. You can use cairo_surface_status() to check for this. + * + * Since: 1.12 **/ cairo_surface_t * -cairo_xcb_surface_create_with_xrender_format (xcb_connection_t *xcb_connection, - xcb_screen_t *xcb_screen, +cairo_xcb_surface_create_with_xrender_format (xcb_connection_t *connection, + xcb_screen_t *screen, xcb_drawable_t drawable, xcb_render_pictforminfo_t *format, int width, int height) { - cairo_xcb_screen_t *screen; + cairo_xcb_screen_t *cairo_xcb_screen; cairo_format_masks_t image_masks; pixman_format_code_t pixman_format; - if (xcb_connection_has_error (xcb_connection)) + if (xcb_connection_has_error (connection)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_WRITE_ERROR)); if (width > XLIB_COORD_MAX || height > XLIB_COORD_MAX) @@ -1362,11 +1396,11 @@ cairo_xcb_surface_create_with_xrender_format (xcb_connection_t *xcb_connecti if (! _pixman_format_from_masks (&image_masks, &pixman_format)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); - screen = _cairo_xcb_screen_get (xcb_connection, xcb_screen); - if (unlikely (screen == NULL)) + cairo_xcb_screen = _cairo_xcb_screen_get (connection, screen); + if (unlikely (cairo_xcb_screen == NULL)) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - return _cairo_xcb_surface_create_internal (screen, + return _cairo_xcb_surface_create_internal (cairo_xcb_screen, drawable, FALSE, pixman_format, @@ -1377,6 +1411,18 @@ cairo_xcb_surface_create_with_xrender_format (xcb_connection_t *xcb_connecti slim_hidden_def (cairo_xcb_surface_create_with_xrender_format); #endif +/* This does the necessary fixup when a surface's drawable or size changed. */ +static void +_drawable_changed (cairo_xcb_surface_t *surface) +{ + _cairo_surface_begin_modification (&surface->base); + _cairo_boxes_clear (&surface->fallback_damage); + cairo_surface_destroy (&surface->fallback->base); + + surface->deferred_clear = FALSE; + surface->fallback = NULL; +} + /** * cairo_xcb_surface_set_size: * @surface: a #cairo_surface_t for the XCB backend @@ -1392,6 +1438,11 @@ slim_hidden_def (cairo_xcb_surface_create_with_xrender_format); * * A pixmap can never change size, so it is never necessary to call * this function on a surface created for a pixmap. + * + * If cairo_surface_flush() wasn't called, some pending operations + * might be discarded. + * + * Since: 1.12 **/ void cairo_xcb_surface_set_size (cairo_surface_t *abstract_surface, @@ -1422,9 +1473,86 @@ cairo_xcb_surface_set_size (cairo_surface_t *abstract_surface, } surface = (cairo_xcb_surface_t *) abstract_surface; + + _drawable_changed(surface); surface->width = width; surface->height = height; } #if CAIRO_HAS_XLIB_XCB_FUNCTIONS slim_hidden_def (cairo_xcb_surface_set_size); #endif + +/** + * cairo_xcb_surface_set_drawable: + * @surface: a #cairo_surface_t for the XCB backend + * @drawable: the new drawable of the surface + * @width: the new width of the surface + * @height: the new height of the surface + * + * Informs cairo of the new drawable and size of the XCB drawable underlying the + * surface. + * + * If cairo_surface_flush() wasn't called, some pending operations + * might be discarded. + * + * Since: 1.12 + **/ +void +cairo_xcb_surface_set_drawable (cairo_surface_t *abstract_surface, + xcb_drawable_t drawable, + int width, + int height) +{ + cairo_xcb_surface_t *surface; + + if (unlikely (abstract_surface->status)) + return; + if (unlikely (abstract_surface->finished)) { + _cairo_surface_set_error (abstract_surface, + _cairo_error (CAIRO_STATUS_SURFACE_FINISHED)); + return; + } + + + if (abstract_surface->type != CAIRO_SURFACE_TYPE_XCB) { + _cairo_surface_set_error (abstract_surface, + _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH)); + return; + } + + if (width > XLIB_COORD_MAX || height > XLIB_COORD_MAX || width <= 0 || height <= 0) { + _cairo_surface_set_error (abstract_surface, + _cairo_error (CAIRO_STATUS_INVALID_SIZE)); + return; + } + + surface = (cairo_xcb_surface_t *) abstract_surface; + + /* XXX: and what about this case? */ + if (surface->owns_pixmap) + return; + + _drawable_changed (surface); + + if (surface->drawable != drawable) { + cairo_status_t status; + status = _cairo_xcb_connection_acquire (surface->connection); + if (unlikely (status)) + return; + + if (surface->picture != XCB_NONE) { + _cairo_xcb_connection_render_free_picture (surface->connection, + surface->picture); + surface->picture = XCB_NONE; + } + + _cairo_xcb_connection_release (surface->connection); + + surface->drawable = drawable; + } + surface->width = width; + surface->height = height; +} +#if CAIRO_HAS_XLIB_XCB_FUNCTIONS +slim_hidden_def (cairo_xcb_surface_set_drawable); +#endif diff --git a/src/cairo-xcb.h b/src/cairo-xcb.h index 4bfb0b5..e321d84 100644 --- a/src/cairo-xcb.h +++ b/src/cairo-xcb.h @@ -75,6 +75,12 @@ cairo_xcb_surface_set_size (cairo_surface_t *surface, int width, int height); +cairo_public void +cairo_xcb_surface_set_drawable (cairo_surface_t *surface, + xcb_drawable_t drawable, + int width, + int height); + cairo_public xcb_connection_t * cairo_xcb_device_get_connection (cairo_device_t *device); diff --git a/src/cairo-xlib-core-compositor.c b/src/cairo-xlib-core-compositor.c index fe871ab..aaa71d5 100644 --- a/src/cairo-xlib-core-compositor.c +++ b/src/cairo-xlib-core-compositor.c @@ -52,6 +52,7 @@ #include "cairo-xlib-surface-private.h" #include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" #include "cairo-pattern-private.h" @@ -96,6 +97,36 @@ static cairo_bool_t fill_box (cairo_box_t *box, void *closure) return TRUE; } +static void +_characterize_field (uint32_t mask, int *width, int *shift) +{ + *width = _cairo_popcount (mask); + /* The final '& 31' is to force a 0 mask to result in 0 shift. */ + *shift = _cairo_popcount ((mask - 1) & ~mask) & 31; +} + +static uint32_t +color_to_pixel (cairo_xlib_surface_t *dst, + const cairo_color_t *color) +{ + uint32_t rgba = 0; + int width, shift; + + _characterize_field (dst->a_mask, &width, &shift); + rgba |= color->alpha_short >> (16 - width) << shift; + + _characterize_field (dst->r_mask, &width, &shift); + rgba |= color->red_short >> (16 - width) << shift; + + _characterize_field (dst->g_mask, &width, &shift); + rgba |= color->green_short >> (16 - width) << shift; + + _characterize_field (dst->b_mask, &width, &shift); + rgba |= color->blue_short >> (16 - width) << shift; + + return rgba; +} + static cairo_int_status_t fill_boxes (cairo_xlib_surface_t *dst, const cairo_color_t *color, @@ -112,7 +143,7 @@ fill_boxes (cairo_xlib_surface_t *dst, fb.dpy = dst->display->display; fb.drawable = dst->drawable; - if (dst->visual && dst->visual->class != TrueColor) { + if (dst->visual && dst->visual->class != TrueColor && 0) { cairo_solid_pattern_t solid; cairo_surface_attributes_t attrs; @@ -136,10 +167,16 @@ fill_boxes (cairo_xlib_surface_t *dst, - (dst->base.device_transform.y0 + attrs.y_offset)); XSetTile (fb.dpy, fb.gc, ((cairo_xlib_surface_t *) dither)->drawable); } else { - //XChangeGC (fb.dpy, fb.gc, GCForeground, color_to_pixel (&color)); + XGCValues gcv; + + gcv.foreground = color_to_pixel (dst, color); + gcv.fill_style = FillSolid; + + XChangeGC (fb.dpy, fb.gc, GCFillStyle | GCForeground, &gcv); } _cairo_boxes_for_each_box (boxes, fill_box, &fb); + _cairo_xlib_surface_put_gc (dst->display, dst, fb.gc); cairo_surface_destroy (dither); @@ -268,6 +305,19 @@ static cairo_bool_t image_upload_box (cairo_box_t *box, void *closure) x, y) == CAIRO_STATUS_SUCCESS; } +static cairo_bool_t +surface_matches_image_format (cairo_xlib_surface_t *surface, + cairo_image_surface_t *image) +{ + cairo_format_masks_t format; + + return (_pixman_format_to_masks (image->pixman_format, &format) && + (format.alpha_mask == surface->a_mask || surface->a_mask == 0) && + (format.red_mask == surface->r_mask || surface->r_mask == 0) && + (format.green_mask == surface->g_mask || surface->g_mask == 0) && + (format.blue_mask == surface->b_mask || surface->b_mask == 0)); +} + static cairo_status_t upload_image_inplace (cairo_xlib_surface_t *dst, const cairo_pattern_t *source, @@ -291,6 +341,9 @@ upload_image_inplace (cairo_xlib_surface_t *dst, if (image->depth != dst->depth) return CAIRO_INT_STATUS_UNSUPPORTED; + if (! surface_matches_image_format (dst, image)) + return CAIRO_INT_STATUS_UNSUPPORTED; + /* XXX subsurface */ if (! _cairo_matrix_is_integer_translation (&source->matrix, @@ -343,18 +396,30 @@ copy_boxes (cairo_xlib_surface_t *dst, if (source->type != CAIRO_PATTERN_TYPE_SURFACE) return CAIRO_INT_STATUS_UNSUPPORTED; + /* XXX subsurface */ + pattern = (const cairo_surface_pattern_t *) source; - if (pattern->surface->type != CAIRO_SURFACE_TYPE_XLIB) + if (pattern->surface->backend->type != CAIRO_SURFACE_TYPE_XLIB) return CAIRO_INT_STATUS_UNSUPPORTED; src = (cairo_xlib_surface_t *) pattern->surface; if (src->depth != dst->depth) return CAIRO_INT_STATUS_UNSUPPORTED; - if (! _cairo_xlib_surface_same_screen (dst, src)) + /* We can only have a single control for subwindow_mode on the + * GC. If we have a Window destination, we need to set ClipByChildren, + * but if we have a Window source, we need IncludeInferiors. If we have + * both a Window destination and source, we must fallback. There is + * no convenient way to detect if a drawable is a Pixmap or Window, + * therefore we can only rely on those surfaces that we created + * ourselves to be Pixmaps, and treat everything else as a potential + * Window. + */ + if (! src->owns_pixmap && ! dst->owns_pixmap) return CAIRO_INT_STATUS_UNSUPPORTED; - /* XXX subsurface */ + if (! _cairo_xlib_surface_same_screen (dst, src)) + return CAIRO_INT_STATUS_UNSUPPORTED; if (! _cairo_matrix_is_integer_translation (&source->matrix, &cb.tx, &cb.ty)) @@ -374,12 +439,27 @@ copy_boxes (cairo_xlib_surface_t *dst, if (unlikely (status)) return status; + if (! src->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = IncludeInferiors; + XChangeGC (dst->display->display, cb.gc, GCSubwindowMode, &gcv); + } + + status = CAIRO_STATUS_SUCCESS; if (! _cairo_boxes_for_each_box (boxes, copy_box, &cb)) - return CAIRO_INT_STATUS_UNSUPPORTED; + status = CAIRO_INT_STATUS_UNSUPPORTED; + + if (! src->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = ClipByChildren; + XChangeGC (dst->display->display, cb.gc, GCSubwindowMode, &gcv); + } _cairo_xlib_surface_put_gc (dst->display, dst, cb.gc); - return CAIRO_STATUS_SUCCESS; + return status; } static cairo_status_t @@ -400,7 +480,8 @@ draw_boxes (cairo_composite_rectangles_t *extents, if (op == CAIRO_OPERATOR_CLEAR) op = CAIRO_OPERATOR_SOURCE; - if (_cairo_pattern_is_opaque (src, &extents->bounded)) + if (op == CAIRO_OPERATOR_OVER && + _cairo_pattern_is_opaque (src, &extents->bounded)) op = CAIRO_OPERATOR_SOURCE; if (dst->base.is_clear && op == CAIRO_OPERATOR_OVER) @@ -463,7 +544,8 @@ _cairo_xlib_core_compositor_stroke (const cairo_compositor_t *compositor, cairo_int_status_t status; status = CAIRO_INT_STATUS_UNSUPPORTED; - if (_cairo_path_fixed_stroke_is_rectilinear (path)) { + if (extents->clip->path == NULL && + _cairo_path_fixed_stroke_is_rectilinear (path)) { cairo_boxes_t boxes; _cairo_boxes_init_with_clip (&boxes, extents->clip); @@ -491,7 +573,8 @@ _cairo_xlib_core_compositor_fill (const cairo_compositor_t *compositor, cairo_int_status_t status; status = CAIRO_INT_STATUS_UNSUPPORTED; - if (_cairo_path_fixed_fill_is_rectilinear (path)) { + if (extents->clip->path == NULL && + _cairo_path_fixed_fill_is_rectilinear (path)) { cairo_boxes_t boxes; _cairo_boxes_init_with_clip (&boxes, extents->clip); diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c index fd7253c..e685c7c 100644 --- a/src/cairo-xlib-display.c +++ b/src/cairo-xlib-display.c @@ -41,6 +41,7 @@ #include "cairo-xlib-xrender-private.h" #include "cairo-freelist-private.h" #include "cairo-error-private.h" +#include "cairo-list-inline.h" #include /* For XESetCloseDisplay */ @@ -146,8 +147,19 @@ static const cairo_device_backend_t _cairo_xlib_device_backend = { _cairo_xlib_display_destroy, }; + +static void _cairo_xlib_display_select_compositor (cairo_xlib_display_t *display) +{ + if (display->render_major > 0 || display->render_minor >= 4) + display->compositor = _cairo_xlib_traps_compositor_get (); + else if (display->render_major > 0 || display->render_minor >= 0) + display->compositor = _cairo_xlib_mask_compositor_get (); + else + display->compositor = _cairo_xlib_core_compositor_get (); +} + /** - * cairo_xlib_device_create: + * _cairo_xlib_device_create: * @dpy: the display to create the device for * * Gets the device belonging to @dpy, or creates it if it doesn't exist yet. @@ -221,6 +233,8 @@ _cairo_xlib_device_create (Display *dpy) } } + _cairo_xlib_display_select_compositor (display); + codes = XAddExtension (dpy); if (unlikely (codes == NULL)) { device = _cairo_device_create_in_error (CAIRO_STATUS_NO_MEMORY); @@ -331,13 +345,6 @@ _cairo_xlib_device_create (Display *dpy) display->buggy_pad_reflect = TRUE; } - if (display->render_major > 0 || display->render_minor >= 4) - display->compositor = _cairo_xlib_traps_compositor_get (); - else if (display->render_major > 0 || display->render_minor >= 0) - display->compositor = _cairo_xlib_mask_compositor_get (); - else - display->compositor = _cairo_xlib_core_compositor_get (); - display->next = _cairo_xlib_display_list; _cairo_xlib_display_list = display; @@ -552,6 +559,55 @@ _cairo_xlib_display_has_gradients (cairo_device_t *device) return ! ((cairo_xlib_display_t *) device)->buggy_gradients; } +/** + * cairo_xlib_device_debug_cap_xrender_version: + * @device: a #cairo_device_t for the Xlib backend + * @major_version: major version to restrict to + * @minor_version: minor version to restrict to + * + * Restricts all future Xlib surfaces for this devices to the specified version + * of the RENDER extension. This function exists solely for debugging purpose. + * It let's you find out how cairo would behave with an older version of + * the RENDER extension. + * + * Use the special values -1 and -1 for disabling the RENDER extension. + * + * Since: 1.12 + **/ +void +cairo_xlib_device_debug_cap_xrender_version (cairo_device_t *device, + int major_version, + int minor_version) +{ + cairo_xlib_display_t *display = (cairo_xlib_display_t *) device; + + if (device == NULL || device->status) + return; + + if (device->backend->type != CAIRO_DEVICE_TYPE_XLIB) + return; + + if (major_version < display->render_major || + (major_version == display->render_major && + minor_version < display->render_minor)) + { + display->render_major = major_version; + display->render_minor = minor_version; + } + + _cairo_xlib_display_select_compositor (display); +} + +/** + * cairo_xlib_device_debug_set_precision: + * @device: a #cairo_device_t for the Xlib backend + * @precision: the precision to use + * + * Render supports two modes of precision when rendering trapezoids. Set + * the precision to the desired mode. + * + * Since: 1.12 + **/ void cairo_xlib_device_debug_set_precision (cairo_device_t *device, int precision) @@ -569,6 +625,16 @@ cairo_xlib_device_debug_set_precision (cairo_device_t *device, ((cairo_xlib_display_t *) device)->force_precision = precision; } +/** + * cairo_xlib_device_debug_get_precision: + * @device: a #cairo_device_t for the Xlib backend + * + * Get the Xrender precision mode. + * + * Returns: the render precision mode + * + * Since: 1.12 + **/ int cairo_xlib_device_debug_get_precision (cairo_device_t *device) { diff --git a/src/cairo-xlib-fallback-compositor.c b/src/cairo-xlib-fallback-compositor.c index 5391926..7d45cd1 100644 --- a/src/cairo-xlib-fallback-compositor.c +++ b/src/cairo-xlib-fallback-compositor.c @@ -42,6 +42,8 @@ #include "cairoint.h" +#if !CAIRO_HAS_XLIB_XCB_FUNCTIONS + #include "cairo-xlib-private.h" #include "cairo-compositor-private.h" @@ -52,3 +54,5 @@ _cairo_xlib_fallback_compositor_get (void) /* XXX Do something interesting here to mitigate fallbacks ala xcb */ return &_cairo_fallback_compositor; } + +#endif /* !CAIRO_HAS_XLIB_XCB_FUNCTIONS */ diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c index 60d9984..a892985 100644 --- a/src/cairo-xlib-render-compositor.c +++ b/src/cairo-xlib-render-compositor.c @@ -48,6 +48,7 @@ #include "cairo-compositor-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-pattern-private.h" #include "cairo-traps-private.h" #include "cairo-tristrip-private.h" @@ -180,6 +181,13 @@ copy_boxes (void *_dst, return status; } + if (! src->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = IncludeInferiors; + XChangeGC (dst->display->display, gc, GCSubwindowMode, &gcv); + } + if (boxes->num_boxes == 1) { int x1 = _cairo_fixed_integer_part (boxes->chunks.base[0].p1.x); int y1 = _cairo_fixed_integer_part (boxes->chunks.base[0].p1.y); @@ -191,43 +199,74 @@ copy_boxes (void *_dst, x2 - x1, y2 - y1, x1, y1); } else { - XRectangle stack_rects[CAIRO_STACK_ARRAY_LENGTH (XRectangle)]; - XRectangle *rects = stack_rects; - - if (boxes->num_boxes > ARRAY_LENGTH (stack_rects)) { - rects = _cairo_malloc_ab (boxes->num_boxes, sizeof (XRectangle)); - if (unlikely (rects == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - } + /* We can only have a single control for subwindow_mode on the + * GC. If we have a Window destination, we need to set ClipByChildren, + * but if we have a Window source, we need IncludeInferiors. If we have + * both a Window destination and source, we must fallback. There is + * no convenient way to detect if a drawable is a Pixmap or Window, + * therefore we can only rely on those surfaces that we created + * ourselves to be Pixmaps, and treat everything else as a potential + * Window. + */ + if (src == dst || (!src->owns_pixmap && !dst->owns_pixmap)) { + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { + for (i = 0; i < chunk->count; i++) { + int x1 = _cairo_fixed_integer_part (chunk->base[i].p1.x); + int y1 = _cairo_fixed_integer_part (chunk->base[i].p1.y); + int x2 = _cairo_fixed_integer_part (chunk->base[i].p2.x); + int y2 = _cairo_fixed_integer_part (chunk->base[i].p2.y); + XCopyArea (dst->dpy, src->drawable, dst->drawable, gc, + x1 + dx, y1 + dy, + x2 - x1, y2 - y1, + x1, y1); + } + } + } else { + XRectangle stack_rects[CAIRO_STACK_ARRAY_LENGTH (XRectangle)]; + XRectangle *rects = stack_rects; - j = 0; - for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { - for (i = 0; i < chunk->count; i++) { - int x1 = _cairo_fixed_integer_part (chunk->base[i].p1.x); - int y1 = _cairo_fixed_integer_part (chunk->base[i].p1.y); - int x2 = _cairo_fixed_integer_part (chunk->base[i].p2.x); - int y2 = _cairo_fixed_integer_part (chunk->base[i].p2.y); + if (boxes->num_boxes > ARRAY_LENGTH (stack_rects)) { + rects = _cairo_malloc_ab (boxes->num_boxes, sizeof (XRectangle)); + if (unlikely (rects == NULL)) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } - rects[j].x = x1; - rects[j].y = y1; - rects[j].width = x2 - x1; - rects[j].height = y2 - y1; - j++; + j = 0; + for (chunk = &boxes->chunks; chunk; chunk = chunk->next) { + for (i = 0; i < chunk->count; i++) { + int x1 = _cairo_fixed_integer_part (chunk->base[i].p1.x); + int y1 = _cairo_fixed_integer_part (chunk->base[i].p1.y); + int x2 = _cairo_fixed_integer_part (chunk->base[i].p2.x); + int y2 = _cairo_fixed_integer_part (chunk->base[i].p2.y); + + rects[j].x = x1; + rects[j].y = y1; + rects[j].width = x2 - x1; + rects[j].height = y2 - y1; + j++; + } } - } - assert (j == boxes->num_boxes); + assert (j == boxes->num_boxes); - XSetClipRectangles (dst->dpy, gc, 0, 0, rects, j, YSorted); + XSetClipRectangles (dst->dpy, gc, 0, 0, rects, j, Unsorted); - XCopyArea (dst->dpy, src->drawable, dst->drawable, gc, - extents->x + dx, extents->y + dy, - extents->width, extents->height, - extents->x, extents->y); + XCopyArea (dst->dpy, src->drawable, dst->drawable, gc, + extents->x + dx, extents->y + dy, + extents->width, extents->height, + extents->x, extents->y); - XSetClipMask (dst->dpy, gc, None); + XSetClipMask (dst->dpy, gc, None); - if (rects != stack_rects) - free (rects); + if (rects != stack_rects) + free (rects); + } + } + + if (! src->owns_pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = ClipByChildren; + XChangeGC (dst->display->display, gc, GCSubwindowMode, &gcv); } _cairo_xlib_surface_put_gc (dst->display, dst, gc); @@ -313,8 +352,12 @@ fill_reduces_to_source (cairo_operator_t op, const cairo_color_t *color, cairo_xlib_surface_t *dst) { - if (dst->base.is_clear || CAIRO_COLOR_IS_OPAQUE (color)) - return op == CAIRO_OPERATOR_OVER || op == CAIRO_OPERATOR_ADD; + if (dst->base.is_clear || CAIRO_COLOR_IS_OPAQUE (color)) { + if (op == CAIRO_OPERATOR_OVER) + return TRUE; + if (op == CAIRO_OPERATOR_ADD) + return (dst->base.content & CAIRO_CONTENT_COLOR) == 0; + } return FALSE; } @@ -1175,8 +1218,8 @@ _emit_glyphs_chunk (cairo_xlib_display_t *display, } elts[nelt].chars = char8 + size * j; elts[nelt].glyphset = info->glyphset; - elts[nelt].xOff = glyphs[i].i.x; - elts[nelt].yOff = glyphs[i].i.y; + elts[nelt].xOff = glyphs[i].i.x - dst_x; + elts[nelt].yOff = glyphs[i].i.y - dst_y; } switch (width) { @@ -1203,9 +1246,9 @@ _emit_glyphs_chunk (cairo_xlib_display_t *display, src->picture, dst->picture, use_mask ? info->xrender_format : NULL, - src_x + elts[0].xOff, - src_y + elts[0].yOff, - elts[0].xOff - dst_x, elts[0].yOff - dst_y, + src_x + elts[0].xOff + dst_x, + src_y + elts[0].yOff + dst_y, + elts[0].xOff, elts[0].yOff, (XGlyphElt8 *) elts, nelt); if (elts != stack_elts) @@ -1429,6 +1472,7 @@ _cairo_xlib_mask_compositor_get (void) compositor.draw_image_boxes = draw_image_boxes; compositor.fill_rectangles = fill_rectangles; compositor.fill_boxes = fill_boxes; + compositor.copy_boxes = copy_boxes; //compositor.check_composite = check_composite; compositor.composite = composite; //compositor.check_composite_boxes = check_composite_boxes; @@ -1517,6 +1561,12 @@ composite_traps (void *abstract_dst, //X_DEBUG ((display->display, "composite_trapezoids (dst=%x)", (unsigned int) dst->drawable)); + if (dst->base.is_clear && + (op == CAIRO_OPERATOR_OVER || op == CAIRO_OPERATOR_ADD)) + { + op = CAIRO_OPERATOR_SOURCE; + } + pict_format = _cairo_xlib_display_get_xrender_format (display, antialias == CAIRO_ANTIALIAS_NONE ? CAIRO_FORMAT_A1 : CAIRO_FORMAT_A8); @@ -1654,6 +1704,17 @@ composite_tristrip (void *abstract_dst, return CAIRO_STATUS_SUCCESS; } +static cairo_int_status_t +check_composite (const cairo_composite_rectangles_t *extents) +{ + cairo_xlib_display_t *display = ((cairo_xlib_surface_t *)extents->surface)->display; + + if (! CAIRO_RENDER_SUPPORTS_OPERATOR (display, extents->op)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + return CAIRO_STATUS_SUCCESS; +} + const cairo_compositor_t * _cairo_xlib_traps_compositor_get (void) { @@ -1670,7 +1731,7 @@ _cairo_xlib_traps_compositor_get (void) compositor.draw_image_boxes = draw_image_boxes; compositor.copy_boxes = copy_boxes; compositor.fill_boxes = fill_boxes; - //compositor.check_composite = check_composite; + compositor.check_composite = check_composite; compositor.composite = composite; compositor.lerp = lerp; //compositor.check_composite_boxes = check_composite_boxes; diff --git a/src/cairo-xlib-screen.c b/src/cairo-xlib-screen.c index 7bfdf15..57beeaa 100644 --- a/src/cairo-xlib-screen.c +++ b/src/cairo-xlib-screen.c @@ -61,6 +61,7 @@ #include "cairo-xlib-surface-private.h" #include "cairo-error-private.h" +#include "cairo-list-inline.h" #include "cairo-fontconfig-private.h" diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c index dc5aa7a..f8dac70 100644 --- a/src/cairo-xlib-source.c +++ b/src/cairo-xlib-source.c @@ -48,27 +48,21 @@ #include "cairo-error-private.h" #include "cairo-image-surface-private.h" #include "cairo-paginated-private.h" -#include "cairo-pattern-private.h" +#include "cairo-pattern-inline.h" #include "cairo-recording-surface-private.h" #include "cairo-surface-backend-private.h" #include "cairo-surface-offset-private.h" #include "cairo-surface-observer-private.h" -#include "cairo-surface-snapshot-private.h" +#include "cairo-surface-snapshot-inline.h" +#include "cairo-surface-subsurface-inline.h" #define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */ -static cairo_surface_t * -unwrap_surface (cairo_surface_t *surface, int *tx, int *ty) +static cairo_xlib_surface_t * +unwrap_source (const cairo_surface_pattern_t *pattern) { - *tx = *ty = 0; - - if (_cairo_surface_is_paginated (surface)) - surface = _cairo_paginated_surface_get_recording (surface); - if (_cairo_surface_is_snapshot (surface)) - surface = _cairo_surface_snapshot_get_target (surface); - if (_cairo_surface_is_observer (surface)) - surface = _cairo_surface_observer_get_target (surface); - return surface; + cairo_rectangle_int_t limits; + return (cairo_xlib_surface_t *)_cairo_pattern_get_source (pattern, &limits); } static cairo_status_t @@ -541,61 +535,36 @@ solid_source (cairo_xlib_surface_t *dst, } static cairo_surface_t * -native_source (cairo_xlib_surface_t *dst, - const cairo_surface_pattern_t *pattern, - cairo_bool_t is_mask, - const cairo_rectangle_int_t *extents, - const cairo_rectangle_int_t *sample, - int *src_x, int *src_y) +embedded_source (cairo_xlib_surface_t *dst, + const cairo_surface_pattern_t *pattern, + cairo_xlib_surface_t *src, + const cairo_rectangle_int_t *extents, + int *src_x, int *src_y) { - cairo_xlib_surface_t *src = (cairo_xlib_surface_t *) pattern->surface; cairo_xlib_source_t *source; Display *dpy = dst->display->display; - cairo_bool_t is_contained = FALSE; cairo_int_status_t status; XTransform xtransform; XRenderPictureAttributes pa; - int mask = 0; + unsigned mask = 0; - src = (cairo_xlib_surface_t *) - unwrap_surface (pattern->surface, src_x, src_y); - - if (sample->x >= 0 && sample->y >= 0 && - sample->x + sample->width <= src->width && - sample->y + sample->height <= src->height) - { - is_contained = TRUE; - } - - if (pattern->base.filter == CAIRO_FILTER_NEAREST && is_contained) { - *src_x += pattern->base.matrix.x0; - *src_y += pattern->base.matrix.y0; - _cairo_xlib_surface_ensure_picture (src); - return cairo_surface_reference (&src->base); - } - - /* As these are frequent and meant to be fast we track pictures for - * enative surface and minimse update requests. + /* As these are frequent and meant to be fast, we track pictures for + * native surface and minimise update requests. */ source = &src->embedded_source; if (source->picture == None) { - Picture picture; XRenderPictureAttributes pa; - int mask = 0; - - pa.subwindow_mode = IncludeInferiors; - mask |= CPSubwindowMode; - - picture = XRenderCreatePicture (dpy, - src->drawable, - src->xrender_format, - mask, &pa); _cairo_surface_init (&source->base, &cairo_xlib_source_backend, NULL, /* device */ CAIRO_CONTENT_COLOR_ALPHA); - source->picture = picture; + + pa.subwindow_mode = IncludeInferiors; + source->picture = XRenderCreatePicture (dpy, + src->drawable, + src->xrender_format, + CPSubwindowMode, &pa); source->has_component_alpha = 0; source->has_matrix = 0; @@ -644,6 +613,163 @@ native_source (cairo_xlib_surface_t *dst, return cairo_surface_reference (&source->base); } +static cairo_surface_t * +subsurface_source (cairo_xlib_surface_t *dst, + const cairo_surface_pattern_t *pattern, + cairo_bool_t is_mask, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + int *src_x, int *src_y) +{ + cairo_surface_subsurface_t *sub; + cairo_xlib_surface_t *src; + cairo_xlib_source_t *source; + Display *dpy = dst->display->display; + cairo_int_status_t status; + cairo_surface_pattern_t local_pattern; + XTransform xtransform; + XRenderPictureAttributes pa; + unsigned mask = 0; + + sub = (cairo_surface_subsurface_t *) pattern->surface; + + if (sample->x >= 0 && sample->y >= 0 && + sample->x + sample->width <= sub->extents.width && + sample->y + sample->height <= sub->extents.height) + { + src = (cairo_xlib_surface_t *) sub->target; + + if (pattern->base.filter == CAIRO_FILTER_NEAREST && + _cairo_matrix_is_translation (&pattern->base.matrix)) + { + *src_x += pattern->base.matrix.x0 + sub->extents.x; + *src_y += pattern->base.matrix.y0 + sub->extents.y; + + _cairo_xlib_surface_ensure_picture (src); + return cairo_surface_reference (&src->base); + } + else + { + cairo_surface_pattern_t local_pattern = *pattern; + local_pattern.base.matrix.x0 += sub->extents.x; + local_pattern.base.matrix.y0 += sub->extents.y; + local_pattern.base.extend = CAIRO_EXTEND_NONE; + return embedded_source (dst, &local_pattern, src, extents, + src_x, src_y); + } + } + + if (sub->snapshot && sub->snapshot->type == CAIRO_SURFACE_TYPE_XLIB) { + src = (cairo_xlib_surface_t *) cairo_surface_reference (sub->snapshot); + source = &src->embedded_source; + } else { + src = (cairo_xlib_surface_t *) + _cairo_surface_create_similar_scratch (&dst->base, + sub->base.content, + sub->extents.width, + sub->extents.height); + if (src->base.type != CAIRO_SURFACE_TYPE_XLIB) { + cairo_surface_destroy (&src->base); + return _cairo_surface_create_in_error (CAIRO_STATUS_NO_MEMORY); + } + + _cairo_pattern_init_for_surface (&local_pattern, sub->target); + cairo_matrix_init_translate (&local_pattern.base.matrix, + sub->extents.x, sub->extents.y); + local_pattern.base.filter = CAIRO_FILTER_NEAREST; + status = _cairo_surface_paint (&src->base, + CAIRO_OPERATOR_SOURCE, + &local_pattern.base, + NULL); + _cairo_pattern_fini (&local_pattern.base); + + if (unlikely (status)) { + cairo_surface_destroy (&src->base); + return _cairo_surface_create_in_error (status); + } + + _cairo_xlib_surface_ensure_picture (src); + _cairo_surface_subsurface_set_snapshot (&sub->base, &src->base); + + source = &src->embedded_source; + source->has_component_alpha = 0; + source->has_matrix = 0; + source->filter = CAIRO_FILTER_NEAREST; + source->extend = CAIRO_EXTEND_NONE; + } + + status = _cairo_matrix_to_pixman_matrix_offset (&pattern->base.matrix, + pattern->base.filter, + extents->x + extents->width / 2, + extents->y + extents->height / 2, + (pixman_transform_t *)&xtransform, + src_x, src_y); + if (status == CAIRO_INT_STATUS_NOTHING_TO_DO) { + if (source->has_matrix) { + source->has_matrix = 0; + memcpy (&xtransform, &identity, sizeof (identity)); + status = CAIRO_INT_STATUS_SUCCESS; + } + } else + source->has_matrix = 1; + if (status == CAIRO_INT_STATUS_SUCCESS) + XRenderSetPictureTransform (dpy, src->picture, &xtransform); + + if (source->filter != pattern->base.filter) { + picture_set_filter (dpy, src->picture, pattern->base.filter); + source->filter = pattern->base.filter; + } + + if (source->has_component_alpha != pattern->base.has_component_alpha) { + pa.component_alpha = pattern->base.has_component_alpha; + mask |= CPComponentAlpha; + source->has_component_alpha = pattern->base.has_component_alpha; + } + + if (source->extend != pattern->base.extend) { + pa.repeat = extend_to_repeat (pattern->base.extend); + mask |= CPRepeat; + source->extend = pattern->base.extend; + } + + if (mask) + XRenderChangePicture (dpy, src->picture, mask, &pa); + + return &src->base; +} + +static cairo_surface_t * +native_source (cairo_xlib_surface_t *dst, + const cairo_surface_pattern_t *pattern, + cairo_bool_t is_mask, + const cairo_rectangle_int_t *extents, + const cairo_rectangle_int_t *sample, + int *src_x, int *src_y) +{ + cairo_xlib_surface_t *src = (cairo_xlib_surface_t *) pattern->surface; + + if (_cairo_surface_is_subsurface (pattern->surface)) + return subsurface_source (dst, pattern, is_mask, + extents, sample, + src_x, src_y); + + src = unwrap_source (pattern); + + if (pattern->base.filter == CAIRO_FILTER_NEAREST && + sample->x >= 0 && sample->y >= 0 && + sample->x + sample->width <= src->width && + sample->y + sample->height <= src->height && + _cairo_matrix_is_translation (&pattern->base.matrix)) + { + *src_x += pattern->base.matrix.x0; + *src_y += pattern->base.matrix.y0; + _cairo_xlib_surface_ensure_picture (src); + return cairo_surface_reference (&src->base); + } + + return embedded_source (dst, pattern, src, extents, src_x, src_y); +} + #if 0 /* It is general quicker if we let the application choose which images * to cache for itself and only upload the fragments required for this @@ -889,11 +1015,10 @@ _cairo_xlib_source_create_for_pattern (cairo_surface_t *_dst, int *src_x, int *src_y) { cairo_xlib_surface_t *dst = (cairo_xlib_surface_t *)_dst; - int tx, ty; - if (pattern == NULL || pattern->type == CAIRO_PATTERN_TYPE_SOLID) { - *src_x = *src_y = 0; + *src_x = *src_y = 0; + if (pattern == NULL || pattern->type == CAIRO_PATTERN_TYPE_SOLID) { if (pattern == NULL) pattern = &_cairo_pattern_white.base; @@ -905,7 +1030,7 @@ _cairo_xlib_source_create_for_pattern (cairo_surface_t *_dst, cairo_surface_pattern_t *spattern = (cairo_surface_pattern_t *)pattern; if (spattern->surface->type == CAIRO_SURFACE_TYPE_XLIB && _cairo_xlib_surface_same_screen (dst, - (cairo_xlib_surface_t *)unwrap_surface (spattern->surface, &tx, &ty))) + unwrap_source (spattern))) return native_source (dst, spattern, is_mask, extents, sample, src_x, src_y); diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c index 1806e64..ae2153b 100644 --- a/src/cairo-xlib-surface.c +++ b/src/cairo-xlib-surface.c @@ -57,6 +57,7 @@ #include "cairo-default-context-private.h" #include "cairo-error-private.h" #include "cairo-image-surface-private.h" +#include "cairo-list-inline.h" #include "cairo-pattern-private.h" #include "cairo-region-private.h" #include "cairo-scaled-font-private.h" @@ -125,18 +126,20 @@ _x_bread_crumb (Display *dpy, * * Note that the XLib surface automatically takes advantage of X render extension * if it is available. - */ + **/ /** * CAIRO_HAS_XLIB_SURFACE: * * Defined if the Xlib surface backend is available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.0 + **/ /** * SECTION:cairo-xlib-xrender - * @Title: XLib/XRender Backend + * @Title: XLib-XRender Backend * @Short_Description: X Window System rendering using XLib and the X Render extension * @See_Also: #cairo_surface_t * @@ -145,14 +148,16 @@ _x_bread_crumb (Display *dpy, * * Note that the XLib surface automatically takes advantage of X Render extension * if it is available. - */ + **/ /** * CAIRO_HAS_XLIB_XRENDER_SURFACE: * * Defined if the XLib/XRender surface functions are available. * This macro can be used to conditionally compile backend-specific code. - */ + * + * Since: 1.6 + **/ /* Xlib doesn't define a typedef, so define one ourselves */ typedef int (*cairo_xlib_error_func_t) (Display *display, @@ -237,26 +242,22 @@ _visual_for_xrender_format(Screen *screen, static cairo_content_t _xrender_format_to_content (XRenderPictFormat *xrender_format) { - cairo_bool_t xrender_format_has_alpha; - cairo_bool_t xrender_format_has_color; + cairo_content_t content; /* This only happens when using a non-Render server. Let's punt * and say there's no alpha here. */ if (xrender_format == NULL) return CAIRO_CONTENT_COLOR; - xrender_format_has_alpha = (xrender_format->direct.alphaMask != 0); - xrender_format_has_color = (xrender_format->direct.redMask != 0 || - xrender_format->direct.greenMask != 0 || - xrender_format->direct.blueMask != 0); + content = 0; + if (xrender_format->direct.alphaMask) + content |= CAIRO_CONTENT_ALPHA; + if (xrender_format->direct.redMask | + xrender_format->direct.greenMask | + xrender_format->direct.blueMask) + content |= CAIRO_CONTENT_COLOR; - if (xrender_format_has_alpha) - if (xrender_format_has_color) - return CAIRO_CONTENT_COLOR_ALPHA; - else - return CAIRO_CONTENT_ALPHA; - else - return CAIRO_CONTENT_COLOR; + return content; } static cairo_surface_t * @@ -322,7 +323,7 @@ _cairo_xlib_surface_create_similar (void *abstract_src, Screen *screen = src->screen->screen; int depth; - /* No compatabile XRenderFormat, see if we can make an ordinary pixmap, + /* No compatible XRenderFormat, see if we can make an ordinary pixmap, * so that we can still accelerate blits with XCopyArea(). */ if (content != CAIRO_CONTENT_COLOR) { cairo_device_release (&display->base); @@ -665,6 +666,18 @@ static const int8_t dither_pattern[4][4] = { }; #undef X +static int bits_per_pixel(cairo_xlib_surface_t *surface) +{ + if (surface->depth > 16) + return 32; + else if (surface->depth > 8) + return 16; + else if (surface->depth > 1) + return 8; + else + return 1; +} + static cairo_surface_t * _get_image_surface (cairo_xlib_surface_t *surface, const cairo_rectangle_int_t *extents) @@ -681,18 +694,23 @@ _get_image_surface (cairo_xlib_surface_t *surface, assert (extents->x + extents->width <= surface->width); assert (extents->y + extents->height <= surface->height); - if (surface->base.serial == 0) { - xlib_masks.bpp = (surface->depth + 7) & ~7; + if (surface->base.is_clear || + (surface->base.serial == 0 && surface->owns_pixmap)) + { + xlib_masks.bpp = bits_per_pixel (surface); xlib_masks.alpha_mask = surface->a_mask; xlib_masks.red_mask = surface->r_mask; xlib_masks.green_mask = surface->g_mask; xlib_masks.blue_mask = surface->b_mask; - _pixman_format_from_masks (&xlib_masks, &pixman_format); - return _cairo_image_surface_create_with_pixman_format (NULL, - pixman_format, - extents->width, - extents->height, - 0); + if (_pixman_format_from_masks (&xlib_masks, &pixman_format) && + _cairo_format_from_pixman_format (pixman_format) != CAIRO_FORMAT_INVALID) + { + return _cairo_image_surface_create_with_pixman_format (NULL, + pixman_format, + extents->width, + extents->height, + 0); + } } status = _cairo_xlib_display_acquire (surface->base.device, &display); @@ -743,11 +761,19 @@ _get_image_surface (cairo_xlib_surface_t *surface, extents->width, extents->height, surface->depth); if (pixmap) { + XGCValues gcv; + + gcv.subwindow_mode = IncludeInferiors; + XChangeGC (display->display, gc, GCSubwindowMode, &gcv); + XCopyArea (display->display, surface->drawable, pixmap, gc, extents->x, extents->y, extents->width, extents->height, 0, 0); + gcv.subwindow_mode = ClipByChildren; + XChangeGC (display->display, gc, GCSubwindowMode, &gcv); + ximage = XGetImage (display->display, pixmap, 0, 0, @@ -1021,8 +1047,7 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, ret = XInitImage (&ximage); assert (ret != 0); } - else if (!is_rgb_image || - (surface->visual == NULL || surface->visual->class == TrueColor)) + else if (surface->visual == NULL || surface->visual->class == TrueColor) { pixman_format_code_t intermediate_format; int ret; @@ -1031,17 +1056,14 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, image_masks.red_mask = surface->r_mask; image_masks.green_mask = surface->g_mask; image_masks.blue_mask = surface->b_mask; - image_masks.bpp = surface->depth; + image_masks.bpp = bits_per_pixel (surface); ret = _pixman_format_from_masks (&image_masks, &intermediate_format); assert (ret); own_data = FALSE; pixman_image = pixman_image_create_bits (intermediate_format, - image->width, - image->height, - NULL, - 0); + width, height, NULL, 0); if (pixman_image == NULL) { status = _cairo_error (CAIRO_STATUS_NO_MEMORY); goto BAIL; @@ -1051,17 +1073,21 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, image->pixman_image, NULL, pixman_image, + src_x, src_y, 0, 0, 0, 0, - 0, 0, - image->width, image->height); + width, height); + ximage.width = width; + ximage.height = height; ximage.bits_per_pixel = image_masks.bpp; ximage.data = (char *) pixman_image_get_data (pixman_image); ximage.bytes_per_line = pixman_image_get_stride (pixman_image); ret = XInitImage (&ximage); assert (ret != 0); + + src_x = src_y = 0; } else { @@ -1076,14 +1102,7 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, cairo_bool_t true_color; int ret; - if (surface->depth > 16) - ximage.bits_per_pixel = 32; - else if (surface->depth > 8) - ximage.bits_per_pixel = 16; - else if (surface->depth > 1) - ximage.bits_per_pixel = 8; - else - ximage.bits_per_pixel = 1; + ximage.bits_per_pixel = bits_per_pixel(surface); stride = CAIRO_STRIDE_FOR_WIDTH_BPP (ximage.width, ximage.bits_per_pixel); ximage.bytes_per_line = stride; @@ -1188,9 +1207,8 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, if (unlikely (status)) goto BAIL; - XPutImage (display->display, surface->drawable, gc, - &ximage, src_x, src_y, dst_x, dst_y, - width, height); + XPutImage (display->display, surface->drawable, gc, &ximage, + src_x, src_y, dst_x, dst_y, width, height); _cairo_xlib_surface_put_gc (display, surface, gc); @@ -1206,6 +1224,21 @@ _cairo_xlib_surface_draw_image (cairo_xlib_surface_t *surface, return CAIRO_STATUS_SUCCESS; } +static cairo_surface_t * +_cairo_xlib_surface_source(void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_xlib_surface_t *surface = abstract_surface; + + if (extents) { + extents->x = extents->y = 0; + extents->width = surface->width; + extents->height = surface->height; + } + + return &surface->base; +} + static cairo_status_t _cairo_xlib_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -1252,7 +1285,7 @@ _cairo_xlib_surface_map_to_image (void *abstract_surface, cairo_surface_t *image; image = _get_image_surface (abstract_surface, extents); - cairo_surface_set_device_offset (image, -extents->y, -extents->y); + cairo_surface_set_device_offset (image, -extents->x, -extents->y); return image; } @@ -1382,6 +1415,7 @@ static const cairo_surface_backend_t cairo_xlib_surface_backend = { _cairo_xlib_surface_map_to_image, _cairo_xlib_surface_unmap_image, + _cairo_xlib_surface_source, _cairo_xlib_surface_acquire_source_image, _cairo_xlib_surface_release_source_image, _cairo_xlib_surface_snapshot, @@ -1580,7 +1614,14 @@ _cairo_xlib_screen_from_visual (Display *dpy, Visual *visual) static cairo_bool_t valid_size (int width, int height) { - return width > 0 && width <= XLIB_COORD_MAX && height > 0 && height <= XLIB_COORD_MAX; + /* Note: the minimum surface size allowed in the X protocol is 1x1. + * However, as we historically did not check the minimum size we + * allowed applications to lie and set the correct size later (one hopes). + * To preserve compatability we must allow applications to use + * 0x0 surfaces. + */ + return (width >= 0 && width <= XLIB_COORD_MAX && + height >= 0 && height <= XLIB_COORD_MAX); } /** @@ -1607,6 +1648,8 @@ static cairo_bool_t valid_size (int width, int height) * children will be included. * * Return value: the newly created surface + * + * Since: 1.0 **/ cairo_surface_t * cairo_xlib_surface_create (Display *dpy, @@ -1651,6 +1694,8 @@ cairo_xlib_surface_create (Display *dpy, * This will be drawn to as a %CAIRO_FORMAT_A1 object. * * Return value: the newly created surface + * + * Since: 1.0 **/ cairo_surface_t * cairo_xlib_surface_create_for_bitmap (Display *dpy, @@ -1696,6 +1741,8 @@ cairo_xlib_surface_create_for_bitmap (Display *dpy, * window changes. * * Return value: the newly created surface + * + * Since: 1.0 **/ cairo_surface_t * cairo_xlib_surface_create_with_xrender_format (Display *dpy, @@ -1767,6 +1814,8 @@ cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface) * * A Pixmap can never change size, so it is never necessary to call * this function on a surface created for a Pixmap. + * + * Since: 1.0 **/ void cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface, @@ -1811,6 +1860,8 @@ cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface, * will get X protocol errors and will probably terminate. * No checks are done by this function to ensure this * compatibility. + * + * Since: 1.0 **/ void cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface, diff --git a/src/cairo-xlib-xcb-surface.c b/src/cairo-xlib-xcb-surface.c index f4ddd97..caa9bd3 100644 --- a/src/cairo-xlib-xcb-surface.c +++ b/src/cairo-xlib-xcb-surface.c @@ -47,6 +47,7 @@ #include "cairo-xlib-xrender-private.h" #include "cairo-default-context-private.h" +#include "cairo-list-inline.h" #include "cairo-image-surface-private.h" #include "cairo-surface-backend-private.h" @@ -137,6 +138,14 @@ _cairo_xlib_xcb_surface_unmap (void *abstract_surface, return cairo_surface_status (&surface->xcb->base); } +static cairo_surface_t * +_cairo_xlib_xcb_surface_source (void *abstract_surface, + cairo_rectangle_int_t *extents) +{ + cairo_xlib_xcb_surface_t *surface = abstract_surface; + return _cairo_surface_get_source (&surface->xcb->base, extents); +} + static cairo_status_t _cairo_xlib_xcb_surface_acquire_source_image (void *abstract_surface, cairo_image_surface_t **image_out, @@ -275,6 +284,7 @@ static const cairo_surface_backend_t _cairo_xlib_xcb_surface_backend = { _cairo_xlib_xcb_surface_map_to_image, _cairo_xlib_xcb_surface_unmap, + _cairo_xlib_xcb_surface_source, _cairo_xlib_xcb_surface_acquire_source_image, _cairo_xlib_xcb_surface_release_source_image, NULL, /* snapshot */ @@ -647,7 +657,11 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface, return; } - ASSERT_NOT_REACHED; + cairo_xcb_surface_set_drawable (&surface->xcb->base, drawable, width, height); + if (unlikely (surface->xcb->base.status)) { + status = _cairo_surface_set_error (abstract_surface, + _cairo_error (surface->xcb->base.status)); + } } Display * @@ -782,6 +796,22 @@ cairo_xlib_surface_get_height (cairo_surface_t *abstract_surface) } void +cairo_xlib_device_debug_cap_xrender_version (cairo_device_t *device, + int major, int minor) +{ + cairo_xlib_xcb_display_t *display = (cairo_xlib_xcb_display_t *) device; + + if (device == NULL || device->status) + return; + + if (device->backend->type != CAIRO_DEVICE_TYPE_XLIB) + return; + + cairo_xcb_device_debug_cap_xrender_version (display->xcb_device, + major, minor); +} + +void cairo_xlib_device_debug_set_precision (cairo_device_t *device, int precision) { diff --git a/src/cairo-xlib.h b/src/cairo-xlib.h index 7f770b9..ecf8d6c 100644 --- a/src/cairo-xlib.h +++ b/src/cairo-xlib.h @@ -93,6 +93,11 @@ cairo_xlib_surface_get_height (cairo_surface_t *surface); /* debug interface */ +cairo_public void +cairo_xlib_device_debug_cap_xrender_version (cairo_device_t *device, + int major_version, + int minor_version); + /* * @precision: -1 implies automatically choose based on antialiasing mode, * any other value overrides and sets the corresponding PolyMode. diff --git a/src/cairo-xml-surface.c b/src/cairo-xml-surface.c index 40b6160..777d470 100644 --- a/src/cairo-xml-surface.c +++ b/src/cairo-xml-surface.c @@ -50,7 +50,7 @@ #include "cairo-image-surface-private.h" #include "cairo-error-private.h" #include "cairo-output-stream-private.h" -#include "cairo-recording-surface-private.h" +#include "cairo-recording-surface-inline.h" #define static cairo_warn static @@ -953,8 +953,7 @@ _cairo_xml_surface_glyphs (void *abstract_surface, cairo_glyph_t *glyphs, int num_glyphs, cairo_scaled_font_t *scaled_font, - const cairo_clip_t *clip, - int *remaining_glyphs) + const cairo_clip_t *clip) { cairo_xml_surface_t *surface = abstract_surface; cairo_xml_t *xml = to_xml (surface); @@ -988,7 +987,6 @@ _cairo_xml_surface_glyphs (void *abstract_surface, _cairo_xml_indent (xml, -2); _cairo_xml_printf (xml, ""); - *remaining_glyphs = 0; return CAIRO_STATUS_SUCCESS; } @@ -996,6 +994,7 @@ static const cairo_surface_backend_t _cairo_xml_surface_backend = { CAIRO_SURFACE_TYPE_XML, NULL, + _cairo_default_context_create, _cairo_xml_surface_create_similar, @@ -1003,39 +1002,26 @@ _cairo_xml_surface_backend = { NULL, /* map_to_image */ NULL, /* unmap_image */ - NULL, NULL, /* source image */ - NULL, NULL, /* dst image */ - NULL, /* clone_similar */ - NULL, /* composite */ - NULL, /* fill_rectangles */ - NULL, /* composite_trapezoids */ - NULL, /* create_span_renderer */ - NULL, /* check_span_renderer */ - NULL, NULL, /* copy/show page */ + _cairo_surface_default_source, + NULL, /* acquire source image */ + NULL, /* release source image */ + NULL, /* snapshot */ + + NULL, /* copy page */ + NULL, /* show page */ + _cairo_xml_surface_get_extents, - NULL, /* old_show_glyphs */ NULL, /* get_font_options */ + NULL, /* flush */ NULL, /* mark_dirty_rectangle */ - NULL, /* font fini */ - NULL, /* scaled_glyph_fini */ - /* The 5 high level operations */ _cairo_xml_surface_paint, _cairo_xml_surface_mask, _cairo_xml_surface_stroke, _cairo_xml_surface_fill, - _cairo_xml_surface_glyphs, - - NULL, /* snapshot */ - - NULL, /* is_similar */ NULL, /* fill_stroke */ - NULL, /* create_solid_pattern_surface */ - NULL, /* can_repaint_solid_pattern_surface */ - - /* The alternate high-level text operation */ - NULL, NULL, /* has, show_text_glyphs */ + _cairo_xml_surface_glyphs, }; static cairo_surface_t * diff --git a/src/cairo.c b/src/cairo.c index cbc3974..82396d2 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -63,9 +63,9 @@ * draw shapes with cairo_stroke() or cairo_fill(). * * #cairo_t's can be pushed to a stack via cairo_save(). - * They may then safely be changed, without loosing the current state. + * They may then safely be changed, without losing the current state. * Use cairo_restore() to restore to the saved state. - */ + **/ /** * SECTION:cairo-text @@ -92,7 +92,7 @@ * the pangocairo that is part of the Pango text layout and rendering library. * Pango is available from http://www.pango.org/. - */ + **/ /** * SECTION:cairo-transforms @@ -105,7 +105,7 @@ * drawing instruments from the user space into the * surface's canonical coordinate system, also known as the device * space. - */ + **/ #define DEFINE_NIL_CONTEXT(status) \ { \ @@ -218,6 +218,8 @@ _cairo_create_in_error (cairo_status_t status) * writing (such as #cairo_mime_surface_t) then a * %CAIRO_STATUS_WRITE_ERROR will be raised. You can use this * object normally, but no drawing will be done. + * + * Since: 1.0 **/ cairo_t * cairo_create (cairo_surface_t *target) @@ -258,6 +260,8 @@ _cairo_init (cairo_t *cr, * cairo_get_reference_count(). * * Return value: the referenced #cairo_t. + * + * Since: 1.0 **/ cairo_t * cairo_reference (cairo_t *cr) @@ -285,6 +289,8 @@ _cairo_fini (cairo_t *cr) * Decreases the reference count on @cr by one. If the result * is zero, then @cr and all associated resources are freed. * See cairo_reference(). + * + * Since: 1.0 **/ void cairo_destroy (cairo_t *cr) @@ -388,6 +394,8 @@ cairo_get_reference_count (cairo_t *cr) * a #cairo_t is freed. If the reference count of a #cairo_t * drops to zero in response to a call to cairo_destroy(), * any saved states will be freed along with the #cairo_t. + * + * Since: 1.0 **/ void cairo_save (cairo_t *cr) @@ -410,6 +418,8 @@ slim_hidden_def(cairo_save); * Restores @cr to the state saved by a preceding call to * cairo_save() and removes that state from the stack of * saved states. + * + * Since: 1.0 **/ void cairo_restore (cairo_t *cr) @@ -468,7 +478,7 @@ slim_hidden_def(cairo_restore); * * * Since: 1.2 - */ + **/ void cairo_push_group (cairo_t *cr) { @@ -493,7 +503,7 @@ cairo_push_group (cairo_t *cr) * detailed description of group rendering. * * Since: 1.2 - */ + **/ void cairo_push_group_with_content (cairo_t *cr, cairo_content_t content) { @@ -592,6 +602,8 @@ cairo_pop_group_to_source (cairo_t *cr) * each available compositing operator. * * The default operator is %CAIRO_OPERATOR_OVER. + * + * Since: 1.0 **/ void cairo_set_operator (cairo_t *cr, cairo_operator_t op) @@ -619,6 +631,8 @@ slim_hidden_def (cairo_set_operator); * using the alpha value. * * The default opacity is 1. + * + * Since: TBD **/ void cairo_set_opacity (cairo_t *cr, double opacity) @@ -635,7 +649,7 @@ cairo_set_opacity (cairo_t *cr, double opacity) #endif /** - * cairo_set_source_rgb + * cairo_set_source_rgb: * @cr: a cairo context * @red: red component of color * @green: green component of color @@ -651,6 +665,8 @@ cairo_set_opacity (cairo_t *cr, double opacity) * * The default source pattern is opaque black, (that is, it is * equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)). + * + * Since: 1.0 **/ void cairo_set_source_rgb (cairo_t *cr, double red, double green, double blue) @@ -684,6 +700,8 @@ slim_hidden_def (cairo_set_source_rgb); * * The default source pattern is opaque black, (that is, it is * equivalent to cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0)). + * + * Since: 1.0 **/ void cairo_set_source_rgba (cairo_t *cr, @@ -722,6 +740,8 @@ cairo_set_source_rgba (cairo_t *cr, * The resulting pattern can be queried with cairo_get_source() so * that these attributes can be modified if desired, (eg. to create a * repeating pattern with cairo_pattern_set_extend()). + * + * Since: 1.0 **/ void cairo_set_source_surface (cairo_t *cr, @@ -746,7 +766,7 @@ cairo_set_source_surface (cairo_t *cr, slim_hidden_def (cairo_set_source_surface); /** - * cairo_set_source + * cairo_set_source: * @cr: a cairo context * @source: a #cairo_pattern_t to be used as the source for * subsequent drawing operations. @@ -763,6 +783,8 @@ slim_hidden_def (cairo_set_source_surface); * The default source pattern is a solid pattern that is opaque black, * (that is, it is equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, * 0.0)). + * + * Since: 1.0 **/ void cairo_set_source (cairo_t *cr, cairo_pattern_t *source) @@ -797,6 +819,8 @@ slim_hidden_def (cairo_set_source); * Return value: the current source pattern. This object is owned by * cairo. To keep a reference to it, you must call * cairo_pattern_reference(). + * + * Since: 1.0 **/ cairo_pattern_t * cairo_get_source (cairo_t *cr) @@ -822,6 +846,8 @@ cairo_get_source (cairo_t *cr) * within Cairo is limited by the precision of its internal arithmetic, and * the prescribed @tolerance is restricted to the smallest * representable internal value. + * + * Since: 1.0 **/ void cairo_set_tolerance (cairo_t *cr, double tolerance) @@ -849,6 +875,8 @@ slim_hidden_def (cairo_set_tolerance); * * Note that this option does not affect text rendering, instead see * cairo_font_options_set_antialias(). + * + * Since: 1.0 **/ void cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias) @@ -875,6 +903,8 @@ cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias) * on the semantics of each available fill rule. * * The default fill rule is %CAIRO_FILL_RULE_WINDING. + * + * Since: 1.0 **/ void cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule) @@ -914,6 +944,8 @@ cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule) * construction. * * The default line width value is 2.0. + * + * Since: 1.0 **/ void cairo_set_line_width (cairo_t *cr, double width) @@ -947,6 +979,8 @@ slim_hidden_def (cairo_set_line_width); * construction. * * The default line cap style is %CAIRO_LINE_CAP_BUTT. + * + * Since: 1.0 **/ void cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap) @@ -977,6 +1011,8 @@ slim_hidden_def (cairo_set_line_cap); * construction. * * The default line join style is %CAIRO_LINE_JOIN_MITER. + * + * Since: 1.0 **/ void cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join) @@ -1023,6 +1059,8 @@ slim_hidden_def (cairo_set_line_join); * If any value in @dashes is negative, or if all values are 0, then * @cr will be put into an error state with a status of * %CAIRO_STATUS_INVALID_DASH. + * + * Since: 1.0 **/ void cairo_set_dash (cairo_t *cr, @@ -1052,7 +1090,7 @@ cairo_set_dash (cairo_t *cr, * Return value: the length of the dash array, or 0 if no dash array set. * * Since: 1.4 - */ + **/ int cairo_get_dash_count (cairo_t *cr) { @@ -1116,6 +1154,8 @@ cairo_get_dash (cairo_t *cr, * * A miter limit for a desired angle can be computed as: miter limit = * 1/sin(angle/2) + * + * Since: 1.0 **/ void cairo_set_miter_limit (cairo_t *cr, double limit) @@ -1141,6 +1181,8 @@ cairo_set_miter_limit (cairo_t *cr, double limit) * user-space coordinate according to the CTM in place before the new * call to cairo_translate(). In other words, the translation of the * user-space origin takes place after any existing transformation. + * + * Since: 1.0 **/ void cairo_translate (cairo_t *cr, double tx, double ty) @@ -1166,6 +1208,8 @@ slim_hidden_def (cairo_translate); * and Y user-space axes by @sx and @sy respectively. The scaling of * the axes takes place after any existing transformation of user * space. + * + * Since: 1.0 **/ void cairo_scale (cairo_t *cr, double sx, double sy) @@ -1192,6 +1236,8 @@ slim_hidden_def (cairo_scale); * places after any existing transformation of user space. The * rotation direction for positive angles is from the positive X axis * toward the positive Y axis. + * + * Since: 1.0 **/ void cairo_rotate (cairo_t *cr, double angle) @@ -1214,6 +1260,8 @@ cairo_rotate (cairo_t *cr, double angle) * Modifies the current transformation matrix (CTM) by applying * @matrix as an additional transformation. The new transformation of * user space takes place after any existing transformation. + * + * Since: 1.0 **/ void cairo_transform (cairo_t *cr, @@ -1237,6 +1285,8 @@ slim_hidden_def (cairo_transform); * * Modifies the current transformation matrix (CTM) by setting it * equal to @matrix. + * + * Since: 1.0 **/ void cairo_set_matrix (cairo_t *cr, @@ -1261,6 +1311,8 @@ slim_hidden_def (cairo_set_matrix); * to the identity matrix. That is, the user-space and device-space * axes will be aligned and one user-space unit will transform to one * device-space unit. + * + * Since: 1.0 **/ void cairo_identity_matrix (cairo_t *cr) @@ -1284,6 +1336,8 @@ cairo_identity_matrix (cairo_t *cr) * Transform a coordinate from user space to device space by * multiplying the given point by the current transformation matrix * (CTM). + * + * Since: 1.0 **/ void cairo_user_to_device (cairo_t *cr, double *x, double *y) @@ -1305,6 +1359,8 @@ slim_hidden_def (cairo_user_to_device); * function is similar to cairo_user_to_device() except that the * translation components of the CTM will be ignored when transforming * (@dx,@dy). + * + * Since: 1.0 **/ void cairo_user_to_device_distance (cairo_t *cr, double *dx, double *dy) @@ -1325,6 +1381,8 @@ slim_hidden_def (cairo_user_to_device_distance); * Transform a coordinate from device space to user space by * multiplying the given point by the inverse of the current * transformation matrix (CTM). + * + * Since: 1.0 **/ void cairo_device_to_user (cairo_t *cr, double *x, double *y) @@ -1346,6 +1404,8 @@ slim_hidden_def (cairo_device_to_user); * function is similar to cairo_device_to_user() except that the * translation components of the inverse CTM will be ignored when * transforming (@dx,@dy). + * + * Since: 1.0 **/ void cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy) @@ -1362,6 +1422,8 @@ cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy) * * Clears the current path. After this call there will be no path and * no current point. + * + * Since: 1.0 **/ void cairo_new_path (cairo_t *cr) @@ -1416,6 +1478,8 @@ cairo_new_sub_path (cairo_t *cr) * * Begin a new sub-path. After this call the current point will be (@x, * @y). + * + * Since: 1.0 **/ void cairo_move_to (cairo_t *cr, double x, double y) @@ -1444,6 +1508,8 @@ slim_hidden_def(cairo_move_to); * * If there is no current point before the call to cairo_line_to() * this function will behave as cairo_move_to(@cr, @x, @y). + * + * Since: 1.0 **/ void cairo_line_to (cairo_t *cr, double x, double y) @@ -1477,6 +1543,8 @@ slim_hidden_def (cairo_line_to); * If there is no current point before the call to cairo_curve_to() * this function will behave as if preceded by a call to * cairo_move_to(@cr, @x1, @y1). + * + * Since: 1.0 **/ void cairo_curve_to (cairo_t *cr, @@ -1545,6 +1613,8 @@ slim_hidden_def (cairo_curve_to); * cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI); * cairo_restore (cr); * + * + * Since: 1.0 **/ void cairo_arc (cairo_t *cr, @@ -1588,6 +1658,8 @@ cairo_arc (cairo_t *cr, * * See cairo_arc() for more details. This function differs only in the * direction of the arc between the two angles. + * + * Since: 1.0 **/ void cairo_arc_negative (cairo_t *cr, @@ -1663,6 +1735,8 @@ cairo_rel_arc_to (cairo_t *cr, * It is an error to call this function with no current point. Doing * so will cause @cr to shutdown with a status of * %CAIRO_STATUS_NO_CURRENT_POINT. + * + * Since: 1.0 **/ void cairo_rel_move_to (cairo_t *cr, double dx, double dy) @@ -1694,6 +1768,8 @@ cairo_rel_move_to (cairo_t *cr, double dx, double dy) * It is an error to call this function with no current point. Doing * so will cause @cr to shutdown with a status of * %CAIRO_STATUS_NO_CURRENT_POINT. + * + * Since: 1.0 **/ void cairo_rel_line_to (cairo_t *cr, double dx, double dy) @@ -1733,6 +1809,8 @@ slim_hidden_def(cairo_rel_line_to); * It is an error to call this function with no current point. Doing * so will cause @cr to shutdown with a status of * %CAIRO_STATUS_NO_CURRENT_POINT. + * + * Since: 1.0 **/ void cairo_rel_curve_to (cairo_t *cr, @@ -1772,6 +1850,8 @@ cairo_rel_curve_to (cairo_t *cr, * cairo_rel_line_to (cr, -width, 0); * cairo_close_path (cr); * + * + * Since: 1.0 **/ void cairo_rectangle (cairo_t *cr, @@ -1831,6 +1911,8 @@ cairo_stroke_to_path (cairo_t *cr) * not be necessary to save the "last move_to point" during processing * as the MOVE_TO immediately after the CLOSE_PATH will provide that * point. + * + * Since: 1.0 **/ void cairo_close_path (cairo_t *cr) @@ -1903,6 +1985,8 @@ cairo_path_extents (cairo_t *cr, * * A drawing operator that paints the current source everywhere within * the current clip region. + * + * Since: 1.0 **/ void cairo_paint (cairo_t *cr) @@ -1927,6 +2011,8 @@ slim_hidden_def (cairo_paint); * the current clip region using a mask of constant alpha value * @alpha. The effect is similar to cairo_paint(), but the drawing * is faded out using the alpha value. + * + * Since: 1.0 **/ void cairo_paint_with_alpha (cairo_t *cr, @@ -1951,7 +2037,9 @@ cairo_paint_with_alpha (cairo_t *cr, * using the alpha channel of @pattern as a mask. (Opaque * areas of @pattern are painted with the source, transparent * areas are not painted.) - */ + * + * Since: 1.0 + **/ void cairo_mask (cairo_t *cr, cairo_pattern_t *pattern) @@ -1988,7 +2076,9 @@ slim_hidden_def (cairo_mask); * using the alpha channel of @surface as a mask. (Opaque * areas of @surface are painted with the source, transparent * areas are not painted.) - */ + * + * Since: 1.0 + **/ void cairo_mask_surface (cairo_t *cr, cairo_surface_t *surface, @@ -2042,6 +2132,8 @@ cairo_mask_surface (cairo_t *cr, * * In no case will a cap style of %CAIRO_LINE_CAP_BUTT cause anything * to be drawn in the case of either degenerate segments or sub-paths. + * + * Since: 1.0 **/ void cairo_stroke (cairo_t *cr) @@ -2069,6 +2161,8 @@ slim_hidden_def(cairo_stroke); * See cairo_set_line_width(), cairo_set_line_join(), * cairo_set_line_cap(), cairo_set_dash(), and * cairo_stroke_preserve(). + * + * Since: 1.0 **/ void cairo_stroke_preserve (cairo_t *cr) @@ -2093,6 +2187,8 @@ slim_hidden_def(cairo_stroke_preserve); * filled). After cairo_fill(), the current path will be cleared from * the cairo context. See cairo_set_fill_rule() and * cairo_fill_preserve(). + * + * Since: 1.0 **/ void cairo_fill (cairo_t *cr) @@ -2117,6 +2213,8 @@ cairo_fill (cairo_t *cr) * path within the cairo context. * * See cairo_set_fill_rule() and cairo_fill(). + * + * Since: 1.0 **/ void cairo_fill_preserve (cairo_t *cr) @@ -2143,6 +2241,8 @@ slim_hidden_def(cairo_fill_preserve); * * This is a convenience function that simply calls * cairo_surface_copy_page() on @cr's target. + * + * Since: 1.0 **/ void cairo_copy_page (cairo_t *cr) @@ -2166,6 +2266,8 @@ cairo_copy_page (cairo_t *cr) * * This is a convenience function that simply calls * cairo_surface_show_page() on @cr's target. + * + * Since: 1.0 **/ void cairo_show_page (cairo_t *cr) @@ -2197,6 +2299,8 @@ cairo_show_page (cairo_t *cr) * * Return value: A non-zero value if the point is inside, or zero if * outside. + * + * Since: 1.0 **/ cairo_bool_t cairo_in_stroke (cairo_t *cr, double x, double y) @@ -2229,6 +2333,8 @@ cairo_in_stroke (cairo_t *cr, double x, double y) * * Return value: A non-zero value if the point is inside, or zero if * outside. + * + * Since: 1.0 **/ cairo_bool_t cairo_in_fill (cairo_t *cr, double x, double y) @@ -2273,6 +2379,8 @@ cairo_in_fill (cairo_t *cr, double x, double y) * See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), * cairo_set_line_cap(), cairo_set_dash(), and * cairo_stroke_preserve(). + * + * Since: 1.0 **/ void cairo_stroke_extents (cairo_t *cr, @@ -2322,6 +2430,8 @@ cairo_stroke_extents (cairo_t *cr, * if the non-inked path extents are desired. * * See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). + * + * Since: 1.0 **/ void cairo_fill_extents (cairo_t *cr, @@ -2368,6 +2478,8 @@ cairo_fill_extents (cairo_t *cr, * calling cairo_clip() within a cairo_save()/cairo_restore() * pair. The only other means of increasing the size of the clip * region is cairo_reset_clip(). + * + * Since: 1.0 **/ void cairo_clip (cairo_t *cr) @@ -2403,6 +2515,8 @@ cairo_clip (cairo_t *cr) * calling cairo_clip_preserve() within a cairo_save()/cairo_restore() * pair. The only other means of increasing the size of the clip * region is cairo_reset_clip(). + * + * Since: 1.0 **/ void cairo_clip_preserve (cairo_t *cr) @@ -2433,6 +2547,8 @@ slim_hidden_def(cairo_clip_preserve); * higher-level code which calls cairo_clip(). Consider using * cairo_save() and cairo_restore() around cairo_clip() as a more * robust means of temporarily restricting the clip region. + * + * Since: 1.0 **/ void cairo_reset_clip (cairo_t *cr) @@ -2593,6 +2709,8 @@ cairo_copy_clip_rectangle_list (cairo_t *cr) * * This function is equivalent to a call to cairo_toy_font_face_create() * followed by cairo_set_font_face(). + * + * Since: 1.0 **/ void cairo_select_font_face (cairo_t *cr, @@ -2626,6 +2744,8 @@ cairo_select_font_face (cairo_t *cr, * will be stored. * * Gets the font extents for the currently selected font. + * + * Since: 1.0 **/ void cairo_font_extents (cairo_t *cr, @@ -2655,6 +2775,8 @@ cairo_font_extents (cairo_t *cr, * Replaces the current #cairo_font_face_t object in the #cairo_t with * @font_face. The replaced font face in the #cairo_t will be * destroyed if there are no other references to it. + * + * Since: 1.0 **/ void cairo_set_font_face (cairo_t *cr, @@ -2687,6 +2809,8 @@ cairo_set_font_face (cairo_t *cr, * objects it is passed to, (for example, calling * cairo_set_font_face() with a nil font will trigger an error that * will shutdown the #cairo_t object). + * + * Since: 1.0 **/ cairo_font_face_t * cairo_get_font_face (cairo_t *cr) @@ -2711,6 +2835,8 @@ cairo_get_font_face (cairo_t *cr) * If text is drawn without a call to cairo_set_font_size(), (nor * cairo_set_font_matrix() nor cairo_set_scaled_font()), the default * font size is 10.0. + * + * Since: 1.0 **/ void cairo_set_font_size (cairo_t *cr, double size) @@ -2727,7 +2853,7 @@ cairo_set_font_size (cairo_t *cr, double size) slim_hidden_def (cairo_set_font_size); /** - * cairo_set_font_matrix + * cairo_set_font_matrix: * @cr: a #cairo_t * @matrix: a #cairo_matrix_t describing a transform to be applied to * the current font. @@ -2738,6 +2864,8 @@ slim_hidden_def (cairo_set_font_size); * simple scale is used (see cairo_set_font_size()), but a more * complex font matrix can be used to shear the font * or stretch it unequally along the two axes + * + * Since: 1.0 **/ void cairo_set_font_matrix (cairo_t *cr, @@ -2755,12 +2883,14 @@ cairo_set_font_matrix (cairo_t *cr, slim_hidden_def (cairo_set_font_matrix); /** - * cairo_get_font_matrix + * cairo_get_font_matrix: * @cr: a #cairo_t * @matrix: return value for the matrix * * Stores the current font matrix into @matrix. See * cairo_set_font_matrix(). + * + * Since: 1.0 **/ void cairo_get_font_matrix (cairo_t *cr, cairo_matrix_t *matrix) @@ -2783,6 +2913,8 @@ cairo_get_font_matrix (cairo_t *cr, cairo_matrix_t *matrix) * options derived from underlying surface; if the value in @options * has a default value (like %CAIRO_ANTIALIAS_DEFAULT), then the value * from the surface is used. + * + * Since: 1.0 **/ void cairo_set_font_options (cairo_t *cr, @@ -2815,6 +2947,8 @@ slim_hidden_def (cairo_set_font_options); * Note that the returned options do not include any options derived * from the underlying surface; they are literally the options * passed to cairo_set_font_options(). + * + * Since: 1.0 **/ void cairo_get_font_options (cairo_t *cr, @@ -2919,6 +3053,8 @@ slim_hidden_def (cairo_get_scaled_font); * characters. In particular, trailing whitespace characters are * likely to not affect the size of the rectangle, though they will * affect the x_advance and y_advance values. + * + * Since: 1.0 **/ void cairo_text_extents (cairo_t *cr, @@ -2985,6 +3121,8 @@ cairo_text_extents (cairo_t *cr, * * Note that whitespace glyphs do not contribute to the size of the * rectangle (extents.width and extents.height). + * + * Since: 1.0 **/ void cairo_glyph_extents (cairo_t *cr, @@ -3048,6 +3186,8 @@ cairo_glyph_extents (cairo_t *cr, * and simple programs, but it is not expected to be adequate for * serious text-using applications. See cairo_show_glyphs() for the * "real" text display API in cairo. + * + * Since: 1.0 **/ void cairo_show_text (cairo_t *cr, const char *utf8) @@ -3148,6 +3288,8 @@ cairo_show_text (cairo_t *cr, const char *utf8) * A drawing operator that generates the shape from an array of glyphs, * rendered according to the current font face, font size * (font matrix), and font options. + * + * Since: 1.0 **/ void cairo_show_glyphs (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs) @@ -3307,6 +3449,8 @@ cairo_show_text_glyphs (cairo_t *cr, * and simple programs, but it is not expected to be adequate for * serious text-using applications. See cairo_glyph_path() for the * "real" text path API in cairo. + * + * Since: 1.0 **/ void cairo_text_path (cairo_t *cr, const char *utf8) @@ -3377,6 +3521,8 @@ cairo_text_path (cairo_t *cr, const char *utf8) * Adds closed paths for the glyphs to the current path. The generated * path if filled, achieves an effect similar to that of * cairo_show_glyphs(). + * + * Since: 1.0 **/ void cairo_glyph_path (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs) @@ -3411,6 +3557,8 @@ cairo_glyph_path (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs) * Gets the current compositing operator for a cairo context. * * Return value: the current compositing operator. + * + * Since: 1.0 **/ cairo_operator_t cairo_get_operator (cairo_t *cr) @@ -3429,6 +3577,8 @@ cairo_get_operator (cairo_t *cr) * Gets the current compositing opacity for a cairo context. * * Return value: the current compositing opacity. + * + * Since: TBD **/ double cairo_get_opacity (cairo_t *cr) @@ -3447,6 +3597,8 @@ cairo_get_opacity (cairo_t *cr) * Gets the current tolerance value, as set by cairo_set_tolerance(). * * Return value: the current tolerance value. + * + * Since: 1.0 **/ double cairo_get_tolerance (cairo_t *cr) @@ -3466,6 +3618,8 @@ slim_hidden_def (cairo_get_tolerance); * cairo_set_antialias(). * * Return value: the current shape antialiasing mode. + * + * Since: 1.0 **/ cairo_antialias_t cairo_get_antialias (cairo_t *cr) @@ -3525,6 +3679,8 @@ cairo_has_current_point (cairo_t *cr) * * Some functions unset the current path and as a result, current point: * cairo_fill(), cairo_stroke(). + * + * Since: 1.0 **/ void cairo_get_current_point (cairo_t *cr, double *x_ret, double *y_ret) @@ -3552,6 +3708,8 @@ slim_hidden_def(cairo_get_current_point); * Gets the current fill rule, as set by cairo_set_fill_rule(). * * Return value: the current fill rule. + * + * Since: 1.0 **/ cairo_fill_rule_t cairo_get_fill_rule (cairo_t *cr) @@ -3572,6 +3730,8 @@ cairo_get_fill_rule (cairo_t *cr) * cairo_get_line_width(). * * Return value: the current line width. + * + * Since: 1.0 **/ double cairo_get_line_width (cairo_t *cr) @@ -3590,6 +3750,8 @@ slim_hidden_def (cairo_get_line_width); * Gets the current line cap style, as set by cairo_set_line_cap(). * * Return value: the current line cap style. + * + * Since: 1.0 **/ cairo_line_cap_t cairo_get_line_cap (cairo_t *cr) @@ -3607,6 +3769,8 @@ cairo_get_line_cap (cairo_t *cr) * Gets the current line join style, as set by cairo_set_line_join(). * * Return value: the current line join style. + * + * Since: 1.0 **/ cairo_line_join_t cairo_get_line_join (cairo_t *cr) @@ -3624,6 +3788,8 @@ cairo_get_line_join (cairo_t *cr) * Gets the current miter limit, as set by cairo_set_miter_limit(). * * Return value: the current miter limit. + * + * Since: 1.0 **/ double cairo_get_miter_limit (cairo_t *cr) @@ -3640,6 +3806,8 @@ cairo_get_miter_limit (cairo_t *cr) * @matrix: return value for the matrix * * Stores the current transformation matrix (CTM) into @matrix. + * + * Since: 1.0 **/ void cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix) @@ -3668,6 +3836,8 @@ slim_hidden_def (cairo_get_matrix); * * Return value: the target surface. This object is owned by cairo. To * keep a reference to it, you must call cairo_surface_reference(). + * + * Since: 1.0 **/ cairo_surface_t * cairo_get_target (cairo_t *cr) @@ -3733,6 +3903,8 @@ cairo_get_group_target (cairo_t *cr) * Return value: the copy of the current path. The caller owns the * returned object and should call cairo_path_destroy() when finished * with it. + * + * Since: 1.0 **/ cairo_path_t * cairo_copy_path (cairo_t *cr) @@ -3775,6 +3947,8 @@ cairo_copy_path (cairo_t *cr) * Return value: the copy of the current path. The caller owns the * returned object and should call cairo_path_destroy() when finished * with it. + * + * Since: 1.0 **/ cairo_path_t * cairo_copy_path_flat (cairo_t *cr) @@ -3796,6 +3970,8 @@ cairo_copy_path_flat (cairo_t *cr) * #cairo_path_t for details on how the path data structure should be * initialized, and note that path->status must be * initialized to %CAIRO_STATUS_SUCCESS. + * + * Since: 1.0 **/ void cairo_append_path (cairo_t *cr, @@ -3840,6 +4016,8 @@ cairo_append_path (cairo_t *cr, * Checks whether an error has previously occurred for this context. * * Returns: the current status of this context, see #cairo_status_t + * + * Since: 1.0 **/ cairo_status_t cairo_status (cairo_t *cr) diff --git a/src/cairo.h b/src/cairo.h index 6f4ee91..a2f5aa3 100644 --- a/src/cairo.h +++ b/src/cairo.h @@ -101,6 +101,8 @@ cairo_version_string (void); * /* do something */ * } * + * + * Since: 1.0 **/ typedef int cairo_bool_t; @@ -116,6 +118,8 @@ typedef int cairo_bool_t; * * Memory management of #cairo_t is done with * cairo_reference() and cairo_destroy(). + * + * Since: 1.0 **/ typedef struct _cairo cairo_t; @@ -143,6 +147,8 @@ typedef struct _cairo cairo_t; * * Memory management of #cairo_surface_t is done with * cairo_surface_reference() and cairo_surface_destroy(). + * + * Since: 1.0 **/ typedef struct _cairo_surface cairo_surface_t; @@ -180,6 +186,8 @@ typedef struct _cairo_device cairo_device_t; * x_new = xx * x + xy * y + x0; * y_new = yx * x + yy * y + y0; * + * + * Since: 1.0 **/ typedef struct _cairo_matrix { double xx; double yx; @@ -206,6 +214,8 @@ typedef struct _cairo_matrix { * * Memory management of #cairo_pattern_t is done with * cairo_pattern_reference() and cairo_pattern_destroy(). + * + * Since: 1.0 **/ typedef struct _cairo_pattern cairo_pattern_t; @@ -216,6 +226,8 @@ typedef struct _cairo_pattern cairo_pattern_t; * #cairo_destroy_func_t the type of function which is called when a * data element is destroyed. It is passed the pointer to the data * element and should free any memory and resources allocated for it. + * + * Since: 1.0 **/ typedef void (*cairo_destroy_func_t) (void *data); @@ -228,6 +240,8 @@ typedef void (*cairo_destroy_func_t) (void *data); * and there is no need to initialize the object; only the unique * address of a #cairo_data_key_t object is used. Typically, you * would just use the address of a static #cairo_data_key_t object. + * + * Since: 1.0 **/ typedef struct _cairo_user_data_key { int unused; @@ -235,26 +249,26 @@ typedef struct _cairo_user_data_key { /** * cairo_status_t: - * @CAIRO_STATUS_SUCCESS: no error has occurred - * @CAIRO_STATUS_NO_MEMORY: out of memory - * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching cairo_save() - * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() - * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined - * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) - * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t - * @CAIRO_STATUS_NULL_POINTER: %NULL pointer - * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 - * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid - * @CAIRO_STATUS_READ_ERROR: error while reading from input stream - * @CAIRO_STATUS_WRITE_ERROR: error while writing to output stream - * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished - * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate for the operation - * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate for the operation - * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input #cairo_content_t - * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input #cairo_format_t - * @CAIRO_STATUS_INVALID_VISUAL: invalid value for an input Visual* - * @CAIRO_STATUS_FILE_NOT_FOUND: file not found - * @CAIRO_STATUS_INVALID_DASH: invalid value for a dash setting + * @CAIRO_STATUS_SUCCESS: no error has occurred (Since 1.0) + * @CAIRO_STATUS_NO_MEMORY: out of memory (Since 1.0) + * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching cairo_save() (Since 1.0) + * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() (Since 1.0) + * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined (Since 1.0) + * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) (Since 1.0) + * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t (Since 1.0) + * @CAIRO_STATUS_NULL_POINTER: %NULL pointer (Since 1.0) + * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 (Since 1.0) + * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid (Since 1.0) + * @CAIRO_STATUS_READ_ERROR: error while reading from input stream (Since 1.0) + * @CAIRO_STATUS_WRITE_ERROR: error while writing to output stream (Since 1.0) + * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished (Since 1.0) + * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate for the operation (Since 1.0) + * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate for the operation (Since 1.0) + * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input #cairo_content_t (Since 1.0) + * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input #cairo_format_t (Since 1.0) + * @CAIRO_STATUS_INVALID_VISUAL: invalid value for an input Visual* (Since 1.0) + * @CAIRO_STATUS_FILE_NOT_FOUND: file not found (Since 1.0) + * @CAIRO_STATUS_INVALID_DASH: invalid value for a dash setting (Since 1.0) * @CAIRO_STATUS_INVALID_DSC_COMMENT: invalid value for a DSC comment (Since 1.2) * @CAIRO_STATUS_INVALID_INDEX: invalid index passed to getter (Since 1.4) * @CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: clip region not representable in desired format (Since 1.4) @@ -288,6 +302,8 @@ typedef struct _cairo_user_data_key { * * New entries may be added in future versions. Use cairo_status_to_string() * to get a human-readable representation of an error message. + * + * Since: 1.0 **/ typedef enum _cairo_status { CAIRO_STATUS_SUCCESS = 0, @@ -335,9 +351,9 @@ typedef enum _cairo_status { /** * cairo_content_t: - * @CAIRO_CONTENT_COLOR: The surface will hold color content only. - * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. - * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha content. + * @CAIRO_CONTENT_COLOR: The surface will hold color content only. (Since 1.0) + * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. (Since 1.0) + * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha content. (Since 1.0) * * #cairo_content_t is used to describe the content that a surface will * contain, whether color information, alpha information (translucence @@ -346,6 +362,8 @@ typedef enum _cairo_status { * Note: The large values here are designed to keep #cairo_content_t * values distinct from #cairo_format_t values so that the * implementation can detect the error if users confuse the two types. + * + * Since: 1.0 **/ typedef enum _cairo_content { CAIRO_CONTENT_COLOR = 0x1000, @@ -360,27 +378,29 @@ typedef enum _cairo_content { * alpha in the upper 8 bits, then red, then green, then blue. * The 32-bit quantities are stored native-endian. Pre-multiplied * alpha is used. (That is, 50% transparent red is 0x80800000, - * not 0x80ff0000.) + * not 0x80ff0000.) (Since 1.0) * @CAIRO_FORMAT_RGB24: each pixel is a 32-bit quantity, with * the upper 8 bits unused. Red, Green, and Blue are stored - * in the remaining 24 bits in that order. + * in the remaining 24 bits in that order. (Since 1.0) * @CAIRO_FORMAT_A8: each pixel is a 8-bit quantity holding - * an alpha value. + * an alpha value. (Since 1.0) * @CAIRO_FORMAT_A1: each pixel is a 1-bit quantity holding * an alpha value. Pixels are packed together into 32-bit * quantities. The ordering of the bits matches the * endianess of the platform. On a big-endian machine, the * first pixel is in the uppermost bit, on a little-endian - * machine the first pixel is in the least-significant bit. + * machine the first pixel is in the least-significant bit. (Since 1.0) * @CAIRO_FORMAT_RGB16_565: each pixel is a 16-bit quantity * with red in the upper 5 bits, then green in the middle - * 6 bits, and blue in the lower 5 bits. - * @CAIRO_FORMAT_RGB30: like RGB24 but with 10bpc + * 6 bits, and blue in the lower 5 bits. (Since 1.2) + * @CAIRO_FORMAT_RGB30: like RGB24 but with 10bpc. (Since 1.12) * * #cairo_format_t is used to identify the memory format of * image data. * * New entries may be added in future versions. + * + * Since: 1.0 **/ typedef enum _cairo_format { CAIRO_FORMAT_INVALID = -1, @@ -408,6 +428,8 @@ typedef enum _cairo_format { * %CAIRO_STATUS_WRITE_ERROR otherwise. * * Returns: the status code of the write operation + * + * Since: 1.0 **/ typedef cairo_status_t (*cairo_write_func_t) (void *closure, const unsigned char *data, @@ -428,6 +450,8 @@ typedef cairo_status_t (*cairo_write_func_t) (void *closure, * %CAIRO_STATUS_READ_ERROR otherwise. * * Returns: the status code of the read operation + * + * Since: 1.0 **/ typedef cairo_status_t (*cairo_read_func_t) (void *closure, unsigned char *data, @@ -496,64 +520,64 @@ cairo_pop_group_to_source (cairo_t *cr); /** * cairo_operator_t: - * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) - * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) + * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) (Since 1.0) + * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) (Since 1.0) * @CAIRO_OPERATOR_OVER: draw source layer on top of destination layer - * (bounded) + * (bounded) (Since 1.0) * @CAIRO_OPERATOR_IN: draw source where there was destination content - * (unbounded) + * (unbounded) (Since 1.0) * @CAIRO_OPERATOR_OUT: draw source where there was no destination - * content (unbounded) + * content (unbounded) (Since 1.0) * @CAIRO_OPERATOR_ATOP: draw source on top of destination content and - * only there - * @CAIRO_OPERATOR_DEST: ignore the source - * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source + * only there (Since 1.0) + * @CAIRO_OPERATOR_DEST: ignore the source (Since 1.0) + * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source (Since 1.0) * @CAIRO_OPERATOR_DEST_IN: leave destination only where there was - * source content (unbounded) + * source content (unbounded) (Since 1.0) * @CAIRO_OPERATOR_DEST_OUT: leave destination only where there was no - * source content + * source content (Since 1.0) * @CAIRO_OPERATOR_DEST_ATOP: leave destination on top of source content - * and only there (unbounded) + * and only there (unbounded) (Since 1.0) * @CAIRO_OPERATOR_XOR: source and destination are shown where there is only - * one of them - * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated + * one of them (Since 1.0) + * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated (Since 1.0) * @CAIRO_OPERATOR_SATURATE: like over, but assuming source and dest are - * disjoint geometries + * disjoint geometries (Since 1.0) * @CAIRO_OPERATOR_MULTIPLY: source and destination layers are multiplied. - * This causes the result to be at least as dark as the darker inputs. + * This causes the result to be at least as dark as the darker inputs. (Since 1.10) * @CAIRO_OPERATOR_SCREEN: source and destination are complemented and * multiplied. This causes the result to be at least as light as the lighter - * inputs. + * inputs. (Since 1.10) * @CAIRO_OPERATOR_OVERLAY: multiplies or screens, depending on the - * lightness of the destination color. + * lightness of the destination color. (Since 1.10) * @CAIRO_OPERATOR_DARKEN: replaces the destination with the source if it - * is darker, otherwise keeps the source. + * is darker, otherwise keeps the source. (Since 1.10) * @CAIRO_OPERATOR_LIGHTEN: replaces the destination with the source if it - * is lighter, otherwise keeps the source. + * is lighter, otherwise keeps the source. (Since 1.10) * @CAIRO_OPERATOR_COLOR_DODGE: brightens the destination color to reflect - * the source color. + * the source color. (Since 1.10) * @CAIRO_OPERATOR_COLOR_BURN: darkens the destination color to reflect - * the source color. + * the source color. (Since 1.10) * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependent on source - * color. + * color. (Since 1.10) * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependent on source - * color. + * color. (Since 1.10) * @CAIRO_OPERATOR_DIFFERENCE: Takes the difference of the source and - * destination color. + * destination color. (Since 1.10) * @CAIRO_OPERATOR_EXCLUSION: Produces an effect similar to difference, but - * with lower contrast. + * with lower contrast. (Since 1.10) * @CAIRO_OPERATOR_HSL_HUE: Creates a color with the hue of the source - * and the saturation and luminosity of the target. + * and the saturation and luminosity of the target. (Since 1.10) * @CAIRO_OPERATOR_HSL_SATURATION: Creates a color with the saturation * of the source and the hue and luminosity of the target. Painting with - * this mode onto a gray area produces no change. + * this mode onto a gray area produces no change. (Since 1.10) * @CAIRO_OPERATOR_HSL_COLOR: Creates a color with the hue and saturation * of the source and the luminosity of the target. This preserves the gray * levels of the target and is useful for coloring monochrome images or - * tinting color images. + * tinting color images. (Since 1.10) * @CAIRO_OPERATOR_HSL_LUMINOSITY: Creates a color with the luminosity of * the source and the hue and saturation of the target. This produces an - * inverse effect to @CAIRO_OPERATOR_HSL_COLOR. + * inverse effect to @CAIRO_OPERATOR_HSL_COLOR. (Since 1.10) * * #cairo_operator_t is used to set the compositing operator for all cairo * drawing operations. @@ -572,6 +596,8 @@ cairo_pop_group_to_source (cairo_t *cr); * For a more detailed explanation of the effects of each operator, including * the mathematical definitions, see * http://cairographics.org/operators/. + * + * Since: 1.0 **/ typedef enum _cairo_operator { CAIRO_OPERATOR_CLEAR, @@ -635,13 +661,19 @@ cairo_set_tolerance (cairo_t *cr, double tolerance); /** * cairo_antialias_t: * @CAIRO_ANTIALIAS_DEFAULT: Use the default antialiasing for - * the subsystem and target device - * @CAIRO_ANTIALIAS_NONE: Use a bilevel alpha mask + * the subsystem and target device, since 1.0 + * @CAIRO_ANTIALIAS_NONE: Use a bilevel alpha mask, since 1.0 * @CAIRO_ANTIALIAS_GRAY: Perform single-color antialiasing (using - * shades of gray for black text on a white background, for example). + * shades of gray for black text on a white background, for example), since 1.0 * @CAIRO_ANTIALIAS_SUBPIXEL: Perform antialiasing by taking * advantage of the order of subpixel elements on devices - * such as LCD panels + * such as LCD panels, since 1.0 + * @CAIRO_ANTIALIAS_FAST: Hint that the backend should perform some + * antialiasing but prefer speed over quality, since 1.12 + * @CAIRO_ANTIALIAS_GOOD: The backend should balance quality against + * performance, since 1.12 + * @CAIRO_ANTIALIAS_BEST: Hint that the backend should render at the highest + * quality, sacrificing speed if necessary, since 1.12 * * Specifies the type of antialiasing to do when rendering text or shapes. * @@ -660,6 +692,8 @@ cairo_set_tolerance (cairo_t *cr, double tolerance); * * The interpretation of @CAIRO_ANTIALIAS_DEFAULT is left entirely up to * the backend, typically this will be similar to @CAIRO_ANTIALIAS_GOOD. + * + * Since: 1.0 **/ typedef enum _cairo_antialias { CAIRO_ANTIALIAS_DEFAULT, @@ -684,11 +718,11 @@ cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); * left-to-right, counts +1. If the path crosses the ray * from right to left, counts -1. (Left and right are determined * from the perspective of looking along the ray from the starting - * point.) If the total count is non-zero, the point will be filled. + * point.) If the total count is non-zero, the point will be filled. (Since 1.0) * @CAIRO_FILL_RULE_EVEN_ODD: Counts the total number of * intersections, without regard to the orientation of the contour. If * the total number of intersections is odd, the point will be - * filled. + * filled. (Since 1.0) * * #cairo_fill_rule_t is used to select how paths are filled. For both * fill rules, whether or not a point is included in the fill is @@ -702,6 +736,8 @@ cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); * The default fill rule is %CAIRO_FILL_RULE_WINDING. * * New entries may be added in future versions. + * + * Since: 1.0 **/ typedef enum _cairo_fill_rule { CAIRO_FILL_RULE_WINDING, @@ -716,13 +752,15 @@ cairo_set_line_width (cairo_t *cr, double width); /** * cairo_line_cap_t: - * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) point - * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is the end point - * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is the end point + * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) point (Since 1.0) + * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is the end point (Since 1.0) + * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is the end point (Since 1.0) * * Specifies how to render the endpoints of the path when stroking. * * The default line cap style is %CAIRO_LINE_CAP_BUTT. + * + * Since: 1.0 **/ typedef enum _cairo_line_cap { CAIRO_LINE_CAP_BUTT, @@ -736,15 +774,17 @@ cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); /** * cairo_line_join_t: * @CAIRO_LINE_JOIN_MITER: use a sharp (angled) corner, see - * cairo_set_miter_limit() + * cairo_set_miter_limit() (Since 1.0) * @CAIRO_LINE_JOIN_ROUND: use a rounded join, the center of the circle is the - * joint point + * joint point (Since 1.0) * @CAIRO_LINE_JOIN_BEVEL: use a cut-off join, the join is cut off at half - * the line width from the joint point + * the line width from the joint point (Since 1.0) * * Specifies how to render the junction of two lines when stroking. * * The default line join style is %CAIRO_LINE_JOIN_MITER. + * + * Since: 1.0 **/ typedef enum _cairo_line_join { CAIRO_LINE_JOIN_MITER, @@ -957,7 +997,7 @@ typedef struct _cairo_rectangle { * @status: Error status of the rectangle list * @rectangles: Array containing the rectangles * @num_rectangles: Number of rectangles in this list - * + * * A data structure for holding a dynamically allocated * array of rectangles. * @@ -991,6 +1031,8 @@ cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); * * Memory management of #cairo_scaled_font_t is done with * cairo_scaled_font_reference() and cairo_scaled_font_destroy(). + * + * Since: 1.0 **/ typedef struct _cairo_scaled_font cairo_scaled_font_t; @@ -1010,6 +1052,8 @@ typedef struct _cairo_scaled_font cairo_scaled_font_t; * * Memory management of #cairo_font_face_t is done with * cairo_font_face_reference() and cairo_font_face_destroy(). + * + * Since: 1.0 **/ typedef struct _cairo_font_face cairo_font_face_t; @@ -1036,6 +1080,8 @@ typedef struct _cairo_font_face cairo_font_face_t; * Note that the offsets given by @x and @y are not cumulative. When * drawing or measuring text, each glyph is individually positioned * with respect to the overall origin + * + * Since: 1.0 **/ typedef struct { unsigned long index; @@ -1083,7 +1129,7 @@ cairo_text_cluster_free (cairo_text_cluster_t *clusters); /** * cairo_text_cluster_flags_t: * @CAIRO_TEXT_CLUSTER_FLAG_BACKWARD: The clusters in the cluster array - * map to glyphs in the glyph array from end to start. + * map to glyphs in the glyph array from end to start. (Since 1.8) * * Specifies properties of a text cluster mapping. * @@ -1119,6 +1165,8 @@ typedef enum _cairo_text_cluster_flags { * doubled. They will change slightly due to hinting (so you can't * assume that metrics are independent of the transformation matrix), * but otherwise will remain unchanged. + * + * Since: 1.0 **/ typedef struct { double x_bearing; @@ -1169,6 +1217,8 @@ typedef struct { * not be doubled. They will change slightly due to hinting (so you * can't assume that metrics are independent of the transformation * matrix), but otherwise will remain unchanged. + * + * Since: 1.0 **/ typedef struct { double ascent; @@ -1180,11 +1230,13 @@ typedef struct { /** * cairo_font_slant_t: - * @CAIRO_FONT_SLANT_NORMAL: Upright font style - * @CAIRO_FONT_SLANT_ITALIC: Italic font style - * @CAIRO_FONT_SLANT_OBLIQUE: Oblique font style + * @CAIRO_FONT_SLANT_NORMAL: Upright font style, since 1.0 + * @CAIRO_FONT_SLANT_ITALIC: Italic font style, since 1.0 + * @CAIRO_FONT_SLANT_OBLIQUE: Oblique font style, since 1.0 * * Specifies variants of a font face based on their slant. + * + * Since: 1.0 **/ typedef enum _cairo_font_slant { CAIRO_FONT_SLANT_NORMAL, @@ -1194,10 +1246,12 @@ typedef enum _cairo_font_slant { /** * cairo_font_weight_t: - * @CAIRO_FONT_WEIGHT_NORMAL: Normal font weight - * @CAIRO_FONT_WEIGHT_BOLD: Bold font weight + * @CAIRO_FONT_WEIGHT_NORMAL: Normal font weight, since 1.0 + * @CAIRO_FONT_WEIGHT_BOLD: Bold font weight, since 1.0 * * Specifies variants of a font face based on their weight. + * + * Since: 1.0 **/ typedef enum _cairo_font_weight { CAIRO_FONT_WEIGHT_NORMAL, @@ -1207,19 +1261,21 @@ typedef enum _cairo_font_weight { /** * cairo_subpixel_order_t: * @CAIRO_SUBPIXEL_ORDER_DEFAULT: Use the default subpixel order for - * for the target device + * for the target device, since 1.0 * @CAIRO_SUBPIXEL_ORDER_RGB: Subpixel elements are arranged horizontally - * with red at the left + * with red at the left, since 1.0 * @CAIRO_SUBPIXEL_ORDER_BGR: Subpixel elements are arranged horizontally - * with blue at the left + * with blue at the left, since 1.0 * @CAIRO_SUBPIXEL_ORDER_VRGB: Subpixel elements are arranged vertically - * with red at the top + * with red at the top, since 1.0 * @CAIRO_SUBPIXEL_ORDER_VBGR: Subpixel elements are arranged vertically - * with blue at the top + * with blue at the top, since 1.0 * * The subpixel order specifies the order of color elements within * each pixel on the display device when rendering with an * antialiasing mode of %CAIRO_ANTIALIAS_SUBPIXEL. + * + * Since: 1.0 **/ typedef enum _cairo_subpixel_order { CAIRO_SUBPIXEL_ORDER_DEFAULT, @@ -1232,15 +1288,15 @@ typedef enum _cairo_subpixel_order { /** * cairo_hint_style_t: * @CAIRO_HINT_STYLE_DEFAULT: Use the default hint style for - * font backend and target device - * @CAIRO_HINT_STYLE_NONE: Do not hint outlines + * font backend and target device, since 1.0 + * @CAIRO_HINT_STYLE_NONE: Do not hint outlines, since 1.0 * @CAIRO_HINT_STYLE_SLIGHT: Hint outlines slightly to improve * contrast while retaining good fidelity to the original - * shapes. + * shapes, since 1.0 * @CAIRO_HINT_STYLE_MEDIUM: Hint outlines with medium strength * giving a compromise between fidelity to the original shapes - * and contrast - * @CAIRO_HINT_STYLE_FULL: Hint outlines to maximize contrast + * and contrast, since 1.0 + * @CAIRO_HINT_STYLE_FULL: Hint outlines to maximize contrast, since 1.0 * * Specifies the type of hinting to do on font outlines. Hinting * is the process of fitting outlines to the pixel grid in order @@ -1250,6 +1306,8 @@ typedef enum _cairo_subpixel_order { * styles are supported by all font backends. * * New entries may be added in future versions. + * + * Since: 1.0 **/ typedef enum _cairo_hint_style { CAIRO_HINT_STYLE_DEFAULT, @@ -1262,15 +1320,17 @@ typedef enum _cairo_hint_style { /** * cairo_hint_metrics_t: * @CAIRO_HINT_METRICS_DEFAULT: Hint metrics in the default - * manner for the font backend and target device - * @CAIRO_HINT_METRICS_OFF: Do not hint font metrics - * @CAIRO_HINT_METRICS_ON: Hint font metrics + * manner for the font backend and target device, since 1.0 + * @CAIRO_HINT_METRICS_OFF: Do not hint font metrics, since 1.0 + * @CAIRO_HINT_METRICS_ON: Hint font metrics, since 1.0 * * Specifies whether to hint font metrics; hinting font metrics * means quantizing them so that they are integer values in * device space. Doing this improves the consistency of * letter and line spacing, however it also means that text * will be laid out differently at different zoom factors. + * + * Since: 1.0 **/ typedef enum _cairo_hint_metrics { CAIRO_HINT_METRICS_DEFAULT, @@ -1297,6 +1357,8 @@ typedef enum _cairo_hint_metrics { * cairo_font_options_hash() should be used to copy, check * for equality, merge, or compute a hash value of * #cairo_font_options_t objects. + * + * Since: 1.0 **/ typedef struct _cairo_font_options cairo_font_options_t; @@ -1441,10 +1503,11 @@ cairo_font_face_status (cairo_font_face_t *font_face); /** * cairo_font_type_t: - * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api - * @CAIRO_FONT_TYPE_FT: The font is of type FreeType - * @CAIRO_FONT_TYPE_WIN32: The font is of type Win32 - * @CAIRO_FONT_TYPE_QUARTZ: The font is of type Quartz (Since: 1.6) + * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api (Since: 1.2) + * @CAIRO_FONT_TYPE_FT: The font is of type FreeType (Since: 1.2) + * @CAIRO_FONT_TYPE_WIN32: The font is of type Win32 (Since: 1.2) + * @CAIRO_FONT_TYPE_QUARTZ: The font is of type Quartz (Since: 1.6, in 1.2 and + * 1.4 it was named CAIRO_FONT_TYPE_ATSUI) * @CAIRO_FONT_TYPE_USER: The font was create using cairo's user font api (Since: 1.8) * * #cairo_font_type_t is used to describe the type of a given font @@ -1887,14 +1950,16 @@ cairo_get_group_target (cairo_t *cr); /** * cairo_path_data_type_t: - * @CAIRO_PATH_MOVE_TO: A move-to operation - * @CAIRO_PATH_LINE_TO: A line-to operation - * @CAIRO_PATH_CURVE_TO: A curve-to operation - * @CAIRO_PATH_CLOSE_PATH: A close-path operation + * @CAIRO_PATH_MOVE_TO: A move-to operation, since 1.0 + * @CAIRO_PATH_LINE_TO: A line-to operation, since 1.0 + * @CAIRO_PATH_CURVE_TO: A curve-to operation, since 1.0 + * @CAIRO_PATH_CLOSE_PATH: A close-path operation, since 1.0 * * #cairo_path_data_t is used to describe the type of one portion * of a path when represented as a #cairo_path_t. * See #cairo_path_data_t for details. + * + * Since: 1.0 **/ typedef enum _cairo_path_data_type { CAIRO_PATH_MOVE_TO, @@ -1968,6 +2033,8 @@ typedef enum _cairo_path_data_type { * always use data->header.length to * iterate over the path data, instead of hardcoding the number of * elements for each element type. + * + * Since: 1.0 **/ typedef union _cairo_path_data_t cairo_path_data_t; union _cairo_path_data_t { @@ -1998,6 +2065,8 @@ union _cairo_path_data_t { * array. This number is larger than the number of independent path * portions (defined in #cairo_path_data_type_t), since the data * includes both headers and coordinates for each portion. + * + * Since: 1.0 **/ typedef struct cairo_path { cairo_status_t status; @@ -2033,14 +2102,15 @@ cairo_device_reference (cairo_device_t *device); /** * cairo_device_type_t: - * @CAIRO_DEVICE_TYPE_INVALID: The device is not valid - * @CAIRO_DEVICE_TYPE_DRM: The device is of type Direct Render Manager - * @CAIRO_DEVICE_TYPE_GL: The device is of type OpenGL - * @CAIRO_DEVICE_TYPE_SCRIPT: The device is of type script - * @CAIRO_DEVICE_TYPE_XCB: The device is of type xcb - * @CAIRO_DEVICE_TYPE_XLIB: The device is of type xlib - * @CAIRO_DEVICE_TYPE_XML: The device is of type XML - * @CAIRO_DEVICE_TYPE_INVALID: The device is invalid + * @CAIRO_DEVICE_TYPE_DRM: The device is of type Direct Render Manager, since 1.10 + * @CAIRO_DEVICE_TYPE_GL: The device is of type OpenGL, since 1.10 + * @CAIRO_DEVICE_TYPE_SCRIPT: The device is of type script, since 1.10 + * @CAIRO_DEVICE_TYPE_XCB: The device is of type xcb, since 1.10 + * @CAIRO_DEVICE_TYPE_XLIB: The device is of type xlib, since 1.10 + * @CAIRO_DEVICE_TYPE_XML: The device is of type XML, since 1.10 + * @CAIRO_DEVICE_TYPE_COGL: The device is of type cogl, since 1.12 + * @CAIRO_DEVICE_TYPE_WIN32: The device is of type win32, since 1.12 + * @CAIRO_DEVICE_TYPE_INVALID: The device is invalid, since 1.10 * * #cairo_device_type_t is used to describe the type of a given * device. The devices types are also known as "backends" within cairo. @@ -2068,6 +2138,8 @@ typedef enum _cairo_device_type { CAIRO_DEVICE_TYPE_XCB, CAIRO_DEVICE_TYPE_XLIB, CAIRO_DEVICE_TYPE_XML, + CAIRO_DEVICE_TYPE_COGL, + CAIRO_DEVICE_TYPE_WIN32, CAIRO_DEVICE_TYPE_INVALID = -1 } cairo_device_type_t; @@ -2138,7 +2210,7 @@ cairo_surface_create_for_rectangle (cairo_surface_t *target, typedef enum { CAIRO_SURFACE_OBSERVER_NORMAL = 0, - CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS = 0x1, + CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS = 0x1 } cairo_surface_observer_mode_t; cairo_public cairo_surface_t * @@ -2184,14 +2256,14 @@ cairo_surface_observer_add_finish_callback (cairo_surface_t *abstract_surface, cairo_surface_observer_callback_t func, void *data); -cairo_public void +cairo_public cairo_status_t cairo_surface_observer_print (cairo_surface_t *surface, cairo_write_func_t write_func, void *closure); cairo_public double cairo_surface_observer_elapsed (cairo_surface_t *surface); -cairo_public void +cairo_public cairo_status_t cairo_device_observer_print (cairo_device_t *device, cairo_write_func_t write_func, void *closure); @@ -2234,20 +2306,20 @@ cairo_surface_status (cairo_surface_t *surface); /** * cairo_surface_type_t: - * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image - * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf - * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps - * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib - * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb - * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz - * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz - * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32 - * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos - * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb - * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg - * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2 - * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surface - * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image + * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image, since 1.2 + * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf, since 1.2 + * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps, since 1.2 + * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib, since 1.2 + * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb, since 1.2 + * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz, since 1.2 + * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz, since 1.2 + * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32, since 1.2 + * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos, since 1.2 + * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb, since 1.2 + * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg, since 1.2 + * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2, since 1.4 + * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surface, since 1.6 + * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image, since 1.6 * @CAIRO_SURFACE_TYPE_SCRIPT: The surface is of type script, since 1.10 * @CAIRO_SURFACE_TYPE_QT: The surface is of type Qt, since 1.10 * @CAIRO_SURFACE_TYPE_RECORDING: The surface is of type recording, since 1.10 @@ -2259,7 +2331,7 @@ cairo_surface_status (cairo_surface_t *surface); * @CAIRO_SURFACE_TYPE_SKIA: The surface is of type Skia, since 1.10 * @CAIRO_SURFACE_TYPE_SUBSURFACE: The surface is a subsurface created with * cairo_surface_create_for_rectangle(), since 1.10 - * @CAIRO_SURFACE_TYPE_MIME: The surface is a callback (mime) surface, since 1.12 + * @CAIRO_SURFACE_TYPE_COGL: This surface is of type Cogl, since 1.12 * * #cairo_surface_type_t is used to describe the type of a given * surface. The surface types are also known as "backends" or "surface @@ -2310,7 +2382,7 @@ typedef enum _cairo_surface_type { CAIRO_SURFACE_TYPE_XML, CAIRO_SURFACE_TYPE_SKIA, CAIRO_SURFACE_TYPE_SUBSURFACE, - CAIRO_SURFACE_TYPE_MIME + CAIRO_SURFACE_TYPE_COGL } cairo_surface_type_t; cairo_public cairo_surface_type_t @@ -2362,6 +2434,10 @@ cairo_surface_set_mime_data (cairo_surface_t *surface, cairo_destroy_func_t destroy, void *closure); +cairo_public cairo_bool_t +cairo_surface_supports_mime_type (cairo_surface_t *surface, + const char *mime_type); + cairo_public void cairo_surface_get_font_options (cairo_surface_t *surface, cairo_font_options_t *options); @@ -2469,55 +2545,150 @@ cairo_public cairo_bool_t cairo_recording_surface_get_extents (cairo_surface_t *surface, cairo_rectangle_t *extents); -/* Mime-surface (callback) functions */ +/* raster-source pattern (callback) functions */ -typedef cairo_surface_t *(*cairo_mime_surface_acquire_t) (cairo_surface_t *mime_surface, - void *callback_data, - cairo_surface_t *target, - const cairo_rectangle_int_t *sample_extents, - cairo_rectangle_int_t *surface_extents); +/** + * cairo_raster_source_acquire_func_t: + * @pattern: the pattern being rendered from + * @callback_data: the user data supplied during creation + * @target: the rendering target surface + * @extents: rectangular region of interest in pixels in sample space + * + * #cairo_raster_source_acquire_func_t is the type of function which is + * called when a pattern is being rendered from. It should create a surface + * that provides the pixel data for the region of interest as defined by + * extents, though the surface itself does not have to be limited to that + * area. For convenience the surface should probably be of image type, + * created with cairo_surface_create_similar_image() for the target (which + * enables the number of copies to be reduced during transfer to the + * device). Another option, might be to return a similar surface to the + * target for explicit handling by the application of a set of cached sources + * on the device. The region of sample data provided should be defined using + * cairo_surface_set_device_offset() to specify the top-left corner of the + * sample data (along with width and height of the surface). + * + * Returns: a #cairo_surface_t + * + * Since: 1.12 + **/ +typedef cairo_surface_t * +(*cairo_raster_source_acquire_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents); -typedef void (*cairo_mime_surface_release_t) (cairo_surface_t *mime_surface, - void *callback_data, - cairo_surface_t *image_surface); +/** + * cairo_raster_source_release_func_t: + * @pattern: the pattern being rendered from + * @callback_data: the user data supplied during creation + * @surface: the surface created during acquire + * + * #cairo_raster_source_release_func_t is the type of function which is + * called when the pixel data is no longer being access by the pattern + * for the rendering operation. Typically this function will simply + * destroy the surface created during acquire. + * + * Since: 1.12 + **/ +typedef void +(*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *surface); -typedef cairo_surface_t *(*cairo_mime_surface_snapshot_t) (cairo_surface_t *mime_surface, - void *callback_data); -typedef void (*cairo_mime_surface_destroy_t) (cairo_surface_t *mime_surface, - void *callback_data); +/** + * cairo_raster_source_snapshot_func_t: + * @pattern: the pattern being rendered from + * @callback_data: the user data supplied during creation + * + * #cairo_raster_source_snapshot_func_t is the type of function which is + * called when the pixel data needs to be preserved for later use + * during printing. This pattern will be accessed again later, and it + * is expected to provide the pixel data that was current at the time + * of snapshotting. + * + * Return value: CAIRO_STATUS_SUCCESS on success, or one of the + * #cairo_status_t error codes for failure. + * + * Since: 1.12 + **/ +typedef cairo_status_t +(*cairo_raster_source_snapshot_func_t) (cairo_pattern_t *pattern, + void *callback_data); -cairo_public cairo_surface_t * -cairo_mime_surface_create (void *data, cairo_content_t content, int width, int height); +/** + * cairo_raster_source_copy_func_t: + * @pattern: the #cairo_pattern_t that was copied to + * @callback_data: the user data supplied during creation + * @other: the #cairo_pattern_t being used as the source for the copy + * + * #cairo_raster_source_copy_func_t is the type of function which is + * called when the pattern gets copied as a normal part of rendering. + * + * Return value: CAIRO_STATUS_SUCCESS on success, or one of the + * #cairo_status_t error codes for failure. + * + * Since: 1.12 + **/ +typedef cairo_status_t +(*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern, + void *callback_data, + const cairo_pattern_t *other); + +/** + * cairo_raster_source_finish_func_t: + * @pattern: the pattern being rendered from + * @callback_data: the user data supplied during creation + * + * #cairo_raster_source_finish_func_t is the type of function which is + * called when the pattern (or a copy thereof) is no longer required. + * + * Since: 1.12 + **/ +typedef void +(*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern, + void *callback_data); + +cairo_public cairo_pattern_t * +cairo_pattern_create_raster_source (void *user_data, + cairo_content_t content, + int width, int height); cairo_public void -cairo_mime_surface_set_callback_data (cairo_surface_t *surface, - void *data); +cairo_raster_source_pattern_set_callback_data (cairo_pattern_t *pattern, + void *data); cairo_public void * -cairo_mime_surface_get_callback_data (cairo_surface_t *surface); +cairo_raster_source_pattern_get_callback_data (cairo_pattern_t *pattern); cairo_public void -cairo_mime_surface_set_acquire (cairo_surface_t *surface, - cairo_mime_surface_acquire_t acquire, - cairo_mime_surface_release_t release); +cairo_raster_source_pattern_set_acquire (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t acquire, + cairo_raster_source_release_func_t release); cairo_public void -cairo_mime_surface_get_acquire (cairo_surface_t *surface, - cairo_mime_surface_acquire_t *acquire, - cairo_mime_surface_release_t *release); +cairo_raster_source_pattern_get_acquire (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t *acquire, + cairo_raster_source_release_func_t *release); cairo_public void -cairo_mime_surface_set_snapshot (cairo_surface_t *surface, - cairo_mime_surface_snapshot_t snapshot); +cairo_raster_source_pattern_set_snapshot (cairo_pattern_t *pattern, + cairo_raster_source_snapshot_func_t snapshot); -cairo_public cairo_mime_surface_snapshot_t -cairo_mime_surface_get_snapshot (cairo_surface_t *surface); +cairo_public cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot (cairo_pattern_t *pattern); cairo_public void -cairo_mime_surface_set_destroy (cairo_surface_t *surface, - cairo_mime_surface_destroy_t destroy); +cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern, + cairo_raster_source_copy_func_t copy); -cairo_public cairo_mime_surface_destroy_t -cairo_mime_surface_get_destroy (cairo_surface_t *surface); +cairo_public cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern); + +cairo_public void +cairo_raster_source_pattern_set_finish (cairo_pattern_t *pattern, + cairo_raster_source_finish_func_t finish); + +cairo_public cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish (cairo_pattern_t *pattern); /* Pattern creation functions */ @@ -2567,11 +2738,12 @@ cairo_pattern_set_user_data (cairo_pattern_t *pattern, /** * cairo_pattern_type_t: * @CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform) - * color. It may be opaque or translucent. - * @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an image). - * @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient. - * @CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient. - * @CAIRO_PATTERN_TYPE_MESH: The pattern is a mesh. + * color. It may be opaque or translucent, since 1.2. + * @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an image), since 1.2. + * @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient, since 1.2. + * @CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient, since 1.2. + * @CAIRO_PATTERN_TYPE_MESH: The pattern is a mesh, since 1.12. + * @CAIRO_PATTERN_TYPE_RASTER_SOURCE: The pattern is a user pattern providing raster data, since 1.12. * * #cairo_pattern_type_t is used to describe the type of a given pattern. * @@ -2600,7 +2772,8 @@ typedef enum _cairo_pattern_type { CAIRO_PATTERN_TYPE_SURFACE, CAIRO_PATTERN_TYPE_LINEAR, CAIRO_PATTERN_TYPE_RADIAL, - CAIRO_PATTERN_TYPE_MESH + CAIRO_PATTERN_TYPE_MESH, + CAIRO_PATTERN_TYPE_RASTER_SOURCE } cairo_pattern_type_t; cairo_public cairo_pattern_type_t @@ -2664,10 +2837,10 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern, /** * cairo_extend_t: * @CAIRO_EXTEND_NONE: pixels outside of the source pattern - * are fully transparent - * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating + * are fully transparent (Since 1.0) + * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating (Since 1.0) * @CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting - * at the edges (Implemented for surface patterns since 1.6) + * at the edges (Since 1.0; but only implemented for surface patterns since 1.6) * @CAIRO_EXTEND_PAD: pixels outside of the pattern copy * the closest pixel from the source (Since 1.2; but only * implemented for surface patterns since 1.6) @@ -2683,6 +2856,8 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern, * and %CAIRO_EXTEND_PAD for gradient patterns. * * New entries may be added in future versions. + * + * Since: 1.0 **/ typedef enum _cairo_extend { CAIRO_EXTEND_NONE, @@ -2700,21 +2875,23 @@ cairo_pattern_get_extend (cairo_pattern_t *pattern); /** * cairo_filter_t: * @CAIRO_FILTER_FAST: A high-performance filter, with quality similar - * to %CAIRO_FILTER_NEAREST + * to %CAIRO_FILTER_NEAREST (Since 1.0) * @CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality - * similar to %CAIRO_FILTER_BILINEAR + * similar to %CAIRO_FILTER_BILINEAR (Since 1.0) * @CAIRO_FILTER_BEST: The highest-quality available, performance may - * not be suitable for interactive use. - * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering - * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions + * not be suitable for interactive use. (Since 1.0) + * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering (Since 1.0) + * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions (Since 1.0) * @CAIRO_FILTER_GAUSSIAN: This filter value is currently - * unimplemented, and should not be used in current code. + * unimplemented, and should not be used in current code. (Since 1.0) * * #cairo_filter_t is used to indicate what filtering should be * applied when reading pixel values from patterns. See * cairo_pattern_set_filter() for indicating the desired filter to be * used with a particular pattern. - */ + * + * Since: 1.0 + **/ typedef enum _cairo_filter { CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, @@ -2934,13 +3111,6 @@ cairo_region_xor_rectangle (cairo_region_t *dst, cairo_public void cairo_debug_reset_static_data (void); -/* TIZEN code modification */ -#ifndef TIZEN_ENABLE_FEATURE -#define TIZEN_ENABLE_FEATURE -#endif - -#ifdef TIZEN_ENABLE_FEATURE -#endif /* TIZEN_ENABLE_FEATURE */ CAIRO_END_DECLS diff --git a/src/cairoint.h b/src/cairoint.h index 7121d09..e23f575 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -73,7 +73,10 @@ #include "cairo-compiler-private.h" #include "cairo-error-private.h" -#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_SCRIPT_SURFACE || CAIRO_HAS_XML_SURFACE +#if CAIRO_HAS_PDF_SURFACE || \ + CAIRO_HAS_PS_SURFACE || \ + CAIRO_HAS_SCRIPT_SURFACE || \ + CAIRO_HAS_XML_SURFACE #define CAIRO_HAS_DEFLATE_STREAM 1 #endif @@ -84,7 +87,9 @@ #define CAIRO_HAS_FONT_SUBSET 1 #endif -#if CAIRO_HAS_PS_SURFACE || CAIRO_HAS_PDF_SURFACE || CAIRO_HAS_FONT_SUBSET +#if CAIRO_HAS_PS_SURFACE || \ + CAIRO_HAS_PDF_SURFACE || \ + CAIRO_HAS_FONT_SUBSET #define CAIRO_HAS_PDF_OPERATORS 1 #endif @@ -310,6 +315,16 @@ _cairo_rectangle_intersects (const cairo_rectangle_int_t *dst, src->y + (int) src->height <= dst->y); } +static inline cairo_bool_t +_cairo_rectangle_contains_rectangle (const cairo_rectangle_int_t *a, + const cairo_rectangle_int_t *b) +{ + return (a->x <= b->x && + a->x + (int) a->width >= b->x + (int) b->width && + a->y <= b->y && + a->y + (int) a->height >= b->y + (int) b->height); +} + cairo_private void _cairo_rectangle_int_from_double (cairo_rectangle_int_t *recti, const cairo_rectangle_t *rectf); @@ -401,6 +416,11 @@ _cairo_ft_font_reset_static_data (void); cairo_private void _cairo_win32_font_reset_static_data (void); +#if CAIRO_HAS_COGL_SURFACE +void +_cairo_cogl_context_reset_static_data (void); +#endif + /* the font backend interface */ struct _cairo_unscaled_font_backend { @@ -1026,6 +1046,12 @@ _cairo_path_fixed_fill_to_traps (const cairo_path_fixed_t *path, double tolerance, cairo_traps_t *traps); +cairo_private cairo_status_t +_cairo_path_fixed_fill_rectilinear_to_traps (const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + cairo_antialias_t antialias, + cairo_traps_t *traps); + /* cairo-path-stroke.c */ cairo_private cairo_status_t _cairo_path_fixed_stroke_to_polygon (const cairo_path_fixed_t *path, @@ -1369,6 +1395,9 @@ _cairo_surface_has_snapshot (cairo_surface_t *surface, cairo_private void _cairo_surface_detach_snapshot (cairo_surface_t *snapshot); +cairo_private void +_cairo_surface_begin_modification (cairo_surface_t *surface); + cairo_private_no_warn cairo_bool_t _cairo_surface_get_extents (cairo_surface_t *surface, cairo_rectangle_int_t *extents); @@ -1639,11 +1668,26 @@ cairo_private cairo_status_t _cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix, double *sx, double *sy, int x_major); -cairo_private cairo_bool_t -_cairo_matrix_is_identity (const cairo_matrix_t *matrix) cairo_pure; +static inline cairo_bool_t +_cairo_matrix_is_identity (const cairo_matrix_t *matrix) +{ + return (matrix->xx == 1.0 && matrix->yx == 0.0 && + matrix->xy == 0.0 && matrix->yy == 1.0 && + matrix->x0 == 0.0 && matrix->y0 == 0.0); +} -cairo_private cairo_bool_t -_cairo_matrix_is_translation (const cairo_matrix_t *matrix) cairo_pure; +static inline cairo_bool_t +_cairo_matrix_is_translation (const cairo_matrix_t *matrix) +{ + return (matrix->xx == 1.0 && matrix->yx == 0.0 && + matrix->xy == 0.0 && matrix->yy == 1.0); +} + +static inline cairo_bool_t +_cairo_matrix_is_scale (const cairo_matrix_t *matrix) +{ + return matrix->yx == 0.0 && matrix->xy == 0.0; +} cairo_private cairo_bool_t _cairo_matrix_is_integer_translation(const cairo_matrix_t *matrix, @@ -1753,6 +1797,11 @@ _cairo_utf8_to_utf16 (const char *str, int *items_written); #endif +cairo_private void +_cairo_matrix_multiply (cairo_matrix_t *r, + const cairo_matrix_t *a, + const cairo_matrix_t *b); + /* cairo-observer.c */ cairo_private void @@ -1880,6 +1929,7 @@ slim_hidden_proto (cairo_surface_set_fallback_resolution); slim_hidden_proto (cairo_surface_set_mime_data); slim_hidden_proto (cairo_surface_show_page); slim_hidden_proto (cairo_surface_status); +slim_hidden_proto (cairo_surface_supports_mime_type); slim_hidden_proto (cairo_surface_unmap_image); slim_hidden_proto (cairo_text_cluster_allocate); slim_hidden_proto (cairo_text_cluster_free); @@ -1960,6 +2010,17 @@ cairo_private void _cairo_debug_print_polygon (FILE *stream, cairo_polygon_t *polygon); cairo_private void +_cairo_debug_print_traps (FILE *file, const cairo_traps_t *traps); + +cairo_private void _cairo_debug_print_clip (FILE *stream, const cairo_clip_t *clip); +#if 0 +#define TRACE(x) fprintf x +#define TRACE_(x) x +#else +#define TRACE(x) +#define TRACE_(x) +#endif + #endif diff --git a/src/check-doc-syntax.awk b/src/check-doc-syntax.awk new file mode 100755 index 0000000..5fdabda --- /dev/null +++ b/src/check-doc-syntax.awk @@ -0,0 +1,108 @@ +#!/usr/bin/awk -f + +BEGIN { + name_found = 1 + SECTION_DOC = 0 + PUBLIC_DOC = 1 + PRIVATE_DOC = 2 +} + +function log_msg(severity, msg) +{ + printf "%s (%d): %s: %s %s\n", FILENAME, FNR, severity, doc_name, msg +} + +function log_error(msg) +{ + log_msg("ERROR", msg) +} + +function log_warning(msg) +{ + log_msg("WARNING", msg) +} + +/^\/\*\*$/ { + in_doc = 1 + doc_line = 0 +} + +/^(\/\*\*$| \*[ \t]| \*$| \*\*\/$)/ { + valid_doc = 1 +} + +in_doc { + if (!valid_doc) + log_error("bad line: '" $0 "'") + valid_doc = 0 + + doc_line++ + if (doc_line == 2) { + # new doc name. Did we find the previous one? + # (macros are not expected to be found in the same place as + # their documentation) + if (!name_found && doc_name !~ /CAIRO_/) + log_warning("not found") + doc_name = $2 + if (doc_name ~ /^SECTION:.*$/) { + doc_type = SECTION_DOC + name_found = 1 + } else if (tolower(doc_name) ~ /^cairo_[a-z0-9_]*:$/) { + doc_type = PUBLIC_DOC + name_found = 0 + real_name = substr(doc_name, 1, length(doc_name) - 1) + } else if (tolower(doc_name) ~ /^_[a-z0-9_]*:$/) { + doc_type = PRIVATE_DOC + name_found = 0 + real_name = substr(doc_name, 1, length(doc_name) - 1) + } else { + log_error("invalid doc id (should be 'cairo_...:')") + name_found = 1 + } + } +} + +!in_doc { + regex = "(^|[ \\t\\*])" real_name "([ ;()]|$)" + if ($0 ~ regex) + name_found = 1 +} + +/^ \* Since: ([0-9]*.[0-9]*|TBD)$/ { + if (doc_has_since != 0) { + log_error("Duplicate 'Since' field") + } + doc_has_since = doc_line +} + +/^ \*\*\// { + if (doc_type == PUBLIC_DOC) { + if (!doc_has_since) { + # private types can start with cairo_ + if (doc_name ~ /^cairo_.*_t:$/) + log_warning("missing 'Since' field (is it a private type?)") + else + log_error("missing 'Since' field") + } else if (doc_has_since != doc_line - 1) + log_warning("misplaced 'Since' field (should be right before the end of the comment)") + } else { + if (doc_has_since) + log_warning("'Since' field in non-public element") + } + + in_doc = 0 + doc_has_since = 0 + doc_type = 0 +} + +/\*\// { + if (in_doc) { + in_doc = 0 + log_error("documentation comment not closed with **/") + } +} + +END { + if (!name_found) + log_warning("not found") +} diff --git a/src/check-doc-syntax.sh b/src/check-doc-syntax.sh index 8390e5e..c74fb87 100755 --- a/src/check-doc-syntax.sh +++ b/src/check-doc-syntax.sh @@ -70,4 +70,13 @@ if echo $FILES | xargs grep "$note_regexp" /dev/null; then echo Be civil and replace it by 'Note' please. fi >&2 +# Only run the syntax checker on the source files (not doc/) +if test -e ./check-doc-syntax.awk; then + if echo $FILES | xargs ./check-doc-syntax.awk ; then + : + else + stat=1 + fi >&2 +fi + exit $stat diff --git a/src/drm/cairo-drm-gallium-surface.c b/src/drm/cairo-drm-gallium-surface.c index b489753..aa3f45e 100644 --- a/src/drm/cairo-drm-gallium-surface.c +++ b/src/drm/cairo-drm-gallium-surface.c @@ -468,6 +468,7 @@ static const cairo_surface_backend_t gallium_surface_backend = { gallium_surface_create_similar, gallium_surface_finish, + NULL, gallium_surface_acquire_source_image, gallium_surface_release_source_image, diff --git a/src/drm/cairo-drm-i915-private.h b/src/drm/cairo-drm-i915-private.h index 1581cab..8b2e422 100644 --- a/src/drm/cairo-drm-i915-private.h +++ b/src/drm/cairo-drm-i915-private.h @@ -343,7 +343,7 @@ enum i915_fs_channel { (z##_CHANNEL_VAL << Z_CHANNEL_SHIFT) | \ (w##_CHANNEL_VAL << W_CHANNEL_SHIFT) -/** +/* * Construct an operand description for using a register with no swizzling */ #define i915_fs_operand_reg(reg) \ @@ -352,17 +352,17 @@ enum i915_fs_channel { #define i915_fs_operand_reg_negate(reg) \ i915_fs_operand(reg, NEG_X, NEG_Y, NEG_Z, NEG_W) -/** +/* * Returns an operand containing (0.0, 0.0, 0.0, 0.0). */ #define i915_fs_operand_zero() i915_fs_operand(FS_R0, ZERO, ZERO, ZERO, ZERO) -/** +/* * Returns an unused operand */ #define i915_fs_operand_none() i915_fs_operand_zero() -/** +/* * Returns an operand containing (1.0, 1.0, 1.0, 1.0). */ #define i915_fs_operand_one() i915_fs_operand(FS_R0, ONE, ONE, ONE, ONE) @@ -370,7 +370,7 @@ enum i915_fs_channel { #define i915_get_hardware_channel_val(val, shift, negate) \ (((val & 0x7) << shift) | ((val & 0x8) ? negate : 0)) -/** +/* * Outputs a fragment shader command to declare a sampler or texture register. */ #define i915_fs_dcl(reg) \ @@ -527,19 +527,19 @@ do { \ i915_fs_operand_none(), \ i915_fs_operand_none()) -/** Add operand0 and operand1 and put the result in dest_reg */ +/* Add operand0 and operand1 and put the result in dest_reg */ #define i915_fs_add(dest_reg, operand0, operand1) \ i915_fs_arith (ADD, dest_reg, \ operand0, operand1, \ i915_fs_operand_none()) -/** Multiply operand0 and operand1 and put the result in dest_reg */ +/* Multiply operand0 and operand1 and put the result in dest_reg */ #define i915_fs_mul(dest_reg, operand0, operand1) \ i915_fs_arith (MUL, dest_reg, \ operand0, operand1, \ i915_fs_operand_none()) -/** Computes 1/sqrt(operand0.replicate_swizzle) puts the result in dest_reg */ +/* Computes 1/sqrt(operand0.replicate_swizzle) puts the result in dest_reg */ #define i915_fs_rsq(dest_reg, dest_mask, operand0) \ do { \ if (dest_mask) { \ @@ -555,13 +555,13 @@ do { \ } \ } while (0) -/** Puts the minimum of operand0 and operand1 in dest_reg */ +/* Puts the minimum of operand0 and operand1 in dest_reg */ #define i915_fs_min(dest_reg, operand0, operand1) \ i915_fs_arith (MIN, dest_reg, \ operand0, operand1, \ i915_fs_operand_none()) -/** Puts the maximum of operand0 and operand1 in dest_reg */ +/* Puts the maximum of operand0 and operand1 in dest_reg */ #define i915_fs_max(dest_reg, operand0, operand1) \ i915_fs_arith (MAX, dest_reg, \ operand0, operand1, \ @@ -570,7 +570,7 @@ do { \ #define i915_fs_cmp(dest_reg, operand0, operand1, operand2) \ i915_fs_arith (CMP, dest_reg, operand0, operand1, operand2) -/** Perform operand0 * operand1 + operand2 and put the result in dest_reg */ +/* Perform operand0 * operand1 + operand2 and put the result in dest_reg */ #define i915_fs_mad(dest_reg, dest_mask, op0, op1, op2) \ do { \ if (dest_mask) { \ @@ -589,7 +589,7 @@ do { \ } \ } while (0) -/** +/* * Perform a 3-component dot-product of operand0 and operand1 and put the * resulting scalar in the channels of dest_reg specified by the dest_mask. */ diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c index 2a55889..0200121 100644 --- a/src/drm/cairo-drm-i915-surface.c +++ b/src/drm/cairo-drm-i915-surface.c @@ -2343,6 +2343,8 @@ static const cairo_surface_backend_t i915_surface_backend = { i915_surface_create_similar, i915_surface_finish, + + NULL, intel_surface_acquire_source_image, intel_surface_release_source_image, diff --git a/src/drm/cairo-drm-i965-shader.c b/src/drm/cairo-drm-i965-shader.c index f88e5a4..5465f42 100644 --- a/src/drm/cairo-drm-i965-shader.c +++ b/src/drm/cairo-drm-i965-shader.c @@ -939,7 +939,7 @@ i965_shader_setup_constants (i965_shader_t *shader) assert (shader->constants_size < ARRAY_LENGTH (shader->constants)); } -/** +/* * Highest-valued BLENDFACTOR used in i965_blend_op. * * This leaves out BRW_BLENDFACTOR_INV_DST_COLOR, @@ -1630,7 +1630,7 @@ i965_sf_state_equal (const void *A, const void *B) return a->hash == b->hash; } -/** +/* * Sets up the SF state pointing at an SF kernel. * * The SF kernel does coord interp: for each attribute, diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c index 71061a0..0891c95 100644 --- a/src/drm/cairo-drm-i965-surface.c +++ b/src/drm/cairo-drm-i965-surface.c @@ -1495,6 +1495,8 @@ static const cairo_surface_backend_t i965_surface_backend = { i965_surface_create_similar, i965_surface_finish, + + NULL, intel_surface_acquire_source_image, intel_surface_release_source_image, diff --git a/src/drm/cairo-drm-intel-brw-eu-emit.c b/src/drm/cairo-drm-intel-brw-eu-emit.c index 05bac0a..f27b238 100644 --- a/src/drm/cairo-drm-intel-brw-eu-emit.c +++ b/src/drm/cairo-drm-intel-brw-eu-emit.c @@ -476,7 +476,7 @@ struct brw_instruction *brw_JMPI(struct brw_compile *p, * * When the matching 'else' instruction is reached (presumably by * countdown of the instruction count patched in by our ELSE/ENDIF - * functions), the relevent flags are inverted. + * functions), the relevant flags are inverted. * * When the matching 'endif' instruction is reached, the flags are * popped off. If the stack is now empty, normal execution resumes. diff --git a/src/drm/cairo-drm-intel-brw-eu.c b/src/drm/cairo-drm-intel-brw-eu.c index 51c3de4..2b47d8c 100644 --- a/src/drm/cairo-drm-intel-brw-eu.c +++ b/src/drm/cairo-drm-intel-brw-eu.c @@ -127,7 +127,7 @@ brw_get_program (struct brw_compile *p, -/** +/* * Subroutine calls require special attention. * Mesa instructions may be expanded into multiple hardware instructions * so the prog_instruction::BranchTarget field can't be used as an index @@ -142,29 +142,29 @@ brw_get_program (struct brw_compile *p, */ -/** +/* * For each OPCODE_BGNSUB we create one of these. */ struct brw_glsl_label { - const char *name; /**< the label string */ - uint32_t position; /**< the position of the brw instruction for this label */ - struct brw_glsl_label *next; /**< next in linked list */ + const char *name; /*< the label string */ + uint32_t position; /*< the position of the brw instruction for this label */ + struct brw_glsl_label *next; /*< next in linked list */ }; -/** +/* * For each OPCODE_CAL we create one of these. */ struct brw_glsl_call { - uint32_t call_inst_pos; /**< location of the CAL instruction */ - const char *sub_name; /**< name of subroutine to call */ - struct brw_glsl_call *next; /**< next in linked list */ + uint32_t call_inst_pos; /*< location of the CAL instruction */ + const char *sub_name; /*< name of subroutine to call */ + struct brw_glsl_call *next; /*< next in linked list */ }; -/** +/* * Called for each OPCODE_BGNSUB. */ void @@ -178,7 +178,7 @@ brw_save_label(struct brw_compile *c, const char *name, uint32_t position) } -/** +/* * Called for each OPCODE_CAL. */ void @@ -192,7 +192,7 @@ brw_save_call(struct brw_compile *c, const char *name, uint32_t call_pos) } -/** +/* * Lookup a label, return label's position/offset. */ static uint32_t @@ -209,7 +209,7 @@ brw_lookup_label(struct brw_compile *c, const char *name) } -/** +/* * When we're done generating code, this function is called to resolve * subroutine calls. */ diff --git a/src/drm/cairo-drm-intel-brw-eu.h b/src/drm/cairo-drm-intel-brw-eu.h index 197a371..2662a2e 100644 --- a/src/drm/cairo-drm-intel-brw-eu.h +++ b/src/drm/cairo-drm-intel-brw-eu.h @@ -38,7 +38,7 @@ #include -/** +/* * Writemask values, 1 bit per component. */ #define WRITEMASK_X 0x1 @@ -127,8 +127,8 @@ struct brw_compile { int single_program_flow; struct brw_context *brw; - struct brw_glsl_label *first_label; /**< linked list of labels */ - struct brw_glsl_call *first_call; /**< linked list of CALs */ + struct brw_glsl_label *first_label; /*< linked list of labels */ + struct brw_glsl_call *first_call; /*< linked list of CALs */ }; cairo_private void @@ -164,7 +164,7 @@ type_sz (uint32_t type) } } -/** +/* * Construct a brw_reg. * \param file one of the BRW_x_REGISTER_FILE values * \param nr register number/index @@ -222,7 +222,7 @@ brw_reg (uint32_t file, return reg; } -/** Construct float[16] register */ +/* Construct float[16] register */ static cairo_always_inline struct brw_reg brw_vec16_reg (uint32_t file, uint32_t nr, @@ -237,7 +237,7 @@ brw_vec16_reg (uint32_t file, WRITEMASK_XYZW); } -/** Construct float[8] register */ +/* Construct float[8] register */ static cairo_always_inline struct brw_reg brw_vec8_reg (uint32_t file, uint32_t nr, @@ -252,7 +252,7 @@ brw_vec8_reg (uint32_t file, WRITEMASK_XYZW); } -/** Construct float[4] register */ +/* Construct float[4] register */ static cairo_always_inline struct brw_reg brw_vec4_reg (uint32_t file, uint32_t nr, @@ -267,7 +267,7 @@ brw_vec4_reg (uint32_t file, WRITEMASK_XYZW); } -/** Construct float[2] register */ +/* Construct float[2] register */ static cairo_always_inline struct brw_reg brw_vec2_reg (uint32_t file, uint32_t nr, @@ -282,7 +282,7 @@ brw_vec2_reg (uint32_t file, WRITEMASK_XY); } -/** Construct float[1] register */ +/* Construct float[1] register */ static cairo_always_inline struct brw_reg brw_vec1_reg (uint32_t file, uint32_t nr, @@ -331,7 +331,7 @@ byte_offset (struct brw_reg reg, return reg; } -/** Construct unsigned word[16] register */ +/* Construct unsigned word[16] register */ static cairo_always_inline struct brw_reg brw_uw16_reg (uint32_t file, uint32_t nr, @@ -340,7 +340,7 @@ brw_uw16_reg (uint32_t file, return suboffset (retype (brw_vec16_reg (file, nr, 0), BRW_REGISTER_TYPE_UW), subnr); } -/** Construct unsigned word[8] register */ +/* Construct unsigned word[8] register */ static cairo_always_inline struct brw_reg brw_uw8_reg (uint32_t file, uint32_t nr, @@ -349,7 +349,7 @@ brw_uw8_reg (uint32_t file, return suboffset (retype (brw_vec8_reg (file, nr, 0), BRW_REGISTER_TYPE_UW), subnr); } -/** Construct unsigned word[2] register */ +/* Construct unsigned word[2] register */ static cairo_always_inline struct brw_reg brw_uw2_reg (uint32_t file, uint32_t nr, @@ -358,7 +358,7 @@ brw_uw2_reg (uint32_t file, return suboffset (retype (brw_vec2_reg (file, nr, 0), BRW_REGISTER_TYPE_UW), subnr); } -/** Construct unsigned word[1] register */ +/* Construct unsigned word[1] register */ static cairo_always_inline struct brw_reg brw_uw1_reg (uint32_t file, uint32_t nr, @@ -381,7 +381,7 @@ brw_imm_reg (uint32_t type) 0); } -/** Construct float immediate register */ +/* Construct float immediate register */ static cairo_always_inline struct brw_reg brw_imm_f( float f ) { struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_F); @@ -389,7 +389,7 @@ static cairo_always_inline struct brw_reg brw_imm_f( float f ) return imm; } -/** Construct integer immediate register */ +/* Construct integer immediate register */ static cairo_always_inline struct brw_reg brw_imm_d( int32_t d ) { struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_D); @@ -397,7 +397,7 @@ static cairo_always_inline struct brw_reg brw_imm_d( int32_t d ) return imm; } -/** Construct uint immediate register */ +/* Construct uint immediate register */ static cairo_always_inline struct brw_reg brw_imm_ud( uint32_t ud ) { struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_UD); @@ -405,7 +405,7 @@ static cairo_always_inline struct brw_reg brw_imm_ud( uint32_t ud ) return imm; } -/** Construct ushort immediate register */ +/* Construct ushort immediate register */ static cairo_always_inline struct brw_reg brw_imm_uw( uint16_t uw ) { struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_UW); @@ -413,7 +413,7 @@ static cairo_always_inline struct brw_reg brw_imm_uw( uint16_t uw ) return imm; } -/** Construct short immediate register */ +/* Construct short immediate register */ static cairo_always_inline struct brw_reg brw_imm_w( int16_t w ) { struct brw_reg imm = brw_imm_reg(BRW_REGISTER_TYPE_W); @@ -425,7 +425,7 @@ static cairo_always_inline struct brw_reg brw_imm_w( int16_t w ) * numbers alias with _V and _VF below: */ -/** Construct vector of eight signed half-byte values */ +/* Construct vector of eight signed half-byte values */ static cairo_always_inline struct brw_reg brw_imm_v (uint32_t v) { @@ -437,7 +437,7 @@ struct brw_reg brw_imm_v (uint32_t v) return imm; } -/** Construct vector of four 8-bit float values */ +/* Construct vector of four 8-bit float values */ static cairo_always_inline struct brw_reg brw_imm_vf (uint32_t v) { @@ -476,28 +476,28 @@ brw_address (struct brw_reg reg) return brw_imm_uw (reg.nr * REG_SIZE + reg.subnr); } -/** Construct float[1] general-purpose register */ +/* Construct float[1] general-purpose register */ static cairo_always_inline struct brw_reg brw_vec1_grf (uint32_t nr, uint32_t subnr) { return brw_vec1_reg (BRW_GENERAL_REGISTER_FILE, nr, subnr); } -/** Construct float[2] general-purpose register */ +/* Construct float[2] general-purpose register */ static cairo_always_inline struct brw_reg brw_vec2_grf (uint32_t nr, uint32_t subnr) { return brw_vec2_reg (BRW_GENERAL_REGISTER_FILE, nr, subnr); } -/** Construct float[4] general-purpose register */ +/* Construct float[4] general-purpose register */ static cairo_always_inline struct brw_reg brw_vec4_grf (uint32_t nr, uint32_t subnr) { return brw_vec4_reg (BRW_GENERAL_REGISTER_FILE, nr, subnr); } -/** Construct float[8] general-purpose register */ +/* Construct float[8] general-purpose register */ static cairo_always_inline struct brw_reg brw_vec8_grf (uint32_t nr) { @@ -516,7 +516,7 @@ brw_uw16_grf (uint32_t nr, uint32_t subnr) return brw_uw16_reg (BRW_GENERAL_REGISTER_FILE, nr, subnr); } -/** Construct null register (usually used for setting condition codes) */ +/* Construct null register (usually used for setting condition codes) */ static cairo_always_inline struct brw_reg brw_null_reg (void) { diff --git a/src/drm/cairo-drm-intel-ioctl-private.h b/src/drm/cairo-drm-intel-ioctl-private.h index 29fe88a..004d3bf 100644 --- a/src/drm/cairo-drm-intel-ioctl-private.h +++ b/src/drm/cairo-drm-intel-ioctl-private.h @@ -48,28 +48,28 @@ struct intel_getparam { }; -/** @{ +/* @{ * Intel memory domains * * Most of these just align with the various caches in * the system and are used to flush and invalidate as * objects end up cached in different domains. */ -/** CPU cache */ +/* CPU cache */ #define I915_GEM_DOMAIN_CPU 0x00000001 -/** Render cache, used by 2D and 3D drawing */ +/* Render cache, used by 2D and 3D drawing */ #define I915_GEM_DOMAIN_RENDER 0x00000002 -/** Sampler cache, used by texture engine */ +/* Sampler cache, used by texture engine */ #define I915_GEM_DOMAIN_SAMPLER 0x00000004 -/** Command queue, used to load batch buffers */ +/* Command queue, used to load batch buffers */ #define I915_GEM_DOMAIN_COMMAND 0x00000008 -/** Instruction cache, used by shader programs */ +/* Instruction cache, used by shader programs */ #define I915_GEM_DOMAIN_INSTRUCTION 0x00000010 -/** Vertex address cache */ +/* Vertex address cache */ #define I915_GEM_DOMAIN_VERTEX 0x00000020 -/** GTT domain - aperture and scanout */ +/* GTT domain - aperture and scanout */ #define I915_GEM_DOMAIN_GTT 0x00000040 -/** @} */ +/* @} */ #define I915_TILING_NONE 0 #define I915_TILING_X 1 @@ -95,13 +95,13 @@ struct intel_getparam { #define DRM_I915_GEM_MMAP_GTT 0x24 struct drm_i915_gem_create { - /** + /* * Requested size for the object. * * The (page-aligned) allocated size for the object will be returned. */ uint64_t size; - /** + /* * Returned handle for the object. * * Object handles are nonzero. @@ -111,14 +111,14 @@ struct drm_i915_gem_create { }; struct drm_i915_gem_pread { - /** Handle for the object being read. */ + /* Handle for the object being read. */ uint32_t handle; uint32_t pad; - /** Offset into the object to read from */ + /* Offset into the object to read from */ uint64_t offset; - /** Length of data to read */ + /* Length of data to read */ uint64_t size; - /** + /* * Pointer to write the data into. * * This is a fixed-size type for 32/64 compatibility. @@ -127,14 +127,14 @@ struct drm_i915_gem_pread { }; struct drm_i915_gem_pwrite { - /** Handle for the object being written to. */ + /* Handle for the object being written to. */ uint32_t handle; uint32_t pad; - /** Offset into the object to write to */ + /* Offset into the object to write to */ uint64_t offset; - /** Length of data to write */ + /* Length of data to write */ uint64_t size; - /** + /* * Pointer to read the data from. * * This is a fixed-size type for 32/64 compatibility. @@ -143,18 +143,18 @@ struct drm_i915_gem_pwrite { }; struct drm_i915_gem_mmap { - /** Handle for the object being mapped. */ + /* Handle for the object being mapped. */ uint32_t handle; uint32_t pad; - /** Offset in the object to map. */ + /* Offset in the object to map. */ uint64_t offset; - /** + /* * Length of data to map. * * The value will be page-aligned. */ uint64_t size; - /** + /* * Returned pointer the data was mapped at. * * This is a fixed-size type for 32/64 compatibility. @@ -163,10 +163,10 @@ struct drm_i915_gem_mmap { }; struct drm_i915_gem_mmap_gtt { - /** Handle for the object being mapped. */ + /* Handle for the object being mapped. */ uint32_t handle; uint32_t pad; - /** + /* * Fake offset to use for subsequent mmap call * * This is a fixed-size type for 32/64 compatibility. @@ -175,18 +175,18 @@ struct drm_i915_gem_mmap_gtt { }; struct drm_i915_gem_set_domain { - /** Handle for the object */ + /* Handle for the object */ uint32_t handle; - /** New read domains */ + /* New read domains */ uint32_t read_domains; - /** New write domain */ + /* New write domain */ uint32_t write_domain; }; struct drm_i915_gem_relocation_entry { - /** + /* * Handle of the buffer being pointed to by this relocation entry. * * It's appealing to make this be an index into the mm_validate_entry @@ -196,16 +196,16 @@ struct drm_i915_gem_relocation_entry { */ uint32_t target_handle; - /** + /* * Value to be added to the offset of the target buffer to make up * the relocation entry. */ uint32_t delta; - /** Offset in the buffer the relocation entry will be written into */ + /* Offset in the buffer the relocation entry will be written into */ uint64_t offset; - /** + /* * Offset value of the target buffer that the relocation entry was last * written as. * @@ -215,12 +215,12 @@ struct drm_i915_gem_relocation_entry { */ uint64_t presumed_offset; - /** + /* * Target memory domains read by this operation. */ uint32_t read_domains; - /** + /* * Target memory domains written by this operation. * * Note that only one domain may be written by the whole @@ -231,24 +231,24 @@ struct drm_i915_gem_relocation_entry { }; struct drm_i915_gem_exec_object { - /** + /* * User's handle for a buffer to be bound into the GTT for this * operation. */ uint32_t handle; - /** Number of relocations to be performed on this buffer */ + /* Number of relocations to be performed on this buffer */ uint32_t relocation_count; - /** + /* * Pointer to array of struct drm_i915_gem_relocation_entry containing * the relocations to be performed in this buffer. */ uint64_t relocs_ptr; - /** Required alignment in graphics aperture */ + /* Required alignment in graphics aperture */ uint64_t alignment; - /** + /* * Returned value of the updated offset of the object, for future * presumed_offset writes. */ @@ -256,7 +256,7 @@ struct drm_i915_gem_exec_object { }; struct drm_i915_gem_execbuffer { - /** + /* * List of buffers to be validated with their relocations to be * performend on them. * @@ -269,30 +269,30 @@ struct drm_i915_gem_execbuffer { uint64_t buffers_ptr; uint32_t buffer_count; - /** Offset in the batchbuffer to start execution from. */ + /* Offset in the batchbuffer to start execution from. */ uint32_t batch_start_offset; - /** Bytes used in batchbuffer from batch_start_offset */ + /* Bytes used in batchbuffer from batch_start_offset */ uint32_t batch_len; uint32_t DR1; uint32_t DR4; uint32_t num_cliprects; - /** This is a struct drm_clip_rect *cliprects */ + /* This is a struct drm_clip_rect *cliprects */ uint64_t cliprects_ptr; }; struct drm_i915_gem_busy { - /** Handle of the buffer to check for busy */ + /* Handle of the buffer to check for busy */ uint32_t handle; - /** Return busy status (1 if busy, 0 if idle) */ + /* Return busy status (1 if busy, 0 if idle) */ uint32_t busy; }; struct drm_i915_gem_set_tiling { - /** Handle of the buffer to have its tiling state updated */ + /* Handle of the buffer to have its tiling state updated */ uint32_t handle; - /** + /* * Tiling mode for the object (I915_TILING_NONE, I915_TILING_X, * I915_TILING_Y). * @@ -306,13 +306,13 @@ struct drm_i915_gem_set_tiling { */ uint32_t tiling_mode; - /** + /* * Stride in bytes for the object when in I915_TILING_X or * I915_TILING_Y. */ uint32_t stride; - /** + /* * Returned address bit 6 swizzling required for CPU access through * mmap mapping. */ @@ -320,16 +320,16 @@ struct drm_i915_gem_set_tiling { }; struct drm_i915_gem_get_tiling { - /** Handle of the buffer to get tiling state for. */ + /* Handle of the buffer to get tiling state for. */ uint32_t handle; - /** + /* * Current tiling mode for the object (I915_TILING_NONE, I915_TILING_X, * I915_TILING_Y). */ uint32_t tiling_mode; - /** + /* * Returned address bit 6 swizzling required for CPU access through * mmap mapping. */ @@ -337,10 +337,10 @@ struct drm_i915_gem_get_tiling { }; struct drm_i915_gem_get_aperture { - /** Total size of the aperture used by i915_gem_execbuffer, in bytes */ + /* Total size of the aperture used by i915_gem_execbuffer, in bytes */ uint64_t aper_size; - /** + /* * Available space in the aperture used by i915_gem_execbuffer, in * bytes */ @@ -377,24 +377,24 @@ struct drm_i915_gem_madvise { /* XXX execbuffer2 */ struct drm_i915_gem_exec_object2 { - /** + /* * User's handle for a buffer to be bound into the GTT for this * operation. */ uint32_t handle; - /** Number of relocations to be performed on this buffer */ + /* Number of relocations to be performed on this buffer */ uint32_t relocation_count; - /** + /* * Pointer to array of struct drm_i915_gem_relocation_entry containing * the relocations to be performed in this buffer. */ uint64_t relocs_ptr; - /** Required alignment in graphics aperture */ + /* Required alignment in graphics aperture */ uint64_t alignment; - /** + /* * Returned value of the updated offset of the object, for future * presumed_offset writes. */ @@ -407,20 +407,20 @@ struct drm_i915_gem_exec_object2 { }; struct drm_i915_gem_execbuffer2 { - /** + /* * List of gem_exec_object2 structs */ uint64_t buffers_ptr; uint32_t buffer_count; - /** Offset in the batchbuffer to start execution from. */ + /* Offset in the batchbuffer to start execution from. */ uint32_t batch_start_offset; - /** Bytes used in batchbuffer from batch_start_offset */ + /* Bytes used in batchbuffer from batch_start_offset */ uint32_t batch_len; uint32_t DR1; uint32_t DR4; uint32_t num_cliprects; - /** This is a struct drm_clip_rect *cliprects */ + /* This is a struct drm_clip_rect *cliprects */ uint64_t cliprects_ptr; uint64_t flags; uint64_t rsvd1; diff --git a/src/drm/cairo-drm-intel-surface.c b/src/drm/cairo-drm-intel-surface.c index f28c750..fe98759 100644 --- a/src/drm/cairo-drm-intel-surface.c +++ b/src/drm/cairo-drm-intel-surface.c @@ -253,8 +253,11 @@ static const cairo_surface_backend_t intel_surface_backend = { intel_surface_create_similar, intel_surface_finish, + + NULL, intel_surface_acquire_source_image, intel_surface_release_source_image, + NULL, NULL, NULL, NULL, /* composite */ NULL, /* fill */ diff --git a/src/drm/cairo-drm-radeon-surface.c b/src/drm/cairo-drm-radeon-surface.c index 9335d7b..9f46ca1 100644 --- a/src/drm/cairo-drm-radeon-surface.c +++ b/src/drm/cairo-drm-radeon-surface.c @@ -257,8 +257,11 @@ static const cairo_surface_backend_t radeon_surface_backend = { radeon_surface_create_similar, radeon_surface_finish, + + NULL, radeon_surface_acquire_source_image, radeon_surface_release_source_image, + NULL, NULL, NULL, NULL, /* composite */ NULL, /* fill */ diff --git a/src/drm/cairo-drm-surface.c b/src/drm/cairo-drm-surface.c index a8a8f32..8c4dd0e 100644 --- a/src/drm/cairo-drm-surface.c +++ b/src/drm/cairo-drm-surface.c @@ -35,6 +35,7 @@ #include "cairo-drm-private.h" #include "cairo-error-private.h" +#include "cairo-image-surface-inline.h" void _cairo_drm_surface_init (cairo_drm_surface_t *surface, diff --git a/src/skia/cairo-skia-context.cpp b/src/skia/cairo-skia-context.cpp index e5d4828..a08b3fb 100644 --- a/src/skia/cairo-skia-context.cpp +++ b/src/skia/cairo-skia-context.cpp @@ -47,6 +47,7 @@ #include "cairo-default-context-private.h" #include "cairo-freed-pool-private.h" #include "cairo-gstate-private.h" +#include "cairo-image-surface-inline.h" #include "cairo-path-private.h" #include "cairo-pattern-private.h" #include "cairo-skia-private.h" @@ -1258,12 +1259,16 @@ _cairo_skia_context_paint_with_alpha (void *abstract_cr, double alpha) { cairo_skia_context_t *cr = (cairo_skia_context_t *) abstract_cr; + cairo_status_t status; if (CAIRO_ALPHA_IS_OPAQUE (alpha)) return _cairo_skia_context_paint (cr); - /*XXX */ - return _cairo_skia_context_paint (cr); + cr->paint->setAlpha(SkScalarRound(255*alpha)); + status = _cairo_skia_context_paint (cr); + cr->paint->setAlpha(255); + + return status; } static cairo_status_t diff --git a/src/skia/cairo-skia-surface.cpp b/src/skia/cairo-skia-surface.cpp index de94f3a..71bebb0 100644 --- a/src/skia/cairo-skia-surface.cpp +++ b/src/skia/cairo-skia-surface.cpp @@ -175,6 +175,7 @@ cairo_skia_surface_backend = { _cairo_skia_surface_map_to_image, _cairo_skia_surface_unmap_image, + _cairo_surface_default_source, _cairo_skia_surface_acquire_source_image, _cairo_skia_surface_release_source_image, NULL, /* snapshot */ diff --git a/src/test-base-compositor-surface.c b/src/test-base-compositor-surface.c index 21032b0..f8fa517 100644 --- a/src/test-base-compositor-surface.c +++ b/src/test-base-compositor-surface.c @@ -137,103 +137,6 @@ _pixman_operator (cairo_operator_t op) } } -static void -_pixman_image_add_boxes (pixman_image_t *image, - int dst_x, int dst_y, - cairo_box_t *box, - int count) -{ - while (count--) { - pixman_trapezoid_t trap; - - trap.top = _cairo_fixed_to_16_16 (box->p1.y); - trap.bottom = _cairo_fixed_to_16_16 (box->p2.y); - - trap.left.p1.x = _cairo_fixed_to_16_16 (box->p1.x); - trap.left.p1.y = _cairo_fixed_to_16_16 (box->p1.y); - trap.left.p2.x = _cairo_fixed_to_16_16 (box->p1.x); - trap.left.p2.y = _cairo_fixed_to_16_16 (box->p2.y); - - trap.right.p1.x = _cairo_fixed_to_16_16 (box->p2.x); - trap.right.p1.y = _cairo_fixed_to_16_16 (box->p1.y); - trap.right.p2.x = _cairo_fixed_to_16_16 (box->p2.x); - trap.right.p2.y = _cairo_fixed_to_16_16 (box->p2.y); - - pixman_rasterize_trapezoid (image, &trap, -dst_x, -dst_y); - box++; - } -} - -static cairo_status_t -combine_in_boxes (cairo_image_surface_t *dst, - cairo_box_t *box, int count, - const cairo_rectangle_int_t *extents) -{ - pixman_image_t *mask; - - mask = pixman_image_create_bits (PIXMAN_a8, - extents->width, extents->height, - NULL, 0); - if (unlikely (mask == NULL)) - return _cairo_error (CAIRO_STATUS_NO_MEMORY); - - _pixman_image_add_boxes (mask, extents->x, extents->y, box, count); - pixman_image_composite32 (PIXMAN_OP_IN, - mask, NULL, dst->pixman_image, - 0, 0, - 0, 0, - 0, 0, - extents->width, extents->height); - pixman_image_unref (mask); - - return CAIRO_STATUS_SUCCESS; -} - -static cairo_image_surface_t * -get_clip_surface (cairo_image_surface_t *dst, - const cairo_composite_rectangles_t *extents, - int *clip_x, - int *clip_y) -{ - cairo_image_surface_t *surface; - cairo_int_status_t status; - - surface = (cairo_image_surface_t *) - _cairo_surface_create_similar_solid (&dst->base, - CAIRO_CONTENT_ALPHA, - extents->unbounded.width, - extents->unbounded.height, - CAIRO_COLOR_WHITE); - if (unlikely (surface->base.status)) - return surface; - - if (extents->clip->boxes) { - status = combine_in_boxes (surface, - extents->clip->boxes, - extents->clip->num_boxes, - &extents->unbounded); - if (unlikely (status)) - goto error; - } - - if (extents->clip->path) { - status = _cairo_clip_combine_with_surface (extents->clip, - &surface->base, - extents->unbounded.x, - extents->unbounded.y); - if (unlikely (status)) - goto error; - } - - *clip_x = extents->unbounded.x; - *clip_y = extents->unbounded.y; - return surface; - -error: - cairo_surface_destroy (&surface->base); - return (cairo_image_surface_t *)_cairo_surface_create_in_error (status); -} - static cairo_image_surface_t * create_composite_mask (cairo_image_surface_t *dst, void *draw_closure, @@ -243,12 +146,13 @@ create_composite_mask (cairo_image_surface_t *dst, cairo_image_surface_t *surface; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + surface = (cairo_image_surface_t *) - _cairo_surface_create_similar_solid (&dst->base, - CAIRO_CONTENT_ALPHA, - extents->bounded.width, - extents->bounded.height, - CAIRO_COLOR_TRANSPARENT); + _cairo_image_surface_create_with_pixman_format (NULL, PIXMAN_a8, + extents->bounded.width, + extents->bounded.height, + 0); if (unlikely (surface->base.status)) return surface; @@ -259,23 +163,12 @@ create_composite_mask (cairo_image_surface_t *dst, if (unlikely (status)) goto error; - if (extents->clip->boxes) { - status = combine_in_boxes (surface, - extents->clip->boxes, - extents->clip->num_boxes, - &extents->bounded); - if (unlikely (status)) - goto error; - } - - if (extents->clip->path) { - status = _cairo_clip_combine_with_surface (extents->clip, - &surface->base, - extents->bounded.x, - extents->bounded.y); - if (unlikely (status)) - goto error; - } + status = _cairo_clip_combine_with_surface (extents->clip, + &surface->base, + extents->bounded.x, + extents->bounded.y); + if (unlikely (status)) + goto error; return surface; @@ -298,6 +191,8 @@ clip_and_composite_with_mask (const cairo_composite_rectangles_t*extents, cairo_status_t status = CAIRO_STATUS_SUCCESS; int src_x, src_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = create_composite_mask (dst, draw_closure, draw_func, extents); if (unlikely (mask->base.status)) return mask->base.status; @@ -339,11 +234,14 @@ clip_and_composite_combine (const cairo_composite_rectangles_t*extents, int clip_x, clip_y; cairo_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + tmp = (cairo_image_surface_t *) - _cairo_surface_create_similar_solid (&dst->base, dst->base.content, - extents->bounded.width, - extents->bounded.height, - CAIRO_COLOR_TRANSPARENT); + _cairo_image_surface_create_with_pixman_format (NULL, + dst->pixman_format, + extents->bounded.width, + extents->bounded.height, + 0); if (unlikely (tmp->base.status)) return tmp->base.status; @@ -362,7 +260,7 @@ clip_and_composite_combine (const cairo_composite_rectangles_t*extents, goto error; clip = (cairo_image_surface_t *) - get_clip_surface (dst, extents, &clip_x, &clip_y); + _cairo_clip_get_surface (extents->clip, &dst->base, &clip_x, &clip_y); if (unlikely (clip->base.status)) goto error; @@ -401,6 +299,8 @@ clip_and_composite_source (const cairo_composite_rectangles_t *extents, int src_x, src_y; cairo_status_t status = CAIRO_STATUS_SUCCESS; + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = create_composite_mask (dst, draw_closure, draw_func, extents); if (unlikely (mask->base.status)) return mask->base.status; @@ -443,10 +343,14 @@ fixup_unbounded (const cairo_composite_rectangles_t *extents) pixman_image_t *mask; int mask_x, mask_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (! _cairo_clip_is_region (extents->clip)) { cairo_image_surface_t *clip; - clip = get_clip_surface (dst, extents, &mask_x, &mask_y); + clip = (cairo_image_surface_t *) + _cairo_clip_get_surface (extents->clip, &dst->base, + &mask_x, &mask_y); if (unlikely (clip->base.status)) return clip->base.status; @@ -590,6 +494,8 @@ composite_paint (cairo_image_surface_t *dst, pixman_image_t *src; int src_x, src_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_pattern_sampled_area (pattern, extents, &sample); src = _pixman_image_for_pattern (dst, pattern, FALSE, @@ -598,6 +504,11 @@ composite_paint (cairo_image_surface_t *dst, if (unlikely (src == NULL)) return _cairo_error (CAIRO_STATUS_NO_MEMORY); + TRACE ((stderr, "%s: src=(%d, %d), dst=(%d, %d) size=%dx%d\n", __FUNCTION__, + extents->x + src_x, extents->y + src_y, + extents->x - dst_x, extents->y - dst_y, + extents->width, extents->height)); + pixman_image_composite32 (_pixman_operator (op), src, NULL, dst->pixman_image, extents->x + src_x, extents->y + src_y, @@ -614,6 +525,7 @@ static cairo_int_status_t base_compositor_paint (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents) { + TRACE ((stderr, "%s\n", __FUNCTION__)); return clip_and_composite (extents, composite_paint, NULL); } @@ -631,6 +543,8 @@ composite_mask (cairo_image_surface_t *dst, int src_x, src_y; int mask_x, mask_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_pattern_sampled_area (pattern, extents, &sample); src = _pixman_image_for_pattern (dst, pattern, FALSE, extents, &sample, @@ -664,6 +578,7 @@ static cairo_int_status_t base_compositor_mask (const cairo_compositor_t *_compositor, cairo_composite_rectangles_t *extents) { + TRACE ((stderr, "%s\n", __FUNCTION__)); return clip_and_composite (extents, composite_mask, &extents->mask_pattern.base); } @@ -686,6 +601,8 @@ composite_traps (cairo_image_surface_t *dst, pixman_image_t *src, *mask; int src_x, src_y; + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_pattern_sampled_area (pattern, extents, &sample); src = _pixman_image_for_pattern (dst, pattern, FALSE, extents, &sample, @@ -741,6 +658,8 @@ base_compositor_stroke (const cairo_compositor_t *_compositor, composite_traps_info_t info; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + info.antialias = antialias; _cairo_traps_init_with_clip (&info.traps, extents->clip); status = _cairo_path_fixed_stroke_to_traps (path, style, @@ -767,6 +686,8 @@ base_compositor_fill (const cairo_compositor_t *_compositor, composite_traps_info_t info; cairo_int_status_t status; + TRACE ((stderr, "%s\n", __FUNCTION__)); + info.antialias = antialias; _cairo_traps_init_with_clip (&info.traps, extents->clip); status = _cairo_path_fixed_fill_to_traps (path, @@ -795,6 +716,8 @@ composite_glyphs (cairo_image_surface_t *dst, cairo_status_t status; int i; + TRACE ((stderr, "%s\n", __FUNCTION__)); + mask = pixman_image_create_bits (PIXMAN_a8, extents->width, extents->height, NULL, 0); @@ -877,6 +800,7 @@ base_compositor_glyphs (const cairo_compositor_t *_compositor, info.glyphs = glyphs; info.num_glyphs = num_glyphs; + TRACE ((stderr, "%s\n", __FUNCTION__)); return clip_and_composite (extents, composite_glyphs, &info); } diff --git a/src/test-compositor-surface.c b/src/test-compositor-surface.c index 356c16c..ddee06f 100644 --- a/src/test-compositor-surface.c +++ b/src/test-compositor-surface.c @@ -195,6 +195,7 @@ static const cairo_surface_backend_t test_compositor_surface_backend = { _cairo_image_surface_map_to_image, _cairo_image_surface_unmap_image, + _cairo_image_surface_source, _cairo_image_surface_acquire_source_image, _cairo_image_surface_release_source_image, _cairo_image_surface_snapshot, diff --git a/src/test-null-compositor-surface.c b/src/test-null-compositor-surface.c index df2eda0..2301055 100644 --- a/src/test-null-compositor-surface.c +++ b/src/test-null-compositor-surface.c @@ -198,6 +198,7 @@ static const cairo_surface_backend_t test_compositor_surface_backend = { _cairo_image_surface_map_to_image, _cairo_image_surface_unmap_image, + _cairo_image_surface_source, _cairo_image_surface_acquire_source_image, _cairo_image_surface_release_source_image, NULL, /* snapshot */ @@ -372,7 +373,8 @@ finish_spans (void *abstract_renderer) static cairo_int_status_t span_renderer_init (cairo_abstract_span_renderer_t *_r, const cairo_composite_rectangles_t *composite, - cairo_bool_t needs_clip) + cairo_antialias_t antialias, + cairo_bool_t needs_clip) { cairo_span_renderer_t *r = (cairo_span_renderer_t *)_r; r->render_rows = spans; @@ -392,6 +394,12 @@ no_fallback_compositor_get (void) return &__cairo_no_compositor; } +static cairo_int_status_t +check_composite (const cairo_composite_rectangles_t *extents) +{ + return CAIRO_STATUS_SUCCESS; +} + static const cairo_compositor_t * no_traps_compositor_get (void) { @@ -408,7 +416,7 @@ no_traps_compositor_get (void) compositor.draw_image_boxes = draw_image_boxes; //compositor.copy_boxes = copy_boxes; compositor.fill_boxes = fill_boxes; - //compositor.check_composite = check_composite; + compositor.check_composite = check_composite; compositor.composite = composite; compositor.lerp = lerp; //compositor.check_composite_boxes = check_composite_boxes; diff --git a/src/test-paginated-surface.c b/src/test-paginated-surface.c index e3c8a91..0a7c79b 100644 --- a/src/test-paginated-surface.c +++ b/src/test-paginated-surface.c @@ -253,6 +253,7 @@ static const cairo_surface_backend_t test_paginated_surface_backend = { NULL, /* map to image */ NULL, /* unmap image */ + _cairo_surface_default_source, NULL, /* acquire_source_image */ NULL, /* release_source_image */ NULL, /* snapshot */ diff --git a/src/win32/cairo-win32-debug.c b/src/win32/cairo-win32-debug.c new file mode 100644 index 0000000..ff7aeaf --- /dev/null +++ b/src/win32/cairo-win32-debug.c @@ -0,0 +1,87 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + * Stuart Parmenter + * Vladimir Vukicevic + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" +#include "cairo-win32-private.h" + +#include +#include + +void +_cairo_win32_debug_dump_hrgn (HRGN rgn, char *header) +{ + RGNDATA *rd; + unsigned int z; + + if (header) + fprintf (stderr, "%s\n", header); + + if (rgn == NULL) { + fprintf (stderr, " NULL\n"); + } + + z = GetRegionData(rgn, 0, NULL); + rd = (RGNDATA*) malloc(z); + z = GetRegionData(rgn, z, rd); + + fprintf (stderr, " %ld rects, bounds: %ld %ld %ld %ld\n", + rd->rdh.nCount, + rd->rdh.rcBound.left, + rd->rdh.rcBound.top, + rd->rdh.rcBound.right - rd->rdh.rcBound.left, + rd->rdh.rcBound.bottom - rd->rdh.rcBound.top); + + for (z = 0; z < rd->rdh.nCount; z++) { + RECT r = ((RECT*)rd->Buffer)[z]; + fprintf (stderr, " [%d]: [%ld %ld %ld %ld]\n", + z, r.left, r.top, r.right - r.left, r.bottom - r.top); + } + + free(rd); + fflush (stderr); +} diff --git a/src/win32/cairo-win32-device.c b/src/win32/cairo-win32-device.c new file mode 100644 index 0000000..b3ee573 --- /dev/null +++ b/src/win32/cairo-win32-device.c @@ -0,0 +1,189 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + * Stuart Parmenter + * Vladimir Vukicevic + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" + +#include "cairo-atomic-private.h" +#include "cairo-device-private.h" +#include "cairo-win32-private.h" + +#include +#include + +static cairo_device_t *__cairo_win32_device; + +static cairo_status_t +_cairo_win32_device_flush (void *device) +{ + GdiFlush (); + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_win32_device_finish (void *device) +{ +} + +static void +_cairo_win32_device_destroy (void *device) +{ + free (device); +} + +static const cairo_device_backend_t _cairo_win32_device_backend = { + CAIRO_DEVICE_TYPE_WIN32, + + NULL, NULL, /* lock, unlock */ + + _cairo_win32_device_flush, + _cairo_win32_device_finish, + _cairo_win32_device_destroy, +}; + +#if 0 +D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, + D2D1::PixelFormat( + DXGI_FORMAT_B8G8R8A8_UNORM, + D2D1_ALPHA_MODE_IGNORE), + 0, + 0, + D2D1_RENDER_TARGET_USAGE_NONE, + D2D1_FEATURE_LEVEL_DEFAULT + ); + +hr = m_pD2DFactory->CreateDCRenderTarget(&props, &device->d2d); +#endif + +static cairo_bool_t is_win98 (void) +{ + OSVERSIONINFO os; + + os.dwOSVersionInfoSize = sizeof (os); + GetVersionEx (&os); + + return (VER_PLATFORM_WIN32_WINDOWS != os.dwPlatformId && + os.dwMajorVersion != 4 && + os.dwMinorVersion != 10); +} + +static void * +_cairo_win32_device_get_alpha_blend (cairo_win32_device_t *device) +{ + void *func = NULL; + + if (is_win98 ()) + return NULL; + + device->msimg32_dll = LoadLibraryW (L"msimg32"); + if (device->msimg32_dll) + func = GetProcAddress (device->msimg32_dll, "AlphaBlend"); + + return func; +} + +cairo_device_t * +_cairo_win32_device_get (void) +{ + cairo_win32_device_t *device; + + if (__cairo_win32_device) + return cairo_device_reference (__cairo_win32_device); + + device = malloc (sizeof (*device)); + + _cairo_device_init (&device->base, &_cairo_win32_device_backend); + + device->compositor = _cairo_win32_gdi_compositor_get (); + + device->msimg32_dll = NULL; + device->alpha_blend = _cairo_win32_device_get_alpha_blend (device); + + if (_cairo_atomic_ptr_cmpxchg ((void **)&__cairo_win32_device, NULL, device)) + return cairo_device_reference(&device->base); + + _cairo_win32_device_destroy (device); + return cairo_device_reference (__cairo_win32_device); +} + +unsigned +_cairo_win32_flags_for_dc (HDC dc) +{ + uint32_t flags = 0; + int cap; + + cap = GetDeviceCaps(dc, RASTERCAPS); + if (cap & RC_BITBLT) + flags |= CAIRO_WIN32_SURFACE_CAN_BITBLT; + if (cap & RC_STRETCHBLT) + flags |= CAIRO_WIN32_SURFACE_CAN_STRETCHBLT; + if (cap & RC_STRETCHDIB) + flags |= CAIRO_WIN32_SURFACE_CAN_STRETCHDIB; + + if (GetDeviceCaps(dc, TECHNOLOGY) == DT_RASDISPLAY) { + flags |= CAIRO_WIN32_SURFACE_IS_DISPLAY; + + /* These will always be possible, but the actual GetDeviceCaps + * calls will return whether they're accelerated or not. + * We may want to use our own (pixman) routines sometimes + * if they're eventually faster, but for now have GDI do + * everything. + */ +#if 0 + flags |= CAIRO_WIN32_SURFACE_CAN_BITBLT; + flags |= CAIRO_WIN32_SURFACE_CAN_ALPHABLEND; + flags |= CAIRO_WIN32_SURFACE_CAN_STRETCHBLT; + flags |= CAIRO_WIN32_SURFACE_CAN_STRETCHDIB; +#endif + } else { + cap = GetDeviceCaps(dc, SHADEBLENDCAPS); + if (cap != SB_NONE) + flags |= CAIRO_WIN32_SURFACE_CAN_ALPHABLEND; + } + + return flags; +} diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c new file mode 100644 index 0000000..7efa7d8 --- /dev/null +++ b/src/win32/cairo-win32-display-surface.c @@ -0,0 +1,1059 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + * Stuart Parmenter + * Vladimir Vukicevic + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" + +#include "cairo-clip-private.h" +#include "cairo-composite-rectangles-private.h" +#include "cairo-compositor-private.h" +#include "cairo-damage-private.h" +#include "cairo-default-context-private.h" +#include "cairo-error-private.h" +#include "cairo-image-surface-inline.h" +#include "cairo-paginated-private.h" +#include "cairo-pattern-private.h" +#include "cairo-win32-private.h" +#include "cairo-scaled-font-subsets-private.h" +#include "cairo-surface-fallback-private.h" +#include "cairo-surface-backend-private.h" + +#include +#include + +#if defined(__MINGW32__) && !defined(ETO_PDY) +# define ETO_PDY 0x2000 +#endif + +#define PELS_72DPI ((LONG)(72. / 0.0254)) + +/** + * SECTION:cairo-win32 + * @Title: Win32 Surfaces + * @Short_Description: Microsoft Windows surface support + * @See_Also: #cairo_surface_t + * + * The Microsoft Windows surface is used to render cairo graphics to + * Microsoft Windows windows, bitmaps, and printing device contexts. + * + * The surface returned by cairo_win32_printing_surface_create() is of surface + * type %CAIRO_SURFACE_TYPE_WIN32_PRINTING and is a multi-page vector surface + * type. + * + * The surface returned by the other win32 constructors is of surface type + * %CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type. + **/ + +/** + * CAIRO_HAS_WIN32_SURFACE: + * + * Defined if the Microsoft Windows surface backend is available. + * This macro can be used to conditionally compile backend-specific code. + * + * Since: 1.0 + **/ + +static const cairo_surface_backend_t cairo_win32_display_surface_backend; + +static cairo_status_t +_create_dc_and_bitmap (cairo_win32_display_surface_t *surface, + HDC original_dc, + cairo_format_t format, + int width, + int height, + unsigned char **bits_out, + int *rowstride_out) +{ + cairo_status_t status; + + BITMAPINFO *bitmap_info = NULL; + struct { + BITMAPINFOHEADER bmiHeader; + RGBQUAD bmiColors[2]; + } bmi_stack; + void *bits; + + int num_palette = 0; /* Quiet GCC */ + int i; + + surface->win32.dc = NULL; + surface->bitmap = NULL; + surface->is_dib = FALSE; + + switch (format) { + default: + case CAIRO_FORMAT_INVALID: + case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: + return _cairo_error (CAIRO_STATUS_INVALID_FORMAT); + case CAIRO_FORMAT_ARGB32: + case CAIRO_FORMAT_RGB24: + num_palette = 0; + break; + + case CAIRO_FORMAT_A8: + num_palette = 256; + break; + + case CAIRO_FORMAT_A1: + num_palette = 2; + break; + } + + if (num_palette > 2) { + bitmap_info = _cairo_malloc_ab_plus_c (num_palette, sizeof(RGBQUAD), sizeof(BITMAPINFOHEADER)); + if (!bitmap_info) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } else { + bitmap_info = (BITMAPINFO *)&bmi_stack; + } + + bitmap_info->bmiHeader.biSize = sizeof (BITMAPINFOHEADER); + bitmap_info->bmiHeader.biWidth = width == 0 ? 1 : width; + bitmap_info->bmiHeader.biHeight = height == 0 ? -1 : - height; /* top-down */ + bitmap_info->bmiHeader.biSizeImage = 0; + bitmap_info->bmiHeader.biXPelsPerMeter = PELS_72DPI; /* unused here */ + bitmap_info->bmiHeader.biYPelsPerMeter = PELS_72DPI; /* unused here */ + bitmap_info->bmiHeader.biPlanes = 1; + + switch (format) { + case CAIRO_FORMAT_INVALID: + case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: + ASSERT_NOT_REACHED; + /* We can't create real RGB24 bitmaps because something seems to + * break if we do, especially if we don't set up an image + * fallback. It could be a bug with using a 24bpp pixman image + * (and creating one with masks). So treat them like 32bpp. + * Note: This causes problems when using BitBlt/AlphaBlend/etc! + * see end of file. + */ + case CAIRO_FORMAT_RGB24: + case CAIRO_FORMAT_ARGB32: + bitmap_info->bmiHeader.biBitCount = 32; + bitmap_info->bmiHeader.biCompression = BI_RGB; + bitmap_info->bmiHeader.biClrUsed = 0; /* unused */ + bitmap_info->bmiHeader.biClrImportant = 0; + break; + + case CAIRO_FORMAT_A8: + bitmap_info->bmiHeader.biBitCount = 8; + bitmap_info->bmiHeader.biCompression = BI_RGB; + bitmap_info->bmiHeader.biClrUsed = 256; + bitmap_info->bmiHeader.biClrImportant = 0; + + for (i = 0; i < 256; i++) { + bitmap_info->bmiColors[i].rgbBlue = i; + bitmap_info->bmiColors[i].rgbGreen = i; + bitmap_info->bmiColors[i].rgbRed = i; + bitmap_info->bmiColors[i].rgbReserved = 0; + } + break; + + case CAIRO_FORMAT_A1: + bitmap_info->bmiHeader.biBitCount = 1; + bitmap_info->bmiHeader.biCompression = BI_RGB; + bitmap_info->bmiHeader.biClrUsed = 2; + bitmap_info->bmiHeader.biClrImportant = 0; + + for (i = 0; i < 2; i++) { + bitmap_info->bmiColors[i].rgbBlue = i * 255; + bitmap_info->bmiColors[i].rgbGreen = i * 255; + bitmap_info->bmiColors[i].rgbRed = i * 255; + bitmap_info->bmiColors[i].rgbReserved = 0; + } + break; + } + + surface->win32.dc = CreateCompatibleDC (original_dc); + if (!surface->win32.dc) + goto FAIL; + + surface->bitmap = CreateDIBSection (surface->win32.dc, + bitmap_info, + DIB_RGB_COLORS, + &bits, + NULL, 0); + if (!surface->bitmap) + goto FAIL; + + surface->is_dib = TRUE; + + GdiFlush(); + + surface->saved_dc_bitmap = SelectObject (surface->win32.dc, + surface->bitmap); + if (!surface->saved_dc_bitmap) + goto FAIL; + + if (bitmap_info && num_palette > 2) + free (bitmap_info); + + if (bits_out) + *bits_out = bits; + + if (rowstride_out) { + /* Windows bitmaps are padded to 32-bit (dword) boundaries */ + switch (format) { + case CAIRO_FORMAT_INVALID: + case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: + ASSERT_NOT_REACHED; + case CAIRO_FORMAT_ARGB32: + case CAIRO_FORMAT_RGB24: + *rowstride_out = 4 * width; + break; + + case CAIRO_FORMAT_A8: + *rowstride_out = (width + 3) & ~3; + break; + + case CAIRO_FORMAT_A1: + *rowstride_out = ((width + 31) & ~31) / 8; + break; + } + } + + surface->win32.flags = _cairo_win32_flags_for_dc (surface->win32.dc); + + return CAIRO_STATUS_SUCCESS; + + FAIL: + status = _cairo_win32_print_gdi_error (__FUNCTION__); + + if (bitmap_info && num_palette > 2) + free (bitmap_info); + + if (surface->saved_dc_bitmap) { + SelectObject (surface->win32.dc, surface->saved_dc_bitmap); + surface->saved_dc_bitmap = NULL; + } + + if (surface->bitmap) { + DeleteObject (surface->bitmap); + surface->bitmap = NULL; + } + + if (surface->win32.dc) { + DeleteDC (surface->win32.dc); + surface->win32.dc = NULL; + } + + return status; +} + +static cairo_surface_t * +_cairo_win32_display_surface_create_for_dc (HDC original_dc, + cairo_format_t format, + int width, + int height) +{ + cairo_status_t status; + cairo_device_t *device; + cairo_win32_display_surface_t *surface; + unsigned char *bits; + int rowstride; + + surface = malloc (sizeof (*surface)); + if (surface == NULL) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + surface->fallback = NULL; + + status = _create_dc_and_bitmap (surface, original_dc, format, + width, height, + &bits, &rowstride); + if (status) + goto FAIL; + + surface->image = cairo_image_surface_create_for_data (bits, format, + width, height, rowstride); + status = surface->image->status; + if (status) + goto FAIL; + + _cairo_image_surface_set_parent (to_image_surface(surface->image), + &surface->win32.base); + + surface->win32.format = format; + + surface->win32.extents.x = 0; + surface->win32.extents.y = 0; + surface->win32.extents.width = width; + surface->win32.extents.height = height; + + surface->initial_clip_rgn = NULL; + surface->had_simple_clip = FALSE; + + device = _cairo_win32_device_get (); + + _cairo_surface_init (&surface->win32.base, + &cairo_win32_display_surface_backend, + device, + _cairo_content_from_format (format)); + + cairo_device_destroy (device); + + return &surface->win32.base; + + FAIL: + if (surface->bitmap) { + SelectObject (surface->win32.dc, surface->saved_dc_bitmap); + DeleteObject (surface->bitmap); + DeleteDC (surface->win32.dc); + } + free (surface); + + return _cairo_surface_create_in_error (status); +} + +static cairo_surface_t * +_cairo_win32_display_surface_create_similar (void *abstract_src, + cairo_content_t content, + int width, + int height) +{ + cairo_win32_display_surface_t *src = abstract_src; + cairo_format_t format = _cairo_format_from_content (content); + cairo_surface_t *new_surf = NULL; + + /* We force a DIB always if: + * - we need alpha; or + * - the parent is a DIB; or + * - the parent is for printing (because we don't care about the + * bit depth at that point) + * + * We also might end up with a DIB even if a DDB is requested if + * DDB creation failed due to out of memory. + */ + if (!(src->is_dib || content & CAIRO_CONTENT_ALPHA)) { + /* try to create a ddb */ + new_surf = cairo_win32_surface_create_with_ddb (src->win32.dc, CAIRO_FORMAT_RGB24, width, height); + + if (new_surf->status) + new_surf = NULL; + } + + if (new_surf == NULL) { + new_surf = _cairo_win32_display_surface_create_for_dc (src->win32.dc, format, width, height); + } + + return new_surf; +} + +static cairo_surface_t * +_cairo_win32_display_surface_create_similar_image (void *abstract_other, + cairo_format_t format, + int width, + int height) +{ + cairo_win32_display_surface_t *surface = abstract_other; + + surface = (cairo_win32_display_surface_t *) + _cairo_win32_display_surface_create_for_dc (surface->win32.dc, + format, width, height); + if (surface->win32.base.status) + return &surface->win32.base; + + return surface->image; +} + +static cairo_status_t +_cairo_win32_display_surface_finish (void *abstract_surface) +{ + cairo_win32_display_surface_t *surface = abstract_surface; + + if (surface->image) { + /* Unhook ourselves first to avoid the double-unref from the image */ + to_image_surface(surface->image)->parent = NULL; + cairo_surface_finish (surface->image); + cairo_surface_destroy (surface->image); + } + + /* If we created the Bitmap and DC, destroy them */ + if (surface->bitmap) { + SelectObject (surface->win32.dc, surface->saved_dc_bitmap); + DeleteObject (surface->bitmap); + DeleteDC (surface->win32.dc); + } + + if (surface->initial_clip_rgn) + DeleteObject (surface->initial_clip_rgn); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_surface_t * +_cairo_win32_display_surface_map_to_image (void *abstract_surface, + const cairo_rectangle_int_t *extents) +{ + cairo_win32_display_surface_t *surface = abstract_surface; + cairo_status_t status; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->win32.base.unique_id)); + + if (surface->image) + goto done; + + if (surface->fallback == NULL) { + surface->fallback = + _cairo_win32_display_surface_create_for_dc (surface->win32.dc, + surface->win32.format, + surface->win32.extents.width, + surface->win32.extents.height); + if (unlikely (status = surface->fallback->status)) + goto err; + + if (!BitBlt (to_win32_surface(surface->fallback)->dc, + 0, 0, + surface->win32.extents.width, + surface->win32.extents.height, + surface->win32.dc, + 0, 0, + SRCCOPY)) { + status = _cairo_error (CAIRO_STATUS_DEVICE_ERROR); + goto err; + } + } + + surface = to_win32_display_surface (surface->fallback); +done: + GdiFlush(); + return _cairo_image_surface_map_to_image (surface->image, extents); + +err: + cairo_surface_destroy (surface->fallback); + surface->fallback = NULL; + + return _cairo_surface_create_in_error (status); +} + +static cairo_int_status_t +_cairo_win32_display_surface_unmap_image (void *abstract_surface, + cairo_image_surface_t *image) +{ + cairo_win32_display_surface_t *surface = abstract_surface; + + /* Delay the download until the next flush, which means we also need + * to make sure our sources rare flushed. + */ + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + if (surface->fallback) { + cairo_rectangle_int_t r; + + r.x = image->base.device_transform_inverse.x0; + r.y = image->base.device_transform_inverse.y0; + r.width = image->width; + r.height = image->height; + + TRACE ((stderr, "%s: adding damage (%d,%d)x(%d,%d)\n", + __FUNCTION__, r.x, r.y, r.width, r.height)); + surface->fallback->damage = + _cairo_damage_add_rectangle (surface->fallback->damage, &r); + } + + return CAIRO_INT_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_display_surface_flush (void *abstract_surface) +{ + cairo_win32_display_surface_t *surface = abstract_surface; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->win32.base.unique_id)); + if (surface->fallback == NULL) + return CAIRO_STATUS_SUCCESS; + + if (surface->fallback->damage) { + cairo_win32_display_surface_t *fallback; + cairo_damage_t *damage; + + damage = _cairo_damage_reduce (surface->fallback->damage); + surface->fallback->damage = NULL; + + fallback = to_win32_display_surface (surface->fallback); + assert (fallback->image); + + TRACE ((stderr, "%s: flushing damage x %d\n", __FUNCTION__, + damage->region ? cairo_region_num_rectangles (damage->region) : 0)); + + if (damage->status) { + if (!BitBlt (surface->win32.dc, + 0, 0, + surface->win32.extents.width, + surface->win32.extents.height, + fallback->win32.dc, + 0, 0, + SRCCOPY)) + status = _cairo_win32_print_gdi_error (__FUNCTION__); + } else if (damage->region) { + int n = cairo_region_num_rectangles (damage->region), i; + for (i = 0; i < n; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (damage->region, i, &rect); + TRACE ((stderr, "%s: damage (%d,%d)x(%d,%d)\n", __FUNCTION__, + rect.x, rect.y, + rect.width, rect.height)); + if (!BitBlt (surface->win32.dc, + rect.x, rect.y, + rect.width, rect.height, + fallback->win32.dc, + rect.x, rect.y, + SRCCOPY)) { + status = _cairo_win32_print_gdi_error (__FUNCTION__); + break; + } + } + } + _cairo_damage_destroy (damage); + } else { + cairo_surface_destroy (surface->fallback); + surface->fallback = NULL; + } + + return status; +} + +static cairo_status_t +_cairo_win32_display_surface_mark_dirty (void *abstract_surface, + int x, int y, int width, int height) +{ + _cairo_win32_display_surface_discard_fallback (abstract_surface); + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_win32_save_initial_clip (HDC hdc, cairo_win32_display_surface_t *surface) +{ + RECT rect; + int clipBoxType; + int gm; + XFORM saved_xform; + + /* GetClipBox/GetClipRgn and friends interact badly with a world transform + * set. GetClipBox returns values in logical (transformed) coordinates; + * it's unclear what GetClipRgn returns, because the region is empty in the + * case of a SIMPLEREGION clip, but I assume device (untransformed) coordinates. + * Similarly, IntersectClipRect works in logical units, whereas SelectClipRgn + * works in device units. + * + * So, avoid the whole mess and get rid of the world transform + * while we store our initial data and when we restore initial coordinates. + * + * XXX we may need to modify x/y by the ViewportOrg or WindowOrg + * here in GM_COMPATIBLE; unclear. + */ + gm = GetGraphicsMode (hdc); + if (gm == GM_ADVANCED) { + GetWorldTransform (hdc, &saved_xform); + ModifyWorldTransform (hdc, NULL, MWT_IDENTITY); + } + + clipBoxType = GetClipBox (hdc, &rect); + if (clipBoxType == ERROR) { + _cairo_win32_print_gdi_error (__FUNCTION__); + SetGraphicsMode (hdc, gm); + /* XXX: Can we make a more reasonable guess at the error cause here? */ + return _cairo_error (CAIRO_STATUS_DEVICE_ERROR); + } + + surface->win32.extents.x = rect.left; + surface->win32.extents.y = rect.top; + surface->win32.extents.width = rect.right - rect.left; + surface->win32.extents.height = rect.bottom - rect.top; + + surface->initial_clip_rgn = NULL; + surface->had_simple_clip = FALSE; + + if (clipBoxType == COMPLEXREGION) { + surface->initial_clip_rgn = CreateRectRgn (0, 0, 0, 0); + if (GetClipRgn (hdc, surface->initial_clip_rgn) <= 0) { + DeleteObject(surface->initial_clip_rgn); + surface->initial_clip_rgn = NULL; + } + } else if (clipBoxType == SIMPLEREGION) { + surface->had_simple_clip = TRUE; + } + + if (gm == GM_ADVANCED) + SetWorldTransform (hdc, &saved_xform); + + return CAIRO_STATUS_SUCCESS; +} + +cairo_status_t +_cairo_win32_display_surface_set_clip (cairo_win32_display_surface_t *surface, + cairo_clip_t *clip) +{ + char stack[512]; + cairo_rectangle_int_t extents; + int num_rects; + RGNDATA *data; + size_t data_size; + RECT *rects; + int i; + HRGN gdi_region; + cairo_status_t status; + cairo_region_t *region; + + /* The semantics we want is that any clip set by cairo combines + * is intersected with the clip on device context that the + * surface was created for. To implement this, we need to + * save the original clip when first setting a clip on surface. + */ + + assert (_cairo_clip_is_region (clip)); + region = _cairo_clip_get_region (clip); + if (region == NULL) + return CAIRO_STATUS_SUCCESS; + + cairo_region_get_extents (region, &extents); + num_rects = cairo_region_num_rectangles (region); + + /* XXX see notes in _cairo_win32_save_initial_clip -- + * this code will interact badly with a HDC which had an initial + * world transform -- we should probably manually transform the + * region rects, because SelectClipRgn takes device units, not + * logical units (unlike IntersectClipRect). + */ + + data_size = sizeof (RGNDATAHEADER) + num_rects * sizeof (RECT); + if (data_size > sizeof (stack)) { + data = malloc (data_size); + if (!data) + return _cairo_error(CAIRO_STATUS_NO_MEMORY); + } else + data = (RGNDATA *)stack; + + data->rdh.dwSize = sizeof (RGNDATAHEADER); + data->rdh.iType = RDH_RECTANGLES; + data->rdh.nCount = num_rects; + data->rdh.nRgnSize = num_rects * sizeof (RECT); + data->rdh.rcBound.left = extents.x; + data->rdh.rcBound.top = extents.y; + data->rdh.rcBound.right = extents.x + extents.width; + data->rdh.rcBound.bottom = extents.y + extents.height; + + rects = (RECT *)data->Buffer; + for (i = 0; i < num_rects; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + + rects[i].left = rect.x; + rects[i].top = rect.y; + rects[i].right = rect.x + rect.width; + rects[i].bottom = rect.y + rect.height; + } + + gdi_region = ExtCreateRegion (NULL, data_size, data); + if ((char *)data != stack) + free (data); + + if (!gdi_region) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + /* AND the new region into our DC */ + status = CAIRO_STATUS_SUCCESS; + if (ExtSelectClipRgn (surface->win32.dc, gdi_region, RGN_AND) == ERROR) + status = _cairo_win32_print_gdi_error (__FUNCTION__); + + DeleteObject (gdi_region); + + return status; +} + +void +_cairo_win32_display_surface_unset_clip (cairo_win32_display_surface_t *surface) +{ + XFORM saved_xform; + int gm = GetGraphicsMode (surface->win32.dc); + if (gm == GM_ADVANCED) { + GetWorldTransform (surface->win32.dc, &saved_xform); + ModifyWorldTransform (surface->win32.dc, NULL, MWT_IDENTITY); + } + + /* initial_clip_rgn will either be a real region or NULL (which means reset to no clip region) */ + SelectClipRgn (surface->win32.dc, surface->initial_clip_rgn); + + if (surface->had_simple_clip) { + /* then if we had a simple clip, intersect */ + IntersectClipRect (surface->win32.dc, + surface->win32.extents.x, + surface->win32.extents.y, + surface->win32.extents.x + surface->win32.extents.width, + surface->win32.extents.y + surface->win32.extents.height); + } + + if (gm == GM_ADVANCED) + SetWorldTransform (surface->win32.dc, &saved_xform); +} + +void +_cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *surface) +{ + if (surface->fallback) { + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, surface->win32.base.unique_id)); + + cairo_surface_destroy (surface->fallback); + surface->fallback = NULL; + } +} + +static cairo_int_status_t +_cairo_win32_display_surface_paint (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip) +{ + cairo_win32_device_t *device = to_win32_device_from_surface (surface); + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + if (clip == NULL && + (op == CAIRO_OPERATOR_SOURCE || op == CAIRO_OPERATOR_CLEAR)) + _cairo_win32_display_surface_discard_fallback (surface); + + return _cairo_compositor_paint (device->compositor, + surface, op, source, clip); +} + +static cairo_int_status_t +_cairo_win32_display_surface_mask (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_pattern_t *mask, + const cairo_clip_t *clip) +{ + cairo_win32_device_t *device = to_win32_device_from_surface (surface); + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + if (clip == NULL && op == CAIRO_OPERATOR_SOURCE) + _cairo_win32_display_surface_discard_fallback (surface); + + return _cairo_compositor_mask (device->compositor, + surface, op, source, mask, clip); +} + +static cairo_int_status_t +_cairo_win32_display_surface_stroke (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_win32_device_t *device = to_win32_device_from_surface (surface); + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + return _cairo_compositor_stroke (device->compositor, surface, + op, source, path, + style, ctm, ctm_inverse, + tolerance, antialias, clip); +} + +static cairo_int_status_t +_cairo_win32_display_surface_fill (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_win32_device_t *device = to_win32_device_from_surface (surface); + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + return _cairo_compositor_fill (device->compositor, surface, + op, source, path, + fill_rule, tolerance, antialias, + clip); +} + +static cairo_int_status_t +_cairo_win32_display_surface_glyphs (void *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + const cairo_clip_t *clip) +{ + cairo_win32_device_t *device = to_win32_device_from_surface (surface); + + TRACE ((stderr, "%s (surface=%d)\n", + __FUNCTION__, to_win32_surface(surface)->base.unique_id)); + + return _cairo_compositor_glyphs (device->compositor, surface, + op, source, + glyphs, num_glyphs, scaled_font, + clip); +} + +static const cairo_surface_backend_t cairo_win32_display_surface_backend = { + CAIRO_SURFACE_TYPE_WIN32, + _cairo_win32_display_surface_finish, + + _cairo_default_context_create, + + _cairo_win32_display_surface_create_similar, + _cairo_win32_display_surface_create_similar_image, + _cairo_win32_display_surface_map_to_image, + _cairo_win32_display_surface_unmap_image, + + _cairo_surface_default_source, + _cairo_surface_default_acquire_source_image, + _cairo_surface_default_release_source_image, + NULL, /* snapshot */ + + NULL, /* copy_page */ + NULL, /* show_page */ + + _cairo_win32_surface_get_extents, + NULL, /* get_font_options */ + + _cairo_win32_display_surface_flush, + _cairo_win32_display_surface_mark_dirty, + + _cairo_win32_display_surface_paint, + _cairo_win32_display_surface_mask, + _cairo_win32_display_surface_stroke, + _cairo_win32_display_surface_fill, + NULL, /* fill/stroke */ + _cairo_win32_display_surface_glyphs, +}; + +/* Notes: + * + * Win32 alpha-understanding functions + * + * BitBlt - will copy full 32 bits from a 32bpp DIB to result + * (so it's safe to use for ARGB32->ARGB32 SOURCE blits) + * (but not safe going RGB24->ARGB32, if RGB24 is also represented + * as a 32bpp DIB, since the alpha isn't discarded!) + * + * AlphaBlend - if both the source and dest have alpha, even if AC_SRC_ALPHA isn't set, + * it will still copy over the src alpha, because the SCA value (255) will be + * multiplied by all the src components. + */ + +/** + * cairo_win32_surface_create: + * @hdc: the DC to create a surface for + * + * Creates a cairo surface that targets the given DC. The DC will be + * queried for its initial clip extents, and this will be used as the + * size of the cairo surface. The resulting surface will always be of + * format %CAIRO_FORMAT_RGB24; should you need another surface format, + * you will need to create one through + * cairo_win32_surface_create_with_dib(). + * + * Return value: the newly created surface + * + * Since: 1.0 + **/ +cairo_surface_t * +cairo_win32_surface_create (HDC hdc) +{ + cairo_win32_display_surface_t *surface; + + cairo_format_t format; + cairo_status_t status; + cairo_device_t *device; + + /* Assume that everything coming in as a HDC is RGB24 */ + format = CAIRO_FORMAT_RGB24; + + surface = malloc (sizeof (*surface)); + if (surface == NULL) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + + status = _cairo_win32_save_initial_clip (hdc, surface); + if (status) { + free (surface); + return _cairo_surface_create_in_error (status); + } + + surface->image = NULL; + surface->fallback = NULL; + surface->win32.format = format; + + surface->win32.dc = hdc; + surface->bitmap = NULL; + surface->is_dib = FALSE; + surface->saved_dc_bitmap = NULL; + + surface->win32.flags = _cairo_win32_flags_for_dc (surface->win32.dc); + + device = _cairo_win32_device_get (); + + _cairo_surface_init (&surface->win32.base, + &cairo_win32_display_surface_backend, + device, + _cairo_content_from_format (format)); + + cairo_device_destroy (device); + + return &surface->win32.base; +} + +/** + * cairo_win32_surface_create_with_dib: + * @format: format of pixels in the surface to create + * @width: width of the surface, in pixels + * @height: height of the surface, in pixels + * + * Creates a device-independent-bitmap surface not associated with + * any particular existing surface or device context. The created + * bitmap will be uninitialized. + * + * Return value: the newly created surface + * + * Since: 1.2 + **/ +cairo_surface_t * +cairo_win32_surface_create_with_dib (cairo_format_t format, + int width, + int height) +{ + if (! CAIRO_FORMAT_VALID (format)) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); + + return _cairo_win32_display_surface_create_for_dc (NULL, format, width, height); +} + +/** + * cairo_win32_surface_create_with_ddb: + * @hdc: a DC compatible with the surface to create + * @format: format of pixels in the surface to create + * @width: width of the surface, in pixels + * @height: height of the surface, in pixels + * + * Creates a device-dependent-bitmap surface not associated with + * any particular existing surface or device context. The created + * bitmap will be uninitialized. + * + * Return value: the newly created surface + * + * Since: 1.4 + **/ +cairo_surface_t * +cairo_win32_surface_create_with_ddb (HDC hdc, + cairo_format_t format, + int width, + int height) +{ + cairo_win32_display_surface_t *new_surf; + HBITMAP ddb; + HDC screen_dc, ddb_dc; + HBITMAP saved_dc_bitmap; + + if (format != CAIRO_FORMAT_RGB24) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_FORMAT)); +/* XXX handle these eventually + format != CAIRO_FORMAT_A8 || + format != CAIRO_FORMAT_A1) +*/ + + if (!hdc) { + screen_dc = GetDC (NULL); + hdc = screen_dc; + } else { + screen_dc = NULL; + } + + ddb_dc = CreateCompatibleDC (hdc); + if (ddb_dc == NULL) { + new_surf = (cairo_win32_display_surface_t*) _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + goto FINISH; + } + + ddb = CreateCompatibleBitmap (hdc, width, height); + if (ddb == NULL) { + DeleteDC (ddb_dc); + + /* Note that if an app actually does hit this out of memory + * condition, it's going to have lots of other issues, as + * video memory is probably exhausted. However, it can often + * continue using DIBs instead of DDBs. + */ + new_surf = (cairo_win32_display_surface_t*) _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + goto FINISH; + } + + saved_dc_bitmap = SelectObject (ddb_dc, ddb); + + new_surf = (cairo_win32_display_surface_t*) cairo_win32_surface_create (ddb_dc); + new_surf->bitmap = ddb; + new_surf->saved_dc_bitmap = saved_dc_bitmap; + new_surf->is_dib = FALSE; + +FINISH: + if (screen_dc) + ReleaseDC (NULL, screen_dc); + + return &new_surf->win32.base; +} diff --git a/src/win32/cairo-win32-font.c b/src/win32/cairo-win32-font.c new file mode 100644 index 0000000..a65d81b --- /dev/null +++ b/src/win32/cairo-win32-font.c @@ -0,0 +1,2313 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as GetGlyphIndices */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" + +#include "cairo-win32-private.h" + +#include "cairo-array-private.h" +#include "cairo-error-private.h" +#include "cairo-image-surface-private.h" +#include "cairo-pattern-private.h" +#include "cairo-scaled-font-subsets-private.h" + +#include + +#ifndef SPI_GETFONTSMOOTHINGTYPE +#define SPI_GETFONTSMOOTHINGTYPE 0x200a +#endif +#ifndef FE_FONTSMOOTHINGCLEARTYPE +#define FE_FONTSMOOTHINGCLEARTYPE 2 +#endif +#ifndef CLEARTYPE_QUALITY +#define CLEARTYPE_QUALITY 5 +#endif +#ifndef TT_PRIM_CSPLINE +#define TT_PRIM_CSPLINE 3 +#endif + +#define CMAP_TAG 0x70616d63 + +/** + * SECTION:cairo-win32-fonts + * @Title: Win32 Fonts + * @Short_Description: Font support for Microsoft Windows + * @See_Also: #cairo_font_face_t + * + * The Microsoft Windows font backend is primarily used to render text on + * Microsoft Windows systems. + **/ + +/** + * CAIRO_HAS_WIN32_FONT: + * + * Defined if the Microsoft Windows font backend is available. + * This macro can be used to conditionally compile backend-specific code. + * + * Since: 1.8 + **/ + +const cairo_scaled_font_backend_t _cairo_win32_scaled_font_backend; + +typedef struct { + cairo_scaled_font_t base; + + LOGFONTW logfont; + + BYTE quality; + + /* We do drawing and metrics computation in a "logical space" which + * is similar to font space, except that it is scaled by a factor + * of the (desired font size) * (WIN32_FONT_LOGICAL_SCALE). The multiplication + * by WIN32_FONT_LOGICAL_SCALE allows for sub-pixel precision. + */ + double logical_scale; + + /* The size we should actually request the font at from Windows; differs + * from the logical_scale because it is quantized for orthogonal + * transformations + */ + double logical_size; + + /* Transformations from device <=> logical space + */ + cairo_matrix_t logical_to_device; + cairo_matrix_t device_to_logical; + + /* We special case combinations of 90-degree-rotations, scales and + * flips ... that is transformations that take the axes to the + * axes. If preserve_axes is true, then swap_axes/swap_x/swap_y + * encode the 8 possibilities for orientation (4 rotation angles with + * and without a flip), and scale_x, scale_y the scale components. + */ + cairo_bool_t preserve_axes; + cairo_bool_t swap_axes; + cairo_bool_t swap_x; + cairo_bool_t swap_y; + double x_scale; + double y_scale; + + /* The size of the design unit of the font + */ + int em_square; + + HFONT scaled_hfont; + HFONT unscaled_hfont; + + cairo_bool_t is_bitmap; + cairo_bool_t is_type1; + cairo_bool_t delete_scaled_hfont; + cairo_bool_t has_type1_notdef_index; + unsigned long type1_notdef_index; +} cairo_win32_scaled_font_t; + +static cairo_status_t +_cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font); + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_metrics (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph); + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_surface (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph); + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph); + +static void +_cairo_win32_font_face_destroy (void *abstract_face); + + +#define NEARLY_ZERO(d) (fabs(d) < (1. / 65536.)) + +static HDC +_get_global_font_dc (void) +{ + static HDC hdc; + + if (!hdc) { + hdc = CreateCompatibleDC (NULL); + if (!hdc) { + _cairo_win32_print_gdi_error ("_get_global_font_dc"); + return NULL; + } + + if (!SetGraphicsMode (hdc, GM_ADVANCED)) { + _cairo_win32_print_gdi_error ("_get_global_font_dc"); + DeleteDC (hdc); + return NULL; + } + } + + return hdc; +} + +static cairo_status_t +_compute_transform (cairo_win32_scaled_font_t *scaled_font, + cairo_matrix_t *sc) +{ + cairo_status_t status; + + if (NEARLY_ZERO (sc->yx) && NEARLY_ZERO (sc->xy) && + !NEARLY_ZERO(sc->xx) && !NEARLY_ZERO(sc->yy)) { + scaled_font->preserve_axes = TRUE; + scaled_font->x_scale = sc->xx; + scaled_font->swap_x = (sc->xx < 0); + scaled_font->y_scale = sc->yy; + scaled_font->swap_y = (sc->yy < 0); + scaled_font->swap_axes = FALSE; + + } else if (NEARLY_ZERO (sc->xx) && NEARLY_ZERO (sc->yy) && + !NEARLY_ZERO(sc->yx) && !NEARLY_ZERO(sc->xy)) { + scaled_font->preserve_axes = TRUE; + scaled_font->x_scale = sc->yx; + scaled_font->swap_x = (sc->yx < 0); + scaled_font->y_scale = sc->xy; + scaled_font->swap_y = (sc->xy < 0); + scaled_font->swap_axes = TRUE; + + } else { + scaled_font->preserve_axes = FALSE; + scaled_font->swap_x = scaled_font->swap_y = scaled_font->swap_axes = FALSE; + } + + if (scaled_font->preserve_axes) { + if (scaled_font->swap_x) + scaled_font->x_scale = - scaled_font->x_scale; + if (scaled_font->swap_y) + scaled_font->y_scale = - scaled_font->y_scale; + + scaled_font->logical_scale = WIN32_FONT_LOGICAL_SCALE * scaled_font->y_scale; + scaled_font->logical_size = WIN32_FONT_LOGICAL_SCALE * + _cairo_lround (scaled_font->y_scale); + } + + /* The font matrix has x and y "scale" components which we extract and + * use as character scale values. + */ + cairo_matrix_init (&scaled_font->logical_to_device, + sc->xx, sc->yx, sc->xy, sc->yy, 0, 0); + + if (!scaled_font->preserve_axes) { + status = _cairo_matrix_compute_basis_scale_factors (&scaled_font->logical_to_device, + &scaled_font->x_scale, &scaled_font->y_scale, + TRUE); /* XXX: Handle vertical text */ + if (status) + return status; + + scaled_font->logical_size = + _cairo_lround (WIN32_FONT_LOGICAL_SCALE * scaled_font->y_scale); + scaled_font->logical_scale = + WIN32_FONT_LOGICAL_SCALE * scaled_font->y_scale; + } + + cairo_matrix_scale (&scaled_font->logical_to_device, + 1.0 / scaled_font->logical_scale, + 1.0 / scaled_font->logical_scale); + + scaled_font->device_to_logical = scaled_font->logical_to_device; + + status = cairo_matrix_invert (&scaled_font->device_to_logical); + if (status) + cairo_matrix_init_identity (&scaled_font->device_to_logical); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_bool_t +_have_cleartype_quality (void) +{ + OSVERSIONINFO version_info; + + version_info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); + + if (!GetVersionEx (&version_info)) { + _cairo_win32_print_gdi_error ("_have_cleartype_quality"); + return FALSE; + } + + return (version_info.dwMajorVersion > 5 || + (version_info.dwMajorVersion == 5 && + version_info.dwMinorVersion >= 1)); /* XP or newer */ +} + +static BYTE +_get_system_quality (void) +{ + BOOL font_smoothing; + UINT smoothing_type; + + if (!SystemParametersInfo (SPI_GETFONTSMOOTHING, 0, &font_smoothing, 0)) { + _cairo_win32_print_gdi_error ("_get_system_quality"); + return DEFAULT_QUALITY; + } + + if (font_smoothing) { + if (_have_cleartype_quality ()) { + if (!SystemParametersInfo (SPI_GETFONTSMOOTHINGTYPE, + 0, &smoothing_type, 0)) { + _cairo_win32_print_gdi_error ("_get_system_quality"); + return DEFAULT_QUALITY; + } + + if (smoothing_type == FE_FONTSMOOTHINGCLEARTYPE) + return CLEARTYPE_QUALITY; + } + + return ANTIALIASED_QUALITY; + } else { + return DEFAULT_QUALITY; + } +} + +/* If face_hfont is non-%NULL then font_matrix must be a simple scale by some + * factor S, ctm must be the identity, logfont->lfHeight must be -S, + * logfont->lfWidth, logfont->lfEscapement, logfont->lfOrientation must + * all be 0, and face_hfont is the result of calling CreateFontIndirectW on + * logfont. + */ +static cairo_status_t +_win32_scaled_font_create (LOGFONTW *logfont, + HFONT face_hfont, + cairo_font_face_t *font_face, + const cairo_matrix_t *font_matrix, + const cairo_matrix_t *ctm, + const cairo_font_options_t *options, + cairo_scaled_font_t **font_out) +{ + HDC hdc; + cairo_win32_scaled_font_t *f; + cairo_matrix_t scale; + cairo_status_t status; + + hdc = _get_global_font_dc (); + if (hdc == NULL) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + f = malloc (sizeof(cairo_win32_scaled_font_t)); + if (f == NULL) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + f->logfont = *logfont; + + /* We don't have any control over the hinting style or subpixel + * order in the Win32 font API, so we ignore those parts of + * cairo_font_options_t. We use the 'antialias' field to set + * the 'quality'. + * + * XXX: The other option we could pay attention to, but don't + * here is the hint_metrics options. + */ + if (options->antialias == CAIRO_ANTIALIAS_DEFAULT) + f->quality = _get_system_quality (); + else { + switch (options->antialias) { + case CAIRO_ANTIALIAS_NONE: + f->quality = NONANTIALIASED_QUALITY; + break; + case CAIRO_ANTIALIAS_GRAY: + case CAIRO_ANTIALIAS_FAST: + case CAIRO_ANTIALIAS_GOOD: + f->quality = ANTIALIASED_QUALITY; + break; + case CAIRO_ANTIALIAS_SUBPIXEL: + case CAIRO_ANTIALIAS_BEST: + if (_have_cleartype_quality ()) + f->quality = CLEARTYPE_QUALITY; + else + f->quality = ANTIALIASED_QUALITY; + break; + case CAIRO_ANTIALIAS_DEFAULT: + ASSERT_NOT_REACHED; + } + } + + f->em_square = 0; + f->scaled_hfont = NULL; + f->unscaled_hfont = NULL; + f->has_type1_notdef_index = FALSE; + + if (f->quality == logfont->lfQuality || + (logfont->lfQuality == DEFAULT_QUALITY && + options->antialias == CAIRO_ANTIALIAS_DEFAULT)) { + /* If face_hfont is non-NULL, then we can use it to avoid creating our + * own --- because the constraints on face_hfont mentioned above + * guarantee it was created in exactly the same way that + * _win32_scaled_font_get_scaled_hfont would create it. + */ + f->scaled_hfont = face_hfont; + } + /* don't delete the hfont if we're using the one passed in to us */ + f->delete_scaled_hfont = !f->scaled_hfont; + + cairo_matrix_multiply (&scale, font_matrix, ctm); + status = _compute_transform (f, &scale); + if (status) + goto FAIL; + + status = _cairo_scaled_font_init (&f->base, font_face, + font_matrix, ctm, options, + &_cairo_win32_scaled_font_backend); + if (status) + goto FAIL; + + status = _cairo_win32_scaled_font_set_metrics (f); + if (status) { + _cairo_scaled_font_fini (&f->base); + goto FAIL; + } + + *font_out = &f->base; + return CAIRO_STATUS_SUCCESS; + + FAIL: + free (f); + return status; +} + +static cairo_status_t +_win32_scaled_font_set_world_transform (cairo_win32_scaled_font_t *scaled_font, + HDC hdc) +{ + XFORM xform; + + _cairo_matrix_to_win32_xform (&scaled_font->logical_to_device, &xform); + + if (!SetWorldTransform (hdc, &xform)) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_set_world_transform"); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_win32_scaled_font_set_identity_transform (HDC hdc) +{ + if (!ModifyWorldTransform (hdc, NULL, MWT_IDENTITY)) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_set_identity_transform"); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_win32_scaled_font_get_scaled_hfont (cairo_win32_scaled_font_t *scaled_font, + HFONT *hfont_out) +{ + if (!scaled_font->scaled_hfont) { + LOGFONTW logfont = scaled_font->logfont; + logfont.lfHeight = -scaled_font->logical_size; + logfont.lfWidth = 0; + logfont.lfEscapement = 0; + logfont.lfOrientation = 0; + logfont.lfQuality = scaled_font->quality; + + scaled_font->scaled_hfont = CreateFontIndirectW (&logfont); + if (!scaled_font->scaled_hfont) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_get_scaled_hfont"); + } + + *hfont_out = scaled_font->scaled_hfont; + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_win32_scaled_font_get_unscaled_hfont (cairo_win32_scaled_font_t *scaled_font, + HDC hdc, + HFONT *hfont_out) +{ + if (scaled_font->unscaled_hfont == NULL) { + OUTLINETEXTMETRIC *otm; + unsigned int otm_size; + HFONT scaled_hfont; + LOGFONTW logfont; + cairo_status_t status; + + status = _win32_scaled_font_get_scaled_hfont (scaled_font, + &scaled_hfont); + if (status) + return status; + + if (! SelectObject (hdc, scaled_hfont)) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:SelectObject"); + + otm_size = GetOutlineTextMetrics (hdc, 0, NULL); + if (! otm_size) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:GetOutlineTextMetrics"); + + otm = malloc (otm_size); + if (otm == NULL) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + if (! GetOutlineTextMetrics (hdc, otm_size, otm)) { + status = _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:GetOutlineTextMetrics"); + free (otm); + return status; + } + + scaled_font->em_square = otm->otmEMSquare; + free (otm); + + logfont = scaled_font->logfont; + logfont.lfHeight = -scaled_font->em_square; + logfont.lfWidth = 0; + logfont.lfEscapement = 0; + logfont.lfOrientation = 0; + logfont.lfQuality = scaled_font->quality; + + scaled_font->unscaled_hfont = CreateFontIndirectW (&logfont); + if (! scaled_font->unscaled_hfont) + return _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:CreateIndirect"); + } + + *hfont_out = scaled_font->unscaled_hfont; + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_scaled_font_select_unscaled_font (cairo_scaled_font_t *scaled_font, + HDC hdc) +{ + cairo_status_t status; + HFONT hfont; + HFONT old_hfont = NULL; + + status = _win32_scaled_font_get_unscaled_hfont ((cairo_win32_scaled_font_t *)scaled_font, hdc, &hfont); + if (status) + return status; + + old_hfont = SelectObject (hdc, hfont); + if (!old_hfont) + return _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_select_unscaled_font"); + + status = _win32_scaled_font_set_identity_transform (hdc); + if (status) { + SelectObject (hdc, old_hfont); + return status; + } + + SetMapMode (hdc, MM_TEXT); + + return CAIRO_STATUS_SUCCESS; +} + +cairo_bool_t +_cairo_win32_scaled_font_is_type1 (cairo_scaled_font_t *scaled_font) +{ + cairo_win32_scaled_font_t *win32_scaled_font; + + win32_scaled_font = (cairo_win32_scaled_font_t *) scaled_font; + + return win32_scaled_font->is_type1; +} + +cairo_bool_t +_cairo_win32_scaled_font_is_bitmap (cairo_scaled_font_t *scaled_font) +{ + cairo_win32_scaled_font_t *win32_scaled_font; + + win32_scaled_font = (cairo_win32_scaled_font_t *) scaled_font; + + return win32_scaled_font->is_bitmap; +} + +static void +_cairo_win32_scaled_font_done_unscaled_font (cairo_scaled_font_t *scaled_font) +{ +} + +/* implement the font backend interface */ + +static cairo_status_t +_cairo_win32_font_face_create_for_toy (cairo_toy_font_face_t *toy_face, + cairo_font_face_t **font_face) +{ + LOGFONTW logfont; + uint16_t *face_name; + int face_name_len; + cairo_status_t status; + + status = _cairo_utf8_to_utf16 (toy_face->family, -1, + &face_name, &face_name_len); + if (status) + return status; + + if (face_name_len > LF_FACESIZE - 1) + face_name_len = LF_FACESIZE - 1; + + memcpy (logfont.lfFaceName, face_name, sizeof (uint16_t) * face_name_len); + logfont.lfFaceName[face_name_len] = 0; + free (face_name); + + logfont.lfHeight = 0; /* filled in later */ + logfont.lfWidth = 0; /* filled in later */ + logfont.lfEscapement = 0; /* filled in later */ + logfont.lfOrientation = 0; /* filled in later */ + + switch (toy_face->weight) { + case CAIRO_FONT_WEIGHT_NORMAL: + default: + logfont.lfWeight = FW_NORMAL; + break; + case CAIRO_FONT_WEIGHT_BOLD: + logfont.lfWeight = FW_BOLD; + break; + } + + switch (toy_face->slant) { + case CAIRO_FONT_SLANT_NORMAL: + default: + logfont.lfItalic = FALSE; + break; + case CAIRO_FONT_SLANT_ITALIC: + case CAIRO_FONT_SLANT_OBLIQUE: + logfont.lfItalic = TRUE; + break; + } + + logfont.lfUnderline = FALSE; + logfont.lfStrikeOut = FALSE; + /* The docs for LOGFONT discourage using this, since the + * interpretation is locale-specific, but it's not clear what + * would be a better alternative. + */ + logfont.lfCharSet = DEFAULT_CHARSET; + logfont.lfOutPrecision = OUT_DEFAULT_PRECIS; + logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; + logfont.lfQuality = DEFAULT_QUALITY; /* filled in later */ + logfont.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE; + + *font_face = cairo_win32_font_face_create_for_logfontw (&logfont); + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_win32_scaled_font_fini (void *abstract_font) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + + if (scaled_font == NULL) + return; + + if (scaled_font->scaled_hfont && scaled_font->delete_scaled_hfont) + DeleteObject (scaled_font->scaled_hfont); + + if (scaled_font->unscaled_hfont) + DeleteObject (scaled_font->unscaled_hfont); +} + +static cairo_int_status_t +_cairo_win32_scaled_font_type1_text_to_glyphs (cairo_win32_scaled_font_t *scaled_font, + double x, + double y, + const char *utf8, + cairo_glyph_t **glyphs, + int *num_glyphs) +{ + uint16_t *utf16; + int n16; + int i; + WORD *glyph_indices = NULL; + cairo_status_t status; + double x_pos, y_pos; + HDC hdc = NULL; + cairo_matrix_t mat; + + status = _cairo_utf8_to_utf16 (utf8, -1, &utf16, &n16); + if (status) + return status; + + glyph_indices = _cairo_malloc_ab (n16 + 1, sizeof (WORD)); + if (!glyph_indices) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL1; + } + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + goto FAIL2; + + if (GetGlyphIndicesW (hdc, utf16, n16, glyph_indices, 0) == GDI_ERROR) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_type1_text_to_glyphs:GetGlyphIndicesW"); + goto FAIL3; + } + + *num_glyphs = n16; + *glyphs = _cairo_malloc_ab (n16, sizeof (cairo_glyph_t)); + if (!*glyphs) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL3; + } + + x_pos = x; + y_pos = y; + + mat = scaled_font->base.ctm; + status = cairo_matrix_invert (&mat); + assert (status == CAIRO_STATUS_SUCCESS); + + _cairo_scaled_font_freeze_cache (&scaled_font->base); + + for (i = 0; i < n16; i++) { + cairo_scaled_glyph_t *scaled_glyph; + + (*glyphs)[i].index = glyph_indices[i]; + (*glyphs)[i].x = x_pos; + (*glyphs)[i].y = y_pos; + + status = _cairo_scaled_glyph_lookup (&scaled_font->base, + glyph_indices[i], + CAIRO_SCALED_GLYPH_INFO_METRICS, + &scaled_glyph); + if (status) { + free (*glyphs); + *glyphs = NULL; + break; + } + + x = scaled_glyph->x_advance; + y = scaled_glyph->y_advance; + cairo_matrix_transform_distance (&mat, &x, &y); + x_pos += x; + y_pos += y; + } + + _cairo_scaled_font_thaw_cache (&scaled_font->base); + +FAIL3: + cairo_win32_scaled_font_done_font (&scaled_font->base); +FAIL2: + free (glyph_indices); +FAIL1: + free (utf16); + + return status; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, + double x, + double y, + const char *utf8, + cairo_glyph_t **glyphs, + int *num_glyphs) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + uint16_t *utf16; + int n16; + GCP_RESULTSW gcp_results; + unsigned int buffer_size, i; + WCHAR *glyph_indices = NULL; + int *dx = NULL; + cairo_status_t status; + double x_pos, y_pos; + double x_incr, y_incr; + HDC hdc = NULL; + + /* GetCharacterPlacement() returns utf16 instead of glyph indices + * for Type 1 fonts. Use GetGlyphIndices for Type 1 fonts. */ + if (scaled_font->is_type1) + return _cairo_win32_scaled_font_type1_text_to_glyphs (scaled_font, + x, + y, + utf8, + glyphs, + num_glyphs); + + /* Compute a vector in user space along the baseline of length one logical space unit */ + x_incr = 1; + y_incr = 0; + cairo_matrix_transform_distance (&scaled_font->base.font_matrix, &x_incr, &y_incr); + x_incr /= scaled_font->logical_scale; + y_incr /= scaled_font->logical_scale; + + status = _cairo_utf8_to_utf16 (utf8, -1, &utf16, &n16); + if (status) + return status; + + gcp_results.lStructSize = sizeof (GCP_RESULTS); + gcp_results.lpOutString = NULL; + gcp_results.lpOrder = NULL; + gcp_results.lpCaretPos = NULL; + gcp_results.lpClass = NULL; + + buffer_size = MAX (n16 * 1.2, 16); /* Initially guess number of chars plus a few */ + if (buffer_size > INT_MAX) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL1; + } + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + goto FAIL1; + + while (TRUE) { + free (glyph_indices); + glyph_indices = NULL; + + free (dx); + dx = NULL; + + glyph_indices = _cairo_malloc_ab (buffer_size, sizeof (WCHAR)); + dx = _cairo_malloc_ab (buffer_size, sizeof (int)); + if (!glyph_indices || !dx) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL2; + } + + gcp_results.nGlyphs = buffer_size; + gcp_results.lpDx = dx; + gcp_results.lpGlyphs = glyph_indices; + + if (!GetCharacterPlacementW (hdc, utf16, n16, + 0, + &gcp_results, + GCP_DIACRITIC | GCP_LIGATE | GCP_GLYPHSHAPE | GCP_REORDER)) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_text_to_glyphs"); + goto FAIL2; + } + + if (gcp_results.lpDx && gcp_results.lpGlyphs) + break; + + /* Too small a buffer, try again */ + + buffer_size += buffer_size / 2; + if (buffer_size > INT_MAX) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL2; + } + } + + *num_glyphs = gcp_results.nGlyphs; + *glyphs = _cairo_malloc_ab (gcp_results.nGlyphs, sizeof (cairo_glyph_t)); + if (!*glyphs) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL2; + } + + x_pos = x; + y_pos = y; + + for (i = 0; i < gcp_results.nGlyphs; i++) { + (*glyphs)[i].index = glyph_indices[i]; + (*glyphs)[i].x = x_pos ; + (*glyphs)[i].y = y_pos; + + x_pos += x_incr * dx[i]; + y_pos += y_incr * dx[i]; + } + + FAIL2: + free (glyph_indices); + free (dx); + + cairo_win32_scaled_font_done_font (&scaled_font->base); + + FAIL1: + free (utf16); + + return status; +} + +static unsigned long +_cairo_win32_scaled_font_ucs4_to_index (void *abstract_font, + uint32_t ucs4) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + wchar_t unicode[2]; + WORD glyph_index; + HDC hdc = NULL; + cairo_status_t status; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return 0; + + unicode[0] = ucs4; + unicode[1] = 0; + if (GetGlyphIndicesW (hdc, unicode, 1, &glyph_index, 0) == GDI_ERROR) { + _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_ucs4_to_index:GetGlyphIndicesW"); + glyph_index = 0; + } + + cairo_win32_scaled_font_done_font (&scaled_font->base); + + return glyph_index; +} + +static cairo_status_t +_cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font) +{ + cairo_status_t status; + cairo_font_extents_t extents; + + TEXTMETRIC metrics; + HDC hdc; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + if (scaled_font->preserve_axes || scaled_font->base.options.hint_metrics == CAIRO_HINT_METRICS_OFF) { + /* For 90-degree rotations (including 0), we get the metrics + * from the GDI in logical space, then convert back to font space + */ + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + GetTextMetrics (hdc, &metrics); + cairo_win32_scaled_font_done_font (&scaled_font->base); + + extents.ascent = metrics.tmAscent / scaled_font->logical_scale; + extents.descent = metrics.tmDescent / scaled_font->logical_scale; + + extents.height = (metrics.tmHeight + metrics.tmExternalLeading) / scaled_font->logical_scale; + extents.max_x_advance = metrics.tmMaxCharWidth / scaled_font->logical_scale; + extents.max_y_advance = 0; + + } else { + /* For all other transformations, we use the design metrics + * of the font. The GDI results from GetTextMetrics() on a + * transformed font are inexplicably large and we want to + * avoid them. + */ + status = _cairo_win32_scaled_font_select_unscaled_font (&scaled_font->base, hdc); + if (status) + return status; + GetTextMetrics (hdc, &metrics); + _cairo_win32_scaled_font_done_unscaled_font (&scaled_font->base); + + extents.ascent = (double)metrics.tmAscent / scaled_font->em_square; + extents.descent = (double)metrics.tmDescent / scaled_font->em_square; + extents.height = (double)(metrics.tmHeight + metrics.tmExternalLeading) / scaled_font->em_square; + extents.max_x_advance = (double)(metrics.tmMaxCharWidth) / scaled_font->em_square; + extents.max_y_advance = 0; + + } + + scaled_font->is_bitmap = !(metrics.tmPitchAndFamily & TMPF_VECTOR); + + /* Need to determine if this is a Type 1 font for the special + * handling in _text_to_glyphs. Unlike TrueType or OpenType, + * Type1 fonts do not have a "cmap" table (or any other table). + * However GetFontData() will retrieve a Type1 font when + * requesting that GetFontData() retrieve data from the start of + * the file. This is to distinguish Type1 from stroke fonts such + * as "Script" and "Modern". The TMPF_TRUETYPE test is redundant + * but improves performance for the most common fonts. + */ + scaled_font->is_type1 = FALSE; + if (!(metrics.tmPitchAndFamily & TMPF_TRUETYPE) && + (metrics.tmPitchAndFamily & TMPF_VECTOR)) + { + if ((GetFontData (hdc, CMAP_TAG, 0, NULL, 0) == GDI_ERROR) && + (GetFontData (hdc, 0, 0, NULL, 0) != GDI_ERROR)) + { + scaled_font->is_type1 = TRUE; + } + } + + return _cairo_scaled_font_set_metrics (&scaled_font->base, &extents); +} + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_metrics (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph) +{ + static const MAT2 matrix = { { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0, 1 } }; + GLYPHMETRICS metrics; + cairo_status_t status; + cairo_text_extents_t extents; + HDC hdc; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + if (scaled_font->is_bitmap) { + /* GetGlyphOutline will not work. Assume that the glyph does not extend outside the font box. */ + cairo_font_extents_t font_extents; + INT width = 0; + UINT charIndex = _cairo_scaled_glyph_index (scaled_glyph); + + cairo_scaled_font_extents (&scaled_font->base, &font_extents); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + + if (!GetCharWidth32(hdc, charIndex, charIndex, &width)) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_init_glyph_metrics:GetCharWidth32"); + width = 0; + } + cairo_win32_scaled_font_done_font (&scaled_font->base); + if (status) + return status; + + extents.x_bearing = 0; + extents.y_bearing = scaled_font->base.ctm.yy * (-font_extents.ascent / scaled_font->y_scale); + extents.width = width / (WIN32_FONT_LOGICAL_SCALE * scaled_font->x_scale); + extents.height = scaled_font->base.ctm.yy * (font_extents.ascent + font_extents.descent) / scaled_font->y_scale; + extents.x_advance = extents.width; + extents.y_advance = 0; + } else if (scaled_font->preserve_axes && scaled_font->base.options.hint_metrics != CAIRO_HINT_METRICS_OFF) { + /* If we aren't rotating / skewing the axes, then we get the metrics + * from the GDI in device space and convert to font space. + */ + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + + if (GetGlyphOutlineW (hdc, _cairo_scaled_glyph_index (scaled_glyph), + GGO_METRICS | GGO_GLYPH_INDEX, + &metrics, 0, NULL, &matrix) == GDI_ERROR) { + memset (&metrics, 0, sizeof (GLYPHMETRICS)); + } else { + if (metrics.gmBlackBoxX > 0 && scaled_font->base.options.antialias != CAIRO_ANTIALIAS_NONE) { + /* The bounding box reported by Windows supposedly contains the glyph's "black" area; + * however, antialiasing (especially with ClearType) means that the actual image that + * needs to be rendered may "bleed" into the adjacent pixels, mainly on the right side. + * To avoid clipping the glyphs when drawn by _cairo_surface_fallback_show_glyphs, + * for example, or other code that uses glyph extents to determine the area to update, + * we add a pixel of "slop" to left side of the nominal "black" area returned by GDI, + * and two pixels to the right (as tests show some glyphs bleed into this column). + */ + metrics.gmptGlyphOrigin.x -= 1; + metrics.gmBlackBoxX += 3; + } + } + cairo_win32_scaled_font_done_font (&scaled_font->base); + + if (scaled_font->swap_axes) { + extents.x_bearing = - metrics.gmptGlyphOrigin.y / scaled_font->y_scale; + extents.y_bearing = metrics.gmptGlyphOrigin.x / scaled_font->x_scale; + extents.width = metrics.gmBlackBoxY / scaled_font->y_scale; + extents.height = metrics.gmBlackBoxX / scaled_font->x_scale; + extents.x_advance = metrics.gmCellIncY / scaled_font->x_scale; + extents.y_advance = metrics.gmCellIncX / scaled_font->y_scale; + } else { + extents.x_bearing = metrics.gmptGlyphOrigin.x / scaled_font->x_scale; + extents.y_bearing = - metrics.gmptGlyphOrigin.y / scaled_font->y_scale; + extents.width = metrics.gmBlackBoxX / scaled_font->x_scale; + extents.height = metrics.gmBlackBoxY / scaled_font->y_scale; + extents.x_advance = metrics.gmCellIncX / scaled_font->x_scale; + extents.y_advance = metrics.gmCellIncY / scaled_font->y_scale; + } + + if (scaled_font->swap_x) { + extents.x_bearing = (- extents.x_bearing - extents.width); + extents.x_advance = - extents.x_advance; + } + + if (scaled_font->swap_y) { + extents.y_bearing = (- extents.y_bearing - extents.height); + extents.y_advance = - extents.y_advance; + } + } else { + /* For all other transformations, we use the design metrics + * of the font. + */ + status = _cairo_win32_scaled_font_select_unscaled_font (&scaled_font->base, hdc); + if (status) + return status; + + if (GetGlyphOutlineW (hdc, _cairo_scaled_glyph_index (scaled_glyph), + GGO_METRICS | GGO_GLYPH_INDEX, + &metrics, 0, NULL, &matrix) == GDI_ERROR) { + memset (&metrics, 0, sizeof (GLYPHMETRICS)); + } + _cairo_win32_scaled_font_done_unscaled_font (&scaled_font->base); + + extents.x_bearing = (double)metrics.gmptGlyphOrigin.x / scaled_font->em_square; + extents.y_bearing = - (double)metrics.gmptGlyphOrigin.y / scaled_font->em_square; + extents.width = (double)metrics.gmBlackBoxX / scaled_font->em_square; + extents.height = (double)metrics.gmBlackBoxY / scaled_font->em_square; + extents.x_advance = (double)metrics.gmCellIncX / scaled_font->em_square; + extents.y_advance = (double)metrics.gmCellIncY / scaled_font->em_square; + } + + _cairo_scaled_glyph_set_metrics (scaled_glyph, + &scaled_font->base, + &extents); + + return CAIRO_STATUS_SUCCESS; +} + +/* Not currently used code, but may be useful in the future if we add + * back the capability to the scaled font backend interface to get the + * actual device space bbox rather than computing it from the + * font-space metrics. + */ +#if 0 +static cairo_status_t +_cairo_win32_scaled_font_glyph_bbox (void *abstract_font, + const cairo_glyph_t *glyphs, + int num_glyphs, + cairo_box_t *bbox) +{ + static const MAT2 matrix = { { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0, 1 } }; + cairo_win32_scaled_font_t *scaled_font = abstract_font; + int x1 = 0, x2 = 0, y1 = 0, y2 = 0; + + if (num_glyphs > 0) { + HDC hdc; + GLYPHMETRICS metrics; + cairo_status_t status; + int i; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + + for (i = 0; i < num_glyphs; i++) { + int x = _cairo_lround (glyphs[i].x); + int y = _cairo_lround (glyphs[i].y); + + GetGlyphOutlineW (hdc, glyphs[i].index, GGO_METRICS | GGO_GLYPH_INDEX, + &metrics, 0, NULL, &matrix); + + if (i == 0 || x1 > x + metrics.gmptGlyphOrigin.x) + x1 = x + metrics.gmptGlyphOrigin.x; + if (i == 0 || y1 > y - metrics.gmptGlyphOrigin.y) + y1 = y - metrics.gmptGlyphOrigin.y; + if (i == 0 || x2 < x + metrics.gmptGlyphOrigin.x + (int)metrics.gmBlackBoxX) + x2 = x + metrics.gmptGlyphOrigin.x + (int)metrics.gmBlackBoxX; + if (i == 0 || y2 < y - metrics.gmptGlyphOrigin.y + (int)metrics.gmBlackBoxY) + y2 = y - metrics.gmptGlyphOrigin.y + (int)metrics.gmBlackBoxY; + } + + cairo_win32_scaled_font_done_font (&scaled_font->base); + } + + bbox->p1.x = _cairo_fixed_from_int (x1); + bbox->p1.y = _cairo_fixed_from_int (y1); + bbox->p2.x = _cairo_fixed_from_int (x2); + bbox->p2.y = _cairo_fixed_from_int (y2); + + return CAIRO_STATUS_SUCCESS; +} +#endif + +typedef struct { + cairo_win32_scaled_font_t *scaled_font; + HDC hdc; + + cairo_array_t glyphs; + cairo_array_t dx; + + int start_x; + int last_x; + int last_y; +} cairo_glyph_state_t; + +static void +_start_glyphs (cairo_glyph_state_t *state, + cairo_win32_scaled_font_t *scaled_font, + HDC hdc) +{ + state->hdc = hdc; + state->scaled_font = scaled_font; + + _cairo_array_init (&state->glyphs, sizeof (WCHAR)); + _cairo_array_init (&state->dx, sizeof (int)); +} + +static cairo_status_t +_flush_glyphs (cairo_glyph_state_t *state) +{ + cairo_status_t status; + int dx = 0; + WCHAR * elements; + int * dx_elements; + + status = _cairo_array_append (&state->dx, &dx); + if (status) + return status; + + elements = _cairo_array_index (&state->glyphs, 0); + dx_elements = _cairo_array_index (&state->dx, 0); + if (!ExtTextOutW (state->hdc, + state->start_x, state->last_y, + ETO_GLYPH_INDEX, + NULL, + elements, + state->glyphs.num_elements, + dx_elements)) { + return _cairo_win32_print_gdi_error ("_flush_glyphs"); + } + + _cairo_array_truncate (&state->glyphs, 0); + _cairo_array_truncate (&state->dx, 0); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_add_glyph (cairo_glyph_state_t *state, + unsigned long index, + double device_x, + double device_y) +{ + cairo_status_t status; + double user_x = device_x; + double user_y = device_y; + WCHAR glyph_index = index; + int logical_x, logical_y; + + cairo_matrix_transform_point (&state->scaled_font->device_to_logical, &user_x, &user_y); + + logical_x = _cairo_lround (user_x); + logical_y = _cairo_lround (user_y); + + if (state->glyphs.num_elements > 0) { + int dx; + + if (logical_y != state->last_y) { + status = _flush_glyphs (state); + if (status) + return status; + state->start_x = logical_x; + } else { + dx = logical_x - state->last_x; + status = _cairo_array_append (&state->dx, &dx); + if (status) + return status; + } + } else { + state->start_x = logical_x; + } + + state->last_x = logical_x; + state->last_y = logical_y; + + status = _cairo_array_append (&state->glyphs, &glyph_index); + if (status) + return status; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_finish_glyphs (cairo_glyph_state_t *state) +{ + cairo_status_t status; + + status = _flush_glyphs (state); + + _cairo_array_fini (&state->glyphs); + _cairo_array_fini (&state->dx); + + return status; +} + +static cairo_status_t +_draw_glyphs_on_surface (cairo_win32_surface_t *surface, + cairo_win32_scaled_font_t *scaled_font, + COLORREF color, + int x_offset, + int y_offset, + const cairo_glyph_t *glyphs, + int num_glyphs) +{ + cairo_glyph_state_t state; + cairo_status_t status, status2; + int i; + + if (!SaveDC (surface->dc)) + return _cairo_win32_print_gdi_error ("_draw_glyphs_on_surface:SaveDC"); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, surface->dc); + if (status) + goto FAIL1; + + SetTextColor (surface->dc, color); + SetTextAlign (surface->dc, TA_BASELINE | TA_LEFT); + SetBkMode (surface->dc, TRANSPARENT); + + _start_glyphs (&state, scaled_font, surface->dc); + + for (i = 0; i < num_glyphs; i++) { + status = _add_glyph (&state, glyphs[i].index, + glyphs[i].x - x_offset, glyphs[i].y - y_offset); + if (status) + goto FAIL2; + } + + FAIL2: + status2 = _finish_glyphs (&state); + if (status == CAIRO_STATUS_SUCCESS) + status = status2; + + cairo_win32_scaled_font_done_font (&scaled_font->base); + FAIL1: + RestoreDC (surface->dc, -1); + + return status; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_glyph_init (void *abstract_font, + cairo_scaled_glyph_t *scaled_glyph, + cairo_scaled_glyph_info_t info) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + cairo_status_t status; + + if ((info & CAIRO_SCALED_GLYPH_INFO_METRICS) != 0) { + status = _cairo_win32_scaled_font_init_glyph_metrics (scaled_font, scaled_glyph); + if (status) + return status; + } + + if (info & CAIRO_SCALED_GLYPH_INFO_SURFACE) { + status = _cairo_win32_scaled_font_init_glyph_surface (scaled_font, scaled_glyph); + if (status) + return status; + } + + if ((info & CAIRO_SCALED_GLYPH_INFO_PATH) != 0) { + status = _cairo_win32_scaled_font_init_glyph_path (scaled_font, scaled_glyph); + if (status) + return status; + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_load_truetype_table (void *abstract_font, + unsigned long tag, + long offset, + unsigned char *buffer, + unsigned long *length) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + HDC hdc; + cairo_status_t status; + DWORD ret; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + tag = (tag&0x000000ff)<<24 | (tag&0x0000ff00)<<8 | (tag&0x00ff0000)>>8 | (tag&0xff000000)>>24; + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + + ret = GetFontData (hdc, tag, offset, buffer, *length); + if (ret == GDI_ERROR || (buffer && ret != *length)) + status = CAIRO_INT_STATUS_UNSUPPORTED; + else + *length = ret; + + cairo_win32_scaled_font_done_font (&scaled_font->base); + + return status; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_index_to_ucs4 (void *abstract_font, + unsigned long index, + uint32_t *ucs4) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + GLYPHSET *glyph_set; + uint16_t *utf16 = NULL; + WORD *glyph_indices = NULL; + HDC hdc = NULL; + int res; + unsigned int i, j, num_glyphs; + cairo_status_t status; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + if (status) + return status; + + res = GetFontUnicodeRanges(hdc, NULL); + if (res == 0) { + status = _cairo_win32_print_gdi_error ( + "_cairo_win32_scaled_font_index_to_ucs4:GetFontUnicodeRanges"); + goto exit1; + } + + glyph_set = malloc (res); + if (glyph_set == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto exit1; + } + + res = GetFontUnicodeRanges(hdc, glyph_set); + if (res == 0) { + status = _cairo_win32_print_gdi_error ( + "_cairo_win32_scaled_font_index_to_ucs4:GetFontUnicodeRanges"); + goto exit1; + } + + *ucs4 = (uint32_t) -1; + for (i = 0; i < glyph_set->cRanges; i++) { + num_glyphs = glyph_set->ranges[i].cGlyphs; + + utf16 = _cairo_malloc_ab (num_glyphs + 1, sizeof (uint16_t)); + if (utf16 == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto exit1; + } + + glyph_indices = _cairo_malloc_ab (num_glyphs + 1, sizeof (WORD)); + if (glyph_indices == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto exit2; + } + + for (j = 0; j < num_glyphs; j++) + utf16[j] = glyph_set->ranges[i].wcLow + j; + utf16[j] = 0; + + if (GetGlyphIndicesW (hdc, utf16, num_glyphs, glyph_indices, 0) == GDI_ERROR) { + status = _cairo_win32_print_gdi_error ( + "_cairo_win32_scaled_font_index_to_ucs4:GetGlyphIndicesW"); + goto exit2; + } + + for (j = 0; j < num_glyphs; j++) { + if (glyph_indices[j] == index) { + *ucs4 = utf16[j]; + goto exit2; + } + } + + free (glyph_indices); + glyph_indices = NULL; + free (utf16); + utf16 = NULL; + } + +exit2: + free (glyph_indices); + free (utf16); + free (glyph_set); +exit1: + cairo_win32_scaled_font_done_font (&scaled_font->base); + + return status; +} + +static cairo_bool_t +_cairo_win32_scaled_font_is_synthetic (void *abstract_font) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + cairo_status_t status; + int weight; + cairo_bool_t bold; + cairo_bool_t italic; + + status = _cairo_truetype_get_style (&scaled_font->base, + &weight, + &bold, + &italic); + /* If this doesn't work assume it is not synthetic to avoid + * unnecessary subsetting fallbacks. */ + if (status != CAIRO_STATUS_SUCCESS) + return FALSE; + + if (scaled_font->logfont.lfWeight != weight || + scaled_font->logfont.lfItalic != italic) + return TRUE; + + return FALSE; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_index_to_glyph_name (void *abstract_font, + char **glyph_names, + int num_glyph_names, + unsigned long glyph_index, + unsigned long *glyph_array_index) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + int i; + + /* Windows puts .notdef at index 0 then numbers the remaining + * glyphs starting from 1 in the order they appear in the font. */ + + /* Find the position of .notdef in the list of glyph names. We + * only need to do this once per scaled font. */ + if (! scaled_font->has_type1_notdef_index) { + for (i = 0; i < num_glyph_names; i++) { + if (strcmp (glyph_names[i], ".notdef") == 0) { + scaled_font->type1_notdef_index = i; + scaled_font->has_type1_notdef_index = TRUE; + break; + } + } + if (! scaled_font->has_type1_notdef_index) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + + /* Once we know the position of .notdef the position of any glyph + * in the font can easily be obtained. */ + if (glyph_index == 0) + *glyph_array_index = scaled_font->type1_notdef_index; + else if (glyph_index <= scaled_font->type1_notdef_index) + *glyph_array_index = glyph_index - 1; + else if (glyph_index < (unsigned long)num_glyph_names) + *glyph_array_index = glyph_index; + else + return CAIRO_INT_STATUS_UNSUPPORTED; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_win32_scaled_font_load_type1_data (void *abstract_font, + long offset, + unsigned char *buffer, + unsigned long *length) +{ + cairo_win32_scaled_font_t *scaled_font = abstract_font; + + if (! scaled_font->is_type1) + return CAIRO_INT_STATUS_UNSUPPORTED; + + /* Using the tag 0 retrieves the entire font file. This works with + * Type 1 fonts as well as TTF/OTF fonts. */ + return _cairo_win32_scaled_font_load_truetype_table (scaled_font, + 0, + offset, + buffer, + length); +} + +static cairo_surface_t * +_compute_mask (cairo_surface_t *surface, + int quality) +{ + cairo_image_surface_t *glyph; + cairo_image_surface_t *mask; + int i, j; + + glyph = (cairo_image_surface_t *)cairo_surface_map_to_image (surface, NULL); + if (unlikely (glyph->base.status)) + return &glyph->base; + + if (quality == CLEARTYPE_QUALITY) { + /* Duplicate the green channel of a 4-channel mask into the + * alpha channel, then invert the whole mask. + */ + mask = (cairo_image_surface_t *) + cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + glyph->width, glyph->height); + if (likely (mask->base.status == CAIRO_STATUS_SUCCESS)) { + for (i = 0; i < glyph->height; i++) { + uint32_t *p = (uint32_t *) (glyph->data + i * glyph->stride); + uint32_t *q = (uint32_t *) (mask->data + i * mask->stride); + + for (j = 0; j < glyph->width; j++) { + *q++ = 0xffffffff ^ (*p | ((*p & 0x0000ff00) << 16)); + p++; + } + } + } + } else { + /* Compute an alpha-mask from a using the green channel of a + * (presumed monochrome) RGB24 image. + */ + mask = (cairo_image_surface_t *) + cairo_image_surface_create (CAIRO_FORMAT_A8, + glyph->width, glyph->height); + if (likely (mask->base.status == CAIRO_STATUS_SUCCESS)) { + for (i = 0; i < glyph->height; i++) { + uint32_t *p = (uint32_t *) (glyph->data + i * glyph->stride); + uint8_t *q = (uint8_t *) (mask->data + i * mask->stride); + + for (j = 0; j < glyph->width; j++) + *q++ = 255 - ((*p++ & 0x0000ff00) >> 8); + } + } + } + + cairo_surface_unmap_image (surface, &glyph->base); + return &mask->base; +} + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_surface (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph) +{ + cairo_status_t status; + cairo_glyph_t glyph; + cairo_surface_t *surface; + cairo_surface_t *image; + int width, height; + int x1, y1, x2, y2; + + x1 = _cairo_fixed_integer_floor (scaled_glyph->bbox.p1.x); + y1 = _cairo_fixed_integer_floor (scaled_glyph->bbox.p1.y); + x2 = _cairo_fixed_integer_ceil (scaled_glyph->bbox.p2.x); + y2 = _cairo_fixed_integer_ceil (scaled_glyph->bbox.p2.y); + width = x2 - x1; + height = y2 - y1; + + surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_RGB24, + width, height); + status = _cairo_surface_paint (surface, CAIRO_OPERATOR_SOURCE, + &_cairo_pattern_white.base, NULL); + if (status) + goto FAIL; + + glyph.index = _cairo_scaled_glyph_index (scaled_glyph); + glyph.x = -x1; + glyph.y = -y1; + status = _draw_glyphs_on_surface (to_win32_surface (surface), + scaled_font, RGB(0,0,0), + 0, 0, &glyph, 1); + if (status) + goto FAIL; + + image = _compute_mask (surface, scaled_font->quality); + status = image->status; + if (status) + goto FAIL; + + cairo_surface_set_device_offset (image, -x1, -y1); + _cairo_scaled_glyph_set_surface (scaled_glyph, + &scaled_font->base, + (cairo_image_surface_t *) image); + + FAIL: + cairo_surface_destroy (surface); + + return status; +} + +static void +_cairo_win32_transform_FIXED_to_fixed (cairo_matrix_t *matrix, + FIXED Fx, FIXED Fy, + cairo_fixed_t *fx, cairo_fixed_t *fy) +{ + double x = Fx.value + Fx.fract / 65536.0; + double y = Fy.value + Fy.fract / 65536.0; + cairo_matrix_transform_point (matrix, &x, &y); + *fx = _cairo_fixed_from_double (x); + *fy = _cairo_fixed_from_double (y); +} + +static cairo_status_t +_cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font, + cairo_scaled_glyph_t *scaled_glyph) +{ + static const MAT2 matrix = { { 0, 1 }, { 0, 0 }, { 0, 0 }, { 0, -1 } }; + cairo_status_t status; + GLYPHMETRICS metrics; + HDC hdc; + DWORD bytesGlyph; + unsigned char *buffer, *ptr; + cairo_path_fixed_t *path; + cairo_matrix_t transform; + cairo_fixed_t x, y; + + if (scaled_font->is_bitmap) + return CAIRO_INT_STATUS_UNSUPPORTED; + + hdc = _get_global_font_dc (); + assert (hdc != NULL); + + path = _cairo_path_fixed_create (); + if (!path) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + if (scaled_font->base.options.hint_style == CAIRO_HINT_STYLE_NONE) { + status = _cairo_win32_scaled_font_select_unscaled_font (&scaled_font->base, hdc); + transform = scaled_font->base.scale; + cairo_matrix_scale (&transform, 1.0/scaled_font->em_square, 1.0/scaled_font->em_square); + } else { + status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); + cairo_matrix_init_identity(&transform); + } + if (status) + goto CLEANUP_PATH; + + bytesGlyph = GetGlyphOutlineW (hdc, _cairo_scaled_glyph_index (scaled_glyph), + GGO_NATIVE | GGO_GLYPH_INDEX, + &metrics, 0, NULL, &matrix); + + if (bytesGlyph == GDI_ERROR) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_glyph_path"); + goto CLEANUP_FONT; + } + + ptr = buffer = malloc (bytesGlyph); + if (!buffer) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto CLEANUP_FONT; + } + + if (GetGlyphOutlineW (hdc, _cairo_scaled_glyph_index (scaled_glyph), + GGO_NATIVE | GGO_GLYPH_INDEX, + &metrics, bytesGlyph, buffer, &matrix) == GDI_ERROR) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_glyph_path"); + goto CLEANUP_BUFFER; + } + + while (ptr < buffer + bytesGlyph) { + TTPOLYGONHEADER *header = (TTPOLYGONHEADER *)ptr; + unsigned char *endPoly = ptr + header->cb; + + ptr += sizeof (TTPOLYGONHEADER); + + _cairo_win32_transform_FIXED_to_fixed (&transform, + header->pfxStart.x, + header->pfxStart.y, + &x, &y); + status = _cairo_path_fixed_move_to (path, x, y); + if (status) + goto CLEANUP_BUFFER; + + while (ptr < endPoly) { + TTPOLYCURVE *curve = (TTPOLYCURVE *)ptr; + POINTFX *points = curve->apfx; + int i; + switch (curve->wType) { + case TT_PRIM_LINE: + for (i = 0; i < curve->cpfx; i++) { + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i].x, + points[i].y, + &x, &y); + status = _cairo_path_fixed_line_to (path, x, y); + if (status) + goto CLEANUP_BUFFER; + } + break; + case TT_PRIM_QSPLINE: + for (i = 0; i < curve->cpfx - 1; i++) { + cairo_fixed_t p1x, p1y, p2x, p2y, cx, cy, c1x, c1y, c2x, c2y; + if (! _cairo_path_fixed_get_current_point (path, &p1x, &p1y)) + goto CLEANUP_BUFFER; + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i].x, + points[i].y, + &cx, &cy); + + if (i + 1 == curve->cpfx - 1) { + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i + 1].x, + points[i + 1].y, + &p2x, &p2y); + } else { + /* records with more than one curve use interpolation for + control points, per http://support.microsoft.com/kb/q87115/ */ + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i + 1].x, + points[i + 1].y, + &x, &y); + p2x = (cx + x) / 2; + p2y = (cy + y) / 2; + } + + c1x = 2 * cx / 3 + p1x / 3; + c1y = 2 * cy / 3 + p1y / 3; + c2x = 2 * cx / 3 + p2x / 3; + c2y = 2 * cy / 3 + p2y / 3; + + status = _cairo_path_fixed_curve_to (path, c1x, c1y, c2x, c2y, p2x, p2y); + if (status) + goto CLEANUP_BUFFER; + } + break; + case TT_PRIM_CSPLINE: + for (i = 0; i < curve->cpfx - 2; i += 2) { + cairo_fixed_t x1, y1, x2, y2; + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i].x, + points[i].y, + &x, &y); + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i + 1].x, + points[i + 1].y, + &x1, &y1); + _cairo_win32_transform_FIXED_to_fixed (&transform, + points[i + 2].x, + points[i + 2].y, + &x2, &y2); + status = _cairo_path_fixed_curve_to (path, x, y, x1, y1, x2, y2); + if (status) + goto CLEANUP_BUFFER; + } + break; + } + ptr += sizeof(TTPOLYCURVE) + sizeof (POINTFX) * (curve->cpfx - 1); + } + status = _cairo_path_fixed_close_path (path); + if (status) + goto CLEANUP_BUFFER; + } + + _cairo_scaled_glyph_set_path (scaled_glyph, + &scaled_font->base, + path); + + CLEANUP_BUFFER: + free (buffer); + + CLEANUP_FONT: + if (scaled_font->base.options.hint_style == CAIRO_HINT_STYLE_NONE) + _cairo_win32_scaled_font_done_unscaled_font (&scaled_font->base); + else + cairo_win32_scaled_font_done_font (&scaled_font->base); + + CLEANUP_PATH: + if (status != CAIRO_STATUS_SUCCESS) + _cairo_path_fixed_destroy (path); + + return status; +} + +const cairo_scaled_font_backend_t _cairo_win32_scaled_font_backend = { + CAIRO_FONT_TYPE_WIN32, + _cairo_win32_scaled_font_fini, + _cairo_win32_scaled_font_glyph_init, + NULL, /* _cairo_win32_scaled_font_text_to_glyphs, FIXME */ + _cairo_win32_scaled_font_ucs4_to_index, + _cairo_win32_scaled_font_load_truetype_table, + _cairo_win32_scaled_font_index_to_ucs4, + _cairo_win32_scaled_font_is_synthetic, + _cairo_win32_scaled_font_index_to_glyph_name, + _cairo_win32_scaled_font_load_type1_data +}; + +/* #cairo_win32_font_face_t */ + +typedef struct _cairo_win32_font_face cairo_win32_font_face_t; + +/* If hfont is non-%NULL then logfont->lfHeight must be -S for some S, + * logfont->lfWidth, logfont->lfEscapement, logfont->lfOrientation must + * all be 0, and hfont is the result of calling CreateFontIndirectW on + * logfont. + */ +struct _cairo_win32_font_face { + cairo_font_face_t base; + LOGFONTW logfont; + HFONT hfont; +}; + +/* implement the platform-specific interface */ + +static cairo_bool_t +_is_scale (const cairo_matrix_t *matrix, double scale) +{ + return matrix->xx == scale && matrix->yy == scale && + matrix->xy == 0. && matrix->yx == 0. && + matrix->x0 == 0. && matrix->y0 == 0.; +} + +static cairo_status_t +_cairo_win32_font_face_scaled_font_create (void *abstract_face, + const cairo_matrix_t *font_matrix, + const cairo_matrix_t *ctm, + const cairo_font_options_t *options, + cairo_scaled_font_t **font) +{ + HFONT hfont = NULL; + + cairo_win32_font_face_t *font_face = abstract_face; + + if (font_face->hfont) { + /* Check whether it's OK to go ahead and use the font-face's HFONT. */ + if (_is_scale (ctm, 1.) && + _is_scale (font_matrix, -font_face->logfont.lfHeight)) { + hfont = font_face->hfont; + } + } + + return _win32_scaled_font_create (&font_face->logfont, + hfont, + &font_face->base, + font_matrix, ctm, options, + font); +} + +const cairo_font_face_backend_t _cairo_win32_font_face_backend = { + CAIRO_FONT_TYPE_WIN32, + _cairo_win32_font_face_create_for_toy, + _cairo_win32_font_face_destroy, + _cairo_win32_font_face_scaled_font_create +}; + +/* We maintain a hash table from LOGFONT,HFONT => #cairo_font_face_t. + * The primary purpose of this mapping is to provide unique + * #cairo_font_face_t values so that our cache and mapping from + * #cairo_font_face_t => #cairo_scaled_font_t works. Once the + * corresponding #cairo_font_face_t objects fall out of downstream + * caches, we don't need them in this hash table anymore. + * + * Modifications to this hash table are protected by + * _cairo_win32_font_face_mutex. + */ + +static cairo_hash_table_t *cairo_win32_font_face_hash_table = NULL; + +static int +_cairo_win32_font_face_keys_equal (const void *key_a, + const void *key_b); + +static void +_cairo_win32_font_face_hash_table_destroy (void) +{ + cairo_hash_table_t *hash_table; + + /* We manually acquire the lock rather than calling + * _cairo_win32_font_face_hash_table_lock simply to avoid creating + * the table only to destroy it again. */ + CAIRO_MUTEX_LOCK (_cairo_win32_font_face_mutex); + hash_table = cairo_win32_font_face_hash_table; + cairo_win32_font_face_hash_table = NULL; + CAIRO_MUTEX_UNLOCK (_cairo_win32_font_face_mutex); + + if (hash_table != NULL) + _cairo_hash_table_destroy (hash_table); +} + +static cairo_hash_table_t * +_cairo_win32_font_face_hash_table_lock (void) +{ + CAIRO_MUTEX_LOCK (_cairo_win32_font_face_mutex); + + if (unlikely (cairo_win32_font_face_hash_table == NULL)) + { + cairo_win32_font_face_hash_table = + _cairo_hash_table_create (_cairo_win32_font_face_keys_equal); + + if (unlikely (cairo_win32_font_face_hash_table == NULL)) { + CAIRO_MUTEX_UNLOCK (_cairo_win32_font_face_mutex); + _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); + return NULL; + } + } + + return cairo_win32_font_face_hash_table; +} + +static void +_cairo_win32_font_face_hash_table_unlock (void) +{ + CAIRO_MUTEX_UNLOCK (_cairo_win32_font_face_mutex); +} + +static void +_cairo_win32_font_face_destroy (void *abstract_face) +{ + cairo_win32_font_face_t *font_face = abstract_face; + cairo_hash_table_t *hash_table; + + hash_table = _cairo_win32_font_face_hash_table_lock (); + /* All created objects must have been mapped in the hash table. */ + assert (hash_table != NULL); + + if (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&font_face->base.ref_count)) { + /* somebody recreated the font whilst we waited for the lock */ + _cairo_win32_font_face_hash_table_unlock (); + return; + } + + /* Font faces in SUCCESS status are guaranteed to be in the + * hashtable. Font faces in an error status are removed from the + * hashtable if they are found during a lookup, thus they should + * only be removed if they are in the hashtable. */ + if (likely (font_face->base.status == CAIRO_STATUS_SUCCESS) || + _cairo_hash_table_lookup (hash_table, &font_face->base.hash_entry) == font_face) + _cairo_hash_table_remove (hash_table, &font_face->base.hash_entry); + + _cairo_win32_font_face_hash_table_unlock (); +} + +static void +_cairo_win32_font_face_init_key (cairo_win32_font_face_t *key, + LOGFONTW *logfont, + HFONT font) +{ + unsigned long hash = _CAIRO_HASH_INIT_VALUE; + + key->logfont = *logfont; + key->hfont = font; + + hash = _cairo_hash_bytes (0, logfont->lfFaceName, 2*wcslen(logfont->lfFaceName)); + hash = _cairo_hash_bytes (hash, &logfont->lfWeight, sizeof(logfont->lfWeight)); + hash = _cairo_hash_bytes (hash, &logfont->lfItalic, sizeof(logfont->lfItalic)); + + key->base.hash_entry.hash = hash; +} + +static int +_cairo_win32_font_face_keys_equal (const void *key_a, + const void *key_b) +{ + const cairo_win32_font_face_t *face_a = key_a; + const cairo_win32_font_face_t *face_b = key_b; + + if (face_a->logfont.lfWeight == face_b->logfont.lfWeight && + face_a->logfont.lfItalic == face_b->logfont.lfItalic && + face_a->logfont.lfUnderline == face_b->logfont.lfUnderline && + face_a->logfont.lfStrikeOut == face_b->logfont.lfStrikeOut && + face_a->logfont.lfCharSet == face_b->logfont.lfCharSet && + face_a->logfont.lfOutPrecision == face_b->logfont.lfOutPrecision && + face_a->logfont.lfClipPrecision == face_b->logfont.lfClipPrecision && + face_a->logfont.lfPitchAndFamily == face_b->logfont.lfPitchAndFamily && + (wcscmp (face_a->logfont.lfFaceName, face_b->logfont.lfFaceName) == 0)) + return TRUE; + else + return FALSE; +} + +/** + * cairo_win32_font_face_create_for_logfontw_hfont: + * @logfont: A #LOGFONTW structure specifying the font to use. + * If @font is %NULL then the lfHeight, lfWidth, lfOrientation and lfEscapement + * fields of this structure are ignored. Otherwise lfWidth, lfOrientation and + * lfEscapement must be zero. + * @font: An #HFONT that can be used when the font matrix is a scale by + * -lfHeight and the CTM is identity. + * + * Creates a new font for the Win32 font backend based on a + * #LOGFONT. This font can then be used with + * cairo_set_font_face() or cairo_scaled_font_create(). + * The #cairo_scaled_font_t + * returned from cairo_scaled_font_create() is also for the Win32 backend + * and can be used with functions such as cairo_win32_scaled_font_select_font(). + * + * Return value: a newly created #cairo_font_face_t. Free with + * cairo_font_face_destroy() when you are done using it. + * + * Since: 1.6 + **/ +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw_hfont (LOGFONTW *logfont, HFONT font) +{ + cairo_win32_font_face_t *font_face, key; + cairo_hash_table_t *hash_table; + cairo_status_t status; + + hash_table = _cairo_win32_font_face_hash_table_lock (); + if (unlikely (hash_table == NULL)) { + _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); + return (cairo_font_face_t *)&_cairo_font_face_nil; + } + + _cairo_win32_font_face_init_key (&key, logfont, font); + + /* Return existing unscaled font if it exists in the hash table. */ + font_face = _cairo_hash_table_lookup (hash_table, + &key.base.hash_entry); + if (font_face != NULL) { + if (font_face->base.status == CAIRO_STATUS_SUCCESS) { + cairo_font_face_reference (&font_face->base); + _cairo_win32_font_face_hash_table_unlock (); + return &font_face->base; + } + + /* remove the bad font from the hash table */ + _cairo_hash_table_remove (hash_table, &font_face->base.hash_entry); + } + + /* Otherwise create it and insert into hash table. */ + font_face = malloc (sizeof (cairo_win32_font_face_t)); + if (!font_face) { + _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); + goto FAIL; + } + + _cairo_win32_font_face_init_key (font_face, logfont, font); + _cairo_font_face_init (&font_face->base, &_cairo_win32_font_face_backend); + + assert (font_face->base.hash_entry.hash == key.base.hash_entry.hash); + status = _cairo_hash_table_insert (hash_table, + &font_face->base.hash_entry); + if (unlikely (status)) + goto FAIL; + + _cairo_win32_font_face_hash_table_unlock (); + return &font_face->base; + +FAIL: + _cairo_win32_font_face_hash_table_unlock (); + return (cairo_font_face_t *)&_cairo_font_face_nil; +} + +/** + * cairo_win32_font_face_create_for_logfontw: + * @logfont: A #LOGFONTW structure specifying the font to use. + * The lfHeight, lfWidth, lfOrientation and lfEscapement + * fields of this structure are ignored. + * + * Creates a new font for the Win32 font backend based on a + * #LOGFONT. This font can then be used with + * cairo_set_font_face() or cairo_scaled_font_create(). + * The #cairo_scaled_font_t + * returned from cairo_scaled_font_create() is also for the Win32 backend + * and can be used with functions such as cairo_win32_scaled_font_select_font(). + * + * Return value: a newly created #cairo_font_face_t. Free with + * cairo_font_face_destroy() when you are done using it. + * + * Since: 1.0 + **/ +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw (LOGFONTW *logfont) +{ + return cairo_win32_font_face_create_for_logfontw_hfont (logfont, NULL); +} + +/** + * cairo_win32_font_face_create_for_hfont: + * @font: An #HFONT structure specifying the font to use. + * + * Creates a new font for the Win32 font backend based on a + * #HFONT. This font can then be used with + * cairo_set_font_face() or cairo_scaled_font_create(). + * The #cairo_scaled_font_t + * returned from cairo_scaled_font_create() is also for the Win32 backend + * and can be used with functions such as cairo_win32_scaled_font_select_font(). + * + * Return value: a newly created #cairo_font_face_t. Free with + * cairo_font_face_destroy() when you are done using it. + * + * Since: 1.2 + **/ +cairo_font_face_t * +cairo_win32_font_face_create_for_hfont (HFONT font) +{ + LOGFONTW logfont; + GetObjectW (font, sizeof(logfont), &logfont); + + if (logfont.lfEscapement != 0 || logfont.lfOrientation != 0 || + logfont.lfWidth != 0) { + /* We can't use this font because that optimization requires that + * lfEscapement, lfOrientation and lfWidth be zero. */ + font = NULL; + } + + return cairo_win32_font_face_create_for_logfontw_hfont (&logfont, font); +} + +static cairo_bool_t +_cairo_scaled_font_is_win32 (cairo_scaled_font_t *scaled_font) +{ + return scaled_font->backend == &_cairo_win32_scaled_font_backend; +} + +/** + * cairo_win32_scaled_font_select_font: + * @scaled_font: A #cairo_scaled_font_t from the Win32 font backend. Such an + * object can be created with cairo_win32_font_face_create_for_logfontw(). + * @hdc: a device context + * + * Selects the font into the given device context and changes the + * map mode and world transformation of the device context to match + * that of the font. This function is intended for use when using + * layout APIs such as Uniscribe to do text layout with the + * cairo font. After finishing using the device context, you must call + * cairo_win32_scaled_font_done_font() to release any resources allocated + * by this function. + * + * See cairo_win32_scaled_font_get_metrics_factor() for converting logical + * coordinates from the device context to font space. + * + * Normally, calls to SaveDC() and RestoreDC() would be made around + * the use of this function to preserve the original graphics state. + * + * Return value: %CAIRO_STATUS_SUCCESS if the operation succeeded. + * otherwise an error such as %CAIRO_STATUS_NO_MEMORY and + * the device context is unchanged. + * + * Since: 1.0 + **/ +cairo_status_t +cairo_win32_scaled_font_select_font (cairo_scaled_font_t *scaled_font, + HDC hdc) +{ + cairo_status_t status; + HFONT hfont; + HFONT old_hfont = NULL; + int old_mode; + + if (! _cairo_scaled_font_is_win32 (scaled_font)) { + return _cairo_error (CAIRO_STATUS_FONT_TYPE_MISMATCH); + } + + if (scaled_font->status) + return scaled_font->status; + + status = _win32_scaled_font_get_scaled_hfont ((cairo_win32_scaled_font_t *)scaled_font, &hfont); + if (status) + return status; + + old_hfont = SelectObject (hdc, hfont); + if (!old_hfont) + return _cairo_win32_print_gdi_error ("cairo_win32_scaled_font_select_font:SelectObject"); + + old_mode = SetGraphicsMode (hdc, GM_ADVANCED); + if (!old_mode) { + status = _cairo_win32_print_gdi_error ("cairo_win32_scaled_font_select_font:SetGraphicsMode"); + SelectObject (hdc, old_hfont); + return status; + } + + status = _win32_scaled_font_set_world_transform ((cairo_win32_scaled_font_t *)scaled_font, hdc); + if (status) { + SetGraphicsMode (hdc, old_mode); + SelectObject (hdc, old_hfont); + return status; + } + + SetMapMode (hdc, MM_TEXT); + + return CAIRO_STATUS_SUCCESS; +} + +/** + * cairo_win32_scaled_font_done_font: + * @scaled_font: A scaled font from the Win32 font backend. + * + * Releases any resources allocated by cairo_win32_scaled_font_select_font() + * + * Since: 1.0 + **/ +void +cairo_win32_scaled_font_done_font (cairo_scaled_font_t *scaled_font) +{ + if (! _cairo_scaled_font_is_win32 (scaled_font)) { + _cairo_error_throw (CAIRO_STATUS_FONT_TYPE_MISMATCH); + } +} + +/** + * cairo_win32_scaled_font_get_metrics_factor: + * @scaled_font: a scaled font from the Win32 font backend + * + * Gets a scale factor between logical coordinates in the coordinate + * space used by cairo_win32_scaled_font_select_font() (that is, the + * coordinate system used by the Windows functions to return metrics) and + * font space coordinates. + * + * Return value: factor to multiply logical units by to get font space + * coordinates. + * + * Since: 1.0 + **/ +double +cairo_win32_scaled_font_get_metrics_factor (cairo_scaled_font_t *scaled_font) +{ + if (! _cairo_scaled_font_is_win32 (scaled_font)) { + _cairo_error_throw (CAIRO_STATUS_FONT_TYPE_MISMATCH); + return 1.; + } + return 1. / ((cairo_win32_scaled_font_t *)scaled_font)->logical_scale; +} + +/** + * cairo_win32_scaled_font_get_logical_to_device: + * @scaled_font: a scaled font from the Win32 font backend + * @logical_to_device: matrix to return + * + * Gets the transformation mapping the logical space used by @scaled_font + * to device space. + * + * Since: 1.4 + **/ +void +cairo_win32_scaled_font_get_logical_to_device (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *logical_to_device) +{ + cairo_win32_scaled_font_t *win_font = (cairo_win32_scaled_font_t *)scaled_font; + if (! _cairo_scaled_font_is_win32 (scaled_font)) { + _cairo_error_throw (CAIRO_STATUS_FONT_TYPE_MISMATCH); + cairo_matrix_init_identity (logical_to_device); + return; + } + *logical_to_device = win_font->logical_to_device; +} + +/** + * cairo_win32_scaled_font_get_device_to_logical: + * @scaled_font: a scaled font from the Win32 font backend + * @device_to_logical: matrix to return + * + * Gets the transformation mapping device space to the logical space + * used by @scaled_font. + * + * Since: 1.4 + **/ +void +cairo_win32_scaled_font_get_device_to_logical (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *device_to_logical) +{ + cairo_win32_scaled_font_t *win_font = (cairo_win32_scaled_font_t *)scaled_font; + if (! _cairo_scaled_font_is_win32 (scaled_font)) { + _cairo_error_throw (CAIRO_STATUS_FONT_TYPE_MISMATCH); + cairo_matrix_init_identity (device_to_logical); + return; + } + *device_to_logical = win_font->device_to_logical; +} + +void +_cairo_win32_font_reset_static_data (void) +{ + _cairo_win32_font_face_hash_table_destroy (); +} diff --git a/src/win32/cairo-win32-gdi-compositor.c b/src/win32/cairo-win32-gdi-compositor.c new file mode 100644 index 0000000..39db674 --- /dev/null +++ b/src/win32/cairo-win32-gdi-compositor.c @@ -0,0 +1,649 @@ +/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Carl D. Worth + * Behdad Esfahbod + * Chris Wilson + * Karl Tomlinson , Mozilla Corporation + */ + +/* The original X drawing API was very restrictive in what it could handle, + * pixel-aligned fill/blits are all that map into Cairo's drawing model. + */ + +#include "cairoint.h" + +#include "cairo-win32-private.h" + +#include "cairo-boxes-private.h" +#include "cairo-clip-inline.h" +#include "cairo-compositor-private.h" +#include "cairo-image-surface-private.h" +#include "cairo-pattern-private.h" +#include "cairo-region-private.h" +#include "cairo-surface-inline.h" +#include "cairo-surface-offset-private.h" + +#if !defined(AC_SRC_OVER) +#define AC_SRC_OVER 0x00 +#pragma pack(1) +typedef struct { + BYTE BlendOp; + BYTE BlendFlags; + BYTE SourceConstantAlpha; + BYTE AlphaFormat; +}BLENDFUNCTION; +#pragma pack() +#endif + +/* for compatibility with VC++ 6 */ +#ifndef AC_SRC_ALPHA +#define AC_SRC_ALPHA 0x01 +#endif + +#define PELS_72DPI ((LONG)(72. / 0.0254)) + +/* the low-level interface */ + +struct fill_box { + HDC dc; + HBRUSH brush; +}; + +static cairo_bool_t fill_box (cairo_box_t *box, void *closure) +{ + struct fill_box *fb = closure; + RECT rect; + + rect.left = _cairo_fixed_integer_part (box->p1.x); + rect.top = _cairo_fixed_integer_part (box->p1.y); + rect.right = _cairo_fixed_integer_part (box->p2.x); + rect.bottom = _cairo_fixed_integer_part (box->p2.y); + + TRACE ((stderr, "%s\n", __FUNCTION__)); + return FillRect (fb->dc, &rect, fb->brush); +} + +struct check_box { + cairo_rectangle_int_t limit; + int tx, ty; +}; + +struct copy_box { + cairo_rectangle_int_t limit; + int tx, ty; + HDC dst, src; + BLENDFUNCTION bf; + cairo_win32_alpha_blend_func_t alpha_blend; +}; + +static cairo_bool_t copy_box (cairo_box_t *box, void *closure) +{ + const struct copy_box *cb = closure; + int x = _cairo_fixed_integer_part (box->p1.x); + int y = _cairo_fixed_integer_part (box->p1.y); + int width = _cairo_fixed_integer_part (box->p2.x - box->p1.x); + int height = _cairo_fixed_integer_part (box->p2.y - box->p1.y); + + TRACE ((stderr, "%s\n", __FUNCTION__)); + return BitBlt (cb->dst, x, y, width, height, + cb->src, x + cb->tx, y + cb->ty, + SRCCOPY); +} + +static cairo_bool_t alpha_box (cairo_box_t *box, void *closure) +{ + const struct copy_box *cb = closure; + int x = _cairo_fixed_integer_part (box->p1.x); + int y = _cairo_fixed_integer_part (box->p1.y); + int width = _cairo_fixed_integer_part (box->p2.x - box->p1.x); + int height = _cairo_fixed_integer_part (box->p2.y - box->p1.y); + + TRACE ((stderr, "%s\n", __FUNCTION__)); + return cb->alpha_blend (cb->dst, x, y, width, height, + cb->src, x + cb->tx, y + cb->ty, width, height, + cb->bf); +} + +struct upload_box { + cairo_rectangle_int_t limit; + int tx, ty; + HDC dst; + BITMAPINFO bi; + void *data; +}; + +static cairo_bool_t upload_box (cairo_box_t *box, void *closure) +{ + const struct upload_box *cb = closure; + int x = _cairo_fixed_integer_part (box->p1.x); + int y = _cairo_fixed_integer_part (box->p1.y); + int width = _cairo_fixed_integer_part (box->p2.x - box->p1.x); + int height = _cairo_fixed_integer_part (box->p2.y - box->p1.y); + + TRACE ((stderr, "%s\n", __FUNCTION__)); + return StretchDIBits (cb->dst, x, y + height - 1, width, -height, + x + cb->tx, height - (y + cb->ty - 1), + width, -height, + cb->data, &cb->bi, + DIB_RGB_COLORS, SRCCOPY); +} + +/* the mid-level: converts boxes into drawing operations */ + +static COLORREF color_to_rgb(const cairo_color_t *c) +{ + return RGB (c->red_short >> 8, c->green_short >> 8, c->blue_short >> 8); +} + +static cairo_int_status_t +fill_boxes (cairo_win32_display_surface_t *dst, + const cairo_pattern_t *src, + cairo_boxes_t *boxes) +{ + const cairo_color_t *color = &((cairo_solid_pattern_t *) src)->color; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + struct fill_box fb; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + fb.dc = dst->win32.dc; + fb.brush = CreateSolidBrush (color_to_rgb(color)); + if (!fb.brush) + return _cairo_win32_print_gdi_error (__FUNCTION__); + + if (! _cairo_boxes_for_each_box (boxes, fill_box, &fb)) + status = CAIRO_INT_STATUS_UNSUPPORTED; + + DeleteObject (fb.brush); + + return status; +} + +static cairo_bool_t source_contains_box (cairo_box_t *box, void *closure) +{ + struct check_box *data = closure; + + /* The box is pixel-aligned so the truncation is safe. */ + return + _cairo_fixed_integer_part (box->p1.x) + data->tx >= data->limit.x && + _cairo_fixed_integer_part (box->p1.y) + data->ty >= data->limit.y && + _cairo_fixed_integer_part (box->p2.x) + data->tx <= data->limit.x + data->limit.width && + _cairo_fixed_integer_part (box->p2.y) + data->ty <= data->limit.y + data->limit.height; +} + +static cairo_status_t +copy_boxes (cairo_win32_display_surface_t *dst, + const cairo_pattern_t *source, + cairo_boxes_t *boxes) +{ + const cairo_surface_pattern_t *pattern; + struct copy_box cb; + cairo_surface_t *surface; + cairo_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + pattern = (const cairo_surface_pattern_t *) source; + surface = _cairo_surface_get_source (pattern->surface, &cb.limit); + if (surface->type == CAIRO_SURFACE_TYPE_IMAGE) { + surface = to_image_surface(surface)->parent; + if (surface == NULL) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + if (surface->type != CAIRO_SURFACE_TYPE_WIN32) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (! _cairo_matrix_is_integer_translation (&source->matrix, + &cb.tx, &cb.ty)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + cb.dst = dst->win32.dc; + cb.src = to_win32_surface(surface)->dc; + + /* First check that the data is entirely within the image */ + if (! _cairo_boxes_for_each_box (boxes, source_contains_box, &cb)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_surface_flush (surface); + if (status) + return status; + + cb.tx += cb.limit.x; + cb.ty += cb.limit.y; + status = CAIRO_STATUS_SUCCESS; + if (! _cairo_boxes_for_each_box (boxes, copy_box, &cb)) + status = CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_win32_display_surface_discard_fallback (dst); + return status; +} + +static cairo_status_t +upload_boxes (cairo_win32_display_surface_t *dst, + const cairo_pattern_t *source, + cairo_boxes_t *boxes) +{ + const cairo_surface_pattern_t *pattern; + struct upload_box cb; + cairo_surface_t *surface; + cairo_image_surface_t *image; + void *image_extra; + cairo_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + + if ((dst->win32.flags & CAIRO_WIN32_SURFACE_CAN_STRETCHDIB) == 0) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (! _cairo_matrix_is_integer_translation (&source->matrix, + &cb.tx, &cb.ty)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + pattern = (const cairo_surface_pattern_t *) source; + surface = _cairo_surface_get_source (pattern->surface, &cb.limit); + + /* First check that the data is entirely within the image */ + if (! _cairo_boxes_for_each_box (boxes, source_contains_box, &cb)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (surface->type != CAIRO_SURFACE_TYPE_IMAGE) { + status = _cairo_surface_acquire_source_image (surface, + &image, &image_extra); + if (status) + return status; + } else + image = to_image_surface(surface); + + status = CAIRO_INT_STATUS_UNSUPPORTED; + if (!(image->format == CAIRO_FORMAT_ARGB32 || + image->format == CAIRO_FORMAT_RGB24)) + goto err; + if (image->stride != 4*image->width) + goto err; + + cb.dst = dst->win32.dc; + cb.data = image->data; + + cb.bi.bmiHeader.biSize = sizeof (BITMAPINFOHEADER); + cb.bi.bmiHeader.biWidth = image->width; + cb.bi.bmiHeader.biHeight = -image->height; + cb.bi.bmiHeader.biSizeImage = 0; + cb.bi.bmiHeader.biXPelsPerMeter = PELS_72DPI; + cb.bi.bmiHeader.biYPelsPerMeter = PELS_72DPI; + cb.bi.bmiHeader.biPlanes = 1; + cb.bi.bmiHeader.biBitCount = 32; + cb.bi.bmiHeader.biCompression = BI_RGB; + cb.bi.bmiHeader.biClrUsed = 0; + cb.bi.bmiHeader.biClrImportant = 0; + + cb.tx += cb.limit.x; + cb.ty += cb.limit.y; + status = CAIRO_STATUS_SUCCESS; + if (! _cairo_boxes_for_each_box (boxes, upload_box, &cb)) + status = CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_win32_display_surface_discard_fallback (dst); +err: + if (&image->base != surface) + _cairo_surface_release_source_image (surface, image, image_extra); + + return status; +} + +static cairo_status_t +alpha_blend_boxes (cairo_win32_display_surface_t *dst, + const cairo_pattern_t *source, + cairo_boxes_t *boxes, + uint8_t alpha) +{ + const cairo_surface_pattern_t *pattern; + struct copy_box cb; + cairo_surface_t *surface; + cairo_win32_display_surface_t *src; + cairo_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (source->type != CAIRO_PATTERN_TYPE_SURFACE) + return CAIRO_INT_STATUS_UNSUPPORTED; + + pattern = (const cairo_surface_pattern_t *) source; + surface = _cairo_surface_get_source (pattern->surface, &cb.limit); + if (surface->type == CAIRO_SURFACE_TYPE_IMAGE) { + surface = to_image_surface(surface)->parent; + if (surface == NULL) + return CAIRO_INT_STATUS_UNSUPPORTED; + } + if (surface->type != CAIRO_SURFACE_TYPE_WIN32) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (! _cairo_matrix_is_integer_translation (&source->matrix, + &cb.tx, &cb.ty)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + src = to_win32_display_surface (surface); + cb.dst = dst->win32.dc; + cb.src = src->win32.dc; + + /* First check that the data is entirely within the image */ + if (! _cairo_boxes_for_each_box (boxes, source_contains_box, &cb)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_surface_flush (&src->win32.base); + if (status) + return status; + + cb.bf.BlendOp = AC_SRC_OVER; + cb.bf.BlendFlags = 0; + cb.bf.SourceConstantAlpha = alpha; + cb.bf.AlphaFormat = (src->win32.format == CAIRO_FORMAT_ARGB32) ? AC_SRC_ALPHA : 0; + cb.alpha_blend = to_win32_device(dst->win32.base.device)->alpha_blend; + + cb.tx += cb.limit.x; + cb.ty += cb.limit.y; + status = CAIRO_STATUS_SUCCESS; + if (! _cairo_boxes_for_each_box (boxes, alpha_box, &cb)) + status = CAIRO_INT_STATUS_UNSUPPORTED; + + _cairo_win32_display_surface_discard_fallback (dst); + return status; +} + +static cairo_bool_t +can_alpha_blend (cairo_win32_display_surface_t *dst) +{ + if ((dst->win32.flags & CAIRO_WIN32_SURFACE_CAN_ALPHABLEND) == 0) + return FALSE; + + return to_win32_device(dst->win32.base.device)->alpha_blend != NULL; +} + +static cairo_status_t +draw_boxes (cairo_composite_rectangles_t *composite, + cairo_boxes_t *boxes) +{ + cairo_win32_display_surface_t *dst = to_win32_display_surface(composite->surface); + cairo_operator_t op = composite->op; + const cairo_pattern_t *src = &composite->source_pattern.base; + cairo_int_status_t status; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (boxes->num_boxes == 0 && composite->is_bounded) + return CAIRO_STATUS_SUCCESS; + + if (!boxes->is_pixel_aligned) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (op == CAIRO_OPERATOR_CLEAR) + op = CAIRO_OPERATOR_SOURCE; + + if (op == CAIRO_OPERATOR_OVER && + _cairo_pattern_is_opaque (src, &composite->bounded)) + op = CAIRO_OPERATOR_SOURCE; + + if (dst->win32.base.is_clear && + (op == CAIRO_OPERATOR_OVER || op == CAIRO_OPERATOR_ADD)) + op = CAIRO_OPERATOR_SOURCE; + + if (op == CAIRO_OPERATOR_SOURCE) { + status = CAIRO_INT_STATUS_UNSUPPORTED; + if (src->type == CAIRO_PATTERN_TYPE_SURFACE) { + status = copy_boxes (dst, src, boxes); + if (status == CAIRO_INT_STATUS_UNSUPPORTED) + status = upload_boxes (dst, src, boxes); + } else if (src->type == CAIRO_PATTERN_TYPE_SOLID) { + status = fill_boxes (dst, src, boxes); + } + return status; + } + + if (op == CAIRO_OPERATOR_OVER && can_alpha_blend (dst)) + return alpha_blend_boxes (dst, src, boxes, 255); + + return CAIRO_INT_STATUS_UNSUPPORTED; +} + +static cairo_status_t +opacity_boxes (cairo_composite_rectangles_t *composite, + cairo_boxes_t *boxes) +{ + cairo_win32_display_surface_t *dst = to_win32_display_surface(composite->surface); + cairo_operator_t op = composite->op; + const cairo_pattern_t *src = &composite->source_pattern.base; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + if (composite->mask_pattern.base.type != CAIRO_PATTERN_TYPE_SOLID) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (boxes->num_boxes == 0 && composite->is_bounded) + return CAIRO_STATUS_SUCCESS; + + if (!boxes->is_pixel_aligned) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (op != CAIRO_OPERATOR_OVER) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (!can_alpha_blend (dst)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + return alpha_blend_boxes (dst, src, boxes, + composite->mask_pattern.solid.color.alpha_short >> 8); +} + +/* high-level compositor interface */ + +static cairo_bool_t check_blit (cairo_composite_rectangles_t *composite) +{ + cairo_win32_display_surface_t *dst; + + if (composite->clip->path) + return FALSE; + + dst = to_win32_display_surface (composite->surface); + if (dst->fallback) + return FALSE; + + if (dst->win32.format != CAIRO_FORMAT_RGB24) + return FALSE; + + if (dst->win32.flags & CAIRO_WIN32_SURFACE_CAN_BITBLT) + return TRUE; + + return dst->image == NULL; +} + +static cairo_int_status_t +_cairo_win32_gdi_compositor_paint (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite) +{ + cairo_int_status_t status = CAIRO_INT_STATUS_UNSUPPORTED; + + if (check_blit (composite)) { + cairo_boxes_t boxes; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_clip_steal_boxes (composite->clip, &boxes); + status = draw_boxes (composite, &boxes); + _cairo_clip_unsteal_boxes (composite->clip, &boxes); + } + + return status; +} + +static cairo_int_status_t +_cairo_win32_gdi_compositor_mask (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite) +{ + cairo_int_status_t status = CAIRO_INT_STATUS_UNSUPPORTED; + + if (check_blit (composite)) { + cairo_boxes_t boxes; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_clip_steal_boxes (composite->clip, &boxes); + status = opacity_boxes (composite, &boxes); + _cairo_clip_unsteal_boxes (composite->clip, &boxes); + } + + return status; +} + +static cairo_int_status_t +_cairo_win32_gdi_compositor_stroke (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *ctm, + const cairo_matrix_t *ctm_inverse, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_int_status_t status; + + status = CAIRO_INT_STATUS_UNSUPPORTED; + if (check_blit (composite) && + _cairo_path_fixed_stroke_is_rectilinear (path)) { + cairo_boxes_t boxes; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_boxes_init_with_clip (&boxes, composite->clip); + status = _cairo_path_fixed_stroke_rectilinear_to_boxes (path, + style, + ctm, + antialias, + &boxes); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = draw_boxes (composite, &boxes); + _cairo_boxes_fini (&boxes); + } + + return status; +} + +static cairo_int_status_t +_cairo_win32_gdi_compositor_fill (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t *composite, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_int_status_t status; + + status = CAIRO_INT_STATUS_UNSUPPORTED; + if (check_blit (composite) && + _cairo_path_fixed_fill_is_rectilinear (path)) { + cairo_boxes_t boxes; + + TRACE ((stderr, "%s\n", __FUNCTION__)); + _cairo_boxes_init_with_clip (&boxes, composite->clip); + status = _cairo_path_fixed_fill_rectilinear_to_boxes (path, + fill_rule, + antialias, + &boxes); + if (likely (status == CAIRO_INT_STATUS_SUCCESS)) + status = draw_boxes (composite, &boxes); + _cairo_boxes_fini (&boxes); + } + + return status; +} + +static cairo_bool_t check_glyphs (cairo_composite_rectangles_t *composite, + cairo_scaled_font_t *scaled_font) +{ + if (! _cairo_clip_is_region (composite->clip)) + return FALSE; + + if (cairo_scaled_font_get_type (scaled_font) != CAIRO_FONT_TYPE_WIN32) + return FALSE; + + if (! _cairo_pattern_is_opaque_solid (&composite->source_pattern.base)) + return FALSE; + + return (composite->op == CAIRO_OPERATOR_CLEAR || + composite->op == CAIRO_OPERATOR_SOURCE || + composite->op == CAIRO_OPERATOR_OVER); +} + +static cairo_int_status_t +_cairo_win32_gdi_compositor_glyphs (const cairo_compositor_t *compositor, + cairo_composite_rectangles_t*composite, + cairo_scaled_font_t *scaled_font, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_bool_t overlap) +{ + cairo_int_status_t status; + + status = CAIRO_INT_STATUS_UNSUPPORTED; + if (check_blit (composite) && check_glyphs (composite, scaled_font)) { + cairo_win32_display_surface_t *dst = to_win32_display_surface (composite->surface); + + TRACE ((stderr, "%s\n", __FUNCTION__)); + status = _cairo_win32_display_surface_set_clip(dst, composite->clip); + if (status) + return status; + + status = _cairo_win32_surface_emit_glyphs (&dst->win32, + &composite->source_pattern.base, + glyphs, + num_glyphs, + scaled_font, + TRUE); + + _cairo_win32_display_surface_unset_clip (dst); + } + + return status; +} + +const cairo_compositor_t * +_cairo_win32_gdi_compositor_get (void) +{ + static cairo_compositor_t compositor; + + if (compositor.delegate == NULL) { + compositor.delegate = &_cairo_fallback_compositor; + + compositor.paint = _cairo_win32_gdi_compositor_paint; + compositor.mask = _cairo_win32_gdi_compositor_mask; + compositor.fill = _cairo_win32_gdi_compositor_fill; + compositor.stroke = _cairo_win32_gdi_compositor_stroke; + compositor.glyphs = _cairo_win32_gdi_compositor_glyphs; + } + + return &compositor; +} diff --git a/src/win32/cairo-win32-printing-surface.c b/src/win32/cairo-win32-printing-surface.c new file mode 100644 index 0000000..be91445 --- /dev/null +++ b/src/win32/cairo-win32-printing-surface.c @@ -0,0 +1,1917 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2007, 2008 Adrian Johnson + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Adrian Johnson. + * + * Contributor(s): + * Adrian Johnson + * Vladimir Vukicevic + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" + +#include "cairo-default-context-private.h" +#include "cairo-error-private.h" +#include "cairo-paginated-private.h" + +#include "cairo-clip-private.h" +#include "cairo-win32-private.h" +#include "cairo-recording-surface-inline.h" +#include "cairo-scaled-font-subsets-private.h" +#include "cairo-image-info-private.h" +#include "cairo-image-surface-private.h" +#include "cairo-surface-backend-private.h" +#include "cairo-surface-clipper-private.h" + +#include + +#if !defined(POSTSCRIPT_IDENTIFY) +# define POSTSCRIPT_IDENTIFY 0x1015 +#endif + +#if !defined(PSIDENT_GDICENTRIC) +# define PSIDENT_GDICENTRIC 0x0000 +#endif + +#if !defined(GET_PS_FEATURESETTING) +# define GET_PS_FEATURESETTING 0x1019 +#endif + +#if !defined(FEATURESETTING_PSLEVEL) +# define FEATURESETTING_PSLEVEL 0x0002 +#endif + +#if !defined(GRADIENT_FILL_RECT_H) +# define GRADIENT_FILL_RECT_H 0x00 +#endif + +#if !defined(CHECKJPEGFORMAT) +# define CHECKJPEGFORMAT 0x1017 +#endif + +#if !defined(CHECKPNGFORMAT) +# define CHECKPNGFORMAT 0x1018 +#endif + +#define PELS_72DPI ((LONG)(72. / 0.0254)) + +static const char *_cairo_win32_printing_supported_mime_types[] = +{ + CAIRO_MIME_TYPE_JPEG, + CAIRO_MIME_TYPE_PNG, + NULL +}; + +static const cairo_surface_backend_t cairo_win32_printing_surface_backend; +static const cairo_paginated_surface_backend_t cairo_win32_surface_paginated_backend; + +static void +_cairo_win32_printing_surface_init_ps_mode (cairo_win32_printing_surface_t *surface) +{ + DWORD word; + INT ps_feature, ps_level; + + word = PSIDENT_GDICENTRIC; + if (ExtEscape (surface->win32.dc, POSTSCRIPT_IDENTIFY, sizeof(DWORD), (char *)&word, 0, (char *)NULL) <= 0) + return; + + ps_feature = FEATURESETTING_PSLEVEL; + if (ExtEscape (surface->win32.dc, GET_PS_FEATURESETTING, sizeof(INT), + (char *)&ps_feature, sizeof(INT), (char *)&ps_level) <= 0) + return; + + if (ps_level >= 3) + surface->win32.flags |= CAIRO_WIN32_SURFACE_CAN_RECT_GRADIENT; +} + +static void +_cairo_win32_printing_surface_init_image_support (cairo_win32_printing_surface_t *surface) +{ + DWORD word; + + word = CHECKJPEGFORMAT; + if (ExtEscape(surface->win32.dc, QUERYESCSUPPORT, sizeof(word), (char *)&word, 0, (char *)NULL) > 0) + surface->win32.flags |= CAIRO_WIN32_SURFACE_CAN_CHECK_JPEG; + + word = CHECKPNGFORMAT; + if (ExtEscape(surface->win32.dc, QUERYESCSUPPORT, sizeof(word), (char *)&word, 0, (char *)NULL) > 0) + surface->win32.flags |= CAIRO_WIN32_SURFACE_CAN_CHECK_PNG; +} + +/* When creating an EMF file, ExtTextOut with ETO_GLYPH_INDEX does not + * work unless the GDI function GdiInitializeLanguagePack() has been + * called. + * + * http://m-a-tech.blogspot.com/2009/04/emf-buffer-idiocracy.html + * + * The only information I could find on the how to use this + * undocumented function is the use in: + * + * http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/render_process.cc?view=markup + * + * to solve the same problem. The above code first checks if LPK.DLL + * is already loaded. If it is not it calls + * GdiInitializeLanguagePack() using the prototype + * BOOL GdiInitializeLanguagePack (int) + * and argument 0. + */ +static void +_cairo_win32_printing_surface_init_language_pack (cairo_win32_printing_surface_t *surface) +{ + typedef BOOL (WINAPI *gdi_init_lang_pack_func_t)(int); + gdi_init_lang_pack_func_t gdi_init_lang_pack; + HMODULE module; + + if (GetModuleHandleW (L"LPK.DLL")) + return; + + module = GetModuleHandleW (L"GDI32.DLL"); + if (module) { + gdi_init_lang_pack = (gdi_init_lang_pack_func_t) + GetProcAddress (module, "GdiInitializeLanguagePack"); + if (gdi_init_lang_pack) + gdi_init_lang_pack (0); + } +} + +static cairo_int_status_t +analyze_surface_pattern_transparency (cairo_surface_pattern_t *pattern) +{ + cairo_image_surface_t *image; + void *image_extra; + cairo_int_status_t status; + cairo_image_transparency_t transparency; + + status = _cairo_surface_acquire_source_image (pattern->surface, + &image, + &image_extra); + if (status) + return status; + + transparency = _cairo_image_analyze_transparency (image); + switch (transparency) { + case CAIRO_IMAGE_UNKNOWN: + ASSERT_NOT_REACHED; + case CAIRO_IMAGE_IS_OPAQUE: + status = CAIRO_STATUS_SUCCESS; + break; + + case CAIRO_IMAGE_HAS_BILEVEL_ALPHA: + case CAIRO_IMAGE_HAS_ALPHA: + status = CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY; + break; + } + + _cairo_surface_release_source_image (pattern->surface, image, image_extra); + + return status; +} + +static cairo_bool_t +surface_pattern_supported (const cairo_surface_pattern_t *pattern) +{ + if (_cairo_surface_is_recording (pattern->surface)) + return TRUE; + + if (cairo_surface_get_type (pattern->surface) != CAIRO_SURFACE_TYPE_WIN32 && + pattern->surface->backend->acquire_source_image == NULL) + { + return FALSE; + } + + return TRUE; +} + +static cairo_bool_t +pattern_supported (cairo_win32_printing_surface_t *surface, const cairo_pattern_t *pattern) +{ + if (pattern->type == CAIRO_PATTERN_TYPE_SOLID) + return TRUE; + + if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) + return surface_pattern_supported ((const cairo_surface_pattern_t *) pattern); + + if (pattern->type == CAIRO_PATTERN_TYPE_LINEAR) + return surface->win32.flags & CAIRO_WIN32_SURFACE_CAN_RECT_GRADIENT; + + return FALSE; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_analyze_operation (cairo_win32_printing_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *pattern) +{ + if (! pattern_supported (surface, pattern)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (!(op == CAIRO_OPERATOR_SOURCE || + op == CAIRO_OPERATOR_OVER || + op == CAIRO_OPERATOR_CLEAR)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { + cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern; + + if ( _cairo_surface_is_recording (surface_pattern->surface)) + return CAIRO_INT_STATUS_ANALYZE_RECORDING_SURFACE_PATTERN; + } + + if (op == CAIRO_OPERATOR_SOURCE || + op == CAIRO_OPERATOR_CLEAR) + return CAIRO_STATUS_SUCCESS; + + /* CAIRO_OPERATOR_OVER is only supported for opaque patterns. If + * the pattern contains transparency, we return + * CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY to the analysis + * surface. If the analysis surface determines that there is + * anything drawn under this operation, a fallback image will be + * used. Otherwise the operation will be replayed during the + * render stage and we blend the transarency into the white + * background to convert the pattern to opaque. + */ + + if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { + cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern; + + return analyze_surface_pattern_transparency (surface_pattern); + } + + if (_cairo_pattern_is_opaque (pattern, NULL)) + return CAIRO_STATUS_SUCCESS; + else + return CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY; +} + +static cairo_bool_t +_cairo_win32_printing_surface_operation_supported (cairo_win32_printing_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *pattern) +{ + if (_cairo_win32_printing_surface_analyze_operation (surface, op, pattern) != CAIRO_INT_STATUS_UNSUPPORTED) + return TRUE; + else + return FALSE; +} + +static void +_cairo_win32_printing_surface_init_clear_color (cairo_win32_printing_surface_t *surface, + cairo_solid_pattern_t *color) +{ + if (surface->content == CAIRO_CONTENT_COLOR_ALPHA) + _cairo_pattern_init_solid (color, CAIRO_COLOR_WHITE); + else + _cairo_pattern_init_solid (color, CAIRO_COLOR_BLACK); +} + +static COLORREF +_cairo_win32_printing_surface_flatten_transparency (cairo_win32_printing_surface_t *surface, + const cairo_color_t *color) +{ + COLORREF c; + BYTE red, green, blue; + + red = color->red_short >> 8; + green = color->green_short >> 8; + blue = color->blue_short >> 8; + + if (!CAIRO_COLOR_IS_OPAQUE(color)) { + if (surface->content == CAIRO_CONTENT_COLOR_ALPHA) { + /* Blend into white */ + uint8_t one_minus_alpha = 255 - (color->alpha_short >> 8); + + red = (color->red_short >> 8) + one_minus_alpha; + green = (color->green_short >> 8) + one_minus_alpha; + blue = (color->blue_short >> 8) + one_minus_alpha; + } else { + /* Blend into black */ + red = (color->red_short >> 8); + green = (color->green_short >> 8); + blue = (color->blue_short >> 8); + } + } + c = RGB (red, green, blue); + + return c; +} + +static cairo_status_t +_cairo_win32_printing_surface_select_solid_brush (cairo_win32_printing_surface_t *surface, + const cairo_pattern_t *source) +{ + cairo_solid_pattern_t *pattern = (cairo_solid_pattern_t *) source; + COLORREF color; + + color = _cairo_win32_printing_surface_flatten_transparency (surface, + &pattern->color); + surface->brush = CreateSolidBrush (color); + if (!surface->brush) + return _cairo_win32_print_gdi_error ("_cairo_win32_surface_select_solid_brush(CreateSolidBrush)"); + surface->old_brush = SelectObject (surface->win32.dc, surface->brush); + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_win32_printing_surface_done_solid_brush (cairo_win32_printing_surface_t *surface) +{ + if (surface->old_brush) { + SelectObject (surface->win32.dc, surface->old_brush); + DeleteObject (surface->brush); + surface->old_brush = NULL; + } +} + +static cairo_status_t +_cairo_win32_printing_surface_get_ctm_clip_box (cairo_win32_printing_surface_t *surface, + RECT *clip) +{ + XFORM xform; + + _cairo_matrix_to_win32_xform (&surface->ctm, &xform); + if (!ModifyWorldTransform (surface->win32.dc, &xform, MWT_LEFTMULTIPLY)) + return _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_get_clip_box:ModifyWorldTransform"); + GetClipBox (surface->win32.dc, clip); + + _cairo_matrix_to_win32_xform (&surface->gdi_ctm, &xform); + if (!SetWorldTransform (surface->win32.dc, &xform)) + return _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_get_clip_box:SetWorldTransform"); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_paint_solid_pattern (cairo_win32_printing_surface_t *surface, + const cairo_pattern_t *pattern) +{ + RECT clip; + cairo_status_t status; + + GetClipBox (surface->win32.dc, &clip); + status = _cairo_win32_printing_surface_select_solid_brush (surface, pattern); + if (status) + return status; + + FillRect (surface->win32.dc, &clip, surface->brush); + _cairo_win32_printing_surface_done_solid_brush (surface); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_paint_recording_pattern (cairo_win32_printing_surface_t *surface, + cairo_surface_pattern_t *pattern) +{ + cairo_content_t old_content; + cairo_matrix_t old_ctm; + cairo_bool_t old_has_ctm; + cairo_rectangle_int_t recording_extents; + cairo_status_t status; + cairo_extend_t extend; + cairo_matrix_t p2d; + XFORM xform; + int x_tile, y_tile, left, right, top, bottom; + RECT clip; + cairo_recording_surface_t *recording_surface = (cairo_recording_surface_t *) pattern->surface; + cairo_box_t bbox; + + extend = cairo_pattern_get_extend (&pattern->base); + + p2d = pattern->base.matrix; + status = cairo_matrix_invert (&p2d); + /* _cairo_pattern_set_matrix guarantees invertibility */ + assert (status == CAIRO_STATUS_SUCCESS); + + old_ctm = surface->ctm; + old_has_ctm = surface->has_ctm; + cairo_matrix_multiply (&p2d, &p2d, &surface->ctm); + surface->ctm = p2d; + SaveDC (surface->win32.dc); + _cairo_matrix_to_win32_xform (&p2d, &xform); + + status = _cairo_recording_surface_get_bbox (recording_surface, &bbox, NULL); + if (status) + return status; + + _cairo_box_round_to_rectangle (&bbox, &recording_extents); + + status = _cairo_win32_printing_surface_get_ctm_clip_box (surface, &clip); + if (status) + return status; + + if (extend == CAIRO_EXTEND_REPEAT || extend == CAIRO_EXTEND_REFLECT) { + left = floor (clip.left / _cairo_fixed_to_double (bbox.p2.x - bbox.p1.x)); + right = ceil (clip.right / _cairo_fixed_to_double (bbox.p2.x - bbox.p1.x)); + top = floor (clip.top / _cairo_fixed_to_double (bbox.p2.y - bbox.p1.y)); + bottom = ceil (clip.bottom / _cairo_fixed_to_double (bbox.p2.y - bbox.p1.y)); + } else { + left = 0; + right = 1; + top = 0; + bottom = 1; + } + + old_content = surface->content; + if (recording_surface->base.content == CAIRO_CONTENT_COLOR) { + surface->content = CAIRO_CONTENT_COLOR; + status = _cairo_win32_printing_surface_paint_solid_pattern (surface, + &_cairo_pattern_black.base); + if (status) + return status; + } + + for (y_tile = top; y_tile < bottom; y_tile++) { + for (x_tile = left; x_tile < right; x_tile++) { + cairo_matrix_t m; + double x, y; + + SaveDC (surface->win32.dc); + m = p2d; + cairo_matrix_translate (&m, + x_tile*recording_extents.width, + y_tile*recording_extents.height); + if (extend == CAIRO_EXTEND_REFLECT) { + if (x_tile % 2) { + cairo_matrix_translate (&m, recording_extents.width, 0); + cairo_matrix_scale (&m, -1, 1); + } + if (y_tile % 2) { + cairo_matrix_translate (&m, 0, recording_extents.height); + cairo_matrix_scale (&m, 1, -1); + } + } + surface->ctm = m; + surface->has_ctm = !_cairo_matrix_is_identity (&surface->ctm); + + /* Set clip path around bbox of the pattern. */ + BeginPath (surface->win32.dc); + + x = 0; + y = 0; + cairo_matrix_transform_point (&surface->ctm, &x, &y); + MoveToEx (surface->win32.dc, (int) x, (int) y, NULL); + + x = recording_extents.width; + y = 0; + cairo_matrix_transform_point (&surface->ctm, &x, &y); + LineTo (surface->win32.dc, (int) x, (int) y); + + x = recording_extents.width; + y = recording_extents.height; + cairo_matrix_transform_point (&surface->ctm, &x, &y); + LineTo (surface->win32.dc, (int) x, (int) y); + + x = 0; + y = recording_extents.height; + cairo_matrix_transform_point (&surface->ctm, &x, &y); + LineTo (surface->win32.dc, (int) x, (int) y); + + CloseFigure (surface->win32.dc); + EndPath (surface->win32.dc); + SelectClipPath (surface->win32.dc, RGN_AND); + + SaveDC (surface->win32.dc); /* Allow clip path to be reset during replay */ + status = _cairo_recording_surface_replay_region (&recording_surface->base, NULL, + &surface->win32.base, + CAIRO_RECORDING_REGION_NATIVE); + assert (status != CAIRO_INT_STATUS_UNSUPPORTED); + /* Restore both the clip save and our earlier path SaveDC */ + RestoreDC (surface->win32.dc, -2); + + if (status) + return status; + } + } + + surface->content = old_content; + surface->ctm = old_ctm; + surface->has_ctm = old_has_ctm; + RestoreDC (surface->win32.dc, -1); + + return status; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_check_jpeg (cairo_win32_printing_surface_t *surface, + cairo_surface_t *source, + const unsigned char **data, + unsigned long *length, + cairo_image_info_t *info) +{ + const unsigned char *mime_data; + unsigned long mime_data_length; + cairo_int_status_t status; + DWORD result; + + if (!(surface->win32.flags & CAIRO_WIN32_SURFACE_CAN_CHECK_JPEG)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_JPEG, + &mime_data, &mime_data_length); + if (mime_data == NULL) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_image_info_get_jpeg_info (info, mime_data, mime_data_length); + if (status) + return status; + + result = 0; + if (ExtEscape(surface->win32.dc, CHECKJPEGFORMAT, mime_data_length, (char *) mime_data, + sizeof(result), (char *) &result) <= 0) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (result != 1) + return CAIRO_INT_STATUS_UNSUPPORTED; + + *data = mime_data; + *length = mime_data_length; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_check_png (cairo_win32_printing_surface_t *surface, + cairo_surface_t *source, + const unsigned char **data, + unsigned long *length, + cairo_image_info_t *info) +{ + const unsigned char *mime_data; + unsigned long mime_data_length; + + cairo_int_status_t status; + DWORD result; + + if (!(surface->win32.flags & CAIRO_WIN32_SURFACE_CAN_CHECK_PNG)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + cairo_surface_get_mime_data (source, CAIRO_MIME_TYPE_PNG, + &mime_data, &mime_data_length); + if (mime_data == NULL) + return CAIRO_INT_STATUS_UNSUPPORTED; + + status = _cairo_image_info_get_png_info (info, mime_data, mime_data_length); + if (status) + return status; + + result = 0; + if (ExtEscape(surface->win32.dc, CHECKPNGFORMAT, mime_data_length, (char *) mime_data, + sizeof(result), (char *) &result) <= 0) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (result != 1) + return CAIRO_INT_STATUS_UNSUPPORTED; + + *data = mime_data; + *length = mime_data_length; + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_paint_image_pattern (cairo_win32_printing_surface_t *surface, + cairo_surface_pattern_t *pattern) +{ + cairo_status_t status; + cairo_extend_t extend; + cairo_image_surface_t *image; + void *image_extra; + cairo_image_surface_t *opaque_image = NULL; + BITMAPINFO bi; + cairo_matrix_t m; + int oldmode; + XFORM xform; + int x_tile, y_tile, left, right, top, bottom; + RECT clip; + const cairo_color_t *background_color; + const unsigned char *mime_data; + unsigned long mime_size; + cairo_image_info_t mime_info; + cairo_bool_t use_mime; + DWORD mime_type; + + /* If we can't use StretchDIBits with this surface, we can't do anything + * here. + */ + if (!(surface->win32.flags & CAIRO_WIN32_SURFACE_CAN_STRETCHDIB)) + return CAIRO_INT_STATUS_UNSUPPORTED; + + if (surface->content == CAIRO_CONTENT_COLOR_ALPHA) + background_color = CAIRO_COLOR_WHITE; + else + background_color = CAIRO_COLOR_BLACK; + + extend = cairo_pattern_get_extend (&pattern->base); + + status = _cairo_surface_acquire_source_image (pattern->surface, + &image, &image_extra); + if (status) + return status; + + if (image->base.status) { + status = image->base.status; + goto CLEANUP_IMAGE; + } + + if (image->width == 0 || image->height == 0) { + status = CAIRO_STATUS_SUCCESS; + goto CLEANUP_IMAGE; + } + + mime_type = BI_JPEG; + status = _cairo_win32_printing_surface_check_jpeg (surface, + pattern->surface, + &mime_data, + &mime_size, + &mime_info); + if (status == CAIRO_INT_STATUS_UNSUPPORTED) { + mime_type = BI_PNG; + status = _cairo_win32_printing_surface_check_png (surface, + pattern->surface, + &mime_data, + &mime_size, + &mime_info); + } + if (_cairo_status_is_error (status)) + return status; + + use_mime = (status == CAIRO_STATUS_SUCCESS); + + if (!use_mime && image->format != CAIRO_FORMAT_RGB24) { + cairo_surface_t *opaque_surface; + cairo_surface_pattern_t image_pattern; + cairo_solid_pattern_t background_pattern; + + opaque_surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, + image->width, + image->height); + if (opaque_surface->status) { + status = opaque_surface->status; + goto CLEANUP_OPAQUE_IMAGE; + } + + _cairo_pattern_init_solid (&background_pattern, + background_color); + status = _cairo_surface_paint (opaque_surface, + CAIRO_OPERATOR_SOURCE, + &background_pattern.base, + NULL); + if (status) + goto CLEANUP_OPAQUE_IMAGE; + + _cairo_pattern_init_for_surface (&image_pattern, &image->base); + status = _cairo_surface_paint (opaque_surface, + CAIRO_OPERATOR_OVER, + &image_pattern.base, + NULL); + _cairo_pattern_fini (&image_pattern.base); + if (status) + goto CLEANUP_OPAQUE_IMAGE; + + opaque_image = (cairo_image_surface_t *) opaque_surface; + } else { + opaque_image = image; + } + + bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + bi.bmiHeader.biWidth = use_mime ? mime_info.width : opaque_image->width; + bi.bmiHeader.biHeight = use_mime ? - mime_info.height : -opaque_image->height; + bi.bmiHeader.biSizeImage = use_mime ? mime_size : 0; + bi.bmiHeader.biXPelsPerMeter = PELS_72DPI; + bi.bmiHeader.biYPelsPerMeter = PELS_72DPI; + bi.bmiHeader.biPlanes = 1; + bi.bmiHeader.biBitCount = 32; + bi.bmiHeader.biCompression = use_mime ? mime_type : BI_RGB; + bi.bmiHeader.biClrUsed = 0; + bi.bmiHeader.biClrImportant = 0; + + m = pattern->base.matrix; + status = cairo_matrix_invert (&m); + /* _cairo_pattern_set_matrix guarantees invertibility */ + assert (status == CAIRO_STATUS_SUCCESS); + + cairo_matrix_multiply (&m, &m, &surface->gdi_ctm); + SaveDC (surface->win32.dc); + _cairo_matrix_to_win32_xform (&m, &xform); + + if (! SetWorldTransform (surface->win32.dc, &xform)) { + status = _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_paint_image_pattern"); + goto CLEANUP_OPAQUE_IMAGE; + } + + oldmode = SetStretchBltMode(surface->win32.dc, HALFTONE); + + GetClipBox (surface->win32.dc, &clip); + if (extend == CAIRO_EXTEND_REPEAT || extend == CAIRO_EXTEND_REFLECT) { + left = floor ( clip.left / (double) opaque_image->width); + right = ceil (clip.right / (double) opaque_image->width); + top = floor (clip.top / (double) opaque_image->height); + bottom = ceil (clip.bottom / (double) opaque_image->height); + } else { + left = 0; + right = 1; + top = 0; + bottom = 1; + } + + for (y_tile = top; y_tile < bottom; y_tile++) { + for (x_tile = left; x_tile < right; x_tile++) { + if (!StretchDIBits (surface->win32.dc, + x_tile*opaque_image->width, + y_tile*opaque_image->height, + opaque_image->width, + opaque_image->height, + 0, + 0, + use_mime ? mime_info.width : opaque_image->width, + use_mime ? mime_info.height : opaque_image->height, + use_mime ? mime_data : opaque_image->data, + &bi, + DIB_RGB_COLORS, + SRCCOPY)) + { + status = _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_paint(StretchDIBits)"); + goto CLEANUP_OPAQUE_IMAGE; + } + } + } + SetStretchBltMode(surface->win32.dc, oldmode); + RestoreDC (surface->win32.dc, -1); + +CLEANUP_OPAQUE_IMAGE: + if (opaque_image != image) + cairo_surface_destroy (&opaque_image->base); +CLEANUP_IMAGE: + _cairo_surface_release_source_image (pattern->surface, image, image_extra); + + return status; +} + +static cairo_status_t +_cairo_win32_printing_surface_paint_surface_pattern (cairo_win32_printing_surface_t *surface, + cairo_surface_pattern_t *pattern) +{ + if (_cairo_surface_is_recording (pattern->surface)) { + return _cairo_win32_printing_surface_paint_recording_pattern (surface, + pattern); + } else { + return _cairo_win32_printing_surface_paint_image_pattern (surface, + pattern); + } +} + +static void +vertex_set_color (TRIVERTEX *vert, cairo_color_stop_t *color) +{ + /* MSDN says that the range here is 0x0000 .. 0xff00; + * that may well be a typo, but just chop the low bits + * here. */ + vert->Alpha = 0xff00; + vert->Red = color->red_short & 0xff00; + vert->Green = color->green_short & 0xff00; + vert->Blue = color->blue_short & 0xff00; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_paint_linear_pattern (cairo_win32_printing_surface_t *surface, + cairo_linear_pattern_t *pattern) +{ + TRIVERTEX *vert; + GRADIENT_RECT *rect; + RECT clip; + XFORM xform; + int i, num_stops; + cairo_matrix_t mat, rot; + double p1x, p1y, p2x, p2y, xd, yd, d, sn, cs; + cairo_extend_t extend; + int range_start, range_stop, num_ranges, num_rects, stop; + int total_verts, total_rects; + cairo_status_t status; + + extend = cairo_pattern_get_extend (&pattern->base.base); + SaveDC (surface->win32.dc); + + mat = pattern->base.base.matrix; + status = cairo_matrix_invert (&mat); + /* _cairo_pattern_set_matrix guarantees invertibility */ + assert (status == CAIRO_STATUS_SUCCESS); + + cairo_matrix_multiply (&mat, &surface->ctm, &mat); + + p1x = pattern->pd1.x; + p1y = pattern->pd1.y; + p2x = pattern->pd2.x; + p2y = pattern->pd2.y; + cairo_matrix_translate (&mat, p1x, p1y); + + xd = p2x - p1x; + yd = p2y - p1y; + d = sqrt (xd*xd + yd*yd); + sn = yd/d; + cs = xd/d; + cairo_matrix_init (&rot, + cs, sn, + -sn, cs, + 0, 0); + cairo_matrix_multiply (&mat, &rot, &mat); + + _cairo_matrix_to_win32_xform (&mat, &xform); + + if (!SetWorldTransform (surface->win32.dc, &xform)) + return _cairo_win32_print_gdi_error ("_win32_printing_surface_paint_linear_pattern:SetWorldTransform2"); + + GetClipBox (surface->win32.dc, &clip); + + if (extend == CAIRO_EXTEND_REPEAT || extend == CAIRO_EXTEND_REFLECT) { + range_start = floor (clip.left / d); + range_stop = ceil (clip.right / d); + } else { + range_start = 0; + range_stop = 1; + } + num_ranges = range_stop - range_start; + num_stops = pattern->base.n_stops; + num_rects = num_stops - 1; + + /* Add an extra four points and two rectangles for EXTEND_PAD */ + vert = malloc (sizeof (TRIVERTEX) * (num_rects*2*num_ranges + 4)); + rect = malloc (sizeof (GRADIENT_RECT) * (num_rects*num_ranges + 2)); + + for (i = 0; i < num_ranges*num_rects; i++) { + vert[i*2].y = (LONG) clip.top; + if (i%num_rects == 0) { + stop = 0; + if (extend == CAIRO_EXTEND_REFLECT && (range_start+(i/num_rects))%2) + stop = num_rects; + vert[i*2].x = (LONG)(d*(range_start + i/num_rects)); + vertex_set_color (&vert[i*2], &pattern->base.stops[stop].color); + } else { + vert[i*2].x = vert[i*2-1].x; + vert[i*2].Red = vert[i*2-1].Red; + vert[i*2].Green = vert[i*2-1].Green; + vert[i*2].Blue = vert[i*2-1].Blue; + vert[i*2].Alpha = vert[i*2-1].Alpha; + } + + stop = i%num_rects + 1; + vert[i*2+1].x = (LONG)(d*(range_start + i/num_rects + pattern->base.stops[stop].offset)); + vert[i*2+1].y = (LONG) clip.bottom; + if (extend == CAIRO_EXTEND_REFLECT && (range_start+(i/num_rects))%2) + stop = num_rects - stop; + vertex_set_color (&vert[i*2+1], &pattern->base.stops[stop].color); + + rect[i].UpperLeft = i*2; + rect[i].LowerRight = i*2 + 1; + } + total_verts = 2*num_ranges*num_rects; + total_rects = num_ranges*num_rects; + + if (extend == CAIRO_EXTEND_PAD) { + vert[i*2].x = vert[i*2-1].x; + vert[i*2].y = (LONG) clip.top; + vert[i*2].Red = vert[i*2-1].Red; + vert[i*2].Green = vert[i*2-1].Green; + vert[i*2].Blue = vert[i*2-1].Blue; + vert[i*2].Alpha = 0xff00; + vert[i*2+1].x = clip.right; + vert[i*2+1].y = (LONG) clip.bottom; + vert[i*2+1].Red = vert[i*2-1].Red; + vert[i*2+1].Green = vert[i*2-1].Green; + vert[i*2+1].Blue = vert[i*2-1].Blue; + vert[i*2+1].Alpha = 0xff00; + rect[i].UpperLeft = i*2; + rect[i].LowerRight = i*2 + 1; + + i++; + + vert[i*2].x = clip.left; + vert[i*2].y = (LONG) clip.top; + vert[i*2].Red = vert[0].Red; + vert[i*2].Green = vert[0].Green; + vert[i*2].Blue = vert[0].Blue; + vert[i*2].Alpha = 0xff00; + vert[i*2+1].x = vert[0].x; + vert[i*2+1].y = (LONG) clip.bottom; + vert[i*2+1].Red = vert[0].Red; + vert[i*2+1].Green = vert[0].Green; + vert[i*2+1].Blue = vert[0].Blue; + vert[i*2+1].Alpha = 0xff00; + rect[i].UpperLeft = i*2; + rect[i].LowerRight = i*2 + 1; + + total_verts += 4; + total_rects += 2; + } + + if (!GradientFill (surface->win32.dc, + vert, total_verts, + rect, total_rects, + GRADIENT_FILL_RECT_H)) + return _cairo_win32_print_gdi_error ("_win32_printing_surface_paint_linear_pattern:GradientFill"); + + free (rect); + free (vert); + RestoreDC (surface->win32.dc, -1); + + return 0; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_paint_pattern (cairo_win32_printing_surface_t *surface, + const cairo_pattern_t *pattern) +{ + cairo_status_t status; + + switch (pattern->type) { + case CAIRO_PATTERN_TYPE_SOLID: + status = _cairo_win32_printing_surface_paint_solid_pattern (surface, pattern); + if (status) + return status; + break; + + case CAIRO_PATTERN_TYPE_SURFACE: + status = _cairo_win32_printing_surface_paint_surface_pattern (surface, + (cairo_surface_pattern_t *) pattern); + if (status) + return status; + break; + + case CAIRO_PATTERN_TYPE_LINEAR: + status = _cairo_win32_printing_surface_paint_linear_pattern (surface, (cairo_linear_pattern_t *) pattern); + if (status) + return status; + break; + + case CAIRO_PATTERN_TYPE_RADIAL: + return CAIRO_INT_STATUS_UNSUPPORTED; + break; + + case CAIRO_PATTERN_TYPE_MESH: + ASSERT_NOT_REACHED; + } + + return CAIRO_STATUS_SUCCESS; +} + +typedef struct _win32_print_path_info { + cairo_win32_printing_surface_t *surface; +} win32_path_info_t; + +static cairo_status_t +_cairo_win32_printing_surface_path_move_to (void *closure, + const cairo_point_t *point) +{ + win32_path_info_t *path_info = closure; + + if (path_info->surface->has_ctm) { + double x, y; + + x = _cairo_fixed_to_double (point->x); + y = _cairo_fixed_to_double (point->y); + cairo_matrix_transform_point (&path_info->surface->ctm, &x, &y); + MoveToEx (path_info->surface->win32.dc, (int) x, (int) y, NULL); + } else { + MoveToEx (path_info->surface->win32.dc, + _cairo_fixed_integer_part (point->x), + _cairo_fixed_integer_part (point->y), + NULL); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_path_line_to (void *closure, + const cairo_point_t *point) +{ + win32_path_info_t *path_info = closure; + + path_info->surface->path_empty = FALSE; + if (path_info->surface->has_ctm) { + double x, y; + + x = _cairo_fixed_to_double (point->x); + y = _cairo_fixed_to_double (point->y); + cairo_matrix_transform_point (&path_info->surface->ctm, &x, &y); + LineTo (path_info->surface->win32.dc, (int) x, (int) y); + } else { + LineTo (path_info->surface->win32.dc, + _cairo_fixed_integer_part (point->x), + _cairo_fixed_integer_part (point->y)); + } + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_path_curve_to (void *closure, + const cairo_point_t *b, + const cairo_point_t *c, + const cairo_point_t *d) +{ + win32_path_info_t *path_info = closure; + POINT points[3]; + + path_info->surface->path_empty = FALSE; + if (path_info->surface->has_ctm) { + double x, y; + + x = _cairo_fixed_to_double (b->x); + y = _cairo_fixed_to_double (b->y); + cairo_matrix_transform_point (&path_info->surface->ctm, &x, &y); + points[0].x = (LONG) x; + points[0].y = (LONG) y; + + x = _cairo_fixed_to_double (c->x); + y = _cairo_fixed_to_double (c->y); + cairo_matrix_transform_point (&path_info->surface->ctm, &x, &y); + points[1].x = (LONG) x; + points[1].y = (LONG) y; + + x = _cairo_fixed_to_double (d->x); + y = _cairo_fixed_to_double (d->y); + cairo_matrix_transform_point (&path_info->surface->ctm, &x, &y); + points[2].x = (LONG) x; + points[2].y = (LONG) y; + } else { + points[0].x = _cairo_fixed_integer_part (b->x); + points[0].y = _cairo_fixed_integer_part (b->y); + points[1].x = _cairo_fixed_integer_part (c->x); + points[1].y = _cairo_fixed_integer_part (c->y); + points[2].x = _cairo_fixed_integer_part (d->x); + points[2].y = _cairo_fixed_integer_part (d->y); + } + PolyBezierTo (path_info->surface->win32.dc, points, 3); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_path_close_path (void *closure) +{ + win32_path_info_t *path_info = closure; + + CloseFigure (path_info->surface->win32.dc); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_emit_path (cairo_win32_printing_surface_t *surface, + const cairo_path_fixed_t *path) +{ + win32_path_info_t path_info; + + path_info.surface = surface; + return _cairo_path_fixed_interpret (path, + _cairo_win32_printing_surface_path_move_to, + _cairo_win32_printing_surface_path_line_to, + _cairo_win32_printing_surface_path_curve_to, + _cairo_win32_printing_surface_path_close_path, + &path_info); +} + +static cairo_int_status_t +_cairo_win32_printing_surface_show_page (void *abstract_surface) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + + /* Undo both SaveDC's that we did in start_page */ + RestoreDC (surface->win32.dc, -2); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_status_t +_cairo_win32_printing_surface_clipper_intersect_clip_path (cairo_surface_clipper_t *clipper, + cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias) +{ + cairo_win32_printing_surface_t *surface = cairo_container_of (clipper, + cairo_win32_printing_surface_t, + clipper); + cairo_status_t status; + + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) + return CAIRO_STATUS_SUCCESS; + + if (path == NULL) { + RestoreDC (surface->win32.dc, -1); + SaveDC (surface->win32.dc); + + return CAIRO_STATUS_SUCCESS; + } + + BeginPath (surface->win32.dc); + status = _cairo_win32_printing_surface_emit_path (surface, path); + EndPath (surface->win32.dc); + + switch (fill_rule) { + case CAIRO_FILL_RULE_WINDING: + SetPolyFillMode (surface->win32.dc, WINDING); + break; + case CAIRO_FILL_RULE_EVEN_ODD: + SetPolyFillMode (surface->win32.dc, ALTERNATE); + break; + default: + ASSERT_NOT_REACHED; + } + + SelectClipPath (surface->win32.dc, RGN_AND); + + return status; +} + +static void +_cairo_win32_printing_surface_get_font_options (void *abstract_surface, + cairo_font_options_t *options) +{ + _cairo_font_options_init_default (options); + + cairo_font_options_set_hint_style (options, CAIRO_HINT_STYLE_NONE); + cairo_font_options_set_hint_metrics (options, CAIRO_HINT_METRICS_OFF); + cairo_font_options_set_antialias (options, CAIRO_ANTIALIAS_GRAY); + _cairo_font_options_set_round_glyph_positions (options, CAIRO_ROUND_GLYPH_POS_ON); +} + +static cairo_int_status_t +_cairo_win32_printing_surface_paint (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_clip_t *clip) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + cairo_solid_pattern_t clear; + cairo_status_t status; + + status = _cairo_surface_clipper_set_clip (&surface->clipper, clip); + if (status) + return status; + + if (op == CAIRO_OPERATOR_CLEAR) { + _cairo_win32_printing_surface_init_clear_color (surface, &clear); + source = (cairo_pattern_t*) &clear; + op = CAIRO_OPERATOR_SOURCE; + } + + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) + return _cairo_win32_printing_surface_analyze_operation (surface, op, source); + + assert (_cairo_win32_printing_surface_operation_supported (surface, op, source)); + + return _cairo_win32_printing_surface_paint_pattern (surface, source); +} + +static int +_cairo_win32_line_cap (cairo_line_cap_t cap) +{ + switch (cap) { + case CAIRO_LINE_CAP_BUTT: + return PS_ENDCAP_FLAT; + case CAIRO_LINE_CAP_ROUND: + return PS_ENDCAP_ROUND; + case CAIRO_LINE_CAP_SQUARE: + return PS_ENDCAP_SQUARE; + default: + ASSERT_NOT_REACHED; + return 0; + } +} + +static int +_cairo_win32_line_join (cairo_line_join_t join) +{ + switch (join) { + case CAIRO_LINE_JOIN_MITER: + return PS_JOIN_MITER; + case CAIRO_LINE_JOIN_ROUND: + return PS_JOIN_ROUND; + case CAIRO_LINE_JOIN_BEVEL: + return PS_JOIN_BEVEL; + default: + ASSERT_NOT_REACHED; + return 0; + } +} + +static void +_cairo_matrix_factor_out_scale (cairo_matrix_t *m, double *scale) +{ + double s; + + s = fabs (m->xx); + if (fabs (m->xy) > s) + s = fabs (m->xy); + if (fabs (m->yx) > s) + s = fabs (m->yx); + if (fabs (m->yy) > s) + s = fabs (m->yy); + *scale = s; + s = 1.0/s; + cairo_matrix_scale (m, s, s); +} + +static cairo_int_status_t +_cairo_win32_printing_surface_stroke (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + const cairo_stroke_style_t *style, + const cairo_matrix_t *stroke_ctm, + const cairo_matrix_t *stroke_ctm_inverse, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + cairo_int_status_t status; + HPEN pen; + LOGBRUSH brush; + COLORREF color; + XFORM xform; + DWORD pen_style; + DWORD *dash_array; + HGDIOBJ obj; + unsigned int i; + cairo_solid_pattern_t clear; + cairo_matrix_t mat; + double scale; + + status = _cairo_surface_clipper_set_clip (&surface->clipper, clip); + if (status) + return status; + + if (op == CAIRO_OPERATOR_CLEAR) { + _cairo_win32_printing_surface_init_clear_color (surface, &clear); + source = (cairo_pattern_t*) &clear; + op = CAIRO_OPERATOR_SOURCE; + } + + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) { + /* Win32 does not support a dash offset. */ + if (style->num_dashes > 0 && style->dash_offset != 0.0) + return CAIRO_INT_STATUS_UNSUPPORTED; + + return _cairo_win32_printing_surface_analyze_operation (surface, op, source); + } + + assert (_cairo_win32_printing_surface_operation_supported (surface, op, source)); + assert (!(style->num_dashes > 0 && style->dash_offset != 0.0)); + + cairo_matrix_multiply (&mat, stroke_ctm, &surface->ctm); + _cairo_matrix_factor_out_scale (&mat, &scale); + + pen_style = PS_GEOMETRIC; + dash_array = NULL; + if (style->num_dashes) { + pen_style |= PS_USERSTYLE; + dash_array = calloc (sizeof (DWORD), style->num_dashes); + for (i = 0; i < style->num_dashes; i++) { + dash_array[i] = (DWORD) (scale * style->dash[i]); + } + } else { + pen_style |= PS_SOLID; + } + + SetMiterLimit (surface->win32.dc, (FLOAT) (style->miter_limit), NULL); + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + cairo_solid_pattern_t *solid = (cairo_solid_pattern_t *) source; + + + color = _cairo_win32_printing_surface_flatten_transparency (surface, + &solid->color); + } else { + /* Color not used as the pen will only be used by WidenPath() */ + color = RGB (0,0,0); + } + brush.lbStyle = BS_SOLID; + brush.lbColor = color; + brush.lbHatch = 0; + pen_style |= _cairo_win32_line_cap (style->line_cap); + pen_style |= _cairo_win32_line_join (style->line_join); + pen = ExtCreatePen(pen_style, + scale * style->line_width, + &brush, + style->num_dashes, + dash_array); + if (pen == NULL) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:ExtCreatePen"); + obj = SelectObject (surface->win32.dc, pen); + if (obj == NULL) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:SelectObject"); + + BeginPath (surface->win32.dc); + status = _cairo_win32_printing_surface_emit_path (surface, path); + EndPath (surface->win32.dc); + if (status) + return status; + + /* + * Switch to user space to set line parameters + */ + SaveDC (surface->win32.dc); + + _cairo_matrix_to_win32_xform (&mat, &xform); + xform.eDx = 0.0f; + xform.eDy = 0.0f; + + if (!ModifyWorldTransform (surface->win32.dc, &xform, MWT_LEFTMULTIPLY)) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:SetWorldTransform"); + + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + StrokePath (surface->win32.dc); + } else { + if (!WidenPath (surface->win32.dc)) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:WidenPath"); + if (!SelectClipPath (surface->win32.dc, RGN_AND)) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:SelectClipPath"); + + /* Return to device space to paint the pattern */ + _cairo_matrix_to_win32_xform (&surface->gdi_ctm, &xform); + if (!SetWorldTransform (surface->win32.dc, &xform)) + return _cairo_win32_print_gdi_error ("_win32_surface_stroke:ModifyWorldTransform"); + status = _cairo_win32_printing_surface_paint_pattern (surface, source); + } + RestoreDC (surface->win32.dc, -1); + DeleteObject (pen); + free (dash_array); + + return status; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_fill (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + const cairo_path_fixed_t *path, + cairo_fill_rule_t fill_rule, + double tolerance, + cairo_antialias_t antialias, + const cairo_clip_t *clip) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + cairo_int_status_t status; + cairo_solid_pattern_t clear; + + status = _cairo_surface_clipper_set_clip (&surface->clipper, clip); + if (status) + return status; + + if (op == CAIRO_OPERATOR_CLEAR) { + _cairo_win32_printing_surface_init_clear_color (surface, &clear); + source = (cairo_pattern_t*) &clear; + op = CAIRO_OPERATOR_SOURCE; + } + + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) + return _cairo_win32_printing_surface_analyze_operation (surface, op, source); + + assert (_cairo_win32_printing_surface_operation_supported (surface, op, source)); + + surface->path_empty = TRUE; + BeginPath (surface->win32.dc); + status = _cairo_win32_printing_surface_emit_path (surface, path); + EndPath (surface->win32.dc); + + switch (fill_rule) { + case CAIRO_FILL_RULE_WINDING: + SetPolyFillMode (surface->win32.dc, WINDING); + break; + case CAIRO_FILL_RULE_EVEN_ODD: + SetPolyFillMode (surface->win32.dc, ALTERNATE); + break; + default: + ASSERT_NOT_REACHED; + } + + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + status = _cairo_win32_printing_surface_select_solid_brush (surface, source); + if (status) + return status; + + FillPath (surface->win32.dc); + _cairo_win32_printing_surface_done_solid_brush (surface); + } else if (surface->path_empty == FALSE) { + SaveDC (surface->win32.dc); + SelectClipPath (surface->win32.dc, RGN_AND); + status = _cairo_win32_printing_surface_paint_pattern (surface, source); + RestoreDC (surface->win32.dc, -1); + } + + fflush(stderr); + + return status; +} + + +static cairo_int_status_t +_cairo_win32_printing_surface_emit_win32_glyphs (cairo_win32_printing_surface_t *surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + const cairo_clip_t *clip) +{ + cairo_matrix_t ctm; + cairo_glyph_t *unicode_glyphs; + cairo_scaled_font_subsets_glyph_t subset_glyph; + int i, first; + cairo_bool_t sequence_is_unicode; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + + /* Where possible reverse the glyph indices back to unicode + * characters. Strings of glyphs that could not be reversed to + * unicode will be printed with ETO_GLYPH_INDEX. + * + * As _cairo_win32_scaled_font_index_to_ucs4() is a slow + * operation, the font subsetting function + * _cairo_scaled_font_subsets_map_glyph() is used to obtain + * the unicode value because it caches the reverse mapping in + * the subsets. + */ + + if (surface->has_ctm) { + for (i = 0; i < num_glyphs; i++) + cairo_matrix_transform_point (&surface->ctm, &glyphs[i].x, &glyphs[i].y); + cairo_matrix_multiply (&ctm, &scaled_font->ctm, &surface->ctm); + scaled_font = cairo_scaled_font_create (scaled_font->font_face, + &scaled_font->font_matrix, + &ctm, + &scaled_font->options); + } + + unicode_glyphs = _cairo_malloc_ab (num_glyphs, sizeof (cairo_glyph_t)); + if (unicode_glyphs == NULL) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + + memcpy (unicode_glyphs, glyphs, num_glyphs * sizeof (cairo_glyph_t)); + for (i = 0; i < num_glyphs; i++) { + status = _cairo_scaled_font_subsets_map_glyph (surface->font_subsets, + scaled_font, + glyphs[i].index, + NULL, 0, + &subset_glyph); + if (status) + goto fail; + + unicode_glyphs[i].index = subset_glyph.unicode; + } + + i = 0; + first = 0; + sequence_is_unicode = unicode_glyphs[0].index <= 0xffff; + while (i < num_glyphs) { + if (i == num_glyphs - 1 || + ((unicode_glyphs[i + 1].index < 0xffff) != sequence_is_unicode)) + { + status = _cairo_win32_surface_emit_glyphs (&surface->win32, + source, + sequence_is_unicode ? &unicode_glyphs[first] : &glyphs[first], + i - first + 1, + scaled_font, + ! sequence_is_unicode); + first = i + 1; + if (i < num_glyphs - 1) + sequence_is_unicode = unicode_glyphs[i + 1].index <= 0xffff; + } + i++; + } + +fail: + if (surface->has_ctm) + cairo_scaled_font_destroy (scaled_font); + + free (unicode_glyphs); + + return status; +} + +static cairo_int_status_t +_cairo_win32_printing_surface_show_glyphs (void *abstract_surface, + cairo_operator_t op, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + const cairo_clip_t *clip) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + cairo_status_t status = CAIRO_STATUS_SUCCESS; + cairo_scaled_glyph_t *scaled_glyph; + cairo_pattern_t *opaque = NULL; + int i; + cairo_matrix_t old_ctm; + cairo_bool_t old_has_ctm; + cairo_solid_pattern_t clear; + + status = _cairo_surface_clipper_set_clip (&surface->clipper, clip); + if (status) + return status; + + if (op == CAIRO_OPERATOR_CLEAR) { + _cairo_win32_printing_surface_init_clear_color (surface, &clear); + source = (cairo_pattern_t*) &clear; + op = CAIRO_OPERATOR_SOURCE; + } + + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) { + /* When printing bitmap fonts to a printer DC, Windows may + * substitute an outline font for bitmap font. As the win32 + * font backend always uses a screen DC when obtaining the + * font metrics the metrics of the substituted font will not + * match the metrics that the win32 font backend returns. + * + * If we are printing a bitmap font, use fallback images to + * ensure the font is not substituted. + */ +#if CAIRO_HAS_WIN32_FONT + if (cairo_scaled_font_get_type (scaled_font) == CAIRO_FONT_TYPE_WIN32) { + if (_cairo_win32_scaled_font_is_bitmap (scaled_font)) + return CAIRO_INT_STATUS_UNSUPPORTED; + else + return _cairo_win32_printing_surface_analyze_operation (surface, op, source); + } +#endif + + /* For non win32 fonts we need to check that each glyph has a + * path available. If a path is not available, + * _cairo_scaled_glyph_lookup() will return + * CAIRO_INT_STATUS_UNSUPPORTED and a fallback image will be + * used. + */ + for (i = 0; i < num_glyphs; i++) { + status = _cairo_scaled_glyph_lookup (scaled_font, + glyphs[i].index, + CAIRO_SCALED_GLYPH_INFO_PATH, + &scaled_glyph); + if (status) + return status; + } + + return _cairo_win32_printing_surface_analyze_operation (surface, op, source); + } + + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + cairo_solid_pattern_t *solid = (cairo_solid_pattern_t *) source; + COLORREF color; + + color = _cairo_win32_printing_surface_flatten_transparency (surface, + &solid->color); + opaque = cairo_pattern_create_rgb (GetRValue (color) / 255.0, + GetGValue (color) / 255.0, + GetBValue (color) / 255.0); + if (opaque->status) + return opaque->status; + source = opaque; + } + +#if CAIRO_HAS_WIN32_FONT + if (cairo_scaled_font_get_type (scaled_font) == CAIRO_FONT_TYPE_WIN32 && + source->type == CAIRO_PATTERN_TYPE_SOLID) + { + return _cairo_win32_printing_surface_emit_win32_glyphs (surface, + op, + source, + glyphs, + num_glyphs, + scaled_font, + clip); + } +#endif + + SaveDC (surface->win32.dc); + old_ctm = surface->ctm; + old_has_ctm = surface->has_ctm; + surface->has_ctm = TRUE; + surface->path_empty = TRUE; + BeginPath (surface->win32.dc); + for (i = 0; i < num_glyphs; i++) { + status = _cairo_scaled_glyph_lookup (scaled_font, + glyphs[i].index, + CAIRO_SCALED_GLYPH_INFO_PATH, + &scaled_glyph); + if (status) + break; + surface->ctm = old_ctm; + cairo_matrix_translate (&surface->ctm, glyphs[i].x, glyphs[i].y); + status = _cairo_win32_printing_surface_emit_path (surface, scaled_glyph->path); + } + EndPath (surface->win32.dc); + surface->ctm = old_ctm; + surface->has_ctm = old_has_ctm; + if (status == CAIRO_STATUS_SUCCESS && surface->path_empty == FALSE) { + if (source->type == CAIRO_PATTERN_TYPE_SOLID) { + status = _cairo_win32_printing_surface_select_solid_brush (surface, source); + if (status) + return status; + + SetPolyFillMode (surface->win32.dc, WINDING); + FillPath (surface->win32.dc); + _cairo_win32_printing_surface_done_solid_brush (surface); + } else { + SelectClipPath (surface->win32.dc, RGN_AND); + status = _cairo_win32_printing_surface_paint_pattern (surface, source); + } + } + RestoreDC (surface->win32.dc, -1); + + if (opaque) + cairo_pattern_destroy (opaque); + + return status; +} + +static const char ** +_cairo_win32_printing_surface_get_supported_mime_types (void *abstract_surface) +{ + return _cairo_win32_printing_supported_mime_types; +} + +static cairo_status_t +_cairo_win32_printing_surface_finish (void *abstract_surface) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + + if (surface->font_subsets != NULL) + _cairo_scaled_font_subsets_destroy (surface->font_subsets); + + return CAIRO_STATUS_SUCCESS; +} + +static cairo_surface_t * +_cairo_win32_printing_surface_create_similar (void *abstract_surface, + cairo_content_t content, + int width, + int height) +{ + cairo_rectangle_t extents; + + extents.x = extents.y = 0; + extents.width = width; + extents.height = height; + return cairo_recording_surface_create (content, &extents); +} + +static cairo_int_status_t +_cairo_win32_printing_surface_start_page (void *abstract_surface) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + XFORM xform; + double x_res, y_res; + cairo_matrix_t inverse_ctm; + cairo_status_t status; + + SaveDC (surface->win32.dc); /* Save application context first, before doing MWT */ + + /* As the logical coordinates used by GDI functions (eg LineTo) + * are integers we need to do some additional work to prevent + * rounding errors. For example the obvious way to paint a recording + * pattern is to: + * + * SaveDC() + * transform the device context DC by the pattern to device matrix + * replay the recording surface + * RestoreDC() + * + * The problem here is that if the pattern to device matrix is + * [100 0 0 100 0 0], coordinates in the recording pattern such as + * (1.56, 2.23) which correspond to (156, 223) in device space + * will be rounded to (100, 200) due to (1.56, 2.23) being + * truncated to integers. + * + * This is solved by saving the current GDI CTM in surface->ctm, + * switch the GDI CTM to identity, and transforming all + * coordinates by surface->ctm before passing them to GDI. When + * painting a recording pattern, surface->ctm is transformed by the + * pattern to device matrix. + * + * For printing device contexts where 1 unit is 1 dpi, switching + * the GDI CTM to identity maximises the possible resolution of + * coordinates. + * + * If the device context is an EMF file, using an identity + * transform often provides insufficent resolution. The workaround + * is to set the GDI CTM to a scale < 1 eg [1.0/16 0 0 1/0/16 0 0] + * and scale the cairo CTM by [16 0 0 16 0 0]. The + * SetWorldTransform function call to scale the GDI CTM by 1.0/16 + * will be recorded in the EMF followed by all the graphics + * functions by their coordinateds multiplied by 16. + * + * To support allowing the user to set a GDI CTM with scale < 1, + * we avoid switching to an identity CTM if the CTM xx and yy is < 1. + */ + SetGraphicsMode (surface->win32.dc, GM_ADVANCED); + GetWorldTransform(surface->win32.dc, &xform); + if (xform.eM11 < 1 && xform.eM22 < 1) { + cairo_matrix_init_identity (&surface->ctm); + surface->gdi_ctm.xx = xform.eM11; + surface->gdi_ctm.xy = xform.eM21; + surface->gdi_ctm.yx = xform.eM12; + surface->gdi_ctm.yy = xform.eM22; + surface->gdi_ctm.x0 = xform.eDx; + surface->gdi_ctm.y0 = xform.eDy; + } else { + surface->ctm.xx = xform.eM11; + surface->ctm.xy = xform.eM21; + surface->ctm.yx = xform.eM12; + surface->ctm.yy = xform.eM22; + surface->ctm.x0 = xform.eDx; + surface->ctm.y0 = xform.eDy; + cairo_matrix_init_identity (&surface->gdi_ctm); + if (!ModifyWorldTransform (surface->win32.dc, NULL, MWT_IDENTITY)) + return _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_start_page:ModifyWorldTransform"); + } + + surface->has_ctm = !_cairo_matrix_is_identity (&surface->ctm); + surface->has_gdi_ctm = !_cairo_matrix_is_identity (&surface->gdi_ctm); + inverse_ctm = surface->ctm; + status = cairo_matrix_invert (&inverse_ctm); + if (status) + return status; + + x_res = GetDeviceCaps (surface->win32.dc, LOGPIXELSX); + y_res = GetDeviceCaps (surface->win32.dc, LOGPIXELSY); + cairo_matrix_transform_distance (&inverse_ctm, &x_res, &y_res); + _cairo_surface_set_resolution (&surface->win32.base, x_res, y_res); + + SaveDC (surface->win32.dc); /* Then save Cairo's known-good clip state, so the clip path can be reset */ + + return CAIRO_STATUS_SUCCESS; +} + +static void +_cairo_win32_printing_surface_set_paginated_mode (void *abstract_surface, + cairo_paginated_mode_t paginated_mode) +{ + cairo_win32_printing_surface_t *surface = abstract_surface; + + surface->paginated_mode = paginated_mode; +} + +static cairo_bool_t +_cairo_win32_printing_surface_supports_fine_grained_fallbacks (void *abstract_surface) +{ + return TRUE; +} + +/** + * cairo_win32_printing_surface_create: + * @hdc: the DC to create a surface for + * + * Creates a cairo surface that targets the given DC. The DC will be + * queried for its initial clip extents, and this will be used as the + * size of the cairo surface. The DC should be a printing DC; + * antialiasing will be ignored, and GDI will be used as much as + * possible to draw to the surface. + * + * The returned surface will be wrapped using the paginated surface to + * provide correct complex rendering behaviour; cairo_surface_show_page() and + * associated methods must be used for correct output. + * + * Return value: the newly created surface + * + * Since: 1.6 + **/ +cairo_surface_t * +cairo_win32_printing_surface_create (HDC hdc) +{ + cairo_win32_printing_surface_t *surface; + cairo_surface_t *paginated; + RECT rect; + + surface = malloc (sizeof (cairo_win32_printing_surface_t)); + if (surface == NULL) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + +#if 0 + if (_cairo_win32_save_initial_clip (hdc, surface) != CAIRO_STATUS_SUCCESS) { + free (surface); + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } +#endif + + _cairo_surface_clipper_init (&surface->clipper, + _cairo_win32_printing_surface_clipper_intersect_clip_path); + + surface->win32.format = CAIRO_FORMAT_RGB24; + surface->win32.base.content = CAIRO_CONTENT_COLOR_ALPHA; + + surface->win32.dc = hdc; + + surface->brush = NULL; + surface->old_brush = NULL; + surface->font_subsets = _cairo_scaled_font_subsets_create_scaled (); + if (surface->font_subsets == NULL) { + free (surface); + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + + GetClipBox(hdc, &rect); + surface->win32.extents.x = rect.left; + surface->win32.extents.y = rect.top; + surface->win32.extents.width = rect.right - rect.left; + surface->win32.extents.height = rect.bottom - rect.top; + + surface->win32.flags = _cairo_win32_flags_for_dc (surface->win32.dc); + surface->win32.flags |= CAIRO_WIN32_SURFACE_FOR_PRINTING; + + _cairo_win32_printing_surface_init_ps_mode (surface); + _cairo_win32_printing_surface_init_image_support (surface); + _cairo_win32_printing_surface_init_language_pack (surface); + _cairo_surface_init (&surface->win32.base, + &cairo_win32_printing_surface_backend, + NULL, /* device */ + CAIRO_CONTENT_COLOR_ALPHA); + + paginated = _cairo_paginated_surface_create (&surface->win32.base, + CAIRO_CONTENT_COLOR_ALPHA, + &cairo_win32_surface_paginated_backend); + + /* paginated keeps the only reference to surface now, drop ours */ + cairo_surface_destroy (&surface->win32.base); + + return paginated; +} + +static const cairo_surface_backend_t cairo_win32_printing_surface_backend = { + CAIRO_SURFACE_TYPE_WIN32_PRINTING, + _cairo_win32_printing_surface_finish, + + _cairo_default_context_create, + + _cairo_win32_printing_surface_create_similar, + NULL, /* create similar image */ + NULL, /* map to image */ + NULL, /* unmap image */ + + _cairo_surface_default_source, + NULL, /* acquire_source_image */ + NULL, /* release_source_image */ + NULL, /* snapshot */ + + NULL, /* copy_page */ + _cairo_win32_printing_surface_show_page, + + _cairo_win32_surface_get_extents, + _cairo_win32_printing_surface_get_font_options, + + NULL, /* flush */ + NULL, /* mark_dirty_rectangle */ + + _cairo_win32_printing_surface_paint, + NULL, /* mask */ + _cairo_win32_printing_surface_stroke, + _cairo_win32_printing_surface_fill, + NULL, /* fill/stroke */ + _cairo_win32_printing_surface_show_glyphs, + NULL, /* has_show_text_glyphs */ + NULL, /* show_text_glyphs */ + _cairo_win32_printing_surface_get_supported_mime_types, +}; + +static const cairo_paginated_surface_backend_t cairo_win32_surface_paginated_backend = { + _cairo_win32_printing_surface_start_page, + _cairo_win32_printing_surface_set_paginated_mode, + NULL, /* set_bounding_box */ + NULL, /* _cairo_win32_printing_surface_has_fallback_images, */ + _cairo_win32_printing_surface_supports_fine_grained_fallbacks, +}; diff --git a/src/win32/cairo-win32-private.h b/src/win32/cairo-win32-private.h new file mode 100644 index 0000000..b6c2431 --- /dev/null +++ b/src/win32/cairo-win32-private.h @@ -0,0 +1,226 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + */ + +#ifndef CAIRO_WIN32_PRIVATE_H +#define CAIRO_WIN32_PRIVATE_H + +#include "cairo-win32.h" + +#include "cairoint.h" + +#include "cairo-device-private.h" +#include "cairo-surface-clipper-private.h" +#include "cairo-surface-private.h" + +#ifndef SHADEBLENDCAPS +#define SHADEBLENDCAPS 120 +#endif +#ifndef SB_NONE +#define SB_NONE 0 +#endif + +#define WIN32_FONT_LOGICAL_SCALE 32 + +/* Surface DC flag values */ +enum { + /* If this is a surface created for printing or not */ + CAIRO_WIN32_SURFACE_FOR_PRINTING = (1<<0), + + /* Whether the DC is a display DC or not */ + CAIRO_WIN32_SURFACE_IS_DISPLAY = (1<<1), + + /* Whether we can use BitBlt with this surface */ + CAIRO_WIN32_SURFACE_CAN_BITBLT = (1<<2), + + /* Whether we can use AlphaBlend with this surface */ + CAIRO_WIN32_SURFACE_CAN_ALPHABLEND = (1<<3), + + /* Whether we can use StretchBlt with this surface */ + CAIRO_WIN32_SURFACE_CAN_STRETCHBLT = (1<<4), + + /* Whether we can use StretchDIBits with this surface */ + CAIRO_WIN32_SURFACE_CAN_STRETCHDIB = (1<<5), + + /* Whether we can use GradientFill rectangles with this surface */ + CAIRO_WIN32_SURFACE_CAN_RECT_GRADIENT = (1<<6), + + /* Whether we can use the CHECKJPEGFORMAT escape function */ + CAIRO_WIN32_SURFACE_CAN_CHECK_JPEG = (1<<7), + + /* Whether we can use the CHECKJPEGFORMAT escape function */ + CAIRO_WIN32_SURFACE_CAN_CHECK_PNG = (1<<8), +}; + +typedef struct _cairo_win32_surface { + cairo_surface_t base; + + cairo_format_t format; + HDC dc; + + /* Surface DC flags */ + unsigned flags; + + /* We use the x and y parts of extents for situations where + * we're not supposed to draw to the entire surface. + * For example, during a paint event a program will get + * a DC that has been clipped to the dirty region. + * A cairo surface constructed for that DC will have extents + * that match bounds of the clipped region. + */ + cairo_rectangle_int_t extents; +} cairo_win32_surface_t; +#define to_win32_surface(S) ((cairo_win32_surface_t *)(S)) + +typedef struct _cairo_win32_display_surface { + cairo_win32_surface_t win32; + + /* We create off-screen surfaces as DIBs or DDBs, based on what we created + * originally*/ + HBITMAP bitmap; + cairo_bool_t is_dib; + + /* Used to save the initial 1x1 monochrome bitmap for the DC to + * select back into the DC before deleting the DC and our + * bitmap. For Windows XP, this doesn't seem to be necessary + * ... we can just delete the DC and that automatically unselects + * out bitmap. But it's standard practice so apparently is needed + * on some versions of Windows. + */ + HBITMAP saved_dc_bitmap; + cairo_surface_t *image; + cairo_surface_t *fallback; + + HRGN initial_clip_rgn; + cairo_bool_t had_simple_clip; +} cairo_win32_display_surface_t; +#define to_win32_display_surface(S) ((cairo_win32_display_surface_t *)(S)) + +typedef struct _cairo_win32_printing_surface { + cairo_win32_surface_t win32; + + cairo_surface_clipper_t clipper; + + cairo_paginated_mode_t paginated_mode; + cairo_content_t content; + cairo_bool_t path_empty; + cairo_bool_t has_ctm; + cairo_matrix_t ctm; + cairo_bool_t has_gdi_ctm; + cairo_matrix_t gdi_ctm; + HBRUSH brush, old_brush; + cairo_scaled_font_subsets_t *font_subsets; +} cairo_win32_printing_surface_t; +#define to_win32_printing_surface(S) ((cairo_win32_printing_surface_t *)(S)) + +typedef BOOL (WINAPI *cairo_win32_alpha_blend_func_t) (HDC hdcDest, + int nXOriginDest, + int nYOriginDest, + int nWidthDest, + int hHeightDest, + HDC hdcSrc, + int nXOriginSrc, + int nYOriginSrc, + int nWidthSrc, + int nHeightSrc, + BLENDFUNCTION blendFunction); + +typedef struct _cairo_win32_device { + cairo_device_t base; + + HMODULE msimg32_dll; + + const cairo_compositor_t *compositor; + + cairo_win32_alpha_blend_func_t alpha_blend; +} cairo_win32_device_t; +#define to_win32_device(D) ((cairo_win32_device_t *)(D)) +#define to_win32_device_from_surface(S) to_win32_device(((cairo_surface_t *)(S))->device) + +cairo_private cairo_device_t * +_cairo_win32_device_get (void); + +const cairo_compositor_t * +_cairo_win32_gdi_compositor_get (void); + +cairo_status_t +_cairo_win32_print_gdi_error (const char *context); + +cairo_private void +_cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *surface); + +cairo_bool_t +_cairo_win32_surface_get_extents (void *abstract_surface, + cairo_rectangle_int_t *rectangle); + +uint32_t +_cairo_win32_flags_for_dc (HDC dc); + +cairo_int_status_t +_cairo_win32_surface_emit_glyphs (cairo_win32_surface_t *dst, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + cairo_bool_t glyph_indexing); + +static inline void +_cairo_matrix_to_win32_xform (const cairo_matrix_t *m, + XFORM *xform) +{ + xform->eM11 = (FLOAT) m->xx; + xform->eM21 = (FLOAT) m->xy; + xform->eM12 = (FLOAT) m->yx; + xform->eM22 = (FLOAT) m->yy; + xform->eDx = (FLOAT) m->x0; + xform->eDy = (FLOAT) m->y0; +} + +cairo_status_t +_cairo_win32_display_surface_set_clip (cairo_win32_display_surface_t *surface, + cairo_clip_t *clip); + +void +_cairo_win32_display_surface_unset_clip (cairo_win32_display_surface_t *surface); + +void +_cairo_win32_debug_dump_hrgn (HRGN rgn, char *header); + +cairo_bool_t +_cairo_win32_scaled_font_is_type1 (cairo_scaled_font_t *scaled_font); + +cairo_bool_t +_cairo_win32_scaled_font_is_bitmap (cairo_scaled_font_t *scaled_font); + +#endif /* CAIRO_WIN32_PRIVATE_H */ diff --git a/src/win32/cairo-win32-surface.c b/src/win32/cairo-win32-surface.c new file mode 100644 index 0000000..7cd46fc --- /dev/null +++ b/src/win32/cairo-win32-surface.c @@ -0,0 +1,321 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2012 Intel Corporation + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + * Stuart Parmenter + * Vladimir Vukicevic + */ + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include "cairoint.h" + +#include "cairo-default-context-private.h" +#include "cairo-error-private.h" +#include "cairo-image-surface-private.h" +#include "cairo-paginated-private.h" +#include "cairo-pattern-private.h" +#include "cairo-win32-private.h" +#include "cairo-scaled-font-subsets-private.h" +#include "cairo-surface-fallback-private.h" +#include "cairo-surface-backend-private.h" + +#include +#include + +#if defined(__MINGW32__) && !defined(ETO_PDY) +# define ETO_PDY 0x2000 +#endif + +/** + * SECTION:cairo-win32 + * @Title: Win32 Surfaces + * @Short_Description: Microsoft Windows surface support + * @See_Also: #cairo_surface_t + * + * The Microsoft Windows surface is used to render cairo graphics to + * Microsoft Windows windows, bitmaps, and printing device contexts. + * + * The surface returned by cairo_win32_printing_surface_create() is of surface + * type %CAIRO_SURFACE_TYPE_WIN32_PRINTING and is a multi-page vector surface + * type. + * + * The surface returned by the other win32 constructors is of surface type + * %CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type. + **/ + +/** + * CAIRO_HAS_WIN32_SURFACE: + * + * Defined if the Microsoft Windows surface backend is available. + * This macro can be used to conditionally compile backend-specific code. + * + * Since: 1.0 + **/ + +/** + * _cairo_win32_print_gdi_error: + * @context: context string to display along with the error + * + * Helper function to dump out a human readable form of the + * current error code. + * + * Return value: A cairo status code for the error code + **/ +cairo_status_t +_cairo_win32_print_gdi_error (const char *context) +{ + void *lpMsgBuf; + DWORD last_error = GetLastError (); + + if (!FormatMessageW (FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + last_error, + MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR) &lpMsgBuf, + 0, NULL)) { + fprintf (stderr, "%s: Unknown GDI error", context); + } else { + fprintf (stderr, "%s: %S", context, (wchar_t *)lpMsgBuf); + + LocalFree (lpMsgBuf); + } + + fflush (stderr); + + /* We should switch off of last_status, but we'd either return + * CAIRO_STATUS_NO_MEMORY or CAIRO_STATUS_UNKNOWN_ERROR and there + * is no CAIRO_STATUS_UNKNOWN_ERROR. + */ + return _cairo_error (CAIRO_STATUS_NO_MEMORY); +} + +cairo_bool_t +_cairo_win32_surface_get_extents (void *abstract_surface, + cairo_rectangle_int_t *rectangle) +{ + cairo_win32_surface_t *surface = abstract_surface; + + *rectangle = surface->extents; + return TRUE; +} + +/** + * cairo_win32_surface_get_dc: + * @surface: a #cairo_surface_t + * + * Returns the HDC associated with this surface, or %NULL if none. + * Also returns %NULL if the surface is not a win32 surface. + * + * A call to cairo_surface_flush() is required before using the HDC to + * ensure that all pending drawing operations are finished and to + * restore any temporary modification cairo has made to its state. A + * call to cairo_surface_mark_dirty() is required after the state or + * the content of the HDC has been modified. + * + * Return value: HDC or %NULL if no HDC available. + * + * Since: 1.2 + **/ +HDC +cairo_win32_surface_get_dc (cairo_surface_t *surface) +{ + if (surface->backend->type == CAIRO_SURFACE_TYPE_WIN32) + return to_win32_surface(surface)->dc; + + if (_cairo_surface_is_paginated (surface)) { + cairo_surface_t *target = _cairo_paginated_surface_get_target (surface); + if (target->backend->type == CAIRO_SURFACE_TYPE_WIN32_PRINTING) + return to_win32_surface(target)->dc; + } + + return NULL; +} + +/** + * cairo_win32_surface_get_image: + * @surface: a #cairo_surface_t + * + * Returns a #cairo_surface_t image surface that refers to the same bits + * as the DIB of the Win32 surface. If the passed-in win32 surface + * is not a DIB surface, %NULL is returned. + * + * Return value: a #cairo_surface_t (owned by the win32 #cairo_surface_t), + * or %NULL if the win32 surface is not a DIB. + * + * Since: 1.4 + **/ +cairo_surface_t * +cairo_win32_surface_get_image (cairo_surface_t *surface) +{ + if (surface->backend->type != CAIRO_SURFACE_TYPE_WIN32) + return NULL; + + GdiFlush(); + return to_win32_display_surface(surface)->image; +} + +#define STACK_GLYPH_SIZE 256 +cairo_int_status_t +_cairo_win32_surface_emit_glyphs (cairo_win32_surface_t *dst, + const cairo_pattern_t *source, + cairo_glyph_t *glyphs, + int num_glyphs, + cairo_scaled_font_t *scaled_font, + cairo_bool_t glyph_indexing) +{ +#if CAIRO_HAS_WIN32_FONT + WORD glyph_buf_stack[STACK_GLYPH_SIZE]; + WORD *glyph_buf = glyph_buf_stack; + int dxy_buf_stack[2 * STACK_GLYPH_SIZE]; + int *dxy_buf = dxy_buf_stack; + + BOOL win_result = 0; + int i, j; + + cairo_solid_pattern_t *solid_pattern; + COLORREF color; + + cairo_matrix_t device_to_logical; + + int start_x, start_y; + double user_x, user_y; + int logical_x, logical_y; + unsigned int glyph_index_option; + + /* We can only handle win32 fonts */ + assert (cairo_scaled_font_get_type (scaled_font) == CAIRO_FONT_TYPE_WIN32); + + /* We can only handle opaque solid color sources and destinations */ + assert (_cairo_pattern_is_opaque_solid(source)); + assert (dst->format == CAIRO_FORMAT_RGB24); + + solid_pattern = (cairo_solid_pattern_t *)source; + color = RGB(((int)solid_pattern->color.red_short) >> 8, + ((int)solid_pattern->color.green_short) >> 8, + ((int)solid_pattern->color.blue_short) >> 8); + + cairo_win32_scaled_font_get_device_to_logical(scaled_font, &device_to_logical); + + SaveDC(dst->dc); + + cairo_win32_scaled_font_select_font(scaled_font, dst->dc); + SetTextColor(dst->dc, color); + SetTextAlign(dst->dc, TA_BASELINE | TA_LEFT); + SetBkMode(dst->dc, TRANSPARENT); + + if (num_glyphs > STACK_GLYPH_SIZE) { + glyph_buf = (WORD *) _cairo_malloc_ab (num_glyphs, sizeof(WORD)); + dxy_buf = (int *) _cairo_malloc_abc (num_glyphs, sizeof(int), 2); + } + + /* It is vital that dx values for dxy_buf are calculated from the delta of + * _logical_ x coordinates (not user x coordinates) or else the sum of all + * previous dx values may start to diverge from the current glyph's x + * coordinate due to accumulated rounding error. As a result strings could + * be painted shorter or longer than expected. */ + + user_x = glyphs[0].x; + user_y = glyphs[0].y; + + cairo_matrix_transform_point(&device_to_logical, + &user_x, &user_y); + + logical_x = _cairo_lround (user_x); + logical_y = _cairo_lround (user_y); + + start_x = logical_x; + start_y = logical_y; + + for (i = 0, j = 0; i < num_glyphs; ++i, j = 2 * i) { + glyph_buf[i] = (WORD) glyphs[i].index; + if (i == num_glyphs - 1) { + dxy_buf[j] = 0; + dxy_buf[j+1] = 0; + } else { + double next_user_x = glyphs[i+1].x; + double next_user_y = glyphs[i+1].y; + int next_logical_x, next_logical_y; + + cairo_matrix_transform_point(&device_to_logical, + &next_user_x, &next_user_y); + + next_logical_x = _cairo_lround (next_user_x); + next_logical_y = _cairo_lround (next_user_y); + + dxy_buf[j] = _cairo_lround (next_logical_x - logical_x); + dxy_buf[j+1] = _cairo_lround (next_logical_y - logical_y); + + logical_x = next_logical_x; + logical_y = next_logical_y; + } + } + + if (glyph_indexing) + glyph_index_option = ETO_GLYPH_INDEX; + else + glyph_index_option = 0; + + win_result = ExtTextOutW(dst->dc, + start_x, + start_y, + glyph_index_option | ETO_PDY, + NULL, + glyph_buf, + num_glyphs, + dxy_buf); + if (!win_result) { + _cairo_win32_print_gdi_error("_cairo_win32_surface_show_glyphs(ExtTextOutW failed)"); + } + + RestoreDC(dst->dc, -1); + + if (glyph_buf != glyph_buf_stack) { + free(glyph_buf); + free(dxy_buf); + } + return (win_result) ? CAIRO_STATUS_SUCCESS : CAIRO_INT_STATUS_UNSUPPORTED; +#else + return CAIRO_INT_STATUS_UNSUPPORTED; +#endif +} +#undef STACK_GLYPH_SIZE diff --git a/src/win32/cairo-win32-system.c b/src/win32/cairo-win32-system.c new file mode 100644 index 0000000..8785530 --- /dev/null +++ b/src/win32/cairo-win32-system.c @@ -0,0 +1,89 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is Red Hat, Inc. + * + * Contributor(s): + * Owen Taylor + * Stuart Parmenter + * Vladimir Vukicevic + */ + +/* This file should include code that is system-specific, not + * feature-specific. For example, the DLL initialization/finalization + * code on Win32 or OS/2 must live here (not in cairo-whatever-surface.c). + * Same about possible ELF-specific code. + * + * And no other function should live here. + */ + + +#include "cairoint.h" + +#if CAIRO_MUTEX_IMPL_WIN32 +#if !CAIRO_WIN32_STATIC_BUILD + +#define WIN32_LEAN_AND_MEAN +/* We require Windows 2000 features such as ETO_PDY */ +#if !defined(WINVER) || (WINVER < 0x0500) +# define WINVER 0x0500 +#endif +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) +# define _WIN32_WINNT 0x0500 +#endif + +#include + +/* declare to avoid "no previous prototype for 'DllMain'" warning */ +BOOL WINAPI +DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved); + +BOOL WINAPI +DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved) +{ + switch (fdwReason) { + case DLL_PROCESS_ATTACH: + CAIRO_MUTEX_INITIALIZE (); + break; + + case DLL_PROCESS_DETACH: + CAIRO_MUTEX_FINALIZE (); + break; + } + + return TRUE; +} + +#endif +#endif diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 0000000..dba5877 --- /dev/null +++ b/test/.gitignore @@ -0,0 +1,40 @@ +TAGS +tags +.deps +.libs +output +Makefile +Makefile.in +ref.hash +ref.list +any2ppm +.any2ppm +.any2ppm.pid +.any2ppm.errors +cairo-test-constructors.c +cairo-test-trace +cairo-test-suite +pdf2png +ps2png +svg2png +valgrind-log +*.out.* +*.pass.* +*.fail.* +*.diff.png +*.manifest +*.gcda +*.gcno +*.exe +*.exe.so +*.obj +*.ilk +*.pdb +*.la +*.lo +*.log +*.suo +*.o +*~ +.*.sw? +make-cairo-test-constructors diff --git a/test/Makefile.am b/test/Makefile.am index 0a36780..07826ff 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -164,7 +164,7 @@ reference # convert degenerate segments into circles/rectangles # as expected by cairo # device-offset-scale - complication of pre-multiplying device_offset -# into the pattern_matrix and then requiring futher +# into the pattern_matrix and then requiring further # manipulation for SVG # extend-pad - lacks implementation in pixman and consequently used # as an excuse for lack of support in other backends @@ -231,21 +231,22 @@ user-data # A target to summarise the failures check-summary: @FAILED_TESTS=""; \ - for t in $(test_sources:.c=.log); do \ + for t in output/*.log; do \ if grep -e '\' $$t >/dev/null 2>&1; then \ - FAILED_TESTS="$$FAILED_TESTS $${t%.log}"; \ + FAILED_TESTS="$$FAILED_TESTS $$t"; \ fi; \ done; \ if test -n "$$FAILED_TESTS"; then \ echo "Failed tests:"; \ surfaces=""; \ for t in $$FAILED_TESTS; do \ - echo -n " $$t: "; \ - grep -e '\' $$t.log | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq | tr '\n' ' '; \ + name="$${t##output/}"; name="$${name%.log}"; \ + echo -n " $$name: "; \ + grep -e '\' $$t | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq | tr '\n' ' '; \ echo; \ - for s in `grep -e '\' $$t.log | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq`; do \ + for s in `grep -e '\' $$t | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq`; do \ ss=`echo $$s | tr '-' '_'`; \ - tt=`echo $$t | tr '-' '_'`; \ + tt=`echo $$name | tr '-' '_'`; \ eval $$ss=\""$${!ss} $$tt"\"; \ echo $$surfaces | grep $$ss >/dev/null || surfaces="$$surfaces $$ss"; \ done; \ @@ -454,12 +455,15 @@ results.tar: for i in output/*.fail.png ; do \ testname=$${i#output/} ; \ testname=$${testname%%.*} ; \ - tar uf $@ $${testname}*.ref.png $${i%fail.png}out.png $${i%fail.png}diff.png ; \ + echo tar uf $@ reference/$${testname}*.ref.png $${i%fail.png}out.png $${i%fail.png}diff.png ; \ + tar uf $@ reference/$${testname}*.ref.png $${i%fail.png}out.png $${i%fail.png}diff.png ; \ done results.tar.gz: results.tar gzip -c $< > $@ -.PHONY: check-valgrind test recheck retest check-ref-dups +release-verify-sane-tests: + +.PHONY: check-valgrind test recheck retest check-ref-dups release-verify-sane-tests EXTRA_DIST += Makefile.win32 diff --git a/test/Makefile.sources b/test/Makefile.sources index 48a8f12..4e1fb84 100644 --- a/test/Makefile.sources +++ b/test/Makefile.sources @@ -12,6 +12,7 @@ test_sources = \ a8-mask.c \ aliasing.c \ alpha-similar.c \ + arc-direction.c \ arc-infinite-loop.c \ arc-looping-dash.c \ api-special-cases.c \ @@ -25,6 +26,7 @@ test_sources = \ bug-40410.c \ bug-bo-rectangular.c \ bug-bo-ricotz.c \ + bug-source-cu.c \ bug-extents.c \ bug-seams.c \ caps.c \ @@ -75,6 +77,7 @@ test_sources = \ composite-integer-translate-source.c \ composite-integer-translate-over.c \ composite-integer-translate-over-repeat.c \ + copy-disjoint.c \ copy-path.c \ coverage.c \ create-for-stream.c \ @@ -100,6 +103,7 @@ test_sources = \ degenerate-pen.c \ degenerate-radial-gradient.c \ degenerate-rel-curve-to.c \ + degenerate-solid-dash.c \ drunkard-tails.c \ device-offset.c \ device-offset-fractional.c \ @@ -114,12 +118,14 @@ test_sources = \ extend-repeat.c \ extend-repeat-similar.c \ extended-blend.c \ + fallback.c \ fill-alpha.c \ fill-alpha-pattern.c \ fill-and-stroke.c \ fill-and-stroke-alpha.c \ fill-and-stroke-alpha-add.c \ fill-degenerate-sort-order.c \ + fill-disjoint.c \ fill-empty.c \ fill-image.c \ fill-missed-stop.c \ @@ -158,6 +164,7 @@ test_sources = \ in-fill-trapezoid.c \ invalid-matrix.c \ inverse-text.c \ + inverted-clip.c \ joins.c \ joins-loop.c \ joins-star.c \ @@ -203,10 +210,10 @@ test_sources = \ mesh-pattern-overlap.c \ mesh-pattern-transformed.c \ mime-data.c \ - mime-surface.c \ mime-surface-api.c \ miter-precision.c \ move-to-show-surface.c \ + negative-stride-image.c \ new-sub-path.c \ nil-surface.c \ operator.c \ @@ -228,11 +235,13 @@ test_sources = \ paint-with-alpha.c \ partial-clip-text.c \ partial-coverage.c \ + pass-through.c \ path-append.c \ path-stroke-twice.c \ path-precision.c \ pattern-get-type.c \ pattern-getters.c \ + pdf-isolated-group.c \ pixman-rotate.c \ png.c \ push-group.c \ @@ -246,7 +255,11 @@ test_sources = \ random-intersections-nonzero.c \ random-intersections-curves-eo.c \ random-intersections-curves-nz.c \ + raster-source.c \ record.c \ + record1414x.c \ + record2x.c \ + record90.c \ record-extend.c \ record-mesh.c \ recording-surface-pattern.c \ @@ -256,6 +269,7 @@ test_sources = \ rectilinear-grid.c \ rectilinear-miter-limit.c \ rectilinear-dash.c \ + rectilinear-dash-scale.c \ rectilinear-stroke.c \ reflected-stroke.c \ rel-path.c \ @@ -296,6 +310,7 @@ test_sources = \ source-clip-scale.c \ source-surface-scale-paint.c \ spline-decomposition.c \ + stride-12-image.c \ stroke-pattern.c \ subsurface.c \ subsurface-image-repeat.c \ @@ -315,6 +330,7 @@ test_sources = \ surface-pattern-scale-down-extend.c \ surface-pattern-scale-up.c \ text-antialias.c \ + text-antialias-subpixel.c \ text-cache-crash.c \ text-glyph-range.c \ text-pattern.c \ diff --git a/test/Makefile.win32 b/test/Makefile.win32 index 5235769..ba8ea5b 100644 --- a/test/Makefile.win32 +++ b/test/Makefile.win32 @@ -2,9 +2,17 @@ top_srcdir = .. include $(top_srcdir)/build/Makefile.win32.common include $(top_srcdir)/test/Makefile.sources -CFLAGS += -I$(top_srcdir)/boilerplate -I./pdiff - -TEST_LIBS = ./pdiff/$(CFG)/pdiff.lib $(top_builddir)/src/$(CFG)/cairo-static.lib $(top_builddir)/boilerplate/$(CFG)/boiler.lib +CFLAGS += \ + -I$(top_srcdir)/boilerplate \ + -I$(top_srcdir)/util/cairo-script/ \ + -I./pdiff \ + $(NULL) + +TEST_LIBS = \ + ./pdiff/$(CFG)/pdiff.lib \ + $(top_builddir)/boilerplate/$(CFG)/boiler.lib \ + $(top_builddir)/src/$(CFG)/cairo-static.lib \ + $(NULL) all: inform $(CFG)/cairo-test-suite.exe @@ -15,9 +23,18 @@ SOURCES = $(cairo_test_suite_sources) $(test_sources) cairo-test-constructors.c OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(SOURCES)) +ANY2PPM_OBJS = \ + $(CFG)/any2ppm-static.obj \ + $(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib \ + $(top_builddir)/src/$(CFG)/cairo-static.lib \ + $(NULL) + $(CFG)/cairo-test-suite.exe: $(OBJECTS) $(TEST_LIBS) @$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(OBJECTS) $(TEST_LIBS) $(CAIRO_LIBS) +$(CFG)/any2ppm.exe: $(ANY2PPM_OBJS) + $(LD) $(CAIRO_LDFLAGS) -OUT:$@ $^ $(CAIRO_LIBS) + ./pdiff/$(CFG)/pdiff.lib: $(MAKE) -C pdiff -f Makefile.win32 @@ -27,9 +44,12 @@ $(top_builddir)/src/$(CFG)/cairo-static.lib: $(top_builddir)/boilerplate/$(CFG)/boiler.lib: $(MAKE) -C $(top_srcdir)/boilerplate -f Makefile.win32 +$(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib: + $(MAKE) -C $(top_srcdir)/util/cairo-script -f Makefile.win32 + .PHONY: check test -check: inform $(CFG)/cairo-test-suite.exe - ./$(CFG)/cairo-test-suite.exe +check: inform $(CFG)/any2ppm.exe $(CFG)/cairo-test-suite.exe + @ANY2PPM=$(CFG)\\any2ppm.exe $(CFG)/cairo-test-suite.exe test: inform check diff --git a/test/README b/test/README index c6f8401..b8effea 100644 --- a/test/README +++ b/test/README @@ -57,7 +57,7 @@ this is interfering with the results, you can clear the cached results using: make clean-caches -Running tests under modified enviroments or tools +Running tests under modified environments or tools ------------------------------------------------- To run tests under a tool like gdb, one can use the run target and the TOOL variable. For example: @@ -96,10 +96,10 @@ Here are some of the relevant details: * Your system must have a copy of the DejaVu font, the sha1sum of the version used are listed in [...]. These are - "DejaVu Sans" (DejaVuSans.ttf) [682718dd37c3f6a4767386d3b2b27fba9b219818]; - "DejaVu Sans Mono" (DejaVuSansMono.ttf) [1cc58255d6f9df2b08e760ca38937a2957153484]; - "DejaVu Serif" (DejaVuSerif.ttf) [020e72e92cb2f66107dc18c70ac4214df4f13014]; - [the DejaVu fonts can be installed from the ttf-dejavu Debian package] + "DejaVu Sans" (DejaVuSans.ttf) [1cd336329f45f241002ded61893d91e3acd04436]; + "DejaVu Sans Mono" (DejaVuSansMono.ttf) [0458c0f0fb57f3eb8ced62f26fe7c5ed4e6a9a68]; + "DejaVu Serif" (DejaVuSerif.ttf) [93502d0d0445d1fe1c9f51e51b3e0169266346ce]; + [the DejaVu fonts can be installed from the ttf-dejavu 2.33-2 Debian package] and also "Nimbus Sans L" (n019003l.pfb) [which can be found in the gsfonts Debian package]. diff --git a/test/any2ppm.c b/test/any2ppm.c index 40c304b..2403347 100644 --- a/test/any2ppm.c +++ b/test/any2ppm.c @@ -77,6 +77,8 @@ #include #endif +#include + #if HAVE_UNISTD_H && HAVE_FCNTL_H && HAVE_SIGNAL_H && HAVE_SYS_STAT_H && HAVE_SYS_SOCKET_H && HAVE_SYS_POLL_H && HAVE_SYS_UN_H #include #include @@ -84,7 +86,6 @@ #include #include #include -#include #define SOCKET_PATH "./.any2ppm" #define TIMEOUT 60000 /* 60 seconds */ @@ -95,7 +96,7 @@ #define ARRAY_LENGTH(A) (sizeof (A) / sizeof (A[0])) static int -_writen (int fd, char *buf, int len) +_cairo_writen (int fd, char *buf, int len) { while (len) { int ret; @@ -119,7 +120,7 @@ _writen (int fd, char *buf, int len) } static int -_write (int fd, +_cairo_write (int fd, char *buf, int maxlen, int buflen, const unsigned char *src, int srclen) { @@ -140,7 +141,7 @@ _write (int fd, src += len; if (buflen == maxlen) { - if (! _writen (fd, buf, buflen)) + if (! _cairo_writen (fd, buf, buflen)) return -1; buflen = 0; @@ -192,6 +193,7 @@ write_ppm (cairo_surface_t *surface, int fd) break; case CAIRO_FORMAT_A1: case CAIRO_FORMAT_RGB16_565: + case CAIRO_FORMAT_RGB30: case CAIRO_FORMAT_INVALID: default: return "unhandled image format"; @@ -203,7 +205,7 @@ write_ppm (cairo_surface_t *surface, int fd) switch ((int) format) { case CAIRO_FORMAT_ARGB32: - len = _write (fd, + len = _cairo_write (fd, buf, sizeof (buf), len, (unsigned char *) row, 4 * width); break; @@ -214,13 +216,13 @@ write_ppm (cairo_surface_t *surface, int fd) rgb[0] = (p & 0xff0000) >> 16; rgb[1] = (p & 0x00ff00) >> 8; rgb[2] = (p & 0x0000ff) >> 0; - len = _write (fd, + len = _cairo_write (fd, buf, sizeof (buf), len, rgb, 3); } break; case CAIRO_FORMAT_A8: - len = _write (fd, + len = _cairo_write (fd, buf, sizeof (buf), len, (unsigned char *) row, width); break; @@ -229,7 +231,7 @@ write_ppm (cairo_surface_t *surface, int fd) return "write failed"; } - if (len && ! _writen (fd, buf, len)) + if (len && ! _cairo_writen (fd, buf, len)) return "write failed"; return NULL; @@ -268,8 +270,13 @@ _cairo_script_render_page (const char *filename, cairo_surface_t *surface = NULL; cairo_status_t status; const cairo_script_interpreter_hooks_t hooks = { - .closure = &surface, - .surface_create = _create_image, + &surface, + _create_image, + NULL, /* surface_destroy */ + NULL, /* context_create */ + NULL, /* context_destroy */ + NULL, /* show_page */ + NULL /* copy_page */ }; csi = cairo_script_interpreter_create (); diff --git a/test/api-special-cases.c b/test/api-special-cases.c index dbe9eb2..53891bd 100644 --- a/test/api-special-cases.c +++ b/test/api-special-cases.c @@ -561,6 +561,13 @@ test_cairo_xcb_surface_set_size (cairo_surface_t *surface) return CAIRO_TEST_SUCCESS; } +static cairo_test_status_t +test_cairo_xcb_surface_set_drawable (cairo_surface_t *surface) +{ + cairo_xcb_surface_set_drawable (surface, 0, 5, 5); + return CAIRO_TEST_SUCCESS; +} + #endif #if CAIRO_HAS_XLIB_SURFACE @@ -704,6 +711,7 @@ struct { #endif #if CAIRO_HAS_XCB_SURFACE TEST (cairo_xcb_surface_set_size, CAIRO_SURFACE_TYPE_XCB, TRUE), + TEST (cairo_xcb_surface_set_drawable, CAIRO_SURFACE_TYPE_XCB, TRUE), #endif #if CAIRO_HAS_XLIB_SURFACE TEST (cairo_xlib_surface_set_size, CAIRO_SURFACE_TYPE_XLIB, TRUE), diff --git a/test/arc-direction.c b/test/arc-direction.c new file mode 100644 index 0000000..fddb528 --- /dev/null +++ b/test/arc-direction.c @@ -0,0 +1,105 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +#define SIZE (2 * 20) +#define PAD (2) + +static cairo_test_status_t +draw_arcs (cairo_t *cr) +{ + double start = M_PI/12, stop = 2*start; + + cairo_move_to (cr, SIZE/2, SIZE/2); + cairo_arc (cr, SIZE/2, SIZE/2, SIZE/2, start, stop); + cairo_fill (cr); + + cairo_translate (cr, SIZE+PAD, 0); + cairo_move_to (cr, SIZE/2, SIZE/2); + cairo_arc (cr, SIZE/2, SIZE/2, SIZE/2, 2*M_PI-stop, 2*M_PI-start); + cairo_fill (cr); + + cairo_translate (cr, 0, SIZE+PAD); + cairo_move_to (cr, SIZE/2, SIZE/2); + cairo_arc_negative (cr, SIZE/2, SIZE/2, SIZE/2, 2*M_PI-stop, 2*M_PI-start); + cairo_fill (cr); + + cairo_translate (cr, -SIZE-PAD, 0); + cairo_move_to (cr, SIZE/2, SIZE/2); + cairo_arc_negative (cr, SIZE/2, SIZE/2, SIZE/2, start, stop); + cairo_fill (cr); + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_restore (cr); + + cairo_save (cr); + cairo_translate (cr, PAD, PAD); + draw_arcs(cr); + cairo_restore (cr); + + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_translate (cr, 2*SIZE+3*PAD, 0); + cairo_save (cr); + cairo_translate (cr, 2*SIZE+2*PAD, PAD); + cairo_scale (cr, -1, 1); + draw_arcs(cr); + cairo_restore (cr); + + cairo_set_source_rgb (cr, 1, 0, 1); + cairo_translate (cr, 0, 2*SIZE+3*PAD); + cairo_save (cr); + cairo_translate (cr, 2*SIZE+2*PAD, 2*SIZE+2*PAD); + cairo_scale (cr, -1, -1); + draw_arcs(cr); + cairo_restore (cr); + + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_translate (cr, -(2*SIZE+3*PAD), 0); + cairo_save (cr); + cairo_translate (cr, PAD, 2*SIZE+2*PAD); + cairo_scale (cr, 1, -1); + draw_arcs(cr); + cairo_restore (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (arc_direction, + "Test drawing positive/negative arcs", + "arc fill", /* keywords */ + NULL, /* requirements */ + 2*(3*PAD + 2*SIZE), 2*(3*PAD + 2*SIZE), + NULL, draw) + diff --git a/test/buffer-diff.c b/test/buffer-diff.c index 087ac45..f3d90ca 100644 --- a/test/buffer-diff.c +++ b/test/buffer-diff.c @@ -43,7 +43,7 @@ /* Don't allow any differences greater than this value, even if pdiff * claims that the images are identical */ -#define PERCEPTUAL_DIFF_THRESHOLD 25 +#define PERCEPTUAL_DIFF_THRESHOLD 256 /* Compare two buffers, returning the number of pixels that are * different and the maximum difference of any single color channel in @@ -135,7 +135,10 @@ compare_surfaces (const cairo_test_context_t *ctx, double gamma = 2.2; double luminance = 100.0; double field_of_view = 45.0; + float pixels_changed_percentage = 0.05; int discernible_pixels_changed; + int pixels_tolerance; + int width, height; /* First, we run cairo's old buffer_diff algorithm which looks for * pixel-perfect images, (we do this first since the test suite @@ -167,9 +170,12 @@ compare_surfaces (const cairo_test_context_t *ctx, * is lower than a threshold, otherwise some problems could be masked. */ if (result->max_diff < PERCEPTUAL_DIFF_THRESHOLD) { + width = cairo_image_surface_get_width (surface_a); + height = cairo_image_surface_get_height (surface_a); + pixels_tolerance = width * height * pixels_changed_percentage; discernible_pixels_changed = pdiff_compare (surface_a, surface_b, gamma, luminance, field_of_view); - if (discernible_pixels_changed == 0) { + if (discernible_pixels_changed <= pixels_tolerance) { result->pixels_changed = 0; cairo_test_log (ctx, "But perceptual diff finds no visually discernible difference.\n" diff --git a/test/bug-source-cu.c b/test/bug-source-cu.c new file mode 100644 index 0000000..4c1e2bc --- /dev/null +++ b/test/bug-source-cu.c @@ -0,0 +1,81 @@ +/* + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "cairo-test.h" + +static cairo_pattern_t * +create_pattern (cairo_surface_t *target) +{ + cairo_surface_t *surface; + cairo_pattern_t *pattern; + cairo_t *cr; + cairo_matrix_t m; + + surface = cairo_surface_create_similar(target, + cairo_surface_get_content (target), + 1000, 600); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + cairo_set_source_rgb (cr, 0, 1, 0); + cairo_paint(cr); + + pattern = cairo_pattern_create_for_surface (cairo_get_target (cr)); + cairo_destroy(cr); + + cairo_matrix_init_translate (&m, 0, 0.1); // y offset must be non-integer + cairo_pattern_set_matrix (pattern, &m); + return pattern; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_pattern_t *pattern; + + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_paint (cr); + + cairo_new_path (cr); + cairo_move_to (cr, 10, 400.1); + cairo_line_to (cr, 990, 400.1); + cairo_line_to (cr, 990, 600); + cairo_line_to (cr, 10, 600); + cairo_close_path (cr); + + pattern = create_pattern (cairo_get_target (cr)); + cairo_set_source (cr, pattern); + cairo_pattern_destroy (pattern); + + cairo_fill(cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (bug_source_cu, + "Exercises a bug discovered in the tracking of unbounded source extents", + "fill", /* keywords */ + NULL, /* requirements */ + 1000, 600, + NULL, draw) diff --git a/test/cairo-test-private.h b/test/cairo-test-private.h index bd0c0ac..3e40324 100644 --- a/test/cairo-test-private.h +++ b/test/cairo-test-private.h @@ -46,9 +46,6 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, const cairo_boilerplate_target_t *target); cairo_test_status_t -_cairo_test_context_run (cairo_test_context_t *ctx); - -cairo_test_status_t _cairo_test_context_run_for_target (cairo_test_context_t *ctx, const cairo_boilerplate_target_t *target, cairo_bool_t similar, @@ -64,9 +61,6 @@ cairo_test_init (cairo_test_context_t *ctx, const char *test_name, const char *output); -cairo_test_status_t -cairo_test (const cairo_test_t *test); - void cairo_test_fini (cairo_test_context_t *ctx); diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c index 28e4b5d..a5c6705 100644 --- a/test/cairo-test-runner.c +++ b/test/cairo-test-runner.c @@ -35,10 +35,7 @@ #include /* for version information */ -/* Coregraphics doesn't seem to like being forked and reports: - * "The process has forked and you cannot use this CoreFoundation functionality safely. You MUST exec()." - * so we don't for on OS X */ -#define SHOULD_FORK HAVE_FORK && HAVE_WAITPID && !__APPLE__ +#define SHOULD_FORK HAVE_FORK && HAVE_WAITPID #if SHOULD_FORK #if HAVE_UNISTD_H #include @@ -107,7 +104,7 @@ typedef enum { GT } cairo_test_compare_op_t; -static cairo_test_t *tests; +static cairo_test_list_t *tests; static void CAIRO_BOILERPLATE_PRINTF_FORMAT(2,3) _log (cairo_test_context_t *ctx, @@ -125,18 +122,6 @@ _log (cairo_test_context_t *ctx, va_end (ap); } -static void -_tests_reverse (void) -{ - cairo_test_t *list, *next; - - for (list = tests, tests = NULL; list != NULL; list = next) { - next = list->next; - list->next = tests; - tests = list; - } -} - static cairo_test_list_t * _list_prepend (cairo_test_list_t *head, const cairo_test_t *test) { @@ -341,7 +326,6 @@ usage (const char *argv0) { fprintf (stderr, "Usage: %s [-afkxsl] [test-names|keywords ...]\n" - " %s -l\n" "\n" "Run the cairo conformance test suite over the given tests (all by default)\n" "The command-line arguments are interpreted as follows:\n" @@ -350,15 +334,15 @@ usage (const char *argv0) " skips similar surface and device offset testing.\n" " -f foreground; do not fork\n" " -k match tests by keyword\n" + " -l list only; just list selected test case names without executing\n" " -s include slow, long running tests\n" " -x exit on first failure\n" - " -l list only; just list selected test case names without executing\n" "\n" "If test names are given they are used as matches either to a specific\n" "test case or to a keyword, so a command such as\n" - "\"cairo-test-suite -k text\" can be used to run all text test cases, and\n" - "\"cairo-test-suite text-transform\" to run the individual case.\n", - argv0, argv0); + "\"%s -k text\" can be used to run all text test cases, and\n" + "\"%s text-transform\" to run the individual case.\n", + argv0, argv0, argv0); } static void @@ -367,7 +351,7 @@ _parse_cmdline (cairo_test_runner_t *runner, int *argc, char **argv[]) int c; while (1) { - c = _cairo_getopt (*argc, *argv, ":afkxsl"); + c = _cairo_getopt (*argc, *argv, ":afklsx"); if (c == -1) break; @@ -375,21 +359,21 @@ _parse_cmdline (cairo_test_runner_t *runner, int *argc, char **argv[]) case 'a': runner->full_test = TRUE; break; - case 's': - runner->slow = TRUE; + case 'f': + runner->foreground = TRUE; + break; + case 'k': + runner->keyword_match = TRUE; break; case 'l': runner->list_only = TRUE; break; - case 'f': - runner->foreground = TRUE; + case 's': + runner->slow = TRUE; break; case 'x': runner->exit_on_failure = TRUE; break; - case 'k': - runner->keyword_match = TRUE; - break; default: fprintf (stderr, "Internal error: unhandled option: %c\n", c); /* fall-through */ @@ -710,7 +694,7 @@ int main (int argc, char **argv) { cairo_test_runner_t runner; - cairo_test_t *test; + cairo_test_list_t *test_list; cairo_test_status_t *target_status; unsigned int n, m; char targets[4096]; @@ -724,7 +708,7 @@ main (int argc, char **argv) #endif _cairo_test_runner_register_tests (); - _tests_reverse (); + tests = _list_reverse (tests); memset (&runner, 0, sizeof (runner)); runner.num_device_offsets = 1; @@ -769,7 +753,8 @@ main (int argc, char **argv) runner.base.num_targets); } - for (test = tests; test != NULL; test = test->next) { + for (test_list = tests; test_list != NULL; test_list = test_list->next) { + const cairo_test_t *test = test_list->test; cairo_test_context_t ctx; cairo_test_status_t status; cairo_bool_t failed = FALSE, xfailed = FALSE, error = FALSE, crashed = FALSE, skipped = TRUE; @@ -1098,6 +1083,5 @@ main (int argc, char **argv) void cairo_test_register (cairo_test_t *test) { - test->next = tests; - tests = test; + tests = _list_prepend (tests, test); } diff --git a/test/cairo-test-trace.c b/test/cairo-test-trace.c index fb1bd42..52d9dd9 100644 --- a/test/cairo-test-trace.c +++ b/test/cairo-test-trace.c @@ -591,7 +591,6 @@ spawn_target (const char *socket_path, 1, 1, 1, 1, CAIRO_BOILERPLATE_MODE_TEST, - 0, &tr.closure); if (tr.surface == NULL) { fprintf (stderr, @@ -1527,17 +1526,16 @@ static void usage (const char *argv0) { fprintf (stderr, -"Usage: %s [-x exclude-file] [test-names ... | traces ...]\n" -" %s -l\n" +"Usage: %s [-l] [-x exclude-file] [test-names ... | traces ...]\n" "\n" "Run the cairo test suite over the given traces (all by default).\n" "The command-line arguments are interpreted as follows:\n" "\n" -" -x exclude; specify a file to read a list of traces to exclude\n" " -l list only; just list selected test case names without executing\n" +" -x exclude; specify a file to read a list of traces to exclude\n" "\n" "If test names are given they are used as sub-string matches so a command\n" -"such as \"cairo-test-trace firefox\" can be used to run all firefox traces.\n" +"such as \"%s firefox\" can be used to run all firefox traces.\n" "Alternatively, you can specify a list of filenames to execute.\n", argv0, argv0); } @@ -1554,7 +1552,7 @@ parse_options (test_trace_t *test, int argc, char *argv[]) test->num_exclude_names = 0; while (1) { - c = _cairo_getopt (argc, argv, "x:l"); + c = _cairo_getopt (argc, argv, "lx:"); if (c == -1) break; diff --git a/test/cairo-test.c b/test/cairo-test.c index b2d6b3f..3f37147 100644 --- a/test/cairo-test.c +++ b/test/cairo-test.c @@ -73,7 +73,10 @@ #ifdef _MSC_VER #include +#include #define F_OK 0 +#define HAVE_MKDIR 1 +#define mkdir _mkdir #endif #ifndef FALSE @@ -87,7 +90,7 @@ #define ARRAY_SIZE(A) (sizeof(A) / sizeof (A[0])) #endif -#if ! HAVE_ALARM +#if ! HAVE_ALARM || ! defined(SIGALRM) #define alarm(X); #endif @@ -102,14 +105,30 @@ static int cairo_test_timeout = 60; #define NUM_DEVICE_OFFSETS 2 +static cairo_bool_t +_cairo_test_mkdir (const char *path) +{ +#if ! HAVE_MKDIR + return FALSE; +#elif HAVE_MKDIR == 1 + if (mkdir (path) == 0) + return TRUE; +#elif HAVE_MKDIR == 2 + if (mkdir (path, 0770) == 0) + return TRUE; +#else +#error Bad value for HAVE_MKDIR +#endif + + return errno == EEXIST; +} + static char * _cairo_test_fixup_name (const char *original) { - int len = strlen (original); char *name, *s; - name = xmalloc (len + 1); - s = memcpy (name, original, len + 1); + s = name = xstrdup (original); while ((s = strchr (s, '_')) != NULL) *s++ = '-'; @@ -141,6 +160,8 @@ _cairo_test_init (cairo_test_context_t *ctx, ctx->test_name = _cairo_test_fixup_name (test_name); ctx->output = output; + _cairo_test_mkdir (ctx->output); + ctx->malloc_failure = 0; #if HAVE_MEMFAULT if (getenv ("CAIRO_TEST_MALLOC_FAILURE")) @@ -167,8 +188,6 @@ _cairo_test_init (cairo_test_context_t *ctx, ctx->ref_image = NULL; ctx->ref_image_flattened = NULL; - ctx->thread = 0; - if (parent != NULL) { ctx->targets_to_test = parent->targets_to_test; ctx->num_targets = parent->num_targets; @@ -222,23 +241,9 @@ cairo_test_init (cairo_test_context_t *ctx, _cairo_test_init (ctx, NULL, NULL, test_name, output); } -static void -cairo_test_init_thread (cairo_test_context_t *ctx, - cairo_test_context_t *master, - int thread) -{ - MF (MEMFAULT_DISABLE_FAULTS ()); - - *ctx = *master; - ctx->thread = thread; -} - void cairo_test_fini (cairo_test_context_t *ctx) { - if (ctx->thread != 0) - return; - if (ctx->log_file == NULL) return; @@ -246,8 +251,7 @@ cairo_test_fini (cairo_test_context_t *ctx) fclose (ctx->log_file); ctx->log_file = NULL; - if (ctx->ref_name != NULL) - free (ctx->ref_name); + free (ctx->ref_name); cairo_surface_destroy (ctx->ref_image); cairo_surface_destroy (ctx->ref_image_flattened); @@ -277,49 +281,12 @@ void cairo_test_log (const cairo_test_context_t *ctx, const char *fmt, ...) { va_list va; - FILE *file = ctx && ctx->log_file ? ctx->log_file : stderr; va_start (va, fmt); - vfprintf (file, fmt, va); + cairo_test_logv (ctx, fmt, va); va_end (va); } -void -cairo_test_log_path (const cairo_test_context_t *ctx, - const cairo_path_t *path) -{ - int i; - - for (i = 0; i < path->num_data; i += path->data[i].header.length) { - cairo_path_data_t *data = &path->data[i]; - switch (data->header.type) { - case CAIRO_PATH_MOVE_TO: - cairo_test_log (ctx, - " cairo_move_to (cr, %g, %g);\n", - data[1].point.x, data[1].point.y); - break; - case CAIRO_PATH_LINE_TO: - cairo_test_log (ctx, - " cairo_line_to (cr, %g, %g);\n", - data[1].point.x, data[1].point.y); - break; - case CAIRO_PATH_CURVE_TO: - cairo_test_log (ctx, - " cairo_curve_to (cr, %g, %g, %g, %g, %g, %g);\n", - data[1].point.x, data[1].point.y, - data[2].point.x, data[2].point.y, - data[3].point.x, data[3].point.y); - break; - case CAIRO_PATH_CLOSE_PATH: - cairo_test_log (ctx, - " cairo_close_path (cr);\n\n"); - break; - default: - assert (0); - } - } -} - static void _xunlink (const cairo_test_context_t *ctx, const char *pathname) { @@ -437,24 +404,6 @@ done: return ref_name; } -static cairo_bool_t -_cairo_test_mkdir (const char *path) -{ -#if ! HAVE_MKDIR - return FALSE; -#elif HAVE_MKDIR == 1 - if (mkdir (path) == 0) - return TRUE; -#elif HAVE_MKDIR == 2 - if (mkdir (path, 0770) == 0) - return TRUE; -#else -#error Bad value for HAVE_MKDIR -#endif - - return errno == EEXIST; -} - cairo_test_similar_t cairo_test_target_has_similar (const cairo_test_context_t *ctx, const cairo_boilerplate_target_t *target) @@ -488,7 +437,6 @@ cairo_test_target_has_similar (const cairo_test_context_t *ctx, ctx->test->width + 25 * NUM_DEVICE_OFFSETS, ctx->test->height + 25 * NUM_DEVICE_OFFSETS, CAIRO_BOILERPLATE_MODE_TEST, - 0, &closure); if (surface == NULL) goto out; @@ -559,7 +507,6 @@ cairo_test_get_reference_image (cairo_test_context_t *ctx, cairo_bool_t flatten) { cairo_surface_t *surface; - int len; if (ctx->ref_name != NULL) { if (strcmp (ctx->ref_name, filename) == 0) @@ -579,10 +526,7 @@ cairo_test_get_reference_image (cairo_test_context_t *ctx, if (cairo_surface_status (surface)) return surface; - len = strlen (filename); - ctx->ref_name = xmalloc (len + 1); - memcpy (ctx->ref_name, filename, len + 1); - + ctx->ref_name = xstrdup (filename); ctx->ref_image = surface; return _cairo_test_flatten_reference_image (ctx, flatten); } @@ -694,7 +638,7 @@ cairo_test_for_target (cairo_test_context_t *ctx, cairo_surface_t *surface = NULL; cairo_t *cr; const char *empty_str = ""; - char *offset_str, *thread_str; + char *offset_str; char *base_name, *base_path; char *out_png_path; char *ref_path = NULL, *ref_png_path, *cmp_png_path = NULL; @@ -725,24 +669,16 @@ cairo_test_for_target (cairo_test_context_t *ctx, xasprintf (&offset_str, ".%d", dev_offset); else offset_str = (char *) empty_str; - if (ctx->thread) - xasprintf (&thread_str, ".thread%d", ctx->thread); - else - thread_str = (char *) empty_str; - xasprintf (&base_name, "%s.%s.%s%s%s%s", + xasprintf (&base_name, "%s.%s.%s%s%s", ctx->test_name, target->name, format, similar ? ".similar" : "", - offset_str, - thread_str); + offset_str); if (offset_str != empty_str) free (offset_str); - if (thread_str != empty_str) - free (thread_str); - ref_png_path = cairo_test_reference_filename (ctx, base_name, @@ -881,7 +817,6 @@ REPEAT: ctx->test->width + 25 * NUM_DEVICE_OFFSETS, ctx->test->height + 25 * NUM_DEVICE_OFFSETS, CAIRO_BOILERPLATE_MODE_TEST, - ctx->thread, &closure); if (surface == NULL) { cairo_test_log (ctx, "Error: Failed to set %s target\n", target->name); @@ -1009,15 +944,13 @@ REPEAT: cairo_surface_destroy (surface); if (target->cleanup) target->cleanup (closure); - if (ctx->thread == 0) { - cairo_debug_reset_static_data (); + cairo_debug_reset_static_data (); #if HAVE_FCFINI - FcFini (); + FcFini (); #endif - if (MEMFAULT_COUNT_LEAKS () > 0) { - MEMFAULT_PRINT_FAULTS (); - MEMFAULT_PRINT_LEAKS (); - } + if (MEMFAULT_COUNT_LEAKS () > 0) { + MEMFAULT_PRINT_FAULTS (); + MEMFAULT_PRINT_LEAKS (); } goto REPEAT; @@ -1066,15 +999,13 @@ REPEAT: cairo_surface_destroy (surface); if (target->cleanup) target->cleanup (closure); - if (ctx->thread == 0) { - cairo_debug_reset_static_data (); + cairo_debug_reset_static_data (); #if HAVE_FCFINI - FcFini (); + FcFini (); #endif - if (MEMFAULT_COUNT_LEAKS () > 0) { - MEMFAULT_PRINT_FAULTS (); - MEMFAULT_PRINT_LEAKS (); - } + if (MEMFAULT_COUNT_LEAKS () > 0) { + MEMFAULT_PRINT_FAULTS (); + MEMFAULT_PRINT_LEAKS (); } goto REPEAT; @@ -1460,18 +1391,11 @@ REPEAT: } UNWIND_CAIRO: - if (test_filename != NULL) { - free (test_filename); - test_filename = NULL; - } - if (fail_filename != NULL) { - free (fail_filename); - fail_filename = NULL; - } - if (pass_filename != NULL) { - free (pass_filename); - pass_filename = NULL; - } + free (test_filename); + free (fail_filename); + free (pass_filename); + + test_filename = fail_filename = pass_filename = NULL; #if HAVE_MEMFAULT if (ret == CAIRO_TEST_FAILURE) @@ -1485,66 +1409,49 @@ UNWIND_SURFACE: target->cleanup (closure); #if HAVE_MEMFAULT - if (ctx->thread == 0) { - cairo_debug_reset_static_data (); + cairo_debug_reset_static_data (); #if HAVE_FCFINI - FcFini (); + FcFini (); #endif - if (MEMFAULT_COUNT_LEAKS () > 0) { - if (ret != CAIRO_TEST_FAILURE) - MEMFAULT_PRINT_FAULTS (); - MEMFAULT_PRINT_LEAKS (); - } + if (MEMFAULT_COUNT_LEAKS () > 0) { + if (ret != CAIRO_TEST_FAILURE) + MEMFAULT_PRINT_FAULTS (); + MEMFAULT_PRINT_LEAKS (); } if (ret == CAIRO_TEST_SUCCESS && --malloc_failure_iterations > 0) goto REPEAT; #endif - if (ctx->thread == 0) { - if (have_output) - cairo_test_log (ctx, "OUTPUT: %s\n", out_png_path); + if (have_output) + cairo_test_log (ctx, "OUTPUT: %s\n", out_png_path); - if (have_result) { - if (cmp_png_path == NULL) { - /* XXX presume we matched the normal ref last time */ - cmp_png_path = ref_png_path; - } - cairo_test_log (ctx, - "REFERENCE: %s\nDIFFERENCE: %s\n", - cmp_png_path, diff_png_path); + if (have_result) { + if (cmp_png_path == NULL) { + /* XXX presume we matched the normal ref last time */ + cmp_png_path = ref_png_path; } + cairo_test_log (ctx, + "REFERENCE: %s\nDIFFERENCE: %s\n", + cmp_png_path, diff_png_path); } UNWIND_STRINGS: - if (out_png_path) - free (out_png_path); - if (ref_png_path) - free (ref_png_path); - if (base_ref_png_path) - free (base_ref_png_path); - if (ref_path) - free (ref_path); - if (new_png_path) - free (new_png_path); - if (base_new_png_path) - free (base_new_png_path); - if (new_path) - free (new_path); - if (xfail_png_path) - free (xfail_png_path); - if (base_xfail_png_path) - free (base_xfail_png_path); - if (xfail_path) - free (xfail_path); - if (diff_png_path) - free (diff_png_path); - if (base_path) - free (base_path); - if (base_name) - free (base_name); + free (out_png_path); + free (ref_png_path); + free (base_ref_png_path); + free (ref_path); + free (new_png_path); + free (base_new_png_path); + free (new_path); + free (xfail_png_path); + free (base_xfail_png_path); + free (xfail_path); + free (diff_png_path); + free (base_path); + free (base_name); return ret; } @@ -1585,16 +1492,14 @@ _cairo_test_context_run_for_target (cairo_test_context_t *ctx, target->name, dev_offset); - if (ctx->thread == 0) { - printf ("%s.%s.%s [%d]%s:\t", ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), - dev_offset, - similar ? " (similar)": ""); - fflush (stdout); - } + printf ("%s.%s.%s [%d]%s:\t", ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), + dev_offset, + similar ? " (similar)": ""); + fflush (stdout); #if defined(HAVE_SIGNAL_H) && defined(HAVE_SETJMP_H) - if (ctx->thread == 0 && ! RUNNING_ON_VALGRIND) { + if (! RUNNING_ON_VALGRIND) { void (* volatile old_segfault_handler)(int); void (* volatile old_segfpe_handler)(int); void (* volatile old_sigpipe_handler)(int); @@ -1643,280 +1548,102 @@ _cairo_test_context_run_for_target (cairo_test_context_t *ctx, status = cairo_test_for_target (ctx, target, dev_offset, similar); #endif - if (ctx->thread == 0) { - cairo_test_log (ctx, - "TEST: %s TARGET: %s FORMAT: %s OFFSET: %d SIMILAR: %d RESULT: ", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), - dev_offset, similar); - switch (status) { - case CAIRO_TEST_SUCCESS: - printf ("PASS\n"); - cairo_test_log (ctx, "PASS\n"); - break; - - case CAIRO_TEST_UNTESTED: - printf ("UNTESTED\n"); - cairo_test_log (ctx, "UNTESTED\n"); - break; - - default: - case CAIRO_TEST_CRASHED: - if (print_fail_on_stdout && ctx->thread == 0) { - printf ("!!!CRASHED!!!\n"); - } else { - /* eat the test name */ - printf ("\r"); - fflush (stdout); - } - cairo_test_log (ctx, "CRASHED\n"); - fprintf (stderr, "%s.%s.%s [%d]%s:\t%s!!!CRASHED!!!%s\n", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", - fail_face, normal_face); - break; - - case CAIRO_TEST_ERROR: - if (print_fail_on_stdout && ctx->thread == 0) { - printf ("!!!ERROR!!!\n"); - } else { - /* eat the test name */ - printf ("\r"); - fflush (stdout); - } - cairo_test_log (ctx, "ERROR\n"); - fprintf (stderr, "%s.%s.%s [%d]%s:\t%s!!!ERROR!!!%s\n", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", - fail_face, normal_face); - break; - - case CAIRO_TEST_XFAILURE: - if (print_fail_on_stdout && ctx->thread == 0) { - printf ("XFAIL\n"); - } else { - /* eat the test name */ - printf ("\r"); - fflush (stdout); - } - fprintf (stderr, "%s.%s.%s [%d]%s:\t%sXFAIL%s\n", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", - xfail_face, normal_face); - cairo_test_log (ctx, "XFAIL\n"); - break; + cairo_test_log (ctx, + "TEST: %s TARGET: %s FORMAT: %s OFFSET: %d SIMILAR: %d RESULT: ", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), + dev_offset, similar); + switch (status) { + case CAIRO_TEST_SUCCESS: + printf ("PASS\n"); + cairo_test_log (ctx, "PASS\n"); + break; - case CAIRO_TEST_NEW: - if (print_fail_on_stdout && ctx->thread == 0) { - printf ("NEW\n"); - } else { - /* eat the test name */ - printf ("\r"); - fflush (stdout); - } - fprintf (stderr, "%s.%s.%s [%d]%s:\t%sNEW%s\n", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", - fail_face, normal_face); - cairo_test_log (ctx, "NEW\n"); - break; + case CAIRO_TEST_UNTESTED: + printf ("UNTESTED\n"); + cairo_test_log (ctx, "UNTESTED\n"); + break; - case CAIRO_TEST_NO_MEMORY: - case CAIRO_TEST_FAILURE: - if (print_fail_on_stdout && ctx->thread == 0) { - printf ("FAIL\n"); - } else { - /* eat the test name */ - printf ("\r"); - fflush (stdout); - } - fprintf (stderr, "%s.%s.%s [%d]%s:\t%sFAIL%s\n", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", - fail_face, normal_face); - cairo_test_log (ctx, "FAIL\n"); - break; - } - fflush (stdout); - } else { -#if HAVE_FLOCKFILE && HAVE_FUNLOCKFILE - flockfile (stdout); -#endif - printf ("%s.%s.%s %d [%d]:\t", - ctx->test_name, target->name, - cairo_boilerplate_content_name (target->content), - ctx->thread, - dev_offset); - switch (status) { - case CAIRO_TEST_SUCCESS: - printf ("PASS\n"); - break; - case CAIRO_TEST_UNTESTED: - printf ("UNTESTED\n"); - break; - default: - case CAIRO_TEST_CRASHED: + default: + case CAIRO_TEST_CRASHED: + if (print_fail_on_stdout) { printf ("!!!CRASHED!!!\n"); - break; - case CAIRO_TEST_ERROR: - printf ("!!!ERRORED!!!\n"); - break; - case CAIRO_TEST_XFAILURE: - printf ("XFAIL\n"); - break; - case CAIRO_TEST_NEW: - printf ("NEW\n"); - break; - case CAIRO_TEST_NO_MEMORY: - case CAIRO_TEST_FAILURE: - printf ("FAIL\n"); - break; + } else { + /* eat the test name */ + printf ("\r"); + fflush (stdout); } + cairo_test_log (ctx, "CRASHED\n"); + fprintf (stderr, "%s.%s.%s [%d]%s:\t%s!!!CRASHED!!!%s\n", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", + fail_face, normal_face); + break; - fflush (stdout); -#if HAVE_FLOCKFILE && HAVE_FUNLOCKFILE - funlockfile (stdout); -#endif - } - - return status; -} - -cairo_test_status_t -_cairo_test_context_run (cairo_test_context_t *ctx) -{ - size_t i, j; - cairo_test_status_t ret; - - ret = CAIRO_TEST_UNTESTED; - if (ctx->test->preamble != NULL) - ret = ctx->test->preamble (ctx); - - if (ctx->test->draw == NULL) - return ret; - - /* The intended logic here is that we return overall SUCCESS - * iff. there is at least one tested backend and that all tested - * backends return SUCCESS, OR, there's backends were manually - * limited, and none were tested. - * In other words: - * - * if backends limited and no backend tested - * -> SUCCESS - * else if any backend not SUCCESS - * -> FAILURE - * else if all backends UNTESTED - * -> FAILURE - * else (== some backend SUCCESS) - * -> SUCCESS - * - * Also, on a crash, run no further tests. - */ - for (i = 0; i < ctx->num_targets && ret != CAIRO_TEST_CRASHED; i++) { - const cairo_boilerplate_target_t *target = ctx->targets_to_test[(i + ctx->thread) % ctx->num_targets]; - - for (j = 0; j < NUM_DEVICE_OFFSETS; j++) { - int dev_offset = ((j + ctx->thread) % NUM_DEVICE_OFFSETS) * 25; - cairo_test_similar_t similar, has_similar; - - has_similar = cairo_test_target_has_similar (ctx, target); - for (similar = DIRECT; similar <= has_similar; similar++) { - cairo_status_t status; - - status = _cairo_test_context_run_for_target (ctx, - target, - similar, - dev_offset); - if (ret == CAIRO_TEST_UNTESTED) - ret = status; - } + case CAIRO_TEST_ERROR: + if (print_fail_on_stdout) { + printf ("!!!ERROR!!!\n"); + } else { + /* eat the test name */ + printf ("\r"); + fflush (stdout); } - } - - return ret; -} - -#if CAIRO_HAS_REAL_PTHREAD -typedef struct _cairo_test_thread { - pthread_t thread; - cairo_test_context_t *ctx; - size_t id; -} cairo_test_thread_t; - -static void * -cairo_test_run_threaded (void *closure) -{ - cairo_test_thread_t *arg = closure; - cairo_test_context_t ctx; - cairo_test_status_t ret; - - cairo_test_init_thread (&ctx, arg->ctx, arg->id); - - ret = _cairo_test_context_run (&ctx); - - cairo_test_fini (&ctx); - - return (void *) ret; -} -#endif - - -static cairo_test_status_t -cairo_test_expecting (const cairo_test_t *test) -{ - cairo_test_context_t ctx; - cairo_test_status_t ret = CAIRO_TEST_SUCCESS; - size_t num_threads; + cairo_test_log (ctx, "ERROR\n"); + fprintf (stderr, "%s.%s.%s [%d]%s:\t%s!!!ERROR!!!%s\n", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", + fail_face, normal_face); + break; - _cairo_test_init (&ctx, NULL, test, test->name, CAIRO_TEST_OUTPUT_DIR); - printf ("%s\n", test->description); + case CAIRO_TEST_XFAILURE: + if (print_fail_on_stdout) { + printf ("XFAIL\n"); + } else { + /* eat the test name */ + printf ("\r"); + fflush (stdout); + } + fprintf (stderr, "%s.%s.%s [%d]%s:\t%sXFAIL%s\n", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", + xfail_face, normal_face); + cairo_test_log (ctx, "XFAIL\n"); + break; -#if CAIRO_HAS_REAL_PTHREAD - num_threads = 0; - if (getenv ("CAIRO_TEST_NUM_THREADS")) - num_threads = atoi (getenv ("CAIRO_TEST_NUM_THREADS")); - if (num_threads > 1) { - cairo_test_thread_t *threads; - size_t n; - - threads = xmalloc (sizeof (cairo_test_thread_t) * num_threads); - for (n = 0; n < num_threads; n++) { - threads[n].ctx = &ctx; - threads[n].id = n + 1; - pthread_create (&threads[n].thread, NULL, - cairo_test_run_threaded, &threads[n]); + case CAIRO_TEST_NEW: + if (print_fail_on_stdout) { + printf ("NEW\n"); + } else { + /* eat the test name */ + printf ("\r"); + fflush (stdout); } - for (n = 0; n < num_threads; n++) { - void *tmp; - pthread_join (threads[n].thread, &tmp); - if (ret == CAIRO_TEST_SUCCESS) - ret = (cairo_test_status_t) tmp; + fprintf (stderr, "%s.%s.%s [%d]%s:\t%sNEW%s\n", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", + fail_face, normal_face); + cairo_test_log (ctx, "NEW\n"); + break; + + case CAIRO_TEST_NO_MEMORY: + case CAIRO_TEST_FAILURE: + if (print_fail_on_stdout) { + printf ("FAIL\n"); + } else { + /* eat the test name */ + printf ("\r"); + fflush (stdout); } - free (threads); + fprintf (stderr, "%s.%s.%s [%d]%s:\t%sFAIL%s\n", + ctx->test_name, target->name, + cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "", + fail_face, normal_face); + cairo_test_log (ctx, "FAIL\n"); + break; } + fflush (stdout); - if (ret == CAIRO_TEST_SUCCESS) -#endif - ret = _cairo_test_context_run (&ctx); - - if (ret != CAIRO_TEST_SUCCESS) - printf ("Check %s%s out for more information.\n", ctx.test_name, CAIRO_TEST_LOG_SUFFIX); - - cairo_test_fini (&ctx); - - return ret; -} - -cairo_test_status_t -cairo_test (const cairo_test_t *test) -{ -#ifdef _MSC_VER - /* We don't want an assert dialog, we want stderr */ - _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE); - _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); -#endif - - return cairo_test_expecting (test); + return status; } const cairo_test_context_t * diff --git a/test/cairo-test.h b/test/cairo-test.h index dd4fcf9..d41cd29 100644 --- a/test/cairo-test.h +++ b/test/cairo-test.h @@ -153,7 +153,6 @@ typedef cairo_test_status_t (cairo_test_draw_function_t) (cairo_t *cr, int width, int height); struct _cairo_test { - struct _cairo_test *next; const char *name; const char *description; const char *keywords; @@ -194,7 +193,7 @@ struct _cairo_test { void _register_##name (void); \ void _register_##name (void) { \ static cairo_test_t test = { \ - NULL, #name, description, \ + #name, description, \ keywords, requirements, \ width, height, \ preamble, draw \ @@ -237,8 +236,6 @@ struct _cairo_test_context { int last_fault_count; int timeout; - - int thread; }; /* Retrieve the test context from the cairo_t, used for logging, paths etc */ @@ -254,10 +251,6 @@ void cairo_test_logv (const cairo_test_context_t *ctx, const char *fmt, va_list ap) CAIRO_BOILERPLATE_PRINTF_FORMAT(2, 0); -void -cairo_test_log_path (const cairo_test_context_t *ctx, - const cairo_path_t *path); - /* Helper functions that take care of finding source images even when * building in a non-srcdir manner, (i.e. the tests will be run in a * directory that is different from the one where the source image diff --git a/test/copy-disjoint.c b/test/copy-disjoint.c new file mode 100644 index 0000000..1ddfd5a --- /dev/null +++ b/test/copy-disjoint.c @@ -0,0 +1,87 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +/* The goal is exercise a bug that existed in the xlib backend, where + * it assumed the rectangles generated by rectangular tessallator had + * any sorting guarantees. + */ + +#define WIDTH 300 +#define HEIGHT 300 + +static cairo_surface_t * +create_source (cairo_surface_t *target) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_surface_create_similar (target, + CAIRO_CONTENT_COLOR, + WIDTH, HEIGHT); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + surface = cairo_surface_reference (cairo_get_target (cr)); + cairo_destroy (cr); + + return surface; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *white; + int x; + + /* black background */ + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_paint (cr); + + /* white rectangles */ + white = create_source (cairo_get_target (cr)); + cairo_set_source_surface (cr, white, 0, 0); + cairo_surface_destroy (white); + + /* blit a set of rectangles that the rectangular tessellator + * will not emit sorted. */ + for (x = 0; x < WIDTH - 10; x += 15) + cairo_rectangle (cr, x, x, 10, HEIGHT - 2*x); + cairo_fill (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (copy_disjoint, + "Tests copying unsorted rectangles.", + "fill", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw) diff --git a/test/dash-offset.c b/test/dash-offset.c index 0e53687..f4269ee 100644 --- a/test/dash-offset.c +++ b/test/dash-offset.c @@ -37,7 +37,7 @@ static const double frac_offset[] = { 0, 2, 4, 6 }; * This corresponds to the non-inverted part only if * the dash pattern has odd length, so the expected result * is the same for every int_offset if the pattern has - * even lenght, and inverted each time (or shifted by half + * even length, and inverted each time (or shifted by half * period, which is the same) if the pattern has odd length. */ static const double int_offset[] = { -2, -1, 0, 1, 2 }; diff --git a/test/degenerate-solid-dash.c b/test/degenerate-solid-dash.c new file mode 100644 index 0000000..293a808 --- /dev/null +++ b/test/degenerate-solid-dash.c @@ -0,0 +1,69 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + const double dashes_1[] = { 10, 0 }; + const double dashes_2[] = { 10, 0, 10, 10}; + const double dashes_3[] = { 10, 0, 10, 0}; + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + cairo_set_source_rgb (cr, 0, 0, 0); + + cairo_set_line_width (cr, 6); + + cairo_set_dash (cr, NULL, 0, 0); + cairo_rectangle (cr, 10, 10, 30, 30); + cairo_stroke (cr); + + cairo_translate (cr, 50, 0); + cairo_set_dash (cr, dashes_1, 2, 0); + cairo_rectangle (cr, 10, 10, 30, 30); + cairo_stroke (cr); + + cairo_translate (cr, 0, 50); + cairo_set_dash (cr, dashes_2, 4, 0); + cairo_rectangle (cr, 10, 10, 30, 30); + cairo_stroke (cr); + + cairo_translate (cr, -50, 0); + cairo_set_dash (cr, dashes_3, 4, 0); + cairo_rectangle (cr, 10, 10, 30, 30); + cairo_stroke (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (degenerate_solid_dash, + "Exercises degenerate dash ellison", + "stroke, dash", /* keywords */ + NULL, /* requirements */ + 100, 100, + NULL, draw) diff --git a/test/fallback-resolution.c b/test/fallback-resolution.c index 5447a56..bf83e31 100644 --- a/test/fallback-resolution.c +++ b/test/fallback-resolution.c @@ -32,6 +32,7 @@ #include #include #include +#include #ifdef HAVE_UNISTD_H #include @@ -270,6 +271,23 @@ generate_reference (double ppi_x, double ppi_y, const char *filename) cr = cairo_create (surface); cairo_surface_destroy (surface); + /* As we wish to mimic a PDF surface, copy across the default font options + * from the PDF backend. + */ + { + cairo_surface_t *pdf; + cairo_font_options_t *options; + + options = cairo_font_options_create (); + + pdf = cairo_pdf_surface_create ("tmp.pdf", 1, 1); + cairo_surface_get_font_options (pdf, options); + cairo_surface_destroy (pdf); + + cairo_set_font_options (cr, options); + cairo_font_options_destroy (options); + } + #if SET_TOLERANCE cairo_set_tolerance (cr, 3.0); #endif @@ -351,7 +369,7 @@ preamble (cairo_test_context_t *ctx) #if GENERATE_REFERENCE for (n = 0; n < num_ppi; n++) { char *ref_name; - xasprintf (&ref_name, "fallback-resolution.ppi%gx%g.ref.png", + xasprintf (&ref_name, "reference/fallback-resolution.ppi%gx%g.ref.png", ppi[n].x, ppi[n].y); generate_reference (ppi[n].x, ppi[n].y, ref_name); free (ref_name); @@ -382,7 +400,6 @@ preamble (cairo_test_context_t *ctx) SIZE, SIZE, SIZE, SIZE, CAIRO_BOILERPLATE_MODE_TEST, - 0, &closure); if (surface == NULL) { @@ -417,7 +434,6 @@ preamble (cairo_test_context_t *ctx) SIZE + 25, SIZE + 25, SIZE + 25, SIZE + 25, CAIRO_BOILERPLATE_MODE_TEST, - 0, &closure); if (surface == NULL || cairo_surface_status (surface)) { cairo_test_log (ctx, "Failed to generate surface: %s.%s\n", diff --git a/test/fallback.c b/test/fallback.c new file mode 100644 index 0000000..a3cfc40 --- /dev/null +++ b/test/fallback.c @@ -0,0 +1,79 @@ +/* + * Copyright © 2012 Adrian Johnson + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Adrian Johnson + */ + +#include "cairo-test.h" + +#define SIZE 40 +#define WIDTH (7*SIZE) +#define HEIGHT (5*SIZE) + +#define FALLBACK_RES_X 300 +#define FALLBACK_RES_Y 150 + +static void +rectangles (cairo_t *cr) +{ + cairo_save (cr); + + cairo_rotate (cr, M_PI/8); + cairo_translate (cr, 2*SIZE, SIZE/16); + cairo_scale (cr, 1.5, 1.5); + + cairo_rectangle (cr, 0, 0, SIZE, SIZE); + cairo_set_source_rgba (cr, 1, 0, 0, 0.5); + cairo_fill (cr); + + /* Select an operator not supported by PDF/PS/SVG to trigger fallback */ + cairo_set_operator (cr, CAIRO_OPERATOR_SATURATE); + + cairo_rectangle (cr, SIZE/2, SIZE/2, SIZE, SIZE); + cairo_set_source_rgba (cr, 0, 1, 0, 0.5); + cairo_fill (cr); + + cairo_restore (cr); +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_set_fallback_resolution (cairo_get_target (cr), FALLBACK_RES_X, FALLBACK_RES_Y); + + rectangles (cr); + cairo_translate (cr, 3*SIZE, 0); + cairo_push_group (cr); + rectangles (cr); + cairo_pop_group_to_source (cr); + cairo_paint (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (fallback, + "Check that fallback images are correct when fallback resolution is not 72ppi", + "fallback", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw) diff --git a/test/fill-disjoint.c b/test/fill-disjoint.c new file mode 100644 index 0000000..ea2c14f --- /dev/null +++ b/test/fill-disjoint.c @@ -0,0 +1,63 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +/* The goal is exercise a bug that existed in the xlib backend, where + * it assumed the rectangles generated by rectangular tessallator had + * any sorting guarantees. + */ + +#define WIDTH 300 +#define HEIGHT 300 + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + int x; + + /* black background */ + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_paint (cr); + + /* white rectangles */ + cairo_set_source_rgb (cr, 1, 1, 1); + + /* fill with a set of rectangles that the rectangular tessellator + * will not emit sorted. */ + for (x = 0; x < WIDTH - 10; x += 15) + cairo_rectangle (cr, x, x, 10, HEIGHT - 2*x); + cairo_fill (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (fill_disjoint, + "Tests filling unsorted rectangles.", + "fill", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw) diff --git a/test/get-xrender-format.c b/test/get-xrender-format.c index 8e99eb7..3228d57 100644 --- a/test/get-xrender-format.c +++ b/test/get-xrender-format.c @@ -101,16 +101,6 @@ preamble (cairo_test_context_t *ctx) goto CLEANUP_PIXMAP; } - cairo_test_log (ctx, "Testing without the X Render extension.\n"); - - cairo_boilerplate_xlib_surface_disable_render (surface); - - format = cairo_xlib_surface_get_xrender_format (surface); - if (format != NULL) { - cairo_test_log (ctx, "Error: did not receive a NULL format as expected\n"); - goto CLEANUP_PIXMAP; - } - result = CAIRO_TEST_SUCCESS; CLEANUP_PIXMAP: diff --git a/test/glyph-cache-pressure.c b/test/glyph-cache-pressure.c index 770b39f..eb4f7c5 100644 --- a/test/glyph-cache-pressure.c +++ b/test/glyph-cache-pressure.c @@ -38,7 +38,7 @@ * https://bugs.freedesktop.org/show_bug.cgi?id=6955 * * We replicate this bug by using the cairo_scaled_font_set_max_glyphs_per_font - * function to artifically induce cache pressure. (This function was added + * function to artificially induce cache pressure. (This function was added * for this very purpose.) * * 2006-06-22 Carl Worth diff --git a/test/inverted-clip.c b/test/inverted-clip.c new file mode 100644 index 0000000..b05dd6b --- /dev/null +++ b/test/inverted-clip.c @@ -0,0 +1,56 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +/* An assertion failure found by Rico Tzschichholz */ + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD); + cairo_set_source_rgb (cr, 0, 1, 0); + + cairo_arc (cr, 50, 50, 40, 0, 2 * M_PI); + cairo_clip_preserve (cr); + + cairo_paint (cr); + + cairo_rectangle (cr, 0, 0, 100, 100); + cairo_reset_clip (cr); + cairo_clip (cr); + + cairo_paint (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (inverted_clip, + "Clip + InvertedClip should be opaque", + "clip, paint", /* keywords */ + "target=raster", /* requirements */ + 100, 100, + NULL, draw) diff --git a/test/line-width.c b/test/line-width.c index 283e41f..315ebc3 100644 --- a/test/line-width.c +++ b/test/line-width.c @@ -72,6 +72,6 @@ CAIRO_TEST (line_width, CAIRO_TEST (a1_line_width, "Tests cairo_set_line_width", "stroke", /* keywords */ - NULL, /* requirements */ + "target=raster", /* requirements */ IMAGE_WIDTH, IMAGE_HEIGHT, NULL, draw_a1) diff --git a/test/mask-glyphs.c b/test/mask-glyphs.c index 9ac0272..2e7b703 100644 --- a/test/mask-glyphs.c +++ b/test/mask-glyphs.c @@ -43,13 +43,11 @@ _image_to_glyphs (cairo_surface_t *image, { int width, height, stride; const unsigned char *data; - cairo_format_t format; int x, y, z, n; width = cairo_image_surface_get_width (image); height = cairo_image_surface_get_height (image); stride = cairo_image_surface_get_stride (image); - format = cairo_image_surface_get_format (image); data = cairo_image_surface_get_data (image); n = 0; diff --git a/test/negative-stride-image.c b/test/negative-stride-image.c new file mode 100644 index 0000000..a407b8c --- /dev/null +++ b/test/negative-stride-image.c @@ -0,0 +1,71 @@ +/* + * Copyright 2012 Andrea Canciani + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Andrea Canciani + */ + +#include "cairo-test.h" + +static const char *png_filename = "romedalen.png"; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + const cairo_test_context_t *ctx = cairo_test_get_context (cr); + cairo_format_t format = CAIRO_FORMAT_ARGB32; + cairo_t *cr_inv; + cairo_surface_t *png, *inv; + uint8_t *data; + int stride; + + png = cairo_test_create_surface_from_png (ctx, png_filename); + + stride = cairo_format_stride_for_width (format, width); + data = calloc (stride, height); + inv = cairo_image_surface_create_for_data (data + stride * (height - 1), + format, width, height, -stride); + + cr_inv = cairo_create (inv); + cairo_set_source_surface (cr_inv, png, 0, 0); + cairo_paint (cr_inv); + cairo_destroy (cr_inv); + + cairo_set_source_surface (cr, inv, 0, 0); + cairo_paint (cr); + + cairo_surface_destroy (png); + + cairo_surface_finish (inv); + cairo_surface_destroy (inv); + + free (data); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (negative_stride_image, + "Test that images with a negative stride are handled correctly.", + "stride, image", /* keywords */ + NULL, /* requirements */ + 256, 192, + NULL, draw) diff --git a/test/pass-through.c b/test/pass-through.c index 96f91ba..17a38db 100644 --- a/test/pass-through.c +++ b/test/pass-through.c @@ -25,15 +25,6 @@ #include "cairo-test.h" -static cairo_test_draw_function_t draw; - -static const cairo_test_t test = { - "pass-through", - "Tests pixel values", - 16, 256, - draw -}; - static cairo_test_status_t draw (cairo_t *cr, int width, int height) { @@ -92,8 +83,9 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } -int -main (void) -{ - return cairo_test (&test); -} +CAIRO_TEST (pass_through, + "tests pixel values", + "color", /* keywords */ + NULL, /* requirements */ + 16, 256, + NULL, draw) diff --git a/test/pdf-isolated-group.c b/test/pdf-isolated-group.c new file mode 100644 index 0000000..e74a346 --- /dev/null +++ b/test/pdf-isolated-group.c @@ -0,0 +1,73 @@ +/* + * Copyright © 2012 Adrian Johnson + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Adrian Johnson + */ + +#include "cairo-test.h" + +#define SIZE 60 +#define WIDTH SIZE +#define HEIGHT SIZE + + +/* PDF transparency groups can be isolated or non-isolated. This test + * checks that the PDF output is using isolated groups. If the group + * is non-isolated the bottom half of the inner rectangle will be + * red. Note poppler-cairo currently ignores the isolated flag and + * treats the group as isolated. + * + * Refer to http://www.pdfvt.com/PDFVT_TransparencyGuide.html for an + * explanation isolated vs non-isolated. + */ + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 1, 0.5, 0); + cairo_rectangle (cr, 0, SIZE/2, SIZE, SIZE/2); + cairo_fill (cr); + + cairo_set_operator (cr, CAIRO_OPERATOR_MULTIPLY); + + cairo_push_group (cr); + + cairo_set_source_rgb (cr, 0.7, 0.7, 0.7); + cairo_rectangle (cr, SIZE/4, SIZE/4, SIZE/2, SIZE/2); + cairo_fill (cr); + + cairo_pop_group_to_source (cr); + cairo_paint (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (pdf_isolated_group, + "Check that transparency groups in PDF output are isolated", + "group, operator", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw) diff --git a/test/pdiff/.gitignore b/test/pdiff/.gitignore new file mode 100644 index 0000000..f44ed65 --- /dev/null +++ b/test/pdiff/.gitignore @@ -0,0 +1,3 @@ +TAGS +tags +perceptualdiff diff --git a/test/ps-eps.c b/test/ps-eps.c index 33802f3..1961463 100644 --- a/test/ps-eps.c +++ b/test/ps-eps.c @@ -288,7 +288,6 @@ preamble (cairo_test_context_t *ctx) WIDTH, HEIGHT, WIDTH, HEIGHT, CAIRO_BOILERPLATE_MODE_TEST, - 0, &closure); if (surface == NULL) { diff --git a/test/raster-source.c b/test/raster-source.c new file mode 100644 index 0000000..5a7646e --- /dev/null +++ b/test/raster-source.c @@ -0,0 +1,134 @@ +/* + * Copyright © 2011 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +#include +#include + +/* Basic test to exercise the new mime-surface callback. */ + +#define WIDTH 200 +#define HEIGHT 80 + +/* Lazy way of determining PNG dimensions... */ +static void +png_dimensions (const char *filename, + cairo_content_t *content, int *width, int *height) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_from_png (filename); + *content = cairo_surface_get_content (surface); + *width = cairo_image_surface_get_width (surface); + *height = cairo_image_surface_get_height (surface); + cairo_surface_destroy (surface); +} + +static cairo_surface_t * +png_acquire (cairo_pattern_t *pattern, void *closure, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents) +{ + return cairo_image_surface_create_from_png (closure); +} + +static cairo_surface_t * +red_acquire (cairo_pattern_t *pattern, void *closure, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents) +{ + cairo_surface_t *image; + cairo_t *cr; + + image = cairo_surface_create_similar_image (target, + CAIRO_FORMAT_RGB24, + extents->width, + extents->height); + cairo_surface_set_device_offset (image, extents->x, extents->y); + + cr = cairo_create (image); + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_paint (cr); + cairo_destroy (cr); + + return image; +} + +static void +release (cairo_pattern_t *pattern, void *closure, cairo_surface_t *image) +{ + cairo_surface_destroy (image); +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + const char *png_filename = "png.png"; + cairo_pattern_t *png, *red; + cairo_content_t content; + int png_width, png_height; + int i, j; + + png_dimensions (png_filename, &content, &png_width, &png_height); + + png = cairo_pattern_create_raster_source ((void*)png_filename, + content, png_width, png_height); + cairo_raster_source_pattern_set_acquire (png, png_acquire, release); + + red = cairo_pattern_create_raster_source (NULL, + CAIRO_CONTENT_COLOR, WIDTH, HEIGHT); + cairo_raster_source_pattern_set_acquire (red, red_acquire, release); + + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_paint (cr); + + cairo_translate (cr, 0, (HEIGHT-png_height)/2); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + cairo_pattern_t *source; + if ((i ^ j) & 1) + source = red; + else + source = png; + cairo_set_source (cr, source); + cairo_rectangle (cr, i * WIDTH/4, j * png_height/4, WIDTH/4, png_height/4); + cairo_fill (cr); + } + } + + cairo_pattern_destroy (red); + cairo_pattern_destroy (png); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (raster_source, + "Check that the mime-surface embedding works", + "api", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw) diff --git a/test/record.c b/test/record.c index 2f30653..b1baada 100644 --- a/test/record.c +++ b/test/record.c @@ -36,6 +36,8 @@ #define TT_PAD 5 #define TT_FONT_SIZE 32.0 +#define GENERATE_REF 0 + static uint32_t data[16] = { 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, @@ -311,7 +313,7 @@ text_transform (cairo_t *cr) draw_text_transform (cr); - cairo_translate (cr, SIZE, SIZE); + cairo_translate (cr, TT_SIZE, TT_SIZE); cairo_rotate (cr, M_PI); pattern = cairo_test_create_pattern_from_png (ctx, png_filename); @@ -356,6 +358,9 @@ record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height) cairo_surface_t *surface; int x, y; +#if GENERATE_REF + func(cr); +#else surface = record_get (func (record_create (cr))); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); @@ -371,6 +376,7 @@ record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height) cairo_reset_clip (cr); } } +#endif return CAIRO_TEST_SUCCESS; } diff --git a/test/record1414x.c b/test/record1414x.c new file mode 100644 index 0000000..b8adb86 --- /dev/null +++ b/test/record1414x.c @@ -0,0 +1,498 @@ +/* + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2011 Intel Corporation + * + * Permission to use, copy, modify, distribute, and sell this software + * and its documentation for any purpose is hereby granted without + * fee, provided that the above copyright notice appear in all copies + * and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of + * Red Hat, Inc. not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Red Hat, Inc. makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Authors: + * Carl D. Worth + * Chris Wilson + */ + +#include "cairo-test.h" + +#ifndef M_SQRT2 +#define M_SQRT2 1.41421345623730951 +#endif + +#define TEXT_SIZE 12 +#define SIZE 60 /* needs to be big to check large area effects (dithering) */ +#define PAD 2 + +#define TT_SIZE 100 +#define TT_PAD 5 +#define TT_FONT_SIZE 32.0 + +#define GENERATE_REF 0 + +static uint32_t data[16] = { + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff, + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff +}; + +static const char *png_filename = "romedalen.png"; + +static cairo_t * +paint (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_paint (cr); + + cairo_translate (cr, 2, 2); + cairo_scale (cr, 0.5, 0.5); + + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_paint (cr); + + return cr; +} + +static cairo_t * +paint_alpha (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_solid_clip (cairo_t *cr) +{ + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 2.5, 2.5, 27, 27); + cairo_clip (cr); + + cairo_set_source_rgb (cr, 1., 0.,0.); + cairo_paint_with_alpha (cr, 0.5); + + return cr; +} + +static cairo_t * +paint_alpha_clip (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 10.5, 10.5, 11, 11); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_clip_mask (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_move_to (cr, 16, 5); + cairo_line_to (cr, 5, 16); + cairo_line_to (cr, 16, 27); + cairo_line_to (cr, 27, 16); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +select_font_face (cairo_t *cr) +{ + /* We draw in the default black, so paint white first. */ + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + + cairo_set_font_size (cr, TEXT_SIZE); + cairo_move_to (cr, 0, TEXT_SIZE); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Serif", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, "i-am-serif"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-sans"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans Mono", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-mono"); + + return cr; +} + +static cairo_t * +fill_alpha (cairo_t *cr) +{ + const double alpha = 1./3; + int n; + + /* flatten to white */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + /* square */ + cairo_rectangle (cr, PAD, PAD, SIZE, SIZE); + cairo_set_source_rgba (cr, 1, 0, 0, alpha); + cairo_fill (cr); + + /* circle */ + cairo_translate (cr, SIZE + 2 * PAD, 0); + cairo_arc (cr, PAD + SIZE / 2., PAD + SIZE / 2., SIZE / 2., 0, 2 * M_PI); + cairo_set_source_rgba (cr, 0, 1, 0, alpha); + cairo_fill (cr); + + /* triangle */ + cairo_translate (cr, 0, SIZE + 2 * PAD); + cairo_move_to (cr, PAD + SIZE / 2, PAD); + cairo_line_to (cr, PAD + SIZE, PAD + SIZE); + cairo_line_to (cr, PAD, PAD + SIZE); + cairo_set_source_rgba (cr, 0, 0, 1, alpha); + cairo_fill (cr); + + /* star */ + cairo_translate (cr, -(SIZE + 2 * PAD) + SIZE/2., SIZE/2.); + for (n = 0; n < 5; n++) { + cairo_line_to (cr, + SIZE/2 * cos (2*n * 2*M_PI / 10), + SIZE/2 * sin (2*n * 2*M_PI / 10)); + + cairo_line_to (cr, + SIZE/4 * cos ((2*n+1)*2*M_PI / 10), + SIZE/4 * sin ((2*n+1)*2*M_PI / 10)); + } + cairo_set_source_rgba (cr, 0, 0, 0, alpha); + cairo_fill (cr); + + return cr; +} + +static cairo_t * +self_intersecting (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_translate (cr, 1.0, 1.0); + + cairo_set_source_rgb (cr, 1, 0, 0); /* red */ + + /* First draw the desired shape with a fill */ + cairo_rectangle (cr, 0.5, 0.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 3.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 1.5, -2.0, 2.0); + cairo_rectangle (cr, 6.5, 4.5, -2.0, 2.0); + + cairo_fill (cr); + + /* Then try the same thing with a stroke */ + cairo_translate (cr, 0, 10); + cairo_move_to (cr, 1.0, 1.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, 6.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, -3.0); + cairo_rel_line_to (cr, -6.0, 0.0); + cairo_close_path (cr); + + cairo_set_line_width (cr, 1.0); + cairo_stroke (cr); + + return cr; +} + +static void +draw_text_transform (cairo_t *cr) +{ + cairo_matrix_t tm; + + /* skew */ + cairo_matrix_init (&tm, 1, 0, + -0.25, 1, + 0, 0); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, 50, TT_SIZE-TT_PAD); + cairo_show_text (cr, "A"); + + /* rotate and scale */ + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE * 2.0); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 25); + cairo_show_text (cr, "A"); + + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE * 2.0, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 50); + cairo_show_text (cr, "A"); +} + +static cairo_t * +text_transform (cairo_t *cr) +{ + const cairo_test_context_t *ctx = cairo_test_get_context (cr); + cairo_pattern_t *pattern; + + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0., 0., 0.); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + draw_text_transform (cr); + + cairo_translate (cr, TT_SIZE, TT_SIZE); + cairo_rotate (cr, M_PI); + + pattern = cairo_test_create_pattern_from_png (ctx, png_filename); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + cairo_set_source (cr, pattern); + cairo_pattern_destroy (pattern); + + draw_text_transform (cr); + + return cr; +} + +/* And here begins the recording and replaying... */ + +static cairo_t * +record_create (cairo_t *target) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_recording_surface_create (cairo_surface_get_content (cairo_get_target (target)), NULL); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_surface_t * +record_get (cairo_t *target) +{ + cairo_surface_t *surface; + + surface = cairo_surface_reference (cairo_get_target (target)); + cairo_destroy (target); + + return surface; +} + +static cairo_test_status_t +record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height) +{ + cairo_surface_t *surface; + int x, y; + +#if GENERATE_REF + cairo_scale (cr, M_SQRT2, M_SQRT2); + func (cr); +#else + surface = record_get (func (record_create (cr))); + + cairo_scale (cr, M_SQRT2, M_SQRT2); + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_surface_destroy (surface); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_NONE); + + cairo_identity_matrix (cr); /* make sure the clip is pixel-aligned */ + for (y = 0; y < height; y += 2) { + for (x = 0; x < width; x += 2) { + cairo_rectangle (cr, x, y, 2, 2); + cairo_clip (cr); + cairo_paint (cr); + cairo_reset_clip (cr); + } + } +#endif + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +record_paint (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint, width, height); +} + +static cairo_test_status_t +record_paint_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha, width, height); +} + +static cairo_test_status_t +record_paint_alpha_solid_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_solid_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip_mask (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip_mask, width, height); +} + +static cairo_test_status_t +record_fill_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, fill_alpha, width, height); +} + +static cairo_test_status_t +record_self_intersecting (cairo_t *cr, int width, int height) +{ + return record_replay (cr, self_intersecting, width, height); +} + +static cairo_test_status_t +record_select_font_face (cairo_t *cr, int width, int height) +{ + return record_replay (cr, select_font_face, width, height); +} + +static cairo_test_status_t +record_text_transform (cairo_t *cr, int width, int height) +{ + return record_replay (cr, text_transform, width, height); +} + +CAIRO_TEST (record1414x_paint, + "Test replayed calls to cairo_paint", + "paint,record", /* keywords */ + NULL, /* requirements */ + M_SQRT2*8, M_SQRT2*8, + NULL, record_paint) +CAIRO_TEST (record1414x_paint_alpha, + "Simple test of cairo_paint_with_alpha", + "record, paint, alpha", /* keywords */ + NULL, /* requirements */ + M_SQRT2*32, M_SQRT2*32, + NULL, record_paint_alpha) +CAIRO_TEST (record1414x_paint_alpha_solid_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + M_SQRT2*32, M_SQRT2*32, + NULL, record_paint_alpha_solid_clip) +CAIRO_TEST (record1414x_paint_alpha_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + M_SQRT2*32, M_SQRT2*32, + NULL, record_paint_alpha_clip) +CAIRO_TEST (record1414x_paint_alpha_clip_mask, + "Simple test of cairo_paint_with_alpha+triangular clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + M_SQRT2*32, M_SQRT2*32, + NULL, record_paint_alpha_clip_mask) +CAIRO_TEST (record1414x_fill_alpha, + "Tests using set_rgba();fill()", + "record,fill, alpha", /* keywords */ + NULL, /* requirements */ + M_SQRT2*(2*SIZE + 4*PAD), M_SQRT2*(2*SIZE + 4*PAD), + NULL, record_fill_alpha) +CAIRO_TEST (record1414x_select_font_face, + "Tests using cairo_select_font_face to draw text in different faces", + "record, font", /* keywords */ + NULL, /* requirements */ + M_SQRT2*192, M_SQRT2*(TEXT_SIZE + 4), + NULL, record_select_font_face) +CAIRO_TEST (record1414x_self_intersecting, + "Test strokes of self-intersecting paths", + "record, stroke, trap", /* keywords */ + NULL, /* requirements */ + M_SQRT2*10, M_SQRT2*20, + NULL, record_self_intersecting) +CAIRO_TEST (record1414x_text_transform, + "Test various applications of the font matrix", + "record, text, transform", /* keywords */ + NULL, /* requirements */ + M_SQRT2*TT_SIZE, M_SQRT2*TT_SIZE, + NULL, record_text_transform) diff --git a/test/record2x.c b/test/record2x.c new file mode 100644 index 0000000..7fe0377 --- /dev/null +++ b/test/record2x.c @@ -0,0 +1,493 @@ +/* + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2011 Intel Corporation + * + * Permission to use, copy, modify, distribute, and sell this software + * and its documentation for any purpose is hereby granted without + * fee, provided that the above copyright notice appear in all copies + * and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of + * Red Hat, Inc. not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Red Hat, Inc. makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Authors: + * Carl D. Worth + * Chris Wilson + */ + +#include "cairo-test.h" + +#define TEXT_SIZE 12 +#define SIZE 60 /* needs to be big to check large area effects (dithering) */ +#define PAD 2 + +#define TT_SIZE 100 +#define TT_PAD 5 +#define TT_FONT_SIZE 32.0 + +#define GENERATE_REF 0 + +static uint32_t data[16] = { + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff, + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff +}; + +static const char *png_filename = "romedalen.png"; + +static cairo_t * +paint (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_paint (cr); + + cairo_translate (cr, 2, 2); + cairo_scale (cr, 0.5, 0.5); + + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_paint (cr); + + return cr; +} + +static cairo_t * +paint_alpha (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_solid_clip (cairo_t *cr) +{ + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 2.5, 2.5, 27, 27); + cairo_clip (cr); + + cairo_set_source_rgb (cr, 1., 0.,0.); + cairo_paint_with_alpha (cr, 0.5); + + return cr; +} + +static cairo_t * +paint_alpha_clip (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 10.5, 10.5, 11, 11); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_clip_mask (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_move_to (cr, 16, 5); + cairo_line_to (cr, 5, 16); + cairo_line_to (cr, 16, 27); + cairo_line_to (cr, 27, 16); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +select_font_face (cairo_t *cr) +{ + /* We draw in the default black, so paint white first. */ + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + + cairo_set_font_size (cr, TEXT_SIZE); + cairo_move_to (cr, 0, TEXT_SIZE); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Serif", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, "i-am-serif"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-sans"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans Mono", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-mono"); + + return cr; +} + +static cairo_t * +fill_alpha (cairo_t *cr) +{ + const double alpha = 1./3; + int n; + + /* flatten to white */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + /* square */ + cairo_rectangle (cr, PAD, PAD, SIZE, SIZE); + cairo_set_source_rgba (cr, 1, 0, 0, alpha); + cairo_fill (cr); + + /* circle */ + cairo_translate (cr, SIZE + 2 * PAD, 0); + cairo_arc (cr, PAD + SIZE / 2., PAD + SIZE / 2., SIZE / 2., 0, 2 * M_PI); + cairo_set_source_rgba (cr, 0, 1, 0, alpha); + cairo_fill (cr); + + /* triangle */ + cairo_translate (cr, 0, SIZE + 2 * PAD); + cairo_move_to (cr, PAD + SIZE / 2, PAD); + cairo_line_to (cr, PAD + SIZE, PAD + SIZE); + cairo_line_to (cr, PAD, PAD + SIZE); + cairo_set_source_rgba (cr, 0, 0, 1, alpha); + cairo_fill (cr); + + /* star */ + cairo_translate (cr, -(SIZE + 2 * PAD) + SIZE/2., SIZE/2.); + for (n = 0; n < 5; n++) { + cairo_line_to (cr, + SIZE/2 * cos (2*n * 2*M_PI / 10), + SIZE/2 * sin (2*n * 2*M_PI / 10)); + + cairo_line_to (cr, + SIZE/4 * cos ((2*n+1)*2*M_PI / 10), + SIZE/4 * sin ((2*n+1)*2*M_PI / 10)); + } + cairo_set_source_rgba (cr, 0, 0, 0, alpha); + cairo_fill (cr); + + return cr; +} + +static cairo_t * +self_intersecting (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_translate (cr, 1.0, 1.0); + + cairo_set_source_rgb (cr, 1, 0, 0); /* red */ + + /* First draw the desired shape with a fill */ + cairo_rectangle (cr, 0.5, 0.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 3.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 1.5, -2.0, 2.0); + cairo_rectangle (cr, 6.5, 4.5, -2.0, 2.0); + + cairo_fill (cr); + + /* Then try the same thing with a stroke */ + cairo_translate (cr, 0, 10); + cairo_move_to (cr, 1.0, 1.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, 6.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, -3.0); + cairo_rel_line_to (cr, -6.0, 0.0); + cairo_close_path (cr); + + cairo_set_line_width (cr, 1.0); + cairo_stroke (cr); + + return cr; +} + +static void +draw_text_transform (cairo_t *cr) +{ + cairo_matrix_t tm; + + /* skew */ + cairo_matrix_init (&tm, 1, 0, + -0.25, 1, + 0, 0); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, 50, TT_SIZE-TT_PAD); + cairo_show_text (cr, "A"); + + /* rotate and scale */ + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE * 2.0); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 25); + cairo_show_text (cr, "A"); + + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE * 2.0, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 50); + cairo_show_text (cr, "A"); +} + +static cairo_t * +text_transform (cairo_t *cr) +{ + const cairo_test_context_t *ctx = cairo_test_get_context (cr); + cairo_pattern_t *pattern; + + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0., 0., 0.); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + draw_text_transform (cr); + + cairo_translate (cr, TT_SIZE, TT_SIZE); + cairo_rotate (cr, M_PI); + + pattern = cairo_test_create_pattern_from_png (ctx, png_filename); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + cairo_set_source (cr, pattern); + cairo_pattern_destroy (pattern); + + draw_text_transform (cr); + + return cr; +} + +/* And here begins the recording and replaying... */ + +static cairo_t * +record_create (cairo_t *target) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_recording_surface_create (cairo_surface_get_content (cairo_get_target (target)), NULL); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_surface_t * +record_get (cairo_t *target) +{ + cairo_surface_t *surface; + + surface = cairo_surface_reference (cairo_get_target (target)); + cairo_destroy (target); + + return surface; +} + +static cairo_test_status_t +record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height) +{ + cairo_surface_t *surface; + int x, y; + +#if GENERATE_REF + cairo_scale (cr, 2, 2); + func(cr); +#else + surface = record_get (func (record_create (cr))); + + cairo_scale (cr, 2, 2); + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_surface_destroy (surface); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_NONE); + + for (y = 0; y < height; y += 2) { + for (x = 0; x < width; x += 2) { + cairo_rectangle (cr, x, y, 2, 2); + cairo_clip (cr); + cairo_paint (cr); + cairo_reset_clip (cr); + } + } +#endif + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +record_paint (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint, width, height); +} + +static cairo_test_status_t +record_paint_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha, width, height); +} + +static cairo_test_status_t +record_paint_alpha_solid_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_solid_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip_mask (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip_mask, width, height); +} + +static cairo_test_status_t +record_fill_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, fill_alpha, width, height); +} + +static cairo_test_status_t +record_self_intersecting (cairo_t *cr, int width, int height) +{ + return record_replay (cr, self_intersecting, width, height); +} + +static cairo_test_status_t +record_select_font_face (cairo_t *cr, int width, int height) +{ + return record_replay (cr, select_font_face, width, height); +} + +static cairo_test_status_t +record_text_transform (cairo_t *cr, int width, int height) +{ + return record_replay (cr, text_transform, width, height); +} + +CAIRO_TEST (record2x_paint, + "Test replayed calls to cairo_paint", + "paint,record", /* keywords */ + NULL, /* requirements */ + 2*8, 2*8, + NULL, record_paint) +CAIRO_TEST (record2x_paint_alpha, + "Simple test of cairo_paint_with_alpha", + "record, paint, alpha", /* keywords */ + NULL, /* requirements */ + 2*32, 2*32, + NULL, record_paint_alpha) +CAIRO_TEST (record2x_paint_alpha_solid_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 2*32, 2*32, + NULL, record_paint_alpha_solid_clip) +CAIRO_TEST (record2x_paint_alpha_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 2*32, 2*32, + NULL, record_paint_alpha_clip) +CAIRO_TEST (record2x_paint_alpha_clip_mask, + "Simple test of cairo_paint_with_alpha+triangular clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 2*32, 2*32, + NULL, record_paint_alpha_clip_mask) +CAIRO_TEST (record2x_fill_alpha, + "Tests using set_rgba();fill()", + "record,fill, alpha", /* keywords */ + NULL, /* requirements */ + 2*(2*SIZE + 4*PAD), 2*(2*SIZE + 4*PAD), + NULL, record_fill_alpha) +CAIRO_TEST (record2x_select_font_face, + "Tests using cairo_select_font_face to draw text in different faces", + "record, font", /* keywords */ + NULL, /* requirements */ + 2*192, 2*(TEXT_SIZE + 4), + NULL, record_select_font_face) +CAIRO_TEST (record2x_self_intersecting, + "Test strokes of self-intersecting paths", + "record, stroke, trap", /* keywords */ + NULL, /* requirements */ + 2*10, 2*20, + NULL, record_self_intersecting) +CAIRO_TEST (record2x_text_transform, + "Test various applications of the font matrix", + "record, text, transform", /* keywords */ + NULL, /* requirements */ + 2*TT_SIZE, 2*TT_SIZE, + NULL, record_text_transform) diff --git a/test/record90.c b/test/record90.c new file mode 100644 index 0000000..3c28a9a --- /dev/null +++ b/test/record90.c @@ -0,0 +1,495 @@ +/* + * Copyright © 2005 Red Hat, Inc. + * Copyright © 2011 Intel Corporation + * + * Permission to use, copy, modify, distribute, and sell this software + * and its documentation for any purpose is hereby granted without + * fee, provided that the above copyright notice appear in all copies + * and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of + * Red Hat, Inc. not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Red Hat, Inc. makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Authors: + * Carl D. Worth + * Chris Wilson + */ + +#include "cairo-test.h" + +#define TEXT_SIZE 12 +#define SIZE 60 /* needs to be big to check large area effects (dithering) */ +#define PAD 2 + +#define TT_SIZE 100 +#define TT_PAD 5 +#define TT_FONT_SIZE 32.0 + +#define GENERATE_REF 0 + +static uint32_t data[16] = { + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + 0xffffffff, 0xffffffff, 0xffff0000, 0xffff0000, + + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff, + 0xff00ff00, 0xff00ff00, 0xff0000ff, 0xff0000ff +}; + +static const char *png_filename = "romedalen.png"; + +static cairo_t * +paint (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_paint (cr); + + cairo_translate (cr, 2, 2); + cairo_scale (cr, 0.5, 0.5); + + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_paint (cr); + + return cr; +} + +static cairo_t * +paint_alpha (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_solid_clip (cairo_t *cr) +{ + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 2.5, 2.5, 27, 27); + cairo_clip (cr); + + cairo_set_source_rgb (cr, 1., 0.,0.); + cairo_paint_with_alpha (cr, 0.5); + + return cr; +} + +static cairo_t * +paint_alpha_clip (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_rectangle (cr, 10.5, 10.5, 11, 11); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +paint_alpha_clip_mask (cairo_t *cr) +{ + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_RGB24, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_move_to (cr, 16, 5); + cairo_line_to (cr, 5, 16); + cairo_line_to (cr, 16, 27); + cairo_line_to (cr, 27, 16); + cairo_clip (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint_with_alpha (cr, 0.5); + + cairo_surface_finish (surface); /* data will go out of scope */ + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_t * +select_font_face (cairo_t *cr) +{ + /* We draw in the default black, so paint white first. */ + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + + cairo_set_font_size (cr, TEXT_SIZE); + cairo_move_to (cr, 0, TEXT_SIZE); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Serif", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, "i-am-serif"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-sans"); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans Mono", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_show_text (cr, " i-am-mono"); + + return cr; +} + +static cairo_t * +fill_alpha (cairo_t *cr) +{ + const double alpha = 1./3; + int n; + + /* flatten to white */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + /* square */ + cairo_rectangle (cr, PAD, PAD, SIZE, SIZE); + cairo_set_source_rgba (cr, 1, 0, 0, alpha); + cairo_fill (cr); + + /* circle */ + cairo_translate (cr, SIZE + 2 * PAD, 0); + cairo_arc (cr, PAD + SIZE / 2., PAD + SIZE / 2., SIZE / 2., 0, 2 * M_PI); + cairo_set_source_rgba (cr, 0, 1, 0, alpha); + cairo_fill (cr); + + /* triangle */ + cairo_translate (cr, 0, SIZE + 2 * PAD); + cairo_move_to (cr, PAD + SIZE / 2, PAD); + cairo_line_to (cr, PAD + SIZE, PAD + SIZE); + cairo_line_to (cr, PAD, PAD + SIZE); + cairo_set_source_rgba (cr, 0, 0, 1, alpha); + cairo_fill (cr); + + /* star */ + cairo_translate (cr, -(SIZE + 2 * PAD) + SIZE/2., SIZE/2.); + for (n = 0; n < 5; n++) { + cairo_line_to (cr, + SIZE/2 * cos (2*n * 2*M_PI / 10), + SIZE/2 * sin (2*n * 2*M_PI / 10)); + + cairo_line_to (cr, + SIZE/4 * cos ((2*n+1)*2*M_PI / 10), + SIZE/4 * sin ((2*n+1)*2*M_PI / 10)); + } + cairo_set_source_rgba (cr, 0, 0, 0, alpha); + cairo_fill (cr); + + return cr; +} + +static cairo_t * +self_intersecting (cairo_t *cr) +{ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_translate (cr, 1.0, 1.0); + + cairo_set_source_rgb (cr, 1, 0, 0); /* red */ + + /* First draw the desired shape with a fill */ + cairo_rectangle (cr, 0.5, 0.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 3.5, 4.0, 4.0); + cairo_rectangle (cr, 3.5, 1.5, -2.0, 2.0); + cairo_rectangle (cr, 6.5, 4.5, -2.0, 2.0); + + cairo_fill (cr); + + /* Then try the same thing with a stroke */ + cairo_translate (cr, 0, 10); + cairo_move_to (cr, 1.0, 1.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, 6.0); + cairo_rel_line_to (cr, 3.0, 0.0); + cairo_rel_line_to (cr, 0.0, -3.0); + cairo_rel_line_to (cr, -6.0, 0.0); + cairo_close_path (cr); + + cairo_set_line_width (cr, 1.0); + cairo_stroke (cr); + + return cr; +} + +static void +draw_text_transform (cairo_t *cr) +{ + cairo_matrix_t tm; + + /* skew */ + cairo_matrix_init (&tm, 1, 0, + -0.25, 1, + 0, 0); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, 50, TT_SIZE-TT_PAD); + cairo_show_text (cr, "A"); + + /* rotate and scale */ + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE, TT_FONT_SIZE * 2.0); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 25); + cairo_show_text (cr, "A"); + + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, TT_FONT_SIZE * 2.0, TT_FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, TT_PAD, TT_PAD + 50); + cairo_show_text (cr, "A"); +} + +static cairo_t * +text_transform (cairo_t *cr) +{ + const cairo_test_context_t *ctx = cairo_test_get_context (cr); + cairo_pattern_t *pattern; + + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0., 0., 0.); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY " Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + draw_text_transform (cr); + + cairo_translate (cr, TT_SIZE, TT_SIZE); + cairo_rotate (cr, M_PI); + + pattern = cairo_test_create_pattern_from_png (ctx, png_filename); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + cairo_set_source (cr, pattern); + cairo_pattern_destroy (pattern); + + draw_text_transform (cr); + + return cr; +} + +/* And here begins the recording and replaying... */ + +static cairo_t * +record_create (cairo_t *target) +{ + cairo_surface_t *surface; + cairo_t *cr; + + surface = cairo_recording_surface_create (cairo_surface_get_content (cairo_get_target (target)), NULL); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + return cr; +} + +static cairo_surface_t * +record_get (cairo_t *target) +{ + cairo_surface_t *surface; + + surface = cairo_surface_reference (cairo_get_target (target)); + cairo_destroy (target); + + return surface; +} + +static cairo_test_status_t +record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height) +{ + cairo_surface_t *surface; + int x, y; + +#if GENERATE_REF + cairo_translate(cr, width, 0); + cairo_rotate (cr, M_PI/2); + func(cr); +#else + surface = record_get (func (record_create (cr))); + + cairo_translate(cr, width, 0); + cairo_rotate (cr, M_PI/2); + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_surface_destroy (surface); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_NONE); + + for (y = 0; y < width; y += 2) { + for (x = 0; x < height; x += 2) { + cairo_rectangle (cr, x, y, 2, 2); + cairo_clip (cr); + cairo_paint (cr); + cairo_reset_clip (cr); + } + } +#endif + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +record_paint (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint, width, height); +} + +static cairo_test_status_t +record_paint_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha, width, height); +} + +static cairo_test_status_t +record_paint_alpha_solid_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_solid_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip, width, height); +} + +static cairo_test_status_t +record_paint_alpha_clip_mask (cairo_t *cr, int width, int height) +{ + return record_replay (cr, paint_alpha_clip_mask, width, height); +} + +static cairo_test_status_t +record_fill_alpha (cairo_t *cr, int width, int height) +{ + return record_replay (cr, fill_alpha, width, height); +} + +static cairo_test_status_t +record_self_intersecting (cairo_t *cr, int width, int height) +{ + return record_replay (cr, self_intersecting, width, height); +} + +static cairo_test_status_t +record_select_font_face (cairo_t *cr, int width, int height) +{ + return record_replay (cr, select_font_face, width, height); +} + +static cairo_test_status_t +record_text_transform (cairo_t *cr, int width, int height) +{ + return record_replay (cr, text_transform, width, height); +} + +CAIRO_TEST (record90_paint, + "Test replayed calls to cairo_paint", + "paint,record", /* keywords */ + NULL, /* requirements */ + 8, 8, + NULL, record_paint) +CAIRO_TEST (record90_paint_alpha, + "Simple test of cairo_paint_with_alpha", + "record, paint, alpha", /* keywords */ + NULL, /* requirements */ + 2, 32, + NULL, record_paint_alpha) +CAIRO_TEST (record90_paint_alpha_solid_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 32, 32, + NULL, record_paint_alpha_solid_clip) +CAIRO_TEST (record90_paint_alpha_clip, + "Simple test of cairo_paint_with_alpha+unaligned clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 32, 32, + NULL, record_paint_alpha_clip) +CAIRO_TEST (record90_paint_alpha_clip_mask, + "Simple test of cairo_paint_with_alpha+triangular clip", + "record, paint, alpha, clip", /* keywords */ + NULL, /* requirements */ + 32, 32, + NULL, record_paint_alpha_clip_mask) +CAIRO_TEST (record90_fill_alpha, + "Tests using set_rgba();fill()", + "record,fill, alpha", /* keywords */ + NULL, /* requirements */ + 2*SIZE + 4*PAD, 2*SIZE + 4*PAD, + NULL, record_fill_alpha) +CAIRO_TEST (record90_select_font_face, + "Tests using cairo_select_font_face to draw text in different faces", + "record, font", /* keywords */ + NULL, /* requirements */ + TEXT_SIZE + 4, 192, + NULL, record_select_font_face) +CAIRO_TEST (record90_self_intersecting, + "Test strokes of self-intersecting paths", + "record, stroke, trap", /* keywords */ + NULL, /* requirements */ + 10, 20, + NULL, record_self_intersecting) +CAIRO_TEST (record90_text_transform, + "Test various applications of the font matrix", + "record, text, transform", /* keywords */ + NULL, /* requirements */ + TT_SIZE, TT_SIZE, + NULL, record_text_transform) diff --git a/test/rectilinear-dash-scale.c b/test/rectilinear-dash-scale.c new file mode 100644 index 0000000..1b69516 --- /dev/null +++ b/test/rectilinear-dash-scale.c @@ -0,0 +1,196 @@ +/* + * Copyright © 2006 Red Hat, Inc. + * Copyright © 2008 Chris Wilson + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth + * Chris Wilson + * + * Based on the original test/rectilinear-stroke.c by Carl D. Worth. + */ + +#include "cairo-test.h" + +#define SIZE 50 + +static void +draw_dashes (cairo_t *cr) +{ + const double dash_square[4] = {4, 2, 2, 2}; + const double dash_butt[4] = {5, 1, 3, 1}; + + cairo_save (cr); + + cairo_set_dash (cr, dash_square, 4, 0); + + cairo_set_line_width (cr, 1.0); + cairo_translate (cr, 1, 1); + + /* Draw everything first with square caps. */ + cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE); + + /* Draw horizontal and vertical segments, each in both + * directions. */ + cairo_move_to (cr, 4.5, 0.5); + cairo_rel_line_to (cr, 2.0, 0.0); + + cairo_move_to (cr, 10.5, 4.5); + cairo_rel_line_to (cr, 0.0, 2.0); + + cairo_move_to (cr, 6.5, 10.5); + cairo_rel_line_to (cr, -2.0, 0.0); + + cairo_move_to (cr, 0.5, 6.5); + cairo_rel_line_to (cr, 0.0, -2.0); + + /* Draw right angle turns in four directions. */ + cairo_move_to (cr, 0.5, 2.5); + cairo_rel_line_to (cr, 0.0, -2.0); + cairo_rel_line_to (cr, 2.0, 0.0); + + cairo_move_to (cr, 8.5, 0.5); + cairo_rel_line_to (cr, 2.0, 0.0); + cairo_rel_line_to (cr, 0.0, 2.0); + + cairo_move_to (cr, 10.5, 8.5); + cairo_rel_line_to (cr, 0.0, 2.0); + cairo_rel_line_to (cr, -2.0, 0.0); + + cairo_move_to (cr, 2.5, 10.5); + cairo_rel_line_to (cr, -2.0, 0.0); + cairo_rel_line_to (cr, 0.0, -2.0); + + cairo_stroke (cr); + + /* Draw a closed-path rectangle */ + cairo_rectangle (cr, 0.5, 12.5, 10.0, 10.0); + cairo_set_dash (cr, dash_square, 4, 2); + cairo_stroke (cr); + + cairo_translate (cr, 12, 0); + + /* Now draw the same results, but with butt caps. */ + cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT); + cairo_set_dash (cr, dash_butt, 4, 0.0); + + /* Draw horizontal and vertical segments, each in both + * directions. */ + cairo_move_to (cr, 4.0, 0.5); + cairo_rel_line_to (cr, 3.0, 0.0); + + cairo_move_to (cr, 10.5, 4.0); + cairo_rel_line_to (cr, 0.0, 3.0); + + cairo_move_to (cr, 7.0, 10.5); + cairo_rel_line_to (cr, -3.0, 0.0); + + cairo_move_to (cr, 0.5, 7.0); + cairo_rel_line_to (cr, 0.0, -3.0); + + /* Draw right angle turns in four directions. */ + cairo_move_to (cr, 0.5, 3.0); + cairo_rel_line_to (cr, 0.0, -2.5); + cairo_rel_line_to (cr, 2.5, 0.0); + + cairo_move_to (cr, 8.0, 0.5); + cairo_rel_line_to (cr, 2.5, 0.0); + cairo_rel_line_to (cr, 0.0, 2.5); + + cairo_move_to (cr, 10.5, 8.0); + cairo_rel_line_to (cr, 0.0, 2.5); + cairo_rel_line_to (cr, -2.5, 0.0); + + cairo_move_to (cr, 3.0, 10.5); + cairo_rel_line_to (cr, -2.5, 0.0); + cairo_rel_line_to (cr, 0.0, -2.5); + + cairo_stroke (cr); + + /* Draw a closed-path rectangle */ + cairo_set_dash (cr, dash_butt, 4, 2.5); + cairo_rectangle (cr, 0.5, 12.5, 10.0, 10.0); + cairo_stroke (cr); + + cairo_restore (cr); +} + +static cairo_test_status_t +dashes (cairo_t *cr) +{ + /* Paint background white, then draw in black. */ + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); + draw_dashes (cr); + + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 0.0, 0.0); + cairo_translate (cr, 0, SIZE); + cairo_scale (cr, 1, -1); + draw_dashes (cr); + cairo_restore (cr); + + cairo_save (cr); + cairo_set_source_rgb (cr, 0.0, 1.0, 0.0); + cairo_translate (cr, SIZE, 0); + cairo_scale (cr, -1, 1); + draw_dashes (cr); + cairo_restore (cr); + + cairo_save (cr); + cairo_set_source_rgb (cr, 0.0, 0.0, 1.0); + cairo_translate (cr, SIZE, SIZE); + cairo_scale (cr, -1, -1); + draw_dashes (cr); + cairo_restore (cr); + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +aligned (cairo_t *cr, int width, int height) +{ + cairo_scale (cr, 4, 2); + return dashes(cr); +} + +static cairo_test_status_t +unaligned (cairo_t *cr, int width, int height) +{ + cairo_scale (cr, 3.9, 1.9); + return dashes(cr); +} + +CAIRO_TEST (rectilinear_dash_scale, + "Test dashed rectilinear stroke operations (covering only whole pixels) after scaling", + "stroke dash", /* keywords */ + NULL, /* requirements */ + 4*SIZE, 2*SIZE, + NULL, aligned) + +CAIRO_TEST (rectilinear_dash_scale_unaligned, + "Test dashed rectilinear stroke operations (covering partial pixels) after scaling", + "stroke dash", /* keywords */ + NULL, /* requirements */ + 4*SIZE, 2*SIZE, + NULL, unaligned) diff --git a/test/reference/a1-bug.egl.argb32.ref.png b/test/reference/a1-bug.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6ff931b5e15f8e02200d352bd0002d4fb5ad5d GIT binary patch literal 3736 zcmeAS@N?(olHy`uVBq!ia0y~yV15C_3LH#85&Nq9SwM;{$=lt9;Xep2*t>i(0|TG0 zr;B4q#hkZy5Bf4Yints!?G)fyIhn(8^Xyd|&rqS%xU;CoPb9t`R9S8Zs)78&qol`;+0LS(RLI3~& literal 0 HcmV?d00001 diff --git a/test/reference/a1-bug.mask.argb32.ref.png b/test/reference/a1-bug.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ae8a87ef99f53e0221c3b41619329373c2073b GIT binary patch literal 3735 zcmeAS@N?(olHy`uVBq!ia0y~yV15C_3LH#85&Nq9SwM;{$=lt9;Xep2*t>i(0|TFr zr;B4q#hkZy5Bf4Yints!?G)fyIk{uAgN%V|l22 zIVwv8hv5JN&$_kD){?Nxp=|*fYsH^2_5HWMPS{W8)5H zTf!W0T2wf;lIMalG)*>0bXya_fu!f8Ij0zium#02^s$mYwhVyB$hLB@#~9fjLrJkD z`EoRo04pIp!IvbrT%KW%0jM%L1g>}llp)oKp*^|;w3-q~E@ZC))?KhF#!#$$fjg+; zDu4)EOl8C>4XM}Q#zU(vD(QwA4s#j@)JegT5T_Ban>gJt!=d#oEWFTz1&7^q(G7DN nfhf5TjM`B!8UjN(1RmEh24{M9as{0E4DyDjtDnm{r-UW|Em8(^ literal 0 HcmV?d00001 diff --git a/test/reference/a1-bug.mask.rgb24.ref.png b/test/reference/a1-bug.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ae8a87ef99f53e0221c3b41619329373c2073b GIT binary patch literal 3735 zcmeAS@N?(olHy`uVBq!ia0y~yV15C_3LH#85&Nq9SwM;{$=lt9;Xep2*t>i(0|TFr zr;B4q#hkZy5Bf4Yints!?G)fyIk{uAgN%V|l22 zIVwv8hv5JN&$_kD){?Nxp=|*fYsH^2_5HWMPS{W8)5H zTf!W0T2wf;lIMalG)*>0bXya_fu!f8Ij0zium#02^s$mYwhVyB$hLB@#~9fjLrJkD z`EoRo04pIp!IvbrT%KW%0jM%L1g>}llp)oKp*^|;w3-q~E@ZC))?KhF#!#$$fjg+; zDu4)EOl8C>4XM}Q#zU(vD(QwA4s#j@)JegT5T_Ban>gJt!=d#oEWFTz1&7^q(G7DN nfhf5TjM`B!8UjN(1RmEh24{M9as{0E4DyDjtDnm{r-UW|Em8(^ literal 0 HcmV?d00001 diff --git a/test/reference/a1-bug.ref.png b/test/reference/a1-bug.ref.png index 9c6a36e2b939023cf3ad6ba26d4f57821df00185..dc6ff931b5e15f8e02200d352bd0002d4fb5ad5d 100644 GIT binary patch literal 3736 zcmeAS@N?(olHy`uVBq!ia0y~yV15C_3LH#85&Nq9SwM;{$=lt9;Xep2*t>i(0|TG0 zr;B4q#hkZy5Bf4Yints!?G)fyIhn(8^Xyd|&rqS%xU;CoPb9t`R9S8Zs)78&qol`;+0LS(RLI3~& literal 3220 zcmeAS@N?(olHy`uVBq!ia0y~yV15C_3LH#85&Nq9SwM;{$=lt9;Xep2*t>i(0|Sqz zr;B4q#hka-90dv<#e$i$MsMqx(Ctl?=L&(^M!{$Z3}6Txm|yM7&Tt@X z-AjgdFBvL23fUV{*FD~0e_3#cwAt5rd_bqw8NXv-5J zy)v5dMvI%#LYCaB<$%%mk^!t-N39+W0m?(*NG;=;sq71K!;GpyhIzXBxvX%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill-equal.egl.argb32.ref.png b/test/reference/a1-clip-fill-equal.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill-equal.mask.argb32.ref.png b/test/reference/a1-clip-fill-equal.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill-equal.mask.rgb24.ref.png b/test/reference/a1-clip-fill-equal.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill-equal.rgb24.ref.png b/test/reference/a1-clip-fill-equal.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill-rule.egl.argb32.ref.png b/test/reference/a1-clip-fill-rule.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ba9dd5ffa7e59231e69382244c9d36959ffb95 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^T0ktu!3HF^RrB=%DYhhUcNd2LAh=-f^2tDvg`O^s zAs(G?rv>sgDDXI&Kl;1gX1__>ffq|URKEBha9`*wc=Oh$RHZZ}v+kKQg!``;xrs_n zIllNowa+sn>s>t;t9M7LM=_@9rsdaE*%|n5nz{1I4Q7|yi_d7W=(cuD?7rEx@5+0> zOGc+V#I8PHelL2@_41yLkG1sgDDXI&Kl;1gX1__>ffq|URKEBha9`*wc=Oh$RHZZ}v+kKQg!``;xrs_n zIllNowa+sn>s>t;t9M7LM=_@9rsdaE*%|n5nz{1I4Q7|yi_d7W=(cuD?7rEx@5+0> zOGc+V#I8PHelL2@_41yLkG16OQfx`y?k)`fL2$v|<&%LT{hlt4 zAs(G?r+NxC7;vz7p88)enLq8+G=oKQht7H!UzyOFaWuZUbBEA-hmY)!l7Bw?WBvQt zQ^p@g^Eci8y&>e$rCihH(KjF8;<%T8pEH*wT%%rKA&+$Ct6gztUnwMRl2^5ke;XHj zN9)PUtgXgpSKZ`))cBKkc6rC_XQz{GOHEY^|F`np&ll*g=6QPX*ZO08ylIM(zN;BN Q0G-C*>FVdQ&MBb@03~Bvd;kCd literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill.argb32.ref.png b/test/reference/a1-clip-fill.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill.egl.argb32.ref.png b/test/reference/a1-clip-fill.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill.mask.argb32.ref.png b/test/reference/a1-clip-fill.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill.mask.rgb24.ref.png b/test/reference/a1-clip-fill.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-fill.rgb24.ref.png b/test/reference/a1-clip-fill.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-paint.argb32.ref.png b/test/reference/a1-clip-paint.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-paint.egl.argb32.ref.png b/test/reference/a1-clip-paint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-paint.mask.argb32.ref.png b/test/reference/a1-clip-paint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-paint.mask.rgb24.ref.png b/test/reference/a1-clip-paint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-paint.rgb24.ref.png b/test/reference/a1-clip-paint.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-stroke.argb32.ref.png b/test/reference/a1-clip-stroke.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-stroke.egl.argb32.ref.png b/test/reference/a1-clip-stroke.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-stroke.mask.argb32.ref.png b/test/reference/a1-clip-stroke.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-stroke.mask.rgb24.ref.png b/test/reference/a1-clip-stroke.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-clip-stroke.rgb24.ref.png b/test/reference/a1-clip-stroke.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-fill.argb32.ref.png b/test/reference/a1-fill.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e40202bf9977df9a87c4113088a730018e2f260a GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^DIm+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.egl.argb32.ref.png b/test/reference/a1-image-sample.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.mask.argb32.ref.png b/test/reference/a1-image-sample.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.mask.rgb24.ref.png b/test/reference/a1-image-sample.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.rgb24.ref.png b/test/reference/a1-image-sample.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.xlib-fallback.rgb24.ref.png b/test/reference/a1-image-sample.xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-image-sample.xlib-window.rgb24.ref.png b/test/reference/a1-image-sample.xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-line-width.argb32.ref.png b/test/reference/a1-line-width.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35d9cad6062a5b934906b35ccac151c5babac6de GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT{+=$5 zAr`&KfByfsXa35--IA1&a%6Ewg|?(;fLF^@6$y79g@c=qtVmom@3e#j+ojDQ5s8Kk x$&O~TiwqWBy8FN^&m?>TKil@gX6y4z41dxr6(<~@lmj%H!PC{xWt~$(69DO{GtdA4 literal 0 HcmV?d00001 diff --git a/test/reference/a1-line-width.egl.argb32.ref.png b/test/reference/a1-line-width.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35d9cad6062a5b934906b35ccac151c5babac6de GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT{+=$5 zAr`&KfByfsXa35--IA1&a%6Ewg|?(;fLF^@6$y79g@c=qtVmom@3e#j+ojDQ5s8Kk x$&O~TiwqWBy8FN^&m?>TKil@gX6y4z41dxr6(<~@lmj%H!PC{xWt~$(69DO{GtdA4 literal 0 HcmV?d00001 diff --git a/test/reference/a1-line-width.mask.argb32.ref.png b/test/reference/a1-line-width.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35d9cad6062a5b934906b35ccac151c5babac6de GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT{+=$5 zAr`&KfByfsXa35--IA1&a%6Ewg|?(;fLF^@6$y79g@c=qtVmom@3e#j+ojDQ5s8Kk x$&O~TiwqWBy8FN^&m?>TKil@gX6y4z41dxr6(<~@lmj%H!PC{xWt~$(69DO{GtdA4 literal 0 HcmV?d00001 diff --git a/test/reference/a1-line-width.mask.rgb24.ref.png b/test/reference/a1-line-width.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35d9cad6062a5b934906b35ccac151c5babac6de GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT{+=$5 zAr`&KfByfsXa35--IA1&a%6Ewg|?(;fLF^@6$y79g@c=qtVmom@3e#j+ojDQ5s8Kk x$&O~TiwqWBy8FN^&m?>TKil@gX6y4z41dxr6(<~@lmj%H!PC{xWt~$(69DO{GtdA4 literal 0 HcmV?d00001 diff --git a/test/reference/a1-line-width.rgb24.ref.png b/test/reference/a1-line-width.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35d9cad6062a5b934906b35ccac151c5babac6de GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT{+=$5 zAr`&KfByfsXa35--IA1&a%6Ewg|?(;fLF^@6$y79g@c=qtVmom@3e#j+ojDQ5s8Kk x$&O~TiwqWBy8FN^&m?>TKil@gX6y4z41dxr6(<~@lmj%H!PC{xWt~$(69DO{GtdA4 literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask-sample.argb32.ref.png b/test/reference/a1-mask-sample.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask-sample.egl.argb32.ref.png b/test/reference/a1-mask-sample.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask-sample.mask.argb32.ref.png b/test/reference/a1-mask-sample.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask-sample.mask.rgb24.ref.png b/test/reference/a1-mask-sample.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask-sample.rgb24.ref.png b/test/reference/a1-mask-sample.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fd4570db5c7162ff6775953dbb1fc51d86d255 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt`oo-U3d z7QM-T{{OdUPHpIHY;2r3QIOv=fbsDPZMRrQ>+pbs9S0vy3=Hqt#U#tX@IXaLm+3>> QYoJyJPgg&ebxsLQ02LS}od5s; literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask.argb32.ref.png b/test/reference/a1-mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..864fc1031ba3a3c4e1dfe5ba704183a1bcd818f4 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF6Oizopr0Il90 A$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask.egl.argb32.ref.png b/test/reference/a1-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..864fc1031ba3a3c4e1dfe5ba704183a1bcd818f4 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF6Oizopr0Il90 A$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask.mask.argb32.ref.png b/test/reference/a1-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..864fc1031ba3a3c4e1dfe5ba704183a1bcd818f4 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF6Oizopr0Il90 A$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask.mask.rgb24.ref.png b/test/reference/a1-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..864fc1031ba3a3c4e1dfe5ba704183a1bcd818f4 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF6Oizopr0Il90 A$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/a1-mask.rgb24.ref.png b/test/reference/a1-mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..864fc1031ba3a3c4e1dfe5ba704183a1bcd818f4 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^AT|dF6Oizopr0Il90 A$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/a1-rasterisation-rectangles.argb32.ref.png b/test/reference/a1-rasterisation-rectangles.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..784cf873ecc483f792ddd27ca4013e3c07ba19e6 GIT binary patch literal 1729 zcmeAS@N?(olHy`uVBq!ia0y~yU~C3q4kn<88{2DFAjOvC?e4)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&)T%V>LD(s-NAr{2ZRoegtd^Ss!3 zZpOx^6Z2(cy;z>aq&u81J=UY!U-S4yfRe&_b zypEFYlJ2g@cka`8tZ`jDRmODAP8N_JQQ7Uxw!hMx=f>Vy4RjBKr>mdKI;Vst0AONL A1poj5 literal 0 HcmV?d00001 diff --git a/test/reference/a1-rectilinear-grid.egl.argb32.ref.png b/test/reference/a1-rectilinear-grid.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfb85e136ccbca35ddeb181790f5ebc3a5f016d GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}7PZ!6K zh}O4P4Y?W&1Xu&Z_xzultmqN2$Vlwx(LG)lk~+M%MP+-hDlI!8{CGv~mqn}2J^vl^ zuk!cPX6G*_CEY{+pZ*;<_b zypEFYlJ2g@cka`8tZ`jDRmODAP8N_JQQ7Uxw!hMx=f>Vy4RjBKr>mdKI;Vst0AONL A1poj5 literal 0 HcmV?d00001 diff --git a/test/reference/a1-rectilinear-grid.mask.argb32.ref.png b/test/reference/a1-rectilinear-grid.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfb85e136ccbca35ddeb181790f5ebc3a5f016d GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}7PZ!6K zh}O4P4Y?W&1Xu&Z_xzultmqN2$Vlwx(LG)lk~+M%MP+-hDlI!8{CGv~mqn}2J^vl^ zuk!cPX6G*_CEY{+pZ*;<_b zypEFYlJ2g@cka`8tZ`jDRmODAP8N_JQQ7Uxw!hMx=f>Vy4RjBKr>mdKI;Vst0AONL A1poj5 literal 0 HcmV?d00001 diff --git a/test/reference/a1-rectilinear-grid.mask.rgb24.ref.png b/test/reference/a1-rectilinear-grid.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfb85e136ccbca35ddeb181790f5ebc3a5f016d GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}7PZ!6K zh}O4P4Y?W&1Xu&Z_xzultmqN2$Vlwx(LG)lk~+M%MP+-hDlI!8{CGv~mqn}2J^vl^ zuk!cPX6G*_CEY{+pZ*;<_b zypEFYlJ2g@cka`8tZ`jDRmODAP8N_JQQ7Uxw!hMx=f>Vy4RjBKr>mdKI;Vst0AONL A1poj5 literal 0 HcmV?d00001 diff --git a/test/reference/a1-rectilinear-grid.rgb24.ref.png b/test/reference/a1-rectilinear-grid.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfb85e136ccbca35ddeb181790f5ebc3a5f016d GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}7PZ!6K zh}O4P4Y?W&1Xu&Z_xzultmqN2$Vlwx(LG)lk~+M%MP+-hDlI!8{CGv~mqn}2J^vl^ zuk!cPX6G*_CEY{+pZ*;<_b zypEFYlJ2g@cka`8tZ`jDRmODAP8N_JQQ7Uxw!hMx=f>Vy4RjBKr>mdKI;Vst0AONL A1poj5 literal 0 HcmV?d00001 diff --git a/test/reference/a1-sample.argb32.ref.png b/test/reference/a1-sample.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6131ce08b1aa29caa2a40e0d65a21b204016ac GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfr06` zr;B4q#hkZSHwqqb;5od(;`jSE@`qU)Ij?*$+5Ow`YP~Ik9%q9I;{-K^ODqnv7(9d- zGMN;78J3I+k`*8pX2#crFQt{QH$NcBKN_A?N=sYV-#lgi(_$zc2~6Y+p00i_>zopr E0I_SvegFUf literal 0 HcmV?d00001 diff --git a/test/reference/a1-sample.egl.argb32.ref.png b/test/reference/a1-sample.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6131ce08b1aa29caa2a40e0d65a21b204016ac GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfr06` zr;B4q#hkZSHwqqb;5od(;`jSE@`qU)Ij?*$+5Ow`YP~Ik9%q9I;{-K^ODqnv7(9d- zGMN;78J3I+k`*8pX2#crFQt{QH$NcBKN_A?N=sYV-#lgi(_$zc2~6Y+p00i_>zopr E0I_SvegFUf literal 0 HcmV?d00001 diff --git a/test/reference/a1-sample.mask.argb32.ref.png b/test/reference/a1-sample.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6131ce08b1aa29caa2a40e0d65a21b204016ac GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfr06` zr;B4q#hkZSHwqqb;5od(;`jSE@`qU)Ij?*$+5Ow`YP~Ik9%q9I;{-K^ODqnv7(9d- zGMN;78J3I+k`*8pX2#crFQt{QH$NcBKN_A?N=sYV-#lgi(_$zc2~6Y+p00i_>zopr E0I_SvegFUf literal 0 HcmV?d00001 diff --git a/test/reference/a1-sample.mask.rgb24.ref.png b/test/reference/a1-sample.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6131ce08b1aa29caa2a40e0d65a21b204016ac GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfr06` zr;B4q#hkZSHwqqb;5od(;`jSE@`qU)Ij?*$+5Ow`YP~Ik9%q9I;{-K^ODqnv7(9d- zGMN;78J3I+k`*8pX2#crFQt{QH$NcBKN_A?N=sYV-#lgi(_$zc2~6Y+p00i_>zopr E0I_SvegFUf literal 0 HcmV?d00001 diff --git a/test/reference/a1-sample.rgb24.ref.png b/test/reference/a1-sample.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c6131ce08b1aa29caa2a40e0d65a21b204016ac GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfr06` zr;B4q#hkZSHwqqb;5od(;`jSE@`qU)Ij?*$+5Ow`YP~Ik9%q9I;{-K^ODqnv7(9d- zGMN;78J3I+k`*8pX2#crFQt{QH$NcBKN_A?N=sYV-#lgi(_$zc2~6Y+p00i_>zopr E0I_SvegFUf literal 0 HcmV?d00001 diff --git a/test/reference/a1-tiger.egl.argb32.ref.png b/test/reference/a1-tiger.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42772bfca4a83284643ee8632197da0011465d16 GIT binary patch literal 30631 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 OG1OGFl}5CndWP?w*&-t{{8oS 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 M07*qoM6N<$g7hP%IRF3v literal 0 HcmV?d00001 diff --git a/test/reference/a1-tiger.mask.rgb24.ref.png b/test/reference/a1-tiger.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a62af76035de83b46481d17cdb556710f17a9e2 GIT binary patch literal 20328 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 M07*qoM6N<$g7hP%IRF3v literal 0 HcmV?d00001 diff --git a/test/reference/a1-tiger.ref.png b/test/reference/a1-tiger.ref.png index e207d7da81d6b99d3eced4ae44b67093178e4c84..cc641e29032d3464c2bcd535ef41f4dd9be0f644 100644 GIT binary patch delta 2082 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 z zupobAcWeKJK5#4-u_Q!3;AD4z?+9VEp39*u7H z^%0N9W>9Tu0XY0#2;A@DJ0$$m0l9;iD60jOQgbSd=~Z^3Vln`FNjHld_?Cv;K?HiY zb4-U)>!roWoXi93t;|F4UI@zIz4y*$Aa{Qd2dBC&*Rb8=S56drF$jcTbSGK(SPoHM zVZ#yF@m)^=xq}E8-gdFPDIZ5?_EDHRTN0_a;|hZJ(lES%o%{~DgWN<3+sAA6{39&C zqZVMq{R2VnAPMHk)T7;s`M2I31yWGp?5^l{*&qnsOM|_WmG5W!3&8&ejbgV`!J7`- Q=Kufz07*qoM6N<$f)}DM7ytkO diff --git a/test/reference/a1-traps-sample.argb32.ref.png b/test/reference/a1-traps-sample.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-traps-sample.egl.argb32.ref.png b/test/reference/a1-traps-sample.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-traps-sample.mask.argb32.ref.png b/test/reference/a1-traps-sample.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-traps-sample.mask.rgb24.ref.png b/test/reference/a1-traps-sample.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a1-traps-sample.rgb24.ref.png b/test/reference/a1-traps-sample.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..384ba4a044832f08353cd0d0aad553c425043bf1 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1SGw${mubWY)RhkE)4%caKYZ?lYt_-o-U3d z7QM-T{{OdUPHpIHY;2r3aiT(}|G^d7Zn1`UVjWqP+1lNK%o#C^3>%`Abl0uA8wS+K N;OXk;vd$@?2>`$HB|88B literal 0 HcmV?d00001 diff --git a/test/reference/a8-clear.argb32.ref.png b/test/reference/a8-clear.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98a624eba652bcedb2ca7e7d8634751b864988c0 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}}Ko-U3d z5v@nB@8xSY;9*Iy*Anj8^WR||^VC(_8gG1@+o|(3{b$KHk><$d+j!SH?yPzhdAjLw z1(VqA?He{dSB{u=n=v~_US|XE>sMP>em2|ER=fUuE`!|0w|l4G{$_dY*0)maEpNXs zJoT@6^&7dEr1%3>zokHWFUcJ=f@-~MaJ%n7h&9LOHx@pdmM65?axZ_&GG}vf!6CoH zo6VT#ZSwq(>Hd$+Mq=Zg5R0VEiQ9D>9?sg%cFbZskK9eKAJ^&_Pev{K*?8cW5zs#j Mp00i_>zopr026F@&;S4c literal 0 HcmV?d00001 diff --git a/test/reference/a8-clear.egl.argb32.ref.png b/test/reference/a8-clear.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98a624eba652bcedb2ca7e7d8634751b864988c0 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}}Ko-U3d z5v@nB@8xSY;9*Iy*Anj8^WR||^VC(_8gG1@+o|(3{b$KHk><$d+j!SH?yPzhdAjLw z1(VqA?He{dSB{u=n=v~_US|XE>sMP>em2|ER=fUuE`!|0w|l4G{$_dY*0)maEpNXs zJoT@6^&7dEr1%3>zokHWFUcJ=f@-~MaJ%n7h&9LOHx@pdmM65?axZ_&GG}vf!6CoH zo6VT#ZSwq(>Hd$+Mq=Zg5R0VEiQ9D>9?sg%cFbZskK9eKAJ^&_Pev{K*?8cW5zs#j Mp00i_>zopr026F@&;S4c literal 0 HcmV?d00001 diff --git a/test/reference/a8-clear.mask.argb32.ref.png b/test/reference/a8-clear.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98a624eba652bcedb2ca7e7d8634751b864988c0 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}}Ko-U3d z5v@nB@8xSY;9*Iy*Anj8^WR||^VC(_8gG1@+o|(3{b$KHk><$d+j!SH?yPzhdAjLw z1(VqA?He{dSB{u=n=v~_US|XE>sMP>em2|ER=fUuE`!|0w|l4G{$_dY*0)maEpNXs zJoT@6^&7dEr1%3>zokHWFUcJ=f@-~MaJ%n7h&9LOHx@pdmM65?axZ_&GG}vf!6CoH zo6VT#ZSwq(>Hd$+Mq=Zg5R0VEiQ9D>9?sg%cFbZskK9eKAJ^&_Pev{K*?8cW5zs#j Mp00i_>zopr026F@&;S4c literal 0 HcmV?d00001 diff --git a/test/reference/a8-clear.mask.rgb24.ref.png b/test/reference/a8-clear.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98a624eba652bcedb2ca7e7d8634751b864988c0 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}}Ko-U3d z5v@nB@8xSY;9*Iy*Anj8^WR||^VC(_8gG1@+o|(3{b$KHk><$d+j!SH?yPzhdAjLw z1(VqA?He{dSB{u=n=v~_US|XE>sMP>em2|ER=fUuE`!|0w|l4G{$_dY*0)maEpNXs zJoT@6^&7dEr1%3>zokHWFUcJ=f@-~MaJ%n7h&9LOHx@pdmM65?axZ_&GG}vf!6CoH zo6VT#ZSwq(>Hd$+Mq=Zg5R0VEiQ9D>9?sg%cFbZskK9eKAJ^&_Pev{K*?8cW5zs#j Mp00i_>zopr026F@&;S4c literal 0 HcmV?d00001 diff --git a/test/reference/a8-clear.rgb24.ref.png b/test/reference/a8-clear.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98a624eba652bcedb2ca7e7d8634751b864988c0 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}}Ko-U3d z5v@nB@8xSY;9*Iy*Anj8^WR||^VC(_8gG1@+o|(3{b$KHk><$d+j!SH?yPzhdAjLw z1(VqA?He{dSB{u=n=v~_US|XE>sMP>em2|ER=fUuE`!|0w|l4G{$_dY*0)maEpNXs zJoT@6^&7dEr1%3>zokHWFUcJ=f@-~MaJ%n7h&9LOHx@pdmM65?axZ_&GG}vf!6CoH zo6VT#ZSwq(>Hd$+Mq=Zg5R0VEiQ9D>9?sg%cFbZskK9eKAJ^&_Pev{K*?8cW5zs#j Mp00i_>zopr026F@&;S4c literal 0 HcmV?d00001 diff --git a/test/reference/a8-mask.argb32.ref.png b/test/reference/a8-mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e0503d93e7904da23052ee35d21f67aba7cda485 GIT binary patch literal 103 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%0Dk7W8OK{qF z<6NhbSTkPL2}i`hazcV>DPDL&ou%o-xPdAJNpfTKy3>EK8pNUTyvH zt2!O#%zPTEF0Ey~!21N0RLy#1j`q>9*y`$NLq<~kGU+Q}VQBL))D2fu*6$z7q%&0f z+s1appIM#^{nfZb&QJf~OZ9O;LO}%@g-{0LWw^3x$K#KcW5f=*kxRU53Xuhaqt!ZG zPOlvt<})%F+gF-K358m^f7CppZ+8FVZ?39}Sv}oW*sb;dG4{^UeFa^-cWm2k@@s6{ zNz<@FgT}TR+cq1kNn^9IZQHhaPoHPq7x&)vuJ@m0o!^-=b2zhS@6Z0u1-{{p{tu>@ zcNVqW&K^i9so~+}6pWTu6;(hOhG5K4sDEAx zJWUVba5>f|6_AG&V?neA!aPYzJ4Vy(SquB~o(P(Jj6L}x5B41;=0xG!8zCRGt1o3D zzUtRjG3-R&{pyWHCCVfdXsF%C=l$nLGpulB)EEmXsm2=C>L06HXF8BA0J8XVR7@+n)qG&I4lShXNX z`B=n`w`ZKK4s3!#d!*UA&lxxUPP?ZCf5CxX3*=I$D4&}_q&ppeZ=iS2F=+K zq8WQi24b#w8jhilGWAwJgH+a!Mxr8dqyLzfam;;4!!ljxb7Mgv(Sqo1(4gbxR~lEa z6fqf z{7jYNEZv^0=}J!+fr{;WTAG*Y+g1U*c6F{^k&!8J#L?4hCLjP-yPYUKxk$MbvZh9S zO;=}fhx0i)s1F+zHA+;8-__1KTM$Tu(jFdpv8b2VEcepUDJ?VxJ|TG~C8qhKQ`kkY9G`_0^{ zET5r`X>E*+pzICU37`p}H4`exXSOp#M0<+m{8^j!<^RM(>d*34ISG8(ZruY~fW$~` zOly|^_LV|H<`1DUK2)Y&9ZV2R(7e%7F;Y2~8v=X&AQHt6!FdS?6-_OoM|qx!yj`ne z5T=tqbp=^<@&wqjv0+5Ti)FT5-*0vVUPARDZ-T{{h?C%pRhngj~8QHoG+1b`&J(Jy{ z6M1<*oSh5bUQ%3Lzwz>^-=3}L)f6l?w68bkbvM^c=hxNwm>-S(_#4hIfEbKo9WR~5 z<7}~8qLSG`agtGtgfD7Ek4YVyI@lkzxX5gsuJ=`r%O+>e;l^Ykyaa5 zTJkzXD-14vP57diTquP-I^nOXr5<*UKM-sLt8Ihoxmn}qf~&E)XHk;{A;R=>fCvB_ zC-c`P?=iw03A!M?=L zMIW~fCddwL--#RVaw-nho-A0ShiDYJ>82yaz9jDY+~YL8%aRb3=x9gb*x;ZEw=noX z!3a|wy{HPqlS=5-WT>y!UkG#5+SV9>Us;`t_9Q|*u76?3<;hgpl!{j^kK1aI6sY~ULn@Ue_!r1m zN8}espjK#KuFQUlq>5|RU3wd<}@Vl8c9ZB1fDQ0wrBQ5@ZnWYPIoWY>x`^$bz?lD-1|cYiWTWOftz%j zPD)KoBb0VwtUv1xuW-p~U`)6eE)n{PF>DPPAsiF1HQp>4JRdeomWIw<=q+_?S+=G& z+KSf%K3?Fproh2k^vH~hOHZ>cz2ir`910|_hnsO+XiQ(@{419t%pVy9R~%#nRfx2r zZ!a}tq^W0(J2Mo8F%KoMP(OWxd+U z+|BZAxnlp!V_mXQLz6^}mI;}N+j@dTMrEdAa8MZ)HTMvr$H9S`h_}FJ&v~GGTX#Z` zZu-cdm6asD@dAX$%Nw5@oKNZP{rCcqRH}rp#U<)Vt8>&Gk1#Cf@j&5n!GFC> z)yjhvi-WDWA>aLJ!v(AY#Kk0iqAKfIGP%PT?7e?2a;1lOutc)101bd>yz8)Fd$Y6JkVt4e9Gi-o)vZR+3B0B@EV7`J`Fq8;8Y}!SDGiMgee}BHP4DsucCSiY!ur;;j^dBP>dQESF>>V;Tj{hdZpeH{pEg$mhLV}A}i}R1jG++ z&!)_`XlW-3(BX8BNNuBybxJ=M7NCLVkB&B_re5yu+6F}s=FQJ@2|b&sT9tV(S~N67heaf?bCSRzTAJ#< zZ-w*)z+U{~tsfqeDO4l%-hwWL?TyN6n&Pc?U5LadDJ+~I6=-qnkK85~3pB8@KNv5@ zq!EoK#XXrrKIz@gpAfQLn#KSyUcMKhET8t_A@k?+HROhd*53*-%k4S^LXMV&@5}b~ z(uJd0W6{KcLGXR4HLOMQ#xv9b8EwC5v>IYl7yaHY^^4?07)=M!fVjw@G!{ZM$(h|5 zUU85$Go~_>VI<*cfI54qIGRra{$(s zc29Yvmx`M)X0kh@;_lEYgE&o1=U@f@==*1^;m;)9fCwQSMwGujaVrc_{ul7EcPp6cr=T5Kmk7=b*s|{OeCl7Zl0?21KZ2#IVY#$b4wg ztchLU7L8JA?*kcP7vtWT<-mE6{8GpFvVJa*PG4gb{C*(mPO&OGei;91}H^Oug9ytrb+95&v_x6)|y+2Wh zi6FcUKT+LOI_;Vfbd18 znb}H1Vxv9ac7N%xub;)x^-3Zb^}yDLl0p>JPsG!m!IPLmh?k!ak7&5whH{$iEql>Q zOcodSdI_nd1pFx}c|FlRn-@gc=;V16TBO4>?C(*t<6!qjh9%3Td?|HLI^f$fmk#_b z0`G$pJ!jZ^#o~EGaS(jt<6~H9SHbcQr**JtaR{L+vOPa5+Ufop2~iFcxii+VsuSd z2m~uAH-8W1NqC|?1Y&W6_cvOAxo`7m*VA2<)i?#1 zt%ABum(3R)EWDPZi0em zIR7je=bm6zmxrAR!IxoN-MTl6bICS%%;HL#PeBhGxROfY5%35GZ|;zLa7acMKjzC% zILwV*}C8Y#7!4`2U zQgSRcRP{iF7-m(esWO6X2UBDo5+gNbXyFNR;*Jp+y2tm13dmO7pRnN&?6R(=90>_k zR^(%y9NfK7e8)6#*PIuKd7yyL<78%^PwtX-sQl1Rb^3V?TS=Gtfg>o~Lgo@=Y6?Cf zi%nzZkSK3@`9bKgKy|tI_~O8MT+FA{)tb6s9fHA^1yh;j67Pv&QZLReD9FmVy}Ug@ zDjYKXgDrMyqjr@jNBdx(pD*?-j-u`#QOB=A53R|IDG>;_lBG#OZ0})k_aw}qXya9|y0@@p@ z{Kd$7zx~Q|m;K(}8qM9REJK}N*<&xVDS3$QycWnJA!imb<(|nH>(jl|JQWFt6_B(i zlnq~A+SaZ&8)-%!F}PY>9D?bLncNFJRl?T z8rFwJkz1*y;TG_kEc{Y#G7tq@pZm&gxA|Q7CF<;=D?IAG`84vi5jD%aR7)x4lCxL~7Nh?OME>T-K7F1}X^eJu4dEdaBtJLeN`0&ZrX z!^xvomz$9+S*pOm*u>sC^L^UzBhEw~$K{ooX^rOT#5^zq7N+)4&9Nr?hjk&FKtpEy z`_yt!(TZXN!IGGMp^OB$( zP|Bd)4LvD6f9JfzXEk&ek32zUxrdz%yU&SmSZ%+qHYC0wK8YF&dXoG-7+1A8hV}gY zWdH-tk1EyVXAavMG0VVU77QKfyODl5=+nP`A+Vb^e_19S7bD(R3bw-YBj-@; zRtr5Ee5cIJMFI~xZ1cyt)J&1P$}yV~EMvV~s#bj2kYX}EAVV|-32Hs;l~x8ac3 z&GhOT_IG07QK;$5{=OwBaJ!XxWod0!+L(Dx3z7WO5r}W3;Hec*qM6wm; zC1S4WK*7w-n>opb?Hp)xi6iAh*n8ZC&_4WQ8LAl;wqukd0%=&wVe2X9&J5eVyrTON z7zSH%SZA3*3bUEu@u9OTx+}N~fqO_{j$Y2vn@OeE;a81+!u80Vxd|CqU)wQGgUO>I zVk(nuinl3t{^k<57mGNlIy{MBk7jmgH-E_jC6*fZhRH4c`*RO7n8Sq+Gs2z&;Mm<1 zRo@9NuIHd;JU7zI@di$!{*I8;Cxe8@lZ?JB^X*PSFwON+PvZAZ|C4?X7;pq|iNGY+ z(wG&HcHV4>__Bbfwc5hBGiFHise^Yt+v9FoH2+{#pl)%!KNa!z!H2Dy!4RkLT>1~3GSzGg-mufvZZ_QpsE{+xye7Av_;dzXJrsJPWflmTGzU+ zPeOh-5`axmZLil zkt&y?p0V&7X6!=-C;;nP69HR1Qovcb@%Xp{2k~ z0m$RoJ!gGaI1#q1y~1Yr{VgCo;x0;+bt$gn_0#6;XTz8E5|zrgE!3D>%H`eP>RxXQ ze0<*MNgfYQI!#q#SEuQa>t9uqrT8a)gw~Rtod34Wc4#0b zEqr+LzX=X+yp4^~YXvKt=MX7>4h!SvWwqAyc*zp5TA7!SC@BWB``JFA`12w1TH41} zqlZ_T<6AT^zqVL3G|GmlZTSOwcwaw!&dJySGg{Ui2YHe9ag_b~-Wd6<(9dC3I!v}; zIZj|^dFA(+{(J)?ZMY+}aL|ocFl(K)X<~bfLv($S8}W#;(lMPB@-zse)PA+6?&rPv zXl}2YibQ-eF4OzrXbHLCBElSQuUCMfgh(oedQ*Egn)A9xr8c4Vg;M zg0lats2`11-~T9=R1$G0n}0JfsL$WYGM`yq`hB*>OEK+v6D5+37~xY#?#Yf zyl}AV>&rXn!SVA`R?+%gCk*RePcNULH(#z@u+4=djz9~sBdX=lz16X|TSeD{xE;jJ z1@i^8Kgfj%W|YZ0FJI1KFR7Vebvt9m<8gprYcqym94_y+7?1cbp%2-Ow^}H9!#EAv zSMyIZQ&M(L5Fed+ZQ$mDr)BEUfe7ebGvUASlu!LzVrvV8%|eB<1AOkXA}{15uL}wj)9IOvg6VWYNTq%rvP7Z#E@$F6nLy_H-?)*dhmIAb9&*xSvL;6b z?=&+pB_Vf0SyMD5u3WTtqjlaG+@6WJ3yDmDuA>5{ZVtJ+++x+3)!=D-sNasYTtN=+ zw->D$JSj2i#P?kVzc1~ksh1UJi%IH{3so{?I%FWg& zmwL-2uNO`&EmY9wqtOIiprN9R^|xYcP^QSoNXjp3t2)*+t?&398Q%y9Wxi0d##^tD z+~Qp_9Y%8|hHT$kV_=3w?@yAa`y4&T3WH7qzoU8}HSsMgk|5B9`d8|Azty~xz{^nP znx94*%{Rab!mI|Ln~AxB%4{%`1{bE}xC8Ijg2~{catqF=9B@`h9`Wo54{U%E+@>~C zagQ8RnA}EQl@TTA(_|P80+%eCx|76f=%{_x(t&2&P90aW(~EfN$qj6*4)YDxsNP6; zEx(cXa;sXr_-I+KP7V*@Lr}hRZJgkoxDi?}O|t?#Pj{6*Fx=(88+P{p=ORQ4W}fzU zUk^{{m}o5s2i#nmE87jO3}|T=Up7PVTPuu<3&l5^VE->beA)p9afni1Q8C0)mmXeG!>-z!5}TE&omc zcqVI&H4Zy@61B+xv6qE_0UO`Pr&X)5?dF=~Hgjzu*nq%ibgaI#Qt0I3V|Hz4bM3_% z5wWHwG=_#PVO5(7BjAEf0NHqN7^NteUS~N;lhu%&ee-OrcA`cPTtwtq-Oq&#EV&bO z=_lFqpOVH>Gm7&rCCQ_B4Y9BvfnQ^%dP+Nd`Ea0&s;RP+(jIrG%?=5Qe&?2HFLkje z-hF9R{$hf(0(0H=bWm%hDJ&T)@@F3f2i%B(+#4%RaF^3Sc=?t+F{z9_E4U`BP^b9Q zi7y+no9jn{DOWXF0NL9&WSm&&t62DEJZ102*yto;Wc!-Lbql1)l?d6B{-Ph_QFT-<+KPI5r}ai(QMv# zMm1DD0{-^6-|}vW$=>(JrDx-Iz?ny~)O_qb9ViIgM3P-CUEiOn1B}{rg2Mad?TjOr ztxd#)dv)5nW<5GNL<>(M7baA}o?T4De8=;y~`vdKiSkw%W`2lld} zoE~Ci$W|;AWsufAOCG~m)|r$8H{z}Kj=Gr`iys3M;IaU|eD<`sGo76jb`MVPp+Kfh z!6V&Vu;gs`ywk8|*(OK49hA+Z&3TYjQutu1?0-5%3R38{O#$M4MjqX8XaP;#s- zKTeu2n?wuQbm@2V_g-JAgao0P-{GYCcP#%oY=BrpyT+oQ0DoF`Hdf?x8`S$dIJ!q# zqNo#Wg&(Xst^K=y5NY+RX%_I%e6IjslB+J#px4)1Q+i-W|Gizjk0kT-jr1cQsd$wO z#^)&~@n;0?9#IVxg>DrvBEKs<0LcA9cCpHPXV{Vx31)TVm{`#xjEqP^d|aKCp1C z3krl_Y0?R3%BWQ3w|JAk8gFn%r}H59(T@|YP9#cL(dT}MPy_oj5Q3_Z?z@y~L!43r z0+^vWMSW7uEHbKCIaGgWGyxOHl9&4^KKI#CbI`sXFui{HE%&|7-caV_9hOF(okzYY z#JWzNeqGS9NUqdtYcOtYrU<#kY3N^Z;U5~@UJDgsm^Aae+^^09C~pW55%=GrJUphS zrN0`F5kM}1K|p^0o8Gv-J(_lZPs|s{p97ZdGhSot`O4DX4zR)HTGZ_gD54_pbdeRD z3f+8FIImHsKG?Uu5cGl0moU4X=!d7RJOZ%J_kl&Za>jk>_ufDl&qb~Fp5b+(uJOY; zBo-D+Z|k5;tDlfGVP_=n>XvnnU{;@0Ha&h8yR4d7E-jPll31;BkHKfWuJ$8|7=lF6 zH^{R++SvBe9;IChZv!!*;EWtuSwBiCnF&p;M+;9mSa^~AaAU0VpbAM4Mi(!}d>CK` za?Q<$XJ@g2;1V@6H$L7Y;MB0(a39%Vw#h(3dOeB$Z^hX@?Z7SN5`5<#Sa=wGy!tEG z|IhI~Hb1W`CFOyG{l+8kSI4t`d+W+eda&uD{iSEkve@I^OXc^xbRh&Q2_V&l2rN7D zG@?7Kqmz$;S$>YYAOf2QvA9TvlfUuTe4IT|O2Tl5soqGdfeZtHEi(@(ts#gHJ0cDL z?F!npVOaVyiO`Ca_R5tz1e1x!_g6QRXGW0(JHB7nV(7=RXlbYp8&WENEE^|p@6Xi_ zWyhjiepXY06=0{q7rH#1(Mi*5;YDA(048=*>4E&bE1R$x9JDSZUa{t(en}df6Bn;v zY{+{`^N0Qaz%mA-`=84dS8)12EomG9+q>x|QzcTv3Abd{x;Yv$G^O^rO zI!K~-{cpc%SG2c=N`eScW8H25YD+b;1SyUD=7qvf&VzCLD+-k&CrKqR!XEB*2%n2_ zPAsp;V75)z9(}mej|)|-&Y~f*=thm}hyNa!uVB|t+F=!(Z8#`#uW$r7GC0|f2Ci`E zKgMDIjgp;dn5LHxlpfp%!FKjSD!hdt;RJox>Oj<%T0T)ynoiQ1Eh6o}&zV5{wWvf! z2&h>Tm|ma)!>|NtK9I}-ERT|sDe$`54D_hy*{p>#OzA*y8>g}EaNtTU?y$Am5HJ}e zNJ&0@VzOP{{h@Z>M_0+Msyep#x3y=bFIt}V8PKNJ?+K0htuymg%R}~HqrwNosADik ztE>X(R)k@GZ;IXBtth`G&ItKL##z@`{~PYnmh;Xz~T*(mS`Iu?X!$m zL_KWUBM)NF5$#bmGtzdh&W4uOLZIEt=qC;6k}4ePZqXLGC*WcxPzf8T1b0O9f=F5`ONFD? zl{?fRL+88NftV4dAN;&Ot#Y*muQt1KpPo>kw?o1fmujh~fZ(jg=4so(v1nC%if!~e@B@?YT_p(0RcXzl11W<{*b zR2MbOpTf)%Zu?leWBapg+5~|vB!6vkm7H{xe9<#9rTp9T4$(S#j+s&53PBTg$8;vy z+i72ruBj_=8`(iE6#&~T&5Yz^pn(ht~q!L?gv?>NBim|r&#iUUe=AnV;IYukjOXGEZ~H;7k~ zpdsoC?}fSXS|o$mobTneB_~;a8>X`>|rT?cfIx}3Y4Bi`j+k2IG*a&C)L7NA~5jBo2=fM;O+p5}QP0G$;Ql0xSY7O}V(_ z+&gLoKNGAp5hLv$0qi~SZVUU=k$pF++uwxJ5C1C`oscMk=$7LrHwfmUD2m73X(FA& z2iiEEJ4sm3-Don4Q&F8ONW?O>_ygomODax=P33bS1WD#jrbiO8me2DsDdbK?4v!)Y z4>s+eXZ`sG1Y=8`?NVFaZrTC^-`D;V{o8105X48b``HTzn9hI$K1)L4@A0wh%LCKZ zWwF!Gio=!0uH8r`z~OQbj&Lw68#6uq{^=9f*;&N@B)VQ}YTw2)EgwSs;rYXh>qMw1 zn9-8LCl&emr4RyIW~1equ$Sj|MuM7p}b8d9EVb?mbi zH8sp_Xjnw$b{MmwVVi;jiG1=zUL-0q0 z8MZwuT77t(qO1U%yy>D_FwW-pKtqnk^5VGZvIBzoF>W==c_qsK6UbO;IT?OP4iFJxN00z|(R#0EB+zI3&rBDkbG+vD09saVU>_i!hqFzG+Al@t_~tm^JdgX^Dxt5mZxuWLWvNwTbOe5WU2L-ZOR65CyeU?}!~<@`Q`f=& zR8JNJb_q=yD<)*utTi*MCO5mk#A!!dAqu`LieiMn_VB7%94A`~0pZ~3<>=*!uymzA?@@C4a2RaB{>7S3up&h9swE0A%vrJ$nf= z6~USkiOuysqK_`A5t8u6(RJ$&rsAAU9OO@D&$UpiNR_5qxub{p7aMp~o5cgm0M~ug zII1}fvZr&zI(m{U9V{9xFS+76B}`^WzIVomc!>$rTCYZ1SZb`(Kv--x1(0qmb1?As z$LGy_;Vr)q%4p-nqub%@-q1Ds%Dg{;7|7|`4vvFE6s7monSbxjJJ=Nw<~B{f1$ZK7 z>d9WRF@a=Y@e1}uhGCy(rLPV71)lQ2KMO@RjQ$Olr&z$|=(9Gyv? zU4H&g`g^|J<~f~DUiFqqB-icK<>zw>E5aq16o`#B(m8|{1U_cik$99=R>(2!TL!j4 zq?@fx8YH=;biAc;rm?S9G;@PoEr04g_IJ4CPk~REWbV-2(Ad@35W?UeFS&Md^F)9T zhF@?{PeDj&$Mzz&;g%+#at736#UB(faLRH1p15-@a?bM3s@;|s+m(P^7&@+dlOze* zDmqA<14H4I$oy!(qdsjpHgRiYxK#scAHC8kDEBSrj#AT;phJ+b2<`P(Ji= zrEZRB%Ts=h;*BVqx0%2Y;&wZ^nK9(ql$`UW6W=D=uo(|v(jAfVK)Se`fzo)+xp)$J}n- z-t>&)A~Arj>1kaU8e6RQ9M<|YC%Dqfe~svjXwhqFkLdjC(Q;S02DrEd925+8@SLKj+_eo~H~Q27?(jT-V-LQ%Vw* zr7bZ|ghppipZd4nDQkl9Pt7{FUGqt!_%xAVzH`|`{Xm}0s;s-KUY8Nys`#;5UPuxQu zu-!x!#Pdu#q#ac4d=-NQ^~xQN-rh^z$PLIrVu%s^5y$RxcT8s&O50o7N2`r_l{x_> z@!Rez&j<(MvIoP;|Az3wzc%;R^w&h1%-^P|cm1Ot9#}3L@B}u zm&^jj*o#UOkva0oLD`-h$7`qUT|nN{uhr9QW#S!*GJi2N=!hKnd$@(S#s6~I)_4wa zi>h+m;s#iRxcW1_bppk}$_@dJ?YI`$t-l@fQ8n?og7#M_?d{=84S3l7ip2rH#Za)o z4AjZu>3^Z^mm9RuAoy4~!Y-I1_=R{E$U3-p_yU?55(j(f(?5&wA=FfopKP@2rizA4 zmb1)h>n)1$+v6^hD%DC{6gIr_Cy>kKJXFj!?EW|q+)S`!1!eKH^O(L(glqL$yEu8( z>)3jioobaRnK3?Uo7I?GR9Tx%lWsmU^Hcq%ka#A!7}M*A;T()pFxpmYh{iI=%EkS` z(t9{rZU7L?MW|l%Rm^ld%8(b`jIPKCTV$h0dImb`vHv%YZK&2Sq1oec!D@(0_(SZ+ zU~hm`=1doR4`U}?b}F}%fm$EIuHN%%=l1x=kN!f*;ns_4OPEUQ9L4dju+gPqbMk%1 zeGhcp01c^Afd3wi5?rljrrDtgdeDQh0^^YjEQk1tb?1*a*+tu9B}rPv%;hq5qw&SE z;NtJgdZZ2;XIq2F4^XzN-S#|>mK4Gk;g6>uEcPtC)i$c9v~K`UPUuB{{*Ne+W0w_; z4tl-nCRK>xe>(x^Quiwpz8TB` zN!VX>*S#4K`2=B%vSikNAwxF^fw?I)!LRM1!Y{8*<9g52`?y6&N?1_3lTdbx-3r}C z(wPOSyEV9a31i=IoF+DFkk`Ogyj{J$KxsSkK<5}(l4|#efyw$Gk_~hlel(C9UKaq8 zU2RpJ@v-;nXYv^AlJ#Io_@maU`t^2B!Ipb9wZr^<*GL}=y4ayiHZ|LhemAu}FH}=P zA=^V!^CotRo;dp(mGpKP>Bu4+g+r>I^g{Zkk5)53YbT{}tmVYe4K9G`w< zf$==G_3vLJK3Q)3pU~~2iP6<@(+Iv)8pHok+sXeA8v6~Z`=`e0RA(%X#>yR%>x3bL zd15b980pK}V(4G=dX)O1t)YCVyQnj^My7YGD`bHUz?@$H{w5z`JhI$4|C7PicFCZG zzl_M$d^5}3Bc1ANTq}iutUzGC+;~-n7$(Y*uG{z3YS(++iDU7W$ehTK{WHE$x@hjA zxc$(4Qt$W2?5#-OaAm1AdJ_rs!b;G2Q>l{f_B6r#Aze69n!tUgW+Q=UEQDi(*7u?;&0 z`>vk@Vr96`+*zemI+Hddn2R=gvF|7SU=yVc_aa^~iNl-o&We;B%lT5KVVDEb#COiT zHkFcwl)8lU;ifdRstEXwX3Wkkj+~+wrEiryHKd>yV|1o*mWq?UuW@#ma(3X;{}K6t z4~|_p-flDB@LefP={bBG5W6o|)+KN<9}DMr4yTwIKIJ?I)_5@moJSd^Pi zBTjnTh#FA>caWMdeh{KZyBTATHJQQKoUaw{${{(%P#cb%3yFUSt{x4-P!CyLB;Gf% z3-u>~F^-BpaT!<5$)*@L!T=KXARJ0P5#rV(o?00>OZbq#!}vX=gXv3IEo+kTiAGEN zU!5|;r;tcK*+CXa=w~L8a!B$4JjVjv8EKz>reB$HXD1-#B*2gQTzGcI%R}p{zM;8DESi*fU`&QKT;qQh^rSX@2QS892g+d ztu~P`__l2%;zhZ_bmCEB_CHwwJ_l1Hzg$$1O47(YgI0?-aD^H)Ki;>l?WG2Sh!C6g zr@5%U#xH4^e!T8ZY{b0%C{%OX^MD_GN?)n>LVuw(PI{J{pqTJg0T0pTUL9v_p+w+C zX9vja^4i9RFFS;x;T-caRL1f6VsflQK3hzpQ`Uudl!D=(8p2+L)(K9yw+YOVC;>=A zOps`Fvqa9hTPErm`bX1OSjv8|bbZ!He{Q%C+n_uo3Rg@uzo@O42yl3SL}3asScFy0 z@$b=_yXu}Fqxwqih{a-06>@{S#oZYGc=**oeX3w!tR<}pkKj`vv6=0M9Zx_+S_|rL z+F9Bk+@oi(cIR~smkosq5BSHnP z%r8aCdx5fJTewxni`nJm@T}x8@#yE6aQ|hq!TxtP`xgE*uB`l5c>*M@fqLI@h~|mONmFW*q>SOBU)9fh)D$1?CfCbZFO|$c8MCx^h#|U7 zZ(ti}C%tSx$3S-=f#=sLd_Gg8&m z4UHc=Zog@Nug$oua4yPk2zYtS{>+r_*z($YE8Gc9pvW9MB|ZgYoM6sX31h zb_K3hyOYH+qRv8i_=7$>>;l5VtV~iECBpWJ`NWkZko8r_CZgeriCxI|U39@UT2PMU z1UPt0NmZl>xp?h?Iyrv!#FfOj0d>hsD~l`%%v;3?tR!nKHv1@44RFYI=HHNDYd!E&9 z{}yna9(t$Z_oU*w*>m@N^lwmvqJ>|fM~~{u^XxtMo8|Su{TgWdm{@NPkLH(Y-^b=oyJx#9l2W`LHn|Y>qhZae3z=) z=qUJemavkr2ne;DY!e+k&ToShlA9)2-=ui)V*P{aVU&NBUm*KHU}DR=WA16nK9dEO;=q)jhJMdpNS6x{P zUyF;HrM4H1P)5loqI}w=;-~uAyuY7n50Vwyk7U_RLxk!U`1!ot{NB&;%8e9~62;q@ zARpVE__O22IttF^in=4<7YmK3Q!%xPbr}RqU{C?9Ybg{z8Df$qUMd-swPky@k z=$JM=N;=oyAF3)s&`h;&IK>>K@+b+LzXe&kjcQ+H6U&NsF%5CS%}nbzTO_;3`v`JIzQpK$z9`%P& z8)1PZifL+C`5X1&>q92F%$03Wkos#!X#KJIh-81)=|OSHAMVUkqav&3L(wK!)dihjAK!HGJp|@tC>~F@}$EDRn=#Gb? zFpw9Ge^jPvn-R+TCvxY9xQ$vk5sg4v=B)dNNRZ3e0-BO940`DTdZNEM=927=8}FjkI|u-tywc2oQC(RQ+`2@ zLfH+ODohY>F+o>s?DDQD{T(auEwePcDcUsTYSCG+co67nJk z6YV6FB%rL-mf}pz)~}`Z7BCwMq72O5f|U;1{q3X)7Dm47svRx)z9NavNJd9_Z zXOD6O8YU(x+6r_pv?65_{q5hIY`lE67z=L<{G#xrFRN#vSJk};w}z{E_|4Vp@vb-( zgxPly=AKJQ7(S;{YODLCmiciL<1;_4G)6tfa?!u|VI{PGo%-hZKuHQqAujk>5Q`xi z>W41Tifl}dsQPGC1ISilD1ni8^Nh++yAjM}?F-rX=A%J{!AN19aVBP3v@wZWMuB{h zP=uL@+|oZZW_>4=l>Omk*xB>U8guDaONLEfFo??;^1wv#9Z_P5M(ZeLpJF^n2*io* z$U#B9XkwJ%KM9A&gZ{MHa!ySx11~0~gC0uP5K-EE)`td^U@QbV%*5C-GBM)ZqgCiR zy>0^9zA&qt$}rXH&9{-8^a7~DK&oIoJf*r7MVxc(;%?Iy6DcVv%P^3yB6WtNo;=VC z)=|zZGmsU1ExPYm)Fts)Dw!PW49!~$j>kyM>kheq&-S#cxsS%EgCjyDj`-9^IU+TD zLy8FIvdZL8ovcafiKLXF@D4?Nsvkq~S)wH&lkR)Txb9~6x1!_e8dO14Hx0QfDC#<8 z(@uQ)tzz={F6?p9Ce}1~MEwA2Zz9i1tr4kQCh1Kpx-IYEi1As?ZNt=kPj%`HZB;il=PPb$OR znN}Jlexxpb7tRC|M0dFtVpM$@*2EL%cIXx?r|^NEslL|lV|Wyq^@v% zbwYl(;&bPwt4zGQW%XruELK*#t@{exeEKohc(Eq3E{vK^2 z_g)(GpR*=8IfLI#&GtHnC2RZ9g<_b+Z_2wGw{Zq^?3#1_2VZX)lt&jV>f*sAxD(uh zyE_E8;O_43?(Xg$+zIY3A-FpPC%E4s-`;iZtvYoJ{>(eeW@b&V?w)6LOK>G|K@>ya zyFZ3;5!SI9>`jw6n=ij%J`bD3{;>X$`#Rk)5*UGH|0TG`k*73w%_M`pwii`S6uc1I zBy(vm+7$$p`o+{MMKI)RGgtFP6tld<_V11nGNR3$_M%)PyIVda*4&W5L$y^1$qV_XKuE@U%B>Ubozc820I`cUG!tN=r zef3Slf(5^JOYu2_V_$SHw*C4EmFqfDI43jgmt zJ*(iizt;?A9bN`^uWW~CaIk`z@;AF*LUakc=$&$@bNBC$H&mbJZhzIi`X__?uQs>r zyT{9b;#yghfkNfURqVl1A27djcPWwL+bs>0U>VFkdY|G>KhV9xx<8Z`9Gl}+nE&XL zU*9fm)Mq#iNlhMAR6|tAaC^ibq!Z*zUge7xW@D{F=Yl#aZZlxGcD>H7XA4zi`$|DB z2~OYLy+St9FPChMxidqE!pc^~YFcqC`O4cGuzu~XZoZ~?-1ApPWYBDDpS`{v;t|bI zbDkj7YK8jwD7CT!?4a+D^ThQb6s6;?l1cI7XAZa8yx&>4IIIc^`lKf52Z*G{c zWpBc+SO&tsz^$`ad_EOL2G8{{;6@NIJkVacine?3zQGGyQF`QAQ#QiQ7w#f3Ivs%q z_pV+mx8#01vggnbLl8x3%nx6h>(jR7|rQ4z`zDA*<{clru{Ln|tT6B_7bQKs< zHA8%%FxXs)9UGSuOofUvFsnN6ikTAY=-Fa=JQHN_^s)F|f}mb)3FTd3AObB)@vD?# zW*<)G0;^{IKllCCeiofAsPIGEZMaL z{nw*1d^rfzcf_C8p16;9ss!$a*p}hOh@8x6zsylJtSEaST<1dy;2cK&Na-@}TxZ!9 zuWd2S1+>^ubvG`_C$!rL|AO4OM3&roR3V;@u1l?}Bpc4e<}zC_5QdRGuSXEY+;jVV z|7GX%6#wR9=6kE%`0igdi?3HxUplX^Dknn{@YalRBj_%tw)J%-2Y5EQa<27g)r1ha zc>FaG@O!n{osI(Vj^GSdasi!+Yx=A0>3&^GQwkvNn4Pe2KL$A3tKF1;RJ6ohdePst z^ZDwrxz65lqzZH%d;({(8mYTlYK;CXTN1F=|GScEgm#k+GaDsCCB{~;N6BLU5UYA& znDxnX#6(c=bwlAlXmV}|0zw?yp`2?Eb2p$}wMYl9Y4EM+>-xaCP9pfbo|{t4XIv4Z z=g&W5*RQ$1L9OAlCCOeDVZ!JKU2I=Ev3&n_#EHzhl{wiZe{gY5iET&ovp-~(%7ga{ ztv~O!H2<0nw1uA)bnyC00;upk5UF7hRl?7X<7Liep5!}w7*4%+gYbRuc}{nGp;1p& zM0;<@Y}<~G+~>Z}efL3xIXeRCog7W=*tO@SzXmyI)N_1zt+^yBB#T&Y`-6f5J!0AOJj9}dv=szY0)w&vt+pAIR&cf4oL z%czo4%VWuL?NuzB&A@JYhR0v2BdpMep$2?j3b)me?I}KWjbqK!<-2viyn*|KHodOP zo98jQK-Qi#JQRFL-vYrDhK*3aHZVk|6BMmdE-c1E}rDwC%knK?_TjG z*A%P`8IB?kd7q-T;V1F0jN=HAV`myE{M#*P`d))eMQ;(n981JV)QVkOGOnW_&!%*u zMx%;FIGdL*C@lQABAXZ%9%oqj&GwDDk*i|g?nVxqx<&gMjN&@|zXz$dIT>!pA?wjC z-ENx3yhWWjV|AkzFRt|6cE^x~6Vr0ixn6H~ha}a}SiUwdfWbhPn=7;8sp&Iu9$`u3 zZ$HrFd&*v$Z`OO#kt3=?;4TP}eb9J3{@3u%OCop>_5}zq`zru{>yu3!80vT3B*KRF z1JpFhtbl{fo{$2_nhT=wSRVEOMUE=KcOc|5k#iwwK@Ofidbk!I#elRj zt{fl@XEkzIAL>IU7FXkz^GE;>w9qTyhO5{gJ_W2w|8jqOSi{|qu_$%y-qLng^0aj1 zCFT9LFckKg=sK&iHmr&I&V%rTU`44B_c_hM`DVVQx%+mq!`27?=|`5AM$rj5yLDYO zkpU!)7=r=ct{-jv%O#Cjr`ddjU0-TFO8~SpU-BGE6hq36+YbMBB5A_xH#s7~e(uve zoaTP92gp4d9{v%F_LSKe-b+ZU#eq+K^niyYa!WW3fqAZZ5v0{T)S4A#RlP1ArJLa# zOdy5ON4-ilWd)@xv{)CpP8&QIX9RlJJVtkbf-r$4^9GyLY<7)A-!;)fvst{>9^b5mk8<%b|X-_qp)1{@#6MVfj`we z9wD0CN+tMI&Af3tBT+ z`)Ly=K1&vaagFqn;4#+XM0^<`G9+hisdvWef4N#zkyV2=2=iBGnB20U4Cx_6?ETz| zh`llfV=767f{NbXtB#j$V#bOl9Jf6^A#A1HS9|hc`m&genqops_k}z{{ZqQjz|2Qg z{y<@7_4?$K{*lW?MOhA1Ng`OpK9s<{Q$T;?P&){i+cyBeOuG{^ePCOgsfw4Pg*D zDNL#>{WQ`OMq7W(NTbHTkQe6m7%k6zR1gpN)dgBo9CushXs`bZJ4UV%vn1}#8Z7A3XSXHx$)V8;v-mY>gi<`}J8@I53kpI5wWs7AL5fHsRFqxYBWx1w#O4w7gmzTV&g7E@+4 zOJXda3a>ZUpV4DyuP4xRQ{_k1dmKlgVJi~yi2Y1TV822v-^x$}nUOHLSEb9)A3AmtJS-B#!w@a3;;rG9~Fm7QBDo?NW ze@C9W>y`tMu(e+eG?k_2O7=6gV6|TAUkJ?caZRF4wmtg*x0>TyRv{Dr>U!h#WAEX! z`R4o6X$|#DWne?)xjMGO^)ifUgU;xa)PgRcS4cujnVl9V&1sLp^HOe) zL8&boSawUd9J7eR!hC^yBS|}ldbxy`jx5Sv|6euX6QG{!4DD8?`_Wb;+ovy*yBl#o ziM2(ASF0-ViTvD;{(iU?4q_((bE80M{i974T8p?%vem06M8O8V4fboNtBK4pX_*We zG*#vhW#K>6fJde)^G>_BHJ~R+0Fd29%ioSqs1dqP8Dr58?Ukef;R39zlsgnY4#T{; zFFb#%9h}LTog*my+WzuvKoGi=B8Z~U_hH*XvST5HIz>?S7&;cauQi6t@tum{MiBdW zpxiU>wI>`7&HtLv!5LP8v9F?lSL^t42(x5 z2SomI)?i!&AZMLR-?Lw@?=08Kf7dE1 z3@Ddy?czyQ!jt`uUdt))Jb#i^kbTrxFiCi%%6-};6cnK@_h`Q5)e15uQa;$fLnArZ z#D}pIfF%@wvI-R7)y#O}ox%*)4v|)GSj#aO$m-oE0i2l9RJlHWzECKu67#B#u>8VPJq4f^oY(8drHxXMf?f7KEKm-$moKv7mT z#$DX^6m1~rt&v3di?5`Uzc!^zaD_=rIMgaeH&h#(8V4k%w-X97uMz`A_dOV9XRazM zu{3Lg0*Qk3;N8HsnMnJ6%tFGN!PE$_-XLaCzi+A%;5L76226-grub-ML4f&S2#f4aVX`mU@VU;RgE#B5^SSYy6w|=NV*g#<-nn0Xrg8HpaM2AU=Um2;4 zE(J~3;pd#eEYtQWL^o~sXZz7qTOaquC!5mTGoxpzZ;aj>`|D)1ZT;C!v&^HFd3|s- znC=PzA^`&>O;#x;bMi_e3XFpk9QIke!dS$jI06FvPu_#7R|C3-KdTj;hDjdan}Ll; zpo&=V!`l>;Av?{)!uY*Vc!FSwJ#aRH59}) zyUtmdzCwyoMXgOB-^I)7@<-wgU?|A#*CM~P#F>1K6YGBVx`n!mY~4V}@FXR;-EMGQ z{u%V|%@zWS2u{B}o@*hJtH+uvR+^sx&H1FiT9dEQiP9O%(Kza;j&hTgf0|W}?8rh8Gav#F z3?j!33iULy2H%BqPit=ny*f$JBelKr$T&C|TkaZ#ZPqQdoykZ=EgU5h1xWN9ea~8L zoR}@`K-V_OV)+;?CcvB(WHb_jyM-{t0EO3slhean%;TQs&kDUwkR$+uCV&Y4Nf#O_ zR+b$RAvh0vIuU|mH#2%2!Jz|?e#y7(^Kk#m0x%|V*)3-1$kqN_%!x(@f^@epj0CBz z3u^_mLZpIqIJUB7S?MMOj^6gTQMkN|nqk<@ChqCgd$;L_x*|?tVmm^HDpp?nEyBF7 zO!{k?!D`@*nIGk;k`zXTqO>Ix!`@%Bohf6-M9>EP)0GFV2Q{D<^OWclT^~ASaQh5g zr2r#|8Oa(XwwgcIz!uns9YXyVY==MRA5Rg31rG4{K~a2qHhErIuN}XdYCH0}8cU-o zMl1$I=$*&x_;F5hdf$>6i)DwUw<>uOplN$ z*GmlMjCJki6jUiu)VQ}3ucm;}uESYdZz3Qg^PcgvaocB-U#3HhK=B;~wwZQkH)U_7ja^^_Fs& z6evMk1+HZ`dSwr|Ru9Yo0~%Dbc7MVqSwgI(V=F>8@Kl1pM!v5WJmp$gM_j18?|HPM zwQ`_yg-ZTVx&s z9^2$VYTLIzCV}q4rDv`XfdLU>H-)*77@dC*=9F~B*Do;morb;30zE)H0tY`1#Jiu> z=6^&#B*3 zUmyUlb4^3pbLURzIWjNCEij*M!l`EFe*F1XLlH876wSaYo3P3jCZdKUHq$&gi#w6& zt|b^4Z;XqHAfMlngwdndl=Q=wD9o(3L};d@jXjOTZDK2gzt%(q0lr#(1;+wIo>7f8 z`0`y3OQZnmq!%5`ADFBdJk?lhm*VH9DDWy9iZ&szO>?`xq+vZ8f)2I}p~JprqiGpz z;k1@AD+gXm$jxai^BQc}zcP*U-bcn@k&v{s>>PxMd#4aBEvc#FsMbi)V6mBkxLtuT z={p9naQ_0OKX+@2sII+Jhv3>_Lj715?1FsN$CB{5f2F56caJ*}@<$E+9C6mFKe-MI zHIBvt7mu*Lfd8axs>YZglm%-yI=K5rs6Q>M7`2X2d7;RtcDr#Cr@8iL`c@xJ>aE4J z^iyT!xx3rm&sH=JPIO7qK^GSwZ2yIdGJFcvO@lloF4NvZHur0dE}@DREfuX3HKiQ@ z`M17%-Zt!P-4fIZOi%o8_{%{r(-ChUU|H$75*-ly?MRu`kbmCI$n|$$|K^ zdlH$A&&jFPF_KJ^l%l8(%rbbqu=GB6O+%98WENINGh_os14cSJH&4eioaJRwio{GQ z$CljB7M$gT5OQ11E8kv;7=p((Pl|K|8Yn0Nzul3o#^7?g=?*-?8cN!i8OhVBQdN(XOs#;J!IHbkOTKbvYPIo0kh4@8{`s=D_2*txD(T;^IzH(|lrO zO-IC0ro#9TYk)x5*x+2OMwp(ulaWQ7n!GhTKlfR1kky6h)XQ7p^d@8J&D%V45kyLg z3jY?Fy)F}8VhU=6+4;i$-s$-prkt(fQcal0zDQ1G5wDgV<$7iqt8md)>|SY={omk??|XE z;A5`7us<9lzWz>+4{r?U)xq`P!e{96l0eB@G3} zrSX%8NcuO@cr+=}K{k!&Hb4vk{y*T7b_R-ehdV>y+sKklpdgBFPh5Sk4@Q=jjMwW$ z+3+xWao6n%-Ixbl#(k84dzn1%t-8pgy7=<+v_VE@C@F;xM2LsSb?Kiv|5;^y>j(NB z1LIbMPe*mJy<)8S=gQp>LOU*d$nBr&ncjS-i8LDGU%N`BIvmax1?QSZT#(7X3e_7z z{`~$Xp?9J(F$n|ng(Hm-$}Npfmz*>G_1XQ>F9U~wZ?3x>(GGo~Paisv>=Ns9^r4Rz zlvQ5MuK_TIj31V2+}ZswLDt6MoUy_Z@Z|1Mpc(YcZ0TFC6W%?{tV=vB%_d^H#*-Q) zgydhMs-zfvr6me};bkJ_r(WD87U3J7F4Td3)qOX! zEdj7`8e{ijdMaC*Ma&q8iL2iBIXw!9j54K{;|_(23NEL0-n+Sl>-I^K2pq$rT7A)2 zD+GZkh;_`A0V!`V4i%H;{589KayRp92T935Zd5jHmKpq{VOvK60#lHsdZ8QCH9V5E z8ROBw;4y*kJMMLt{y2A-)aA6^q0p^Gh(~zW#2CUzP^EUE6V&wtxU|MwO?IoA`ug+p z<~y712D@f+2MI>%!?Wq>TAN(~La+N_=jy;D(f9qCY_Lkf@p>3&c}2Bxg-y|P`rxmz2r-Z%!aneK>2h5^ z2MQ!5P5U0gxC0>_Q&SNA|aBECp$Ek3{-2gqev`Qo2~tIX^=b_EQet zc>Ee%iUJVh!b_gf&9`ba1?fz;YpGL&8DIi=y3Fp68;TY{i4PaxvY*Q4=Cm3P|7%r! znG%q3zR#R<4a8Q;CZ%f$9^|Zb-+MP;PT2d z#l(nSbTkakHU7Dt-t@W5+sw2bf`lx_Au9lJJy#nZ?smT^i!~5IfzB9?oo=ZAS^CUSDo4XGaT6O8f&PiOV}|>x4GYr=AFTj)N7; zW`Dp*v8b4sg~&a2hu#1uGqhMCP4=<0)y+x6`uk8v$#R3s-HtmH4<{h#f4$xR8@;7N zT3SQL>+-Ui=I(JsJGbc+7IVSe0+TPFzP==i@d$E4A{G7N zZfr7fL^MK53KyFfrq?#zUO%=SyM;(y(0W{+N+ubWSfBXVx*B-XPZo>Gbt|u`wiC%N zps6jJfiT6$eJ_{L_&h9y5IdUmEeA253GoP&!4Mp&brwVKR4d)ei=B+vXY8p~T%cnO zCSP`an2KAYgg`1nAW9mQC|V{Ct@H0SaD8iUcJ9^1m8a?-mR;@7>CC2U(O3!=mR}F2 zH}Nr2KH7(GOU}a6(&78N8_Ta4Majm-n!KH6lHX@Nhso^v@D`Z6s7m`!c=zq`?>Z> z7M|^3*lfFN=MGuFOIfw@)9vn&LJajd&)KB*BlzhW! zFDQf*$QVY-laH+-^%oKKY*gtA10wb6!I;FFz5FHi1EGaTjTR-F-Z4*hR!oH6(n45* zVrPe5szUeW2QVonpV5W)Oup+-8V>TOxj^I=N}?QfgS|ej12F&(m+D3dy>IM=gw)~` zo;mq9Sy`Mm(f8kyB$*2f42VhCe_RUXTMb6|N@uzZ3?CkWpS`Xj#q=>gK!5HjyM}s1 zu5jrWgH=E-AA-||lm;i<|MSu<$OJ4|kZ>+BSOP z*CvLdE7kjVON&Ptm<{`(aB!fZ<$=6_NMg|j3$#!76rAa*I@{qPu!asSLdenq2*}Xy zOc`bnmwc6wgLIZb$wUDxtUi!Qy@IXay_a8aW|yk5qp5(*9J7*aMV}uqcg=0YYUA%0 zYwzj;*qCwHYwJN3K+LIM_|+IA>eca1r?ZU$bhlS2@XdxQ6u}=Oubu$J zW$0eL0b?-Vd|@OcnI#NbLTUfKE8v(Owe|UeXvlFTeeb)3G-A=znXD&z?{BUNiGe^W zHK7072JE697&Vx3y$<(4lOO&k|#92|3yH={P;1xdqdD3%zpmd$sR7_w)Vq*?POr z`P!?lFFtu9ul73Zm!Gep2)MQN2EAZ+=VU}ZY60bCdJD8WJ4sV}_;^cofk6-mFD;u) zj^qZ6h2qzX-JfwHMEc@M@L9V*pZD9iAV8fKte<*Eg8(;kP|pOP^!%$4?CT%-u^4si4Ro^ibqf zhM!U0KHrYmB_cRy{SOGj5O7sA)Yo-u_3k%1Yap>|a%rfcrZb!w=+3{U3;A+!B%Lo^ zi3th0X{{NczpdI9Gn*28j+7FMrF%Zn?S@Bq6(gqNn^oYq1))&`@$7ZGhC*k6+et!d z#n<~pYPQoIoK6(->rxdO62^()L$Gwb{6&dBvX_*+tW^Ir97V;LaK25FwVy23Is$>%pur1^)m1At8fSglaUjj-5Z@q56r~9=o~&> z9{Mb;f&quAs9r7-5{io4Qy_}-FwI|TyXyQnBR`c*LL23HI5M#}OgNwUzjU@3YBb?# zkl@%JfkdF2%*!fl%k+J(n}pvLQ851x7T$D2M~*GA4bKC& z8?o5q`^M(I`o!r(csPWb($jWjB>AWyhQtD*Czg)LGH{Uv%9RY%2C^VQXi<_N~S?Q_JgI_L$a|`Oi|LOptUhfO# zG*XZ-2<_~EZ?zsST(BcD)FBb-+(9$}WjYFpkG%u+O4sXGxoK2DM;My*x;;KhO3GW& zC}xV^9YT-7b|m}yRX#ga5-BsYC8v;sTNg-5xV*QwH5l2Fn!=^k&Zafhl0gUwHU*H= z)O6YfWzdeV*IhiKh9no=a#ploVeceqXqv6IZ_E+AwD24c%GhRS{6qqN&{!^P9h5jQ zR$}Lb-d^HyP}9@ghG1I-8Rxn6ZxeKYqq1H_Zu@DF5L1SDslmBN3_pNnOkclHFX-;H z5#vop=eMCW+%IE|*JD6htE{c|ahIl-O%2z%#bg{niF}UG9@XvFVE>y$7Xp*P`OfoW z!SN4g1Rf*17(aW))ti_>YQ9_Iz%ha5#`cW}g4deCLD{WiAoMrJ>c>j;NKGBNZY*+S zmR$b#mx}Kv^x7WPWh1}VuwK`e%>$Jc5Z+1mfw!0l7s8eGUsqw9d(36L@X97}S^OZh^buOAvcvBM zM$^(7MMSKgw?nB~Y>~X4&!%N$j4g7{nT(k9UGBz9<+}4YkRnA86wME6x)Hx0nodZ# zIw&HT$jFociZrj0#Gn*C{wnY!AMGsg34fO=sfv4Woh$+xW>WI@{@}r+WIUkL7Lghl zuv|Vqen8Zp>um6;s90FHPk#K}`Mh%KULgZJCy}Gso56&X@l?3Yxv7@ z3iHjH-B9_#OXfE-QGjzCm`onehqwtFESAf;p{BxSHXcI)bag-n_Pw3QEtRDbMdWVJ z{PHCn2&z|hje@c|PXeoFvBF|J_G>(Kn2jAyEZTy1*Ic{2s5m}NLKbmK^SM2%6gO=VWk_e%t$vE2jTW%qWiXlHTckH>PrpBUStxbQh z<7d7xQEQb`H5yGDjk`W6qd|9f{Br4kh4u6-Y7O{H1&Q|r+8CKCUH1OehDyl1P*+h2 z8tEY^5h0`flNB>F-oe4Li#15G5fO}xt!m%I+0bZyv;#>zBe>oV`QOWo1=!d#2L?JU zZQrlc7*p>raw9ubMTxz_doT2#A$5>H>2Rt&eusD(b zu7eC=Gm+;mn+An}8Bq={LFO zvo4)3!O5QTe*^sX4MuUhzyDr3$4mOz4-Hxa4<9Zvl8i(=W&9tR?MkOp)C^?t7KTX7 zoeqLIT`m-nEIwTu9ZSY}fWu7V`d*si?dA3mw_`vqZFV^2$E?<;5Gb+>Yx+eieIh8h zRuGjRv1_qvzi8RzKs~KD%d`cWkA|=-g;qlCA6-6N~*j`y?Np zx5TCaDe4N#?*BsEYW#=oOxv`cNzY0dqf^0^YkB_N3^CA3)>))Usk^y6bSDtXp=;aV;rgr>6LRIAtWrgU2wY$|MCPj?+}w)?vV2NPh< zUQZD*^D*Ev*+)WQ@_6`(g0pKCQGG$3GTATvL*?PEuf>p(CT8;A%PaAgmdw};f&@7u zY}Rq`Fk2q_ATdQ}d-GW+DfdU>Q|BMU!m3Ebk8g0#&V1cpmMQ`N&$8)zAWvD?AQ}c3 z&wW;oLuTf3EvTFv8F*njb|%~QnT&uR_4~4^k&&L|56kDNDUjgc2={oY9vD9u=Zd%zf~QX0}v{2_KFJpe?<++(B6|% z__3hBF>g%vY^s<}PH92F+IwVRs%rtC0|0vZ&auG{f#!;*+(?hb(&)EChvSES%kP;A z?`!3JZh9CA5-ba~FZ$N`1tS#=g9~)}&+7E#WB{OEd3fX~voK@;O6^MH+A22%5s^&r z`)PwKGt-MTP!p&spr8L60Ll$0Ap|x*lv$9RF&hEqC5R2=ydhsG?7Zs^e`b(iIl_Hl z8scVVR8;u)^!T>`Q1+~W!^=bD)s-y(bO#Hi=Wcd~Aa!@y>XzZ;-X8z(e7-6F4KUf@ zH2$kC*8eftxE2;5Q1CP2_M(v2hu7<_l0`tqSvC~ZLjTQ{*sI<4JDR=i(h5mN#Q8>a z*0Ke0mOy>>j!Nm2K8LW`f$^FbXPCdk^Ub`7%koNr2n+)Blj!g{)8`jSO`P&S!}mWH zhi7Q~P0`7}mrB8Bzd4MQgrgAvjQZ(+z-v>0CuWf81Rpm4pOhu4dn9^ zSXlvCg{}NRJ#HOE2e%%tU42W}auE@WGughzhKDO2-k-tYZw~sTgyvRIua?@6lvLrw z>wKu2gh_{=@bpjz%y#x&Zvn*HN#WK>@xnjh&w6`xbv3)5e*Otddbp(Re@}b*p8UEBapSrX zc%~G)CH%STnqW2aVg*pz^o`n7)#c{eh03n`Qi_Ho3JMa%z}h_)5d=|L1p}k7kBYk7 zsW}~{_#G0M;${DF*%$wJE}L8YM<0&Wo@LT;wVBNTZ3GroI0xR_3X+)DIUY< zX|Aw@eb*~1ulo-lS7l+#5EUJiDE?@C>{v%gD6Q#sJuVJtpOMk%{`~PtG^v7GvuC0C zxV$f;Ie)!)@H>f!zp^_{a{!Qr37M4-#pQ&Xx5XBtk?Pbxq5Q|mSKY$7dG(`>7-{mC zJI(HzZXX#&hcFQYz_m}T0L)xRNuqb+)XHiN+caDIlSy4gm>-`o7U+9qIKLc0ZkZgaZb@8_o_Tw7<1IvSoD1BBX@NeJR=}FvL^@AUHWv*E%^~ayEfk`LI)Yj zQ_tf$`Wi}P`5~m-Wz6p`1~=O6#N|E zrVk4|@w|WeKVW#yjidxL9MY!a!zIv;kIg@b z8{c%n8hsrhCuT}i7%ZrN+vSIvT#~d>qB-DgH9eHVq>ECLhN_JD7$I!Bw7mS*&W=NV zqcSc1mlbOJMY_`^k`(kV_Uau#4Vo zXlH3~;CeK)@@k5xl{EX>i`?HIJ$Pom$Gtrdq~*FKtD>h`s9zV#!MYCc!|bEsX5R?%qUc*Z9u zPEnALlj8Tc1MrhOZuecEpPLf!)>BeDoE|l-n+pGm>FYZ@KBiq;pU&aumz`=XF=u4_ z!k)UMCYzO4iyZHu?)i^wW>pprkD5EI4&XXIv3J@lPF3r`qNgt|#4!U!QiDqDfx$`Q zujs^)Y%H;$%)I?6RT8ry52QEZ;HY*}HWZSgBdDY0?ky6^5*f>AQWXv-*8s|rX5O{} z1wA~t6>mPj>quu|4x`6fFqnT?3|unKN)yRPCEoX0&_N*M(hz1%8ku}rBl}JClRZYX z*Uo$^TAN-0AZ&5*A3!%zYgTTONO@gdEro`^ zr08EguXZ@-Yj!2)jbw;04YncB0)YGS%{<;rrdX8t_GenLAPYyIR4rCV62S?us-mK9 zcwLVxm6C6?>fhh3>Xub<1A_-L^3{8=CSmGu7$-eGj-vja=J)j+2(#QB&V4@q!M=Ch z@U7kLk+J;;jlciEAn)taKPG!omx3m;gC`(>!&~Fk`H|6+uc*%e^6ekXjd%&pF5w?e zT{9ZHtUZcE$|@^({a>Z!_+VWE8^NM1mEUU~6XzLnderu?uP?Yu@{Qpef+>XVHW0;j z8i3Ov=p}7^o|T^g_^_Uz>kEz>fzk2y6jMpt-NDn6mzVVW_?4Ew!6jHgK8@W6PA-(~ zR~)1}GK9s4E(SE*Wxc9tIIN?<v*Hdfvy*{^+Goy-2=+6OXL*5P4# zgRo*zdTSg&?&p^mN=kVPN}jA@sqnCwp3)K~gP=MHRKjVB+_)qW4=xxOoK1sI^R@VF zee`yqARn;y{;&T7Ym1>y5- zG-*$JQ6v7xdW&I6F%9%n#6kSYGv7G!PjJ87O6T)FCYR=TUU%(MQMrdgs)nf6!OxCE zE-?_rVXy94f0Y&+f_L`W= zbOQYwzB0rBn&~okG{1@#d&t?BsWBOKDoK%;oH``1frDuhK((R5?@SNAG}GxXIlnN! zjRUB+iKLX|fPwQFXWw^t>-`|+e29WAB0R>{ z#xTJGeR8W{{jHj+EIYZxD0xaxz+Go)VO3wR0|T?HtHU?j12ExvMItYg?2fOmNcX_E z;foDbbX(-KvMgdXjf89&6LLb|N(VpxQi_v>tKLspoP}c->y{G$&1{XUpkTEU6ba|! z!{br(de*cBr}!XY?RiaF86wxK9ql_`28TujW}wH3CV+AC>#vHGMZ?vk$P*)B6Q$+d z-X52VZ%?Ud604_!1APsSy+4>032{W446SQ^Pi&>Q2CJdER5N|LBHx?DElB@0>50m9 zZ)ujj>i&I~#YgvF1In=2zP`VoX1go@Hobe-C8gC@U{lA7Y^0RR)2pM)W2l<{+f-g4 zb~3xOQMVGYaLua}Ypp%gOt8va>WtlzTlT&5TtT6{-^{u@Pp^q7T8M~JWd>A)O%z(H z?;NS;pLK`dv-UtvlcSypzQii&Y`G+~1;Z`+yxtbnGCYpNml9z4PRYiBjb641 z>M(s)0Z@K3z4xht%{%|eTI8+}1}qq{T`|m}s4DB%x$^ewzb{Hk?@Ppd&kt)jY^R~j zrebSdub~)sSG!2@Gf z(!%ES$`zqaM%*q$$PDiF1c}WGpDbq1I9N?_Bt5@aRFh@G;4GC+7dbB}P>5(3UP}Ve zxf?O5MOHNG@h8yo(kHrbP&o`$L*=7wOlyF!-YYU1H?=8N!_p8qfHGtxO7(?vQq+{gjvrSn<8h|kE^wbGivAsEziN4t@X zE34*JRB+a{3qP8T91=V6eK8Eu+OVBSD^yXD2}P7)SnF<9ywy@I#T>4xdfbVWwG#d{ z*yae2Ct*UKN)M1NyF=+^lz!Phc(y^Y+zr6?IN@#LAYtDlIB{tOv^+%abq*VuT}-bv zcWcU@9K$pIS`(x%Os_S+T=B%E718phWa(ox+5Zj>XD@{mh1YIW+ zxljUgEa-GQ?CM^Q-+hj$Mbd_a^6W8i5ET^)rpxYmZpy|6tv)q@`P zDZfj5HOHX0-Rf13Q$i0W%WsmQ#1IbQP?}P80kvk~u+mzN@%8+Pf|#%yB87rPeKJ8I z3kU;jh`&E^$sDAk@6BWJ`cbHEE4%m6hm@8=z3-STimP{R67PiakS+`uZcvDhdN-d= z)q7Uc8CA)q_Pfa5;WHU2t(j<_xY}_{K0c2*Ij%l$?r~y;Exa?$rD;B{uc!(N+fTc(HCpW$3|yo^j8^nwofwc<<4WC%}j`rpFJFN`yf?|Y&fA8-{7Y59ik!kV= z&=>YR@CIje zQA%at1!tk6`e<#tZ|l$RZhW4HfLvW47njSxPca5{1-lVoS^*-jm$X6O1M20|5_W;u#2cjT<+!- zYvy+4`=(-9$WToYmFzqoL9BeVvdO|oWfqZ<;+>ojiQf4^s9`%X z(+GQ}Bc@35o8#RjrL#i?pO;&Qd|8U5vA+q=VOADVy7W)qchYDv2G?_wv!&{=uqdzV zT*t`z??`q5{X`JuZ#V6C#Gj0630W9g+@Vw;((u`T5*aH~cW%gt4}WTIMp#}pprMIY ztDK3MIL12PILnt0tIK^_z52UXKXzSs(ZV z6q`S86cmh`FisXYBxQ!_T_dC`G!!GeKP6>=kwgG>8e~I$%OE!Q-!0*;^x+bRwHRhD z>~D-43PlL}Sy;hX!R-oD#;vBPl>%NlU(7{rizI{`XunM3+?YoZ61h&&S27uBdg2kDkotbi`Sw_637xEt>DJp6UMdR4-V_>+L13 zv9TfuqBD&whe$Ro1kuQHDC$e^gcFzB|`G+Ev=xwr>%SRs0mH zL1J4|UPu4+w$*d7uy&?2FRvx>x3}+mM^BGdd>I`x^UL4;OAK9`s670Ff?xpwBT_{w zM#hJSxC|hf4iM)#Ra_L3jjgp+?}uZ9t~W0_df9wyD>AZx0EoW6h`8f5ITh82k&#he zof>)hS2H4fqd2f&WQ2TV=(jCc1o?7De_TDdYN8-X`GC)Raj;#;;EG{xJEQsO$a&$U z+7YxNXoRpz;ax&zbpGxSs#_MqfpE#qTv;b|RXyLMXM)E-l0Yf@n)9&Gpi0tz?I11N3ULD*-{LznsTgeDegmWLQa(gOM;+;Nkq*a zlhIW)i2F7gCh&VStDOh}OvcFQr!sY9__wPoDruSME(bCec6J8(>F$EQ`Js~D!Qxq! zL(av;RTbsdig_W-)G(>_TS>_%Y4XVtU@Uiz7y_gcU!c5*(5nUL z_5>l9{KgA2Rhx?P!REHWK#@W8krCLxKpMq?W&`P)h>R;MGrYWP!UrSxysKR=biT`P zX)5lht1J{&PE<87=upmui8Kjq?+WuZX{c#hZqAV+hg+<#kFTwdcXUX4dBaiDWY_3k z6v~I$u6tCMXJZmIX(~Hy?+A%N=<5ds0gt6d$IXL}mf*LFH7Cc`mR~l$>$%-CTU(ov z@t4%Z_+NkZ&Rj*vjQsHG1z=jXWgV~5n#YQvEbDsuXg*N=1fy=Z+x>O`0!mFC%7zIhI5}$C9X{3n4HJv)#~&UZk_c=4Cb8<^SR5WQ z1cw+G9AE+sMeA|fa{A|+lrDck`HGW6k)uOVb!};@^WgQ}seW^_ueLV1(>Exk+$lN>+ym!eZo5CqCKKn zsBEc&+dwzChlkIKj+IqLj#qLdeG&NS-4qE?Mxs|Tig^i9QFS3sQGW+aa3Nr?>up8= zT5An%bz1EBQ0e6Yla^jeL}YbxYVEtC^OQ>PpOf&3x=4IW+O zSU?sw&Q%cekKlQnrY}onETf~iSP&wZ5w7mW?wLeWqX+UCMs7htw6*K%&p+FUK=(g- zSc1C~t~Eb0W+SRf=3`*vdNdYQT;4I;IR;*MgJ{%3!Y&sCGO)8Q3$$*K29eb$!rE^m z&7ld}03+@03uAWmbW6*M%suz$NXhVU@rs|PV)FWUZYv#@KWdX`wFpRGi8dHQng3P+ zWJ-;XKeT6Jnysv?B`pEazHqMe#`9KTVGho@U+w#hL`C5cDJdWh3U6(d?)wzM1C_xy zVAN+Nwt!Tp&vQyAEfl6eICOS)ir-gNWo2lAqIz0~pH;SxPQR?}AhiIguYc)&JKumd zs-~c#VgLphdd&98^NF{Nr-pK<91OZsPYnisul02%(u7}#huH z=Xmi+P2KhWmg(Y#@y~Sb*m(KaaIsEqbw!1n#q{;>-#5Z!%D}3XkkFh29P#ehSP#5> zns->;S5DehS&6+QIWB+tVKx*Z#OniIvWx5*e$tTyiM4;)TQQ@MM@B@Q$@ z(_+zL#p9Q|xPJY>jaQvaE*27&Qxx*sBsR9F1YnGIcKHrMPH3ol?i7ps^uaFEoi^s6 z>70St+-TqN8gl8Tr=j=X!a0{N^EE(68_VGo?LU+b%w8zbU}PK5RCGcTgGH2zrM- z*ReOf#;~TJHpoFRtd8P44W$f41Hu7x*-vxNLZCf2)Q+61=Gz(*hr80Tm&`OwVa{SI zAu1tkM}$pD=xGsJ-O<yCG#IBYVK=4alkGqp$GPvu zj6V~*!6ws+rCLj_!BI$s*K)7VI4O3>tdRhM+e9QJW{eD5FBja1 z2)*%)SIcH^JCfX!7u{pym(rQ#%TGl6P9K^t*y-`dT zXV&{OS9`0PMOoL zdh}nk8e%=;QaZs+!9GZ`85f$;gzZCBo3V+08pXVEV!dyfH8E8jkjTeK7vMWNn#YAj zegt}S=fVCXsQ~ZYG?b*X!@XTpU0t?@MyjU%Utq~-teB`M9v*pMUVDhSg&G1!hY}-y zM&e`4qwR7H2{3&OGeSP^K_u3{nIiY|Q!XBw7#Iu|@lWQNWe+PGk4#yF^P!6@*)sbA>BiSZtC%!{5JZ^V-HfQZKa~wHBEmzTK+DIsG+5{` zm6d5eu?9ky0Drt`&d4BXcG_eAB4KG$x6yFAPRPZ3Hu(iTI2lbm5z zDkKNYvnfOIw`}4cdRfYaRrmWKd`EvVOrV!gQ}E$sio(2%jS=JgQdvLX{S#BBS5QbB zv0&qY%khJfkI%g~=x;>C0_l$nP4fc}-Np`&lVnpYXa`p&z)h$R)H`uRA0|oJ^yBZ| zh%D~zxvg~}h2JeJ5sff5kv}=k_DXnX_ft7CqeZ|x@#t!)THm1aK2k8s_Q_Z>TbhtP zT?5#8Tkk-G%VP89mt4?1eObA7O*l&X6>3sp%3r=-6_y9-c;j(;E)qK z|L)7IQ&twxl)gQ6YC=J{s;RADUf-2_Nq-@S)*~l^>5=$JFZ)T}pWELTntdpE@)oM^6u+g*y^3D0O)`+&tCRxE^9 zixrk0cYQ!VP*G7TR@*;FdK>>o#NqIFY~&Ft>SBqM2FpEhT#?C3)yTTBH@_x z9e4H)t+13<;wGNrn(_@(a8W&;eXUgCC!tysMx1CML&~-u(NNdVL^Z5JD>nsWrL>G3 ztXpyVUY1NH!Nt$<>|f=tkrPI|?$3(r>vNi&8=sF2+5x>%98jf&2CuayO4VX{O_h?; z*3(U);rV(BUS4%gfIB~RMWiI{b|~CIGT)X00z-Cb$xTC(VHV&~IZ{`l;ovO=UZ98j zfF2R%Fx1tN2nR|lul^qN^*i1aQR4>(*M7AheM*jt1JcO39_y^kTXj6g&KB}`XejyW zP$KtksXq|ybmgSM2e-qhV+~i~EZ{HAUr?t7)jn=NZ~C&Ut55U>rF-7alL9bbTvL;P zRFuw4W^XUY{aO0VPR7=6li`(m#Km&msh$cA#Lnld+}T2@Gyy(&P2X1m<-lv!iH?z| z%xf7Uk4T-5b^&qCNpwtSM~ad)iGjyjz%`N&)THTVecC~;Tm)Q2PG(Em`Y$n)LgaR+ zIJd|>9Ls$9dtcUvF&3Cj*8LLQ>Z4hNc5dJ%P7GYwPCxCtztaXhORjAlz)M;`#(Xk^XaJ^8S~gr}@v1UWh8yfw>MOIK6BS zq@(ByU7A%yF5c}-W#HI-1WTO(f~+KK!Z7y2Vx`9miyUr@VnJ1A$i@Q~_no@o)xuqw zZ}OrLZoG|nbBnd^Y!v7+GEAqWo_)8+M1u0)cvR^&y`vNuK2O(G234~{Ep*{k5t&0> z0C{NFf8id1*h0vLyI#@tf_s%wR3AuIwt%Javw=OI+sQP!*hHmvt@~KAvG-eR|FbsP z)brm-13-PZ_`*HExXP^GCP}4AP2Jy6<$W`qv{-r1^TYkex8`4J^iQu(TsAg3_Xiar z-)#n+T;L8CtK5+WU+tQk$c3-XJ7f);(-nUd4Z5*eix&m+JqdT8M)TsI!>b!5L7oQy5`S*ggd5Fs(J(*F-68A6I5>w0^z1J@#ahSRN^{9Ex`C4SJ!)609K9C=CPvOgr0k zZqtzsoICI5-PE4msa-!;z-g)JY#!%6w>|n`^q=8AHy@0d7kf?nrDgYC&`uxNJ(x@}npUWp-Y8)V{cI2TdS{Y@wR?{3Cq1ZSiZ z3~mV7CX`h}Qrax!_sQcYZe?+a({jD_Bj5Rtug^{W&&#W=4;R~)=k1O2E05KiKnI&l ztv5cJ6L8+ItCOSJB;{dOEJkYbYCmtV^- zbkHRH4-0#vFK<^#ZvrkuMz8!%zl+oP%-z5J`Fnb{{y8qz2ouwsa7E~0tMdL_=;ol^ zqYz-^S%5je9r%SIb4B{LG?Up%;q`mozs)t})qC3;Rh!u^{P&!qnfsr?;B|Qg3eK42 zpgYuuLfar>rs*&{e4{cVegM2gwGH3u$wzh-mh1kS`%D&-@?*4rtZPrl&I+v z`vUN8Yhcj=NK7sG6pm{^#hu*Z=5kO6 zudCbf81~>^=0XFfrU5u#`NPy3WpV`j!|F0qU}P%;SrSDdl30#$gDkhGACU9|3|}}p zBjbW9$w*uZNz{6N;LW9aqTo45LLm$VKsA*mVV?WNPg_8-wBJll3O?QR<5t4JnlH|4 zcV*hz9s^0sCxK0ot8+p^0`v8OJ>JJdbFrs19$i!tn?I8jF|yfc=4L@3s2DqcG<$2Z zAkC7whkAPr6tXydNqFK(>fD*UENh$zMNMcLGw&ty;;fql9gFxkk&EUFr^&cO zjIzucRIeWlBJeaOuRXA zU7hlJemFciiN^Vw7Bp$2paO*7GqsaljAy`$$a2L;yUa-cpzV ze;c+0xEg&Tv+0ReS-FhN^xLwGgU|FuabS-#skA@zBZ!-r=A))iT~%-+P6jwOV_>x* z@*|+lG*!&_G25MOc5}F!>GhZ*ft9b6d2DH^f{0T#s~&lCGX$)QOnOZVQzRrAmVg0H zmRhI9Wqzqzs=S==v#Jr2!Bo9NEEjPR{`jTR-!Y1?nc!nfaVEp`3a30w9$zs;ZEFkE z53|ZDVAwhNWdx%t)&!q#c40nj_GJf65B|O37^RiXJkFD-HcZcO%9CQ>Mnha|FhZTQ zkx&6k2+1$S^T0Zmyz!)DVd)wuAZJzn+lyMMEv};XWz>9pMbP~MdY${napI&eBqk*V zGu}$0O^S69Euas(U9PQ!hTemNN(B@M777K-Bv}l;0b%b1~H+w@0U)!V%AiRJif+T)l1gfiLFh7ulL@M51k8*hzfc_QO zR%N#iA@*dR>AAABR3HTG%m}&kAGU)RBZ&zq<78I9YbOaa%3$)KDU^`@-Jis^Ek)jg zVJS2A&3@q!w6)>0gHzeu3M6$u#WObHb@X4Nq9GyU#qRupIQH+<0mL%hsj!z?CCgPV zw36ma2%)xtYPQ3NfsOXhqM|i`_IIJ;%MuV`JjkLHIX|aoFM_KBn8`QaUZ#hFhel+t zw}Y+i*WAfJd~le_d--@A3>Va`l5EkCgJ&<60y0$c#a3!zl7zGOMUv!idDF_@Inf@7 z-0K2&#_o3q;&G=lowBi&X@TTb!0J=|VPj-@JarCUjj_`Ls~x&dE^OKgjSGDRU^MWM zCw&M|{IC>-I^>%WRlVH5_5-~Ml_=Sw;Qda^&CZgD9`f=dVb~1evhW)*mT*f&k2)992<7Gr zua@Froz|0J+X$+0mX!05M_|yv`-~;b^m|KJ+BA*i^6+&Rutjfrd63i6eqdnelYc*z z9gwMT?$%oiUmtc$2ZY2G6#UA{46C(bGS3U!-?W~Nd>x=mK*>De>O;~S{*yJOmiFh&;tv>=x|T~kvG0FGcj znYuT*y`7T8j0{lgllF0O)Es6fdbMWN+3g0M29s%Q!#xCmxW<4iI2sH#q2gF-4(boO^LqY1P}k&`2wHDqk#sEPv2$=F%hq%# z8Q|X}anHa)c*3Nr#^H-}4$212$Ln{}3F5rkd^WzVbjEK4g3-`v+;7CT>sYm1nvLqy*eAuASBQ9*4T&7-j6z-hH5-?+5H3_O0v zVWRkyke8Qu2UrE?Xl3OTzPycK`$VIqd&DGU2_&A-nnP9L&D^$vAA`{IL}Ptl#PFbL zoc9sH$fMr$fDtNdDl9FH<8W&Q`vM5ejQVXf0s^XyzSSKYZqqrHpFigU!hr6Q5MY&4 z$yJO`Og);^tO$T0C)eIz`}sVVO+^;KxMd}^8w56Pw2+5cyxOG|bxP5pNX;9%gmZ`b z*9_}}tU@Fq;AQU*$q!Fl}2Bca-7$fb4o;nABFPEt36&v zb3^AH9<2of(|xycvi#tvQG6>NG4&p7_xrxM#I5wrcm>@;HxaKFpUP~$j$FMDg(n1bnuXeXptXfb6{AqjF)7iJ|f_H+r`dgFlTD*P?^?IWl zu$Yu*dm?yvTbi!{w};J-axEGozGwGA`3tkrf07#1ff{`= zhtjfdQ8N|ixwlnlRF5Ou5FTCFGz3eiT@{h^Bf00fsQ4|dLTkA<7L&Lry1EM$)I8cs zJoF5qKXY^ZAYpY@J}8>3)S=La1;Ywk7NdyWn?0UB#+o2nlWPkhX^Il5b%8@Zi6<{i zUp!lgEsa$nst&BT%eP7aDs$pj8*AN8x6_{ACZQEhY8owl{inr64gwB_Mu<;+p|AxC ztMhCUmlw3qvT_0|{TJH)e5NY`vQc;Ma@1lCEB^acI~ao*2zscj)q$QAum#nn#$h`m zbjo3a#zAMMsQ0v|->({O%f3k0hy#`W60#~5$N)>zP^ZM-RriHh4J%63M>R?c>GagP z&I1cJm|!*u9bukQ%Ij@{&wExKB|(-dPR80=!oJ!U%7qN&ktBhew%69PRbFaQOVPtZGYJ;Dj;>_4|s|_N?$HMY0VKNVsX(u^0G) zMpRB-QA^r+jf|V{8=lW_2dJ78>$8kG#89ur9WrXvOe_XV*J|rf-=}}|_2s;Uc$tuL!xVJz*GK z2+ghFdOTFy91+){cS;&rNqUH4Kh!4cLJ&n=ZHdG&H8?8+5Y;r|e$%4(4^){3*2xVtQ*Cz>3@f=m&LIA3t<% zYX`!qBhh)Jut$8c)dyI0MZytGkeC>eha1POg5rwckr765hz#f)tKih?n0?C(xKq%T z$qaJeDd=8pgI}iB9uUU?GttY@{FK*=*L*wD6579Jz(E}W1Yc!m5H!?p%fSpmoikl` zQrQT7yd{7v8>l8d>*0UUSmgEOCFI)K?ha_M4>)e)#M({%7)m0rR2TYZ_STz~nA0zK znvjpLvTzqZFB{ed!t-4yoGtWjb=-X-A<4(2srxgTz8G``H4%4rf9Uviw%{A^?bB~f zq1EJxM#68K{xk5lgAo(fVr-EzC+FSk3S+-2NV$?PiZ z>rH~H8b9#;%Jeci)|i>OQT_B$1gftW4G!FMLJ5zlCZ~Ry;+R)0c^<)XC@9mAA@9%2 zAHYhHnp#Fd!M?M*hzi)hsHo)fXRgiPZx2X|+{mWuEztW0QQ%9fi)QAqZ#T0Hx{VVu zazBq|<_&}~HPB7^YQ5kN#D-M=3?jc@RMq1^Fv5%Dl9f1yb~k5+`HWd=x18QT05> z^4u`IY2Hy8D8_jps+-_k!!E#3;gxJQIff+UW;2$?6ZP`0 z)78Ls`{tkm&Nfvb?!q`c1xWMe70ii6xzs%tlXf(@mm5xOg2qKsunZ{QIbn!59|TsE z!(%drhd$qQj!jqNJp^%%zixQ^a(4E2;RyU!X~4(4&VJJx@M7lrcGaQZZf70QBGzK( z3p*AVwe{@~wu=sLSr7aM?(?>1@@nb}9=|=^Ks1~|7dbbI2a@;6Ztr@l&2o>X!R4y` z^CLsoP)r)HgjVtf!`E}OUC9O;%YH#Kq|O&Jwt-sn>&rp;TO-6!ILuYT~s zc%EqsKXN_pJwAPk1Vrd;B@bshHO>PYJ+epJR zHA%bJe7%co^;jmfPh08q&dD_BNC8d~5%zJK$@Bc66j@T@W|z;63!vY)wSqyhvGjhj zm9ta!X?6w-6cRt9M|oTkq;_!+)Wndaw=n%{$6d4#NfY4Y{=&&I$1u4DcMJUn!RQFy+7 zX{lUCf2$8hs?k)}!v}TJcKK2@F4(0>S?7d#Qdf6h6W6l9oVjY<$bWW7k_;5b;N3<% zeqRMvxyPr2m&>SPrk(3@T|uE|R-3*M4)2HFQ=Gfr;6Y7|7Om(jAMm6N_uaYT&u^bq zcd&6A2L~i8L#CD0zyJW-?!MrivPM*QW?Du;>oW1ADbKAysV9I(m!VV=;&n5D%*~$=DoCW?L2_>9#3l)%SAs~ zErC*N#QY6O6UM@iq>y85a}}TLGgt$m2}ITN{AA8-rMQ-(l|q zLo$;d(78h;|d) z_7v%35BfhuJ3ReMx*d_dO&zeaXW^|xmWaBZat6jE66)m1=9|-I$08tk-k+Dy`VhOe zIJTi5NBzxtXTjOxopJH;6wSPu@Ap>F2U7BAeZHjY6WQ181I1JW#oX{Pqfqh3y(azf zh@gD0qcE+_T*NLx#MW5KHn7m=Ad+VK3B6caPiFK3Q|`gOhTylWR}Cdc-E{y4=ML!k zZZYkW`_5<+m;Q|g8?GXd?AGI6s1BS++aAH**+oaVJz2TKnmw=Zrg(nV>L3aYpqAry z^c(+$&ry(To$kwkhWeOBdiNceMZKzssH&h8yUY#&x?38ELltDuj6p!!slS?k3kMW} zxPgCi0AvOI<|iK8W-@$)`9aclga7MTGRmW~W*>f#0r|&_ThW)M?ElG?_e4GKQAtbd z_Z(q{uZ*p+0jzf#{zQWE&SLI4A?oU9M)%A*1HnEFvvl{|rxvwveZTmwgg&RBuKzYNJk_|hBIsGrB zdIzAqSq;Hz-vMr&@tOR-0RZ5JLET@qZ+7r~{^95E=pvrYDyHHC&Z;ZKUkak@(_!XE z4YJ>c_$|iD?bj22u|`eDVc3bp#iGfRS1jk@(=!ag?S8S4u;!;|mC!8!V-kqfz(MkN7 zKVAS-UK^hGZ|Z7Ic1sr>5ehG`q&BQMw8;)m>iKU5|7ECs^8YtOZKDbG`&TuMPi^gn zx13yYh1s+FoRtZCdW`m|lrowsT^tQL8sLS}Tm1ze{~={Fsbn(cznFMH?f=HaVKiWp z#{rRJU|D-IQ%+8xq%?gXN~lZ&(UiTIhqBhs&nZuJIZx&Z8e)8Z+_~Pk6=3h4pT}+i z>BIb`NhM6`lj1H)$YPPc8Cp0MJLeD*SE|Zvvw#AZR_Z)~~v+;5aX+uQT_$P~*;zc-VxA^l! zl%jF?qj;HWTY-|^Q0kmBv^_5jHvNjkQ@{pajV&O|z4iE;=wf}?f{o44Cn z7DSW@oS)cYL1|H8vJCV`DQS!{vSH;VP8px9pH7xT+dXtQ0P_;b)&nxBolyqiUM>$a z`SP!wk2w=;YQ9>&O=A{o4uy=#Hf&+!X;BpAAsNHcu_5I>-*8sVq)TyrX?_b=+K>FA6|c_6%6V4%1ZCV{LW z+3Ral%gmIpDfKO{gkwWPQws%_s&=R<@S~?_Mc>iU*GHCsf$rO7v|QOBEyg=U28}>Y zAWDw*+>K3;bv1pOsxz~NAX)@PO)G*@yoJa{76^xl!uPgIn>!6RGfQd8ZYe7(56V_@ zaj~*EOaNGR?>8VGYFH4=uMyd#$H&2Uoyqx;4mnl{1H+g25wLuAVP;f0g^0V`c6`h@ zii8nhL!(3F@P_O2{~{z4!eDIZ9g6`xreUsCm0bKw=+9U%YH+}5F!XNE42e$F1l|o#Uil-ko zsA!-8_8EzHnG4uc*{xrx(DniL{Nj?Mvt!+@KiV_7QYpW5Q`$YtB`M3wv5V)UP|E{F z>w*7;r_^*A=oy?@fP?Omp7z4kt>R?%phc_9{j6E{v|YXkGA9QSH^he(&KK+uI%B-w zctsWl)&Y#K39^wKw?-HR9|qRC6O*1{cu1J}0|R1y>}q4P^FLPGs|mEh>;;wDd% z1p*R?{>m60^3G~^Qd$my@tF8x*!8CG%QBuOp`Kn>Kq?(V`=UXB&_E8dw+17U+?p*W zCgMYTAOO^sHSIcGZ3pz8b2w3!r43eAM8E-vA%K|;Fs1RavU2^G@&!HKH@)RxBq34! z4lqT}q1xhXKiev1dI#6%x0L?f{U4ITERBMSw_vH^SLyHGr zJL@N&3mnN3NBQ^8&Z5q$Kz~w3^bz3ZZ#T4I2R6zjC27_`o2^g50g4#d zy1yMsnP(v!5D-~a!=4noX6+aM3I0>$R50MH;{o=hLuB<1lScw$Ps|?xz&{xp&srGI z8b*56Ay_kvuHikQy_4WIQveA*-!O@zMo%9${n1{|I$O~vor@x7x=}zOM2-GD%*YqT zTp>McX+rlF$r%P4>zLFPp=)(Z_QV{XzGy0257E`|Uj8#q_Emw_y@j-Y7M}flt$Yij zXkJgN=)uQQ90lTjHzs=luL8sMr9(B{7xxd-!k=^1>!*sRSNz(8_HRl5ka&f5!|G)( zWq~z+h!+E=&3N3#eLOHgfDQ~)Q`ncQBLE4OnO0HCKp?PT1V);SF=Rc7!mLJMi_(c1p zQ#+t+x@O4~3?L%5ZtG@l@W$snzD-YcrSmay0HC&(?q}7jI`&(L2pV>QFZ6N!d3g_5 zI0ceY2Jpz^$Vg+?_biuJHI^0^ZO(%l!OrdFwxLOyx%Ks$GBN<#ouw8uyf|Ic~oNqST8ROy-gAtUL_Y}SNBhJbyHSa453%c2sNNlrUdvwMui@RygBgi5rwwIs}UKt+N$#pEMz$tNk3=ZglRaCU{?J90rX)hZC zj?%n7z}J3e`S15kL4@ju1?S06+V%EVvV7wGxMsa&inO%)u*ZCVLQeJ-Fff-p)~`PG zBjTWuZsJRsba2^ED9WeRdwMkgTD_dkjRW#%*q;{xyz0S3C^ka1=(b(Fb4sg+n?sc- zqo9z9w2qqEWDbRllaq~Vth4%j3pC=w;NaH@^koIUN^W-Ec)o)$p%amSQ{~B*`U#5?%1mmZ2EXGR>t4R0QZ^qlx5VInr%_$5s@Z2?wR(7_*mt6@3iK5GxZd>sl|ekNL>pbb8n48lU%wX8J)ywSM)8Pvo_T8?en9*ywm?xr3#$|KZ$`_vcRsd(iv)VMj;I zNF+Z%Q)KTnH^%=-bCaI`hvr^z{J&{#oMW$(4dSm~TU=|2zW8)3Rxl|^yI=nv7I1X@ zwLe~4TKda<%SVj{@uR=9qH?r6{ko9lO#9ipPtv(=Du)~KSQ=6auFfeS>m#> zu_iT*8XNqlJ2r1YS?Ujpti~`xx<(^F7M%YJ-yUuP&aBXDu(|5+B;21wRi>9p=dN}h z2p37*B8rczbss0FS5B__(QJoO@YL=B41j%rxCY^$`2Wocz+~-p;5849hO`!j8@<*)RjhIj+6EhlB%=-Pw^l}!(W*%D|Ko*PN>j_uOp#!A0jjn zR;-@Ms$NmRD>hhKtDus0;exr%aH1s`1sy9uR>F-_P!NfrZ!9GdaMM;Iotf2cR#j3V zAY5*U0FdjpqX4mBCqF-NdUXdkx9q6NNq?AAfcB;UN;{wZz%JmqJd)57X0*QaaMobU zlH84tB7#;#M)<=JZLCh&9p+J(w`>k|GNKB3>>c=0+EPXlp-}5K!QHv$@ONYVS5Bc4 z)t^x>tDRNLm-WOLX7MVj%=hlTXd5iYtb)l5sr0 z;&t<|p>XUnZ``-P4l{3EUfmr#kKZ?+KQ(`aEzD2pQ}MBa4Q{vZNI5;PJfYop`dj1& z@wB3|E>!xWAOW^&h!G%6oY(ChM{C==coEsq&B$~S)BVlk-BCy}oq`9Sj}Hic;;}$w zMG898Yp`Er|J6SeJ70=Cx{8=LV~dU+r>O|~j z2^GOrd{~+CgtGdkjA0x3gZP(D)pN-Fo5$511l=k{vP)RB$c-qrJM~6|_ygib>M8 zJ|5llX5rwPOlRE={pP{sO#?dw1$*Jk7HzL8RUG^mt%5C?8hQluvm}?>uRP;;VGi(b zR6q_4{C&V-7EVXpzmWLgj)5^}UK=9b)Kp~_5tgf_u3}I*S%Lz@wFCzTJ_Q2Bn3;7K%2eF227x$RFCWE_p@fmKL>@=CrYy~dy-*xu~F*CAuXkYB&D00>UnXJ`_`l}Ii zUwUkq5++tV4W^cwte0zEJKtUx&emyM;>{RJDLKpwLc~WRXKFjVCc6DUp`h@1d5uH@ zqp3*GX9eY!3!85!h@%PygKSC72%I*6HNvI{jRF)1V-H?x$o^2u8;vtJzkNR07izOC z>dswUT!3}DD`rF?rv4LyojoL!oKqt`Y53v6xTa=kLc@^^d1-#$^yw)xh1+pFkqLf# zyPIZS?{F70G1*;R{TC}GB|D9ogiRTNJ$YRDKCI~UWUuHKP zmC6ds+e8?t&+3Bx0k4Kk*Ol)rlWaM%#pZdE)e%`20}hq5_)zpmkF;9r2Q6tyDmI1? z^2o}A4ntQ(@y6sv$vCQ90aF<;4vV}^#`8>Z#DAv#bJ zm68_d-4F(8DLOS*N5*{ics-e!@lhr|mi;8Gg5i+w=jy~nu$br>Pf7e`OJd? z{4RpfhM)rzPB*nC@4&h{h)JxVjJD}z%|5-q-}WX*$dyA>vu~D@g9az9qLay z8(dr=Nww1l-{LykQl;+fY~^sVe7T#OlRN9@_X^@2cXGZiKkw}H+LhevG%MZTKP;jx z7Dh|Xs2K2Wvzp(ksnHHby)UUyL=V*$aNGgGre@>&f%wJ6(2|)al6#-3(BnzR%|al+ z^QPjD9G-VSwzyvhLJ_P ze0nw3KrXPs3HDG)_d8Tq7&ju zts)H#RZx0OT505fUyCwZnu>*9nXv_e1vNwu>+?Bm?fZahe=cZCOyANA{!q5h@X7FYtWX<%tPa6tks489ITeu)?)wvahbnQQZf^S* zphRYgX5QAic!{6MTv60=bKkO~DW#&NX&HuVVWwfL+o^d z?6UrdZ+3sf3I1BERzNk8FyqN6Yq(+eeh;*X-ywvtMT1s@<{hms>!mG^ z7KT}id!y|P45JA_vI4J^iUG^47_ac;1v7{rK;&vgvDaj1IM%zJ%Ji40{y))BaLFM% z7WH1n@KK0!vV4>T$$6GdatalxnIk(q)rVf5WR%R$^_c(>cFq2{PDUQUx-c;CJ|SdB zcfNhGJq^6U9z)ZEfjsze=`5O(-0_q8bqaUqQ(u6i=W_o;h_Lb zH<**GPiT~g4+kFtlFyd8c@hF0)rtfmukSFECwAI(9#|4*YfqQqoyaHf1&oh+uHhX+gM=N2tnLBAiwv%zbzz-B5tKF}? zHW3neTPT86B$6fAz&^0;0^%1J#}952l8>J(pIr_>ru_@$;^J9)+seA5t>^4+WjJ2L z7%0T52I6GGj0IKE5rlNK!u2%gg}C}!t>3QqwtMCH`CER8I@c!5Kj}8w{R~l_$X;Gt z@OnLK6^bM-9X{8uF=+@gD;C~j#(BcRsn~3CG!gN&0woja1CeWp_|>B5k%O>p0^yV^ zsEPx>g336(;4S*_!9%jqI7NMB726PHIi+4PS;|bWO@orQrq{7@epP?ZEME<=P{%M= zIz4E6qBQ>Wcbze%oLncYi?|v!@OYU!)~`Yz&y4w?5Lc@;Wwe*>GOLv?Bf^YfV{@bd zPA4G){7Fa9JBf7AYWph-s9~U%9D9p-pfLKD5MMhhc7V&;_Dh5F!5>Zi=GDTn8ZIVA$DNdvDH1|Dzf4!kfi*GF#EjnCbmejvnUhn>d~B)B ztz3pE-{xWqzPY)YL4%fWu&J%>cXV{}khDU_)S%R?3Yf22i{*L?(2;;?6HI;Ffyl-X zrtH)79Y3BEDDa3g4VK(ig3zihs^Jtrx`!7IMoxJim~@nO-61)pQmRwxX&mF(VU)NlDZMg2vfpbilrZj$3@7d zXk}9amGjHXEdC-F2vEM#e-V9s1A=xAf`5+g{yavOl(MB=tUxC$4cu%?NlZl1tgYHw z`J|W$m;mDA-FO99S?NB09Gt9N>+fH)7$>gJMrv`h1!NPNPPc2bQ6LC7BO}b0*1M5E zvm%z36x8Er0HF)ZT+sAfo0}17jaC}5i9|ezkJtoLNRAx;F5UfsqCrpfH{f9&nEZJ1 zUcW^Rw9?^9(^}KP98)c%ofU>O6bgkr#uh{hf#^JCr)S!)Y~6SRkt@nDUyLPyVRvfA z$mhjrf`imDz)%P;E0%|~U)9%Vq%=tg2`f3!hbIJ4n#+mxl$wfJ*-;0-(DjBnz06(sXPCUoIJAd7Q6M5930);_%_WjIrlMn*wVkY%4yacRtE4FCCg zmje=l(`G5FR|O0)#pW(sjE-XZcNt^;l{1}*7%LTiyTI|;pOD!tNJIY#pj&m5qlql+ zjs~=5nSiT$*L;RYp&pi&ng)WAM{|D?jPpUZncAlHfv#C5k`?)w!pKlpN8^GGm-k>E zM<8zzTOFCxifjr>w*POIk^TV48w>mN7=BCpBrMe59BYdUIIuKXa{4n% zn|8}}D*L_rNXMGqpdkD{W-114q_-=0nu9x=dkd#7T4Pt~rr?&hvo6i+gJ~PHn|75u z28X2u_qzmY0M=zptSl(#E-3+QFH7LLJGP%Xb0uvTMP*k&VUX(s^)H8QuLW`tnVBbd6m6fV`ZF`Z_7Ys99r2`)U{rei{ zq@Ow)Ps!v|>UDa9CTAYgusP@5X5FV7c-LN=>+0b1vm?B`=AMXWtjV;)-=~H1Rv6{u zhkJd~!P3$ZVQ)WS*E52`mf10;yMmP4&WA#vpI~|Jng*w|n_TH5}Op=3XkrR}g)5Pc`~)rNq^Uu@xEyzlL~m9=Wh^GXG^Xc`(h@O>Sg zzrP^!3IHiRljs>tztJ;lV&Inqqakf=_D{UvL{uyfm#l;mm6etf5&N%#{$q=Z2)_zw zdw zim^O5EOZO;r3^%XtnkjjE3eHiHSE352Sw#kgPT45dVn z9)#C6%MRu~f@>wh(3J&VtqH$mnZ1nh^7tQY=#Gp29@LBPi(t+moIJ+DvZfX!> zcQQ{^B}G`*(tC+bq@8?U>FW{_vpT%n)VhLudXq;_3aSe3|BOu+p zvgdsoEy3h@AHUOqvMXLoUj%3T0#!^Fm682a$F<4^Sg%7r3K4^{6`XLBZ2lF_mS5#Y zf0OtKQ4w;C>5KiVq4Z7M7jHVm7($y=gz&KI59vUC4qm`*!e(isYm#EBD~Du&@+{vm zIV2I8dZ1E(n*?#eOW=x0a7;|>s)~o}?#swX#4kK{cJ++B#^iH*D=XR0s(TU=sUmBl zG7gSV#pO1dT08s2ZZa)%_~YYWzQlk0*b{|pwpU$Mp#YEOT3mvl@L6>$QCwncZ<1$B zh2eJwMA67+>fo5~DrYmE<=B0qA&1<$NE^z~p9s9@#(11PZGB_EtIfkwYi|6H)TwbT zDGW*~i3Psn5(Tnl|1{-*EXJik+INQ{1CeYysea(`!WuMyWka?hhcn-=35wyyQrTNl zz7|8hhT*v{`Axu=z^GYVH8`nM#n|OspOc^O+=?PadjH_?CX9i=+MZ2@C>=xeV<+Of zw|7j|8nO`Qk)_0kf_&#jpw;&M!%e&IngYc`i2_Gd5Ti1h&*Mr~L0%DM!Icp4BN**8 z5N7e+3V@9w8o<^$bUIJZ3AH5tPDi22zZ8;-=6HTI?9D?Z(hzwXK!-P6%{c!racdA+ zC=&%}lbfX2l(Qd5B;v6;sL-SI-KcW~NYdqbSDuz`hfGvF`O|=ZQ5o3Vrx&=fyw8uE zCSB}of0UQDZXHK$Do7!wqJu8@S)f6g?+Ek-I))($kxYrWJ{cLAU!Uae#^x{MnE zKw$&NnL(j-z9Q3wMmNQ6(hTUPAebO(nt@3mub>(D+<8$sGc0tal{zSNa;fX>zW&?z zmlI+!D0n}~UuzrVt+D5v9{ibMw&WO{5=$!!<%-4b1 zxSIFP_%{A|#aItj6*3hvh#Etrt9R57`#(zb_1aPeaoC9r7ELYV>;eXAZFgV?i@~dV zAAIUWw}(<5%1(G(YC5jFr{~+VQ%QQdar-f4xIwpoa>>Z5NlnNkAyFdkI)J(7+!^Fd9k z+%~dKZLq*ni8DpZmc`aVL(cv{H{bHn_>#c=XRa}kuJfK>&(Cn&+|(o_#4pFw))G_E zn;X4^HZ}vg&F9l$9}st^xR}lDQ5(Cz(t#REZd;3TZ2kZMcCc6jB2W|#%?&>p4AbD4 z`R|LDH<0i7*-cO={K$hi3SqsxM0hk;ezH8~zkf+d=UH#no;)orBP9fN|Nc33 zb}ms+OvI2H93Rjt&z5@}hrymU*2rJXd6Y?3wd?-8p zS9=PVP4|EPUPkVWW&z}{3NEWpi>1mDWy5!!1d8!fXt8RYgTYs%?{xgLXErotD-p4ZI1Nw+E+Zm*Hfj1>cVS>DG3C#53l#W*r9@ENk%?ww{Cg~r!b1Gx zrqogT_CNiWh>3L}S_DsOB3na6QX%oxI__Tw-6_C&wrz<**)^nv5I$2#l-hGoI(6j(f?Qv-uU)t#Y zbk|kq{Zy;h#`#d6oxP_}6zH9OhJ()5y^4B*y_2_QXCQLxv2SG9sHn zpLx`_`U^2b_VH>wVL$X=ISyZDHK^B&{V?y6Ypk(#vi2U~eL#xrE)2Ah>iy#;Zvr+3 z11t){(Le{Z9;}gX<8Z@4L}t(wV{7Z*!1iDeg8T^{ zP19P9P(_`SM&xZi3P0`HIy@ZJ#ij7C?)p|389nd+vH*!&d$?&yRQUYr?y>A@!sj&s z$Z?`nL?KLhMLBqZCTy5Lz)oy>cf3Y9=sY~e#=p2ChZCcJhZrLlD(ww@SoKLKsk@**#{|fl%O(XN;{MKpt*F?>m(N+*gknD0; z)W$heEe)XnNayH%@nT$30%4%*S7Wf+OKO^*m;Ebb9%R4b+_!N zwxc5icu_jjaRTfmh|5c@rkGe^<1sv!*PA(ohX5!h9cg)FMom@qzTw2;A7!Q8jh(_A zWMmR_%eCgwR#1Ts?(XUTDs*0^WFAV>26uM6uO5$Ryu=`Xu;>8ebagQD6R-=^lrp`t z)i`D(AmELnrAL_1{&mZ+NeB9_d?cq*rY~Yk*yfjO4RsnV&6(`$kH0tBDGC$Hc9p(jL zw$M5CpUz>0G^XrH0*cW9B>fd0Ce~_r)eX8O0~+p6-d%&IT4Jz#;WD-L7-!OiI0HJJ z)$nb{MM#V8>!LsO(5}3;r0;lY^J&cE)b8Xv*rqx4j^V>IwvZHjMU4J3fZ61W4FWx261-;=mD{|^^{98#36sHTI2D8rn9h?$CVB?Fl_x+ z6ze?53X=)@g#Ph8|8-KY^pIbyAwN?fXW$&aON3lXSeR%@9O~jC@JdbFYq-6G(Thir z_?N2P`Hw$Nspy8Pf71Ns-*Gwk+ZYC)T52xk8S(m_)EhV>B%G_7L`M|S?(lf5F&X`F zD$k+Lkr5z=4q58pGjn9r(`KV*CTZdoM!rUzOXc9fa`3g|)}8O_-KGrR5m?pl3aE zx;u?E8643_r}*Dno8jfnaDUh_SYDQ^yk|5riD_Qy2lax>EF277N(O+O|SPRN4{hwzvV z96XhG$D+@q#!S0bZ>#5Fm|a4&^Bl>_a(`HcJDKH5&&qmn?)E1yv`xzK<`Ig3nD94V|!4XquYZ!0=ihhfyE`wpO8Bj`ojwjAJG)?)hwFhHFkc zOf1~Bz07mhh>9Ol-a;Fo7L%!swv0#i@OyVm_Yt_0TdIoTaA+RuEZoZ~ers9YjX-F0 zL1k>`QnR+M7Xwpahpy@IP6UJK`EAu}I;U{=_oRs3>Aw>op6kMks3h2?S|;oSrNfJi zL#Fy$edepKKNc^%qt-v}#!=jnXsxRc$H(fgO|=P+9_HiXG?diAWztc21l-8+VSG+( zJQjNsGA3;kza<**mLX=TK*eB05rM(ZQ{DBJSUiq7$=&%$)w?3m4U zFcPp#CpEX6xL=JEz=hJj9%IIIsblqeo^z}BstoxFutDlWx!T(iM$LRE&4%f-$8pRd zg(pWpUYDCk;<=ugq8D@nTV&Okz;$?hGy#c|PfTp@UiPAe^@sKE$F${9l8`jFarg*g z(g5j(@$vJ4N}7YYQcU_|PLrv+jzD;c;BZEFXJ2b`gZzi9h=7mRX%NDT?HZ1`DNJF}((J5vi{;d6f25rt?D#o^a3Jv? zBy&IX402o_h>u}QyI>a>nR5tNJT%O8Zc|bInQjU#WF;{mq_7+acXqL`bX;6Gr($kO z)*g5T<7lu6=h}A~M(h$%*;509_VLsLKWj9|XBj8qgKR6Yi$Sd=E6@)LunG&2oUdB6 zcLW~l6a5woi4&NRAKED(wa49J8Bp1)Q`wOXhckAah@o|bdaSn|OW#|Xsnang1jw7L%0B~FtM=41OxQ9?Piv%LdkrZuPGu>*qYDYz1$n}-pB&}gKp zI+2%Tkc^B(MAg;VjX2>j;X%0+j*fV|aefez6kgs_?se%GY$>C_ejl!?3dPO=x7?n( zwdXoKdUW_Fr=YSDzz|kQgzKv+8dU!-+n8x=t&`PN0|674MA>C33?OdMm62fphdPD~ zFZ&^U;^A>5tJXYDf+Sy*W*J80JRoNs5%nD1>L)8KETcUHQZX!oY&N{3AsLJxyjPZ+ z_*0j1E#IZXcDO78nG*z$(|KFaoJL6UrgoqN56PmMbpcf?ei;Fgsn)#OQAi(3IFFRi z_VWl>9!eGccdzDaJ+Qd`8pTfur3?0x2Q5<##>(mI5`QjXPwKR6LG-jJ}jn|_I8-DyS3xtbYS+RRL zv9l6FQ~GB(_FeOK9cgtP!4`O(sUAC)e&Wgo3~KGwyGN-M|A^Ji7aiE}Mq*{n=Ngks z5fK?Ldw;@ny6UYiSXk_5WtpAhUr6(Ko#X2pg4#cgX=mr z=6MB*gSRC+@6%NctXTTeMjHYG;IEa3Yvp8muj%!r3YA#<_~7gIiTA{u=G!E0p)_+w zAO#%=;Thz*#887}#u71@kMJn!i-(xGj?zg`r2arP)B8|sP=D7Y3UxR@3q^xsQI^t zY8@V_*)L6@Xl+7XmQ#N(vt?qRCIy`)r)p}IvLZUY-$z$znMp@}{=22=Uhd^X ziU2YMTyvgE;4)h21}F?DdR?V$HR(_pmTMf*A7!JPD&+ib|zsSURybBoV) zS?J<=UC-MIF>)YD;$ukY0Nu|>W@XwQrOvTz==Mt}!SdCTvLm?`NNB^9>mX{s!3&lWiA zt;0K`@R~H5gPjn1Wr#z}Z+iVvmTM(~n$Z;H+0TnFsq(|we=0IN+!?wWk|U>1 z97|um?wv%c%0YJNZ(#K%y*y`eP5+6J{zdDipo%&fTU|CzHV#WANn%121VSeh-;S($ zP*buw93s054z<^$3|z)#%GsP8AsZdvao@UBm84IFOa(^jdi3I|b(`z@PWc#vZItit5E)=-p%{Jw3!ZcE-cLAc6PU;DWxRMA$Z`{Qv&CxL-hL_k~*;kj|WzS zV=aiGzKma2fNO&zI%SvRnpL(HVo0HVsmU-^5Igsh^aozizFTrxcW|vI&+F-OHtQomiHKaVxYO!Jl)rA z(QYd?ublk|VWSjc>zJstl{$_H`~E=*$fA8Dg^zd775cI#6k-(>Kja@#I1V z#3^Pv(Mrc_+l?jQv7Ck)H`XJZW z_$EN%8N~n83Y8Tgo+W-HeUy`sQ&~_cbm+P4b-Ei3$#crLQg*DjV3}8zKi}HDSn_xH zAamL;9Xhk^VflsRPEJp*3bkXA%F^TFInrb@cJ?hyUPKKa>d1(I3XHmsnp1e>^9)_O z-uXf9TQBQ#ZG7|~ABp1qQu~Ue8pbF3d|j^GuQqtSl3}}Sd-$0SeKoW~3UqjW28NVG zq4sWsX=KCBdhU~cl!gDEN8=2*E7#n-7B9|&&YN7@S7thZ(&qG1NshB&wlzkYA>pc$ zPN);^yRjBTWkjB)>gKQWaf-~NE~#BC!BNg zBG^Cxtfsj^kR$odaP!pGHTV3q%w?|Dn)KKq8Y6w4 z`dsFKpQ3$_OXTM&1~q7y^Y3fQ??LP^5Rz6^8u2}}cJwgp%;MbZQLitt+X=WWtBcVg zktp5A#%Q^RbTEx#qPJ2~MoMRh>7Si$RYu^$R;q~hIPj%r=MFmP+Xkk%ct1m?1goA~3Y>K0t643T$ zcvC7`Lt0%bK+8dn`m~p-(PmlLzcz2jqrI%LFAm2McAB~_9ccs^k2-H_Q3enCXPzyr zJ88q?`md9tBQk#!R?-1wT(XGv1!YnE8Ob2fnh`{LgfaOLl|ftU2Bk5^2zEVWy_yO% z?s&cVvT}6zV85Cu??4{;O**h4XfOVboRmS}GZM4syi>HbG*bq0uP7ol8^k~lAyN96?- zZ6=-D_LjXxGD=R@7CLD1VO{(X(Fhp?9=P)@t=kSG0vSkvJ7J0S^)B9|OJ;6wfiu}8 z>ZxXwg-vo}TcZH%^8*h72T8De>y^Q=xBTS8d+V_zr9yqSZ+jTUtRN4>qJt;3sq_mpIUt z0!0IgL9f7~d0jnN1_Z#-vXo)G{UxReC)G$4`%D%JRJevLPEB<$_yv)JJ3~A*!x*Ep z<=mWhtikZSu)~IMV!zZm#)3~4%|o<$ta{l;RQ)-Pb^1y^6(vX{oE#np{0*3h;rW)) zmD%?4`(%=CMUaIj#ZJ3vxVGQ%M&=#gb_M3l{{yJ*$#>X2YH6?28y$L=#UGphqnBEraWz^W&X$V^=T7=O^I2Tj8kM#^^@oE%Ne~IhmO@h;{_-XDCfD zVj2uw59%_J{dCZgC$_tSfUv^DP}ywx%~MJjPfDuN(C_oU_KrrGK}hy)NH0U=?erOy zLnGlJ>oN0B{*LpxhjcN9WpkxmGcf4N5(?zO58JUu0Px(8v*fmk`3_JoE#r_ocAKGC zClMD!lzJTA=rn_%vO$RCqyxX4tLlQ?WdHoar+~uM%6rr_2=+;{CbEKJhX!7aL-ay zmfO^3sVrF3mkf~7^x(h`=BIVTVQ?MNv6F#}x!mx*kiW)7D~`MTaCu#L#hjD}Lb7sh z;%-*epSE=O6Y-LH)wx2`$;ZONqr&w*lnsnBnUYpL@>)B7Y4mNZh5k0RypxMOKO28C znHpZcATG{J6U`AU97J8ZHxi65IZ#dU<#$tD&7ld6#YR^2Deuxo)_5O>%~uIGs1lkL z9^e%)WVI^UA#@DPPsfNZ`sUq(WkYH5ja?DYFO#B)+4Qzz%U5$*ST{ z%MXoCLmTLWo(!{Y1(gMR-jiJ(n;Kl5v+Xyb2qH;sNvvTy*~tT%T-c1V!FA}c-_Fsd z4}SK3(Lz%w?b73vC07o7!vpm)?ZeWaGYHOf+H;I|!^B#6aZZWBc#k#}CfLM0JhgYl zN3XaO)taZ}g<+7%(&|MU^p~=apgJ|DS$)XG%-9b}uCa{m{B4MbHiaH^z!}Kbjz%c< zP}PE;D++Ny@XSCL*sF{}!7B!rmR^w-s1`VwMNCSJO`L>teIg={Yti!Xq_eix?2~ty zw_r0%giTBxhxiwIdiGv}w2FaH_lMiRjYIv}T&$^ZO(kc~dH?tQ5L}u%V+ce67}Dy= z01?}}Hr`n`get30}rT}{AGN&tw&h)&p?)6>N-ebof#h5 zb?9&B4=fdznSM->lolC2D~90-Ueeuj)nsjk2V44rNG;A-cR8)x0i+Kk8(}b?@Xdg| z!w=fHFEMqw`%*<2?t%?>`WwiC7gQd;prQ$1)=Nf9Pp|k_YIPe?~u8rRX!8lWXlhAY9FNNd6WfH{JcPOodFp zRUs5a4AzsEafm6L$h?OgdkM)aT;j<%vvUp!IXhaTL=F(%wM1oirWP#DQUTU5)2I_t)6C*ps=v|1MYX8f=PimR4n ziJ=hmkIWlF&&A&hCrVT3mKA=W9R|j|Fq6ub+*{)=^yNwx&GgI|fXG=%nii-+J|0pa zY(%w&u?2Qn9~0_*n9J(Y-~0-ky#B4*ngC3XUsem`UC0QED5olG5~)lCD$XwZv)R{V z3a`!QZccYH?n$HiDOnva<#bZ@*264->*e2ts($``Ja+dSvpjfIIrs6_mMv|=dp_i| z=l>gXoqw@2WUwAQZbLF*k0zL=uJ{Kz2>Xl90)bc%e(aS>!%XLBn+bl|FssopIcf*MoeL!@CA7HeZoDZPjSA~UW)`nb_o7}@ zkh)BHLOE|y{IO~Tf`x%~s(XmV0PmmGzgDM(2~EYWzk9Y>tjWIQYCbX?SUBvF^r>q4 z&lgfV-dYTC=I|VkZ~qJuMfkTY!;4x|frW|X&FkT}kLyIcm-#_uL4o+VDI zAOo2Xb@)-5 z_&W>^pAQ^wSg|oD7x%jpaHEXzjx3HBzW24QXed=4;RJZ^R1YfD{sd=g#r-M}C4MgH z@QVGl!DA52YkwM)55Fv)7&QToWRU^icMKVa;vZVqJGr=%WxRtGkWC5ViC&XWR+nwb z@8ETIe=YUX&tt%QOC22_1&NGY)c+sy`t<)!UN8Qayx#vvENe)Y<8$A#PQml2I06vO zl@83wS_(cK={lANmRv|ol@2GIMbol!&6kDoB~#H%^+Yhk2{y+Gp!S3 zgm5Nt!WF`W&;&p3+_xmP4Mo2W&8ZNMG>FX^YxY@Prq9{h)*SOrut!=4R{r+can@GW zj*$K2loH7vM-Q1pvPTD{Cl#vLZh?07N?#Hn8$yV z>#DW^g!BSd5-r?e^Vr(=?YOFj|H}f5TTeNV{tS+?4&;47{3ezk#{b;N;@?*-IcYoz zgfs>u2kIG~O2zhzQ3?h+cV{uHtS*84*`CC2=i}SvXZ`K2-~Ti)N>q*U@rKHPC?I@g zgO&4$rCbR|#8HGXxdjhu@sNI@(6c>UybP-5FPOq%W=JN)zr)VdF#s0r_g^d;d4U`? z9NjFw!1=8PtCk!uA!_x=nMbzo+c{*l*q%Pz&^me;S=o!Ze!mcUcS-lBoKMpKLvsf^ zSb2$>1IRR?GcO`pT^wx{NLt3MKKt5DF7p2mz`6lo#IfT}lS8!w6QJf(RLDzdKKdrvXTmoQ`M-8%zRhUHcrRf? zv};JLIyQB~+|q#Ei`&c=>po%%!bkdwr%+EL67Zpjw_tK)!SpV_NZ=H=`Om-(Kvf%O zn4kM26(exuG@`JT<1aLdqV*6h+DZ8A)W*Lh+!<&h%;eO8C^6 zCCcZL=gsWG^KI=({kq1gvGulHh3A!b?T3D?XZYRZ>WFEH^*1X3H7}=6dyX*^sBGE4 z5zr@fUMU?O0RlW{ldlt$Y7T+M5Fv!6ny6E3iVgl#h{CWU@2?pKnylyFJ?cYXiJa0U zl3ny+HjkP0Ql*=aNU4*!kDx@2b5@y}q4FK%mtCA)tU4EJs+R0MrZmI2ZI(E**1`xv zBF`f4qQknER=A8;V>puO1^S{D<~5l&!}wV|8T{%~*!+5opi5$FnX$90GNl46Ye|H7 zfB~%O)5<=`N-M+$6oNmiyDKD3*FVU2&FEl(% zlj)k`%k2P|&?wx<>Up??w#)q`J%j|sqtali2+F?oD8CtZ0Rvp~{fDGoAk~`x!})K9 z1H>%xC~kd~uM6~aBzYr)!s=2#DPzDwr}$(G_3Oa;!=jFjOs+r98@L;Z>` zIEYUUJ)ed{OBc;2@N)4p$VoK5D$m(xGvKgOqdX&KM=tNf0tQ=?v2KbSd{&|@9(Gnvh6p#b%#3QUZ}%5VX8 z=;guZ_xEZdN|zMHKCFH&`axRi=*8KwlPUHTaz(tk$06n7OXp&?QzSWHxq;m<{yU(@ zCxby?L&8@KIJy8n&?wxGr z5F+pptab-es(q`1{Aj4(@gM%W;iap>>c0#%L_u23muQ21G!p_UWH9CUiA6JrXqVs} zwO+IyXw^^JaL`DE4BdU_t^IC!(@Q@5_Inos-e11WLZrO4cxSj(7xh(jXK!QvmY{ta zM@JCX*sBhOvG-F(5k}ZVaY?$3{qY@<*g?HL@A`D?=qL7K%mU-GEV7Ey@2=bAtA#B=*M_bZGoiPi^KP2^6Yt=Q(U^e>y5(exApR1HVDP zz~{3GFQNvk#)$B!VRUmk0htQ#?|^3nk0R6z`#PNdD%s%IVnH; zRhUtX@f8^4W_Tr<^M@!K2J2Ir_&Y`YAL9DTcJ##$jzkIzQuuzqCFFnLY^@JcnX!uZ zkZ5!s*HYd_r67b34QQ+eGwO4?3%W}dC@;jDn7VL)^1itq8$vXB3NDy5jLXezB`h|0_8DE^k>0H(0GeO==Ah{LomJDe@l64Y#-}o$a<8y!Dw38CUorLv2 zi1hP$+vLmJvV#$;)>g%*JP}1FkIue>I~qOVI7~ru6OMkrR9(WLk48z4hJvJE2Z zawt{79U@A)CiCzVN5Jc=)B}y18JoWJ-)S^5SG!3+WIu?k$?$Yn!PK-j> z4pLsC;xSxP^&*G}B;+Lh6KX>4$G@i9D$uYmn7_XIz8oGD;lE9y>p)@08<#WlQ~3Ql z)t%uDwQS4%1<&N`1}Rej3269b=P2n0x(+U*<#N;?xnR?#|7t`zLu^QXh~Gu8TOEc4 zW^?$n6p}71ga6y&E&Dp{JPQ5@M-Ai*1g-yo9pTfrY%|IyMz0%=XPc){KmV2Z96?Ny z^I~xguF|V`r3I`xKaeT30i=kNy}}9Rzf)XU-fjX7QLeZydidOL-xf6Mx=No9E#7YG zPFSFQdfaeL=_bwFH&is#G`ws1yFO-Jsz;q~y5svLhmmp)L0H|6C>^EG`wh`LxYrTvkHLiag}uc&~oHpEK2*!#g_a zcTz*ho@5bVNp>0HF40bY3Nt5IdPCpO0cQ254s|^{$wcn|I05CjF0>x?^Fg8g0YTWv z-^KXpiPcppWD^g&_&oHj=>A%v{oBh(I+zw>bmRB$HrhBh9P4}Nte&*1bc@yJ?UbzQ zWG&jpE>`*-wr&pI^74-u8{W3AS_nd7D>Bnf_A#5!D&e7rIjCbt@IVkg`K&_3h}XYT1q2 zoJm@)?zXP?8y%_lb^Hrw(%b#o+s2~?CWIhY=GN4fUWuOXQ~z2eX`8LP`W5hdLv#nN zQr;guHD4eO7#p7KS;$K~?B_8T=FDfP9ODrvNybt(Aa&gn#^^N(mVW$TpO1U?hF!HR zI)+#O&%O78GbvVh(U>4&{L`P9jgoFR&Q{fnCWH0I8r=3LBnZg2y{uOyRfE5;EiYNm zSG3$mo`ciMfBC16i*l|J9+wlch6%TQUwvQQX`Ic;jMghyS3OkaI~DSFO>TR^*5Ea! z)jQ%LWuo;xQ6zgpI*?=|Yg+6A+()h0M}u|T^xHGhkWC2R!8NBi%-DOm=AlSgaV=Ey>dPGP}q6Fv17sA zKTXC@2iz|;t4C3_wO>&5c#XYI9Jo@&V~kFZ|3|qhJ&%+1?e59dhhy3Xkp-TvNt=4S zzb>SPkY`YDh(S=h1@cI7SM{mpn6&-|P-nJgRdC`fQh4`7_muXK%}_Ho7mq&2DH5;v z!cQEpUTAkAY%pYSe9V>`-BvA{(T7Us!xr~rtFHw5ZK0m0xzF6IuMnge;BaxQ%=#5c z_Ynfeb&mB(u#h1zQIIE_#l#S6--@#hOyb1cU>_c^3J6kYw&J*3~u-QDQd%gNQ3 zGMS(Caxlu zKE2@AI_&=}n5SoOaxtzVyy`fx}IUqd>Vs0Ub&hlC-0xX zKVLxW^7=Cd&;OmgBe&S7bG_K}?e9=V?uQgrMACN5tgri?`$#4HKrQU)iu7cC(~Nt_ zJ!0n@gZ3JRiL2}eOWQO;$Vzc5xSDsXy0*DCVmq#X`&A!V7slTH(ojR;XY{r;uWhqP zO;>f!pVik{rB3Y&JqO%^-X=8KJE|;35nS@<>gPAb>c#UM2n9c^du;m;mQL;j5sa1) zpZ%2l(X+u*yc>es4&5(!q$xQ}n5is^5)QDibm-#uB&+HDHqZn_F_;t3&EP>%{J4Y5 z4AeO-3HWxnF(?$&0farS9fyMDSl=6mh5p*HMtR(#oaVmf98oO_ue0epa|v@oL;|8H zOrP#{WWU;&LP21+m>q1^3Tc$r1X>1!KqbLn9C*T~N{IyqI`p_Jtbe|^s8as%A@zIZ zf3!eBPhRg(`bZcM67cqIE2ztBORg{=bt%EK@!4kH`B&t$vM!|NNJVjlC6lG@h5o~V z@7qjmpr4^<1Q?86pGZ1N$rhhIaJhk`XBjU?5y@ zA9`Z;vG(@!Pj7x87klMeu@uM);TEpAJ@9d7Q!rw}A)2RsKfVu&8`xc%{c>3+@W;T`x^*80D^=cAZ{V zy&_)sMQhLWH6l|3uhVa@C4{(i5UWBjr-NOO_j7NrM@Fmma*C02X%Z8x87Yu#>dk4< zg@Qm8qVGz0`kmn-USVrMe?9}FJQr&sE_+b0-~-o-ve=8WE|47_AG7_j1*o=)q6(qw zg=YymDxGz!S7cqOOU$^d;-%>AWC9k^&sAw_%V1;fEyjpM+i`t|&8|I6tEgNvt9)19 zUe!a@=JM+0<*tgjD|sQa#nq=O`o(ym-z>|F=kNO3=3e7=WBX$5kbZe-3BcAr)*ET6 zLnuRH7`l%~F-|LI;w~0-nEJwnftAWrZJ>#rL3sQ3UmOlcIFt5ZQ8=Ag7bY*9D5DyR z8%#IDxR9$KKWXkd3yK`k>M4rAMTs(Jte58@bY{n!h;dr zAX4HYZSwrSlxx5xKqmYC{!fS6i;4QRU2jB^ls>9R7SHm*{xG9QCAz60m+jf#vaa91 z&4!`!gn7K5TaF6>s_m9#)2^J*d%sS0G@M$I>d@#c*QiUWT4SzmffWyotq6IiC04fLRqX~Y|CR`1Pljkt~GrsL?<$DMno|(&tgPa;`_Q% zkfIF}Y#!@@D_F8xbxD4Yv(A+it4FPk%? z&|aG(*|Fq^Uf>=v9o*0_njGvgdJ^7huwfxSDb#H!tSI*2o4;9%~2QIYf?Y81p-Z`zgGM$i&3 zv=R8sPjH<_6xyCZU}rgVO4!kI`=zVX?u+2}9-yDs(?<&m8~$TgAW4e8+N#~_b$UoZ z$n;sJPlZoWh5;`t^pNFX&WGn4Z>^_?aKV0Wp8;n)pEm){oef|ji$SjnMH4^qK~sjF zzZ!_uP7s>AM-ZMNqoxm>`NX!ld zec{+ByH+@n-%)g2VqeVH{U#Hg_KHJ`Jw{j&3i@j2=fb7;+nVpA6d-fo2C?G^M?KUo{(w45}y#HR&*TG^0ba z{AEmA^`p8O?kF;qgx}CjYscgu`M(o8cOfG2X@{hFL3V44^OPr< z@H}H_6L^{)=GThk44lfOCndn}^ZMC2>2+4u*u}H~`;2r>at_}N#R-W7{V01?D9K*+R_ulaZm(LACp{`c3+OwFu{p=? z579!dfr@#afZ-sRQVH{bts?5J33ZzfDjaQY5BS-14it44fFVDnjpkZs1sC~|D#LF> z`h#88N&WE9d&w>Q5G0{hz>I(j(h@} zk09y7xBDDFip0E15K-gEgk#Hx`g~ynynwtu6~NHmnZGeX3nby*;nHJiZQty;{D*7T z0T@K&b#35>U|_+j;(8u6IA1Mt+YV(6wjAjdCyUV=obo0697Xq$=n)^0W+0C|rYBm{ z{sk|91lX6PQZ_mQSXX=Y>`Zu`kAu6Ok%Ya`d}0AB$6Wzl7kp!KKd2IxM;7D3o?#=v zh8;#ClZ02b46ZqH!wV`D)Me?3;8}fy0*s?Ly&=FT;-(|yiCu2*@7gK3h>DZ8r{UFS zsA`F8S$L^)O!gY~{UkBR>(*AZnAp%~JpA=(?>2NSq@4W=EiYyQe0WTufS}v``AIJ~ zDFyMmdqf1j~RPA_eGCk1td)qg1wsR2Kk!!2W(`Hjh zcLj{=wDnGr6pcflctS^x2z&C91ql_g!;Q#h4JWl` zIcoJ2DuB?S?DE6RKp^+PsJ^cC_Zg+VudjrE2<}G-i=i5Otdn%Vc33({I*RA?3jAb* z8vpbxVBbnNsfB%D--!ehVIPqq06zekxMu0}rV{^-;fi#Z1cnyZ7cJc~b>n+hivVfy z99?cGEGnD%+z?y(D*pL?<{IAHh%W?D8)#>-=cG=5*%LB(yBrOWKr*{`9qVZC%u)4d zFUQ^qUw(URDXtk@iKLFKjR3p)h!t3ak9s!Y{nO3lpslAC!z<1xJ-h~AswI65S^Gy4 zjMZf>719!9)~%7n*+rEdY;sC96YSwfmJIEpn9%)a$PuJV_;*7xM0%T zyWG&QQB$)~llOkNW48UW{P5E-M_#qfcFT(h~K-K zZa4Tfs`JBi5YZ46J*GbX`}-&SOzX+708i+ih{}ieKkDya%lK(0={CZAfqRvnAxD=YQ{`@Q)s>kyx2H~*GIVa|M1}bR6)9NG ztpH(QjC}6`H6_xhdqIr+J3i_IMtWUNxhAVx>eZV!a?ipdKe`ndb+1h94bkEBn%3OE z$CN`2i`pTN;-b4Ha| z%Mbgh)74N@h#It+Y4jr531e`HiAT-rv>9-t`WEXf;);ulWeV8{yH@rou_92BL<=U% z%gYCMoFQ_J&CMSF{`zJsz}JV`kSjF2|NVXF>l25_QKyY)YG~B!RQSHt)7QT^KR>^` zgsuxJKpt!vys&veL?p~Yu>II>uy%$Ow_H!Fhrjft!J)^5w@ z0i#8YDZ?y9rmql>)|G(Ms-D+~78|c@XRU?!UWwUv{AUHBxe-O`{iVhI)82iVRFC9m zQ<+6~IXpI2S4YUqOtofgsd`Wy?S+CFFE)I-ryENiT#zqiWvGgZF-=z}QIAb*FO40K zeF+clA}k2yiHLo2#|%tCN2xyJIXH@n6*7G+I@b^>4p#g!!Wj5)WRo5=aY!pFYX9yk z*mW%}*Q)-myF1FZF}g3YPK)0A(o#TxfDWgd!Xf?3Pj#eT)q)cP?N38H43OxKW_+K2 zf(PEiL>!Ea*M2PC31f*hTF$dMDFQh_pO-d3Z<&*fBYI`G~&FyQ?GJN-Q@->Le?Bdj$quMR|Dvzk41^%8)Vh%png? zPlA~Kh6c{y?#<&!F}5@a_&Zc2Pl*N>56{Bf+{eeKr?S`R>cu2_Lye)6i&6goHPtVse68(#WLqTtWq!n#qOhwVX@03rw_UU^PzETx6b&OBHG=XzW$e9xb*-Xfg(ipU^X(#ka`} z4`F}HE=Vur%X!e>6+j(a8OVt zc7wLF_$bf8_)JW-7Um*8J{mo}#rgR^ySuMmw()lc3$r{&9v2sn=l7f?4QsP*{^XKn_(X{;? zL^%BwI@mmO*o{ zXxHWCA&T-~8N08J-nj9C6B@GKvQFcqcCFTYWpV_GCm_(JwiqU3B`axH6ML6X(_cMl z1sOp#iRo5jfuK-(Cy=ncsokt&!x5y4#ahGYJW7=o5pv|0R6e=9jE#!}I(xMQsK-M2 z=FJ-$8yoNqV7z>Ja&=`FUVHNpNsDGBRgQ4i=MpP_MQLi@(c6;s0R)F2|u^qhmMBj5XWN zis4zDpKr0E8n%ywn*9ISN)5`=;aC_`h*0ENH~2mclp>#xVXQSf+UdUT?(Pi+BDOMQ z1hURDi(hwV0T+R#-luIdv@A~N<#K+W#TxM+T3d#G_mVcVxA>*f5F{8VO!?S;$Ly&4 zzYcP82$?i{Hso0FZR+ao;4qQY)cYOhRGkBwoZZi8k6d)s`~TCE8Z4K&nELrlk|JWl zy5#A{Tw(IX7)CaSqn+#P?%r@@PC~_qkPocg+PWtDYeGa=Z1AHl@NfeOYqSgUz`Q`O zaMrV`gK2bbWRO3mV~&8*zOYlP(h!)7s2{CqjLAmmm=`D z|0OO&RlIL}oSBm|Wn>2(1LNxIDrsmtJw5&VcN*&H8n(XIVAHi2NQsE1cRyP)W!)7fo=Pek-4s?WK_XJGvN>MAZWGBPHnP^AQXb!w%V7|r*j z0x}2t+X`~1XC4nef(u4p2#BJvq99C;sdsmv5O2S+iK|-a;)^sytC;RX#8qS8Kk!*ZY*u~Y^kg2HLsFqrC`fgC} zjMsY#uOwOMDRb8&3h4r6jX(L3Wu&XPg!R?xKd?&T!< z3)3h&`28E7ghXBjl-H31Q$wjKYTom<&~wgMc0)?1Un5k!%4*=S8#sxboS&prR>`MP zCVYDUzZySsNy?S~xt+89t5QuiJ2JKu@ku2|nPo$LZ0uG+L5;L@{!g(4HNwfY@!VW@ zMgBJtMcdmszkV_0hX#lg7d(AN=L$cOE3k?qJNgnsf)kM_mjCn13))=p43PH&QdvM? zNMFB1;+2qU3E$HvI-2)#1+K(Gf`mkwlvq@eVpCtf_zC*2%6kS|vQb@~e{*wv&3GCX zEAu>1*!8W$M1B1h$$*KZiMTX{az2d+VfPXI$VJsQ{Yw$h87hA@XAB%(}J1y;fg4E*DQj4CwwRLG+TwI%9jY>(o<3>*~G6qA87=e6*;D5EUsw3Y(CS5F5L`Za^X~ z4$jFbO+m59&ejY(=k85$cRchD_e{wt0@W}%4*X{nlPePwq1n!)aik8zHj(jSru7z5 z%~)q+ONZ;P5d37iYG0Y%k!syREHPh-<++On;_*y}(01=8IONTVamX(qcnX4T%p~Bkzo={)lKoX{md=@m( z<{s>p!JR))aF%gO`8x43+O0Aqb20nRR_DCZEiH4hzK0PB5m4R9v6j&~+N!7Lue*)+ z@0OiT*Q5b*6Pj>svfM;)J3HUmZr4| zKhljIZrD=_3W(HzSM0(5vO(2*ZqA+64k8T|if<|nXlTz}Tn?ixNF6AJx)Nj_ zxN_vFMKm>0B24+*%7F;HG_4inZlYz_uT;{?pHTrh{V&^Q#^1eb@9+1?4$Xb}OjSlE zZAk3TE^lLJoARvH-6wE%r zNElPp*f={fQuh73rK4kYN5@Lcz+Y?>Dj^{uCMM`qb8GA3{5(Dmj+u#O*^DV0L?mxr z`>Pd4N<)K{p)Jp$ZTFzMFb!SZ z-JJ#vH8mj~kLC^m)hc&gepQ;io0}LXCk>~z)?rIqhA)wXO*LgRIi|INBA#yi)0P>- z!;1}^RkyeKKqRxX1IEtIZutspSpDZ0b5Z-PKYrZ0_DGIdnO3!9iJ!|pVUN+!)!uDr z)KD`N^0;>NHZNNB^$f1<%vqbqx5y^bAc*b{3i^KHMAWu8on*_Rlr>1ifmTu5=sadq z(fR%F@%qN-rCj2ju}OCAYWf1A6#7%oiD%nRfeP6eqtY3m$JCXqFR$ z^`vzJ_~RuSn!KW7Rase^3p|#H7y0?~l$4a4yE|RN_tey0-rnG#+3iadob<;Ksj8}i zTvN_IKSgG&6|;F=m^tbN1Ul*~nWieT@PdNCHAGw9;zUjTtfOPBrG?8af70W;Kc>2* zguPf{m)Ln$rNKfW`(+1S#%hj%rjGmjsR}=X7j$h(u&U}yc8h$?iOi)e8x!E!;Er8Q zN6F-Kg(dG~n7@MR{DH6+i-;Z-7B|h!q^!1VK|Rn>bZF??)*XED_J2MrZqkg;T(ULc zCXC>=C(h15`QZ8|dMBfwRIT*#R|)&oVQ6Dhaa!uEc_pRRSGgQ8=bR+&N~wW8Qwym_T>d%h<1) z6Ip=C_kwqsW7l*CJYD=npK(OaFGQqk5XASFGlG&Es@*e^Fv zPELM$hdeYo`fKkZJ3E`}vb>x@NT{pMVjQ-!b8~w;`|Fn$DNMJ=h(%3PvremA)6ln} zvC+-hc}hR)<+Gm20?FyADTcc+G$c_Q8+wS`>Qto~-N?uY5fM>ZTH2b&R?LBh2W4l+RV4Oi>KChW(TItclWjw#2ro?74KqftB>CgO=K*{%qC6q9qemY z$OxI;ES&bY_nWQla9ac2rD?;KTwPPMM(Y$*?k=gQ$jbVx%m3y@QGukxw?fzWAr0sF z*;zR@?cCH^z<>(f!|=#B7Z;3?`L6Rs0xhE6l|M-;thCg+C2MBt)Y{ApuzzpM_S$}# zXK^yY91I^}Iyh=Ovp1BT-3V4sLr7?6p>D_1Gp4h1gp<<&zv+xULQP-2FL4AE4lk)F z&-!e*N}et!>98!d_nTZ-wpNFoeaOpK$D+7GfL?YNuIYDaYhtikTXjUl$@$Ih6lqAf zw6rp@Zkw^HQEgTutc{rqSngs9xcR2|P)+HjHOy^_a>|e7_Udaa8q9BKAE2qZV>Y8_ z`j-`+1^vzPw(T_Jg@uK7en}}Q;sui-BA|+%wpa*#uS)q>l@e(72W}P?BTubOI9yXt zkDs64=kC&u$Xi`q-PDvaY3Tgytj*`f+18dJsxKpF)yqgkS2q*LL|WPwkCS|{&0#TA zdKUcX$Ve2yT!)37LM56%dwXL7!(5llUH2*sxb)a4g(})=Y8-rgbZH~KJ&ifC2{W@2 z)7GI>RAzY063uaSk=;C+%B(-&nGDT0wAg(Y7rp$eb|1WF(hMac`{Y7<6ieFm)UZGB z4JVEiH*GAZ&J-0|$%atjjWD&c(f1*t;uLJ^J@*e#!dSRVK9`I#y<-W&$Tnf+R0gQmJK0RgQ!8xAO`GLjZ$Y$B=6aC7eF2OXZ8vZNB( z=&NOmxI0A>EiC16j}>AOt{=oe5$d|#G+sSs`3JV)E=^s1b5QDeQpx!leXEZr2bTua zIMgnQyLPeGQYWKYOv|l?p~tr-&-go3J&R}^Bb~wchvJ5&o+1AzQRf(#Le*_8oeJ@g z8p}hnUs@E?Kx}{QcKI%z56@_mI28v62QP0+Q4uvQtu#4i^B$g@f&w`3gQje<@8Skz z<>YKFEvuV=UCjP6{rR(JzdyG^q0sjB_HYcc%JTVD7Wbpoj>E%4aJ3{z{hFJDGeMCt zNXtu0QBYCqIndG2F0QWdu(9WtfCdjPgR!+?Q#KbeHy4+))ei52yB(3E71_hX%92tU ztcYiaTl}8KM)K+@qZvdFmNYe8U3p)BtQu(R?wuvO1jrQ?O!5J9jg7ruv-?pb$s>@Y zHL0!4x>QU$Uoi0Qp5L>&w1`g0{6KM4$=}%jqiA49M`Nwq0=y&_(UgPazyp2)Yln4U zT-}z>J9XkMu4L<}tG~mdy0~az%)ubd0$jgDt&d#Fdu!nDZ~XCNFlgTB?0NH&8^RDE zF-;=0y0Dzpb-rNxpqU;}} zq%;UBJ`iJ)Pw!f0XAhj6W{?Rkw;3P7CngTJw@Wh!l~q)7?@s%>hlWZsGKBZ;S$=L^ zyr;(H-~j7IPoI|CU%@~gP&7?)v~LR?S-LyUi_>3y0fgIfww|hb5~U1QGcy-8hQh4c z%wV}m0QXPXeMMWE$L*TcxaE(DLC_9}E!yK>h0JALIUe=mw9R`29)J6e`66U^czAYJ zBU?e!z`*{7)n|YOA62u;z|P(tJhZW{`)P$6ba7Y=iQ_9>$JL*bHJ=#TkLyzh3%OA%;e`C_{a)d^?)#&-dM|G)>8YY*N7a9 z6~HYXR@su_JJWAK!63b>@K$@EKM;c0bkl_Q6c5}rNLWbKZC9{;iX5Kg-VIw@TPe!K z^YhP5=U%ia!_1x6J?0mf#Kd|A2CGX;HV*#qZ1?ZCX_AwM{jq+rt0rT<-u zi~v7>v)*BY&D`?T-VPjoHLL6J^4Zf7HWqGf_rqo0vqA>0%jsgpxR{s)A;~IGNyd$l zjV)1%QbAr`yYpv)3^zYNrJnt5gN^;}h05)X@5!t#Fs+#pyvWI<7jm!EB(HAja=HC{ zu8}q5^>AV{cPJ)781d852C5SK%cM7$e#1bv3zllYEL6CrYuHZp`;As=V9R=o%MScm z$5ZdSU3Y~zafcm?+P{k@HVN(&5fYnf&72mr1HC4}BPn`qsfUkkg?4lueBWZ8YlF5e z>n`x&=RpRb?etM}jNR*TFM*rIhOLAI_b*~wzmnDYU3jKq&@duGGIRXK7&{DP3fJ%q z+h^w9S2G}Xce{YE!^`{m<)!;7FG)vA?vUxj$=2NAas&rq#0Hli%#ojqs~Kyk;lH)M zp-pk{Jqi6~HvHhne+nhZpX4#i=H^j>h7E*; z&`Wpy$8}-uX;f3^?>CQJ15@p(%TC85*B^@4B39|R2E9&CYzB_RR#~xPHdO6DY~385 zY+EwDefyCT3#3^d`1!N>@5F&AO=oAP#duCbQ}MTNJX%B~e4oE}baYfzF~5D=eMXP)LGE)AJEdS z0P=A3n8qfH^9w2}N>n+WTi&;Cr73kzE=gS_SLeYr_xE(2F3SNYRDJ((k{5k>`K_}v zFeD@x*Yn+mTM&)(cE={kR_r{W-fY|VZrm*I5GecrsDDrV&by4h?EKal5*RWRY`-^o z9sBW_Fm;lssOZsh3ouDadTIY0(jue@lLfJIi{r8GFamaysFB<$*Cr$ z16U^N>ZVWZGbb&H$;g1QGb1Nwb(#3x-bEge?Ge$@1Vk<;K{Ku>;#w*ynmX3ny!d5h zI2Pk{zP`*jcuVt&8k)tfZhWhD@9<+-x3)IFf3M!%9UEg6(Dvs(x8KeltVw6Z3)M+> zm5HeSR$uw6))_zn#x=4o)NgSO=^ASQ2JTR9?{oW-IVJvpNk2e9On;ir%rpUK2pD+= z2S1pYure8R%I1})CBKlB-D991_(Qj~zkp(BXy$Z6Mda;zF$9Hj47Axvy!+(CPfaJo zFF?}R!Ye_&2Uc&jz}_BqUiG)iM+R8%%fM%lBC{r&7HJ1oP@}le^>G52 z(X6an#!hNl^XD*FdX8Ktu;h5cp;~g$QFunGvvaZ`JyWfGBf~YrMp+f#kJag-nDuMH z1o#&qsW6YGF)8xsfuCX#ebb*lfeDxj@SfZM&K~^0`Z$4r4h3zz)E59hz(9{|lA`R? zD6(7DuI4k;?^kVBHEpn4!la&klg{0GTevUXKh69V4L+AZz zV%NV_WQN8!dHE7U?YEJ|6*JUve@K- z+q`yx4aMwXRUmEirp1)z&6_N+#&fe-k?=NmQA59*qON~a!N`xyc6h_h*e-ARb|for z9!ZIzVqiO4UHrhy%KHp9A}jmX`$~{yO_HU{omrQI=3iM^jLSpLHT4>RoQ!7FEiV5z*f8(GM1W!ur0P?WeyC>~vWnJmb2>)#udoB- zvh}Jm@(9%wL5_NQITQyIv%0RBCpFLKVn*|lEg5djVp6w&0Ng|Aaz!oQX|Pdnqn`gL z@*njCG-?_ei%Y<{lx2ux*Q&;pmKlYjnipTAh49pEc%cS$r)*fpn;`OQ6^4R~`G_e( z>eHv`&Mlymbd=QS=fb$vszM)<^VIy*t(Zl3-<}!RoXy2rCpcYmsuHSE}Qkx*Yc%hXz0)gfCn9`ZD;RXa`-~KmX72Sau&C`!$ zS(ogYjEL3s*gs5%$Hc|EO>0fr5NfkwXaj7?!&RNNX#f)c3|h5iYReT6P)Nm_WW_`$ z_gu9<@yUyME8EBEt3Qq>KJnhs&+>zAKT!}WZT;%QF8n42gPeqh>s87e|V z5|Nt=s;?+GI8=2!{ET=r?tPUHnO|JY0Pp*S{7K7Ei2+3AM#SK58d};K-WyFCY(xKt z24NtU4ck2?VTU6YJ?&rfrgt+@cL`&{6p)42UR&SG{RuTO4~jUu2sTD4nj^R z#uF~iT+EiUzdu(MqjG*m(-%elT68oxPA3sjP3g0^nCll=<zu`}rBdw_kX99{^^uJdU$Gd%-lTDoS!;XsuzDc{T_W?$|_h zVKQ12S&gwzghCCWbG-k_--xL9K{@PPqpvbJZ!_km=RG#o|H$PG4N2dTyd{mpd;MD3 z(9pqQe09`m-J(?eug8;^-=n&@IlbFRi!eMaj1o&)SvjGjqoia=pf`@YL{JDm z6pRe+=PGTNEi^Q7DN11Qyu7?GqKfkW! zFr}<_T$k^pW^=CB{LzF*F{JJ$eV`5kv>tH-u2Fc z*^(#d0IzCdB12}dm5!Z(>hyi5FWk_7rQg6~XE;^97y9Eq5Gq@dDzqavHvzodPrjDz z#$E9oSRm52aegRa9;)TllAQ)1zJtuQtJ|A7yM0ZRs{f5g_WPHCwf~JO^z&GOq#VNM z*4q;ki!F#4o2f+;HI+6evQ0yMQBk|^9Sj_u_Lzs^lpe;+uh{1us7Bg1n(o7eKfu{=SnK1ZOw$Q)Un2ze>|FPQs{q$62g!`decJt+> zu)OAx6CW2qh}yW>7$&N_u*l1f*bHZ`ar^(hIODqPp%2yNLi>Pt7PKULKy|ftbKP)+ zXNn*zD+{zd1YBI)ECxDV1<{x2=n9I84mLJ*O=&49Eo@PsSYSB9yzOO$Zqq0(Zj{-q z2-5TCyxMAwSz&D4+;fwY2?+_G9J)MCHj5PekXc?G;o;%k_;fDR{xqgSMMcnhf#O{I z-If=P%EO+iqo9ECUGJ)a+ev=ht1L1kq^CyAOsihQkcOXxQuqj%^_bhH$_vhf!+OVh zl3tP$x?vrUP<#38dvwfe7R(rdw?ta(qZ(ySTB_E|mxy4pLH{?|99hL9OPi5u zFj@U`r|xkKGQd+Eo`c=3rk@^EhOe~6fT~o#f}`a(I-WEelxO@d~pGZ$EV{`8@2_Dw^3?-0SnG(=np(s4?KbZ zgR0z&4B)^gAtW3g9CTDdAXXIJ{qv``CM`9!b-oDohb0F93Jmo1Nf%BzaFUridw5&} z4Mk6H8K|hXOfoegTUIowS5_GZm-5IT5F*4jPds{idx_EEx^`#~ejHNL4{U7Mcxj;G zy^}XIwm9#zwu^arWhzRjkTaw%L5vV~vKba$NE~Yhd|PVQQu|WNO3Mw=Hb|S7er`Ny zR2B4N{Y(rv3jYSpgovcuK_tpDi{$WIZA(Fb_K}b<-r5YS)E{BNZ;Y{c3~!riwFOp( z-Shgg6FCY3&-RUt4IXq!nc9h2Ir-3m{#aDBJ~LCjclJk*)U5#5ZB(9`isHXrn;RoB zbgH|i61qKn3$DQ$^XJGfof>okTDK#YHZY5+}hma1bHNePKY zpCb^hLHv%II!vJ$z&9)`EOZyUBBDO5PO{>Y36YYJw4uQtBPIJS<)Skb;8#~oIxewy z)RkKvlJ`bF=N{)$`&@pjoCJ|3Kco96X3qWm{N2hp;mrq*L|NRd%hQ9&o+GwrM&R>==sNz3B_AL-HW-|HtHeA!TQ4V1KzgTq5o0s?78 zMZBm!t~vjMMi90J?DA97(?HmNS1Ud6HPf?~algt-NU+)6O)zF%$N=%(O2ooP8Q9NPo9ekvF)eDz(&JKrzdVl&EiuuqOHQ-_Di z2??URyK_G`r8-vWa@=*pHow$`3kr0YSbmW#{9|igC{?(eoO~!6E>Wp38yAh8RPoTh z1fmot_5}F&raarO(=$p7#C&E}@@Qa|$3kGPmh9y^gz`y`vw11@Z&_7N1p}9*RQ+<3E`#7%4WD13U%fFk`v%ZTyZ;cAxH<*~@ZO(;C zb^0b&%TJCT89of}&e}8kjxp^x9=nN?bO`n8@YKnodi(MiR{h2K<>VyZU z*NohD{&#wMc5%^H#^s0f)U=j9H1ui0pk_(3&UVcIi1O(*?{`4?*d5>#@h(3@dJ+G8 z5Tyz`@)-rl%hf}{<;I29r=L}Yt)Fl=GBTbvhc{QX*xw%&;t(~wH4q21M9;LLfq?;^ z_WfZF>^W8*p84r%RRaU21Swl|=h5TKOO3J_L_|d34gwClsHiAMJHp7lFL7~-3JQYm zhs0?k4ZMS_TQyDG`V}w?)OvHX8wO@%CZ?VSE1F6Z7Qs${z`0-MeVO*59mnEmVAZ)Rg)LiA;>o(mREteBNx zJrLp7-2it3ENLxz5n~@?3F64Sr+2Ld{l7MFjtp4vvN*neBqIq9J^_duU^1h`Iy_DV z88Wowi!qLGv@0q`1O=l41OGPxGGe*IU0zKCXo}Qk<1kTN2if$@=f4PDoMkf>3-2BO zHzY~$NwC0>zz%$vN^j^`qvqskxAp1P{=TiAo}Qzlqlt-$l9H0Yf7fHQW1t!x4oWC2 zwIVDm?0~BXotTFOcus_ba&vRLz%x8Kd3%!sTl2?`GkEO)tHEbJ{ZF4Z+!!%{!2Ai2 z7~|vIFgP+J)8%`r79O-d9H|z)PgYibqKN9nHZ%+zcD*-0_5<^p^KRB}?)&fizV?0l zOZgbn`Lr@wmyW@1&|yN^H54s0b?+@b6xlpHY!e0#K071A!wXJKyw%SN+r+Y{tgly_ zpNOxTR(|!0h+$4NH9cDZ6OS94n15|PoeaBvel7Pu9?4UjLwly~?~&-#=O&aa7op>I zb)rsAXWiX5F)>jeKT1D5{1=I;S5mJ=V>>uLr(6<>hW69$w0}Qvp*gR4{bs%YzW;0A z*T3KV{$r6=la2ug#=WiT`YWslX_~9%B>#uCga86csPpOe5Kv<>HJJ86SRZMV{ff1{ zJ#=X3Q{4h5Cui#OQBq*jnwgm)Mt{%Cy8uhw0T-!X z{c2mi5_@-L6v8+kFaP;1+}yRS%*^Sj9s|AdlF~)TLC@@31K-*V_95v*8EUOK%tZl$ zNP+97YheCo@PJto=f&n72i`z3um^L zvJu$f+JDUZ?`hb(xX3C%DKhodRYjfBxoP&2lV;w(=S|Wd(&u_pU3l-ip?Q7*v6mGWeqCn3$+BU*Iw6 zIqE5Mt(mbwfH>e{%w)sP42^07A&2BiL*NkelU4!Hj44|-k5f0MzK!dj(sbZf(Wc%oo&gXs?8XQu4OB;D=!#3KQ6` z${3@#f0i*=8nm3K_v&gFJ=*ht*EA`@ zar5VMS!(oEaq@I7hQF=y1Tp}IWIw3HkT;jKv{)M!=F!)8@hoV!C-e;w^co_^_4)-V z?mt~HW#H0yobog6s&Q)@pta86;Q@@m8$2ct@c0|_V(S*0ufE1xNY3Mca~(Z$=vCXv zSZ4QyTTRbUj^#B|R&(`+nC<;>jkt2nlLRR_Ma8rs)5}xrCNMZFP$VWMj8^3Uu(P6~ z;)Bfq8$K!t2?+!4h(XRKERZ3JM2dj1o zygegz!LFufzOu5U`8vr#MI}M?}gP{--a&Tl+f1}i4 zfZE!vJhJr#$=FM>HJYmK|FH!Ew8DarGQu<{7+y<8>9Xq@p6gf1^KXd^RaaLB1O!}O zx@B%3N)SX6$Q0I=mC4ejn45zFP|IOqNEV+@b&b8ebf}XGi;I^i-MNRAMvpHpU)|BseprLRw1QqRb)I=lm1tzw594k7a4&j+6_PX8Yfjch+1V^aR5}TE5{G1LO-H$iFY-1>=(BerUjD% zC&a}3x#{!c8**R7z>OaPoErcMGiCW94n&h!a2T)jjEm*7ayGE@-tcwH`{m?f93ClV zrLR*`MF8)%qy#!ZDqHCT5E@cJf^`CSw3smf7+-9g7G$1E9N+sG`wLkZizFwX|4VV_ zVlI7WgRjU@NV}z}`m%wxE`jEwJ`FD-Q`m{3yA!uTD1%rK5?;nA1)15Fq{5%ikRgT; z*>RR8humo{(&jGT?V*w0yLhdm%$qdk;2meS>|wIsM5o+07#neEnyWPT%GY+cOI81F z)!UP}{oZ$tca7@zKJ2V@`9S=&(Nm{~l6`*=3BCV!cQI!JFvulpiDoTxdypc}CA)i* zpH3iC;DO1HR5O4n95V-IJs{BiuetvvP)hT_qibfYcX*)wm&E@NN=q|}7LKmOmG!`t zu~R#}3xZUNi;F*?;6BSsq@;qH^?Q}2?DG6Z%rH@Rm2;Ung6CT@;sSmF<@+SKw~Yeb zOJ*nPI(3JgbcJX^CAbzRNnO{UsFvnx+>!3ux?Q=Vq~ia`veNLAG|O_f(w*+N{4{3f zIkNrysUmNTKQX2SD_F2YBv?0&@^?o|Ev}?F;Sw|~)$7p&%?)@~}+k5N%#s`t-2rQ&=j3YABpF0fN zDl;jifkWI?UtL{(nmoioFQ>=~TU;62GpA|o$fhCV6aI>QlOEGjqutWwiAQ@c+C$2t zk=T|icl>Qgw!#2Qv~@%4+L6F`R6b4YR#VrBdWjl`ysG+zTV~owpX!B|4GT?ZUvtW{Q;E^`jWt+8!RG_TFGrz3H#tiLt3 zr*_UUH$>Sq?;U2OEKHEb?kjIyzsxZFVat^>&iG z(z}$+Bt%M~y<=xyJ2^v#iRL)bKRfDxTCeB{Y);)Vj%Hyc}Tkk!# z;2U>2YR^7miYH(iXPCFG*mDrJtuUeX^2B0glA&T5b`(KK2@NcID49Y=8FPI_!GSC8;BuCOM8rq=UQZ~>SmBFB zhC*A19fv|&Hfb17?Bqtk6gDmjLCF3^y-X_3G&Zb-W(4(ZBxWDa#Kp?V{IdO0tjVq5 zkWd>m|M%<7bXenxASdCieRwZsA1fcRQHFWw)8J#!mUYA^BhnLU3ZW2tjl#0J>viT~ z>(ErRg}H_&)Z*}^MT*~;&)j>-K8x^!FWx4L#K{v9m2}+Nr>2jMHAYp^Va81C1j->a zJx^xcZ)-f48=GQxuR&GU1tKBDH4?h21TzR`5bG=l+FP}%IUMm8gQ~2vC0>y06hS!g z8>O^D@tZ;p)L!xzJ|N1DU>a^QN#hD>mR)9dc(D1$_fpH>N85yPosTB zIt8TIlOT%s2*`Q3Dq`aoF8P#wHm@BWKOm1jfd^Qq6j90?sHv8eh7zK)oJ8Coe9VCC z-%-AB#J5h)KWoXMl&SG}9v;43UK;vg`MZpkwYVM z;?=RBg&C4r!!E6o_|1*4B-#4Ym*9Zw&ik*OZ`mQ&&yclVaf&HF=xJi@=(MleGQ8*+ zn^&Qxl5sB0{w^cRi0Zih=HF6q`w5L8Hr+p<`2E!l_EYm~C+o+D-!~?zBvK;$C^+4E zNG3qc3f@!4e8wbA93Z(faQDfq|4CO+8TkvWGz8?h;kc__Er^R_$J39Plo5zO$Wq9T ziuKG991$vm$Q_xS&`H5R!c#_w1LzTg$fdFnq5n~g4hJAQJ_i&LEG%EOC5m# literal 0 HcmV?d00001 diff --git a/test/reference/aliasing.egl.argb32.ref.png b/test/reference/aliasing.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e20211a6a7dab5b581d8f7ac4ea5e11b373131d4 GIT binary patch literal 112556 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%0D-0XSlRjh3@E*?@+)ye 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 literal 0 HcmV?d00001 diff --git a/test/reference/aliasing.mask.argb32.ref.png b/test/reference/aliasing.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c11eb67d581feae5849071a651475c290536e204 GIT binary patch literal 104324 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%0Dk7W8OK{qF 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 literal 0 HcmV?d00001 diff --git a/test/reference/aliasing.mask.rgb24.ref.png b/test/reference/aliasing.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c11eb67d581feae5849071a651475c290536e204 GIT binary patch literal 104324 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%0Dk7W8OK{qF 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 literal 0 HcmV?d00001 diff --git a/test/reference/aliasing.rgb24.ref.png b/test/reference/aliasing.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c11eb67d581feae5849071a651475c290536e204 GIT binary patch literal 104324 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%0Dk7W8OK{qF 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 literal 0 HcmV?d00001 diff --git a/test/reference/alpha-similar.argb32.ref.png b/test/reference/alpha-similar.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1bfaace40263f92b587fa5b0a2e5b9d2f16fb1 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDxec)B=- tNK8#mNl3^@P+&3;T$~Z2_*I07;m$mUDFJscEeEP$@O1TaS?83{1ORC58s`82 literal 0 HcmV?d00001 diff --git a/test/reference/alpha-similar.egl.argb32.ref.png b/test/reference/alpha-similar.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ef34fb33c58ac418d5c9490d7dcb016d3160dc19 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDypdAc}; zNK8#mNk~|co{*3Lq<{4HrzyD!GBY2pS4$Gf4u_bxCyDxec)B=- tNK8#mNl3^@P+&3;T$~Z2_*I07;m$mUDFJscEeEP$@O1TaS?83{1ORC58s`82 literal 0 HcmV?d00001 diff --git a/test/reference/alpha-similar.mask.rgb24.ref.png b/test/reference/alpha-similar.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f5280a424e79e84c38169c1ed1cbfb3c6988fd GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih|{N6XgH^ literal 0 HcmV?d00001 diff --git a/test/reference/alpha-similar.rgb24.ref.png b/test/reference/alpha-similar.rgb24.ref.png index 4085d60ff1859bcb82e679bbc68ce6c15d3110ac..a1f5280a424e79e84c38169c1ed1cbfb3c6988fd 100644 GIT binary patch delta 51 zcmYd}m>|i)#K6G76cF)hqN1o0ucwP+h{V+71PRt9%nXcX42(y+=d%M9FnGH9xvXD=#=yYPYjl3^L`6|u2~QWt5Q(YDDG3Qb&O5LqD7jr+;q*$Ag<+XEqwrED RaaW*P22WQ%mvv4FO#n}P5{m!; diff --git a/test/reference/api-special-cases.argb32.ref.png b/test/reference/api-special-cases.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..56b88a935b580555685df4b8b9dc68fa64be0222 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhOt2VackKFZFZ|^_s bzs<}tvuw%z2G46iGZ;Kw{an^LB{Ts58jC9} literal 0 HcmV?d00001 diff --git a/test/reference/api-special-cases.mask.argb32.ref.png b/test/reference/api-special-cases.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..56b88a935b580555685df4b8b9dc68fa64be0222 GIT binary patch literal 95 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 literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.base.argb32.ref.png b/test/reference/arc-direction.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2790a2b753b8e4724a2644f27b95451c485f036a GIT binary patch literal 5864 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 qhcS#{Wgl0h=f6XU|MO(xoS$tazrTr literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.mask.argb32.ref.png b/test/reference/arc-direction.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..280c09b6e58a6a0e31d24f260e0a2e88025c8c3e GIT binary patch literal 6380 zcmZu$2Q*wy+h1$7=p`&x$%-x(kwtWtutZ6s_bwu=5^Z&YRl+LKdl0=vM9nJEqJ{|3 zR)`WMgy`kl|NFh?yyq+To;!2Sy)$>7Gk1Pvo{Q1bc|d)G?FIkqf_6$Ta2*iEE_ zDUcYM(W@cpM0CTT*%Pb4CMi^Rt3at=o(X&i)VFp>E3LhXdjIHqg|v3c{mm^pF>5P9 zn@AOSLRdv4NFyim_B?~9*TwmjbpNXz$Xx%C|Cr#iTmWxOP+;D--@o_Kqv%ul2dW6Y zeODfp%^Pp^I4j7XyoKr&#ww9Kp?@1H1iY!IRsba2RJs{-Qs9*@I~iNizhTHG_qtj)?@$|fg@SHFhDlgCTan|B1f*qv|Ltsfg05X;my ztZZs(x);OP^gj73k}u`>p6#xAYe1UG-?Xj)dSxvwElo{L1OgNq85zl|_1akEb!+Q= z3LOih2h5a&(D(O2dI(Tjs-9LH$muFrNmcinv!}DO^YZ*S<1y~;VY*MIytWzhb|8ft#On-W%68a%WY!Q~gN2o2ZfV=({wnrYaVxum4TMCA2d zr_t4)KU+R_y3R^WPwBG07X5p27e?zeinCQVW%F{G7V_#^Mj2O64-abt>g(%wc6J){ z6*)fmCVr$I9==^^Fq$UR;zZTf)+Q`0+=8)`@z1B(o(a=0u6rS@p7=WDs5~ETNUt!p z&?iKI*#CuB!T-cw*BPTU-+adYa`hsBO`=C33HA4*U{3_;_vUTrl!{D zIP$}X4M_>DC@+@@xw}ViWOxgGzc2AXyu@M@DyAWY36Pn!?zIO)6rY~{P4Gs>@y?_2JNi?&$u&}Vb zT~1h7iwdo--nYBZmYtnlV!Q5fEZT7iFDaw^eZ4PaVsdyiH#H-`dR}ez?u9Tff1GW; zSeVZ?UA{JlG3fd8=Uda&lUsk41t@g#f#1l_g)kpnOT2-$f48e0yxdikWGqR{}kF1<};jrh)@@!BTGX`B#T! zh&Kd6z*r4hIJZWd|+-1y!3iA%%{ zX2n%)#?N{_lr}ZD6^AqiC34COiHM{MkwPr}f2I-e8FPAOVPTQn2s8gsS60R!1D5kw zIat?XCaz(+i7kM2qr815+x;0D*%J;=>bbK+$pg@6-bAA4(}Q)g3$+G2t2%4te2r%8 zqUEL?J{Ezye|Y>@ADgocgc{e|lEi^g#%(^;*UZM9fikj329<^whAwt@F$|Fr5(%uU zwH!&h9FZc9!>=SNIvK;F9gjxttLX zfjYamB;RV5Q&6x((YZIy_QkXIWD(}2q-QLnx>$AFSS}|y6%o#}zUCMkXE(~prJJ|& z`xY=|u=hSGgupe?&7oA=6B83{zQ37$s(*|xJZ$sP_m(`+sIr3LIvuIKENlGUUnh~X zv9rIp&#@(j8sGG`JirhZnyvWccDQ=6NvrqM;sL?-C{okb)aPLD`+tyw)wQ$^>H_vY z&81)lWq*H}HZWB`fjt(?tj~{jwm+0U%sx8)cy00IWWnP~?qPPH7(?D2C9~$CH=#D$ z?c}6nWYO%`;%bhLYXy^XGj7dgrKJtlgF{0NrqzpUB|nx?NnepBCfeNuJn7YBF6cac z+7QcqchX^TI1bd_J$Uy!2+FDe|`_$Cb z;s=SI$E>uRa(E!jIkRWEB;E2)Oilhc8i-De+=F3EJYBE$AT&lf1>*dKr z*A)i~h~ZXHP`D5S#l3lRTXTjW-`|^_{a$D@GBZPOj2HSJtR*mGzvpITY}^8lHcW@G z%4e;Om8nK=xV>E9;LRknj;1%S$Q=R>w$9I$7sJ@Dg6@tM&hFo8LvkK|({k1}#lk;I0 z(@I~$!3Rh@Yq3)Fb~|@$D|pje(urngL5oFn{PO&r9ocnnX&p?xot#fM4-(wS$H&L1 z5J*^?j1xGV(!+-%VZ>zd>cuc+?cDnYU2|UsQ~1#_N)u*x1NPPO!=%_YaYPm6x7>uI z7IdO%AKMmzwkJ#dW0bm;zgL+wR#a9lWPfvP3_9B^6E>{Va4y zbwZi#@?xE{*2#W+DD808X;IhUgCEv1*u>Mv67>7yb?3W>?WkpyE;5}NSGe2W>%2Tm z6O+M?lTq2<8lOc;Z{EDgc@MqLL4v3YQ5>_>SKi#bP?~aNUvzt7^nj8DIUKxK5KV5Z zJ>S>c+kU)=?({io(VZ8PeLA8#fiVk7nUCb8a$K6jZLRuI{X=<9*=m?Hz}=t8#shBD46R~J#%Dv zRP79=ufOZd$vO8K?mC0J4-gj@Cx|G0yS`ZVNY$(ixtrU{tvS-#7h9kibb#|1C!2hh z%=zm(yYD!mNlukcj~*rCd2Vni1ZMOt4*So4@W{>0RZttBWp(?Wo{{{zuU5^!u;gXm zD~Hj%R7Boo{qburR(KHCamVsmFNU#d_R`gFy(?g{SzR^cs!{i7Owma++-3)s6!^&0 zbV!ucz2ooeYq~0{k9izu+!PC^_M{@*l^kbj*q0Qv(zhJhP+Ex51hIp`#_yczDSgB> zQF1f9;T=a=W2b;-z(5X&KPRce73pkcmA{(UYuxTvKZ8IR-L?#|_yNB7lYaZr%Ri+( zXW9>q;4*>M)&*5n+CoRxj4KuoxlKGjsH=WFGr%k0I3)P`$i&L^rum90DuiTYWFSW< z5edIYcSda1uirZ3iuUybgOBPhlfejhf_}6<$4?s4gS4zp{r^Zr+0BdUCD`BbdO}8?8+V< z0hP=leA>8F!3-J3Mkl)?S3X}g8ZuF&2C{_3DN*ZDN)nm3K9t;(OCoNk z8YXcBDE}OZg{VnN>iM_KATHynzISBbmSpLC5%=D`Y=7m`=quMbzMmVzCKN^0h(QFM zJ|Eo(ObQ0bDtvCDRAf-ueIpcY(qX!N#u}Z+DI|!E@2C=yHnVYJ zq^qWc0d^gDvASM1w+Bps0P-_MLED1sgDN z&51b6)rsBOHqmkB7xCAGHq9+{?48zQ3at&>vE>t~~LrC*t2E10c#jBf~Xm^*=QNdb(i3zdnTN%&Z`NG2YWhm$qIhPlFgFbf9 zT3eCH0YO`IBpG4OecL-Yg)t*@&krx+p0A~-t7@g6&2Nm)2vpYB?giQgX?RH#-pu{Y z+Cf@WvOT*HpB5bejN_GFDJ>9t&NiCgzrQjt%%p&`U6yhh2n{2;xH?vG4+ISukWm4y zS5~S;@X{#GjK1Vco@PavJ2N|}SwpK%>1k?)!lzO!oDilqcVq=L>82Y$GNqCokL1HH z4SRdinP3`b>U6n1Nnf&by`=mi_0Cc^TPlUt%cfy2+NZ10n%1~oPH2PO|0eEc*#nXn zjHllduR@&}v3W#olg61JAsWxBD<=xxfL^?KTNT+R&PrcnuB=898%xJUo8D5#&^Oeh zktW6xRY}7I*jJ+0BQhr%*vSClx%J3WK`lxmdAXC}>Gkf?yi)0MBQMK~BdQD~G6iJk zRx}8`Be#FVrMutkC`IVv537reXPgSFMBgSQGC&K)J3eY zM;bA!;s8TKf0^<&!I>Hhm-8XK z{qr>ZaKErCv|B|IUewCgl|gw>Q-O$ykKC?#Kfbl>*+fEQ8oF9T?5(5-;ASANxU>rk zphEYRe)7jTjy@@n$`X&b z)(!5oUvKxOI6WoE&4vt9dAV^XB;d)`wiI~oZQ2L~vm>PzsT5Q#z4qj@G6G~+mDD6G zB*=<1m~^fSlwo|m=9n>ZvZsBH zOwFEg(APVjCm%e?6%cbom*B`1bw_3U*(yUAVRc25b1J0v{0W(twh`v{f8WB#d+N=? zPvCF1&kCfPi146CPBVh;w#Y26J4ihc!utp4K&Z?-Jod1db|D1^>bY^t44e zXXNHJlgBt;21JRIXI$x<4kgJa5y0Uf(!*^nx=m494pZqH0z$#y0=2k|UL|d4MuR45 z6giMfzDDGuiK?X-dr2M>8gq8$JS%~*t0Ra%SRk9`v+821p8Fv~hv>a?Sne~f9&QmJ zlntEp#Z!J}73ILV;y;i95uE~k;q7}C6Z{jcFqKFy{loy%w0CIGU60Y5hDJn-!08p} zJJr-HaJdC6K*AW`=h7tO^`}Lm$HA2NIT22g>SEvuv+7(G z-t~Eh_Nu9ARD6(w7?wwuSYFD`;msQ{sqvL%2k5$^X#Am=_G)hqpE{3luYzp^R+$z+CE=Z7&V1O(`rP_%KJACV}WWcG+E(YiXiyZoX!Wln<7 zKxD$LuG!%1MMZi>(eEVvGx8ZEiN=UKaDMo2IHA+lroN znNHN#Bia2p(u^<_e1-P#Fgm52 zzPn9vcJ8sq{pXLK!Ov;{pxJ#zU0NN+Lv>A$MDrHh7$ByRxvZWE)znprwCk_)D(he4 z0V?ftkZCIBV9d0SKhyT{eVxG*bg zh9Z|b&)TS(XTv*J9;W9wf4t;g+WI|PQ4}~sNIW|g>iqoE>pLggccmd38o06GzUvKY z(sFQ~=9Fw(bPA4#8)!`Pr1f+olKLrP{9E+p`TlZrhC(iFpd}~tXI=z&vyQk)M|ldE z9h!g>pwJNsBmcGKaU{~vkd&V|V@&bu4OFZ()TMx40MxzfoPV~^C*_7;)dW)s2qb+= zJ`hLIyd{ebgRuIu;>)dM2L_d&3jW%{W@0dmHt^z#*jeHxP9lR))(mnmfL-rwN*KUX zz>g|yWJDkT@cr0>=O&o6^!}yX;auUNpVR!LIa0so(`IO#!(QMxx%C@{gyXP0K$`1Q z+Qk4$eqEXl2KKm%KufyGPiS>Z57JIHRI?k5Q~}^wQn`N&;CTpwT>W8jotL(E`K96_ zv^E?z5ko?ml&7$5=NooSqCBVYl$h!$W|k#+x%`tv-H*;=O8E#H2+t^q*`nu+ literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.mask.rgb24.ref.png b/test/reference/arc-direction.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..280c09b6e58a6a0e31d24f260e0a2e88025c8c3e GIT binary patch literal 6380 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 literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.ps.ref.png b/test/reference/arc-direction.ps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..902ab4578ee81e9d6a86053517dc312213cbf210 GIT binary patch literal 3295 zcmZu!XHXMbw++Q4kkF+_5sV;3dd;OsD3N9$fFK}ME+urX$fZgMMXGR--lPZ!3Pgy6 zUN0h26{G}dq7(_BMnehZi@rDWX1;lI=B&MEpPzg0b=FEon;WsQ3bFzK05%h2Lo0fG z{_BDn>4>qO%%BJ09Wx_Cz}c@;)>ZQe0Dxwj80y^&E8cN>oAXSQ`+0{KkE{MD;oPNBv2H)5QxW<|ytdAi;%iftWtdR@T|1qfgjf~&<_~+_L^`FW%&qNDGWq|AIA{X^vH1-82S#lANoW2Jg|bxp0vD6QZQ zugoj;^&2cpTK)4Xn-3d>B~o)QuJ2w50nP6!C#Js9q(a-X_+~E*v^Pv_s9?oS9KWBk z5$*+A_4|+SOw^=bSa{K>Z=J|TZ&NC^59W&fe;Wrl-d}WSb(Ht8&-DoJavo_S$Lxle z?$NsUKze0zVv4xZu7>TSK4dRj%DJViRqZX0 zMz*zcnB2jh*d%-@2HRQy+~eI2Y^C3hz-*q8qa|l70HnO{_16Tv9w$08qoxkJ1AU+l z2i-kE;@wFculAy zP7%tV+`FQ!9iTu{><;@AzcrIk4*m#l(E!SM!qhN zEhtfy>Nc6UZJSq)p>}{j++flHHdZoG#lX4Fsq(BHkmlWcH*G!}GhC*>7NeNtKHUWl z$aHYt8T&k|`hJ;%K+)7Jj13|G%>}p15M2#lS|j)+cj*{~MIM0M-7zK9PA#)3cnUCt zTmnw1z$*bMuLJHw>~rT2&L)Z-RZ%L(HFbp_`T~cSCWuSHu#sY!GJoRWi)WJb!B9_h zyBJ=|aXN4wC-%BY)+DRXW>b5@qGoC}=-}}1@Z===sASpY_;@9#cPm~mCLWO`HsX4m z*)FMk!pv7L`ok77GqG}Slg9`+pTHS+17UeSSUBS@dO+k2T$#gwcgP?TE3R}w>PM{# zD0ovfQj*cEfD|4^^cX%L*>m!&PR1llD#cUwXVh|x;9@~JuRii0(=7Q4_11JUZ3QkC z=D8OjaYoypc&*q8u_n6-m`ZQA%a15eP=>N<^2j25)V_T#=C9GWCSmRx4VopB0QTb8{IxJfBvTiqcv>q8kE3IMrhJe7409@4@*cDiK=b>OyH?E29xL)3O(lFequKW+ za|u66f@E;DG8!8aa?GDStj{?U2K_~nSUWX2d5LTg6pNV-X2g+Zo|zq?=^>ia#%?x_ zN$ti!mT2a7qKO69(C0gSlZ9?9{}o<>Iv0WOf=Kb4;f?-esCFG9)4MDzr3jg9k^B zL#BL8fqJznblEBtO~aB8OP{j>Guk$Xufd{4xw3dr~hq~umu^ieh4b&Rx}RJchQCxG2=5 zTa`ZHrBVu_B+)0AY20gj8qjd7*nH|ND#CnVK8`vPfsKQ}XSq5?_?5tk`#T~QOwm&o zz??^axZYProATzyWpUA*m~AgBUz+Z0!`o1Ur)G~$h_L(&PV1`pU#vo2#5!AfY@OO3 z1a-`{rT~vxRy>b{HqHsnX>r;8<()sgq%n5#IHkXqk)-~EY4`)3Ax=Kpp*A>LiXBIZ z3p|^Q25U3zdRSS5EZ3FWIUDejAo$7#sH;se;l=mOtJe9D%CnC>y&ORR^U6}N7=v=} z0av)iv`^p4XRS+#1=tF7@N=T4@_2VA8;=qDofpB|G(~gH1k*tdYh>!b-ep1Vdxowu z)>l103BFP4}I3QdBfQ!3@pV^mn6s$pN_E1R%HNfvA=UXTT(2* zW8MSrexp@X|CRL6xFeP#RT7(zB+f#Ss&=(eI?h$PBiSo|G?$oXuw;#y=<#!V`bni@ zE!5rUti6>#cBcnKRKzUCss@`C5w4%1Fu!+yedQDQ0rlXEJR@nqkrd~rBYbf^)aR}= z0#%~Rq{2i~5SA{#Hvg~f_%WrhdC@Y(O6R1;%Ui*Q>~ZQ*G?wYwCy-CAB5n-bwSR)&p7P| zoL~dzb*J*~!K~QWH|x4C{x`1ZRSqChbrl#}9n+qpUK0+0Tm-y8E{S8z`_SH*C;%#r+2|;Ug3P literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.ref.png b/test/reference/arc-direction.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..78be3e940b6b56ea71ab55deab4dd5f0c26c1c7b GIT binary patch literal 4124 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 literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.traps.argb32.ref.png b/test/reference/arc-direction.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..280c09b6e58a6a0e31d24f260e0a2e88025c8c3e GIT binary patch literal 6380 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 literal 0 HcmV?d00001 diff --git a/test/reference/arc-direction.traps.ref.png b/test/reference/arc-direction.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2790a2b753b8e4724a2644f27b95451c485f036a GIT binary patch literal 5864 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 literal 0 HcmV?d00001 diff --git a/test/reference/arc-infinite-loop.argb32.ref.png b/test/reference/arc-infinite-loop.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..82d645f3065b2613b22a14edd7361e5e5f9e7f62 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_cNPZ!4! pj+x1S{{OdUHapM~T5`dQfg$V)Gq1_&v`U}?22WQ%mvv4FO#mrn8btsA literal 0 HcmV?d00001 diff --git a/test/reference/arc-infinite-loop.egl.argb32.ref.png b/test/reference/arc-infinite-loop.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..82d645f3065b2613b22a14edd7361e5e5f9e7f62 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_cNPZ!4! pj+x1S{{OdUHapM~T5`dQfg$V)Gq1_&v`U}?22WQ%mvv4FO#mrn8btsA literal 0 HcmV?d00001 diff --git a/test/reference/arc-infinite-loop.mask.argb32.ref.png b/test/reference/arc-infinite-loop.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..82d645f3065b2613b22a14edd7361e5e5f9e7f62 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_cNPZ!4! pj+x1S{{OdUHapM~T5`dQfg$V)Gq1_&v`U}?22WQ%mvv4FO#mrn8btsA literal 0 HcmV?d00001 diff --git a/test/reference/arc-infinite-loop.mask.rgb24.ref.png b/test/reference/arc-infinite-loop.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..82d645f3065b2613b22a14edd7361e5e5f9e7f62 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_cNPZ!4! pj+x1S{{OdUHapM~T5`dQfg$V)Gq1_&v`U}?22WQ%mvv4FO#mrn8btsA literal 0 HcmV?d00001 diff --git a/test/reference/arc-infinite-loop.rgb24.ref.png b/test/reference/arc-infinite-loop.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..82d645f3065b2613b22a14edd7361e5e5f9e7f62 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_cNPZ!4! pj+x1S{{OdUHapM~T5`dQfg$V)Gq1_&v`U}?22WQ%mvv4FO#mrn8btsA literal 0 HcmV?d00001 diff --git a/test/reference/arc-looping-dash.argb32.ref.png b/test/reference/arc-looping-dash.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..516e66ce09ef7758b7fc19d4415fa45788ded7d5 GIT binary patch literal 464 zcmV;>0WbcEP)lW1e~Jnb}I-1@i`ukX>MoZIipb-7-KKLqtWm&COOOhmA*GmDou6sV84Z|=^vlPJnekTi# z<30%&h9N?T0)P-U8V#Q3o6Y7Y0992104&Q+r_+}y_Y9y)mSqxF(==i!_!lMfvD@vI zlEH4b8;{34&j&$3EdR48Kft!_D2fUoP;0eZF00jQzu)(LKf9_3p=<{V;BYtq00_Qb zuitJr>Pg@C6-5yQA)7(ZU^bi8YBh#oMxznc!8FZE<@LPt`TWNKjIrZ5gTdf(xlnhn z*K6{~qA2D8yj7>u84ic5)hdqT47dD^7DZ7~stkR9CqDu7??);Nshd^+0000d#jI literal 0 HcmV?d00001 diff --git a/test/reference/arc-looping-dash.egl.argb32.ref.png b/test/reference/arc-looping-dash.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ea28611364ddd1670c121f571fc64dec716aeed5 GIT binary patch literal 464 zcmV;>0WbcEP)lW1e~Jnb}I-1@i`ukX>MoZIipb-7-KKLqtWm&COOOhmA*GmDou6sV84Z|=^vlPJnekTi# z<30%&h9N?T0)P-U8V#Q3o6Y7Y0992104&Q+r_+}y_Y9y)mSqxF(==i!_!lMfvD@vI zlEH4b8;{34&j&$3EdR48Kft!_D2fUoP;0eZF00jQzu)(LKf9_3p=<{V;BYtq00_Qb zuitJr>Pg@C6-5yQA)7(ZU^bi8YBh#oMxznc!8FZE<@LPt`TWNKjIrZ5gTdf(xlnhn z*K6{~qA2D8yj7>u84ic5)hdqT47dD^7DZ7~stkR9CqDrrT1PNCkOmw800000WbcEP)lW1e~Jnb}I-1@i`ukX>MoZIipb-7-KKLqtWm&COOOhmA*GmDou6sV84Z|=^vlPJnekTi# z<30%&h9N?T0)P-U8V#Q3o6Y7Y0992104&Q+r_+}y_Y9y)mSqxF(==i!_!lMfvD@vI zlEH4b8;{34&j&$3EdR48Kft!_D2fUoP;0eZF00jQzu)(LKf9_3p=<{V;BYtq00_Qb zuitJr>Pg@C6-5yQA)7(ZU^bi8YBh#oMxznc!8FZE<@LPt`TWNKjIrZ5gTdf(xlnhn z*K6{~qA2D8yj7>u84ic5)hdqT47dD^7DZ7~stkR9CqDu7??);Nshd^+0000d#jI literal 0 HcmV?d00001 diff --git a/test/reference/arc-looping-dash.mask.rgb24.ref.png b/test/reference/arc-looping-dash.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..516e66ce09ef7758b7fc19d4415fa45788ded7d5 GIT binary patch literal 464 zcmV;>0WbcEP)lW1e~Jnb}I-1@i`ukX>MoZIipb-7-KKLqtWm&COOOhmA*GmDou6sV84Z|=^vlPJnekTi# z<30%&h9N?T0)P-U8V#Q3o6Y7Y0992104&Q+r_+}y_Y9y)mSqxF(==i!_!lMfvD@vI zlEH4b8;{34&j&$3EdR48Kft!_D2fUoP;0eZF00jQzu)(LKf9_3p=<{V;BYtq00_Qb zuitJr>Pg@C6-5yQA)7(ZU^bi8YBh#oMxznc!8FZE<@LPt`TWNKjIrZ5gTdf(xlnhn z*K6{~qA2D8yj7>u84ic5)hdqT47dD^7DZ7~stkR9CqDu7??);Nshd^+0000d#jI literal 0 HcmV?d00001 diff --git a/test/reference/arc-looping-dash.rgb24.ref.png b/test/reference/arc-looping-dash.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..516e66ce09ef7758b7fc19d4415fa45788ded7d5 GIT binary patch literal 464 zcmV;>0WbcEP)lW1e~Jnb}I-1@i`ukX>MoZIipb-7-KKLqtWm&COOOhmA*GmDou6sV84Z|=^vlPJnekTi# z<30%&h9N?T0)P-U8V#Q3o6Y7Y0992104&Q+r_+}y_Y9y)mSqxF(==i!_!lMfvD@vI zlEH4b8;{34&j&$3EdR48Kft!_D2fUoP;0eZF00jQzu)(LKf9_3p=<{V;BYtq00_Qb zuitJr>Pg@C6-5yQA)7(ZU^bi8YBh#oMxznc!8FZE<@LPt`TWNKjIrZ5gTdf(xlnhn z*K6{~qA2D8yj7>u84ic5)hdqT47dD^7DZ7~stkR9CqDu7??);Nshd^+0000d#jI literal 0 HcmV?d00001 diff --git a/test/reference/big-empty-box.egl.argb32.ref.png b/test/reference/big-empty-box.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d3b6de597dd17fe3785892b08dc97890fadc5 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8Y)RhkE)4%caKYZ?lYt^Co-U3d r8I5lb8ZrWThZcPGf1Am<0LVlFc@{McjJegZ$sjRLS3j3^P6ehZp<|j(@-r$_V0s!2xrv90tZ}PCIuH*VEO{Wt~$(696|A8Yln& literal 0 HcmV?d00001 diff --git a/test/reference/big-line.argb32.ref.png b/test/reference/big-line.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcde8f541f6e76996850b6bbf366bf79eadb90c GIT binary patch literal 977 zcmV;?11|iDP)&J6Dd++5y;C*io{s-_A-*Y!c4_H)qd6U8k7O%V`D*>in-s3F zfX#;d`dI||{w?Qv!^V2iQE#muKOS`{+k5%?Q{KymA7A9!+uPa&V7+1A)05oZ%HyLH zALUNu;*Urs@=N5M^|F1|pZ31>nk++vqF}d!9TXstf%OIVJ|9@8Qkpw22Uz7&nlCSF ztU4*pk(Vjfc`40{mmOA9Db0nK5mq}X&ECrbtBaIo?3Em=yOd_>l@_b7lxF6Y5G#z7 zX5*C#E2NZW;FSa`yp)#OD?U~%DJ`j2WURPSS~{Lv4$$8_3~^e#?{frPOvQheNdXZZL_lEuY`(-8z00P`FV54gO<+{w1suCQ8T z{Vvb3USqYwc58hommQ>XkMj@qmFrlj*&9I02UO-YTgI6AMko06JhaYSAnHYK&d z;wZejZAxl~#esWu-jviDi-Yy*vni}dB}K<#G_RDKl2TwXf>+{A zNr|u+)GPg_q;yyeA_?LDKpR`<|b1cZa7Z6rXUv zz{Ou61AYS^tWUPjdfNNSl37N8MZw*U+>r$dG9#^DaPRYhRhC>Xm6YVp%K_H$rgXl% ztg%jSO6SPS6svAiIxk*!Sm!sTbKzx#)pS!jdoK&DcAL@}dnL!}vMHUVS6Zy@o6?zi zCB*8xDV>d1Dy%S@(iwOq!3w!4U23oRSm8INOX?LFE7qoT>AYfM#od%HkykXV6r0ke z@QQ<#Zd1DGUJRnPrgRa#f?`>2N*Bv39G3m2bWywlVR_kXErgSa5YO%(=DP2>q zYOL{ZO4rD%0&6Op(w+A@g*B~B>CSk)!J6Wxbah^@v8KBzU8R@8n);@6r@i)A^QMkF z;RSNuR8_}bm^W41E3XA_Z}Iqu`R|#PZGjcA2J!^~6b0_@adBaNEVumwz5svz1IJQR UdrDIK)Bpeg07*qoM6N<$f-Il)3jhEB literal 0 HcmV?d00001 diff --git a/test/reference/big-line.mask.argb32.ref.png b/test/reference/big-line.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcde8f541f6e76996850b6bbf366bf79eadb90c GIT binary patch literal 977 zcmV;?11|iDP)&J6Dd++5y;C*io{s-_A-*Y!c4_H)qd6U8k7O%V`D*>in-s3F zfX#;d`dI||{w?Qv!^V2iQE#muKOS`{+k5%?Q{KymA7A9!+uPa&V7+1A)05oZ%HyLH zALUNu;*Urs@=N5M^|F1|pZ31>nk++vqF}d!9TXstf%OIVJ|9@8Qkpw22Uz7&nlCSF ztU4*pk(Vjfc`40{mmOA9Db0nK5mq}X&ECrbtBaIo?3Em=yOd_>l@_b7lxF6Y5G#z7 zX5*C#E2NZW;FSa`yp)#OD?U~%DJ`j2WURPSS~{Lv4$$8_3~&J6Dd++5y;C*io{s-_A-*Y!c4_H)qd6U8k7O%V`D*>in-s3F zfX#;d`dI||{w?Qv!^V2iQE#muKOS`{+k5%?Q{KymA7A9!+uPa&V7+1A)05oZ%HyLH zALUNu;*Urs@=N5M^|F1|pZ31>nk++vqF}d!9TXstf%OIVJ|9@8Qkpw22Uz7&nlCSF ztU4*pk(Vjfc`40{mmOA9Db0nK5mq}X&ECrbtBaIo?3Em=yOd_>l@_b7lxF6Y5G#z7 zX5*C#E2NZW;FSa`yp)#OD?U~%DJ`j2WURPSS~{Lv4$$8_3~&J6Dd++5y;C*io{s-_A-*Y!c4_H)qd6U8k7O%V`D*>in-s3F zfX#;d`dI||{w?Qv!^V2iQE#muKOS`{+k5%?Q{KymA7A9!+uPa&V7+1A)05oZ%HyLH zALUNu;*Urs@=N5M^|F1|pZ31>nk++vqF}d!9TXstf%OIVJ|9@8Qkpw22Uz7&nlCSF ztU4*pk(Vjfc`40{mmOA9Db0nK5mq}X&ECrbtBaIo?3Em=yOd_>l@_b7lxF6Y5G#z7 zX5*C#E2NZW;FSa`yp)#OD?U~%DJ`j2WURPSS~{Lv4$$8_3~FGr_kq>H u(x%re*E!b-$Efe{E0~L2fRW+BT=tcDECDi~1O$LKF?hQAxvXFGr_kq>H u(x%re*E!b-$Efe{E0~L2fRW+BT=tcDECDi~1O$LKF?hQAxvXjW literal 0 HcmV?d00001 diff --git a/test/reference/big-little-triangle.argb32.ref.png b/test/reference/big-little-triangle.argb32.ref.png index a5c815586fab4bb74e7ae07065cb0d21213a121c..1c2522fa69a1bb4d7d7e9034107aa51f55d0b495 100644 GIT binary patch delta 364 zcmV-y0h9ii1DOMmHh)e@L_t(&f$iBrZo@DPMA1=^TNMR(uyoOr*^AtZ-IzccB#kIb z9NFMs3ke5rX&}q8EX%Si8&j!$sH!&rp962%)2)>9RrBz}@uSzqVy4_ZlM;HKpobMxY-Q*fPp|VRC@CyTTDZ6iR51vTbt$z!&2?KK|$KIf-i}G4R z$8Lj#I9S35Z=)B&*m&K$!3<@g4cLHWG8)`POJ?+IyBrs!T6e~LN2FK1bnWm%SGUHb*AG-O2aQQPhS0000< KMNUMnLSTZzoVr#3 delta 363 zcmV-x0hIok1DFGlHh)b?L_t(&f$iDBZ38h3MA1=@LQ)D-ic3jlyPc#I<{|=)5yzrd z;%FEAXTj$99SvkzmStI%WpgU64^{OWz{k8(4z-t3K3g8XIX?8(c}zrKtq+?Amr`~B zd&e=e+v{yjd4vJSFBzEYCfDEvm0h}kUl>?R*?o(9@IuONU4NiY7+6C&_6Akml-CwI zwhk8JUspPxr_k@0!|!@^y8s2W4U36H-;C=)N<)6l?syoMl;-Wm%RD?FWb9WG#}L_Avke002ov JPDHLkV1nN>u-X6s diff --git a/test/reference/big-little-triangle.egl.argb32.ref.png b/test/reference/big-little-triangle.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2522fa69a1bb4d7d7e9034107aa51f55d0b495 GIT binary patch literal 409 zcmV;K0cQS*P)lHZsy6_i18>>Wt(5Xr^YFv*qu0h`BKodEN%%7=Ma6zAtB4mStI%WnKFPt2AUp@lo6E00000NkvXXu0mjf Dp2)+k literal 0 HcmV?d00001 diff --git a/test/reference/big-little-triangle.mask.argb32.ref.png b/test/reference/big-little-triangle.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2522fa69a1bb4d7d7e9034107aa51f55d0b495 GIT binary patch literal 409 zcmV;K0cQS*P)lHZsy6_i18>>Wt(5Xr^YFv*qu0h`BKodEN%%7=Ma6zAtB4mStI%WnKFPt2AUp@lo6E00000NkvXXu0mjf Dp2)+k literal 0 HcmV?d00001 diff --git a/test/reference/big-little-triangle.mask.rgb24.ref.png b/test/reference/big-little-triangle.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..24fc47259198be5fce1b08fb5846df87f8d223b8 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*z~dVD(9CQu`$eZMLhp~W*}K%7QJKkclU0TVHvFG@v6&(mmQwz?iO*1-bmZ+wj zqn&1S$Sg&zG$%SO=(t(BnrjY!TF{ZQBsI|-`?R2gWvR>Da`Mx%j=VeIbM;2;jFnQm zrHw-qzNakXdUNi~7p~p*#(NL(9rWSfxY*#b^BadVCEc>!GxIhcHoVMQ=90GS0N*K} z!q^C3nRrA{{?yGbeny8 XcB~I;bk}c8Hh=v|L_t(&f$h-S357rmMN#24Hk}92LbMX^#|A${e9R=72-yW3 z4r>^)EX%SiyKSE5&An-wnogHe{7;usTCqjM^RbAuKK92}U?w+g9cFUFR%0dyY)xiz zz*c4^Q*3=^GQ~DwCL?SsW-`JyWF~cNTV_(nHfJV9Y!7Bq#D8{TCKYTyW>Ud+Wu``K zZ)R%5?!Zjd*nOC(8oL`aRbcmIrV8xN%=8MoKQq0;4#7+hv7<24L+n7zbc-E}nQpPe zG1CQhL}t3c4$4fY*m0TZ6gxCC9k8P_(*gSf%(P>FgPC^h&oGmS*fIZ%cGqlE4Hh=j^L_t(&f$h-S34}lpL{VWAo6H*{Q6t&?xZsD#sx$o(`UX%G zXPT<2s;a8GY+07Cdm=J)y0zwiy0tcnEh3(eN0~#g6`08lTZft4u+^B!0b7%q9I%y{ z$rM|knM|=wn8^s+ikXbC4Vg(D+m@NsvCWxD5!-{A6tSI{Nq+^~kC{}kU72YR+nbpN zu>+W?8#{)Xy0OEUsRKKbnL4n8nduRBJTpDQPQgq!v9mDKP3%O>bcvmdnJ%%@G1DLH zjLh^0J1H}rV&`S1Q|#2tbimHeOb6^2Fw>6x4rbc1U&BlyV#oY3+TFHop67L4jrOam ds;a7*e(Vrkkq|QPPLKcq002ovPDHLkV1jkzim?Cy diff --git a/test/reference/big-trap.egl.argb32.ref.png b/test/reference/big-trap.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c0975c9b5fdae5e10613a1ef3c756fc3dfa82e40 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^DIm7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%7O=o8t6rvezc3r)~ReZ+$=Rf%g$E1bp`L{G)TJ dtVu%1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-image.egl.argb32.ref.png b/test/reference/bilevel-image.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-image.mask.argb32.ref.png b/test/reference/bilevel-image.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-image.mask.rgb24.ref.png b/test/reference/bilevel-image.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-image.rgb24.ref.png b/test/reference/bilevel-image.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-xlib-fallback.rgb24.ref.png b/test/reference/bilevel-xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-xlib-window.rgb24.ref.png b/test/reference/bilevel-xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-xlib.argb32.ref.png b/test/reference/bilevel-xlib.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bilevel-xlib.rgb24.ref.png b/test/reference/bilevel-xlib.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb25c2e58125d6ac15b2834250fe9fb3963ea8c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^JV4CC!2~2tT|DmsDYhhUcNd2LAh=-f^2tCEIZqeI z5RRG2Kh7UG@L_&q1g-Cj`GL7bM&Us$}qV^>bP0l+XkK;KCzs literal 0 HcmV?d00001 diff --git a/test/reference/bitmap-font.argb32.ref.png b/test/reference/bitmap-font.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bc2bc52e000a0d1ecd8aa71bb841d024a3967da3 GIT binary patch literal 931 zcmV;U16=%xP)ss{egKQCLum9^SOZqQj^eo7_FCSDG_{&Nn0Y&~ojN=EJMoAZr^-4|d=GR|Fsa z`Fi~?&^{w%{dYt_LvM%s+?VMcg4jhPxJSQaSBo?eknD0kv7&|ME6!GL54jfM&;B>= z8p@B_MS%1}u6%E^KhNm2{3dC*6z)aJ!HcNHu=4-C*yC?uK@G{NmdYbQa&bL+ zB+Tm6_Hw0iBRak1xg-j@Er;6m@FP0WZAgt@%E#91YC5%h5Ir1+wnZ7Scxi2cN;=uR za&FixMO<$r?(fseqWqqOi;??0dbl#9{*m};+h}J=M?~F`dLeeKekGkP8>9V`mKp7b zlK-XW3(th)B6sss{egKQCLum9^SOZqQj^eo7_FCSDG_{&Nn0Y&~ojN=EJMoAZr^-4|d=GR|Fsa z`Fi~?&^{w%{dYt_LvM%s+?VMcg4jhPxJSQaSBo?eknD0kv7&|ME6!GL54jfM&;B>= z8p@B_MS%1}u6%E^KhNm2{3dC*6z)aJ!HcNHu=4-C*yC?uK@G{NmdYbQa&bL+ zB+Tm6_Hw0iBRak1xg-j@Er;6m@FP0WZAgt@%E#91YC5%h5Ir1+wnZ7Scxi2cN;=uR za&FixMO<$r?(fseqWqqOi;??0dbl#9{*m};+h}J=M?~F`dLeeKekGkP8>9V`mKp7b zlK-XW3(th)B6sss{egKQCLum9^SOZqQj^eo7_FCSDG_{&Nn0Y&~ojN=EJMoAZr^-4|d=GR|Fsa z`Fi~?&^{w%{dYt_LvM%s+?VMcg4jhPxJSQaSBo?eknD0kv7&|ME6!GL54jfM&;B>= z8p@B_MS%1}u6%E^KhNm2{3dC*6z)aJ!HcNHu=4-C*yC?uK@G{NmdYbQa&bL+ zB+Tm6_Hw0iBRak1xg-j@Er;6m@FP0WZAgt@%E#91YC5%h5Ir1+wnZ7Scxi2cN;=uR za&FixMO<$r?(fseqWqqOi;??0dbl#9{*m};+h}J=M?~F`dLeeKekGkP8>9V`mKp7b zlK-XW3(th)B6svkS;6#r`Dkprt2;#gcw5X6!~-cgK;}^&ix@3ctwjARGjlw7(#Tg-aRe_!D6nxYh_4)#z1;&u zYiVW75B5VrNYE-%mp>IcF0^dEB}*aQ8lwd-!aeCxi)1*x81F%l;qPRcQwr&+s{s@CpXB$Aywx+R2%Lzh2?7?k0ChP z2=9P xE}dZBitzNv2h{SXr{GDrC0*0i@`Z)h;18ggp{S5>^5g&j002ovPDHLkV1jOQl_UTF literal 0 HcmV?d00001 diff --git a/test/reference/bitmap-font.rgb24.ref.png b/test/reference/bitmap-font.rgb24.ref.png index 8569064251aec4063e4e3ebd4864753f540af6f2..285d742888ae18805942d70c963e05d51e43e1f6 100644 GIT binary patch delta 10 Rcmeyx_MB~k=|&GDW&jz|1K|Jw delta 28 kcmaFP_KR(TsUQP;iKnkC`!xto@e~0$y4=qWZwVISd#aZ zv7l6`Wd?_$no~!oKoS!3`{ci0rQUz{*K7R$wWja*to@e~0$y4=qWZwVISd#aZ zv7l6`Wd?_$no~!oKoS!3`{ci0rQUz{*K7R$wWja*to@e~0$y4=qWZwVISd#aZ zv7l6`Wd?_$no~!oKoS!3`{ci0rQUz{*K7R$wWja*to@e~0$y4=qWZwVISd#aZ zv7l6`Wd?_$no~!oKoS!3`{ci0rQUz{*K7R$wWja*to@e~0$y4=qWZwVISd#aZ zv7l6`Wd?_$no~!oKoS!3`{ci0rQUz{*K7R$wWja*#LaU9;^{>*e|Sj#D&99 z(8;Go04H-@^0~V=|9U3O_9mnfY*fygr^NzOVw^fU1(K9nW^gE~jWS2WVK^oN+p-m0 V!C!24wgWRFgQu&X%Q~loCIAY_A%_3} literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-rectangular.egl.argb32.ref.png b/test/reference/bug-bo-rectangular.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6118dff951799749a9bcc59a1203ab4dec8eb48a GIT binary patch literal 1020 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4K$-cHbW_avV-NU`>8Q-7z7o`8^ zP}|M;SFQ0k5;%1g4ZSlsJ0qREJ9*6rNtYNZjlU|2eJwFE8)ikXTm`_S1L%yH;Kz%)n4mw&rQX0+ZML2lfjq9&zC? n6m;@w5g28ThQshn1l5cMcdxF^|0ER#%+3s+u6{1-oD!M<)e0k; literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-rectangular.mask.argb32.ref.png b/test/reference/bug-bo-rectangular.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa4edef617dadf4b0bca0f4c60418c3bacb1515 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4#LaU9;^{>*e|Sj#D&99 z(8;Go04H-@^0~V=|9U3O_9mnfY*fygr^NzOVw^fU1(K9nW^gE~jWS2WVK^oN+p-m0 V!C!24wgWRFgQu&X%Q~loCIAY_A%_3} literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-rectangular.mask.rgb24.ref.png b/test/reference/bug-bo-rectangular.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa4edef617dadf4b0bca0f4c60418c3bacb1515 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4#LaU9;^{>*e|Sj#D&99 z(8;Go04H-@^0~V=|9U3O_9mnfY*fygr^NzOVw^fU1(K9nW^gE~jWS2WVK^oN+p-m0 V!C!24wgWRFgQu&X%Q~loCIAY_A%_3} literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-rectangular.rgb24.ref.png b/test/reference/bug-bo-rectangular.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ffa4edef617dadf4b0bca0f4c60418c3bacb1515 GIT binary patch literal 950 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4#LaU9;^{>*e|Sj#D&99 z(8;Go04H-@^0~V=|9U3O_9mnfY*fygr^NzOVw^fU1(K9nW^gE~jWS2WVK^oN+p-m0 V!C!24wgWRFgQu&X%Q~loCIAY_A%_3} literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.argb32.ref.png b/test/reference/bug-bo-ricotz.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.base.argb32.ref.png b/test/reference/bug-bo-ricotz.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7a552f7c16b3459695cf9e9aa0bc9ea6b5579d GIT binary patch literal 2125 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zFnPK-hE&XXdvjy&D+dPG!0N53XD;xWD!poGYOs5D+`f?~e(gEW;|C|_ygW6lcI{S1 z21$E&eg=kri_bD#STxM=r-f&?-_GsX`1yLT;k)m@%lBC_+`D}}D!=dfob%5=XJ=bn zcv(_qBj>)J;X&~1?|%<7|B<|B>d^8#jUnUWC>{-i(KIlc21e7sXd0kV8u)qPnc=bW zvVt93uU!;oxUntwcWr&m&X{L&)?a^Zoo#Vy&gZJV^UgnC+|ID!?Z0UZ3P)>=8Mb5) cz<-!;9Mzree!aa1*gjzJboFyt=akR{01?)THvj+t literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.base.rgb24.ref.png b/test/reference/bug-bo-ricotz.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7a552f7c16b3459695cf9e9aa0bc9ea6b5579d GIT binary patch literal 2125 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zFnPK-hE&XXdvjy&D+dPG!0N53XD;xWD!poGYOs5D+`f?~e(gEW;|C|_ygW6lcI{S1 z21$E&eg=kri_bD#STxM=r-f&?-_GsX`1yLT;k)m@%lBC_+`D}}D!=dfob%5=XJ=bn zcv(_qBj>)J;X&~1?|%<7|B<|B>d^8#jUnUWC>{-i(KIlc21e7sXd0kV8u)qPnc=bW zvVt93uU!;oxUntwcWr&m&X{L&)?a^Zoo#Vy&gZJV^UgnC+|ID!?Z0UZ3P)>=8Mb5) cz<-!;9Mzree!aa1*gjzJboFyt=akR{01?)THvj+t literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.egl.argb32.ref.png b/test/reference/bug-bo-ricotz.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8de674d0cad87e627e4cc17ccca26a102633010d GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRK8mS2%r?c~p7iQ1+Q?w=>f1p6o3P`ZM8x`;5|a zI~f=x?W_4282(*MW5^h8xbpI|*I#$#-afVc_O`cWyKA4#W`3}>^xV%!KME{t`VHruf1ZAA!*s)APm3()`c?BYCPe<#WpwEJO++RA alR48#ch8ZA>Wjc80)wZkpUXO@geCyAlxz(E literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.mask.argb32.ref.png b/test/reference/bug-bo-ricotz.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.mask.rgb24.ref.png b/test/reference/bug-bo-ricotz.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.rgb24.ref.png b/test/reference/bug-bo-ricotz.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.traps.argb32.ref.png b/test/reference/bug-bo-ricotz.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-bo-ricotz.traps.rgb24.ref.png b/test/reference/bug-bo-ricotz.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0e52b2454369d0896f84bd8749f98f54a35b28cc GIT binary patch literal 2128 zcmeAS@N?(olHy`uVBq!ia0y~yVCrOGV0^&A1Qc;wmQV?#*pj^6T^Rm@;DWu&Co?c` zuzI>UhE&XXd(*J%kOM>8#gv=TJRL7`Z5CGWeY8n>XqxsqcZ;$7r#NfPI*$j+XRMyb zFf{bcU(3$G@IS+tVassCdon+Nt+JKj)4u<%!scGy_VYEx412bnvy7K{U$*=B(0LZ^^9>}TRE@5!+nwrQCmjwXc&y9fzdQDng&MG0FBbXy)BhJ zA7{$umdKI;Vst0DpauqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/bug-extents.argb32.ref.png b/test/reference/bug-extents.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6875e46207508c3ef978218907cd641547d8f3 GIT binary patch literal 9251 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 C{4vP@ literal 0 HcmV?d00001 diff --git a/test/reference/bug-extents.egl.argb32.ref.png b/test/reference/bug-extents.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d019efa0ca15f1314557dd3e92f7bda94c2ede3d GIT binary patch literal 9338 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%0AB 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 C{4vP@ literal 0 HcmV?d00001 diff --git a/test/reference/bug-extents.mask.rgb24.ref.png b/test/reference/bug-extents.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6875e46207508c3ef978218907cd641547d8f3 GIT binary patch literal 9251 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 C{4vP@ literal 0 HcmV?d00001 diff --git a/test/reference/bug-extents.rgb24.ref.png b/test/reference/bug-extents.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6875e46207508c3ef978218907cd641547d8f3 GIT binary patch literal 9251 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 C{4vP@ literal 0 HcmV?d00001 diff --git a/test/reference/bug-seams.argb32.ref.png b/test/reference/bug-seams.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..99098db8cc35613b8be42f3014d41cb4c2b766ac GIT binary patch literal 1647 zcmds1|5MU;9Jb8WwVAt&IV-eVb-E}TK~|dD5~rLeVmZN5LuuugPBO*V$LPzNI*_tm zm$aIhdIXAy^p)rUodc>%O%gB!Eh$kxigxmWj44C9{RjQD_xs-Wx_j>RdYIYZ9a~4HCD*SeXu58cK6~BI&xFp99hb8|8D_i%3jogHxN+)ieY5MijGHH8w ze@A;@_OjofpIaBmT0uw+Igy+?)BY&y@n3IjttIbc&~w-H;K=J7x}%F)*?a2h+u3Nv zp+z1KpW<|!K28<|oCQ)C{EPbaU`UNV78FN5)K{tZj%(+S7@dZnXcV~dy
VeJFx zrpr}UdfkAm>u`>}U>I#Hw~`pm+4qHKTodE5f8TH)oCu%|Pxpz_fOxn8^c_$m`CE&e zJK7HjD74m=Fz_fvt-L)B)9!K)sy4w})>s>v{L9ci;P^Kz?h6FoL-^(cFhl6Cg9aPI zYw@C;-IA#a1XvfBs%VX>Y9vLnD z0GeWk*VsPo?=|m`ZB`B>1SY#4O)t(I(U82?hpjkg%%y7V+4{ z;zJkCLl1#&f}x96{RnZBc6~7!X{v1|4N!heR zqtH8+-X)>-%r=FsBRZwd-GFj=u(NwMu`ZV5C^bcR?I0+|9j`TjGw)S^Nxf2*dynm^ z&Jcj3MYQzjeX&=QC=GTN3~k#w+7cPDnw}6HwfgbOaTwx=v3GprLr31LdT^+3Pi>-z z6m6D^&qK|9_0MN`&2`s4Kg_hVvT}?&%Hm}?nCT!$?QI)?sTjUNy6sKpdL@zwKxsqS z*1X5U;r{>N;GzBtGp23yO*%J+qicxFv}g~&o119-i@MhbqRf6(V4hG|-uW}A2@!48 z?=N?lrWJcd16x##D>}Se8Z$X!c-Dvb6d%(6mxIik_hm+gy2zi^k)8EI!T8N@;DO8TiZ3$2;Uq z`J`ISuZgkgoYuF+Q!@`dYFx9ueQ}j_^~Kv;9JVd-qjWvm=(&8eTh+7tnZ4^S6=CZH zLHqCBy>Ma6iXVQ=<9c$rnRa~`Csg`Z&C!#Ohj-ET8I||RAKrjFRK{I#FIi=yGA*k~ zZ}41d4&sXp+C!NdeQxF$i4dp=rlwAh^K;2au^L@a#^g(nfTIa|9+ASRcb!exF68jZ zx`~WxHbh3IGph69Y4z4Jo82)GTgd28Lb~M*je%6^&?-8|$i`Oxg1lQ-TX;9Lf@JO%RTZ}#Mc64&_2VT?6 zeiD%IkN%klEPReK41KgM+a!+m21gxnNPUwmHD*L-LdG7-cM?)ME@)+TP@OTfkjzJ_ zB#BAX-eN%H1CA!^q4tZv@*l`ac8nY^JT%mW2}y@vQ{Sy17d2yu(xWYMk;t$!u;hu= zrzaZOMKq7-F-Mb34pXF40){2}S~$}sGPgUcwmh^2_O)|8ZIV7U=@bt96ObmSaEDm` zTb4mAiJ#~xG9F|E8}kMEVx~(#zeeT&@s06q_a=uCk>nZXK39{|SE?fDd6Kl)y)n($ zuolI;1tUjdr(Du})$XrU$xV^z@~BR@)3e*EwpuJ4)ahdZ+ z(4ts1?{S$HaTH_Q&0dqJS*ap6U05KLb8umuKwh6*@fxwL6&Iw%sP8sboMDf38eVoG zr7q&=Tz6v?x^6&mp7KY$!6cz2o$qA=A}Y(Yo2;-du?O}fH)q_DAvZ}~RwK8?1>l+F ztH<9BBndfxv%XWf$`h!mC#k*iI4y-1CsyL!jouJ>D*F>{IA+$zO9?=SZ{hO$N8MBVBSQ9Zo|@e5%5IJSwfT z-AP0V6D^^6?VbKqInxf1FsGV%^a#eLa1`iB@E@m76{7Zx1tyPxFldloui1GbrNiCH z82chBk*EwPZ;n8Mhb8T~O z|Dh6$0>|?vUyBmZ4w|*^wmJ|yMNF+c9ihskcAdR!(hXl<>V{A0IK?up&uT^68O0Af zk@E}LHe+D`z~Mfw@Rqei+K0_^6r9t_tT3>0Fzr>j;mVABA#F=lL~WzA<%Mjzr)YRv z`ot}!OIU}7p3yH1bWNx=6T%O$Yx{)*+Y?^rB)c1*fvspj8IYOyzVrkogxZQes_d~E zKQ&c5)-&^aw3o)SeXUpLx8mp~cVlok-vK`|@y3SD+hoa~S3b-i+*cf@V^UN$8X8h_ z{BvRE#7^Cm2%vDmm2z)-qy5H(SlL>7ib;0}wE;t{SG0IU9$(9JNxNhQ2?`=FnPZp9 zopTq=>pb)g%j5@ya5iFzv-~Oh@cABiyN(m&l|2Agic;hatsyG_EIh!GbjlIFahZx&3TDTnw*OHR#U#> ozc0NRw<{l5^hG|^|E-bWSv%|1Ue?U)kk1tTd;@%-{l_l+3+k01t^fc4 literal 0 HcmV?d00001 diff --git a/test/reference/bug-seams.mask.argb32.ref.png b/test/reference/bug-seams.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..99098db8cc35613b8be42f3014d41cb4c2b766ac GIT binary patch literal 1647 zcmds1|5MU;9Jb8WwVAt&IV-eVb-E}TK~|dD5~rLeVmZN5LuuugPBO*V$LPzNI*_tm zm$aIhdIXAy^p)rUodc>%O%gB!Eh$kxigxmWj44C9{RjQD_xs-Wx_j>RdYIYZ9a~4HCD*SeXu58cK6~BI&xFp99hb8|8D_i%3jogHxN+)ieY5MijGHH8w ze@A;@_OjofpIaBmT0uw+Igy+?)BY&y@n3IjttIbc&~w-H;K=J7x}%F)*?a2h+u3Nv zp+z1KpW<|!K28<|oCQ)C{EPbaU`UNV78FN5)K{tZj%(+S7@dZnXcV~dy
VeJFx zrpr}UdfkAm>u`>}U>I#Hw~`pm+4qHKTodE5f8TH)oCu%|Pxpz_fOxn8^c_$m`CE&e zJK7HjD74m=Fz_fvt-L)B)9!K)sy4w})>s>v{L9ci;P^Kz?h6FoL-^(cFhl6Cg9aPI zYw@C;-IA#a1XvfBs%VX>Y9vLnD z0GeWk*VsPo?=|m`ZB`B>1SY#4O)t(I(U82?hpjkg%%y7V+4{ z;zJkCLl1#&f}x96{RnZBc6~7!X{v1|4N!heR zqtH8+-X)>-%r=FsBRZwd-GFj=u(NwMu`ZV5C^bcR?I0+|9j`TjGw)S^Nxf2*dynm^ z&Jcj3MYQzjeX&=QC=GTN3~k#w+7cPDnw}6HwfgbOaTwx=v3GprLr31LdT^+3Pi>-z z6m6D^&qK|9_0MN`&2`s4Kg_hVvT}?&%Hm}?nCT!$?QI)?sTjUNy6sKpdL@zwKxsqS z*1X5U;r{>N;GzBtGp23yO*%J+qicxFv}g~&o119-i@MhbqRf6(V4hG|-uW}A2@!48 z?=N?lrWJcd16x##D>}Se8Z$X!c-Dvb6d%(6mxIik_hm+gy2z%O%gB!Eh$kxigxmWj44C9{RjQD_xs-Wx_j>RdYIYZ9a~4HCD*SeXu58cK6~BI&xFp99hb8|8D_i%3jogHxN+)ieY5MijGHH8w ze@A;@_OjofpIaBmT0uw+Igy+?)BY&y@n3IjttIbc&~w-H;K=J7x}%F)*?a2h+u3Nv zp+z1KpW<|!K28<|oCQ)C{EPbaU`UNV78FN5)K{tZj%(+S7@dZnXcV~dy
VeJFx zrpr}UdfkAm>u`>}U>I#Hw~`pm+4qHKTodE5f8TH)oCu%|Pxpz_fOxn8^c_$m`CE&e zJK7HjD74m=Fz_fvt-L)B)9!K)sy4w})>s>v{L9ci;P^Kz?h6FoL-^(cFhl6Cg9aPI zYw@C;-IA#a1XvfBs%VX>Y9vLnD z0GeWk*VsPo?=|m`ZB`B>1SY#4O)t(I(U82?hpjkg%%y7V+4{ z;zJkCLl1#&f}x96{RnZBc6~7!X{v1|4N!heR zqtH8+-X)>-%r=FsBRZwd-GFj=u(NwMu`ZV5C^bcR?I0+|9j`TjGw)S^Nxf2*dynm^ z&Jcj3MYQzjeX&=QC=GTN3~k#w+7cPDnw}6HwfgbOaTwx=v3GprLr31LdT^+3Pi>-z z6m6D^&qK|9_0MN`&2`s4Kg_hVvT}?&%Hm}?nCT!$?QI)?sTjUNy6sKpdL@zwKxsqS z*1X5U;r{>N;GzBtGp23yO*%J+qicxFv}g~&o119-i@MhbqRf6(V4hG|-uW}A2@!48 z?=N?lrWJcd16x##D>}Se8Z$X!c-Dvb6d%(6mxIik_hm+gy2z%O%gB!Eh$kxigxmWj44C9{RjQD_xs-Wx_j>RdYIYZ9a~4HCD*SeXu58cK6~BI&xFp99hb8|8D_i%3jogHxN+)ieY5MijGHH8w ze@A;@_OjofpIaBmT0uw+Igy+?)BY&y@n3IjttIbc&~w-H;K=J7x}%F)*?a2h+u3Nv zp+z1KpW<|!K28<|oCQ)C{EPbaU`UNV78FN5)K{tZj%(+S7@dZnXcV~dy
VeJFx zrpr}UdfkAm>u`>}U>I#Hw~`pm+4qHKTodE5f8TH)oCu%|Pxpz_fOxn8^c_$m`CE&e zJK7HjD74m=Fz_fvt-L)B)9!K)sy4w})>s>v{L9ci;P^Kz?h6FoL-^(cFhl6Cg9aPI zYw@C;-IA#a1XvfBs%VX>Y9vLnD z0GeWk*VsPo?=|m`ZB`B>1SY#4O)t(I(U82?hpjkg%%y7V+4{ z;zJkCLl1#&f}x96{RnZBc6~7!X{v1|4N!heR zqtH8+-X)>-%r=FsBRZwd-GFj=u(NwMu`ZV5C^bcR?I0+|9j`TjGw)S^Nxf2*dynm^ z&Jcj3MYQzjeX&=QC=GTN3~k#w+7cPDnw}6HwfgbOaTwx=v3GprLr31LdT^+3Pi>-z z6m6D^&qK|9_0MN`&2`s4Kg_hVvT}?&%Hm}?nCT!$?QI)?sTjUNy6sKpdL@zwKxsqS z*1X5U;r{>N;GzBtGp23yO*%J+qicxFv}g~&o119-i@MhbqRf6(V4hG|-uW}A2@!48 z?=N?lrWJcd16x##D>}Se8Z$X!c-Dvb6d%(6mxIik_hm+gy2z`SvX37BnMc7z^I1NP#R4d zqxoU9)EF%)N9%{tN^!L5Kv8??+tr7K_bNe+yFHgH*Sy_kc`Qbj3CO#CCO7x_(b0-_ yw4xoYXh$pBAyv^P?BDSBZW$}6NV{I1`h|U4Fz@=T4c;$-0t}w6elF{r5}E-0O8Y?o literal 0 HcmV?d00001 diff --git a/test/reference/bug-source-cu.egl.argb32.ref.png b/test/reference/bug-source-cu.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1349391adbb878aee873bb1d76c543802257f4bf GIT binary patch literal 3816 zcmeAS@N?(olHy`uVBq!ia0y~yV1B{Cz!bs31{C=ycSaRRu_bxCyDf$Jpl$}aua&<* zw8H{sAkpN&&cM*X(8vcAVPuj8l1waCK$3-{1W0lS0BvUwP`JRzz@Pxp&@ifDG?Ye@ z#%O*REj31q%F+5^v{D>xI#AMHx)I)fyz;puutNRd_k82F+s`D5OF4kN7~}0*=Zcq) zRO5a1wlnx(*3Cy;2mn^IUG6yP#Rr_~qoK@_7#oOLj%J@J_ZKHL$W|yTC5ouSUAcV7&rvpF)#=y++k!;a2QoM8a$(kVl*p^ zmK3Aq<7llg)GJMkYo9Cc7PB!h{Mr3FW^J;be0~}O!vp7M5o`CIVi@Y48*R0WHtI&3 ovP3uFWoG{^JuM3C6kL+_J;FVMOL$Yf6E3U2H9J0o8K}MD%JY{X znxT;oNN_UA0!bzoDxI#AMHN{E-0dpUZ0z0qikV6+`H+WH$g lZQkQ)^>>R{85lNvVe>u0JwwV*8PxA!@O1TaS?83{1OQ?xjQIcn literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-alpha.argb32.ref.png b/test/reference/caps-joins-alpha.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..964a70f379cb079c99fdd86443d3760949ac4d3a GIT binary patch literal 2662 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 UNcaS^G5`Po07*qoM6N<$f)S%100000 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-alpha.egl.argb32.ref.png b/test/reference/caps-joins-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..48d9f5eb296c761a12a01bf975d8eedf53574f45 GIT binary patch literal 3220 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 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-alpha.mask.argb32.ref.png b/test/reference/caps-joins-alpha.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..964a70f379cb079c99fdd86443d3760949ac4d3a GIT binary patch literal 2662 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 UNcaS^G5`Po07*qoM6N<$f)S%100000 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-alpha.mask.rgb24.ref.png b/test/reference/caps-joins-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..964a70f379cb079c99fdd86443d3760949ac4d3a GIT binary patch literal 2662 zcmV-s3YqnZP)|sxP_DqjG@6KcHn8tpXJacyY0Y5L*!rXc1L5%2ca~m6d$NG=!0` z0}#-qQb_;+00M|e=7yHCa=8ouimGZ`P`+aw(p& z?Cju|k8C?}2Yg7`2$Z&e4%8|F1J&KTSV1FH~BIRx8nJ{J4?YPUXJJ z^({>G+x7a*`imEa&q^kF6{g^QYW?bi0D#*=Hk@*~q*r zOI_pn?%sE=uf6WIpJ{#i!52pRo!Vk8znt&-b6Oj%4HlpmoCEHQc{R4M5JKdB;Vxx=b#UP9P{8;Cp~sTMPS!f7 z?8TJ}=RM#8Mi)qWEOp7+Fn(kE2HclQB{4i~@T(#CuggyB`eLodeaF;+KCNr>nms|K zQz?vaeBhgJlKl3yR75VbLtsZk7#w|CH--&MhcJ6QyBFUx5SO(I<0$~(QA41$`c=SK zdiH~tQcr!?*7+|^olGX`x9pYS@-K|?Ti6~HyAswnoO zw=EX+zVET@8bWijdGF8n4o45qhR^(p+1W?AtiwCZ7?2#RQ$w&Q{8aUv&VR~snU-SU z76%Q%%%rk?W$SH*wdw0)Uksy%T|0C%T$LAhal|>JU#^mL2wE znE>=~UIkou`1^;w<`BGD+EI0lN4|V1<7&pBb3eU&oaYd{S)8>9S2G4d-<1%(zP6gE zMy%FWDoo$Y;AhJ2CX*y?1&rr4jf=0is254x?5hmSQY`8uZk0;n$&(zL9fF@JyDCZB zsT7GPFLMYbt(4j(IwO5r=c3k@O4`iK35nU zZY>7@Cj?(J7a9UWFgN!K0Bo&n7ciazF!K3TrZfbfds#DU32QAM8iE12wH#rsZ@NuL*S*> z@}eR5Ib+aX&F``wni>MV83RRCdL5mrhCpw|KzX}o`_ZXt2prBB2n~UgTFbtM5a46v zgoeORU(2$F5a=YA&=8_mYlH7=gML`2&=7#1TFa(}5W-Wug@(XOtz}a~pfh98Z$AKj zY6t<$81y`g4vUW(LI5)cB)8^-RV1MZ7WG=(Z8WTk(Ozbb*<*trptd?SIQjrIH*SrJl1PzmX=A8bV1cB?-P@ z@bpZ@{8@gG@H~K!i+dTiwo;l#_g;qZU!vq8YZ<>9Lx7}JX^=Z`W{+o)(d}D*1GC4o ze#GbwR~>?`7d4II)mZo`3(?gO2x~3rGZhWU{40|`4Z6yjxY7`)W^GV21|*hX?`43& zW(-Iy1{kZ->TYru279I=0+c_?e{lT4M029=(LK)?_^u%oi+ZV~kvvn8;=2;)@>WBL z(u!_LD~%W<+XTgl@R^F?;%Y_LykaYrG$44UA~`IjEQmP-p4P_5v)11^1SWdfP9mux z{E+7mc6XEh_O*;vSpX1o2wc@#k~sujF9Luh`7?*WT$MG6s)i7~S{uBE5Z;UdiG{v~ z;Ny$|i6wyNA^13BKvhHVd~`;u?EevS2%OYf^1gO;b_l0Ltwtj0)WsExT>|ZH3UCX*7E)>#Xb;ddqI~spT3yycGTwQ2h3VkQSGnb zvaIn!x7TzL`TWl6_dpI7l($Ol@Sk|RF+3c06n=w1pV8y{k@{0~t06?T%I=UU4BT-lorWEP|G3f++@pgB*a4q`D9&*4VoDlwnvdhzJ!4vD9`lwHqeH!>MdAq9$l{W@WHG+G;_8;akI zX=7oBK#Sw!pOMsBcQXbinT?H&&pxyGuyaj%j?mw(UHj7~pICglp4Z{n;g=I%8psGY zW>TLw@aa!KwcJbNYR16lcqsTxPwVsZP8x!jUbcSg7Rw#Nzpq|B8zMcg?sr+SNvQXJ z1;)-!a(zAP;NVd)SkGoJ5V}>bd)u5U&&gi$*yeWq_C#~yS^C-G=pm($24tu?G^UNE zH`B3$82mcyXz26oS^E5ZsF#M|UF6!xWIFp=`=c&M9*05C#}$*!$;sv<0PL1`Egvbe z^;l}zdaNLQ`Xb9^`<+#)TDBgGd7lRly8re?R^$>y6_K(6&TuzlAS}WXxx?~SpjE=lofD>NLc}Ac$qN}7GVj|BC4!_GepV?I76hYfHOqO3OGZgtbjBA2V3VL UNcaS^G5`Po07*qoM6N<$f)S%100000 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-alpha.rgb24.ref.png b/test/reference/caps-joins-alpha.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..964a70f379cb079c99fdd86443d3760949ac4d3a GIT binary patch literal 2662 zcmV-s3YqnZP)|sxP_DqjG@6KcHn8tpXJacyY0Y5L*!rXc1L5%2ca~m6d$NG=!0` z0}#-qQb_;+00M|e=7yHCa=8ouimGZ`P`+aw(p& z?Cju|k8C?}2Yg7`2$Z&e4%8|F1J&KTSV1FH~BIRx8nJ{J4?YPUXJJ z^({>G+x7a*`imEa&q^kF6{g^QYW?bi0D#*=Hk@*~q*r zOI_pn?%sE=uf6WIpJ{#i!52pRo!Vk8znt&-b6Oj%4HlpmoCEHQc{R4M5JKdB;Vxx=b#UP9P{8;Cp~sTMPS!f7 z?8TJ}=RM#8Mi)qWEOp7+Fn(kE2HclQB{4i~@T(#CuggyB`eLodeaF;+KCNr>nms|K zQz?vaeBhgJlKl3yR75VbLtsZk7#w|CH--&MhcJ6QyBFUx5SO(I<0$~(QA41$`c=SK zdiH~tQcr!?*7+|^olGX`x9pYS@-K|?Ti6~HyAswnoO zw=EX+zVET@8bWijdGF8n4o45qhR^(p+1W?AtiwCZ7?2#RQ$w&Q{8aUv&VR~snU-SU z76%Q%%%rk?W$SH*wdw0)Uksy%T|0C%T$LAhal|>JU#^mL2wE znE>=~UIkou`1^;w<`BGD+EI0lN4|V1<7&pBb3eU&oaYd{S)8>9S2G4d-<1%(zP6gE zMy%FWDoo$Y;AhJ2CX*y?1&rr4jf=0is254x?5hmSQY`8uZk0;n$&(zL9fF@JyDCZB zsT7GPFLMYbt(4j(IwO5r=c3k@O4`iK35nU zZY>7@Cj?(J7a9UWFgN!K0Bo&n7ciazF!K3TrZfbfds#DU32QAM8iE12wH#rsZ@NuL*S*> z@}eR5Ib+aX&F``wni>MV83RRCdL5mrhCpw|KzX}o`_ZXt2prBB2n~UgTFbtM5a46v zgoeORU(2$F5a=YA&=8_mYlH7=gML`2&=7#1TFa(}5W-Wug@(XOtz}a~pfh98Z$AKj zY6t<$81y`g4vUW(LI5)cB)8^-RV1MZ7WG=(Z8WTk(Ozbb*<*trptd?SIQjrIH*SrJl1PzmX=A8bV1cB?-P@ z@bpZ@{8@gG@H~K!i+dTiwo;l#_g;qZU!vq8YZ<>9Lx7}JX^=Z`W{+o)(d}D*1GC4o ze#GbwR~>?`7d4II)mZo`3(?gO2x~3rGZhWU{40|`4Z6yjxY7`)W^GV21|*hX?`43& zW(-Iy1{kZ->TYru279I=0+c_?e{lT4M029=(LK)?_^u%oi+ZV~kvvn8;=2;)@>WBL z(u!_LD~%W<+XTgl@R^F?;%Y_LykaYrG$44UA~`IjEQmP-p4P_5v)11^1SWdfP9mux z{E+7mc6XEh_O*;vSpX1o2wc@#k~sujF9Luh`7?*WT$MG6s)i7~S{uBE5Z;UdiG{v~ z;Ny$|i6wyNA^13BKvhHVd~`;u?EevS2%OYf^1gO;b_l0Ltwtj0)WsExT>|ZH3UCX*7E)>#Xb;ddqI~spT3yycGTwQ2h3VkQSGnb zvaIn!x7TzL`TWl6_dpI7l($Ol@Sk|RF+3c06n=w1pV8y{k@{0~t06?T%I=UU4BT-lorWEP|G3f++@pgB*a4q`D9&*4VoDlwnvdhzJ!4vD9`lwHqeH!>MdAq9$l{W@WHG+G;_8;akI zX=7oBK#Sw!pOMsBcQXbinT?H&&pxyGuyaj%j?mw(UHj7~pICglp4Z{n;g=I%8psGY zW>TLw@aa!KwcJbNYR16lcqsTxPwVsZP8x!jUbcSg7Rw#Nzpq|B8zMcg?sr+SNvQXJ z1;)-!a(zAP;NVd)SkGoJ5V}>bd)u5U&&gi$*yeWq_C#~yS^C-G=pm($24tu?G^UNE zH`B3$82mcyXz26oS^E5ZsF#M|UF6!xWIFp=`=c&M9*05C#}$*!$;sv<0PL1`Egvbe z^;l}zdaNLQ`Xb9^`<+#)TDBgGd7lRly8re?R^$>y6_K(6&TuzlAS}WXxx?~SpjE=lofD>NLc}Ac$qN}7GVj|BC4!_GepV?I76hYfHOqO3OGZgtbjBA2V3VL UNcaS^G5`Po07*qoM6N<$f)S%100000 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins-curve.argb32.ref.png b/test/reference/caps-joins-curve.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35959002c64ac28567f44d1d58d2f17e09a380df GIT binary patch literal 6217 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 KHZC=~6!{-Ju8Pb6 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins.egl.argb32.ref.png b/test/reference/caps-joins.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a198ff5fe53036c4debbc476a33df8d600a9b2 GIT binary patch literal 2936 zcmZ`*c{r478&@Zi<%A5wlyhb#%dvd6F%`*2dJjV*A&jhzZ7j*Lgi0wH44Q0}24$Hu zhsfCXwQ>yk46-L`7-h-6%;0-X=UkodkMDY~_kEuG_uTjW{GR7}uit&gUcmk;DkLk! z$HymXYGQm59H+oHTW~-4O+OSv0S5s$vtNz*cK4p_dTKHspRk&#v7z<#r*o8g|09NC zZx(!s_t*~=iZ1^w>vTu@C0-9@j5+wJb>gg`_`dn4@AyUCy#l(BZ7%n`B;bpDg0TXz z0*Atz%qEnst-Xz?J)vD$%HV#kr)c8AA%SgBp3?sM_0-fz?FCk#?YkOZs-dwFD zADnCF^ms)?=+XNyc;s|{fo)0NrLd^CUMG*%ptT>H56^{^4*8-pDA?(-+EDqTJZ%Cx zV=iQbUN9;%KURB!f@L^5>{}~%kzz!gO;>kzYPjKDikKF%noJpPc6pFL!)19tnV*{* zg1Q&yABP7XW1nq)mW(2|f&btz3xH@c7Vq)UwRb9vF z_$IB6{InuZZ4ad5fBedXrxXt$HdS+hyUp2`3bqC`iNImG(~nLd2vuV7?5;yK2_bC( z#d#Xt`~ylE!++wLgz~iX^k1HUw%3l6S2mqosxeS`;Y^=R=!_Ly z%IUzW+}X6VB##SJDYsmUXuCna86JRzpI2)$$r37gDO00=AB^cbn~o!r&p_NJjEHMc z`cb!B!<27;D@=(8q(mdi#gI3Z+gj4H7c}vw+LWYM`iw{`G%?}zaD4`(ge$inW9w%9 zmOarLW6r}ZsJ*`?$=MePPErnmDe-)ZPQsc@YKz*edlH-h2Rte&D(YY}R?no1Zt;NV z?A$$`=Pauxd8~%`EcR%|{T`4SA!7fdCLOgupXXp(Mdvx#B=bmmPY`$_CO-Jz_OZ0QCZ2n{>=lHSdIiBe{qk(ANd;JE}}!m@9I@sk6a5DTK2*t|0K9$ ztfe=S+GkY5qz1x7Rm{uYJSb`tbi-%iTx_TFLFixRB|OLr{}^}O*3+sw;k6Q}fd~2H zlW{3USkNoM8XCHnOFYifl~7W1u>nzVVI9g$g}TZ-wu&E2t!!7W)4v}i4-kR-eTWd2 zHoc>_(vp_&!Ba+L!TLZ$Ve&A0@#C95$FRi0B?=CKbRmeUJIsgFI+14Ay*xeNtWx5z zT^mV-OHXi_K>T}}UGYFtQqm^O9n21iZ&!|_$?HUo`jmpncES!z<}hjJX5-B8Hn*vT zzNDXN`ZuYQ9UYj0{wS`vyfJv*Oj&ryD-HOjk`EAjNZ&6in)H48<+F%_ zmQ(KXKpId*V?pg9?I6DN5SLH3fj^~7Ak}FsnEk7rlvHT7?6cgoU_4}DFH4JHCT^Z= zL$a`swLAqL;0I#iWOxULgn_Mw*E4CNNO~L#OcVu8#j1JW?VIO{4O(Nn*)zRV?4q7{ z5bT&_PLGmSj-o}Tv4{1f6U+~>%;q*;{hFUiX{Nr^r2^W=8*5> zWvU#9!)fS`3tOCw&cjlB7sm==O{LDAC7af{od<(Ets*v;SXl;U*(4EKZ{T~aNqcnpvYg+j=CIK8P*YSa%C*yOxBs3fx(Z> z73M-}hkUo@^|L%mhx{v9(iMtPMYVc&{hX4I4-E}n3nUl63TWlJ7YR1rxIV+o0~y%W z9F>z3AP>k`W^Oat>m2^5G=~VG<+``mcevGgi4%vtzaH->b*4&A*;E5)Vx59%Agcqy zkhTG}aJ;KVe9=%gqwWu4l1f9^vVvBQObPIA=@mkGvi*J4H6&<*Y3X&1nS#TIMSV_v zUfmifcD|y8LFjW>DYlSn_#mV#ANHs_Aok9ckdY+OwUGOX+YFe#PO-B|`O7>w-$ z2e=8S7NY7Hjwl|9OyEP9)kwLujhoz!z|#hdNEHfn^E+B zeMY=^1X47S{9?u4i8Kg0#{2enFS)h7H@Rzz*FXJj86dANt6F%YDA>@@P_+d5c!Qok z`Tq4aVgJ4_s~9Nw+so76XR`hzVHV~|v$3d@QfDz_yBvrk=x4H6_OfcaWB~&Xiy>H| zvP)j&s#>@lsB2XI7>oKaR2&F=)i;{$_zk~pz$is&JvI43E_c!W-e78Xd&>gwwWy8Q zNIsJ~;#Jo|T(>o`-8)xShac*q>*(~p?qtrTTNn!TVdGDJykumL)?MPcW&^|JBL;Yl=|o-2EF>Iojr}s5yBRlvnGM zDZN-8m$>Hv|E5xSEFs|&FR_2^GuqNj8J9rrfLcn7K6|=Rp0|gX@JOWe23YsgA{qPM zLq6f!H|;V3`21eka5c009#LO-&ehgUvWB;y?qfNa3XS&Xl^+I9GDIGD25LTBYK<-x z4XQ1hx5@tvIT=4uS}&pE@Z)7DuJJxrfzKcBxLj=pnhuU+7*FPuQ5(|GN|ZiorkFKjHA*3=L(n_aB0 ztMNCb2P?eRp=Ix0<~0P=9&NCZ2@VJdm>br4p)pwtz3?*Zd<3;uv(shg5X#xixN;;~ zRrS;My&y^d-f9I3(5+3uzWKPgwY3#3EG;yEplWEM!)!3ejved&vN|dwlpr!7VaXGB zGj-Lh-6KAOvwil-*qq-sxtq()&3C?ps+guX%}jf0K>G;gn~Yx6*vLq!W`~p6!LQvB zFSiUz?suUnIx{F)aotD;=gaBjKXdyDYU=96g@t7}HHLw0uA`afr#_o`k*5xqaq7YF50fBwy zX2y2Fa|-x90to^4^gYozz+<=DSyN+yZQk{$p(t5EKupNo__TdUHYewlkEE4&^t^_# zQJ}e`qq_J$*W2(*Z~VMsQuecs!u|w-1?S9WA|rJW)l)EqOHp1Datngu68nJb`>kcQ zLkIDs(cy-NH8~^Kb8q36~f-=77m9Kg?>)4O04AFllgX{JEG7_JVJIaDeE8^m1AAhOJHD2tcw=sM(RZSxd%go9Q0a7>aMqb z_G1u<%{LijO<~F=ce1@b9qxR7!t%0pz1{lkV1+>^9^Sb~^6}|>?X`t9^S%bflgKJx@k%ODV@y{ZHR^rY(I@V;tg?$3&M;nY_bMItqGt>AEEt4+owZavN zm9`l}30S-XT8(gV672AQYFjl{b3PuN9b5KIzIs`<;t&CG`wxaJ zOi$|aWwGM0ILv-zCNmQo$MYyV+<5YD)o93DX8KRS_jgOahmb~rw7YPTyy~n_>k;>~ zGvujpGqt}#)+QGQz+65>$|!e-Lhlc_2yUI1OAIVP^~N1B2>I<5&oRW{$SKmwdp{G< zyk*AZIha_~GM`Z8o5&9^I5;}G{~9m{{Ngr$3JW=N-W0EGtEc!5HMeZ|@AlR2`0x4< zIrIa~Nc4hK>D2_y_Q$BDC%iSfsa@>k^Z)rtcdow2cVC4#oaONy&Rm}30}dL`5_v0l zmdpIP4bMC)D=N@g;OsUZM7{?5ho5f@5U>8NbYDD45cPvl~8j`%_V zQtx=dhrA~;uq4NA0J5^pASGxz)4-#wV+;l79P3Hl%%>V0UM!ddwY$eI$iv8_FL6$@ zPz9NK3!}6c5=QB-E~;rlb)D!T zjN}Q1C5qL99i~AWpkH)(WoKuzbTe(#E<4K0 z6PX2Ry`TWP+C~?+qcbc~*1;OU?c|B_1|E}cQRbZQIk74#Dx6^GBFrKR$TtT94nC$_ zu2_XWPq1&hLZBr|VI+HhS3&yUHeh^`Cw|iRC_u%dDru>*7|AyPE}DdWOhIa9m)lW) zqoqPIu&tC-$SQ>L~v3`c;)6jN@rS&)xImu@t)(a5lJ z)C3TS$y=KT&P0yWpSSP?|9#?(Bz+|ZI1=%(zm)`u)GZCm}@EEHK4u1vpG`zLK8 zK}>Ymbaz4CsfZJ`swX^-Np1|nS5peBKH=Mw^2D!=)=y7rMF0#1d{ch&R@Ax8rZcZb ziKoIhzRqZ!^pL7ub^~>WzmA-A$x?#RHf;1{Y6VRe&cL1<-~0c%eVp=`;^5Y@yscBT zclVw54Kj<jYDcbp_1rY$ z&i1Et*F)GW6s2FaUEQ^Db|pX7v*KVa=9Gk?+2Lz5Liu&6L`;vbID7K21Kpsh&%ah`&+@*NYWo*Jnn-X4X`X9@ut* zDSy=+vbf8g+gM%12LvRO)OySs!N0|`xFvTXZ*+x>#W8)1bFfvEz%*sjMGTqbBP@P+ z5YlHvo`4EYpsEV-p-2e;gAA_aPWGDBga35H5pSkB!WK{hew31Rj0^b{R1jyP(_B#x zxvwh(ioKG754EN)gnXP?Iz*mox~Y4Tf(rSek^<(P1?Vg$_bupQ|Ei=n@cA@Q87Jju zEsSwz4BHO#-o=ADkCVz9LQAjYoRJK zCNnv%=PH<6*tu^_tv$$+KzmrEBo(`;w?jMIJjl`6>C z5negaV_{Q*3s5hBOh95Hmbs3r;-nk$5}}5$#$3(-`BHK?b)=aW zDoKaLwqc2~kG!b5`WT^x&-@PM+^TdHnbIz=&r6gtN(mM;(&fYV72^RN3A0AyQ`Tu_8o%PZ_r(v_V3?c>e3)8D%tqp zws3lXCB38s<5{--%Mjfof0*MYExj0SWN7i%v}Ljj6@M_H)zs7!3Wa{@%!4~Wh-7wD zPxQ(LkVqfB5TbZxWckH*V``V4zCNwK%zw*jukRp@w=ney;G~L(h%~ZGaLz*Xrab1+ z?t$Uq0L^EMXVfP;!(!HSHJd%Mcs)?2xM4)=`iv^I>*>ffI2=wdF0LHD+M1^#w9~5H zsf>`^_0e%yHd*9~{rIJ=Quh3^$eq)Po_ah@x|{xro9T@M`mlOW$Y7MY7X2Yg$HDF` zv5;bw6t&13f^q6SF@;C{3+`zuvK-}!d=WF0Rptqn{QoH0)-KD!&6upW;9{UZ7BDxl KHZC=~6!{-Ju8Pb6 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins.mask.rgb24.ref.png b/test/reference/caps-joins.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4983c0230242eb446c10f5aae79d42a512dc6ea4 GIT binary patch literal 2893 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 KHZC=~6!{-Ju8Pb6 literal 0 HcmV?d00001 diff --git a/test/reference/caps-joins.rgb24.ref.png b/test/reference/caps-joins.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4983c0230242eb446c10f5aae79d42a512dc6ea4 GIT binary patch literal 2893 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 KHZC=~6!{-Ju8Pb6 literal 0 HcmV?d00001 diff --git a/test/reference/caps-sub-paths.argb32.ref.png b/test/reference/caps-sub-paths.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..744338957d4f7cd47f0e3e9f358e0e35dd01c6e9 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v}}AD%Uj5a{fB7^sHAPgmlyuJKm)BUqvf#`yv)p+_E(XTN?k@9y z24}6c&0Tx9qr>KE!2FpVZpM|Lj-Bz2`?UR2>C4Ygc4(D{hZ+}uw^?}K?j+y0D;e%D T7reU&w2r~k)z4*}Q$iB}0+2$Y literal 0 HcmV?d00001 diff --git a/test/reference/caps-sub-paths.mask.argb32.ref.png b/test/reference/caps-sub-paths.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..744338957d4f7cd47f0e3e9f358e0e35dd01c6e9 GIT binary patch literal 168 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 z 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 Y-lS?{nUQ2o@vi`2hsL9x*m%VJ1^6`HkpKVy literal 0 HcmV?d00001 diff --git a/test/reference/caps.egl.argb32.ref.png b/test/reference/caps.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..68cae51407970fc861ec52b9587d44565535d8fc GIT binary patch literal 2244 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 Y-lS?{nUQ2o@vi`2hsL9x*m%VJ1^6`HkpKVy literal 0 HcmV?d00001 diff --git a/test/reference/caps.mask.rgb24.ref.png b/test/reference/caps.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bf784fd4033b486fb9d94ea099b0bcd5ce73b6aa GIT binary patch literal 2115 zcmai0c{mhW8y`&Rvt>$znH1APhR-&m$=)oCnua9JWE;#Vro@aaWBJ6OEK#Vdp}ELX zLUJupmT?*Tnk-pTiD|g5MyA9a-|fG?<(%i7_dV}<&hz}v@A3R$fL;1^@ua z+u5QV#g-@@A9hHJ=dtE(B(d2}w#T9Xn_K-sL*Z=zKzhv%W$hGlU%+lSt>mf{e{BZV z=bM-8(LS)Z`T)kO-T9ThOI5#{^8rcc7@l4S(dyS_E%J`dgp4Mj9Go~-(%KBD!-}LHC`2Ox3xNOQOuu}F zzu!$cvGL0*IlV{XLyfG7iH1-f1n`Gl6FmBcF21Kp-H$8N1Qo<>T}IZXE$mFG3}~4&dm{ z6Ec%s0y&@N2{?1+S|96XYb!e3fHcI>9cu6BxG@|pSP<`o{`sz^hJf?QXp%d%#-tMO zdUJW!KXct^i+y*zj9>R<@y+cU3<~Ain)ot0E>Jd*G2A zz*AFv?y~yji)@@t$i(m^;U8QFBvaEbpK#>U(vrQ;fzYKLh+T9JJ$N&AueOp*)W$mK zr1hHhc&BZ)Y(XvJv12iG+GaFFo^L!bZ!^CH_BSH8#6A6-zR!4IIBsBsBZ<+iC9Fm^ zi!eGFxZd4-J^^=DXHU4^of(}Arrng4q2e63Ih1gPX1#rDz(r_C;8tk16Po$Vfj!!Rk+jCrfB#Q?M&>b z|LXi;p*HKzFDa#^rB4P6#DSLhofpv=W35jsDmZngxY`A9I6OVI?Qj*ZDJ?B6tYK1k zx}~KhWflrf-KnAsu<(`Oz3^O`dO7vx&G+x$z7*JJU7oBDooU|I)O4NsZB_8*`8D^K zkq`)^Ay`1Ha8XhxzGF@J8siEa1734DoVniI_)iWC`Z~QUIp*PTV`C+=8YdkSHTg7@ zH~l0YAKYDXP6Iler7*%+ny4KVuJL$wX(%AwpGJ#=!YwVQsxWj$NDcylQ2FyTYSI}< z*VWgLpQGd%IUN>X7v77u!g@crciBXo8eOp1_kp8kDiV+@ll6&7CSHX`PPc?Y#>xdC zow>R3otwD(s^&&@u~X|HD9Uf1cl&VE`kH6X&92)%5fSG2KGoyn{zmt@#;dQOcX?8e zM3X*C1hXVxtIBwY7iH-;@7bBfp3zF`%~rBa znI|!SK(zxX#sY>GmPclTOa9eg{7$nYA`p} zLjwZJjdGfrn)KaYOgV2~qcrSidG8-Bw~@tff~9^`U{8oJ zEP_UZ{Y#zWc!@?UJ@*KfceP+mv{JZL*K(z*MqO04wXA)=U6Q)#kwEAnU zr=7=g(@c@iE+ptq@yvX)GBe5BX&18vdDv9c{}xpAB&Eo!Kbs?83OsgO;pde9INujB zXD-9$eD2{K4`YfYIlXgT>b2^EVlWFC%jPI-$+Z(Ny(Q0sd?~ZuY&JVtm0qsyn6Ho< z>&LZ?e`P{`ZgeLBbeScYL^oDTUS3{qR~%n>JI$?Ntf7Kg9o~ksv$HJMD<_vAX_&e? zLWJO`Jc7JvlW2C{CJFjV6~~Qxd+5_@5enk~F&W^i9W%S?j%3D|Xr5J(cCeGrm&9ng z9x;L}l!4Bx;MP@2XH6eHdUSQ)1`BD{OLBG1sKabDz3>E32PA&Htm1@n{_nMIi-X3^ Y-lS?{nUQ2o@vi`2hsL9x*m%VJ1^6`HkpKVy literal 0 HcmV?d00001 diff --git a/test/reference/caps.rgb24.ref.png b/test/reference/caps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bf784fd4033b486fb9d94ea099b0bcd5ce73b6aa GIT binary patch literal 2115 zcmai0c{mhW8y`&Rvt>$znH1APhR-&m$=)oCnua9JWE;#Vro@aaWBJ6OEK#Vdp}ELX zLUJupmT?*Tnk-pTiD|g5MyA9a-|fG?<(%i7_dV}<&hz}v@A3R$fL;1^@ua z+u5QV#g-@@A9hHJ=dtE(B(d2}w#T9Xn_K-sL*Z=zKzhv%W$hGlU%+lSt>mf{e{BZV z=bM-8(LS)Z`T)kO-T9ThOI5#{^8rcc7@l4S(dyS_E%J`dgp4Mj9Go~-(%KBD!-}LHC`2Ox3xNOQOuu}F zzu!$cvGL0*IlV{XLyfG7iH1-f1n`Gl6FmBcF21Kp-H$8N1Qo<>T}IZXE$mFG3}~4&dm{ z6Ec%s0y&@N2{?1+S|96XYb!e3fHcI>9cu6BxG@|pSP<`o{`sz^hJf?QXp%d%#-tMO zdUJW!KXct^i+y*zj9>R<@y+cU3<~Ain)ot0E>Jd*G2A zz*AFv?y~yji)@@t$i(m^;U8QFBvaEbpK#>U(vrQ;fzYKLh+T9JJ$N&AueOp*)W$mK zr1hHhc&BZ)Y(XvJv12iG+GaFFo^L!bZ!^CH_BSH8#6A6-zR!4IIBsBsBZ<+iC9Fm^ zi!eGFxZd4-J^^=DXHU4^of(}Arrng4q2e63Ih1gPX1#rDz(r_C;8tk16Po$Vfj!!Rk+jCrfB#Q?M&>b z|LXi;p*HKzFDa#^rB4P6#DSLhofpv=W35jsDmZngxY`A9I6OVI?Qj*ZDJ?B6tYK1k zx}~KhWflrf-KnAsu<(`Oz3^O`dO7vx&G+x$z7*JJU7oBDooU|I)O4NsZB_8*`8D^K zkq`)^Ay`1Ha8XhxzGF@J8siEa1734DoVniI_)iWC`Z~QUIp*PTV`C+=8YdkSHTg7@ zH~l0YAKYDXP6Iler7*%+ny4KVuJL$wX(%AwpGJ#=!YwVQsxWj$NDcylQ2FyTYSI}< z*VWgLpQGd%IUN>X7v77u!g@crciBXo8eOp1_kp8kDiV+@ll6&7CSHX`PPc?Y#>xdC zow>R3otwD(s^&&@u~X|HD9Uf1cl&VE`kH6X&92)%5fSG2KGoyn{zmt@#;dQOcX?8e zM3X*C1hXVxtIBwY7iH-;@7bBfp3zF`%~rBa znI|!SK(zxX#sY>GmPclTOa9eg{7$nYA`p} zLjwZJjdGfrn)KaYOgV2~qcrSidG8-Bw~@tff~9^`U{8oJ zEP_UZ{Y#zWc!@?UJ@*KfceP+mv{JZL*K(z*MqO04wXA)=U6Q)#kwEAnU zr=7=g(@c@iE+ptq@yvX)GBe5BX&18vdDv9c{}xpAB&Eo!Kbs?83OsgO;pde9INujB zXD-9$eD2{K4`YfYIlXgT>b2^EVlWFC%jPI-$+Z(Ny(Q0sd?~ZuY&JVtm0qsyn6Ho< z>&LZ?e`P{`ZgeLBbeScYL^oDTUS3{qR~%n>JI$?Ntf7Kg9o~ksv$HJMD<_vAX_&e? zLWJO`Jc7JvlW2C{CJFjV6~~Qxd+5_@5enk~F&W^i9W%S?j%3D|Xr5J(cCeGrm&9ng z9x;L}l!4Bx;MP@2XH6eHdUSQ)1`BD{OLBG1sKabDz3>E32PA&Htm1@n{_nMIi-X3^ Y-lS?{nUQ2o@vi`2hsL9x*m%VJ1^6`HkpKVy literal 0 HcmV?d00001 diff --git a/test/reference/checkerboard.argb32.ref.png b/test/reference/checkerboard.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1444bc41b73afd3be57fccb35b300ed81c4c6d22 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*CJzX3_ zJUWwY3LY>pYh`3)ELg-L%-nl$1uJttzopr0F}!r5dZ)H literal 0 HcmV?d00001 diff --git a/test/reference/checkerboard.egl.argb32.ref.png b/test/reference/checkerboard.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1444bc41b73afd3be57fccb35b300ed81c4c6d22 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*CJzX3_ zJUWwY3LY>pYh`3)ELg-L%-nl$1uJttzopr0F}!r5dZ)H literal 0 HcmV?d00001 diff --git a/test/reference/checkerboard.mask.argb32.ref.png b/test/reference/checkerboard.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1444bc41b73afd3be57fccb35b300ed81c4c6d22 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*CJzX3_ zJUWwY3LY>pYh`3)ELg-L%-nl$1uJttzopr0F}!r5dZ)H literal 0 HcmV?d00001 diff --git a/test/reference/checkerboard.mask.rgb24.ref.png b/test/reference/checkerboard.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1444bc41b73afd3be57fccb35b300ed81c4c6d22 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*CJzX3_ zJUWwY3LY>pYh`3)ELg-L%-nl$1uJttzopr0F}!r5dZ)H literal 0 HcmV?d00001 diff --git a/test/reference/checkerboard.rgb24.ref.png b/test/reference/checkerboard.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1444bc41b73afd3be57fccb35b300ed81c4c6d22 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*CJzX3_ zJUWwY3LY>pYh`3)ELg-L%-nl$1uJttzopr0F}!r5dZ)H literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.argb32.ref.png b/test/reference/clear-source.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..352bf450361b97311d31d6a8d8421eb1e96eb24f GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.base.argb32.ref.png b/test/reference/clear-source.base.argb32.ref.png index b7e80251a6e800e543542169dd2916c0cd35d7a0..352bf450361b97311d31d6a8d8421eb1e96eb24f 100644 GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81Fdgu8 zaSW-L^LDmk(PIYzSMz8_W-$&H9uAHOg%`>aQe3YjESvftDRW5iU14Nm5#uq5xNyMX zK!Rgd?6+f=va*!i_rJ1D+kN-v)8}EmmzTD`E&I(o?dk(ap{)!)AWaaH!bFodtZG=9;(N(je!ob3(VF@CZa*%hr({g(Qcp`m7^&dd z5b0MQf2hXrSUtm25&tu1R5%Z;a$-;exfbjghi9vjY=32)$lTW=;W_uYHi~ALBA|;C zLKPV%!=2u+TkF_^bzC#JkgbBNUd_cg1L4v61<9Z5_V*i3OTGEM_Ihb)Z1wxkxAoMI zo&US9<70WG-M7EN*Y{riTDYS)=;M(yJD2a?mYdvD8oS@#Wb@s;@4tS{x?CJ+IPdnh zj*oBi)6=)zdV8z!oafQY#?Ry4IdO!B&XpH)-59m@jLzn_MM-;FF2t6+>wdH$Y9~Zd zdhEM1XR6=N*Ki?ppGd_-Xl_nq%tueg2HuXT*~;I6iexHY(mF ztl)j=>|&4m-z{y$MIS#q_@;0{aZq8s=dRhhFs%V*!dcBX65iJaYYBw|CS`WF9tG5_|pnO~XbPVQQs{;%bK z({TxBj|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81Fdgu8 zaSW-L^LDmk(PIYzSMz8_W-$&H9uAHOg%`>aQe3YjESvftDRW5iU14Nm5#uq5xNyMX zK!Rgd?6+f=va*!i_rJ1D+kN-v)8}EmmzTD`E&I(o?dk(ap{)!)AWaaH!bFodtZG=9;(N(je!ob3(VF@CZa*%hr({g(Qcp`m7^&dd z5b0MQf2hXrSUtm25&tu1R5%Z;a$-;exfbjghi9vjY=32)$lTW=;W_uYHi~ALBA|;C zLKPV%!=2u+TkF_^bzC#JkgbBNUd_cg1L4v61<9Z5_V*i3OTGEM_Ihb)Z1wxkxAoMI zo&US9<70WG-M7EN*Y{riTDYS)=;M(yJD2a?mYdvD8oS@#Wb@s;@4tS{x?CJ+IPdnh zj*oBi)6=)zdV8z!oafQY#?Ry4IdO!B&XpH)-59m@jLzn_MM-;FF2t6+>wdH$Y9~Zd zdhEM1XR6=N*Ki?ppGd_-Xl_nq%tueg2HuXT*~;I6iexHY(mF ztl)j=>|&4m-z{y$MIS#q_@;0{aZq8s=dRhhFs%V*!dcBX65iJaYYBw|CS`WF9tG5_|pnO~XbPVQQs{;%bK z({TxBj z0002?^lq&;K*-2RZy@$BQr5A{ek(w%mS0&WK}V}-J~89@3FyAE zD>Y_rqUtaM$3{jVpt3@#Co@65Zfgda#Kp<&$oi{W%th(=l*7{*$>T$U0~DkxZqAm) zZ`1{qy1@i^Y=amyNdor_mwG4j|avBGvQq@2FfBDk{B_Q_j z2CIqgn$_7j#Lh&jni+vHS)Ju5Q^)2K%!CL$ov5;57xFvR8`L zKcWYsBqO?P{5?bBi0%vyD7nfkmOeg87)i54@ZuYtyyRhmgMadBIb7Zk_)=NDpuj0p z`6>@Fwzy{fg^nutsHw889MI-6SW|d5f6xvsRQBX_B?RQ`d5*{yTRHOM&P@1V$kCAU z9ppnZ_AzMP_8S!bLwZYclA@W>^5Hxq3E}(CZSR1SZm&|&VUDfW)pY9UNE%CeM1UB` zo(7}`E!9YrBh4ru3V%l_*-#zIVx9UM@_Xss8-dQg<9gYn;^%Sh~~yI%S^FE*<-PvHU31{pHun^;Mvs zE0nrFZ%+R3e>x#!}0|N`0OzJSSqoboU%(}3+SOvM(-Rs?RDW=4a@2#glxm93d z>O>M9+wLnyHN5|5>2rC)9cwoFX?0KACGFJFMja0v<>383219>wX(=>3T#3iy`JR}Z znfZpp;S@3$ZVm=}jen7h*^iEnwZSbcs^4;XCMKUK30kdvJ)&hbZr8gQW2fZ5`Ftii zhvpo8OZZB+g}kj-eu_0!b*^Wv=0Nb3pn~IN_1sHHOD(6TB)Pn{xMOF>~%U09((^+YN)klE&%O7tqquQiS)zSxR?p z$Vj3gSEsbJA)+Yrk<`~x1*1=lu7S9lYh4^^sZH&Ctk4Z&!@*}{w~C93TpnPb)VBJX zhLFkjxuYt8H!t^VSQ3|YKn+7?C}>-xdHPCPn#IO)OH%sFJ|DxB$U?ip1>~?m5KAJF z)}`a)23c)J+S=N?y2nnHuk=doG`zW8%|Fm|ZkpQ9P=W%UZPDRYiShC4(%w*Y%`y!N zi?x>xU-n0(k~TJkLZLG^i0TJ=fCb69PESu?dqb&d&8b4!?6aUNlwGm0y)huMHir=} z>+6X)E($2eRH{E{?!o?XCkpNDOc)|%$7n80`B#$Y$=&wvfRrh0@}I@@H^Us{GaTUQ L=HpuF67t(Wd*a`D literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.mask.argb32.ref.png b/test/reference/clear-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..352bf450361b97311d31d6a8d8421eb1e96eb24f GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.mask.rgb24.ref.png b/test/reference/clear-source.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..352bf450361b97311d31d6a8d8421eb1e96eb24f GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.rgb24.ref.png b/test/reference/clear-source.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..352bf450361b97311d31d6a8d8421eb1e96eb24f GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 0 HcmV?d00001 diff --git a/test/reference/clear-source.traps.argb32.ref.png b/test/reference/clear-source.traps.argb32.ref.png index b7e80251a6e800e543542169dd2916c0cd35d7a0..352bf450361b97311d31d6a8d8421eb1e96eb24f 100644 GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^JwP1K!2~3?a_o2kq}Y|gW!U_%O^81Fdgu8 zaSW-L^LDmk(PIYzSMz8_W-$&H9uAHOg%`>aQe3YjESvftDRW5iU14Nm5#uq5xNyMX zK!Rgd?6+f=va*!i_rJ1D+kN-v)8}EmmzTD`E&I(o?dk(ap{)!)AWaaH!bFodtZG=9;(N(je!ob3(VF@CZa*%hr({g(Qcp`m7^&dd z5b0MQf2hXrSUtm25&tu1R5%Z;a$-;exfbjghi9vjY=32)$lTW=;W_uYHi~ALBA|;C zLKPV%!=2u+TkF_^bzC#JkgbBNUd_cg1L4v61<9Z5_V*i3OTGEM_Ihb)Z1wxkxAoMI zo&US9<70WG-M7EN*Y{riTDYS)=;M(yJD2a?mYdvD8oS@#Wb@s;@4tS{x?CJ+IPdnh zj*oBi)6=)zdV8z!oafQY#?Ry4IdO!B&XpH)-59m@jLzn_MM-;FF2t6+>wdH$Y9~Zd zdhEM1XR6=N*Ki?ppGd_-Xl_nq%tueg2HuXT*~;I6iexHY(mF ztl)j=>|&4m-z{y$MIS#q_@;0{aZq8s=dRhhFs%V*!dcBX65iJaYYBw|CS`WF9tG5_|pnO~XbPVQQs{;%bK z({TxBj|gW!U_%O^81FspmI zIEGZrc{}@j*R24Fqwjr}3rnx`iT)q>a?u6N((6-S=d{{%^gmqvgF`Q-^TDa!rQWS8 z88=@D<>Z*jIrrW{y_5y#GG?7NHDy1S|NKX#&8OM?i>9B*+pg`gZ{xYxhCk9?ObwG5 z7N{`j`NYksx%lzEp690357qXS?fJjv+J><7JRycDEDWlQ4xS7FD9lOjqCeYbBcyCr zc{I6;s_0@@ZL^A@0gGa{*;^j}v_BfD_j>bc!@6mcH<&~n*0e63404bLCj;1RC!V}| zr;`${{F8ga$%0eo?x-+SgfKFgLuG*qdHS{P97#W}_ONor!l`ra8X!r*%zzjt7s_zJ z7wTQ0%)QWwEbmt-WG+P5g=Fo6Kvo8zT`&_Y4)&g%d@{vq?zPvYibtyUezST1>(?zC zGka4zAGP<(FRzFbciI!TKHo;)X5JdpIh!`GTyisKTZE3)+`in~P90~{F2DXN)!X*i zqV1&R%D{PN@9B!&x0=g-Tg>Uk?6cS7-d8XF_&Z?JwSr&g^kc4@{^a>vcmMOApp{#y zBQ!*oOevHJ*Akt4ELDljj#$0RUWFOgg-XwdmpTx&6{0nHc4gaoxJU8 zoa&0ZrJ^<0UO5?cIBIUMie;a$>&40D!Csn6eUd&0KfYHO=Qi<%|1__Y&QKMR(?VBY zop$=^{dyU`_Rl}>sF=B%>S(XJy6)R#d*1e`%_psZ2KnwkvumBT1W(xNtM3-R|Gn?M z`E1|AKtFKAeE*yfP~}ti_;-Ho|K}4^);|0)*Z+fdg#gRqiyA!6nyFi(a<|`pT6ELE zINWqy(}TwuU$l6(2i*%>ZGY?Sj|yNYojM0fQ2Xz~ljQ;V$faL4+8k0B2WBD$Pgg&e IbxsLQ0K>?71ONa4 literal 779 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 literal 0 HcmV?d00001 diff --git a/test/reference/clear.mask.rgb24.ref.png b/test/reference/clear.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3267affbf9e96552ef1d1bf9a60b5fe05ec480cc GIT binary patch literal 617 zcmV-v0+#)WP)<@-00006VoOIv0RI60 z0RN!9r;`8x0v<_3K~z|U?bgjpR8bhm@sBCtqHyIlqJrKGBwDqIYxJV6ivEWnh016V zwFv)i3Zabzy*W1C7ILSV@!pv;1k_O?RYSI~BBX$4|yLEF(3JySVC zY-@XPju3;b3?8a`&MPNoGYaKub@95mVs$YL;!0q#YA;HhXhtx|QlSv>-|zve#0xI5 zk8Zlz&uCq#u8xj?3@BXx^UbO?{WA~`c~mGwNMa6vsX{p#AGXTcQ^g$SpgIvH5K+4e zl=-k0h`KGvGNYe<&hjR$cY!@?frx4$vds8S%wz5)E#K1a^_BQSnYgNihuRRH8OJzH zA2({9m}eJfh?r-L!%ZQgG>DMQ_?4u>K|a?)bn~8=Cmc#fX5KNUnQo=Mq9x9AgaJM> zSKGUT?cga#D<9h|h_UQt8gwmlml88PU^nI30h^N_JuFmOyVBk@-SF?O^hQ-Jlk{+( zUUo9aTV{Bc{gNTBGs&ry=fG^JR#ZFw8YA4~2Qjx9W`a9>;wQI=`N~Aqtan_^O3c(l zv05R=Bs^NSA=QjLAp&j4-Hdi@$k~jIJ7%H{h(x~uZpXIdI%c3J00000NkvXXu0mjf DCJ&`1L*{iHGcvgNkl=S!TShDK97XwnE%j&~|KT1!8MK z+tCy~Q#nFxYkP2x5QD7@9;$oJD<@_%3gv2b@w&KTbukR$N?@^SFG`$fMli@yp%C%k z@BypD3ofybZhyMj&uCq#u8xj?3@BXx^UbO?{WA~`c~mGwNMa6vsX{p#AGXTcQ^g$S zpgIvH5K+4el=-k0h`KGvGNYe<&hjR$cY!@?frx4$vds8S%wz5)E#K1a^_BQSnYgNi zhuRRH8OJzHA2({9m}eJfh?r-L!%ZQgG>DMQ_?4u>L4Q8iLUi+|;t~1H0mFK{0s8&=v{u(3Pc5KMmjEy^Hq78^dzX5K?w&XfypeFzT N002ovPDHLkV1i@$5u^YB delta 441 zcmV;q0Y?7m1mpvdHGct_NklXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-all.egl.argb32.ref.png b/test/reference/clip-all.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-all.mask.argb32.ref.png b/test/reference/clip-all.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-all.mask.rgb24.ref.png b/test/reference/clip-all.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-all.rgb24.ref.png b/test/reference/clip-all.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-aa.argb32.ref.png b/test/reference/clip-complex-shape-eo-aa.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-aa.egl.argb32.ref.png b/test/reference/clip-complex-shape-eo-aa.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png b/test/reference/clip-complex-shape-eo-aa.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png b/test/reference/clip-complex-shape-eo-aa.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-aa.rgb24.ref.png b/test/reference/clip-complex-shape-eo-aa.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-mono.argb32.ref.png b/test/reference/clip-complex-shape-eo-mono.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-mono.egl.argb32.ref.png b/test/reference/clip-complex-shape-eo-mono.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png b/test/reference/clip-complex-shape-eo-mono.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png b/test/reference/clip-complex-shape-eo-mono.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-complex-shape-eo-mono.rgb24.ref.png b/test/reference/clip-complex-shape-eo-mono.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bafbb8ad1fc681dff26bb8366836dd7ba60ed829 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^DImq5tk3fK(OJL0u>Nyd<3JETxH(Ji@$Wb1 tZvS6coExSv0MOtM`~GujtVu*beN!&3!~b-5L;*vA!PC{xWt~$(69C|cX0reQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-contexts.argb32.ref.png b/test/reference/clip-contexts.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d575a6286071961f3503d577fda344f9c2ac1ec GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih#iCT(5TL)<0tdgGZD8@dq+8^sQoPopkkI5l}gUr>mdKI;Vst E0Hrw}+5i9m literal 0 HcmV?d00001 diff --git a/test/reference/clip-contexts.mask.argb32.ref.png b/test/reference/clip-contexts.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d575a6286071961f3503d577fda344f9c2ac1ec GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih2prhZ{QtkC$qeB$C9IumUPT?)@mO|UXZPCY&n!zmcE0Q)1!g{Q&vQ{@ VOi4HNcnh?M!PC{xWt~$(69DVgOMw6Y literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint-hatching.argb32.ref.png b/test/reference/clip-disjoint-hatching.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6b22544fb3fbc4d619bb382f47d5b24aefb143d1 GIT binary patch literal 9022 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint-hatching.base.argb32.ref.png b/test/reference/clip-disjoint-hatching.base.argb32.ref.png index dbac90b2e0d46c6de25caa5939f9ef2e592a2541..55f26d0b50598e1430ac424dbfd6164036cff6bc 100644 GIT binary patch literal 7948 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 literal 8021 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 literal 8021 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint-hatching.mask.rgb24.ref.png b/test/reference/clip-disjoint-hatching.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a29f04ac924b68bb279707ae350abc1eaf73a65c GIT binary patch literal 8789 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint-hatching.rgb24.ref.png b/test/reference/clip-disjoint-hatching.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6b22544fb3fbc4d619bb382f47d5b24aefb143d1 GIT binary patch literal 9022 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint.egl.argb32.ref.png b/test/reference/clip-disjoint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba35b5b749bd67841efd3489fd73f058891fe6f GIT binary patch literal 7297 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint.mask.argb32.ref.png b/test/reference/clip-disjoint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4e18b7c7c6ff66df5bd59e72905c6fc667ba364c GIT binary patch literal 5399 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 Gq5lPA!48A~ literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint.mask.rgb24.ref.png b/test/reference/clip-disjoint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4e18b7c7c6ff66df5bd59e72905c6fc667ba364c GIT binary patch literal 5399 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 Gq5lPA!48A~ literal 0 HcmV?d00001 diff --git a/test/reference/clip-disjoint.ref.png b/test/reference/clip-disjoint.ref.png index a4c9989ff8a351e33452327ab44addfd43440a80..6577a08b396b2677f11aef8f23e7e4c4a5d1221f 100644 GIT binary patch literal 5438 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 literal 3934 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-group.egl.argb32.ref.png b/test/reference/clip-empty-group.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a59ca472d5c9c459ad537cc2b8a59a8edc9a2722 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_bqPZ!6K th}O3U8F_)cLkqt9=kl2^05TaK+-DGa!N9nqOhgjI^>p=fS?83{1OSWc8R`H4 literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-group.mask.argb32.ref.png b/test/reference/clip-empty-group.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a59ca472d5c9c459ad537cc2b8a59a8edc9a2722 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_bqPZ!6K th}O3U8F_)cLkqt9=kl2^05TaK+-DGa!N9nqOhgjI^>p=fS?83{1OSWc8R`H4 literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-group.mask.rgb24.ref.png b/test/reference/clip-empty-group.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a59ca472d5c9c459ad537cc2b8a59a8edc9a2722 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_bqPZ!6K th}O3U8F_)cLkqt9=kl2^05TaK+-DGa!N9nqOhgjI^>p=fS?83{1OSWc8R`H4 literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-group.rgb24.ref.png b/test/reference/clip-empty-group.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a59ca472d5c9c459ad537cc2b8a59a8edc9a2722 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_bqPZ!6K th}O3U8F_)cLkqt9=kl2^05TaK+-DGa!N9nqOhgjI^>p=fS?83{1OSWc8R`H4 literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-save.argb32.ref.png b/test/reference/clip-empty-save.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-save.egl.argb32.ref.png b/test/reference/clip-empty-save.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-save.mask.argb32.ref.png b/test/reference/clip-empty-save.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-save.mask.rgb24.ref.png b/test/reference/clip-empty-save.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty-save.rgb24.ref.png b/test/reference/clip-empty-save.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty.argb32.ref.png b/test/reference/clip-empty.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty.egl.argb32.ref.png b/test/reference/clip-empty.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty.mask.argb32.ref.png b/test/reference/clip-empty.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty.mask.rgb24.ref.png b/test/reference/clip-empty.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-empty.rgb24.ref.png b/test/reference/clip-empty.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-eo-unbounded.argb32.ref.png b/test/reference/clip-fill-eo-unbounded.argb32.ref.png index 66af09426913aa655d0e4144ea60ea5f51372bac..e86177cafa22be7ab62515594b353b6c577f37ac 100644 GIT binary patch literal 4197 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 R>i%zlqpGB(SgBwU_#gh&Knwr? delta 3954 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 literal 3693 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 VWPadUuKtezJuO4cS`Ein{|6kmG(7+S diff --git a/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png b/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png index 1ad0b176beab61c36b770cb44e02f25ecf8b7756..d6a5939b747cbda24c500b685d36ce683c3e7e9b 100644 GIT binary patch literal 3224 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 literal 3198 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 NLCkDSt4%zU{{fb(NEiSB diff --git a/test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png b/test/reference/clip-fill-eo-unbounded.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2340bdf122ac97c99a3cf8953753796ed5ddc071 GIT binary patch literal 3769 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-eo-unbounded.rgb24.ref.png b/test/reference/clip-fill-eo-unbounded.rgb24.ref.png index 272e0e87228da86d59ca9e169ee8b29de60619b6..cd0c9b7b0362f34ef6ba50270c539a846e636ca1 100644 GIT binary patch literal 3551 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 Bu~+~A diff --git a/test/reference/clip-fill-no-op.argb32.ref.png b/test/reference/clip-fill-no-op.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-no-op.egl.argb32.ref.png b/test/reference/clip-fill-no-op.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..11442ad5766e866153eb9f25aa19735441e4d0a6 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^}8Y~*Dy;9xO4_^8KE%;UUx-a5OTY0FlXnXjs?`;a?d{=y>HZZX{`$)&E{VNRJB o7flU_+LEC<1t`P`7rMZ%wrS}$UHA2#K!X`PUHx3vIVCg!0EQkjy#N3J literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-no-op.mask.argb32.ref.png b/test/reference/clip-fill-no-op.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-no-op.mask.rgb24.ref.png b/test/reference/clip-fill-no-op.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-no-op.rgb24.ref.png b/test/reference/clip-fill-no-op.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-nz-unbounded.argb32.ref.png b/test/reference/clip-fill-nz-unbounded.argb32.ref.png index 66af09426913aa655d0e4144ea60ea5f51372bac..e86177cafa22be7ab62515594b353b6c577f37ac 100644 GIT binary patch literal 4197 zcmaJ_Wl$6hw)<&zv9U&vPO|TT2;8%1DZXg9B7mQPjOhuYa8wa33YD#L)Ku zfT}Ai;@tgfd8m>^92`nURYiF{udKc7kM1=3Io+}op9I#ZC3s2c35A(DiT8I^0^Q)u z=5ho{T*L%Nc3HLj9tOlcvGgu-)VAY^_Gn!v&FVJ}(X!HNs!1@ejj z>OfA)6s}c;grC>S;tTo{6I%$eg?g+c&t@Uyd=ci~{C>%B;x)Abv6NZVfi7KZyRlS| zd8}=9{}DM{GN<>6r?2JDh;%2C<#M6+|eh`f>||y*LAN5uI8oAWi$ab8|7yE=ZJSpK4TqLHk6U;$cReV6-gD zG6aqRw_=5Gy1-xZP{ny+D=0sSecqHz&|f|!ZK_R-Jb`Ka*Y@tItW6P|zx2Tt#PZyn zI(R}K*ag)oRR|=A`E&}sN(VI`qR#Y2{rqtGCMAxk?a`!-^IRfh>a18@`Z3 zqB3@|Qhj$)454pE1=H>(PitlwYN2)5&O(%y09(kf4x(&>w`g4C`*Q$M3O_uh~kug_ZV*E|Y$Hv6kZ^AOTVkV#(QM7hd{ij$~ z$g7!Fi~_WYu;zGjP4PChVth>8l{p6tO-|-89Gs&f zJ9H+F=0K~ym#VRbqfd+JPVF09iTJgh4{S*t$x9Nvg17ks)60Bc(+_pOurHm;YMUUJ zU#LmFkfiR~=aA+UQ{q!t-7MowoEb_EJ^rS^xFc#?9mkObtQ!XXF$dcR+k_ylxeZ^L z#D(nQJm`zX7KJH*FOAt_uo)HkFheI22XgalI|IlRuB{KSRW(J~0Dl@JtJPMP4@6G%fpwGHjL`;F#zD0-rb{Ckhoqdp z)cGzbM{2PcQ|7n5rx+-Dj1YSin^ z^QRkTTStl&>rv__d^{?as15S{6&CFQ^9|j>>;Pe4vHz?`N%0;wr4>0AU`$$hyvPxrc=rv%d0M9Z9!a znI99LeBua5>@^3mg|pJgAV@FqM;XRHi1T2Rc#4U8MI;DM6^_X(MFhQ_U#f~oJUIVLrryPatw6 zN}4D*F6YTtJW5 zZ?QQJ(z`*#)aVp&i6Kk@He3hkOCRc!m{D|;S8}{&mUw@7c|w;avc8rdWhJa2R1}Yo+~?PNp|>|Pq;B|ncsnCv-y^hrmPlG- ztkAg{SNP(14}W*d7@8N9e&;@?v4-6gUApc##~7m^o-(4$tyS-`a!af$HqzGMso=Iy z;0{eX;n(P~jHTBBADU!uaMn(@X-ylP1m2vEm*@XQ>-vzt1I6jcrLN}Xeh&bfcvdc~ zhmXu65?WfAieh862}T)N6`>W|$md)ef+24i9@M{Se}g!UL?U@FR-?E96s(2WpT#E2 zFb-Ln>4bpyos-}KG zYx=#CE{sAvqM<=+baL|P1Ge|nrVTC6{-r)g%F4nemME)Qbf1JklJYAI1#*9DOM!72 zpzD3KPP29CSy}UnsuWH88~xu0-oNWCg$m{4+JBtjZ6hozGhm9hShRSmdW7$r#eRww zkldCCJR4hJu^P;f005{TV0=qrY@3mXg9b4X))+kHC zv>9i4$`=BAz!euGhX$qO{2@~NNAA2PouP1c73b8}_?JxI>sxRWc9IR36g3*?O4PXv zpnOx3QtdovGv-awR#)cKu<{m*41KFyaC8bs%T{~fOE&B`-Gg4lJ}`BNj`c>C3r z?nMlkt+T&z&vrP+4m4wg(xh@@Po#qw**xV}UB$jE8xH5l!OaUd2VM87p+27PPiEH5 zqyZ;a0VcxdP=+p(CK)O=KO_Erb(ZGp7sq$L=bD`2hCA7bhezGHx@J<(4zNFY0ae2m zv)kntb+_UfB@dd8Qe=w?|F9b8^j(CzqJTgk!g~5)^9V6KjqEYKwPehqokPNs{E;P{ zR`v`1ldHeivdbHp-6|B+DRnr$by(L=<9M zdhceJnco<0rO~3ZQ##HylI8ik0IbXm^rX-Gm`_dw}#B)%A%FJ5)`*TeDk{QmNLwv>1m*6aICl}&jn zVQs9pDp3QBPF%5aO8ni(`Np>yEm~~%a@K!e9>Vt?3}0jxGhgJAaJIQ=XXiQRcR^PCPQ(V9-|&i8uX#gR||=P%ii3hN3V4}Xdn3J+;553IqfX!_Fhr7z&O z)!uHW{T$k!zs_FW@`6AkJil*L44(BF`Ms)cpMU;bJM}_@ESgDN=GY&(DCIy;@%YmC zbYy7thwP6gO1zEXyL3e_8HrW`1$EEo`QtC)yI$_lC-5(9py)>l2rdU5LWjDKl8#<{ zO`#m?;`3)U7z=@(!<8wu?zrzbB-l!c4|H*|bqi*YVX0a(la?P+S(SM3O}llCSXk3ZXi=`ippPuY^JJ7_fD5 zG=@0UwX%?6dEQ0lM+5ymN5ZvV@)?K&#fAxovaWSF|LZkdDv6J>XklyiRIzXAd}PAPu6j3bK*5|ywF*-CvAUb zH}hf6bhP(pP`lJ|9|*#9TZ()lZal8krfJiS zEO^Ty==q+Z+yG@&Jl_S}_jS5-R^X-L=w5&xhE&4R8@W?6RwBP_(xV>P6R{SD$Iy9( zZ;eIGv|LVI_#oKq-dH%zXs$*Cfvu`zS-WuFJeKdMQ*0#JFh_f}2?<^MrD7?329W;E z5pr5wM#j+)vJMRGL!L+9;CqPLjlh~7TUz>b3F6Mm>|D~ZJ5%e72m#9q!WNl7Y-nU=E7du;ga8+(1GCv8-(_TGDtTWj#AjFJv}>B} z@9wTZSAHwKVpAQBO8)0XQOXQvVg=M@@fn|J+xzbC!uXW<$h6nz0_C`|MOG6kAqzSG zP>NrnneQ3f(gX?T;d5TcCnwoHF$r|DL+gdd4{uq;mhbQC|K1n>*U^3AAN2UNe!_6D R>i%zlqpGB(SgBwU_#gh&Knwr? delta 3954 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 literal 3693 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 VWPadUuKtezJuO4cS`Ein{|6kmG(7+S diff --git a/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png index 1ad0b176beab61c36b770cb44e02f25ecf8b7756..d6a5939b747cbda24c500b685d36ce683c3e7e9b 100644 GIT binary patch literal 3224 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 literal 3198 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 NLCkDSt4%zU{{fb(NEiSB diff --git a/test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png b/test/reference/clip-fill-nz-unbounded.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..05b26282c41e0a5cff6f4e30c71d233b35e45e53 GIT binary patch literal 3764 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 XLs!`O*Tm~Il<293o_dw4P3ZptQ0!iH literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce760b132d87584b5d8f3e7b63279a608eec1ff GIT binary patch literal 3215 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-nz-unbounded.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.rgb24.ref.png index 272e0e87228da86d59ca9e169ee8b29de60619b6..cd0c9b7b0362f34ef6ba50270c539a846e636ca1 100644 GIT binary patch literal 3551 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 Bu~+~A diff --git a/test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9b82c4b5f63dffd971f11ef0f46e7b42da2a2260 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^+CVJE!3HEFccyLzQfx`y?k)`fL2$v|<&%LTsh%#5 zAs(G?rv`E{C~!D$fAKGT8@Gx^n!$&^X4jlq7!_aGN+e9*FuOnCZOqj3^~RfGJx&UB z=>OAwKE-HOuTw+NWZ9c~OHxjY>l9C2H5bY&SNrozE7f|bnl(tdS0RJS2{9Fo6B~a3 PEoAU?^>bP0l+XkKWdlE# literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule-pixel-aligned.egl.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9b82c4b5f63dffd971f11ef0f46e7b42da2a2260 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^+CVJE!3HEFccyLzQfx`y?k)`fL2$v|<&%LTsh%#5 zAs(G?rv`E{C~!D$fAKGT8@Gx^n!$&^X4jlq7!_aGN+e9*FuOnCZOqj3^~RfGJx&UB z=>OAwKE-HOuTw+NWZ9c~OHxjY>l9C2H5bY&SNrozE7f|bnl(tdS0RJS2{9Fo6B~a3 PEoAU?^>bP0l+XkKWdlE# literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9b82c4b5f63dffd971f11ef0f46e7b42da2a2260 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^+CVJE!3HEFccyLzQfx`y?k)`fL2$v|<&%LTsh%#5 zAs(G?rv`E{C~!D$fAKGT8@Gx^n!$&^X4jlq7!_aGN+e9*FuOnCZOqj3^~RfGJx&UB z=>OAwKE-HOuTw+NWZ9c~OHxjY>l9C2H5bY&SNrozE7f|bnl(tdS0RJS2{9Fo6B~a3 PEoAU?^>bP0l+XkKWdlE# literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png b/test/reference/clip-fill-rule-pixel-aligned.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0b4f0688369fd49ba4bdcf6af60b9564e5b2a813 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^+CVJE!2~3)-Tw3hNU zSWRBT{mU!atDT$gD6ApyVJqX>7;ZI-?}lYSTNpfD{an^L HB{Ts5&%-<^ literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule-pixel-aligned.rgb24.ref.png b/test/reference/clip-fill-rule-pixel-aligned.rgb24.ref.png index 1970c47681af406b8d6904fc612e9d74f3109864..0b4f0688369fd49ba4bdcf6af60b9564e5b2a813 100644 GIT binary patch delta 9 QcmdnNxRh~%*+kEL01<8jZvX%Q delta 26 icmZ3=xPx(mnE-o`sfHAX=`9fhmgwYE$&E&>2*BnWi? diff --git a/test/reference/clip-fill-rule.argb32.ref.png b/test/reference/clip-fill-rule.argb32.ref.png index 0af153089df8843cd54ceddd47a795600bb285fc..cb23ea61d012de11b4246a8ba68ecedd9ba3002f 100644 GIT binary patch delta 393 zcmV;40e1fL0<{B>Hh*eKL_t(YiQU#eP69y`$MNr?CKxN@5j2ES3#G&gEljMnpd@$~ zJ;1hTqnD5~P>Bc74vmsnX!5ggHf)xeb@mUkagvu1X6BQ}Oy)h{zYW2TV0&3+ErWY% zqRdggDHsawD{Tt41Yd$r!R9hd->W|YR)AIDxJZI|P2WUM9DkpSjB-uEn&4F+6BGTM zLZwUuhcPgU_FtPdv++XkVc9I~uX1QxYmB~!xgS6f51{p%8U4zpVB}cr6C*)0adIxR zVL9c7j~Ojq7lb*I3v{!aA2Yt8E0}sDI2CkLv3c_{WzAI` zch?2YTftp!Q}dl86x1y**t?@F!i;wg>kCX&h4!+{s7%<4?QBg{%$?Wy#N_t)}iB6%_Z0000 delta 326 zcmV-M0lEIQ1M>oqHh(BdL_t(YiQSdWZGUtu-0TpeV#b#*&#h0I|mcC;{;6I#KSLEtE3YgsVcotQp_ z=_kD(h@6yoRy*dV2$xLS`LA^gS?y*LaAr;$#nk06eRfCIHwDaI@an`5xl9C~k^gbB z7Lk#84@9OhBR{rx?t56lW~+XJxwI%+fk9WOuVVT(5pTA0jBn=cRZJ2VuM%QUXFlcl Y2H%p=@^a8(E&u=k07*qoM6N<$f-r!W*8l(j diff --git a/test/reference/clip-fill-rule.base.argb32.ref.png b/test/reference/clip-fill-rule.base.argb32.ref.png index 6b083a7872cebb940175c81c942368b01cf3df51..cb23ea61d012de11b4246a8ba68ecedd9ba3002f 100644 GIT binary patch delta 393 zcmV;40e1eJ1GNK?Hh*eKL_t(YiQU#eP69y`$MNr?CKxN@5j2ES3#G&gEljMnpd@$~ zJ;1hTqnD5~P>Bc74vmsnX!5ggHf)xeb@mUkagvu1X6BQ}Oy)h{zYW2TV0&3+ErWY% zqRdggDHsawD{Tt41Yd$r!R9hd->W|YR)AIDxJZI|P2WUM9DkpSjB-uEn&4F+6BGTM zLZwUuhcPgU_FtPdv++XkVc9I~uX1QxYmB~!xgS6f51{p%8U4zpVB}cr6C*)0adIxR zVL9c7j~Ojq7lb*I3v{!aA2Yt8E0}sDI2CkLv3c_{WzAI` zch?2YTftp!Q}dl86x1y**t?@F!i;wg>kCX&h4!+{s7%<4?QBg{%$?Wy#N_t)}iB6%_Z000013;Kwr?(P;v^2R5a9dAZ|d#fw)5|w71A5 zSc$#EDiX~$+n8cK+GrRjGx-2oOI9L{{p7J@JMiB`U?H%07V|BEyVK`qdPoms3X}rn zV8Ah$0&{^M)%i1+lSu9cn5u621lW}s8|cn>?<2!91*QU(fPbh~@|%U1Vj{4v0iCWN z&77#?LEt;!EQGtV4B0B<5W!q#kku7fwlUo;bAhvA9HVD}+{>KByc_a5{9BpMcqUME z2(l2E8D;jF7puGiml$Tl+-2Ag9F(>di{XZl(N%hJx=Hk@x$nf1+K1)992 zlz9zhOf!B>WoRO>k0|}V2eZ)c*Z+o-mG@f!`vJ94OGAav;(6g6q;xum>K883={Qbius*)lb1Jl_}8(T{&Jf!U+H8ji1~a@gQ1TlN*}ktGcBLEIV-Qu%DO zm?Q^JXeG%2zl?j-$-tq`I4*m{_CidZM%?{IHa=^sXne-{tME!Ye6!6<#`Zi(Ui{-c zyvrt=bn|dGfmOUA!@%WrPJYW>E*@;FuPqwf(hK{mAfL5Wbc=p}5$W|;kn6;D0_NQk u`%x{;fBx|v*`Xij`|R?R8efqA_4ovI7S)!|d7JV80000gHh&&TL_t(YiOtnL4uU`shT%6x8cI$qRe84}i6w*2Q+U<7$T&I=~Y3J3rL}ljy z88kk%8_1Na>-;NiQYQz9;UKGhfLLpx$}grKUz}WYBSsyw^V;-LE#Lr|GPLUM^p08h z)^vU=CbCwU}ORqN}+tmjyf6ANy O0000iw~y8p5c9;)WACn7E1qBhh!!9aePF zhfrPtCiDSxL!%@Pn*1E>h34p;Eu2DZ@=q?;_LKj$Y5xcRtqC>+>$5WR0q&8BEL--b zpd+~b1@kUTa82+j_zN1$`gWo=_JIJrW!W>Z#bcd7d)nBE*a)Z3&)Jk{k#& zy}^-LP3f4w^Vhxrw;$K+0S>fb00000NkvXXu0mjf DqG-}T literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule.mask.argb32.ref.png b/test/reference/clip-fill-rule.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cb23ea61d012de11b4246a8ba68ecedd9ba3002f GIT binary patch literal 437 zcmV;m0ZRUfP)=99-v<~`uQ4Z)6Jds${JgL`VC%u&86 z7z*wyZ3?yoUxH7;<}ys*t3Lu(fK}kQNP>Ay-$YLwpNougO~IPrRUi`+{hUIjOazB9 zFpBnHn>DlXLhxbPEbOmxXj^NHzK6LVKoAe0^_v;}%BEoCSnLxcK{Ii3F0)}d<%W+L zEnXLdIg$(ob;mU)&9Uox1!EsGzM(6adL%d%bW^c;^D<@4RTeYav?q8;Npd3C^#*5V zCuP2q)r@xzSE8A_lri50JcP8ofN(J!*m3qr4i9ucmU?;3`}873+~D4DvzT8V^$WY_ymp2Ty1v z$pF8Md(_Fmq0Trid&KraOr1vD{YExEYpZB{#`>%9N;`bB%}d7iJV{>s<2<~}CYyBg za5sUxA;ZAsbxwZET`nGMtFJ8@+|mpCt014XRdkDfe-Y{RSCH$(b^_+z68ljt&42#! n9@(KE=lksPlp0@<|MmC;bQaZ?&v~2j00000NkvXXu0mjfvt+nN literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill-rule.rgb24.ref.png b/test/reference/clip-fill-rule.rgb24.ref.png index 7001dbedd808c1a8a00e3645edbe0f3af2863363..5265ddea9660de29fac2743c147f91d411c38e56 100644 GIT binary patch delta 348 zcmV-i0i*uX0*M2VHh(@zL_t(YiN)1BP6AN?1<(`4L}NwRf+3XBXsH!im{4m$Npu0a z3R!?H+UO>94OGAav;(6g6q;xum>K883={Qbius*)lb1Jl_}8(T{&Jf!U+H8ji1~a@gQ1TlN*}ktGcBLEIV-Qu%DO zm?Q^JXeG%2zl?j-$-tq`I4*m{_CidZM%?{IHa=^sXne-{tME!Ye6!6<#`Zi(Ui{-c zyvrt=bn|dGfmOUA!@%WrPJYW>E*@;FuPqwf(hK{mAfL5Wbc=p}5$W|;kn6;D0_NQk u`%x{;fBx|v*`Xij`|R?R8efqA_4ovI7S)!|d7JV80000$caY=B3|2p)kE=qNLSN1&w4 z3T%)OQc{M3L~?M>KZz1yxx0J!`97U(_~%t_j32|{JDlOQR6dFy!n}sdQth?4f*#r} z@lf}AtfCjmuf%DfhaT+yxEkSQ{wLz1`FdJQWy)vZwR6&}eSej4GnKG14p2gyBm9KI zsqW)H?dl*7PzY!A_ifHX7jNbg+8{nG18-TljoqRzZstNZ0SBlA?Jn&Ls00m@_=709 z^+de$47jD=UL%{Yb8rhMP|o|4g7cVm+{K12fY*+860W>#cch~RuEYoH{1G+djZjF3X`q zyLar+tqoQ_7WmPliJF?fMn>j0jm*kQtgrw4;KAMR1CQ>ZyO`brUhM)%nIXRqo1cvF z&B4pd!tEZob!%8t4G{{T@yWjc)2RfkL=1A|%$cm~*T0C1Qvm&@=~r&ZCazT}f5M4h z(MMy4PM?16@r(fMdd0E(eEZwFps1eiV(uSf)_CK_u&Q$N=9hpjcA0mWs-w-pk3SIA zuhV_LphnFcqrpvSXKZTvC}kZqxaAXTY#eTDo7@IiTENOL->-Jxyiw1c8vsZSbLA>& zQwSwzwBmMh=hXi2)c)}8uN$=7iwv*@2}cp@By}+bX-Wl<^GBfBZN& zG&B!z{2rzdLaAD49IR|Pwa=ECl$4s3bZVdN@2b|yg+_#ed6J_KfWg6t&ll9dT_x*Q zSK5`BChS7CxxT$w#;2eA1`oRzDuQh5Rb1*Ld&h9vXEIjWyo8QaPVj1rWbPUca2Efv3{80S=ioCm37=Fi*;E z`B&dary+7)>n1h)wyg!1 zbZL&$X#t2B=q?5ZGh3^hJsT6PYW586X$SDzm`{`wHE`w__V%sr_|tzh=fD9=c6K7b zz2k&TD55E$I@j~vou~fkxw+}NxjRq&IZYLwglZJQq?rdtf!th!(`i|~B%*q*U8c7H zAZCj(*1l3Hb|HMepv%>xt5vO!a`_tNPtd7b-8$fO zS}tD90T|1~-9Tq)>}ej=(@}=IK^}OQF6BBLX5Mox2CQ1OT7nexe*A0k|MVg7VPIf! zQT2L*9UY;bp4k^KBEa6ghN2>4S((Y{w8VV+{0HpBp2E`qK}P@p002ovPDHLkV1g~& B|GNMH literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill.base.argb32.ref.png b/test/reference/clip-fill.base.argb32.ref.png index d6e84a3ef4ec6eb5613ead7c2517c9ecec7bde66..72dc2298a028e47d2779d7e1aec17cb5bda60625 100644 GIT binary patch delta 999 zcmV0C(PKueuoZRI5-*eBs|8wtm&OKKd!;Rg1dLWNlQ}zZBq9ec6p;2 zR4Rw5>p>e$9DllU85a)Purqkj(z!S(Bt>+3=i&*i7eJyOAZ zp2W|d`KPB>0Dk_J>_vpqu-Y|M-+%d-H9IRSJ1gt*G3(zA1NEz2lDoDSn3{^X-F`{z zvF=!18B!9OunDzoREx24Y36qO0dx^gyabBptGh1L@AkF(LVe+!4dB#sbP;u;B%UZq zb;p3$B7ec_*C7ClSN*TIEHWsYTs@j62F(*gldDJ7+$?DT&_*elP$x=aHFHvwfKdX! ze+`hC182VbQ3V~5n<6tTGQ*uKw^WVo`!YGl7y#bCU)@`9B}go`7QjA>3|%P0hG;r==zS{}Uu&q@@L)SyAZkFRQA`jYqXMN^>i=AvCd6 zw+`6trrWoR0DNW~9Sm0{-sVv)!<9HX@L-vNJ9mn!s&YwM7JX(sR=gIOuUlnt>x8!? zd0Es&;$<5#Z1vU0Io-qQYpmn-ZQr{{XCf Vox|jhwzdEO002ovPDHLkV1nB4?P~x4 delta 1009 zcmV zVI!q&B;0T@Mw2aY(o*WF?S&AjaA2}ay-Z>}5Zf0Co1lr;#SsbzF@_SPCX`kp)D>MV zeRp_YTPStGg>Rn2_xU})_xb*Q@AK#P2>1B^uuIa`ZZ?~bM1KT^f6L;07DX6 zl&1UCER`4D+?2fDr@>%Mv1zcYn`azrFxawa&R)oPM~?DW~Q^1H$3wDS(!RpS*h~DZ>{k2tA6TkU zcsQI`Sl9sg@iz{>B(LgxJ2>Atdf{Y)POH^vwHHn{%y*7LC-B9Vk5 ze7|Yi?82B((j>biw@rsM(WtnI;tGH!!|8{>S8>;1TgT2=e`)LZGVTO8Gl?bxh~j(U znY!I(41Yvz3YnT(1F%KqWp~&9B-^{fp^DqOirc!ba7eM#{tTebQ8xoTe!Qj#%O_`- zNE#Hfy!;PP*ieqT?_@Ht;mudR%2&P`*zlGNVMxj!e%$8TLny)@It686NGhbd`V%Pr zuF;u4W#Z8WRckucn$DvQmJG3C1P&egR1vmCKYv2_*tA0G>pusG+Q_MazS&=8dyn({ zX8Y=9`)ZH#ylm;49RkRynXLut>#G#u#tAA$%k1Go+bY~Rp%ACj2$0e6paFPR6S;I} zU}vD0?hHJu5dkI|~E|w3OE4w~GOUI)^WSeGFB8x2XeX&zjtB3qah=<$lJS<@GKir)IpF z%l)#d$769gjFc^laWnUuh}x9%S}2Q!KWbb+p)6j#`n0d_eOc6Gie)jS-&z(u9!pP; zQWp2@ArOfqy1M4(=QCwJtyWEc|2Hiy#)4(fgn?`}FN!Oon3$SckH_BtX7m0NC#sxI flhbJ|dHVbdU$~Ly8+{=n00000NkvXXu0mjfh&KIz diff --git a/test/reference/clip-fill.base.rgb24.ref.png b/test/reference/clip-fill.base.rgb24.ref.png index d6e84a3ef4ec6eb5613ead7c2517c9ecec7bde66..72dc2298a028e47d2779d7e1aec17cb5bda60625 100644 GIT binary patch delta 999 zcmV0C(PKueuoZRI5-*eBs|8wtm&OKKd!;Rg1dLWNlQ}zZBq9ec6p;2 zR4Rw5>p>e$9DllU85a)Purqkj(z!S(Bt>+3=i&*i7eJyOAZ zp2W|d`KPB>0Dk_J>_vpqu-Y|M-+%d-H9IRSJ1gt*G3(zA1NEz2lDoDSn3{^X-F`{z zvF=!18B!9OunDzoREx24Y36qO0dx^gyabBptGh1L@AkF(LVe+!4dB#sbP;u;B%UZq zb;p3$B7ec_*C7ClSN*TIEHWsYTs@j62F(*gldDJ7+$?DT&_*elP$x=aHFHvwfKdX! ze+`hC182VbQ3V~5n<6tTGQ*uKw^WVo`!YGl7y#bCU)@`9B}go`7QjA>3|%P0hG;r==zS{}Uu&q@@L)SyAZkFRQA`jYqXMN^>i=AvCd6 zw+`6trrWoR0DNW~9Sm0{-sVv)!<9HX@L-vNJ9mn!s&YwM7JX(sR=gIOuUlnt>x8!? zd0Es&;$<5#Z1vU0Io-qQYpmn-ZQr{{XCf Vox|jhwzdEO002ovPDHLkV1nB4?P~x4 delta 1009 zcmV zVI!q&B;0T@Mw2aY(o*WF?S&AjaA2}ay-Z>}5Zf0Co1lr;#SsbzF@_SPCX`kp)D>MV zeRp_YTPStGg>Rn2_xU})_xb*Q@AK#P2>1B^uuIa`ZZ?~bM1KT^f6L;07DX6 zl&1UCER`4D+?2fDr@>%Mv1zcYn`azrFxawa&R)oPM~?DW~Q^1H$3wDS(!RpS*h~DZ>{k2tA6TkU zcsQI`Sl9sg@iz{>B(LgxJ2>Atdf{Y)POH^vwHHn{%y*7LC-B9Vk5 ze7|Yi?82B((j>biw@rsM(WtnI;tGH!!|8{>S8>;1TgT2=e`)LZGVTO8Gl?bxh~j(U znY!I(41Yvz3YnT(1F%KqWp~&9B-^{fp^DqOirc!ba7eM#{tTebQ8xoTe!Qj#%O_`- zNE#Hfy!;PP*ieqT?_@Ht;mudR%2&P`*zlGNVMxj!e%$8TLny)@It686NGhbd`V%Pr zuF;u4W#Z8WRckucn$DvQmJG3C1P&egR1vmCKYv2_*tA0G>pusG+Q_MazS&=8dyn({ zX8Y=9`)ZH#ylm;49RkRynXLut>#G#u#tAA$%k1Go+bY~Rp%ACj2$0e6paFPR6S;I} zU}vD0?hHJu5dkI|~E|w3OE4w~GOUI)^WSeGFB8x2XeX&zjtB3qah=<$lJS<@GKir)IpF z%l)#d$769gjFc^laWnUuh}x9%S}2Q!KWbb+p)6j#`n0d_eOc6Gie)jS-&z(u9!pP; zQWp2@ArOfqy1M4(=QCwJtyWEc|2Hiy#)4(fgn?`}FN!Oon3$SckH_BtX7m0NC#sxI flhbJ|dHVbdU$~Ly8+{=n00000NkvXXu0mjfh&KIz diff --git a/test/reference/clip-fill.egl.argb32.ref.png b/test/reference/clip-fill.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f8bced2c2f70fede3528cee99c6f165ba7badf GIT binary patch literal 1199 zcmV;g1W@~lP)K~zYIot8^XR976ve`f{?f&)@<2DCsZ(uKB>LE2?aqloB?4n7vv zcF}~y1ym^nttLKNyRd~)(TWN@Us+KsEGwFB751_}s7W&ndcEswdUi+f&UerMeCL1eJxAOD0rHiiO-ceVKd;r*J#J|5baqZoOe}$ni+jy#jmgVP zJbXAYBEk?T7Oq##D#0F*xW0bm)T!?N{%0Yzsi{$AWm^s%O7tgQ?RX%CU$g1R;AtF4 z;+~SxK~6hw42E{>^U31k?#jwO)e}8O=6&KPkdi0yxUI~t)!!&8N-ZznYBU0b>7(%c zx)l-(W24yD#3w%x?o;{|^~sYDYijyIux^55we0+j@FjouQW)*KxOI%l*eh51HBDZ< z`Zi$D=l)V?MqGBjI?rO5((BRb^r)=KkEkdir&VQL5rr+Ww}pxll7~T7RSmdYUcj)j zZZClZf!oT>eE(`MENG>r-5`jW}Ue>DCfSw zG$W-fDd}EZ)Rg1?l$Rx5o?!DHhLct9+qXx0d*?v%Q7vXK(opzsRZn5#@%MA$O{Vp0 zO~-fa=`FldFkgixNbvGuEr_0;8K={$9JlX&K8s6;yF$2@pSwcZq_j(ElfDD8HCru# z)9D3C^ensD5u^{=s*V(_o^$n)g0w*!5^~yDGYdGKBg%27HMBo}I{>;^fZP2P1lzjw zx_)jwp$keIzBm39Yxps?)Ok~9PH!tjK-eM~4*<7&N;w{n4^h$QVgN=rDB9zh2Z?1= z*X-T8T^D>ecUp^{lBTJO>C-x6d*@v>j@b+1@#AO8vG#(B`eR_HP_(8kO9e=b`WFgv znGuGS@kD?JDWy=3&Eqd{ObEyEql(_RF%l$Ri>`5X{jLj&qrMT-CNUH9S=42nasB;= z8pmS>Hf@Sjjx+yyfn!2A&T=a{GcyJRUEA=5Be~pFqYKLN^0lK=+R@3fynLPcx~m!i z3*kJl0-2ey%JJ@YjE&1XIbaX3#K6S6+SFtmjzo~muBB}!f}SMTr*+p@g@T`}|4D8_ zLR$`Vksurni*lSah^;AfMOPzfSP2gvOh`+M21)J5c+D8J>WG5$>H|0KwLY1d8K0iM zaj$iA_5N#XP9QW!E!;W^B0W9I;Yd`c6R>3D(giv)0D>$A!6j79?NU0Op1iz20g{Kf zaFGpT!PU{*V`eU%XDCGo+1U7=-EQ&!tHXVq`;vXXUf!mNSku;<%gd3Dj)m^-h4Jx6OG_(2e0;3U7FSwo zJ$iKSu3a(fouwB=+}XKs_Uv!d)8Q>WQ&Wu>F1&T*$lhlW|Nc7OJjQH1*aHy1M8-G; z10>IGO{}V#(>dAPJS9+5h|E!5{S)Ai*YMd1ne>^es?>`Y-o|^4HeZX@ETsIDVDfp$$%o0dF2xkMl6Dv2iLAp{eN|ASQa5r${7*o)YS- zQ4AY!kH;@qQ)XyzQrI7znn9tcj|Qi{V=XOHJw1UP5bNTz(^kG_K7JfIb7m6Yl}EU0 zNmxXaaz>>tPE>#K>HC{=t^DkR?D4Mv3I;HS^*}*9p0VAE z*E{=s4*}9A^zT}qe@e&Oy2cEblMI)W+PcPcq%Q9iKOY z4bZgJu1;9o0pAnn#KheI0gG<_^ow6tzA<;ofqimdU#q1H6PYJ$OmS%gb!a$vNfZTzQ#IM{2y609Im|NCz@Aerf#hV6A&-cs3kX!(nx3cs8fjRrOLfvP!_hwPQe9n#tj? zu3Zv}fw~&TZ2w(x?`o?QYnsR7FD)Grxx3v@ZI+-Jx0~5yN#gqTtdbJTT2~tsYU((A zlbFbMO9vbd>$!7p0?ee~Y@oj|`ZQMz^cCT3&=0)x=hI3`EIi{{^w~wXTK(9@Ui`KA ze|iW!A2G1J9O>@%_w@xwMjqa~7XtS0H)UnT6&0Bs4r|oY=U+N$ml>P{>2m-8002ov JPDHLkV1k~F^_Bnt literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill.mask.rgb24.ref.png b/test/reference/clip-fill.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f27003c80895ea7b2b37119e4ca7f560fdfffa GIT binary patch literal 1039 zcmV+q1n~QbP)f!mNSku;<%gd3Dj)m^-h4Jx6OG_(2e0;3U7FSwo zJ$iKSu3a(fouwB=+}XKs_Uv!d)8Q>WQ&Wu>F1&T*$lhlW|Nc7OJjQH1*aHy1M8-G; z10>IGO{}V#(>dAPJS9+5h|E!5{S)Ai*YMd1ne>^es?>`Y-o|^4HeZX@ETsIDVDfp$$%o0dF2xkMl6Dv2iLAp{eN|ASQa5r${7*o)YS- zQ4AY!kH;@qQ)XyzQrI7znn9tcj|Qi{V=XOHJw1UP5bNTz(^kG_K7JfIb7m6Yl}EU0 zNmxXaaz>>tPE>#K>HC{=t^DkR?D4Mv3I;HS^*}*9p0VAE z*E{=s4*}9A^zT}qe@e&Oy2cEblMI)W+PcPcq%Q9iKOY z4bZgJu1;9o0pAnn#KheI0gG<_^ow6tzA<;ofqimdU#q1H6PYJ$OmS%gb!a$vNfZTzQ#IM{2y609Im|NCz@Aerf#hV6A&-cs3kX!(nx3cs8fjRrOLfvP!_hwPQe9n#tj? zu3Zv}fw~&TZ2w(x?`o?QYnsR7FD)Grxx3v@ZI+-Jx0~5yN#gqTtdbJTT2~tsYU((A zlbFbMO9vbd>$!7p0?ee~Y@oj|`ZQMz^cCT3&=0)x=hI3`EIi{{^w~wXTK(9@Ui`KA ze|iW!A2G1J9O>@%_w@xwMjqa~7XtS0H)UnT6&0Bs4r|oY=U+N$ml>P{>2m-8002ov JPDHLkV1k~F^_Bnt literal 0 HcmV?d00001 diff --git a/test/reference/clip-fill.rgb24.ref.png b/test/reference/clip-fill.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da091b99c70792974354867400eb2ffcaa829eda GIT binary patch literal 1031 zcmV+i1o-=jP)F3X`q zyLar+tqoQ_7WmPliJF?fMn>j0jm*kQtgrw4;KAMR1CQ>ZyO`brUhM)%nIXRqo1cvF z&B4pd!tEZob!%8t4G{{T@yWjc)2RfkL=1A|%$cm~*T0C1Qvm&@=~r&ZCazT}f5M4h z(MMy4PM?16@r(fMdd0E(eEZwFps1eiV(uSf)_CK_u&Q$N=9hpjcA0mWs-w-pk3SIA zuhV_LphnFcqrpvSXKZTvC}kZqxaAXTY#eTDo7@IiTENOL->-Jxyiw1c8vsZSbLA>& zQwSwzwBmMh=hXi2)c)}8uN$=7iwv*@2}cp@By}+bX-Wl<^GBfBZN& zG&B!z{2rzdLaAD49IR|Pwa=ECl$4s3bZVdN@2b|yg+_#ed6J_KfWg6t&ll9dT_x*Q zSK5`BChS7CxxT$w#;2eA1`oRzDuQh5Rb1*Ld&h9vXEIjWyo8QaPVj1rWbPUca2Efv3{80S=ioCm37=Fi*;E z`B&dary+7)>n1h)wyg!1 zbZL&$X#t2B=q?5ZGh3^hJsT6PYW586X$SDzm`{`wHE`w__V%sr_|tzh=fD9=c6K7b zz2k&TD55E$I@j~vou~fkxw+}NxjRq&IZYLwglZJQq?rdtf!th!(`i|~B%*q*U8c7H zAZCj(*1l3Hb|HMepv%>xt5vO!a`_tNPtd7b-8$fO zS}tD90T|1~-9Tq)>}ej=(@}=IK^}OQF6BBLX5Mox2CQ1OT7nexe*A0k|MVg7VPIf! zQT2L*9UY;bp4k^KBEa6ghN2>4S((Y{w8VV+{0HpBp2E`qK}P@p002ovPDHLkV1g~& B|GNMH literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-aligned-rectangles.argb32.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cba75078a1e5dd79482e18783a75c89b8ada0d94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81FzS1{ zIEGZrd3)<1=Me)QhJzMM{!c4)jWKIWd6qAbbn$d{8sCoFJF6M)c}A$TxH=I@Jo@$e zYm|BK#|5$Vf9$tui+8td@ZcC!#F1Gu?;3w_(i7uMoG3sv(J60b%yl^L(#!?Gz+~`r L^>bP0l+XkKGWUuR literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-aligned-rectangles.egl.argb32.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cba75078a1e5dd79482e18783a75c89b8ada0d94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81FzS1{ zIEGZrd3)<1=Me)QhJzMM{!c4)jWKIWd6qAbbn$d{8sCoFJF6M)c}A$TxH=I@Jo@$e zYm|BK#|5$Vf9$tui+8td@ZcC!#F1Gu?;3w_(i7uMoG3sv(J60b%yl^L(#!?Gz+~`r L^>bP0l+XkKGWUuR literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cba75078a1e5dd79482e18783a75c89b8ada0d94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81FzS1{ zIEGZrd3)<1=Me)QhJzMM{!c4)jWKIWd6qAbbn$d{8sCoFJF6M)c}A$TxH=I@Jo@$e zYm|BK#|5$Vf9$tui+8td@ZcC!#F1Gu?;3w_(i7uMoG3sv(J60b%yl^L(#!?Gz+~`r L^>bP0l+XkKGWUuR literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cba75078a1e5dd79482e18783a75c89b8ada0d94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81FzS1{ zIEGZrd3)<1=Me)QhJzMM{!c4)jWKIWd6qAbbn$d{8sCoFJF6M)c}A$TxH=I@Jo@$e zYm|BK#|5$Vf9$tui+8td@ZcC!#F1Gu?;3w_(i7uMoG3sv(J60b%yl^L(#!?Gz+~`r L^>bP0l+XkKGWUuR literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-aligned-rectangles.rgb24.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cba75078a1e5dd79482e18783a75c89b8ada0d94 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81FzS1{ zIEGZrd3)<1=Me)QhJzMM{!c4)jWKIWd6qAbbn$d{8sCoFJF6M)c}A$TxH=I@Jo@$e zYm|BK#|5$Vf9$tui+8td@ZcC!#F1Gu?;3w_(i7uMoG3sv(J60b%yl^L(#!?Gz+~`r L^>bP0l+XkKGWUuR literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-circles.argb32.ref.png b/test/reference/clip-group-shapes-circles.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..31219b27a329cbaa0a1d80a3fe8b2e852584fd56 GIT binary patch literal 1525 zcmcJP={wsA5XXP@INB=3qETsxYY|r+RYe_fByM>$8+8*`scUOPSk~D#j#71P#Z{q8 zS|Ti}Vo_EpaaG-CtByw8QODZkAJ}*M%ri4D=JU*V=9%Z2#}0Ou0vE4d1OPw)i7-R4 zb1&Pm=egL?=JTp6JMns3Tbco994l?B$^ihLYNVNoQ&bUS)&!9g58~Tmj!UJL7FYyM zI`oc##|$1QUM8eUI|>QA$(6&Kwmz4s&A#FGimY~VYE2QEESu^qS2Hc-CJ7fNlxa0I zdI^7HWF^N}1-)TK7tj09AG%HNzMZE{V~=Q|f9)E8mYYiVxcnmPy(L7@D)3H%F9Jik zbODwJ_3GA?BV$sN#rm`A{=ecGQhgx@D^lz3h2`$*0zrDlL{Umu%>p9NZ^l5G5RlyU z@|F30)%Eo{oVv0ywkfaU=^f*39fZGsHbNR=DU(nJB`+Au2sbpAy%JzBFin}B=Kgj5 zq&m!`%F%K7uEOSwiSifv&mnW^!;WMRCY{;>*MQk)+w`=?PS#ZK0B2IHO{7$DZ3Pvz z(-otf!hglVE#tLX>c)m!>q>5J_S>BmqhFYLx5vs`p5;z= zUzOYylu~%I#*zi?RaRD9Za$ys`(?{=kum+qER3Z#+8ivd?x8ubLyU3Ob0*vH{%BW9 z{b8O)8T|D)FS1D8b)c_J9g%|s8$3!lmoO|V%LPwc3`1v%1qEMXFhG#JLNy(n@62Ey z=}D(<=+Kzl_jY|fr5pH`B6?pTj*Mdt&7@;d5q#~m=arREnC=`!L1AbZS|s{R)EbEv z6y5myGT4y7Vv<-x4l0JudJg2x5Q7+nHf}&#C~IyZbPp@hezPG4xOP@m-v8k5mTdR}Q!PAM%k6CO2Y;diilDEnZ zsZIf%I$sy>?-(_yb?umH9I;lhh)1V)ADtA2qM@1B;Fb^fM68E6U5k$1sEc-Xr?C-R z4&qG%TR{>4@9R!?kW7j;rwxp_@;uiA*VHPN*uF+5Z08Tj%O8Hv2}DC|Z4q*=Cj_tC zY>ej95;pFxO*m$`g^Ho!=ra_hx@P#(*S+^i@vHRp5~cA2#_C4bpZA~Yi`sFNrs`8d z$GNi47aLi^lP0+ONt}(4MAwfq=~ec^g8eog5*+okvj;<-LSN~!5X(R%)~XC=0#x?? zek>JumM<#~4}xttw38Fbpv^)J|A-NO?t&0v*lL#Utv*};ZL~y;scL`l4f^DdvW}RO zg8kA*igW@ibPh?Mts%c7S%W~v*8Gd2H>RjE%HNjoF-Z4leH{K%ZOnW-6~eE>zFu+N z@9#_NMLgP%c7uI=Z^nU%#EB+)3l&PJGJqYVC02|^Z2_mJQ9Imlc&}eRi~fmh;v;+4 zWq3R_Pn@THAC|g8He+5e)Jp0wNl*VU>-cLdSWBy*xMxorNH$eeHCIf2<>KgJgtOca waGK9Y(T4JJJD+Dr3RKkYhM<-H>k~fq;Jde?-WP}HXa8{kX>Mos+SD`gU!D%)%>V!Z literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-circles.base.argb32.ref.png b/test/reference/clip-group-shapes-circles.base.argb32.ref.png index 1a67714249e0eb9bd6f7d23259309ab878b3bed8..7dd6a83538727af99cf5a88c1f1e5da32fe0de2e 100644 GIT binary patch literal 1511 zcmcIk`!^E|7+y|p6J@4+G`UTfTS;@teKJu=nvD``vV1O6hPfZgWr&(L4 z8z&~TI~`}{ukL~f*1-+|5bRY6y_^C72p8BRtX#qhmL{x_AEM+$S67Df3(2=KPzfoH z=O3en9-H8$;-rbs=dlozUapsKtb#rNxv)5iX+_Di({NrqoEV-$}%&muz!G1 z+BO|zZzQ__5b4J zn)t@#S1stq&?c79CiL_LSz(S$Xm z{N$E~PVXl<3U>C#duTzU+Mxt(SmIaU%B1aO8AWrPd=Ar#kZ~(}Wt`dDgY~X83YGHr z-&jv0F6YB(-y^4dQOo?e;M<_?`(B=wp1~(I_3OY=K5TUL*|P+mMpqZ^>A{1{zH5pN zwYNDhSC`!D>d8=HPpq{c&)K**%b*gis)`TjnxW1}Me_q5JxZXBhcUL+gsXE2&Q8wS zP>it??K7s}O!Ckrj@c=&!$p)7xPlJR^FZqD1BmUX!Z#GmF!o0l-$R0l;w!7&TR&L} zV5$~u2%DBRHEr7?JR8)A9;*TA4BwMLmP3!^`gDqLBoCMCz#6d=O^M|f8Bgb~U^MCN zD&U(?7n-9;j&4t?uIGp@M{;c_FUzUg#FWdS^vw$`ESACF+4-PAj9%Q}XHETIl}EL+ z$7pI~;`Zs5XxUtMw0;s25uPmk@g^hs-0>V6f1SxzABbBjf1A5j#sdk;jbZDqG(-o3 z3aG0;7g!ZLOB+r3G|_KXjqLAdDQK4%!zLR#R=!@k!r&{9Vg1IFxIqn4G_3*hFWJQ& znIjY-!a}C|%eXCCSPJ{c%!6_y5SXJ5QuKHLG}(!E`|LqXmHG}z(S9X zFyB*T$9G!=PQHCZWI4=~?g^rH`rs9E%Il7`K%+=GI{iK0o1nDGo3>z3nrFJBT5S;=v3 s8O+Y=$WK#{q_)mY(477=`C9jdKb(boKMJ(mO>Tg_?FGauYtOiU0BFwIW&i*H literal 1534 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 literal 1534 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-circles.mask.rgb24.ref.png b/test/reference/clip-group-shapes-circles.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd6a83538727af99cf5a88c1f1e5da32fe0de2e GIT binary patch literal 1511 zcmcIk`!^E|7+y|p6J@4+G`UTfTS;@teKJu=nvD``vV1O6hPfZgWr&(L4 z8z&~TI~`}{ukL~f*1-+|5bRY6y_^C72p8BRtX#qhmL{x_AEM+$S67Df3(2=KPzfoH z=O3en9-H8$;-rbs=dlozUapsKtb#rNxv)5iX+_Di({NrqoEV-$}%&muz!G1 z+BO|zZzQ__5b4J zn)t@#S1stq&?c79CiL_LSz(S$Xm z{N$E~PVXl<3U>C#duTzU+Mxt(SmIaU%B1aO8AWrPd=Ar#kZ~(}Wt`dDgY~X83YGHr z-&jv0F6YB(-y^4dQOo?e;M<_?`(B=wp1~(I_3OY=K5TUL*|P+mMpqZ^>A{1{zH5pN zwYNDhSC`!D>d8=HPpq{c&)K**%b*gis)`TjnxW1}Me_q5JxZXBhcUL+gsXE2&Q8wS zP>it??K7s}O!Ckrj@c=&!$p)7xPlJR^FZqD1BmUX!Z#GmF!o0l-$R0l;w!7&TR&L} zV5$~u2%DBRHEr7?JR8)A9;*TA4BwMLmP3!^`gDqLBoCMCz#6d=O^M|f8Bgb~U^MCN zD&U(?7n-9;j&4t?uIGp@M{;c_FUzUg#FWdS^vw$`ESACF+4-PAj9%Q}XHETIl}EL+ z$7pI~;`Zs5XxUtMw0;s25uPmk@g^hs-0>V6f1SxzABbBjf1A5j#sdk;jbZDqG(-o3 z3aG0;7g!ZLOB+r3G|_KXjqLAdDQK4%!zLR#R=!@k!r&{9Vg1IFxIqn4G_3*hFWJQ& znIjY-!a}C|%eXCCSPJ{c%!6_y5SXJ5QuKHLG}(!E`|LqXmHG}z(S9X zFyB*T$9G!=PQHCZWI4=~?g^rH`rs9E%Il7`K%+=GI{iK0o1nDGo3>z3nrFJBT5S;=v3 s8O+Y=$WK#{q_)mY(477=`C9jdKb(boKMJ(mO>Tg_?FGauYtOiU0BFwIW&i*H literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-circles.rgb24.ref.png b/test/reference/clip-group-shapes-circles.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..31219b27a329cbaa0a1d80a3fe8b2e852584fd56 GIT binary patch literal 1525 zcmcJP={wsA5XXP@INB=3qETsxYY|r+RYe_fByM>$8+8*`scUOPSk~D#j#71P#Z{q8 zS|Ti}Vo_EpaaG-CtByw8QODZkAJ}*M%ri4D=JU*V=9%Z2#}0Ou0vE4d1OPw)i7-R4 zb1&Pm=egL?=JTp6JMns3Tbco994l?B$^ihLYNVNoQ&bUS)&!9g58~Tmj!UJL7FYyM zI`oc##|$1QUM8eUI|>QA$(6&Kwmz4s&A#FGimY~VYE2QEESu^qS2Hc-CJ7fNlxa0I zdI^7HWF^N}1-)TK7tj09AG%HNzMZE{V~=Q|f9)E8mYYiVxcnmPy(L7@D)3H%F9Jik zbODwJ_3GA?BV$sN#rm`A{=ecGQhgx@D^lz3h2`$*0zrDlL{Umu%>p9NZ^l5G5RlyU z@|F30)%Eo{oVv0ywkfaU=^f*39fZGsHbNR=DU(nJB`+Au2sbpAy%JzBFin}B=Kgj5 zq&m!`%F%K7uEOSwiSifv&mnW^!;WMRCY{;>*MQk)+w`=?PS#ZK0B2IHO{7$DZ3Pvz z(-otf!hglVE#tLX>c)m!>q>5J_S>BmqhFYLx5vs`p5;z= zUzOYylu~%I#*zi?RaRD9Za$ys`(?{=kum+qER3Z#+8ivd?x8ubLyU3Ob0*vH{%BW9 z{b8O)8T|D)FS1D8b)c_J9g%|s8$3!lmoO|V%LPwc3`1v%1qEMXFhG#JLNy(n@62Ey z=}D(<=+Kzl_jY|fr5pH`B6?pTj*Mdt&7@;d5q#~m=arREnC=`!L1AbZS|s{R)EbEv z6y5myGT4y7Vv<-x4l0JudJg2x5Q7+nHf}&#C~IyZbPp@hezPG4xOP@m-v8k5mTdR}Q!PAM%k6CO2Y;diilDEnZ zsZIf%I$sy>?-(_yb?umH9I;lhh)1V)ADtA2qM@1B;Fb^fM68E6U5k$1sEc-Xr?C-R z4&qG%TR{>4@9R!?kW7j;rwxp_@;uiA*VHPN*uF+5Z08Tj%O8Hv2}DC|Z4q*=Cj_tC zY>ej95;pFxO*m$`g^Ho!=ra_hx@P#(*S+^i@vHRp5~cA2#_C4bpZA~Yi`sFNrs`8d z$GNi47aLi^lP0+ONt}(4MAwfq=~ec^g8eog5*+okvj;<-LSN~!5X(R%)~XC=0#x?? zek>JumM<#~4}xttw38Fbpv^)J|A-NO?t&0v*lL#Utv*};ZL~y;scL`l4f^DdvW}RO zg8kA*igW@ibPh?Mts%c7S%W~v*8Gd2H>RjE%HNjoF-Z4leH{K%ZOnW-6~eE>zFu+N z@9#_NMLgP%c7uI=Z^nU%#EB+)3l&PJGJqYVC02|^Z2_mJQ9Imlc&}eRi~fmh;v;+4 zWq3R_Pn@THAC|g8He+5e)Jp0wNl*VU>-cLdSWBy*xMxorNH$eeHCIf2<>KgJgtOca waGK9Y(T4JJJD+Dr3RKkYhM<-H>k~fq;Jde?-WP}HXa8{kX>Mos+SD`gU!D%)%>V!Z literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.argb32.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad4118247fcdfda4c437ff9489396eaa7cd0365 GIT binary patch literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81Fot-# zIEGZrd3*IB=V1c@21oTJ22+<^x-;{WC;PWs0_Xpz${ufu%U;WS?%Td9{cnHgIO-W6Gdsrn-YzG+{qU^M7kIDF{=99&ye-=CikyiP1;hpq@k7SS y_L$jo%jTH0p4<0oFRcT5{WDvmJV_4y!89RD>NvxuyYavfXYh3Ob6Mw<&;$Sg?TYpQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png index 877e78bd75b685e6ea233e5e1a8f8ca077a926ab..2ad4118247fcdfda4c437ff9489396eaa7cd0365 100644 GIT binary patch delta 176 zcmZ3_JfC@jnSO|;i(^Q|oVQmGavnAiU~p7lVlZ{tr8_e}d9r`IC2; zIJuBfV{!wdBr=xeOq}>b#>)1X*>lV0n6#eT_i8V#1DgJstx+DLLlUHdX+oCNafVHI Q;~9X!)78&qol`;+0F2g7W&i*H literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81Fs69A zIEGZrd3$wZ?qLG~hd`?n0q@>i(ynCge{$*F7ExozSswS97JaXp)P9(~VpcKVja%36 zF@Lb<>~7iM!9gTZv)<}&RqylS#h!Lgt7Ny|=6f%f6aM;8)U=NkYj!>S{O)`0A*&nf zYFbrVT%95Y5An$4`Jdk}QzhSjFFRaw zIJuBfV{!wdBr=xeOq}>b#>)1X*>lV0n6#eT_i8V#1DgJstx+DLLlUHdX+oCNafVHI Q;~9X!)78&qol`;+0F2g7W&i*H literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81Fs69A zIEGZrd3$wZ?qLG~hd`?n0q@>i(ynCge{$*F7ExozSswS97JaXp)P9(~VpcKVja%36 zF@Lb<>~7iM!9gTZv)<}&RqylS#h!Lgt7Ny|=6f%f6aM;8)U=NkYj!>S{O)`0A*&nf zYFbrVT%95Y5An$4`Jdk}QzhSjFFRaw|gW!U_%O^81Fot-# zIEGZrd3*IB=V1c@21oTJ22+<^x-;{WC;PWs0_Xpz${ufu%U;WS?%Td9{cnHgIO-W6Gdsrn-YzG+{qU^M7kIDF{=99&ye-=CikyiP1;hpq@k7SS y_L$jo%jTH0p4<0oFRcT5{WDvmJV_4y!89RD>NvxuyYavfXYh3Ob6Mw<&;$Sg?TYpQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..877e78bd75b685e6ea233e5e1a8f8ca077a926ab GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq}Y|gW!U_%O^81Fs69A zIEGZrd3$wZ?qLG~hd`?n0q@>i(ynCge{$*F7ExozSswS97JaXp)P9(~VpcKVja%36 zF@Lb<>~7iM!9gTZv)<}&RqylS#h!Lgt7Ny|=6f%f6aM;8)U=NkYj!>S{O)`0A*&nf zYFbrVT%95Y5An$4`Jdk}QzhSjFFRaw|gW!U_%O^81Fs69A zIEGZrd3$wZ?qLG~hd`?n0q@>i(ynCge{$*F7ExozSswS97JaXp)P9(~VpcKVja%36 zF@Lb<>~7iM!9gTZv)<}&RqylS#h!Lgt7Ny|=6f%f6aM;8)U=NkYj!>S{O)`0A*&nf zYFbrVT%95Y5An$4`Jdk}QzhSjFFRaw|gW!U_%O^81Fot-# zIEGZrd3*IB=V1c@21oTJ22+<^x-;{WC;PWs0_Xpz${ufu%U;WS?%Td9{cnHgIO-W6Gdsrn-YzG+{qU^M7kIDF{=99&ye-=CikyiP1;hpq@k7SS y_L$jo%jTH0p4<0oFRcT5{WDvmJV_4y!89RD>NvxuyYavfXYh3Ob6Mw<&;$Sg?TYpQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-image.argb32.ref.png b/test/reference/clip-image.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0f71f73607325e0ff99d9937369573aff6a3769b GIT binary patch literal 2677 zcmV-*3X1iKP)6|7)$i_xGJMXU5|TgD-=PLmS!H1DIkiLqMgZ z5K3r4HSJR)q^fONRq8{kNLAFAzEqJKsa5+>l&Y#qk_OZyB_RP56NpQTi;0Pe$FZTt z1Yl61aiC}7KL_|zN1TxjMdS6{S{pF(1M}oi+vn4gtA#kTCU1aB!n1#u)IAIVGC|P2@v=b0O1|0;~u`Y_j zOo<>)gdOwB&BH7p2t(CG1OmMb{Ncr=;3Wjl&WT9oyb~cponk*flNkddl2lEH!FB9( z+Qe*T;z$il9DHDLBH~376EmqADX9*J`uyUe6V9A8LU7JyAp{>n?%SPqQBoo?5dNl-19y)p&o)-;=(`QUu+gZJKh4>CYihj%Eb70DL6-KFKC;qvyHdVG8|WLEjq%vFdC$_h=x z;Ih-DkX1LcZoT8<=Ow5dwh=+GvluH-efL0Zf zCJ%_lD%Fdfc3sChlzA0mR_BdImU&B;l~Y|g@c=})tZOk>B@Kp@ESZfo@>s{Btd%8$ zG=}SV`?kruK6V@T+rmoWuT%jO2?;xK!ddXmMmD~7tZzmC?_MCZ@3;O4EOn}xSrnv@ z+-uSzYD}q_<<3Ez3tmiC93kyc(oCGHJuG{UNpPhg0^<&TMfANur?z`p2>sR&V*6CaF+#yj2E*YTYnS&E{ zEJCqTVh&Dx@+k-$9CYQ6LBQcCHs9{=*`cTY2AL^%No*!v4p_ujSlnk^dvoIQ8`;481a zdSu2EgH7v1#83Y7bGvt3=higyv6hGLUK!lVvtCuL@%h$m6Ww0#{kf%UHf))lJAdZv zyQYm!UFD6Spie)xZ+hW;dx$~pfed()Dt04=LYCSjq!4Hm}aNeybz>GP($8w?yl)Q zgVfb=>&;UqPrY;SmBYl;%6+>?M~AP!2HaA0S^M-52*2$3*Gj~t#?JNA?=*$yOeT$hs^&7u>)6`A?AG_`5 zL$4jFs#t+Tpt<%^ z{rbM?%FT)6$xRb|g|B?=I~UuXqE~+H8!LvJuf9rQY78PrTy}eoO|o3fhC-cEav>+S zqAX=uC4@ogo~b*=*Jr0spPHNRjW+Y6Ge^&yUdVhl@ZL^NIHqW;4`G5gSEXL5+8iHk znt_?mbi#R`jVQC?D+q`tKx8W)e z;IZG__oXMlZs12BexPr1ZuY!dUB%=BtH!+HozE)*RWek^n)jp-r;SF)O6%o58_EDy zfB_Df#8^#Sz3vnD-Dx0yDK1mHe(v*s_Sr#`mtQ%YJHKvn+JFGeg6=t{Mv&L?U|ao zO#jepM_)Yj!-mL5#@9^Wa@{wde_?9(4!QOAz3dQEIXdFawIMZu@4NSbD}bN=)-!Lt z{r18K7jC=#wxZ~s_{p)SzHy*vXJwE6KFPv}N;# z`Nj8sbo|Uar(Rk+Hrg1G*$>`ZSiHc2DpexxrTF@>H~;YW9upDQ8mWEGkW3RY@2rWs zuC5GrOlnx{EddxGUpIaG9mi+hx_dcdLs>8XHLzt6n}jGPbllSCvCGw&%vFsa@9}|M7_vC;#*GsdE?R&n9vc6C19b joZPWv=hW`YpFaNuS%^hNJaKlO00000NkvXXu0mjfi?urQ literal 0 HcmV?d00001 diff --git a/test/reference/clip-image.base.argb32.ref.png b/test/reference/clip-image.base.argb32.ref.png index 062c721f518e7e7c503f9f70cbb666eb295bd4f3..0f71f73607325e0ff99d9937369573aff6a3769b 100644 GIT binary patch delta 2591 zcmV+)3gGqr6!jF4Hh(HfL_t(oh2@r8jGfhW$Ny`sz4!N>GiS!*3xh9%jYAvR*aMhi zE<-@2q!3DIK{f4DBc!TrT2<;psz_DTm%dby8mU$LP?V~wN|FZDBqbpM6BCF_i;Ibg ziN~>_#sp(L9uLfT=3KtZ-fQ*Yj3?)~t^1gV?w9Y=UYFnAYk#k`*CsQ=&tmY;gbKj* zKL@}6DlrQ)m^=wFfk}vnnTd(O3<47aFo1UM`uSBC-A=F5=^BVG&6vRe!^#8=@LH|L z$VmQEa7xMssF6@2GbIsLCRSx;CNcw&LK!qb001nvyL0CkR)8>r83@K|P#80>MwN&F z41=Q?t1{TgSSXno24+^6i6tU7VhEEO8SxO=R8=DkAefmcfdM4I7{Y2sD^y$g9SDgyBtEs0=iYD7d#LIg6^w0d7%I^&|& zkc1tx5)rcqu`nB{!B%{Msb5PxbnT=Vi=t)*V9Y|q%>Ct}&qsp55wj&V(;;xDC|zXd zl$eFdu{dE65hz(=zO)k%Kn5KI*Rd{&!c2)EO-_Uz^UBS`EFcI&)kFjWy$t-}#iigS z1kcWiNanl~Awr#EKR=Th10s@CO^3mC>~z}1Y-Zv}4NM$-U~wYiMG_M;sTwJ%4u|^u z;-Zu80vmsZ`bt?>oo?5dNl-19y)p&o)-;=(`QUu+gZJKh4>CYihj%Eb70DL6-KFKC;qvyHdVG8|WLEjq%vFdC z$_h=x;Ih-DkX1028Ui<)S+`dUGh)v;RN$-6#w8~5A7O5v|m0TT%cJ8{BU@XbaxzILo{MgQ+!Ahhqd{s=5} zs+n07q>$We(jsb1shQ=@L7WR-Op_(c*|%e9gamx`@y`$XiZQ-=Wah|^eth=5b9EgP zQLB+}oY-*ljXU@5+2!0&W;oS4_l}L&`AUBiffyDI&EQmt#qun4syb;TGEc6DWUzk! z9dvZ~^_i#sW&imL3r6Og1Sa;b+wGp8oqz51W6$h=@sWq_yXD5~SM}xA>09#LAyEh} z8KC5ugA;ZvLa|a}4o-@yEPFM;PJ~pw3qjUB{K-23sOl3>KJ(?T@2|QA8yx!(Jd=Mq z79j=32^vWkfjv3E2A!Q}^Dr_nIvm z0h~Q|{@^RGy?SKE6N63bM8r@2^K-j*T<6v_^RbqP?_L?)%ClZot?~KRZ4-apUhn<6 zrE4~9nVma-=IpzsjZR(Vji8`UKelgr?+vR~+qX?_-!{4Pqt|`ut52&T3zBL*H~+y8 zj-GJdv4q^H7{vVkXMQ)w+N~2?K5_qpr_P+7dE?|?{>7iJNsxD!^G6eeY;3Uj-7B4tleujoB5!s=;&g%5X>Ju z_|o(}w{N|6)1Y+o#`WvB;2;0#yK6=^H$!XlhHJ*w$&nK?cTex_EBxT-%o9(2i+p&<%^{rbM?%FT)6$xRb|g|B?=I~UuXqE~+H8!LvJuf9rQY78PrTy}eo zO|o3fhC-cEav>+SqAX=uC4@ogo~b*=*Jr0spPHNRjW+Y6Ge^&yUdVhl@ZL^NIHqW; z4`G5gSEXL5+8iHk-ALvF7iGnDIVhdFc@mZ;x2_F7D~mWk ze_?4McH6vkvA5wW58$!i-1ns?zi!}1AAX>3a&Gp#T3yBD1FOco;hoPb0#!0p$C~$~ z5T}hs$V%(wJ{!saR)7HxnZ#I4T)plS_uXkAeHMP6Z7^{kyw0`UC z@$Y^A5UKpygAeVQnz~H?&}&CuJoLkc$VbN4Oy6?dH=loDYWEJg_4d8&5K}oi;?1=o zHG%KD_kk;bpZH~;YW z9upDQ8mWEGkW3RY@2rWsuC5GrOlnx{EddxGUpIaG9mi+hx_dcb*Ki?e?62d&2kx({_{5W6xn|46?i+T9qcx+g`S}Y))j59h&4mva znMc`~h~0hXEg!$RSMHF!Y(}=Q+A!qMXW20{`E;5erJp9RPw{QFAv(N88@G>dIs?I{5Vh?+WO`oe_)26HMzyB9+n%ec#uw_~3 zc2mfSDyw1yah_{!<{HXYQw$4BsX6M(xZD~WNffJIJ~}eCv^-apLp8SN#;K`Y*B}4! zi4!OP^Yp267v|3lyMMXSucAfwL002ovPDHLkV1jZ| BBYpq? delta 2637 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 BBYpq? delta 2637 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-image.mask.argb32.ref.png b/test/reference/clip-image.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..86c28afd72ca8796c4376d449f401ea756e87d9f GIT binary patch literal 2678 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-intersect.argb32.ref.png b/test/reference/clip-intersect.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6627b3a502bf16e344154f981b2bc9712673dfd1 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v}}>PZ!4! zi{7PIHgX+M;Bmcp`%-<`mhAsGbY;1gE~#`pIa{PCz+~4Li`*w@MP+;qrfTfFVVHd0muQ6Hh+CdL_t(IjiuDF3cw%?MbX>Re|EHM|JW@Z3Z~9Fj0G z7($)y5|D|mjzBaumlNYx=03oaO#F;P={$=v^sLLjXG=~VE58Thv3I8U@u%&cl_)*C z`eD^lRhy*Ro{3)?jL>h4Rs002ovPDHLkV1oEZ BMRouH diff --git a/test/reference/clip-intersect.base.rgb24.ref.png b/test/reference/clip-intersect.base.rgb24.ref.png index 2e97b541408b1077fc9a949c7ebc6b0ff85fe1da..6627b3a502bf16e344154f981b2bc9712673dfd1 100644 GIT binary patch delta 154 zcmV;L0A>Hd0muQ6Hh+CdL_t(IjiuDF3cw%?MbX>Re|EHM|JW@Z3Z~9Fj0G z7($)y5|D|mjzBaumlNYx=03oaO#F;P={$=v^sLLjXG=~VE58Thv3I8U@u%&cl_)*C z`eD^lRhy*Ro{3)?jL>h4Rs002ovPDHLkV1oEZ BMRouH diff --git a/test/reference/clip-intersect.egl.argb32.ref.png b/test/reference/clip-intersect.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6627b3a502bf16e344154f981b2bc9712673dfd1 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v}}>PZ!4! zi{7PIHgX+M;Bmcp`%-<`mhAsGbY;1gE~#`pIa{PCz+~4Li`*w@MP+;qrfTfFVVPZ!4! zi{7PIHgX+M;Bmcp`%-<`mhAsGbY;1gE~#`pIa{PCz+~4Li`*w@MP+;qrfTfFVVPZ!4! zi{7PIHgX+M;Bmcp`%-<`mhAsGbY;1gE~#`pIa{PCz+~4Li`*w@MP+;qrfTfFVVPZ!4! zi{7PIHgX+M;Bmcp`%-<`mhAsGbY;1gE~#`pIa{PCz+~4Li`*w@MP+;qrfTfFVVG;q2}i%uOpEuo!VBbF~Xx;c*eDK6vfWPK}7!3nsXwD@ZmhXsu^# zz4K_xuJfUPzTL94@!uU(Q~k7+SL?>CvuXbi`2XJih2fvyAtk2>7mjX@L_tLzr54wg z4IKhvf^-w)Udmo`yuiZ7)>gLv_~er*R&(uaY^KD0IUE)qUjO&k)t4o^?&j^kfB)7k zt-UW!M}7XWzB+ns*h|i>vyQ(%v3dd)SDTouxtMX~*PZw0dDxmSW|Y*|+y8!j=l*^E z_QQAY-o5W1RVW%B9{zOSQm>`&KP3PD{rl=>e?LF3{56L^ek}ZIDx^2mhSM6)}t!R?^<^AI5 z(WBe9Z$Ixhf8M-l)26+;6MW(EcwyfG}?zNrI>$5TRuD&Ci@SO3ZHbET-zKx7C+{Ct#GE$ryK*Y;}-usC4wboFyt=akR{ E0Dt1oF8}}l literal 0 HcmV?d00001 diff --git a/test/reference/clip-mixed-antialias.egl.argb32.ref.png b/test/reference/clip-mixed-antialias.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8a6b004ce62d3da6f23a2cf79fa75664c764f0 GIT binary patch literal 1085 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)K$^Y)RhkE)4%caKYZ?lNlJ8KY6-1 zhE&XXd)L-0JDQ>G;p}b~M*-0}4r+yqTAewv*pxV~HLYze4%}eoc+o9gL9#)h`v*JM z&ZC*7^H=|PyS2DtUfI$g-%fE$hiovN>-WEL{jDO~~xVCKQ5D*hQq~sLg!qLr< zD5$8TL^r`_Ui?4$4ki>76&2Oi+Di4t#mCFb$$9DjO4QcY=H}*}>$m*&+iz8S&z?Pd zse9iV)9(MfwqMPfIxk>#cX2)}#n-;}{NH~*`|r#1wLkt?@$0%||MBL7 z3F+z2zfTT}Ir{Wz>dyR?K`*WU+_-ly?(3V!j~`!>eqB&f5>m_m`}gmq=5=cpCjR~P zb@d~&-+${~Hh#T%>(;6rUA?`%mzeFZT?l`8_ipUbm+#)?<$8CmuDkK7TWiI_{VjRh zZ|CRd&!1~&XQ!v9cWvkL1t(KBZQ1hW=F2~S{=9yjJ-7Pb^0v0nzu&pf-kD?Ez5U{a zaK+7j0}$pEMy`}p*zUXQENZK&R^@sYPCmKhQAu6hzHO@Umo99WHhsFbA21ZMql508 zJ?ne)<*Qd&x!(JhEKDr5n%i}G@#4j|riq0A-EdVrG{E`rts6I1Sl9xAjm?@|A4hg} z_Vo00QTd4Y`1QGGuKP%58c6&ptOUoRzP|p_)D*kuF&Ye5A zZr$p){PNqf>b-F^ck B!~_5U literal 0 HcmV?d00001 diff --git a/test/reference/clip-mixed-antialias.mask.argb32.ref.png b/test/reference/clip-mixed-antialias.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..243c4dde64476f70b0701b5676b477d6180a300c GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)K$^Y)RhkE)4%caKYZ?lNlJ8KYF@2 zhE&XXd)L-0JDQ>G;q2}i%uOpEuo!VBbF~Xx;c*eDK6vfWPK}7!3nsXwD@ZmhXsu^# zz4K_xuJfUPzTL94@!uU(Q~k7+SL?>CvuXbi`2XJih2fvyAtk2>7mjX@L_tLzr54wg z4IKhvf^-w)Udmo`yuiZ7)>gLv_~er*R&(uaY^KD0IUE)qUjO&k)t4o^?&j^kfB)7k zt-UW!M}7XWzB+ns*h|i>vyQ(%v3dd)SDTouxtMX~*PZw0dDxmSW|Y*|+y8!j=l*^E z_QQAY-o5W1RVW%B9{zOSQm>`&KP3PD{rl=>e?LF3{56L^ek}ZIDx^2mhSM6)}t!R?^<^AI5 z(WBe9Z$Ixhf8M-l)26+;6MW(EcwyfG}?zNrI>$5TRuD&Ci@SO3ZHbET-zKx7C+{Ct#GE$ryK*Y;}-usC4wboFyt=akR{ E0Dt1oF8}}l literal 0 HcmV?d00001 diff --git a/test/reference/clip-mixed-antialias.mask.rgb24.ref.png b/test/reference/clip-mixed-antialias.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..243c4dde64476f70b0701b5676b477d6180a300c GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)K$^Y)RhkE)4%caKYZ?lNlJ8KYF@2 zhE&XXd)L-0JDQ>G;q2}i%uOpEuo!VBbF~Xx;c*eDK6vfWPK}7!3nsXwD@ZmhXsu^# zz4K_xuJfUPzTL94@!uU(Q~k7+SL?>CvuXbi`2XJih2fvyAtk2>7mjX@L_tLzr54wg z4IKhvf^-w)Udmo`yuiZ7)>gLv_~er*R&(uaY^KD0IUE)qUjO&k)t4o^?&j^kfB)7k zt-UW!M}7XWzB+ns*h|i>vyQ(%v3dd)SDTouxtMX~*PZw0dDxmSW|Y*|+y8!j=l*^E z_QQAY-o5W1RVW%B9{zOSQm>`&KP3PD{rl=>e?LF3{56L^ek}ZIDx^2mhSM6)}t!R?^<^AI5 z(WBe9Z$Ixhf8M-l)26+;6MW(EcwyfG}?zNrI>$5TRuD&Ci@SO3ZHbET-zKx7C+{Ct#GE$ryK*Y;}-usC4wboFyt=akR{ E0Dt1oF8}}l literal 0 HcmV?d00001 diff --git a/test/reference/clip-mixed-antialias.rgb24.ref.png b/test/reference/clip-mixed-antialias.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..243c4dde64476f70b0701b5676b477d6180a300c GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)K$^Y)RhkE)4%caKYZ?lNlJ8KYF@2 zhE&XXd)L-0JDQ>G;q2}i%uOpEuo!VBbF~Xx;c*eDK6vfWPK}7!3nsXwD@ZmhXsu^# zz4K_xuJfUPzTL94@!uU(Q~k7+SL?>CvuXbi`2XJih2fvyAtk2>7mjX@L_tLzr54wg z4IKhvf^-w)Udmo`yuiZ7)>gLv_~er*R&(uaY^KD0IUE)qUjO&k)t4o^?&j^kfB)7k zt-UW!M}7XWzB+ns*h|i>vyQ(%v3dd)SDTouxtMX~*PZw0dDxmSW|Y*|+y8!j=l*^E z_QQAY-o5W1RVW%B9{zOSQm>`&KP3PD{rl=>e?LF3{56L^ek}ZIDx^2mhSM6)}t!R?^<^AI5 z(WBe9Z$Ixhf8M-l)26+;6MW(EcwyfG}?zNrI>$5TRuD&Ci@SO3ZHbET-zKx7C+{Ct#GE$ryK*Y;}-usC4wboFyt=akR{ E0Dt1oF8}}l literal 0 HcmV?d00001 diff --git a/test/reference/clip-nesting.argb32.ref.png b/test/reference/clip-nesting.argb32.ref.png index 927a7d4313e5230fca2793451efaa2c806948204..ce0cc0d0892087cf20f99679e12740a74433b16b 100644 GIT binary patch delta 1004 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 N002ovPDHLkV1jww>1O}{ diff --git a/test/reference/clip-nesting.base.rgb24.ref.png b/test/reference/clip-nesting.base.rgb24.ref.png index d087ab6c14f3c2f1d1e0271fed160ae81826ad5f..52478437194bd62b1074d0976f5718dca72ed4bb 100644 GIT binary patch delta 896 zcmV-`1AqLe2dM{;Hh*48L_t(|ob8-HZrd;vhkxnPL3@sn!2+`O5FLUpF3^bw=yALR z2%tD&7$zS+$zKxr51=TDq9}@@C`vh8 z`R}&Y(wDya2K*pDoJ`!zJ|S6Ub-*W}C9gmupR5n$bpxn?pMOA=a|>3o$^x(h4w<*$ zBeyI71~B<|;UH_X+>fmBDzsUSmBfoj7S<6jHd$Cfym*@B;D}f0&2p3-FJ@UNI$r#; zP;R_LWC1wb+cT<`QJtbn%Lt*@t|y9L2{g?kLSWvwGs=6*qHHvf|?vH?!ErM}jOH9j~~VePnIc zciO{BjaT$hY6xdm4>?}ZGmFWpfR-kU9Ixn^#bg1fFMq}>1X{dO%q%7gfT78&#-Z02uQ?TDiY9+mZ#KX`bh=>~3aTvIy~dBkMxE z7-kleh57M%e*t3{FP@pjWMO8!&aRHVix=C>VzMwNUYD*@n{CMokJlwxukqrXSxgp! z<2CY%(J5ZcGmFVWSiHtwUhCtWXFLFmXI9L}1wIWOWARd17Z{6|l&mE-%MlkZcJdviaL(hU zPeUJrc&RKOgLrAPe3TKdg`8PEE?)XH45E*h$_k>7m&yv|_Vx?;9rlqkXZ^;IiNzx@ zV|gzc0*E3}`J`lna9vH-N?j|b5xS{9h& zRc^B!!+2@4Jn+S91+u^vuXV@*PrO#pEXOHc+N=<=$7@Zp!2g$*q9}@@D2k#e%jG|4 WwQ+b<2eXj?0000av delta 895 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 LNkvXXu0mjfsYkpX literal 0 HcmV?d00001 diff --git a/test/reference/clip-nesting.rgb24.ref.png b/test/reference/clip-nesting.rgb24.ref.png index 432318d46bf1c0fcdd0449a100d6c80058675183..52478437194bd62b1074d0976f5718dca72ed4bb 100644 GIT binary patch delta 896 zcmV-`1AqLr2dM{;Hh*48L_t(|ob8-HZrd;vhkxnPL3@sn!2+`O5FLUpF3^bw=yALR z2%tD&7$zS+$zKxr51=TDq9}@@C`vh8 z`R}&Y(wDya2K*pDoJ`!zJ|S6Ub-*W}C9gmupR5n$bpxn?pMOA=a|>3o$^x(h4w<*$ zBeyI71~B<|;UH_X+>fmBDzsUSmBfoj7S<6jHd$Cfym*@B;D}f0&2p3-FJ@UNI$r#; zP;R_LWC1wb+cT<`QJtbn%Lt*@t|y9L2{g?kLSWvwGs=6*qHHvf|?vH?!ErM}jOH9j~~VePnIc zciO{BjaT$hY6xdm4>?}ZGmFWpfR-kU9Ixn^#bg1fFMq}>1X{dO%q%7gfT78&#-Z02uQ?TDiY9+mZ#KX`bh=>~3aTvIy~dBkMxE z7-kleh57M%e*t3{FP@pjWMO8!&aRHVix=C>VzMwNUYD*@n{CMokJlwxukqrXSxgp! z<2CY%(J5ZcGmFVWSiHtwUhCtWXFLFmXI9L}1wIWOWARd17Z{6|l&mE-%MlkZcJdviaL(hU zPeUJrc&RKOgLrAPe3TKdg`8PEE?)XH45E*h$_k>7m&yv|_Vx?;9rlqkXZ^;IiNzx@ zV|gzc0*E3}`J`lna9vH-N?j|b5xS{9h& zRc^B!!+2@4Jn+S91+u^vuXV@*PrO#pEXOHc+N=<=$7@Zp!2g$*q9}@@D2k#e%jG|4 WwQ+b<2eXj?00006<0+jeK`9VKcjgJR`5`!B=1rbA4{2%F2LGKz|-{3s$1a0#E?!$XoCc zTNZ#4DC6(KLDaz8ACJH*w%8{cc*{)U#Ul&zh!>kI%phJo&9ZRBEA?hs(vBCiEF>K- zepyI2ULvvpe9ZGVLR-_3l9g4}mpp$Vv^x-A@;-J@Uv09?0*vb?*nnZ-69 zmUTFo#p2yWmVYLhS#0BBS;m;{_SdxWiYH5~S(f?4i{Z#>m@r;pGmC9JLe_-w3Y*yl z^NIB7%I)9mcE6X)mv#M}yyL%>XL2I#BKdfQ9nvG7hL-Snh0UCltnhe+%`CR@o*>Hv zzw!#3*+tZ5eW2Yf)p!LzN*ltF)j*C{@XTVeGN7W#B7es#cxEwK0E*6d`9O=;6f=v- z0#MRq8Dln^hij9C^LY6)HeS=sEGDZRFMr0yYr2`mWT6$WQH+Y$q%(`j!fCw5;vcW6 zXBLwM8!rN$@rp3Bn5@Tm5%7#xgqg);p@|o5O`mwhnORI0fReoIV7#KuEG7$8^&?>A z^15VYS$|$tKdCDp9N(~yH?x>507db7zyCv8*#O(V?|DU?Sxgpyvb-a$+}t+TB@4i2 z^Dus8dn>O?79n0IvO40$FteB}jE~pTH!#}q;+a`Y7DmSF?A@^^@nV}Bi7YZx0ZmE}bfFO}s*6EBtJ%kAxZ z@_#q%180tUq0_+P0hE0o8Uh`cQ2CS0g-&C*2k!ZIP4vhDkoEmfK|Qk0IRY!7=G-z} zSpatA%Y$enEep)?O1D{-cD%G%4*23V16g2;*F0o_CtfpXmgO;C+AJTU$7@cq!2ili jQ4~c{6h%>#%jGW{&0^G%;DZwY0000b-YX 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 diff --git a/test/reference/clip-operator.base.argb32.ref.png b/test/reference/clip-operator.base.argb32.ref.png index 63a7baa2d17ae43505b2facdde524095e6662c82..39a92b01f1625ec821096fa9d4ec576a5d381548 100644 GIT binary patch literal 8182 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 diff --git a/test/reference/clip-operator.base.rgb24.ref.png b/test/reference/clip-operator.base.rgb24.ref.png index d3d84f26e42ee46c67a3bef74458c484a85c33d9..eed34690e41429d7d6af7f123eb5109b85f4dac1 100644 GIT binary patch delta 3222 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 C_w&dA literal 0 HcmV?d00001 diff --git a/test/reference/clip-operator.mask.rgb24.ref.png b/test/reference/clip-operator.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd1ec37685ba5985ed2349b35afc830af69829b GIT binary patch literal 3519 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-operator.rgb24.ref.png b/test/reference/clip-operator.rgb24.ref.png index 8ef57e12247fe50d5e9dce130193c54113c5686c..63a075802d55b5e52fe94da5193d1f79fd5118e0 100644 GIT binary patch delta 3271 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 FV1k-ZXIB6K delta 3176 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 literal 8153 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 Vp7m7Toz>%LJk?b#e_|8z{{Ut2;Yk1h diff --git a/test/reference/clip-operator.traps.rgb24.ref.png b/test/reference/clip-operator.traps.rgb24.ref.png index 893350532277a86a6ac7f0234a92e1c0261a449f..f35c9d5d9c47e13d4195221871a517412e7464e9 100644 GIT binary patch delta 3201 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 delta 3188 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 literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.base.argb32.ref.png b/test/reference/clip-polygons.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.base.rgb24.ref.png b/test/reference/clip-polygons.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.egl.argb32.ref.png b/test/reference/clip-polygons.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1b76cd071a4274d5d3ad629444b6c5c55d33f998 GIT binary patch literal 1352 zcmW-he>9V89KeUywr1kGqMWShwzM|)j1r;j7Pm$XyP0=#?Y%KSHn~zMwHP~zZkL1+ zk?Zd#ZZ)hwDE)KDr9z-w*|bTU~RWjxlz=M z97MP_LFQ4c|pt2-& zGn=xejZ@kcc-`0Pgv%%mzt^x+f`4?GcR``4B#+$#H;$C@nU(kTR zUM#rdPn5sWLFc6<&BB))ZE`vtDhgNQq9{C5?Y5@DF_DU0AYRkP?$j~jx%U)iS-uwoF%1pOad7Mi1gAtZH2TlPF?w{x`zGjNoMO?U7~||`rwn=y7r5MpecC_i`>1mfQD_QNk9?|YAl{}%kwAAs|?YRjH^T2U#PW_61yVJ@m zXIgfFr=P0B3FZ6W@VMP>Z(P~Kh~twZjXOo2!i97KHv^3y`M`^tGI@v&E{lfj{f9AS z?ID{oW8Ri6x){P9Qk_^5jtvn<)^LrQ(j z^X9ZJ3-b!8H5;d+E_Db~jB^-3``T7&-^7W|PoLK*@mT3?H;^3KB6K$8E0&yW!I*JnT&3m{>gK6NWB7)E@&$VaU zxD!)){(wjknu{m8TLcB$i8Mok{7O+=yYJXD-8*aSaT`QY@p~|C8>z!Y}vZIzwr|lGz zB;|oJ(P+xS!dJl@uqzZHr-KkW~-U<3UP@F^NE4;bPJP^2qAG)spuK2-Hgi zQ>6&Ru7IAsL7;d|Ht98Ddal4rk`iI)g*VvT1T!KKEAivQiRuGD@T3Qw=p uN$Coezds94B+46-4XJuPS-m*b;|+%^a~5)oE**itMie8E8PK!`%Kjga`*p4W literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.mask.argb32.ref.png b/test/reference/clip-polygons.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.mask.rgb24.ref.png b/test/reference/clip-polygons.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.rgb24.ref.png b/test/reference/clip-polygons.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1b76cd071a4274d5d3ad629444b6c5c55d33f998 GIT binary patch literal 1352 zcmW-he>9V89KeUywr1kGqMWShwzM|)j1r;j7Pm$XyP0=#?Y%KSHn~zMwHP~zZkL1+ zk?Zd#ZZ)hwDE)KDr9z-w*|bTU~RWjxlz=M z97MP_LFQ4c|pt2-& zGn=xejZ@kcc-`0Pgv%%mzt^x+f`4?GcR``4B#+$#H;$C@nU(kTR zUM#rdPn5sWLFc6<&BB))ZE`vtDhgNQq9{C5?Y5@DF_DU0AYRkP?$j~jx%U)iS-uwoF%1pOad7Mi1gAtZH2TlPF?w{x`zGjNoMO?U7~||`rwn=y7r5MpecC_i`>1mfQD_QNk9?|YAl{}%kwAAs|?YRjH^T2U#PW_61yVJ@m zXIgfFr=P0B3FZ6W@VMP>Z(P~Kh~twZjXOo2!i97KHv^3y`M`^tGI@v&E{lfj{f9AS z?ID{oW8Ri6x){P9Qk_^5jtvn<)^LrQ(j z^X9ZJ3-b!8H5;d+E_Db~jB^-3``T7&-^7W|PoLK*@mT3?H;^3KB6K$8E0&yW!I*JnT&3m{>gK6NWB7)E@&$VaU zxD!)){(wjknu{m8TLcB$i8Mok{7O+=yYJXD-8*aSaT`QY@p~|C8>z!Y}vZIzwr|lGz zB;|oJ(P+xS!dJl@uqzZHr-KkW~-U<3UP@F^NE4;bPJP^2qAG)spuK2-Hgi zQ>6&Ru7IAsL7;d|Ht98Ddal4rk`iI)g*VvT1T!KKEAivQiRuGD@T3Qw=p uN$Coezds94B+46-4XJuPS-m*b;|+%^a~5)oE**itMie8E8PK!`%Kjga`*p4W literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.traps.argb32.ref.png b/test/reference/clip-polygons.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-polygons.traps.rgb24.ref.png b/test/reference/clip-polygons.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e139ef3f5546738e2801aead6d00a9a9a85cbe0b GIT binary patch literal 1336 zcmW-h4N%i&7{^0Ffl`o(ttjHhojnIB!Zxa%I#C3%K`SDJHu4cb8Ep~NsVEj#i@?-b znOuu2iU|0Dq)@H#6NECZC$f4B+iDpKlY==K9D<_fb-MTUa+f^G^Lzg9|NSSIV{xJw zZ{}Pkf*{_)4N>t3;!+0c?H&wpUQ+*hA-GJ>h>eLtKEb29<#IWKxQz;<)+QV{JNitR zI~eA>K7D_8>G6DfCv|pX^6>gjQOo;)+?dg|uB92T3s1D6N0?=$530qj!v}rLio=IX ze4qFC%R}9iA$jy{!>r6z=R}tu2bsl(LXezmY|4KyjP+p^%hkfz)fH#Rm2<~mGBw5lx*m+Lr4>8dbkBb5ttjA_F3t{e5&s=v@p-` z&*Xr!sfy&)HlE#>-Xi=juSa1L)JoEMby#C92X ztdg%D6sYMWmst}lI}>y4SV{VsOaCZVKS|wCFeo^zP$WkrrFg}4D4vFIqVrzRQk}ZL zKB%H=Xli9>4h7Q3DbJNjaQ7d^8i4$1#&cq9~j3ucAO zr_3^$$CQlAil4^uPt3c4w_hn3u=kP{QRR+1_#T7A%B;%qu>adAnUZtwRYvOve!odt z)H)lc-yUPU!gf05QI2S1?^R8Xj6xG9oc>Oe^U{X6y{5|Qg8W+)wv%)zPSr2r^ zm+UsEPJ+eTF1|4_X~e1bWpAidF21@DqefO3-Yo>@Jvlx##~97hlEAqzr-Mz zZv6@q^AK21S(WI8KYb3R8nX=TS|EjJir98OQ1alY*r~Aa^)oR~L37CxPyF^101s#{ qkj3YLHo}R2#NEg>`$txT`XlnLfYOY3|KtF_LPQuXifW7`RsRDMdSxyE literal 0 HcmV?d00001 diff --git a/test/reference/clip-push-group.argb32.ref.png b/test/reference/clip-push-group.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..86724a23b805fab7620d2516cb31a554b8cbfa02 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih$3=x6WzL&6LA_*uRs3}^-G@_d7t8=!!r@ zli1C%wTtdp!3*B8#|s1vn_4f(aAT8lIabW8J O0000@ zli1C%wTtdp!3*B8#|s1vn_4f(aAT8lIabW8J O0000g~+SG{p-dd@rfA*Dn3_^*gVPk^aMo TKTDN?wlR3R`njxgN@xNAtEN3k literal 0 HcmV?d00001 diff --git a/test/reference/clip-push-group.mask.argb32.ref.png b/test/reference/clip-push-group.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..86724a23b805fab7620d2516cb31a554b8cbfa02 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih$3=x6WzL&6LA_*uRs3}^-G@_d7t8=!!r$3=x6WzL&6LA_*uRs3}^-G@_d7t8=!!r$3=x6WzL&6LA_*uRs3}^-G@_d7t8=!!rl>=*-^mtVBBMdDVY_&{_`}lrIbo#$2>&+Mb=ghr%Rgf%~ pfs8%zO4(hm<|0WxLUYbf=I~P9xoa%f)Bt0G!PC{xWt~$(69DxUt=|9u literal 0 HcmV?d00001 diff --git a/test/reference/clip-rectilinear.base.argb32.ref.png b/test/reference/clip-rectilinear.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9d910db57085292c06d5989c5bbb64dc6a70e4eb GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1SGeyEo=o+Y)RhkE)4%caKYZ?lNlHob39!f zLn`LHy>l>=*-^mtVBBMdDVY_&{_`}lrIbo#$2>&+Mb=ghr%Rgf%~ pfs8%zO4(hm<|0WxLUYbf=I~P9xoa%f)Bt0G!PC{xWt~$(69DxUt=|9u literal 0 HcmV?d00001 diff --git a/test/reference/clip-rectilinear.base.rgb24.ref.png b/test/reference/clip-rectilinear.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9d910db57085292c06d5989c5bbb64dc6a70e4eb GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1SGeyEo=o+Y)RhkE)4%caKYZ?lNlHob39!f zLn`LHy>l>=*-^mtVBBMdDVY_&{_`}lrIbo#$2>&+Mb=ghr%Rgf%~ pfs8%zO4(hm<|0WxLUYbf=I~P9xoa%f)Bt0G!PC{xWt~$(69DxUt=|9u literal 0 HcmV?d00001 diff --git a/test/reference/clip-rectilinear.egl.argb32.ref.png b/test/reference/clip-rectilinear.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9d910db57085292c06d5989c5bbb64dc6a70e4eb GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1SGeyEo=o+Y)RhkE)4%caKYZ?lNlHob39!f zLn`LHy>l>=*-^mtVBBMdDVY_&{_`}lrIbo#$2>&+Mb=ghr%Rgf%~ pfs8%zO4(hm<|0WxLUYbf=I~P9xoa%f)Bt0G!PC{xWt~$(69DxUt=|9u literal 0 HcmV?d00001 diff --git a/test/reference/clip-rectilinear.mask.argb32.ref.png b/test/reference/clip-rectilinear.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a27beca33e5e297a5fc89e88f71328dd59416a5 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1SGeyEo=o+Y)RhkE)4%caKYZ?lNlHob3I)g zLn`LHy|Xcs*-^yx;{Ic-D+JoPWOpfsFIpy|RigOLfvn;qn~wN5L~G2n;qn~wN5L~G2l>=*-^mtVBBMdDVY_&{_`}lrIbo#$2>&+Mb=ghr%Rgf%~ pfs8%zO4(hm<|0WxLUYbf=I~P9xoa%f)Bt0G!PC{xWt~$(69DxUt=|9u literal 0 HcmV?d00001 diff --git a/test/reference/clip-rectilinear.traps.argb32.ref.png b/test/reference/clip-rectilinear.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a27beca33e5e297a5fc89e88f71328dd59416a5 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1SGeyEo=o+Y)RhkE)4%caKYZ?lNlHob3I)g zLn`LHy|Xcs*-^yx;{Ic-D+JoPWOpfsFIpy|RigOLfvn;qn~wN5L~G2n;qn~wN5L~G2kYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7FAB96SHwBFyxb@=!9b3!g?AEzQE}qEX(!LznRYV%?D~sx zCoS5S=%1PYM0#HB=861!X1gk0ILx?WtNP{@%9kr-ydQV(d=hUHa9(o8-(`(2nu4Eo zaHt$=E>3&$Qvc6|HEPPe;cu1xr<+Pveth-o{jx(#t{r|7+xjoj{(W`wK}R$Gv@bx1 OF?hQAxvXkYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7FkYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7FkYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7FkYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7FkYT;V@4l=TOM#|pa^hf0V=7v?;qGtMI zqr(p`7F0q zwNrwqK;-1)lpO5OoR^c^^$>hd?%NHLtNqb=;AihuC%ZFpJKvsCP9<4RPLb_!#>OkY zXig*|iNvGP!R#z>= z%LSaEbW`@km0wV^pb&!BR~?$`-iT#s9O zA*$W<0tMU<=5+n(vTDMJv6km#KQ56qPOC4;pY|Wt;UyPQB|DDoJNL8HQ90(0m1Uu$ zgrya7x@xq8tF~G|?sAUEsSzL7nwI+j&4CV}XIC!FpB0gdR<97rpt%6f5*)XFalK^i z`6AxYPQ^vtEor-|dvkS%WHN>2e)wIl28d6%xV?)hN{wLEsZ{6oy4U^ZT+w=SSu21u_kbmw2->3AYpQ`ZWDS8 zll>(I8s;RpsLN4&(~P+Kb?vk|TOi-8OPKl1d1scRC{9g0gv#3Ok5hU%3mcvXj^w&F zF!NuJSOudXVTR#!g()VFvC4?M4EoOEs$`gJH4ejwe{*#xKCNfc?vGT+e9YS00V6Js zSWSM04!rz?HW=mb2nQIe>3xW6x`3%6TW}vAEd7d*pxluPN)@cVJQ(p6MYCSD;DNAH zHJ7XM6LxA(g5kxD_>O^GzD=V}jZJ|F?eC2|H>3cIA{AYFJW?Cd6Ut8c?)3a$Dra}<1?J}uS91Cz%Bteypse{g#* zTLS%?L72L1fx@q~zoUKy)CTrMKuAgIV1Ur>%YqeKu=vdHSdSeCDhGVEs`BqP)iB7 zdgN{tJzq27fLmM?lGEpL4F!0&d^d(h9kV=SWSqRb?G-)3mRWfr6>RNr{bIYB z=*4~E^m;cll7?S%R@F^zb+2|fJ7#aHZgYJ8QpU_`8zUR*25+567A=%eLp z4)8*wWu1>7%;UdWIFGp@Je`-xF!B2R@i@>=C6wWn?-X#Wg@vgvV26P557uYB$%SNC%duLyY(J9W7si*b?^EzY<*-rMK5Peo0j@rIqM!( zgifa8GxnUaBt!%Sv!9ckMNl6HxCo7+6m5ogj968~!V{nG&mMxy(is8WT@yS%^T&;J zP;(AfcXpy`3Kw>f`xyj3Ox{nn#f(HQ|-*%UA{FDcGrg z9=XJMC%X@EMIGpex(Ly|qgF?RG(JY6&C242K0FseZ~jSaSzy$hbv>t}4Rx&#MvRb7 z0g^GWoopsUm=_CJz-3C?i{onGi6aKQ;Oku2`eEL6x4_vGXKi0@cwlp7euk|t1op;P#62T9+v?PG5MqqOG-JHd?UF61@%jN;x$$P*DcsPqL9>aD zVRho!XmO^brhe;{VF-koK0Su6caA+$BB^b%f=)W&Og~`1tVv7}%nmK9Le-6{-*Pep z^|76M^uD9D_=ar*PFFP9ee1Iv$hNNe=~Lew>qkv}9Z&e4npCl_^{Py#=FW87QYtnk zX!!u~*TV7@u&6DxYbL94iX5Xgu1HesKj(SH9qJR~%>jz-i%};`BGo@0fiOSBx-iPd z{)$T2h+iwl7ZRP0tW>g8=G^Lfmixo$^N#vSM>+mgpFM4Zpg!ds&dFp_jJ~R@(vNKU zOYHjCA(qb}ERcr`Iu>)dBWYP!)R1a(MlR9?ka?-25Sdi7!FAZ zU|P(9e&zck==yl^iqTUlH#7~bR&T|v&USK z`h>;}%>*Loon$|Ceul7f{~n-U(?Z-1B-N1vF1yZ8IZCa2pgx7064REgcZ6_yl>I=I z{pz4@#$Rrn$3#e%Ca9kb2jQ|s9^2D+3*D4m3U=6_3UM1SI@aaG(wNQ!^nXN_}v_f?IkS z!Xy#DAU0lNr=F9S+KWd6YqLwiyyOKdg99O8Wo2=`pQbQPXZcn&>KCpE(FWfx5`%LA zck;QR3|Di#RUsPnF!2v;q`FBr)CarOTQRayhvGDn(+nJUMx#?oi4bOOhi3HJ3phA> zGWHoPmO6X^q6iOg%=*Me%IU`48rYv-jF-ujkqC_df6UK5Kv9_pk6! ze@lx^7A7VpmVp7jktQaqt^kkIx2pjrNk*swUgk+b{=O#5D|d5G3(dp?Y#r$9edu)K z=fB=c8}o6X*_mlYz`CS$BEQwQd;`v!Un&W|=zZvDWoh#s8+6jGLr)_!t3HJLTKjl2 zZ7zOKI1|#5%lb^;nBDo};PGyC@N%(871EMyo8CAys(6=hqy08w%?ysATv$Bm#Ta?{ zYT8YR8lR$_>h1josOJB9y@wyJv@+2Ifo?tHNmiZq$D={b$1L!?T>+>_q^SdEUjd6~ zUeDqvjuxs-8XrdqLFn|A0INOml~p%gW_hUk#SbjWPZ>>u`ck*)fzLNxewGS_Z}gg+ zopjT#iCpe{OF>?&+U6CfrAFN=M4VLQs<-|!;K26K4nNQ-8`|y@*Oq;~onq)w$Ja2b zLVduHp}(fyO&ct2323g8Tt~S_v>Ls}Q78uRZK(&KRb_n z;%rk~BGNpNx1Eo=VywEEw;yC1>KuGNb~#Lk_e>mpNMj^c+V{T7)q0iN8NwFUynoTq z#>jfkg?sc6F9!|<&BKK+Ow|auE%hXft*aevdKi>mo3gNN*t5c@ka#q=85gR5e&VEC zSX>&FoZT)fq!k&$S<7FRbIjkZ3$F z!ilSj8sq+b$UH`ro76wHZVTCFEDQYZ&ZUY(@-I?<%2Jvb{y{#w25+Qr2B2M@K^3JA zExm4@Gb3vhh$16v`Z=8^&Mt83)OM~F!RV#eAVZ5we?hz8cA;Ayx$1n>HkB+6^bcs4 z*-P4imQ-z~+J;yxIPyJK1>Hw)TsUIhQZ4cZIkL^}Q*%bE<;J_}cX3G2n^eW{rYvRy z52+It&Lw&k8fJEDk39K?a2s9;C*~QuYue^hX75QnRBNfOt9jy(4p^u1k~;n{FjRG# ze-2>WU3E1J%IAo*d>2)9EsZKBoW4bG+%@DiSa=v3p?i4jPU zED~eMrJ{xkD{2rT&3ZuEg(`Exs;-wck%4_z}U}5 zd>D*ux^L>RE{(^T{7M zOhjOlHf8Rk#N&sJ7Oj@FPHMvBRI*AJL{tDTjY2DrPC2sY zgP%k76GHN-y@p!96)1p`Lb%I7FEL0^G8*?FbBZrU%oFqp>2}h}`;SOn>D_!WBXD{# zQa@ZR>eEJIvNsRIHERDs6om!UUoXgf+mXXOWy#eS1De$U#N;sf+ZaZYzNSXh*Aay= zyF3CV9hj4Bt23slZGugx(U0A;nT0}QYOK*uAB6VDt#)KPKT89XiwFY~>O`QDT((&m zqn`lo*{%C{JY65qYM(x#3{#k|?}ytEH3KCbBV>e-eg|gFgRv`iyz}v@i<>QJD~B};UZ!4t z(?NaYTrfK?2Y$!e0E<>m7f-yCR+^roMFS~!P@^&NSk=td&5h(>58&%Xo|q9#S#Hvx z;sJqRT-D*HD_uN(;5?#I)Rz*4`51klO6jbT&a;XLK!QC~*&5q%pYf)wCA1z381XlZ z9a`IEf9hmDnC!>JC$kv4=%$bue_{c+r|?85No`h)*JYpLRrE zHk9~7S_m#b!hls(3Ex=P885{oLKNu#G0KXzQyzxedr=r$nF6XmpVB|CLCJAOmeHJ}7OmHhy!Gjo4BiI0jHG=1y9oncqQN z{$VLrZ0IUgt#I(3}QODZcTUnBs$=JD{X@bdi1y8)U;*%YES>o4Zv*{WKd6x;- zbPB;WsoIw7l!T00!DQFf<4l9_&74#I{O%2rn0U82xW-f%J^tc-$!kyh_Jg?Sqvxlnd^0(iuln798!p4UiaHDA2(jBU*xadYSXO_Ap#@@)%ZyuK=NH7N;+K z*$;%cD)`ids$jZ$D*4$t!5!f~o_O#pmr`W@X_L?t9))q$wKjaA%JQ^d-L~(YM$b(A zW>y01uJw!kb6MSZ9#)kve6*0NuS&D`Zh*w3veJ8~l>96C25I8!tSuQd!JXiuJe1cZ zxJF5P`>5VnmF-(H-z}}X3b&-19XfzpB@4&wcZERz3EaIs6lPlt yb(fNPl*+~I--#FGGiZ>CTjXT>j}Mr|Nyg3K8@fOGOtL#yk^~+M^}XkFwB$cmV2gwf5dO zLxTJaA$uS?Iy#2_$9+O|baacs`MtpgP;y3br38F!K7;Y|(b0Z+YCGzwIyz7Xf1jga z8C9P~Fzi!{gw1oLiRH_khr71*BCc-fEcE{E%1e9L#>?Lr{1RIm78~`ItBu#);;&$i zzdt${+GBoT%fqloH$M@ZKeaZJ70DIs_7~=r=#lhJR;U7ZVh8iy;#-?jZ9xT+oL*;b z%DG$*NtQHWEZbdjeqwEGBk0fnbNtcjiq_XzW$KZ;KFf8NLl9{F+GGfkb=b7VhJJ1S z*ZnJ}Ra^T52@+AET=z&(hqxP)@C5)LAib2!cQ1P`naA)N$OcpOoOACU3h#o;e3G^0>HHmqm_bZY>oZeiFu>7O_@*lR^|_;}T~$|VYr_3PkqCM|%aT1=_+HHmjxxjqK`LKqjt&?v?8c6W5raVWMM(;J~~X>&cvQ@N*`r+ zv>m?XG%1(cc159_+Ye!i?$3G;+tzU=&LsL(Thj?uZk0deMyxu~q`FOud894&^kYH^ zDx%cLp}858n}XS_UDT2`cbFNQoF+(~uWesZ;PA=~55|=~aA9S2aAG$_R8g1jn#6!+ zSn=XW4-ApkfT|K4!Gwm6-QVVQE{9KyK zxb-^zq9BPeJ@1Q(Fh-x<^!x&ZXaIiCT~a?!kUtfYjg>IKV!>UN|m@MOyuRHZ<}X0qW)xY*y4>riliV=MEtr(GaLYsGG5g|EMN@ zb2fUiwgfgHd*k&g233BljEPmDZ1w`U&`9q%s9WAEvzigQh6Tog0302-vUzfjdZ?*9 zmq#`_89*?kA{VN{#r>P296o%ElluKzkmJV7iLpk7IHLf^0In=01*_hgny68VG!XhLcNHA(oaq7v!RdQ0}n zH(oVk&&5w8&duRe#^l?g2e*(5neBr;A8v#;S<>^HPei6Z0^DhSl=|wxS%KVHxgQAM ziC1oGHD3{T+hsJ7jrjfq#S8dq(rj4NWz%&tkibAlqc2w`oK%g!qsfIWWFr^MzaRk- zW*&Uo{8`X9niV^1(5ps{Dg6E=;78BtZU41=>MS(p<-9l{tzP&D)CnRer0}e0b;od3 zPVZNi?4jE$a6Y>5bQyqEg){49IgrM*I02xUA0LRoHi6A`rKU=79%RDlbFfa zFiW<1!6ZEEvbyhsYH!+STkkr~9=q#!WdtR-y?km)?i{<7e%#J&sau^VL3Le#uB*n! zO9O(PmNG~&L3cF~Sf_`e0@x&G;ztXZ0SnlLaAvE!DYKn!1<7q^S@9v&||Rnl3>OgVH9hO6_JJA&+?gw{4$k=bxH zMwI4$M2DvMkUA!n&FJ3CFgOXIJ#6kRA5S+l0`N|LElo|9q`^eza7 zv!#!EkW)*lE#?3YskjRVqZ*4Rv^>oA|mDHagrz|9yRaTaSV2 zPxz{IoLF?uVX3&aT4c?}=sE#`d5jMqYnU#j}P|nzS?}z?!5n| zD6t3*a$-)p*c%J(#g{5XiMO~H8EfLFx4_>%wPeFDDB!EW_{{8mK3JGXyood0hFXEq z;`XcrR*W@WFBi-X?eG@{{b=!>UniLKxj-7Dhd97!$v--Y4eq!jo2vo|PcVNW7wRdb z5!&DIHo8@nqD1thqY~&}!Z}8P%ipA;U+R?0s8=l?c z3^mRm7e0txr|sWF3~!2k1H&~c_<(!s{vMWGSj&a}#<61K8cEO&`xQ}-YV2eW)jRMD zrWFtz&WyvdK-ykgvbo=`!ud4;Na^okS0p^*@WNjVhQNm)J+f883e~e(fL(=hT}5b-QC6U4CS(tPmSHa_ALuVKjbyxS@I1In(piqNxIB5@Xh1 zu$u8W^+jfFCZy4Rf(x8ZoBH_Ph#N5QWEHNCJSqoMhCYNjGn$QB| z9vb9**P%~@Zj^*ZMyoYG1Ck7Ahjsa>>5p-~KZ~ZyIt$ulYim)C<(kJ?^PW@~u6x1h z!_D1EjGE(`WrS)Bo4xNmMKo1yX2Jyo2M2`*@;eMaTurxKu9{8@c!J8wwqfLR3riDRgF^ z=Q<2`W6|PqGEtLu_KIwO6X^q6iOg%=*Me%IU`48rYv-jF-ujkqC_df6UK5Kv9_pk6! ze@lx^7A7VpmVp7jktQaqt^kkIx2pjrNk*swUgk+b{=O#5D|d5G3(dp?Y#r$9edu)K z=fB=c8}o6X*_mlYz`CS$BEQwQd;`v!Un&W|=zZvDWoh#s8+6jGLr)_!t3HJLTKjl2 zZ7zOKI1|#5%lb^;nBDo};PGyC@N%(871EMyo8CAys(6=hqy08w%?ysATv$Bm#Ta?{ zYT8YR8lR$_>h1josOJB9y@wyJv@+2Ifo?tHNmiZq$D={b$1L!?T>+>_q^SdEUjd6~ zUeDqvjuxs-8XrdqLFn|A0INOml~p%gW_hUk#SbjWPZ>>u`ck*)fzLNxewGS_Z}gg+ zopjT#iCpe{OF>?&+U6CfrAFN=M4VLQs<-|!;K26K4nNQ-8`|y@*Oq;~onq)w$Ja2b zLVduHp}(fyO&ct2323g8Tt~S_v>Ls}Q78uRZK(&KRb_n z;%rk~BGNpNx1Eo=VywEEw;yC1>KuGNb~#Lk_e>mpNMj^c+V{T7)q0iN8NwFUynoTq z#>jfkg?sc6F9!|<&BKK+Ow|auE%hXft*aevdKi>mo3gNN*t5c@ka#q=85gR5e&VEC zSX>&FoZT)fq!k&$S<7FRbIjkZ3$F z!ilSj8sq+b$UH`ro76wHZVTCFEDQYZ&ZUY(@-I?<%2Jvb{y{#w25+Qr2B2M@K^3JA zExm4@Gb3vhh$16v`Z=8^&Mt83)OM~F!RV#eAVZ5we?hz8cA;Ayx$1n>HkB+6^bcs4 z*-P4imQ-z~+J;yxIPyJK1>Hw)TsUIhQZ4cZIkL^}Q*%bE<;J_}cX3G2n^eW{rYvRy z52+It&Lw&k8fJEDk39K?a2s9;C*~QuYue^hX75QnRBNfOt9jy(4p^u1k~;n{FjRG# ze-2>WU3E1J%IAo*d>2)9EsZKBoW4bG+%@DiSa=v3p?i4jPU zED~eMrJ{xkD{2rT&3ZuEg(`Exs;-wck%4_z}U}5 zd>D*ux^L>RE{(^T{7M zOhjOlHf8Rk#N&sJ7Oj@FPHMvBRI*AJL{tDTjY2DrPC2sY zgP%k76GHN-y@p!96)1p`Lb%I7FEL0^G8*?FbBZrU%oFqp>2}h}`;SOn>D_!WBXD{# zQa@ZR>eEJIvNsRIHERDs6om!UUoXgf+mXXOWy#eS1De$U#N;sf+ZaZYzNSXh*Aay= zyF3CV9hj4Bt23slZGugx(U0A;nT0}QYOK*uAB6VDt#)KPKT89XiwFY~>O`QDT((&m zqn`lo*{%C{JY65qYM(x#3{#k|?}ytEH3KCbBV>e-eg|gFgRv`iyz}v@i<>QJD~B};UZ!4t z(?NaYTrfK?2Y$!e0E<>m7f-yCR+^roMFS~!P@^&NSk=td&5h(>58&%Xo|q9#S#Hvx z;sJqRT-D*HD_uN(;5?#I)Rz*4`51klO6jbT&a;XLK!QC~*&5q%pYf)wCA1z381XlZ z9a`IEf9hmDnC!>JC$kv4=%$bue_{c+r|?85No`h)*JYpLRrE zHk9~7S_m#b!hls(3Ex=P885{oLKNu#G0KXzQyzxedr=r$nF6XmpVB|CLCJAOmeHJ}7OmHhy!Gjo4BiI0jHG=1y9oncqQN z{$VLrZ0IUgt#I(3}QODZcTUnBs$=JD{X@bdi1y8)U;*%YES>o4Zv*{WKd6x;- zbPB;WsoIw7l!T00!DQFf<4l9_&74#I{O%2rn0U82xW-f%J^tc-$!kyh_Jg?Sqvxlnd^0(iuln798!p4UiaHDA2(jBU*xadYSXO_Ap#@@)%ZyuK=NH7N;+K z*$;%cD)`ids$jZ$D*4$t!5!f~o_O#pmr`W@X_L?t9))q$wKjaA%JQ^d-L~(YM$b(A zW>y01uJw!kb6MSZ9#)kve6*0NuS&D`Zh*w3veJ8~l>96C25I8!tSuQd!JXiuJe1cZ zxJF5P`>5VnmF-(H-z}}X3b&-19XfzpB@4&wcZERz3EaIs6lPlt yb(fNPl*+~I--#FGGiZ>CTjXT>j}Mr|Nyg3K8@fOGOtL#yk^~+M^}XkFwB$cmV2gwf5dO zLxTJaA$uS?Iy#2_$9+O|baacs`MtpgP;y3br38F!K7;Y|(b0Z+YCGzwIyz7Xf1jga z8C9P~Fzi!{gw1oLiRH_khr71*BCc-fEcE{E%1e9L#>?Lr{1RIm78~`ItBu#);;&$i zzdt${+GBoT%fqloH$M@ZKeaZJ70DIs_7~=r=#lhJR;U7ZVh8iy;#-?jZ9xT+oL*;b z%DG$*NtQHWEZbdjeqwEGBk0fnbNtcjiq_XzW$KZ;KFf8NLl9{F+GGfkb=b7VhJJ1S z*ZnJ}Ra^T52@+AET=z&(hqxP)@C5)LAib2!cQ1P`naA)N$OcpOoOACU3h#o;e3G^0>HHmqm_bZY>oZeiFu>7O_@*lR^|_;}T~$|VYr_3PkqCM|%aT1=_+HHmjxxjqK`LKqjt&?v?8c6W5raVWMM(;J~~X>&cvQ@N*`r+ zv>m?XG%1(cc159_+Ye!i?$3G;+tzU=&LsL(Thj?uZk0deMyxu~q`FOud894&^kYH^ zDx%cLp}858n}XS_UDT2`cbFNQoF+(~uWesZ;PA=~55|=~aA9S2aAG$_R8g1jn#6!+ zSn=XW4-ApkfT|K4!Gwm6-QVVQE{9KyK zxb-^zq9BPeJ@1Q(Fh-x<^!x&ZXaIiCT~a?!kUtfYjg>IKV!>UN|m@MOyuRHZ<}X0qW)xY*y4>riliV=MEtr(GaLYsGG5g|EMN@ zb2fUiwgfgHd*k&g233BljEPmDZ1w`U&`9q%s9WAEvzigQh6Tog0302-vUzfjdZ?*9 zmq#`_89*?kA{VN{#r>P296o%ElluKzkmJV7iLpk7IHLf^0In=01*_hgny68VG!XhLcNHA(oaq7v!RdQ0}n zH(oVk&&5w8&duRe#^l?g2e*(5neBr;A8v#;S<>^HPei6Z0^DhSl=|wxS%KVHxgQAM ziC1oGHD3{T+hsJ7jrjfq#S8dq(rj4NWz%&tkibAlqc2w`oK%g!qsfIWWFr^MzaRk- zW*&Uo{8`X9niV^1(5ps{Dg6E=;78BtZU41=>MS(p<-9l{tzP&D)CnRer0}e0b;od3 zPVZNi?4jE$a6Y>5bQyqEg){49IgrM*I02xUA0LRoHi6A`rKU=79%RDlbFfa zFiW<1!6ZEEvbyhsYH!+STkkr~9=q#!WdtR-y?km)?i{<7e%#J&sau^VL3Le#uB*n! zO9O(PmNG~&L3cF~Sf_`e0@x&G;ztXZ0SnlLaAvE!DYKn!1<7q^S@9v&||Rnl3>OgVH9hO6_JJA&+?gw{4$k=bxH zMwI4$M2DvMkUA!n&FJ3CFgOXIJ#6kRA5S+l0`N|LElo|9q`^eza7 zv!#!EkW)*lE#?3YskjRVqZ*4Rv^>oA|mDHagrz|9yRaTaSV2 zPxz{IoLF?uVX3&aT4c?}=sE#`d5jMqYnU#j}P|nzS?}z?!5n| zD6t3*a$-)p*c%J(#g{5XiMO~H8EfLFx4_>%wPeFDDB!EW_{{8mK3JGXyood0hFXEq z;`XcrR*W@WFBi-X?eG@{{b=!>UniLKxj-7Dhd97!$v--Y4eq!jo2vo|PcVNW7wRdb z5!&DIHo8@nqD1thqY~&}!Z}8P%ipA;U+R?0s8=l?c z3^mRm7e0txr|sWF3~!2k1H&~c_<(!s{vMWGSj&a}#<61K8cEO&`xQ}-YV2eW)jRMD zrWFtz&WyvdK-ykgvbo=`!ud4;Na^okS0p^*@WNjVhQNm)J+f883e~e(fL(=hT}5b-QC6U4CS(tPmSHa_ALuVKjbyxS@I1In(piqNxIB5@Xh1 zu$u8W^+jfFCZy4Rf(x8ZoBH_Ph#N5QWEHNCJSqoMhCYNjGn$QB| z9vb9**P%~@Zj^*ZMyoYG1Ck7Ahjsa>>5p-~KZ~ZyIt$ulYim)C<(kJ?^PW@~u6x1h z!_D1EjGE(`WrS)Bo4xNmMKo1yX2Jyo2M2`*@;eMaTurxKu9{8@c!J8wwqfLR3riDRgF^ z=Q<2`W6|PqGEtLu_KIwv>i^Vj-up9BR=}DU8hdAv~iHl82B=$rE#2sT`IKn_-$m z&PzO=qM0=*hj|p)Xq4uVQ|}M&^}g?Qy??)dy!&0dc3t=PyZd{8KcD+^-}mqCIR~_Y zEJRjJOiaPf*4jx-Y+DBKMaX~vi(h|4F7PAecM5GS_G9BIYAMYY6H^4)Ss%y5JQj|O zMq(zQU0-|OXWvo)W%+Icdky(%+c3*ybleltpVZyZ*0z$z+Emy~8`$qmRO7l*!J4$6 zai|1kO{8;T54WlA*Vs1{mgvc<_yS01)5R(>swH2j*N{uSmGMi{9+cs-^At)pvU0Sz0*+OG?j~x@oc9Tz!f**koch_WtAgOH|Qp9%Koh+UbnP*OiY( zyQJ)@GI#b_K&MX_$7bqPV^7t}kqeM%Q;vb$f%V5)ghd%zL{wjF{nU2BpFz2}Ixp$J zX>jB`;har>JaNaa?~B9f*6xB)YZ$? z>WAc@jC@XxY4RxDOM3S)-#lbcBI!Zj%E2B~7he(g5hB^0*7{%r5QOuIdGz47LFU;* zTB;;gxAB(}!N41U8U0#&X!n6`M3gyCKB_Mv`E&feH!?IC(fIszA!IeOux42~fG}7o zZd2y@+~z z*CT-)qcUyEZhgM$NYoCyQ>MDjebLbH9ZBG{;@81`>PT5s>OC z^J?Jmx~|+@ur%$M+ybV~svQwEQIHdQ&3mjrAmOM50zf_USM^4e5g8ik@-DbZ@yI=9 zstSW0P@b)L&y`)=)39JEWe?nX|61m{O%Lk60E=5t>_1)3-?Ig_p#ZOjS_{27bFW2x z)KlLgu3QvD?jqiqumI`$K`VMt_|q*>MaQT1gc+E7dng|zywMIMqCW&saHZ`B>ZXrD zl-x>sR^TH&s9he~Ycb>}%Px|eVU_fZRy8wFx_QZ_1`bnsq;`)?XhvZJkdplTzozto z{qOd9z2bFgZU^bA_n>x6hYFrwc{Lo+q)3tl5U^g$EPmaXh2;~^we3zjnnBWL}KZfRsw=9b|Asuu~N?@Gd>n}ari>&CoaQ=XBta9;jy z4o*~Axy%3ccRVw7WJovaD!3OlU>EPNw)>pYpq``v?b|tH?Fz$uMTov}Xi#b%Kw(T0 zP+aU1NiDVZLBvUWkFe~79JXN7hoQ^MxW?iE%*S}*G`Uqua{ElYXYFiLxpY!)1|YIa zO}B3eGg@0b#>hbNpt6-2~;bWHwaOM(^oCm7yz4X9)tub{P(>2>!Z^=Bbwvjh0*R3Vko;3I?hQY;8C&GlFwV z8-qPfYSMBJtgZ!Z-pk(oy!XMnkdzk_9NvC~<_!?inD&E5Em^3-!IfvfRJP!gRDi0A zSA##zdl3R3)k=$C2aoD4FojfxT=ZOzk!K!dxbFvd5LI^ru>&Wj#j$bPn zn@kw8QtC+4ML72@pe;kVzjT|xIsW@;4#*=X^Fk$A<{PZ`=1scK3v9o~6YK4ayd9Sg z4qYjFsO0umr0)PQYL1&Wl(eexlBUWh1?bH6E~y#Cw%Ls0m+9Lz;n3i7#F2(Y-)o9M z_7W&ZydMd_V|W_N0fJNu>gBLm|E@XJzEfk}opACB$|tbto^r#P!KkVm^ML4Fex@U) zSt0pCNRNrFSGEa#AR1cc3V3<23=gYfr;2(|vxNOK4EkdAPn(tVbZ5>1z)h*2`mz=! z;O3h+Sn0k+M^jLDE2al^Hft~f^3K0W5d$=?4MV*oWR$}Gsxx*Jz?HV9+!aI|u)BK6 zDKJxrynSLrZ3K$j3cMwxmer5tca!T&aDQvmO&c8BTvAPMLdrpHM{227fAPA)K}i#` zhl7Z)Z1qsbmx0*Plk&5M=jiks*#ZuP3@oP zr}quR1b>z9qePDAR`lwAWVxMd*phi}cp@pWT7A-3XI=FSVPV3UestZa6ThiUG}tIM z?B-0$59>=i(`Nl={Ym0U6O|HyL=O_oys~FCrWa(L%rwlsmbiBY%YQ8TQ(ob7icsQi z@up64a@TFodmkE6UFY(;T4bj`nk6Z0b^ol~)H8yC{SVApb<$M%zgXZ=rX^^>RlFtgaShd<{h z^M3YPc@kWLzG@xB-k5xHL3f@!N^W(C9gEWmP3MOndn!XyOPOkAV<};@)C0o+Bx89Y zuly3nW2_nMA##Zi_0yx=^W)lE8T?*|$5_h6{~;0yWt({`o6VdSb>wN;6D+?P;7k_k zNRZeIRH!?svPDxqE23=;ESNitiM*V%Z`(^?YQfIpYwD?F+JyUli$?e7YmOS@TGJu7 zo+-PP&=%2_tOG~qu>6yhX+JO(0Cj5x$1wwp1L9s>aySYxFSZ>{=Zud`#4fcfd!mPR zE4-?{ywyAf$^v>z1kq}4G#n=@cfNh@KHuK^oO{>J#a;%i z2$qnLka4(RcTqw@G8cGGANmeJuCU??fY-q*j`nsE``>PIXAMz80@CkbclJ_J`SSE4 zaXJAH`m#CRKc0O!_kc9?X9KANzsMYu`$1L5P6w=Wyqyr_BvD3TU%RJ%!MCh1((K{) z2hQac+nqaYTR|Sa7kAgSe4@lMd{0trJqhX@(4WmpAX4#EZMj1Z*Ee_4IGok;(MXZD z_=f8kerTmcuov|$u>a@vC4CU4EOA0dnT%i;9C?X`X(`{V)vi}IHV?$lCbvcwk2TqcK8zKF!kw90Fk-5LJ6 z%QSgXNiWUB29hFs9q-H_y7HCM6Vnn>`AU~u(ax{a^#;=Y3TgQdUSXeW_|VL4%hpL% zL^mk{!ot^>o5@s28h^-r_1Ds*zbPoe9W^YNTJUR8dsG#i`w6F)SHy*e~@@>1y#H24-Vc@0XODe_0c}Pp05> zYUj+b6KTJz1s|V#!!$TJ9@}iekLiE=SJfjoJpw}3?1eC31e51^JY=No)6B+;ol|Iy z;oXG2t7y|IRhepz^ByKfw7b2Zt{^=1apsFG+sP@5hly;i#brsJDP3|hO)o>Q&M031 zM`oU!41)N-RPKA%&)kjWD?uMp!@`H&m3J8i2pWb>`bfHOxx}h?w+Hmnc1<>KfvIq? zw>-pNQ%rKfJjOxaxuf7T!FK%y66wE!9Ne<&QF2#`0!PjT_!Xzq2#tS=i9?megCeGh zmNWYOJGP8Zps6j#Oy_Hlo5;f36eL5YhJ9{lwKL>9u54=F$2x9iF-^iH2#8Ze+pk?P zT!F4bOj>;A3ala{%nkLdH5AVld)N2;-WUA3WDJl#`=f7kTNI^E5ZgSzf-A}&JR7W4 ze{$^ipGjI3lzqQ4KS7~1R;MCE!yRSuW#n@^UB08n1=(d<+Q}Yxkw;&+^%T}ZJ0n7B zju#H#wI0Q&2$0}9<0#6F`D*UN#IO;L0v7@G!Y=uggtjp{VRjVzdO32)@nYC0W>ZLbsGc-n0JJoby^Ao@@0vH~?^Nxf0X+C@`P^doBR6$t)Njs|4KWs}P^AqN8W8>gt!yW@S`w?t{6G-Q3i$wjm^ z%PX6;zRD5EdU-}sjxKPyA7ex-x)mAMFQVj{326l`&4?0lLDorcQ}FU*s!j-GSBHeu zP4PaD1xW0_Nqf;X>YF(j4jc$13|x0PXWT|J`KxHng_cty$8ln9SHW<3+?>3`!2A_Y zfD;F3yTgX094f~3j( z2c*E~guT9>qA6CzFK`!Ej}P_?Ne#N95Xsljd(lB{3`ic#c3kYoR}v}{JV`Jq0aLu& zw;F{^^!W$kdGl^dj@bm3)LW^)j#2TD1ZZc+Y*a|832L$dP7f8qbzb;xLfRRh*rv(e zOI1zXH%e=|X^co>PQ%-`JfN=9wd*^U$8r;@;Fr+X)(c`pmVu@qyfd1${Ioy*94DGm z160aKG%e?8A-#5TM1FgRX^;{bynahynBoCMVMg$@CPh<<)C0?jyH-GJNRp}Gv1f)g z8~yUzFPCRm!;%8{TGA2(&-0upid9kh=Buo<$G9U0Gw3?OybYhpJ($p^FHni-0DR&; zfJH#?Vf+)%t^wLL;?5)O(Lq}ESK3;3R&Dl^^V8gyvP1Da-1Zu20AazWjD&2*1W~PGry;`H|+RQZivfTWoptXJ3u$ zJH{xI7xa^MJ-rS4c7mz!U}|J}_Ao6++YT+qZiESoh_aR>gMaLYFkvq-p(bprk!f-w z2weBV3nQLk7`+D*KI+>MGx2~b(m>}OlHu5Ja#NQY6xv&Xh%4z4ziMD9 z$2E^8Jlh;+npmR|cEL18MTqZuWv1BDnY#E z`}x?*MGsWAM=ZobZ~Q~w2Mi!1B^7NnSXp3#51lJY65{*HjKiWr?_ys6;D&M*Zf*Pd zi*2p)r{dx=Pd?p!75fJ2CCln21mv0<&lvMaIT;%X0+ zOlznuo3&A2m-k~~=+25Flu>mR3o}*PB{6hf4nRDylp?jGS)m+AfrUg0AmD_t5jQi! zQUK)DWYX{=7gnpU3a*C@zca$>?6I!@|gW!GFMUHT<*Jc{zQK%P07z^2b z5F*%dN^7zw9a*TNUM73{&aZtt-4fgJPQKdp^7AbDl=$Y zoktF|dY~E%p239lko%LpLI{DSFl|31*_j#`HE@?J*)lBdI0Lb(_&eJTv07il47*^e_M^uS zFHooxH8+rh{yQDM^HxrS>46=iEX8l|<*WNJ5Kwp~K;hj<;N42ms`patKrEgQ=p>wU zzOJE6%i#xt>k3R&O|G-*XbhSrR{R85Bb>nU>Tc)B>2;EbspvEfl1?Egf=r!=SekB6 z`gjW_yfxX&NfZ}b)=)3kKbw0gzpY1vv%{7w2m)&s)a(9oH{3X3eUHmN$6q>Kaj+Jk zMTMjlHohfREa9th&?kgZ^NHxyWfKvG{|9~`$PKk@l;Z!%d0ASz``C946zWa38_GIT z>ogewm1ih|A>lHF?^`nI-(9vvOa6Dm!n?ALAo9VO4wa|rE@@NR%D*JH;cjY(i#n=@cfNh@KHuK^oO{>J#a;%i z2$qnLka4(RcTqw@G8cGGANmeJuCU??fY-q*j`nsE``>PIXAMz80@CkbclJ_J`SSE4 zaXJAH`m#CRKc0O!_kc9?X9KANzsMYu`$1L5P6w=Wyqyr_BvD3TU%RJ%!MCh1((K{) z2hQac+nqaYTR|Sa7kAgSe4@lMd{0trJqhX@(4WmpAX4#EZMj1Z*Ee_4IGok;(MXZD z_=f8kerTmcuov|$u>a@vC4CU4EOA0dnT%i;9C?X`X(`{V)vi}IHV?$lCbvcwk2TqcK8zKF!kw90Fk-5LJ6 z%QSgXNiWUB29hFs9q-H_y7HCM6Vnn>`AU~u(ax{a^#;=Y3TgQdUSXeW_|VL4%hpL% zL^mk{!ot^>o5@s28h^-r_1Ds*zbPoe9W^YNTJUR8dsG#i`w6F)SHy*e~@@>1y#H24-Vc@0XODe_0c}Pp05> zYUj+b6KTJz1s|V#!!$TJ9@}iekLiE=SJfjoJpw}3?1eC31e51^JY=No)6B+;ol|Iy z;oXG2t7y|IRhepz^ByKfw7b2Zt{^=1apsFG+sP@5hly;i#brsJDP3|hO)o>Q&M031 zM`oU!41)N-RPKA%&)kjWD?uMp!@`H&m3J8i2pWb>`bfHOxx}h?w+Hmnc1<>KfvIq? zw>-pNQ%rKfJjOxaxuf7T!FK%y66wE!9Ne<&QF2#`0!PjT_!Xzq2#tS=i9?megCeGh zmNWYOJGP8Zps6j#Oy_Hlo5;f36eL5YhJ9{lwKL>9u54=F$2x9iF-^iH2#8Ze+pk?P zT!F4bOj>;A3ala{%nkLdH5AVld)N2;-WUA3WDJl#`=f7kTNI^E5ZgSzf-A}&JR7W4 ze{$^ipGjI3lzqQ4KS7~1R;MCE!yRSuW#n@^UB08n1=(d<+Q}Yxkw;&+^%T}ZJ0n7B zju#H#wI0Q&2$0}9<0#6F`D*UN#IO;L0v7@G!Y=uggtjp{VRjVzdO32)@nYC0W>ZLbsGc-n0JJoby^Ao@@0vH~?^Nxf0X+C@`P^doBR6$t)Njs|4KWs}P^AqN8W8>gt!yW@S`w?t{6G-Q3i$wjm^ z%PX6;zRD5EdU-}sjxKPyA7ex-x)mAMFQVj{326l`&4?0lLDorcQ}FU*s!j-GSBHeu zP4PaD1xW0_Nqf;X>YF(j4jc$13|x0PXWT|J`KxHng_cty$8ln9SHW<3+?>3`!2A_Y zfD;F3yTgX094f~3j( z2c*E~guT9>qA6CzFK`!Ej}P_?Ne#N95Xsljd(lB{3`ic#c3kYoR}v}{JV`Jq0aLu& zw;F{^^!W$kdGl^dj@bm3)LW^)j#2TD1ZZc+Y*a|832L$dP7f8qbzb;xLfRRh*rv(e zOI1zXH%e=|X^co>PQ%-`JfN=9wd*^U$8r;@;Fr+X)(c`pmVu@qyfd1${Ioy*94DGm z160aKG%e?8A-#5TM1FgRX^;{bynahynBoCMVMg$@CPh<<)C0?jyH-GJNRp}Gv1f)g z8~yUzFPCRm!;%8{TGA2(&-0upid9kh=Buo<$G9U0Gw3?OybYhpJ($p^FHni-0DR&; zfJH#?Vf+)%t^wLL;?5)O(Lq}ESK3;3R&Dl^^V8gyvP1Da-1Zu20AazWjD&2*1W~PGry;`H|+RQZivfTWoptXJ3u$ zJH{xI7xa^MJ-rS4c7mz!U}|J}_Ao6++YT+qZiESoh_aR>gMaLYFkvq-p(bprk!f-w z2weBV3nQLk7`+D*KI+>MGx2~b(m>}OlHu5Ja#NQY6xv&Xh%4z4ziMD9 z$2E^8Jlh;+npmR|cEL18MTqZuWv1BDnY#E z`}x?*MGsWAM=ZobZ~Q~w2Mi!1B^7NnSXp3#51lJY65{*HjKiWr?_ys6;D&M*Zf*Pd zi*2p)r{dx=Pd?p!75fJ2CCln21mv0<&lvMaIT;%X0+ zOlznuo3&A2m-k~~=+25Flu>mR3o}*PB{6hf4nRDylp?jGS)m+AfrUg0AmD_t5jQi! zQUK)DWYX{=7gnpU3a*C@zca$>?6I!@|gW!GFMUHT<*Jc{zQK%P07z^2b z5F*%dN^7zw9a*TNUM73{&aZtt-4fgJPQKdp^7AbDl=$Y zoktF|dY~E%p239lko%LpLI{DSFl|31*_j#`HE@?J*)lBdI0Lb(_&eJTv07il47*^e_M^uS zFHooxH8+rh{yQDM^HxrS>46=iEX8l|<*WNJ5Kwp~K;hj<;N42ms`patKrEgQ=p>wU zzOJE6%i#xt>k3R&O|G-*XbhSrR{R85Bb>nU>Tc)B>2;EbspvEfl1?Egf=r!=SekB6 z`gjW_yfxX&NfZ}b)=)3kKbw0gzpY1vv%{7w2m)&s)a(9oH{3X3eUHmN$6q>Kaj+Jk zMTMjlHohfREa9th&?kgZ^NHxyWfKvG{|9~`$PKk@l;Z!%d0ASz``C946zWa38_GIT z>ogewm1ih|A>lHF?^`nI-(9vvOa6Dm!n?ALAo9VO4wa|rE@@NR%D*JH;cjY(i0q zwNrwqK;-1)lpO5OoR^c^^$>hd?%NHLtNqb=;AihuC%ZFpJKvsCP9<4RPLb_!#>OkY zXig*|iNvGP!R#z>= z%LSaEbW`@km0wV^pb&!BR~?$`-iT#s9O zA*$W<0tMU<=5+n(vTDMJv6km#KQ56qPOC4;pY|Wt;UyPQB|DDoJNL8HQ90(0m1Uu$ zgrya7x@xq8tF~G|?sAUEsSzL7nwI+j&4CV}XIC!FpB0gdR<97rpt%6f5*)XFalK^i z`6AxYPQ^vtEor-|dvkS%WHN>2e)wIl28d6%xV?)hN{wLEsZ{6oy4U^ZT+w=SSu21u_kbmw2->3AYpQ`ZWDS8 zll>(I8s;RpsLN4&(~P+Kb?vk|TOi-8OPKl1d1scRC{9g0gv#3Ok5hU%3mcvXj^w&F zF!NuJSOudXVTR#!g()VFvC4?M4EoOEs$`gJH4ejwe{*#xKCNfc?vGT+e9YS00V6Js zSWSM04!rz?HW=mb2nQIe>3xW6x`3%6TW}vAEd7d*pxluPN)@cVJQ(p6MYCSD;DNAH zHJ7XM6LxA(g5kxD_>O^GzD=V}jZJ|F?eC2|H>3cIA{AYFJW?Cd6Ut8c?)3a$Dra}<1?J}uS91Cz%Bteypse{g#* zTLS%?L72L1fx@q~zoUKy)CTrMKuAgIV1Ur>%YqeKu=vdHSdSeCDhGVEs`BqP)iB7 zdgN{tJzq27fLmM?lGEpL4F!0&d^d(h9kV=SWSqRb?G-)3mRWfr6>RNr{bIYB z=*4~E^m;cll7?S%R@F^zb+2|fJ7#aHZgYJ8QpU_`8zUR*25+567A=%eLp z4)8*wWu1>7%;UdWIFGp@Je`-xF!B2R@i@>=C6wWn?-X#Wg@vgvV26P557uYB$%SNC%duLyY(J9W7si*b?^EzY<*-rMK5Peo0j@rIqM!( zgifa8GxnUaBt!%Sv!9ckMNl6HxCo7+6m5ogj968~!V{nG&mMxy(is8WT@yS%^T&;J zP;(AfcXpy`3Kw>f`xyj3Ox{nn#f(HQ|-*%UA{FDcGrg z9=XJMC%X@EMIGpex(Ly|qgF?RG(JY6&C242K0FseZ~jSaSzy$hbv>t}4Rx&#MvRb7 z0g^GWoopsUm=_CJz-3C?i{onGi6aKQ;Oku2`eEL6x4_vGXKi0@cwlp7euk|t1op;P#62T9+v?PG5MqqOG-JHd?UF61@%jN;x$$P*DcsPqL9>aD zVRho!XmO^brhe;{VF-koK0Su6caA+$BB^b%f=)W&Og~`1tVv7}%nmK9Le-6{-*Pep z^|76M^uD9D_=ar*PFFP9ee1Iv$hNNe=~Lew>qkv}9Z&e4npCl_^{Py#=FW87QYtnk zX!!u~*TV7@u&6DxYbL94iX5Xgu1HesKj(SH9qJR~%>jz-i%};`BGo@0fiOSBx-iPd z{)$T2h+iwl7ZRP0tW>g8=G^Lfmixo$^N#vSM>+mgpFM4Zpg!ds&dFp_jJ~R@(vNKU zOYHjCA(qb}ERcr`Iu>)dBWYP!)R1a(MlR9?ka?-25Sdi7!FAZ zU|P(9e&zck==yl^iqTUlH#7~bR&T|v&USK z`h>;}%>*Loon$|Ceul7f{~n-U(?Z-1B-N1vF1yZ8IZCa2pgx7064REgcZ6_yl>I=I z{pz4@#$Rrn$3#e%Ca9kb2jQ|s9^2D+3*D4m3U=6_3UM1SI@aaG(wNQ!^nXN_}v_f?IkS z!Xy#DAU0lNr=F9S+KWd6YqLwiyyOKdg99O8Wo2=`pQbQPXZcn&>KCpE(FWfx5`%LA zck;QR3|Di#RUsPnF!2v;q`FBr)CarOTQRayhvGDn(+nJUMx#?oi4bOOhi3HJ3phA> zGWHoPmo-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke-no-op.egl.argb32.ref.png b/test/reference/clip-stroke-no-op.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..11442ad5766e866153eb9f25aa19735441e4d0a6 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^}8Y~*Dy;9xO4_^8KE%;UUx-a5OTY0FlXnXjs?`;a?d{=y>HZZX{`$)&E{VNRJB o7flU_+LEC<1t`P`7rMZ%wrS}$UHA2#K!X`PUHx3vIVCg!0EQkjy#N3J literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke-no-op.mask.argb32.ref.png b/test/reference/clip-stroke-no-op.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke-no-op.mask.rgb24.ref.png b/test/reference/clip-stroke-no-op.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke-no-op.rgb24.ref.png b/test/reference/clip-stroke-no-op.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2256461a98f26cdf2c714a4146083afa36ff897a GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_>o-U3d z5v^~}88RMF5MbCC^i*G#S;zd~1dS83X1=%m|MtMlu!W%+qEW4csiSPN9E?x8Wx5Xl P4QB9k^>bP0l+XkKRhTi| literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke-unbounded.argb32.ref.png b/test/reference/clip-stroke-unbounded.argb32.ref.png index df0ee64d2875dc7568bab574351d566ba72401ba..8bf64c10860a968102e85301778032b36f44e0d9 100644 GIT binary patch literal 4128 zcmZ`+cTf{x&o9HWr!oZDARB|#V&>d;YhPy+w}I$e;a$rbneN0h*;ThUQ& z_=*9c`Z}6`%YP>aRh$R_FpTMHJ}~pk*vx$EbK^-?xB3_;j+k+CR9Ay?PC&Yi_u1jb zMyeuNKF~mzl8SMloEjG%ZVwAmrT6%t72}xs%slWW&^1AZt!RrnKUtsqU^Ab?c zkL`?kmF%>M8Ac*SW5iw;61w`kBKO+Zg22uV2>snQ1k7EEGt=*`6UaN^fOKWZ^*efu7SjnO|7&!y8^uVD`}>Cqso%2D>h%z>3l zjJ_kJ?d$tX{Ery@;_r~T4;!r?=)qKe ze^$`~`AYu8UPYzPVca)(|4lK4qSC&8so45Qt{+v#4!y{nE8>5^`wzpCM)V8V1MZ(< zUM6`N?I{R@98gX+)y+I#xby4Zgylxp(#ixF*A>)2yn%LeuOEUdE*R}{ zQzFJ9Za>%7p%pD%Bk}5Xv%oiT;qZ!^D&Y>G^06~R zsPJo7xr}8}6*CzweB>)XiQqZ3b$b-zdvTgH6_^WPd!#ZUzP z_^!@M(PF(Oh0;q;>a}ad?zQt^_H@LYAvq@{%INuLUcz1OEvzU`YS^}_hSjye^n3Co zr8EVBRMiK!e2ZDl-gtEV6P0Jdwe2Ksy(cJpqR7NYOGOVaSy&Sd1BBd{8P3;y?lmdj zz6`nrct>UTF(ym^cv=V$DP`M`!$;u-=i|`31}(={;QqF}&{;E%3}i!TFKrdueQniLlnr~3$hj?Xq=0zHG5QrxlLbOtM!8tN2u zH~BkTbi|9xbtA)!qe#EA9jp11b?+!Wrt^~nmO9uVb9A(D#uw|8o8`|W)G8Hr26aK+ zd%yE)cbRh4hpiryJ0eOU|hSe+){pd+aUZR0iSt?Cgf>`y`TBm<%zISoWx!sQ|N9a_t>e z+WBq`_nW-ll*bS9+Vh3JD(~8z>|hD(Wseb(X3OxG7eRV2513k8-`F`AIT|KWK6XGUD>Nf(e>9soioSJ4k`GRm2Of5>ee26<< z#Tc&7aZ>FtZ>;1ycB);PV75&`)P}NB^%+o)6obuE)*Wt#-u>ENp;Jwci1+(>J6)`{ zr{j@as2#5*>8MLV6{H>b~ zx4)R@)9jGki-gYLlB%+q$gN6ss_-=qG=+uDd4avUs$uaeN8Y313lPa7IdanILdr>P01=AGBt(v+Eat?|J;*|JutXf zCo>%?vCv?Rj?Nxw@UTNM_cdH)$3!#mO@3RhN%!tsUgsK`?4UpcysbEjIkrAsG$+xr z?d;|^x5+H5ZEy&gN6P-F&PcZ6li?Cm$AGLxxKLwXn(W}sc>Bd06)}r2`CQJZ801sG zMZLIs7x|xun%xp&^IZg-_n`QnnrE>v1(vxJ@VdbI{(AQ}0 zqsA|=IQ3`O%p7{D_Gq|#AzZ!SD*EZx)2+AG@Xnw>?f1Rhs?B{SR_Gi{*;Cx}+RGkE zGlxxT)I2x{Zs&npvL=k($ctKp(Qh){RrOhvCR$3Ub9pPD|#HjxhB*l-DIRdSifkBy@r)wk65w(R^se@dE`oHQ*|;?HZStfbFO zK>=+dIoUm2t<)QY)G(w62fM5VqoT1-72x|X`uBO>5!4<<&?moZQyrd=)WOlZ20SCS zOR9Fp#x9-{Awv@0eJLQw8ves8R0M-dbf_~FH)or;%B;pB9hZ0>;HfAKmh1WUie=W{ zu`}x0wd1ta<-Sy5w154~-c$Pv9ht8l3E^~{+!q-vEId+q#FZgQW}Le16YmsG+lE2g zz1LWM{m3)LirVsR#~PZd76}`fb9C5t*RaiO{-Q;i^Q%|<{@3#71+>>Z4>!gYWG&)a zBj^s((v>hNhO+iOB__}nRkgC%!)6=$$8Tj^s<-SI=RP&Tn0cTfGpNPsdxbMw@6^wZ zBPH*HlN&NlXGAf>Z%;Ra@~xaqO&4mh9RD8G00U3MB0f>z9M>h;u$Eo zP2aJ7>S8G`E7J6)o$H$o|+v&v9K8~}R5Qj`9 zab?bydy?R`sWy|UxGUdM6JHpB{V*}&OVbc|b!cM_9OIKEc=2bVK})yClAfnBH^)B3 zDfR8)231fD{VMlRdNP}`LJ@V{`5X!u^JXn=y^b#yzp$*c6*C4G;-60KPbXrr*qo%U zxXDPo@%Vy2v8MO(hlO2$?vpV?_h#phPX0j`draRvV$Uqeg-QkZ;WX4xRrQ#T4D|9i zLpWRQw~;BD_CU^EME^%7fzIswgC*mB5Tz=>a&NmZt-@0NVf+5-rQicmK;YKHo7Im> zh|B6c2*`env$oKFjg1t<+JKI$A@`2Zcd@8HP0P{65r!LaK}aA_N zBFA9)2=^$m7s;ZZs_bj%HwhNv{jM!~V3=YQBDi|k|8k>)4#NYXrL3wRbM28t=}CPz z+x}hF$#|85!&S5P<1&BV!!1xj-N;{d7ST@a!JP9;0sAXVP6KDrU%g=q6W0A8!Nc5l zFtKtA4Yss2j-LaD9b`elqJ2VvV(J18y(ffwvxh1ULk%A4MUN5W;iI{}YaOw$xb#zj zU%lORf#=%vT&2tNUE7VGf0VC8*cEtuN{)qLb9kInTF45U#HmpuMXFGY?NuXrD;qgk z1TP(bpG+N6%?t+ls@`%&17HL1I^+1{^@YLT278fZzX=5`*Zh9Mn5%CUHjxM-3E}gs zkvta!4z<(rtSr^l3$~U3Pc_Uy3beQ}3@GkbM@np<5Z5eB)a|qwX6I z7OzfQvGC{dkY@{)b-}UAvXy_e&tzEN4D^s+6>p4oqoMh2*yw%PxzZAH7G-p6?wtJi zlYRzi4ov{Tlg5a0iec(Yyd0KwZg>2U3%WL{XI^Rhyl7^LHb(aBj%7F||7S;m6B3Opdn2Qe1Y=Gng%Dgs{FB=@zdP-&=2n_&^5KJfhuMyrz6~0et=%Iyy{a? zAPmtVj46?n2Fg7`uk>61R1B7%w9*m)7MC|+ z9{?M?=P^`LE;!e#8E4iL<^Ad;a=h-+>b{(ulCi8n@ycPWh+@BX6}=7>Fl=;mbaz16 z!^Fm>TR8jH($P+0hT?T=?GlSB?)~lASQ`%%;!h{d(JELcAv=3}L0ZrKMGLL)*et=f k=Hvffk^gUg9JnNj1yPV+5I0~~D?dP2%TTlOp?&Co0GGrN&;S4c literal 3887 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 V=0ux^|9!v!BYji7N?o^@{{X~Apu7M8 diff --git a/test/reference/clip-stroke-unbounded.base.argb32.ref.png b/test/reference/clip-stroke-unbounded.base.argb32.ref.png index aea8cba7058b8d95682a7f2ecf1144641b2a0a29..de0d5892f6dabfb4f1f7811e2f073ff1b1f34a84 100644 GIT binary patch literal 3655 zcmaJ^XHXMNx26|ERUvfWP(%blN(e}k4ndF_K_GNgTIhr*(xeDT?_C0jRH>nbE-fHU znsjNQBOPg9-XGuG`{&--**!D6duE<<_Utp~`KYU-PJ4^(77-B=OvqcUnZO!q{g$Y7B8HJvTvDF*fe7zSq z`R71tdFq~FPO-7zZp6kYhaHyar9=keTNrVh60dK-h({`Ls)PKxi!3^o4;S&qT zQw7V}a!=D74eNiQV2f=Ix1_rtKCWdv$XNu;bN-g09>A}6ZEyN9pA7hx;oT3Wcl2!- zGqpRxfqGQk#BbOdt&L0JhG3s>@bJR+LF<$U%?FISy~ZbR-jLE`mh7m5q8Ln7cwr(S za8Cd{Jh{EV7Br>3$bT*yWMX^3P2z`WR#~(nb&ct8jO;7as5GvjiDtwy&<1O5#8@f} z;}AQi8t%Po&X11kl>Hdcfq>awvS_ka2Bu&e4UyMl9Mez3BKfKA&V*Z5sag}G+!z70 zOVxJz$?la?p#JB8jb&OL$~1S?{-T zg=nydy~OZ$gm%Ga<)m&#_U;3U{g4Go^EbAMyC+e%dr+TPg?ed>lN0gf$|X~hK{LIh zbA|spj(F@32k^CTHA1(5fGTr#g|Tsa+paP=n&J!Dxc=9Me8x&5>UUfQQ&sC#!xiP&DQSjwN zCi%%`dCvp4(#h0z11Z`a;VvK#BlEj>^7!wHjuv)8uRJI15~U^_FU9(B%MwErPHM3u zV&d(yTBP*kZTkVqOBJD;5g(++*{7rEAndw1R`=4T^wqehlo!da{2wPTkRjNTSUE-W zfqA0nWs<{yP=<3#k&A&D?BT`ZvD7du~!z^X+Tg7CdD1k)0Wgpizqi2VDzxvysm#1W6YHFi8`FqHc+{4YIJp#fnbbP$f7ZgOv%d7HG zODQN*`cTpLcbAX7_ekUGCRkqLDu1=DXEgxhGS~I3DzU(#erm*7?C( z>9gn9;>Em)-NLVC)y-Y7&Y|Eg^*Ba$rxSMequ>gBhc8v>P zIZ39>5|A@&&YB< z+1x@3u|>IlhkApEyu23TlD)H}yo#k2Yl5o)b}?L7>38+<@_s=%JY`VZFuXp%{f_K2 z;zWh7L6p->i8+>F0Q119I7T6emMr~3F5V*UJD_Y0su6pBZm<%~nPF#SR8U%>@Mvr6 zIj*=E+TeF_KP^Y$yU$LkUWJs`rqtp3jS1qEXC_$ADL(DM1^cPEZtPljE(%A1e=_>IzI8EzEL}Eg~z+C?u$3nSE|C7<> z>8vNUayjZo6#;6niuXD(Wa8C;!9tsAfQZ?CmHi+^D|mA{WJnH^8pf55#-vHNK3eL# zGo5R+*XYIm#$oij_kNj8I&nzEMs&u#TAG8fou|W7?o)r$F*0{DSHBpA+0Vb-^W(#| zD9~fhe{n%v^i`aFvF>&wv0tv{6J~0&|vm4F-^WIVE6%b}_m_Cy-IUk?VK4kS>uy@g**d2d8ykq339(2@oGpBz%`!)RXZjei zO3#5*NSyEArEN73N=W<(OL^(N^wr?YaCm|_ivXz5z#MyqqyrssJ=(@9SH_Z$%@6bm z(}aQ7US^n2m89I*8RNG*Dq3N(W^kXs{33Utd&8ewb)Blq%XeyWlg+2lVQc6V0&)jq z%sRm(HE~6O1IfDxzS-`Gh;YAaEa8+^G9$fUJ!1~Scju`-e^|F+L4aTdjacjRTeAfg z+l*UH6C$pWxLK(rWR8z7!fme;(UMXX$mL#q2Mf8kE319oG9;gtB^Re0*5BL9Qf?SJ z*W`0?{Q@WaOsffozLih~7_Z#SbaeK%LZN0bHiTy!%fec|EH(SA;Z?bZcn|9NL|4u$WG0X<=tRZ4N&( zFi6;*!Q{ZOS{99CNK*i?j@Chm;&KyG%)65~!wj0DIlQ~AJpK$a-ZfdKowh(IUdh~?>ElPe`X%~bRhI+z z)2BoHE>3K^qb}az*p7afoo#UF>zDJ3AZ~30OSrs3^{9W_6Cm(R#0 zJh%a}i;bb{6;2d?#r)0sJCx_DPPS=Sm;#cmfLj57O}u{*nvIS(f55LZU_VorRc{vB zQo0F|nw_f3u(f1#g>*kBo==us6HTtDx%=&xWq>&C4anz;K~`WvRkeZx{4g?02IJnx z7wT_~w*_vlTsDYrqr~1i?^?_w|5+qYIPQNlX8-Nox!4n*iOW=4zRYbU^j#pr>SUWl z?}d-7rQZjXoxVN-R*DSNOt_ym`n*gT4vo=%J&m>@DSPs)pyj$gQ{JypGsYFq{c12B z^gOc&QXPq+i8k^098BX-I;A%q3m~QcC8GY@U;K~4x~BA#?YMwP!#D`akVsQiN2OfJGUz|Z3LljK literal 3617 zcmaJ^cQ72@7S;(?^xkchs8LpLi(r#z5iJ(c5~9Uo{j>-Xy@yDIAnGEk#42mmARC1;dFjc>$N;7$hE^mS`ghaO zkWO`X&=|?kxZW~0B)j~(iZB(~B+n^RLw)Pex0?mw0qpza1G?dQ7F4fUKZ-ALQ2g<( z63;Z7?IdGSzREgCDK*1VCdrJrmNh}IVe^XxK^>7+qIB&!Gc$NALhrHnWk!-n$;ZXP z=e#DND$l%x6L~+MpBOvAUt!SmnE9dk5M8C$gIk;1M9lW))~5f{W@l46kvaugRL53y zT)iDlKL3zQwi}O6piJzYG>^K$dPb0XZnyY=;`GX%ZCf$WG%HiUGPS_bMf2NLy;29t zz(7fmTFs6kRN_I$g_u2QZ z)B>avjhP71ylaH)Kq;T|UGOp2eQ&+(Nw(`4FM=V}l#CQ6zw{))LxLqyh0c=_DqgjVf_y{gCJNz-n(NnNI2FYK%of6p&m`@0!%vGH+ zhR6qXvFucu(IODMwH{jxHuJMFZN2xE%GRs<;7R~$m#U8Q*dJv^by`<1l!!bM;UaI* zQ{KEyvjujQQ?S&xRZhN_>^vM1A|q(nGx`T0GhN+5jy` *W6#Cyr+ z!w-tMz#akARVFW&k4-z0KKYw01p_BAM2ai4eO(lsy#h&?n70oOM(Tao6ucNY~MOfVRyn> zXLoLNSaVWL`fd15+tpSTEGC#>W*Ft%6atzDG!ns+&I-ai33rSOsGZ7I>)!EMH<#tm zO;rysZsY+NgYGX+1XWt8xf<{akxR^>S_?s2R`Z26qIO77>@_Q`T)~9#`q?(JN#FkIjX3{gju*RvDCY^}rt7<9btS7UK_|+ut^d!Gq zsoza1X3tw?8Wwt@qxLrLHXbA4D7uj5Aj${*P5Eu?wFM0Kh^`zt`9LwXtASoP$hyml@X%)NPRSHWYK z_fhoIs_R1hEY-Ff!8_qjL$Gk)_lN2x84J~M7A)OiO+0g7$Th@Mf^THfd$t4{IoC67 zQTYYm-<1u}3)Xf>bRlszQp^(uO+Xq8^X!=BGS?hBoa%UeM0~jQH| zhJkBesUqb8{43;%g0j6r%99+7EC|&W9)XY~qHeE_T0O^CJy+dAw!O>Syq$j*lz~bb zJtp$cU2hJk6jHp2Xh+0P&xa=Y_Vn}K*UdIzK&0g)nxG@!%1D2HeEJyHZllGVB*8L z?A1Vmb(gfrUsBQr5IKH~({<^+aC2i-;QLJ0KlIYqxFp*8;y04K7r>;1aVhO435$v^ zGn8udb$s`ZGjKKg%Y_~vuXg}9p89=<`!RZJBd=7uX*c-QZLhMHXx}dLmq{uqbl7UY zt2Qvp&h**LQ2Iplvki`ewfl>aj#@u9)?Sh;xL*x1*}ZZXQ*LGNz~|M4zyChj&HQih*c&=FIZ&)aL*jdC+ri_qtP8yLIaG(e4M2{pd*YaG=o; zwW+x&>VW)duy-j|P*GN=VvB{<8M(9mGdkE{5%=Hq>;D$F|8d#CuwRP76d(}Sbxta? z@OW>tw*gkpPt(fFJ;`1$3EXyclwlLUEi5IK_*&_qg71v74`?|=xtO_Eqlj9wb-MM1 z!1sM@#ao?72X;=*giJBFNeGMB%}DL{YJCFEG06!nb*PjP&+HDp7-girmy6~b?z#fU_?P7YDPx+ zc6CK?`ed3K0=Vg8Q&WA=x}w*{RCD`DMfF0#=+`i%#=5g5a!Ok2NvJg10#I99>+a!U zDipD!f2cvZzW~FRN1+APMv6pwRp9E6V)vumFi|^`6}UJ-Qnbv>%q5QxOSri83cm-3 zy%OKsB;rqlcPxPPbn!wRve34#y^fmZK{_+eBaRX=`zBwzZZh65WHDd|xiWtxM0|Ta zXV4eEUdtWX5xL!#((I19XLz*P9kL$K;?5Ov*RdVic6kvuKNOh(m4w{7H8?zc4@(SC z<{spf!^M#)D=TMYD44bdmWkI6^UVD67`jTIz^bmUUQ+5FAD~fC(%NdTtg6aTF)jsx zKn%^y%nq9x!I&{zW2)Bq-nchfXikt&WLTPTIsw8r7c7{w?s#f?$?Q3KeHL`IwH>Im zTn0X(?9#tN0mt~7e0?%%!HUD#*Fe!}&!1Cu24g2C+E2_-k+{(gyJuhwMM)*{QuWD` zCy;Bu^P!bjm$IQp_-bTOKA$k!LQmJy+S+AD-eD;vbZ?2{A>@1>bctyUU5p{$5C4L^|t10*D zk1q6V!pG!G~t%p{_bKhABB&mn)6un*8(xn|o&yI|Y(4$(1 z&CTY29~6Gw<9&SiOO##?Q$iQF_Q{*31L_TcoVB(iNdS?U4VZ5=P z4Xva(S7b^VmeYc**36D^r(@?D8M3po+=r0%jSew3{+L?I2g9$bS2}@r@woEF^dAV7V6_BVW|3_exk z{2BGnfzPN{H;JVTk)(8|6L+qY-WF}_G@nQ=DEJe^70o@beN6|iM{OX z$a&qZI44{j*8VXDu_dF+;Wp&GUITBo5lHg#_vd=@MC>JAcIFKNQw!h=d!eC;uQ}jN-kOqj zbu&&nI0z}b7cYvo@CRo@A2s6aTI$w1U}TuMUIBJY?Ss9Km5(T^ZM1P1eo6GsGg?l> zaaA&@h>70&?TuQ=0OvwYA|tiMjKy2#*_bNfySn8UQrq3|HATNUwST|ioulQ>9R9RI z*yCuD?kTH~x;$_AE{bG^%>BWyp=z$5=yGN3Cona7+eut$t4dL4>D}NZ&cB zC(^Wp5=Dtbwz*Z0YO{P|dk(DZ3;0$Qx z;dY2Y2QA#{fKa0fW4mli(D^LKE^V_??=|izdk)eO(Rm?B!I==^B94kXd0 ztzDoUe((+Xu3Wwv4`5P8`8;Ibp$HI~F(>~p0xA?u9f#0!`zq*dmv^?#0vhfmH>T4wAoU6YEK}>jD#6EEd)A65U-sa+MeYB)JYAj zmN0DziHa%=I`DZva3Z{)G(ElKGqcBQZ*SkWcXvJG)tnof#^LWey(%WCmyZwoP_FFw zItvr!-$+l^$F6CkEBhDgRJcw)FUsNZctd^tVs6clm-wi30Zj-y=Y`n>7R&ctMJ4|C zho`-PZ&IxUUi=Jftwd+%hV>VjIH<@=ioUSqXD2??dh z6UMBptdxk9EDqm?fj#G37o7U8|8r9M&u3y+w~4wFsjx`>nKbi}nHrfHegM0~{0koN B4VnM| diff --git a/test/reference/clip-stroke-unbounded.base.rgb24.ref.png b/test/reference/clip-stroke-unbounded.base.rgb24.ref.png index 70cddacfaadad12816eab8c9fc4c2d2cbe19bbe6..7d204ee141b69283e0b158f40ac559d0d8242e36 100644 GIT binary patch literal 3135 zcmaJ^c{mhW8y};wHk4&TN%vL?CF^7-%P=vrB(ldHWUVZ5T?|QO8O#`B$TE{KUCW5c zc8x7%jAc|zmcf<57=()=zUkiY`}2O!dCqyC=lst5d*Amg?>Xm*ovkHUL{0<%0D$3E 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 diff --git a/test/reference/clip-stroke-unbounded.mask.argb32.ref.png b/test/reference/clip-stroke-unbounded.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..274feb6417a495a35ef4dfc849d8d394422e29a8 GIT binary patch literal 3991 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 uI*;sl9;IjHHmt#OzyF_;S($T8iiZ diff --git a/test/reference/clip-stroke.base.argb32.ref.png b/test/reference/clip-stroke.base.argb32.ref.png index 0a6342deda6e45c7747fe134801c6aa6c7758355..31ed15e32c453b0ae4ed0cf6f0b85c4e2fcd37d4 100644 GIT binary patch delta 1407 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 Rr91!t002ovPDHLkV1gg(_Ur%v literal 0 HcmV?d00001 diff --git a/test/reference/clip-stroke.mask.argb32.ref.png b/test/reference/clip-stroke.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..afa7fc0dccd7118ba6c0bcab1d47266fffbe6d00 GIT binary patch literal 1500 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 P00000NkvXXu0mjfjiJEP delta 1169 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 diff --git a/test/reference/clip-text.base.rgb24.ref.png b/test/reference/clip-text.base.rgb24.ref.png index eed421f3511f841aab48ec865fa7f56c1b93ae1c..e2b2ca7014af6f7f820df75ab1f402d325a9a08f 100644 GIT binary patch delta 880 zcmV-$1CRWJ2bl+uHh)e@L_t(YiLI7hNK9nFe}Df7kdzd=Zk^F;O(`o| z92ck4iiOzn(b^ioOk}E4cJ9oZ`mI`>iLuF-e zjvVnw(paxCYHh-Mn}COc5Uo^M>A8H_H=PzQT=0fMG&N;2^CxyX{nJcUaOslQ<@!3) z;Njs=P0c$kBYy~#m#1}fY!JmFQ7r1{*kH4zYG0NtQ(gUTWJHd60WvKAuVA~qv%C8d zEQd5erxR}7%GtYji7F^8Oe!o)+O}=MfdlSPXlyG#eiWTfe@qV;;3^!_tf=njFu0&} z{69dg-o5)A`r#^UhOIVRsy0={zI{vD+xu?Z=usJ`(|@nq4<&GNy!0M?2S9*?NehV( zfP2u_R}gj=0K0c5gd6fEC$}djKfZG1mBQ@WWdJu^Q{2yL}Df zD){}uFc%LL6quBo^74{EU?>n6tg5O|nB3fj&;|L5dte|ja`0Ceh2DrY=z>+S5!7u{ z5E~n->3>aej|p@-0S>}y#jV$`j~u)V5+K?*_yzL-Fq!6R=r3(;ua&F%`Uay>nm>Qe zv19cL^YrOk5LCCxG*_ptrNs*P79~|_%L6jx<{HE9Zunrgzf=S#PL%%maX1jLo;tNh zVa}av*1GfZ63K+MkO61lCZxe8kf($TERY4YwSRZUyVDyQ9Fz6euXn>TaD{)CbB}ht%*=R? zXG`SMX_|9;yDU4Meyg=}3h@L80uLVK7Z)#@>8!R`Qfh1eVeZw{Wfm7NLVG%CF~wOl z8EL0aXNjV8@uK&y%Bm`JW8(_tdKS)Oy9o#~x|c zzCeIrFywIfpFH{2+4=L+ClScVh|kYA78NbDSW+f@`uqWmPh)Ir)Vk2bR8Y4jjl>urK2mK98WZugvnCSMC|yX20g@IQH6j+Nw&P;x zIP^iPa59UT^Ph9ieazfD!Z81jgOa3vjKvaOZ`k7rkB!aE%zrEZ217x0b+Of|vs(4* z*5#?i!deBp-J$O8Krk51s1(H_r?bjtD^ZxdjJkh9JT7%~1e%*iv!wzP6F-`oMmstJ z@%U0-wMs2z-coR15VDoJx&oIkPv+9aOP7LzKu?d6)sNWi4&|6CqqjHc^@dj)9E&Bo zx&mrO5U|?~et-X-XtW_3ZSec|*zJat$!c#O|Mg4K`e6aY{|fHwdp$Y%07NJQG#a75 ze`iZesUoPW+gw+-v%Y@op+m2g)eQ!tUT;`C0fpd#w6^+3#*p|NmN_BAXF?C@cFlSgF6WYWVksFvMxbMef<^Y8_}WURp(Fn~FY*J_tO&P3vCid&K- zI0idpcYl8Vfy}|>PzaGM!SkR4prmBIijI0bFXX$kXU}ihGOyQfICI7!GmjpO+5H~fTR)quW3OAg!T zPcSdWD=UXSe*C-d3c~lcHsjHw+js3M2FAv|xm;5N12gLOM6qamd~fE{DaU>Lpd{V9 z7q;16tsqW^&sS?U>sGs0H#X|q+beR{cXn2o%{tVllNu|WMd@%ls|11G-e4}N7cNxE z_fu0OEaCIb`h4Nh(Qnh!3qV;} kfyq>CvFI%pUCOV|AMyrV*)6C{i2wiq07*qoM6N<$f~Q`kg#Z8m diff --git a/test/reference/clip-text.mask.argb32.ref.png b/test/reference/clip-text.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98484cdd46d9136a0992ae0a79b77c421bab9e0c GIT binary patch literal 918 zcmV;H18Mw;P)?AY{$di@uy> zL0wr?7kLxnO;Au4(l97W`(n}->jQ+qn_abF1}i9Z3Wm!XT6UzV+v(zLr=xCW>7R3P z&j0y8@Be+@=jC~iaPj}xC(GK;P$*)z_ck%{0)GE+dHLJ3XMN#t zbgoHiY{I@xz;huIg=%Vijg8&Ynd0^9{z!y|hFoU8Vy81OO;-gsZ~9%XFEceB8Ht=f z|6a=oK~+_z+r3?qiY2Mo?cQ#+W@tA{mN|Fs{phHi)DAMN`Y+>0kGeWLU%)EJ1avyl z(vpAZ&@xp}RAekFGVa~G=-4rDBoZys1-2GoU*P2jS9q>0|f?fPi_E29h8MkD;e0E0(<# zIB_ECYPa{MrM0D{y?pqvQ(>yBP2h#QN_Knu)A%*cf;t$35pYb3jzKMCKp+r`ajC$j zO$(Hd%E}|b;BYWFR9$UVn7lkAbU>k!Jvf*Y-}noRL0{Y$bijJp0czP4h(D)D&5jCm zIsuiiLCMzZx5YPJ3G*OPJNOC8(oCjg4gJ~U=~v!v-D)xz#KMKijg2;idGn?pgqm$K zCF|6&v{()O30#$F`9Ov(TMV)6PWX8B>T5+%Rh2t9cq$k?aQyg2g{iN9qRlQSm`@Jm zK{i~5X2^t{AWsPwSYQp$`_yxt#8O+EMT_iD$>$w~G3cE`V+rrEdm$+FWK zC@u9&A)Wvsc=oKYq-4oVd$q-qe(~Zz^u5~JoRX3yXm2MirnrkHqrQHPB!zF>@c&hL z=8UBdD^e0^%;uEV)`Dx-a`pP?l4k7>1PFy94oBeCtA3B? sdsmkPWM`)q78;6+7h5dp6MlVu15rF=q|qt~<^TWy07*qoM6N<$fR literal 0 HcmV?d00001 diff --git a/test/reference/clip-text.mask.rgb24.ref.png b/test/reference/clip-text.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..98484cdd46d9136a0992ae0a79b77c421bab9e0c GIT binary patch literal 918 zcmV;H18Mw;P)?AY{$di@uy> zL0wr?7kLxnO;Au4(l97W`(n}->jQ+qn_abF1}i9Z3Wm!XT6UzV+v(zLr=xCW>7R3P z&j0y8@Be+@=jC~iaPj}xC(GK;P$*)z_ck%{0)GE+dHLJ3XMN#t zbgoHiY{I@xz;huIg=%Vijg8&Ynd0^9{z!y|hFoU8Vy81OO;-gsZ~9%XFEceB8Ht=f z|6a=oK~+_z+r3?qiY2Mo?cQ#+W@tA{mN|Fs{phHi)DAMN`Y+>0kGeWLU%)EJ1avyl z(vpAZ&@xp}RAekFGVa~G=-4rDBoZys1-2GoU*P2jS9q>0|f?fPi_E29h8MkD;e0E0(<# zIB_ECYPa{MrM0D{y?pqvQ(>yBP2h#QN_Knu)A%*cf;t$35pYb3jzKMCKp+r`ajC$j zO$(Hd%E}|b;BYWFR9$UVn7lkAbU>k!Jvf*Y-}noRL0{Y$bijJp0czP4h(D)D&5jCm zIsuiiLCMzZx5YPJ3G*OPJNOC8(oCjg4gJ~U=~v!v-D)xz#KMKijg2;idGn?pgqm$K zCF|6&v{()O30#$F`9Ov(TMV)6PWX8B>T5+%Rh2t9cq$k?aQyg2g{iN9qRlQSm`@Jm zK{i~5X2^t{AWsPwSYQp$`_yxt#8O+EMT_iD$>$w~G3cE`V+rrEdm$+FWK zC@u9&A)Wvsc=oKYq-4oVd$q-qe(~Zz^u5~JoRX3yXm2MirnrkHqrQHPB!zF>@c&hL z=8UBdD^e0^%;uEV)`Dx-a`pP?l4k7>1PFy94oBeCtA3B? sdsmkPWM`)q78;6+7h5dp6MlVu15rF=q|qt~<^TWy07*qoM6N<$fR literal 0 HcmV?d00001 diff --git a/test/reference/clip-text.rgb24.ref.png b/test/reference/clip-text.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b013d939003c7db1fae44831008e059cc9f32b GIT binary patch literal 928 zcmV;R17G}!P)cJr`>m`UNiwGo=%t+RO8Jqr~5cH4_fx#3^L1i-wE{@uu+jON-XYM}S znafpY%+fFS;oRTv`#s;^Ip^{_SGf6p?3ZQjYd9S3?HzSGM?IcTlasSRR#xh+U52Wv zoSK?VX=yqwS*(_^!!dg5)EmElIw8|!O22sVr|RlWYDAZi_f3dIu7J-s zT~qVo_;GI}600>u%`Mos1$ZDtvQ%TE_xg4Ja!R~%#TSjz-d@bgSL|{Hmg%bC+BKis zJ+@NgnVIOxldrWAAvk(8Z*Xw8BvnXK#o*v>n=MznS+dND6R&4y<&>u&!?y1-?&ugA z9)1YhAP>;#M0a<|!GoJsg2j?$v1IMr_v4Wxo@g|7l<(e2E>|FB1k&La{H2*uJ<%C( zL-qVGK+WE}_Y@}K7W@u-ZMIyktBOO1HV+I;+`c`cMqI9d?l2sHGxMoE@DTt3nTsZp zAP7A$F=39Y%YnMO%y>b*?CgQ;>_<0lJXa!hbs6A+PDTCXNmt@C&WARbgBfrx%Fclu zav=~1$72~ldAU(}sjsgN2B(9;P*YQb5-Ba+058F;s6(M25*v@f9E>K+!AtlVeg*Z| z6r`r6Dg#+o)iHt)0{(;@idwI?BsSg(nUJg%Z7>#Q*;eY%3VjJ7ia?W6gu3w+l z+}x@}`uksjP}N4`8l5_q7TaMwiK|kU7i1_cHN@4!@b>1-XA0r;Y3tO~v0%`8_H3;Z zxpb*pt1c^BOCkIM1#kiGKpy-C@{(|a6^g)a@0qX8Z)tHX=680!hXQcNA8Tvt-{LOF zV2IZffe;*CM*I8%e}p4NMfd%FweLoR2-$2q8yfOUO4b4%&!>)#f4aIxwDT1fW_Z1O z65meC?A!Zg+2smURShjcUH~EJ>oZqYZd_@vwpw$Vo4=v&+3kgul^fCCPFgH+7cIv5 z^F@*rxq8+2Rc2F@sjY3hGG2xISg#lD?Zv&lWm~qSC*zn*=?+KP<;%r-eQZgq_6Gul z!%?R*@c8lg(9nM$K1e`8L5A6EsHoUrwdO4N_4yxTg=P2eO+||U0000{kyeO!v zE;KC^i$IqDZUZADERvG8X%QhrSFs>5FLF@L#EeZXqRdsxdAd06aM~YP>BG4==Xsy^ zd*1K+&UwEh2Kj#+mu2l^B(mu7gxv1X$jG;;sULvZoLO9)<$rJ(9S+l)H5pp5SS{oJ z{$OLHKM)8fRZ5b<sYXRIb3gck>k$!}az4XmqJoy&8*K zw>Uf$B2}oN!Qa_Ao=%A!9RVR|Yb#>qGw$yXrs=Any*=RZgjQ-Ci7YlW__d4>)YO=L zzOr!mSU7yl=YK1!sWHbbR$blL@87ci8OR|0m+|%MFUQ9pfdm#nrxU%syHA|RQw61^ z*`=ksj~?AzUHwYk-9RAh@r3kKupWBgjAlf2M^c# zDo&ovd;0YAjT@6HzYcCY0q9PMs!A&K5Xy{h*J>CMBVF4oGPKYkRMKD7!_$$U4fc^W;%0q3fb9#Dy zX6DJPivFOd5kx*a2k;yk5WbamsRhwh#iUVW*O<*B?l3 zoDUlyRewA94%qxB#bq}(-cQtbcfWN0}~T! z-;D|}S5>w1^yw{o_GAGgBVW6_CvV@L(vBxdhOx23$xo*=`}T2Je()gVbiQ0hoCvSC z#AY+Dv{#pxo9gQF)7PIrpKr4n(Vk9PEOQnm!sRLyg7)@6I-f6ElG(7zE!-pS$#ge&qZ?n delta 849 zcmV-X1Frmo2ZINYKYvS16Hyq2zoA71G`P^TNO1v^Kvyb-;KGHvAR(Hzp|F4u8y6aN z<$_n#y3oW_P`4(H#26qxQf&(w6Y;gPCKA*rT}X)mk`@~^A{ME(<6`JI^g*g{GK-n> zpL5TB%-lP|F#nH(lB9l&#S&g`*y9P0jm^!>EC2>WL3MSp)qkq9TJ`JJ<*CKOS_Qk^ zq3-TLFc{6K6vZN^v&v>GQJB1px_?4EE_HMSnwv+nr2-QZKbo3GJ30dK_)=fBN-bsH zQgB}ovX#2J0+%mO=F-JWmx6*oPmht+kJ#-F<(Mj?w>RkZhF2RLizT|c0%}GOu-grO z|DI^HAsTJ)`+xV??S_=eYHuI^^-I$FVFASd3hwKBJvsRRL?{C^8lk^`XG=?|BB-m| zTvxZVzJBYWL$8(94F;oLZ&*74h2VnYsuqN$efqhtZ%Sc&zHnX}G{X7i(kCFlpaN`6Yv>1jhJRZSiPR?DHGs`lC=2e~nbPY= zbh?LEufCL-rltaT2iIly$jFV%Yn*^{$q{?fs=uKd3Lz9)Omdrm-MbC)gWcXbJG=Pl z)7;6EM`Xri(!(>Tmfdr6@yx;V@CCkPtic;FfH{rVYL`CFMB;0TTaqL=20LVTe*S^X z!R1g0k$)_~^PmHuq-4E{j(R*Vuh(xlbH*Vvj~=~+e8s(O+lD-)Ej2`# z&XNjLz+3nYH8q=)?jXFscI~+=IDNV?5;+kHSsadLnYnUhQ0+FEHc<&Xpd6fV7pkBZ zq!lp?R?vaNaeKMj*x7kAUGH*zfN~g4Ue;5m27d%M{DflFfWAXZ4%_EXFfYa{D~CRQ z{JZZ8!uPf|T$6TvG!BGwSw4v1ojJZ|2h}$9?;tB;C6gw%J~-AWnzR zS8F!wR=Za>HtO5kD{|L&c2=0pI@G6=8Y`Sd>2Nx$1cBb(U@oZ_E>y|)Yj7TGG(u00 z(Msc~5yhfx8c{478mhf`(WucZ4Qb8(K!8{*;q%S{kyeO!v zE;KC^i$IqDZUZADERvG8X%QhrSFs>5FLF@L#EeZXqRdsxdAd06aM~YP>BG4==Xsy^ zd*1K+&UwEh2Kj#+mu2l^B(mu7gxv1X$jG;;sULvZoLO9)<$rJ(9S+l)H5pp5SS{oJ z{$OLHKM)8fRZ5b<sYXRIb3gck>k$!}az4XmqJoy&8*K zw>Uf$B2}oN!Qa_Ao=%A!9RVR|Yb#>qGw$yXrs=Any*=RZgjQ-Ci7YlW__d4>)YO=L zzOr!mSU7yl=YK1!sWHbbR$blL@87ci8OR|0m+|%MFUQ9pfdm#nrxU%syHA|RQw61^ z*`=ksj~?AzUHwYk-9RAh@r3kKupWBgjAlf2M^c# zDo&ovd;0YAjT@6HzYcCY0q9PMs!A&K5Xy{h*J>CMBVF4oGPKYkRMKD7!_$$U4fc^W;%0q3fb9#Dy zX6DJPivFOd5kx*a2k;yk5WbamsRhwh#iUVW*O<*B?l3 zoDUlyRewA94%qxB#bq}(-cQtbcfWN0}~T! z-;D|}S5>w1^yw{o_GAGgBVW6_CvV@L(vBxdhOx23$xo*=`}T2Je()gVbiQ0hoCvSC z#AY+Dv{#pxo9gQF)7PIrpKr4n(Vk9PEOQnm!sRLyg7)@6I-f6ElG(7zE!-pS$#ge&qZ?n delta 849 zcmV-X1Frmo2ZINYKYvS16Hyq2zoA71G`P^TNO1v^Kvyb-;KGHvAR(Hzp|F4u8y6aN z<$_n#y3oW_P`4(H#26qxQf&(w6Y;gPCKA*rT}X)mk`@~^A{ME(<6`JI^g*g{GK-n> zpL5TB%-lP|F#nH(lB9l&#S&g`*y9P0jm^!>EC2>WL3MSp)qkq9TJ`JJ<*CKOS_Qk^ zq3-TLFc{6K6vZN^v&v>GQJB1px_?4EE_HMSnwv+nr2-QZKbo3GJ30dK_)=fBN-bsH zQgB}ovX#2J0+%mO=F-JWmx6*oPmht+kJ#-F<(Mj?w>RkZhF2RLizT|c0%}GOu-grO z|DI^HAsTJ)`+xV??S_=eYHuI^^-I$FVFASd3hwKBJvsRRL?{C^8lk^`XG=?|BB-m| zTvxZVzJBYWL$8(94F;oLZ&*74h2VnYsuqN$efqhtZ%Sc&zHnX}G{X7i(kCFlpaN`6Yv>1jhJRZSiPR?DHGs`lC=2e~nbPY= zbh?LEufCL-rltaT2iIly$jFV%Yn*^{$q{?fs=uKd3Lz9)Omdrm-MbC)gWcXbJG=Pl z)7;6EM`Xri(!(>Tmfdr6@yx;V@CCkPtic;FfH{rVYL`CFMB;0TTaqL=20LVTe*S^X z!R1g0k$)_~^PmHuq-4E{j(R*Vuh(xlbH*Vvj~=~+e8s(O+lD-)Ej2`# z&XNjLz+3nYH8q=)?jXFscI~+=IDNV?5;+kHSsadLnYnUhQ0+FEHc<&Xpd6fV7pkBZ zq!lp?R?vaNaeKMj*x7kAUGH*zfN~g4Ue;5m27d%M{DflFfWAXZ4%_EXFfYa{D~CRQ z{JZZ8!uPf|T$6TvG!BGwSw4v1ojJZ|2h}$9?;tB;C6gw%J~-AWnzR zS8F!wR=Za>HtO5kD{|L&c2=0pI@G6=8Y`Sd>2Nx$1cBb(U@oZ_E>y|)Yj7TGG(u00 z(Msc~5yhfx8c{478mhf`(WucZ4Qb8(K!8{*;q%S5WCKyE^ zzJao%&g#}JfKWbY-$Lo}*yI;818U}j_93ujRN)W67HcEw7Jyy}WREKR3ABx{uHEfS zT{fWhUNAle5dbukAQK}Zc6>A;5IbRLBUJq3R>m$Guqy+^ejvkUg_}lb!lL8j`5ky2 z%Knhaay%{>P=A{V90aDgqi0D!h#WW81{VydnGf1wAW>b*5rbg71c4JOB8mp=d>nj7 zfT?Oa()59`2m+^N1r!YUGzk(;0FTORxWb+qQj&5YeZ6G&Id%$Bz9J7TS8! z382Jr8;-L=Z?uX?Nf{s*{7R|ww-Cahu5KU6$=7T|hnk$~OBhhz3ZgYyM0IsNiHXC` zrA=ha+Nq${2wgDwP!t5L?HWT)K3>nq(9%UVI=z zsekVS6-@;LYO=t{8ee+$>@;~v3(lQ;FhZ%370yKt1p|DQkxHAJpOTlfps8uDqg?DD zX+Y%B2WW1di>|xB5QIV+&CO;8$j<^v1I!&ie|{=^_B<~q8--wSF}=N$rE-df#8A~_ zf%Z$Zh?JB8y1L$T?R{WyZ~}AYywBy!R(}huzQpOCKw<{?UbTw2aA7h91!aUniVqoJ zWJIH&AYh~O09vk7eTfXk*LI=~9m-(ChI|Y|em&52!TR+Dw6r{7C)}``+h}Bu#0~;E zb|UZGkr+)-w!%>(NF9j*EI$QeEjDIQcXu+u;9?9z;P>|s7pF&!A0EDk?c0~KYJXKJ z9UYI@O(+DS$mwwyDBTOxeg?elq{irD@$~eo%$)fb5Z>XPKK-!lu{dCS0)abuEDrF+ z1o-y|Fi&2?724tYB6!Eyf9xg-%k&$=5LyHD%WEjp7ybZ4uJfS$GW6Cd&~pK)Ybiwr z!N^s)7X)Pk0LqVnSP1m0YuTm;jDLlyH^bnH0RW{ZL3r@uxy=Xz#P=XJ!Mbj@GmY^9)-FG2MWDA>cYHj-9N^{f_SXHc!y`OAJUl!+ gJUl!+JnnA(1D`o>=^Y9A)Bpeg07*qoM6N<$g7ZCVqW}N^ delta 1029 zcmV+g1p52V3aki_HGc!)Nkld zc`49z5CsGdv?O)A7Em;F=+MNOlxQI}caVVuh&C~cy>fOI23j&SfF{FGP^*KQICe~ZtmTI9dQkcfPJbRjE0Oedpma~oSDYmY z(Dh)Y4Kwfb+AM@wC%-XW2dp+&{#oBIcAz;aIMJd72yB?PfuFK%vV=%$_!%ZZ6YlI4 zkm!2~6rktAYydc7_V0v%oQ9ug7s{QYs-YkOdOpm8VqysqL%CLj2n7i6$s7NU1jM|a#JEqY%pk9x0oHu9g z#c_px{|0+|E=jT`nafEHT9Kp^pe(?XIxrBmcHJ>S(8qPhLiSO#PP6ID2$86c2MVu1 zU<1Ns=llDNMh}D=58!!+3Yxqynn3&wuq(g?-K-lnTEW_b;pcG z4?cQT7I5$1&XGc85NwDT-M{~oAm}TEKV>e$AEF}IF!g1hp&-EDojeQI9n)?qn znPZV(nSW_03Xoj|jmCjm$Q*3@Xh9XI^*(6L1k)AwyhHVnIo!PYQYse_Gz3^Y7AynD z`77nBdhdhwVn|(i71GBRy&NBaXb6zr`(e1D9x{i1|Atg9B7Z0fklp()UR+hpWg(NvWuj<36Rco=RhNK~DztyYeOS`{b=kpJ%Q?0m11OD0jYE+DE}6(|UhuXG$&*xbC!@$n`3 z@aGr~ud}&%SI~OJk&UnN3J5Lohr{c%TDKI!pAyFvTCE>Ng`B`8>0P50`Lv$K@U4fy z4u4P_S9tYm4bOYY>grpmr^IoETJ2|Ezy3TI zVz^V)381+cYDM!NxDb;04zV5uEQhy4uzsp&E=wgDLit(|+v5fO57>^u+Col*WL`a1 zQ_^o2%0EE!Si&ch3pgS}0#@hafve}ktWEa(;=g`G=0nmBNo6(sJZVDwZw^VFr|Ut< z11pjLRP}tAIdBp#^O&5$U@#aA27|$1_&oUsUbjHInbH~o00000NkvXXu0mjf2EF8B diff --git a/test/reference/clip-twice.base.argb32.ref.png b/test/reference/clip-twice.base.argb32.ref.png index ba621807725d0c01a9c7a759a56eee0d29f1fd4d..a3dcca4b4c3ebe083c9d6aa2500ca94d1ab94adc 100644 GIT binary patch delta 1304 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 delta 983 zcmV;|11S8f3H}F=HGc!MNklS*y z{CV?xvj&^@>2}}mz2EQqdvD&n-y1L(3;qj59bi@d#zO4CURQ zU08!K#n^@gsEiq}!f+DzlL#on0{oiP6qgYReUBk{;O7n^w*UvOXDx$oGDr!1oY%0H zZz}Q$s6aheM+E__pScflK-E;+%;ksrQIYpR*f3*5&32@-AT$3he z8f@5*cbL){eSZN8nMSS~)a&bui+-u}|1RYFj^~|y_RQ_~Gq?W=tV2&2ll&oeGZ&BR z2F<4Dx`D!`(A5eOO`y#mon{(df3@E9&ThYPI+D=|js>2WO|eUJ?)r zaG|JZZZx{hrk54g?pSWnZm*0lup}<3J?+U@&F4Mnxn zJ%j?DD?+(_drdaTK1!vq*=#9IGFIa^gnMELv+;w2WewZy70dc88zf4p6mD+XzV9S8 z_I8gU83<>9#7T(kl{t9uU{&re5xIa~d~dGT*TvnFv8-XE(Utg0LoR@LR;pF08wKaj zzsq!_Kz~bsMq=cYO52lo(Gq}GZiK|1B0U$n0)9M$LF9#{w=3uhxU6ZP&0uhB{~ryl z?pgxMW5xRqqu)OPlCH=f#f<8uKg{kdT-+Z%)ZQB{CQkJDqsGH6}qW zAR#NQRwc>32DMsRjUk-`p@7ts+`M^3=qXO8Q-4m^FP#LTfYf~WzB506V>HSxH6y%y zIX6FlLuqnC+4>#fY4i}dX>IS{pZxgIT3pnq#C_kndiD41?c?btLwGE?Vi5`m5|7j4 z0c~#D)#|&WN3&h}zH{NipIckgN~>4!RuY-~j^s0(R)_WI(Yc+S!kIH4rl!6o+VuN& zt$+5%(o!vJ$%WtvZ@Af4u_bxCyDxedb&7< uNK8#mIl%Srzq@$ip>+bnJz7ipoEU_UF$o=9ex3uUh{4m<&t;ucLK6VE791@A literal 0 HcmV?d00001 diff --git a/test/reference/clip-unbounded.egl.argb32.ref.png b/test/reference/clip-unbounded.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0b65905650f50bef156006d79882f09a95e7a828 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDxedb&7< uNK8#mIl%Srzq@$ip>+bnJz7ipoEU_UF$o=9ex3uUh{4m<&t;ucLK6VE791@A literal 0 HcmV?d00001 diff --git a/test/reference/clip-unbounded.mask.argb32.ref.png b/test/reference/clip-unbounded.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0b65905650f50bef156006d79882f09a95e7a828 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDxedb&7< uNK8#mIl%Srzq@$ip>+bnJz7ipoEU_UF$o=9ex3uUh{4m<&t;ucLK6VE791@A literal 0 HcmV?d00001 diff --git a/test/reference/clip-unbounded.mask.rgb24.ref.png b/test/reference/clip-unbounded.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2baf9f46422d499624133daabbc6de94468ea707 GIT binary patch literal 97 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 Y!D*>~atbp$FrXMbUHx3vIVCg!0K6BM?f?J) literal 0 HcmV?d00001 diff --git a/test/reference/clipped-group.base.argb32.ref.png b/test/reference/clipped-group.base.argb32.ref.png index 9855e619aefac8e7161df97d0128f400c1d1a694..bea4c751e57078f90a888feddbfef16f4059c377 100644 GIT binary patch delta 261 zcmdnPw1;Veef?UlLjeqJ56{k5;1HX9Fu{Z~>C$O~3eC9Y?Ft=bj&IydcU$>HZPAHv z2}~CdX*p=wB%l7lF0-KS+a{xPA8i;ICIr=8a@c?Q#kK6P>aWYXb4z|zR#uzrzw=Jb zxY(2VYS6|=&FH;bC;Wf&?eM3b`9E0qr$@bg&9Nx7BTO->HAA!x&RP^2BssTYL+m@g zn>{Z*KdV~B-#h=XwbSC?ySW!Kn&Xkm`g<%PR#?tku?6#T0gYzmSg wAahlxUi`o7wDg)LPk|`i`WdoE85z!1GhNV9LfL$p00i_>zopr0HWu2Z2$lO delta 261 zcmdnPw1;Veef@qe$3TYTAB+D=PT4erhi$RvNu~b84;u3hYI|(-mOIdKGd49T(J-QA z2b=54=;s>y&#ir*zN_@#o&55hbCY=(7(7-eDkLdey^W7}P)jnxc}t+JYEFOFmY w)J%{`f7kEcb5BX8HGBEfiBBVC7#{3aKOt`_>^Do9p8*IwUHx3vIVCg!0Q;JFHvj+t diff --git a/test/reference/clipped-group.base.rgb24.ref.png b/test/reference/clipped-group.base.rgb24.ref.png index 9855e619aefac8e7161df97d0128f400c1d1a694..bea4c751e57078f90a888feddbfef16f4059c377 100644 GIT binary patch delta 261 zcmdnPw1;Veef?UlLjeqJ56{k5;1HX9Fu{Z~>C$O~3eC9Y?Ft=bj&IydcU$>HZPAHv z2}~CdX*p=wB%l7lF0-KS+a{xPA8i;ICIr=8a@c?Q#kK6P>aWYXb4z|zR#uzrzw=Jb zxY(2VYS6|=&FH;bC;Wf&?eM3b`9E0qr$@bg&9Nx7BTO->HAA!x&RP^2BssTYL+m@g zn>{Z*KdV~B-#h=XwbSC?ySW!Kn&Xkm`g<%PR#?tku?6#T0gYzmSg wAahlxUi`o7wDg)LPk|`i`WdoE85z!1GhNV9LfL$p00i_>zopr0HWu2Z2$lO delta 261 zcmdnPw1;Veef@qe$3TYTAB+D=PT4erhi$RvNu~b84;u3hYI|(-mOIdKGd49T(J-QA z2b=54=;s>y&#ir*zN_@#o&55hbCY=(7(7-eDkLdey^W7}P)jnxc}t+JYEFOFmY w)J%{`f7kEcb5BX8HGBEfiBBVC7#{3aKOt`_>^Do9p8*IwUHx3vIVCg!0Q;JFHvj+t diff --git a/test/reference/clipped-group.egl.argb32.ref.png b/test/reference/clipped-group.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..032ff2f61220e7d3aacc182d66b7fa7124445b9a GIT binary patch literal 469 zcmV;`0V@89P);6bPMNy?!>~~|d%L`O%!%2}`|J&v5boSOg`yvlO`}oZN9au~kw#%EX zdyCCX?J|xro^K)+HV%_b=bMOyjl*QqxqtCgFKJXUX)jA5L~c#`D6wLMpjQ3 z$B>N1w>LIs9deL4{xM{U$kDC|M?JTc2yD{WQTCD7O7xdT>{nJ9mGufY*k3$)pi|Q0 zJl$zwvuw-~-L=b{9ovg0{C}`s{72og15fqhja2TiGBPlnSSft{z}?X2yY8B-Ev>eX z-nX`Xef!^gz9osXAH-LdOe?pX z_2!b#eeM2ppEjL-dcHM7bWvzWm|_$XV`_|>{A-jA5L~c#`D6wLMpjQ3 z$B>N1w>LIs9deL4{xM{U$kDC|M?JTc2yD{WQTCD7O7xdT>{nJ9mGufY*k3$)pi|Q0 zJl$zwvuw-~-L=b{9ovg0{C}`s{72og15fqhja2TiGBPlnSSft{z}?X2yY8B-Ev>eX z-nX`Xef!^gz9osXAH-LdOe?pX z_2!b#eeM2ppEjL-dcHM7bWvzWm|_$XV`_|>{A-jA5L~c#`D6wLMs80R z$B>N1w>LIs9SV?Wdl+#Ffb@AH3~GhDmUlfs(m@`?egg- zvp!ef&AqqnRp{kUzmGrPe!g_h$($>_r;b)Gjxn;`I^p*Fuv7D6Y^<%F-|m-jD|_eNzp?zw<>S|-NA3Gj=KGo9Uue_0Pp|ei zzW!aPCR{RYdS^{zd(h89#i-T{(M6#hVMq+ssTYr1oqpYa?C{GoTkdc(UAAFRSXsy5 Y!D*>~atbp$FrXMbUHx3vIVCg!0K6BM?f?J) literal 0 HcmV?d00001 diff --git a/test/reference/clipped-surface.argb32.ref.png b/test/reference/clipped-surface.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8b0083eb062b8fbe91b58c55693ed3582c704a GIT binary patch literal 345 zcmV-f0jBYD`mBbs^i>4Wb z%Kqn3kOYc}`;_kF4tT%=9`Jw%Jm3M}p~{}{>&sgrC6OdVf&?TZNIgA29tAJU>gf_d zNhAm`5t&)c{?6`#uea}rAnBO`%*-P)!epgxblwGjeqHBzjYtoaQcqQx;mE3DwlO`s z;P;Qu*1EfiOx#3TNuY?z><7X>^D1NkTkESw08=%gl~ZXwj)ZTkK*@W0TU-*{sZtQ` zejw~?_sq-rp|?ISEo2kyZ1m2J_wIz(h^bUNslqOSrFW%TI-1+oI_Tr;$svjqLa>4tT%={&(;%Tf2pv(Jzov00000NkvXXu0mjfcjlSo literal 0 HcmV?d00001 diff --git a/test/reference/clipped-surface.egl.argb32.ref.png b/test/reference/clipped-surface.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d1ee90bc0aeeac2784c8aecb17046195fe7cebc7 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_cZPZ!6K zh}O4f8F?8PIG7c-)~EM=JnP6_CkSp00i_ I>zopr0QJ%%y#N3J literal 0 HcmV?d00001 diff --git a/test/reference/clipped-surface.mask.argb32.ref.png b/test/reference/clipped-surface.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8b0083eb062b8fbe91b58c55693ed3582c704a GIT binary patch literal 345 zcmV-f0jBYD`mBbs^i>4Wb z%Kqn3kOYc}`;_kF4tT%=9`Jw%Jm3M}p~{}{>&sgrC6OdVf&?TZNIgA29tAJU>gf_d zNhAm`5t&)c{?6`#uea}rAnBO`%*-P)!epgxblwGjeqHBzjYtoaQcqQx;mE3DwlO`s z;P;Qu*1EfiOx#3TNuY?z><7X>^D1NkTkESw08=%gl~ZXwj)ZTkK*@W0TU-*{sZtQ` zejw~?_sq-rp|?ISEo2kyZ1m2J_wIz(h^bUNslqOSrFW%TI-1+oI_Tr;$svjqLa>4tT%={&(;%Tf2pv(Jzov00000NkvXXu0mjfcjlSo literal 0 HcmV?d00001 diff --git a/test/reference/clipped-surface.mask.rgb24.ref.png b/test/reference/clipped-surface.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8b0083eb062b8fbe91b58c55693ed3582c704a GIT binary patch literal 345 zcmV-f0jBYD`mBbs^i>4Wb z%Kqn3kOYc}`;_kF4tT%=9`Jw%Jm3M}p~{}{>&sgrC6OdVf&?TZNIgA29tAJU>gf_d zNhAm`5t&)c{?6`#uea}rAnBO`%*-P)!epgxblwGjeqHBzjYtoaQcqQx;mE3DwlO`s z;P;Qu*1EfiOx#3TNuY?z><7X>^D1NkTkESw08=%gl~ZXwj)ZTkK*@W0TU-*{sZtQ` zejw~?_sq-rp|?ISEo2kyZ1m2J_wIz(h^bUNslqOSrFW%TI-1+oI_Tr;$svjqLa>4tT%={&(;%Tf2pv(Jzov00000NkvXXu0mjfcjlSo literal 0 HcmV?d00001 diff --git a/test/reference/clipped-surface.rgb24.ref.png b/test/reference/clipped-surface.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e8b0083eb062b8fbe91b58c55693ed3582c704a GIT binary patch literal 345 zcmV-f0jBYD`mBbs^i>4Wb z%Kqn3kOYc}`;_kF4tT%=9`Jw%Jm3M}p~{}{>&sgrC6OdVf&?TZNIgA29tAJU>gf_d zNhAm`5t&)c{?6`#uea}rAnBO`%*-P)!epgxblwGjeqHBzjYtoaQcqQx;mE3DwlO`s z;P;Qu*1EfiOx#3TNuY?z><7X>^D1NkTkESw08=%gl~ZXwj)ZTkK*@W0TU-*{sZtQ` zejw~?_sq-rp|?ISEo2kyZ1m2J_wIz(h^bUNslqOSrFW%TI-1+oI_Tr;$svjqLa>4tT%={&(;%Tf2pv(Jzov00000NkvXXu0mjfcjlSo literal 0 HcmV?d00001 diff --git a/test/reference/close-path-current-point.argb32.ref.png b/test/reference/close-path-current-point.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3124b79b6d1dc44303977004c014c1bf1ab1a3 GIT binary patch literal 2324 zcmZuzdpy(KAODhE7AYi`BBhHTQW|O)$!$WpPZ;r#J7teFmLBqRkJPNi5HrekZgX2C z6bsvUl*>pinPG%2w>*1(fBjz1>v^5`Iq%mwe|%oAbI$v`-zWK|t%U?g0R#Ym1kBRZ zp3esSJ}xTAAB#qvO86w~eci$o*!#N`P)eQwfM^fQ^r~Z2?h@Y9(!ujsdz;nueLCLa zNHyQ#T(=EQ$w2-A@^H&ElcC-_(%zs!}~tI_w6-XU--38@h~6 z9Tyi~ii~#Z`C1{CVtk@Hnim=~EM+fkvhviy!2wL}^E)6UI9juC8gEt1!MytNhK>*=R?pdlw2HsSG)w%QYrPNt_*D!o>Pd<)0 zJS;0N?1W-#^`-2tOkIOz4MnlFY_wA-B+{$yu|xcFXCBLJ=spH-wtOMHAlngYQ*1ye zMYESPGCAj>6)hp;FQ)Itj2Wt)Bp5Wz2lic4w`Wy18@#y|K%h_zan^oNB~Zd*r2cM< z_vL_MZ)p=%7$p4bqr6FXkZ~${wih#A0;fov#ao}DAgUO(pA-!rnh{b>zKcOxQ|5sj$HL0-QOIhPwlCi|GnS3XhoBk{_DCaVEVU^69I*z zV{nEko;*cJe!88MAgx%J0SA)~ZzlyxDOP5bYLiG?Nej}7r5UAaB)hGoThfY!8A+Dq zvC4Ud##i?OXs-{8Ol}VYD2W26MjnQ<^)c*9r^wGta)izt|}+$4Tm7 zqCNytz(9B2!{FX6cwA*sv0B)&PiZ&LnX*0JU0K>dVW0s8wpFB*r7#H7B zbg@Z)lsVT$d_G~{O;UxSHh;{rKUbll`KmA{Cnwp|F27p*m58~HgahkVHV@8GbIeXY zm6Ml$T~+1MYwzh9%O0*UJ!zMX^vygdBxq=8=vdj-HaWfeGY0CK?d!_jjFD6_m}j$# z29%&Njn98w9U)+`*qodkf%d8J*4RA+tD3JGTB^0Crsl)8wobxn*oW!Wco9j#_GIa^ z!=FDNP}ZRSSe^bLP*7H;zSbcTmqkcSOcZGMt0l2L5?nnzig`AQ^73k@wGg+meYbj} zdCT~%QgYa&U^{nd%*Dlp{(6Z;*Ya8@`Qkl5An9?u@Mh87LEYo2M-2H z5LCd&L=dCj*8~7`NI+priz3i5bpfJd50OfysSD`n=-l!l2agB>uN^^Hg>c4GO9Gk9 z^YbFQ7>)#40Z=HDUGi<5FyYkTrdQQdcJg98BCd zeO=T}&7=KAVb3=IQUNdW*u}Sx59u(>($y9yZ4Y;?B;Ws(GD)#20~1Tv5eS6vqlO0E zG%XcEb=?`C6os&@%AwKG6nH(d0aCDL4rZVv^60pJWP!-c(A$se#C$^q1qE8s zD!ZxrfyrJ)S=lwou6n!YP0Dx28bappM%^dFDM5jOwD|c3W%_U0uPkUGM&5VsoQ1fr zAAUemi$4DkljTpNSQrdO8|5#k#hjev@V2R?g#w*N6E`A3m5!_cW&Y zXFf46l9rYZHUxD|h5K(1U0#H56v|{+pLsSoIJj@$zTo#aLqe9mem&ul6SsnZ!%GXm zcwrpRV~NGWy?9Yjrr)1$lu^cGw%n&`;q@iTo!R^#+u4bkyNzT$9$O;r&8DHknvsPD z468ve6bizT3T&{P$a$OzJo@W?MBogO;T`n1Hs;S9(03VjpJt1Jh-$#dt} zoUpmqs+S0!YEULEu6)UWi$yJ3lna&f9i{W(zemdd;>Fv+YEJ}uW7O46Ix?02%>iI$ Lwx*RPUU7c`;T@!& literal 0 HcmV?d00001 diff --git a/test/reference/close-path-current-point.egl.argb32.ref.png b/test/reference/close-path-current-point.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5f3da89d399ae1bc4903a95096986460eab2ac GIT binary patch literal 2378 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 Lwx*RPUU7c`;T@!& literal 0 HcmV?d00001 diff --git a/test/reference/close-path-current-point.mask.rgb24.ref.png b/test/reference/close-path-current-point.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3124b79b6d1dc44303977004c014c1bf1ab1a3 GIT binary patch literal 2324 zcmZuzdpy(KAODhE7AYi`BBhHTQW|O)$!$WpPZ;r#J7teFmLBqRkJPNi5HrekZgX2C z6bsvUl*>pinPG%2w>*1(fBjz1>v^5`Iq%mwe|%oAbI$v`-zWK|t%U?g0R#Ym1kBRZ zp3esSJ}xTAAB#qvO86w~eci$o*!#N`P)eQwfM^fQ^r~Z2?h@Y9(!ujsdz;nueLCLa zNHyQ#T(=EQ$w2-A@^H&ElcC-_(%zs!}~tI_w6-XU--38@h~6 z9Tyi~ii~#Z`C1{CVtk@Hnim=~EM+fkvhviy!2wL}^E)6UI9juC8gEt1!MytNhK>*=R?pdlw2HsSG)w%QYrPNt_*D!o>Pd<)0 zJS;0N?1W-#^`-2tOkIOz4MnlFY_wA-B+{$yu|xcFXCBLJ=spH-wtOMHAlngYQ*1ye zMYESPGCAj>6)hp;FQ)Itj2Wt)Bp5Wz2lic4w`Wy18@#y|K%h_zan^oNB~Zd*r2cM< z_vL_MZ)p=%7$p4bqr6FXkZ~${wih#A0;fov#ao}DAgUO(pA-!rnh{b>zKcOxQ|5sj$HL0-QOIhPwlCi|GnS3XhoBk{_DCaVEVU^69I*z zV{nEko;*cJe!88MAgx%J0SA)~ZzlyxDOP5bYLiG?Nej}7r5UAaB)hGoThfY!8A+Dq zvC4Ud##i?OXs-{8Ol}VYD2W26MjnQ<^)c*9r^wGta)izt|}+$4Tm7 zqCNytz(9B2!{FX6cwA*sv0B)&PiZ&LnX*0JU0K>dVW0s8wpFB*r7#H7B zbg@Z)lsVT$d_G~{O;UxSHh;{rKUbll`KmA{Cnwp|F27p*m58~HgahkVHV@8GbIeXY zm6Ml$T~+1MYwzh9%O0*UJ!zMX^vygdBxq=8=vdj-HaWfeGY0CK?d!_jjFD6_m}j$# z29%&Njn98w9U)+`*qodkf%d8J*4RA+tD3JGTB^0Crsl)8wobxn*oW!Wco9j#_GIa^ z!=FDNP}ZRSSe^bLP*7H;zSbcTmqkcSOcZGMt0l2L5?nnzig`AQ^73k@wGg+meYbj} zdCT~%QgYa&U^{nd%*Dlp{(6Z;*Ya8@`Qkl5An9?u@Mh87LEYo2M-2H z5LCd&L=dCj*8~7`NI+priz3i5bpfJd50OfysSD`n=-l!l2agB>uN^^Hg>c4GO9Gk9 z^YbFQ7>)#40Z=HDUGi<5FyYkTrdQQdcJg98BCd zeO=T}&7=KAVb3=IQUNdW*u}Sx59u(>($y9yZ4Y;?B;Ws(GD)#20~1Tv5eS6vqlO0E zG%XcEb=?`C6os&@%AwKG6nH(d0aCDL4rZVv^60pJWP!-c(A$se#C$^q1qE8s zD!ZxrfyrJ)S=lwou6n!YP0Dx28bappM%^dFDM5jOwD|c3W%_U0uPkUGM&5VsoQ1fr zAAUemi$4DkljTpNSQrdO8|5#k#hjev@V2R?g#w*N6E`A3m5!_cW&Y zXFf46l9rYZHUxD|h5K(1U0#H56v|{+pLsSoIJj@$zTo#aLqe9mem&ul6SsnZ!%GXm zcwrpRV~NGWy?9Yjrr)1$lu^cGw%n&`;q@iTo!R^#+u4bkyNzT$9$O;r&8DHknvsPD z468ve6bizT3T&{P$a$OzJo@W?MBogO;T`n1Hs;S9(03VjpJt1Jh-$#dt} zoUpmqs+S0!YEULEu6)UWi$yJ3lna&f9i{W(zemdd;>Fv+YEJ}uW7O46Ix?02%>iI$ Lwx*RPUU7c`;T@!& literal 0 HcmV?d00001 diff --git a/test/reference/close-path-current-point.rgb24.ref.png b/test/reference/close-path-current-point.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3124b79b6d1dc44303977004c014c1bf1ab1a3 GIT binary patch literal 2324 zcmZuzdpy(KAODhE7AYi`BBhHTQW|O)$!$WpPZ;r#J7teFmLBqRkJPNi5HrekZgX2C z6bsvUl*>pinPG%2w>*1(fBjz1>v^5`Iq%mwe|%oAbI$v`-zWK|t%U?g0R#Ym1kBRZ zp3esSJ}xTAAB#qvO86w~eci$o*!#N`P)eQwfM^fQ^r~Z2?h@Y9(!ujsdz;nueLCLa zNHyQ#T(=EQ$w2-A@^H&ElcC-_(%zs!}~tI_w6-XU--38@h~6 z9Tyi~ii~#Z`C1{CVtk@Hnim=~EM+fkvhviy!2wL}^E)6UI9juC8gEt1!MytNhK>*=R?pdlw2HsSG)w%QYrPNt_*D!o>Pd<)0 zJS;0N?1W-#^`-2tOkIOz4MnlFY_wA-B+{$yu|xcFXCBLJ=spH-wtOMHAlngYQ*1ye zMYESPGCAj>6)hp;FQ)Itj2Wt)Bp5Wz2lic4w`Wy18@#y|K%h_zan^oNB~Zd*r2cM< z_vL_MZ)p=%7$p4bqr6FXkZ~${wih#A0;fov#ao}DAgUO(pA-!rnh{b>zKcOxQ|5sj$HL0-QOIhPwlCi|GnS3XhoBk{_DCaVEVU^69I*z zV{nEko;*cJe!88MAgx%J0SA)~ZzlyxDOP5bYLiG?Nej}7r5UAaB)hGoThfY!8A+Dq zvC4Ud##i?OXs-{8Ol}VYD2W26MjnQ<^)c*9r^wGta)izt|}+$4Tm7 zqCNytz(9B2!{FX6cwA*sv0B)&PiZ&LnX*0JU0K>dVW0s8wpFB*r7#H7B zbg@Z)lsVT$d_G~{O;UxSHh;{rKUbll`KmA{Cnwp|F27p*m58~HgahkVHV@8GbIeXY zm6Ml$T~+1MYwzh9%O0*UJ!zMX^vygdBxq=8=vdj-HaWfeGY0CK?d!_jjFD6_m}j$# z29%&Njn98w9U)+`*qodkf%d8J*4RA+tD3JGTB^0Crsl)8wobxn*oW!Wco9j#_GIa^ z!=FDNP}ZRSSe^bLP*7H;zSbcTmqkcSOcZGMt0l2L5?nnzig`AQ^73k@wGg+meYbj} zdCT~%QgYa&U^{nd%*Dlp{(6Z;*Ya8@`Qkl5An9?u@Mh87LEYo2M-2H z5LCd&L=dCj*8~7`NI+priz3i5bpfJd50OfysSD`n=-l!l2agB>uN^^Hg>c4GO9Gk9 z^YbFQ7>)#40Z=HDUGi<5FyYkTrdQQdcJg98BCd zeO=T}&7=KAVb3=IQUNdW*u}Sx59u(>($y9yZ4Y;?B;Ws(GD)#20~1Tv5eS6vqlO0E zG%XcEb=?`C6os&@%AwKG6nH(d0aCDL4rZVv^60pJWP!-c(A$se#C$^q1qE8s zD!ZxrfyrJ)S=lwou6n!YP0Dx28bappM%^dFDM5jOwD|c3W%_U0uPkUGM&5VsoQ1fr zAAUemi$4DkljTpNSQrdO8|5#k#hjev@V2R?g#w*N6E`A3m5!_cW&Y zXFf46l9rYZHUxD|h5K(1U0#H56v|{+pLsSoIJj@$zTo#aLqe9mem&ul6SsnZ!%GXm zcwrpRV~NGWy?9Yjrr)1$lu^cGw%n&`;q@iTo!R^#+u4bkyNzT$9$O;r&8DHknvsPD z468ve6bizT3T&{P$a$OzJo@W?MBogO;T`n1Hs;S9(03VjpJt1Jh-$#dt} zoUpmqs+S0!YEULEu6)UWi$yJ3lna&f9i{W(zemdd;>Fv+YEJ}uW7O46Ix?02%>iI$ Lwx*RPUU7c`;T@!& literal 0 HcmV?d00001 diff --git a/test/reference/close-path.argb32.ref.png b/test/reference/close-path.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5506ff8bdb3106d64cae6138ff2d5c545926355a GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!2~3KB)#GTQfx`y?k)`fL2$v|<&%LTw>@1P zLo9mVPBG+bRuE~sttWBi2+Q*0yf%$S#w!c-Y&+To7YC}_o_&3xH7WDb!rV(=w^r=Zw~4zK4%&3rF;6*p1N7fR;`jqX1K8JEi=>FFSY(08_PKr zk4bzSDN@J}z2t1mp(6wl>LSOQH1>azHzez_D?W|K2 zk4)6)Iut(V`OeLgQfG4Cyl!|b!0YW@1D^K854IOiJG&jpy}jic&;wDgYwy?I&6hmB qQODa$GkHzsEaie@|Kq>p9u&=Wb2>UF%Ig_W6@#a%pUXO@geCwt342cf literal 0 HcmV?d00001 diff --git a/test/reference/close-path.egl.argb32.ref.png b/test/reference/close-path.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b61675a962206b9df178f6d150c38d13906064b4 GIT binary patch literal 303 zcmV+~0nq-5P)ox zq@ih5wO#th_}SmFm7Edr^h;fSTKz8#=6P01an3pCN~vX8p65@~R8}989#d{cLqX;BT*EEFFDV1=OoKA7qYKoj0wZgj#5g8VepOU?Ik1PwryH#00023 z^}g@E>Nkz!Se7NFlrh#c%@H_%IO3Q3zpvu!x&k7~Mab2aglGT&002ovPDHLkV1lix Be1QM} literal 0 HcmV?d00001 diff --git a/test/reference/close-path.mask.argb32.ref.png b/test/reference/close-path.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5506ff8bdb3106d64cae6138ff2d5c545926355a GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!2~3KB)#GTQfx`y?k)`fL2$v|<&%LTw>@1P zLo9mVPBG+bRuE~sttWBi2+Q*0yf%$S#w!c-Y&+To7YC}_o_&3xH7WDb!rV(=w^r=Zw~4zK4%&3rF;6*p1N7fR;`jqX1K8JEi=>FFSY(08_PKr zk4bzSDN@J}z2t1mp(6wl>LSOQH1>azHzez_D?W|K2 zk4)6)Iut(V`OeLgQfG4Cyl!|b!0YW@1D^K854IOiJG&jpy}jic&;wDgYwy?I&6hmB qQODa$GkHzsEaie@|Kq>p9u&=Wb2>UF%Ig_W6@#a%pUXO@geCwt342cf literal 0 HcmV?d00001 diff --git a/test/reference/close-path.mask.rgb24.ref.png b/test/reference/close-path.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5506ff8bdb3106d64cae6138ff2d5c545926355a GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!2~3KB)#GTQfx`y?k)`fL2$v|<&%LTw>@1P zLo9mVPBG+bRuE~sttWBi2+Q*0yf%$S#w!c-Y&+To7YC}_o_&3xH7WDb!rV(=w^r=Zw~4zK4%&3rF;6*p1N7fR;`jqX1K8JEi=>FFSY(08_PKr zk4bzSDN@J}z2t1mp(6wl>LSOQH1>azHzez_D?W|K2 zk4)6)Iut(V`OeLgQfG4Cyl!|b!0YW@1D^K854IOiJG&jpy}jic&;wDgYwy?I&6hmB qQODa$GkHzsEaie@|Kq>p9u&=Wb2>UF%Ig_W6@#a%pUXO@geCwt342cf literal 0 HcmV?d00001 diff --git a/test/reference/close-path.rgb24.ref.png b/test/reference/close-path.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5506ff8bdb3106d64cae6138ff2d5c545926355a GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et!2~3KB)#GTQfx`y?k)`fL2$v|<&%LTw>@1P zLo9mVPBG+bRuE~sttWBi2+Q*0yf%$S#w!c-Y&+To7YC}_o_&3xH7WDb!rV(=w^r=Zw~4zK4%&3rF;6*p1N7fR;`jqX1K8JEi=>FFSY(08_PKr zk4bzSDN@J}z2t1mp(6wl>LSOQH1>azHzez_D?W|K2 zk4)6)Iut(V`OeLgQfG4Cyl!|b!0YW@1D^K854IOiJG&jpy}jic&;wDgYwy?I&6hmB qQODa$GkHzsEaie@|Kq>p9u&=Wb2>UF%Ig_W6@#a%pUXO@geCwt342cf literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over-repeat.argb32.ref.png b/test/reference/composite-integer-translate-over-repeat.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c425749882ce8fcc6ddeb6697093d363678f73d9 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^DIm literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over-repeat.egl.argb32.ref.png b/test/reference/composite-integer-translate-over-repeat.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c425749882ce8fcc6ddeb6697093d363678f73d9 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^DIm literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png b/test/reference/composite-integer-translate-over-repeat.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c425749882ce8fcc6ddeb6697093d363678f73d9 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^DIm literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png b/test/reference/composite-integer-translate-over-repeat.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c425749882ce8fcc6ddeb6697093d363678f73d9 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^DIm literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over-repeat.rgb24.ref.png b/test/reference/composite-integer-translate-over-repeat.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c425749882ce8fcc6ddeb6697093d363678f73d9 GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^DIm literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over.argb32.ref.png b/test/reference/composite-integer-translate-over.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac3ddf4c35f198be2ada7e1173fc1326cbcbbf8 GIT binary patch literal 13998 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 literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-over.mask.argb32.ref.png b/test/reference/composite-integer-translate-over.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac3ddf4c35f198be2ada7e1173fc1326cbcbbf8 GIT binary patch literal 13998 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 literal 0 HcmV?d00001 diff --git a/test/reference/composite-integer-translate-source.mask.argb32.ref.png b/test/reference/composite-integer-translate-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7ac3ddf4c35f198be2ada7e1173fc1326cbcbbf8 GIT binary patch literal 13998 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 N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.base.argb32.ref.png b/test/reference/copy-disjoint.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.base.rgb24.ref.png b/test/reference/copy-disjoint.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.egl.argb32.ref.png b/test/reference/copy-disjoint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.mask.argb32.ref.png b/test/reference/copy-disjoint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.mask.rgb24.ref.png b/test/reference/copy-disjoint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.ref.png b/test/reference/copy-disjoint.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.rgb24.ref.png b/test/reference/copy-disjoint.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.traps.argb32.ref.png b/test/reference/copy-disjoint.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-disjoint.traps.rgb24.ref.png b/test/reference/copy-disjoint.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/copy-path.argb32.ref.png b/test/reference/copy-path.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b50e9e47bf3390bdd1b78a6166332aa68966a4f9 GIT binary patch literal 616 zcmV-u0+;=XP)LSq)#8FU?4vf-8Uc=|)$KjXk*j5`g`zuyM9tL4b6sT>?tl^=&OMhIz| zCW@jcikhbRzW>xH;JjYCxS%vmr_*UUHJi=SG^J-*a%{I-QV=0jAIEq+CIu&xNqrmu z08+5m>(R4KotJmi@Apa8U@)kU!*$&sSa&h(M^ok&W1MB#ZnslaRS*P05L8t~2xVDT z8RROzyB__;d3i@IM_!Eg{Z6M7MUiQmilQirVwz?YMNfgSo!j+#T~4{KTNz}@aX1`E z!Q=5*ABSaGq@ZP4^>Ij&L<&lhM9;FE7s_o^-XTkl;c!T@Mx#-E9E-)`2i9E-`+*xW zw>O1hXc&ep%d#vRh7pG0GpTmp&#UFgtEn9CpZ9&=hY<2S&+|Nl@E6YeNs^Gx4M~#F zvn)9_n++-Gd0u@S5JFNALRcRM<-897pl2)QrEvADwdFX@w(axze7RgIYD@n;UUCc1 zrQ7Z9_xqa_$MIwR+uE|^@I3FU>p0HCS}vDgt#WNya%5R%+xEka|xZI|B=eUJm^YYPC-bv+1zZ(mcj|4;L33detrA%d?Yw3EmH00006*=EMNzQ5A~`mj4b2E4Y>#6+9@C7I$)r6F007Ns z7zW!bYrlM=e!ovE4F-euIFclJqx6u#e8|$b2%)kpx7)4fd8TQars;Vegs?12u2JPa zyB+<-e)&Wl2QINs%8${}jM4*&oFbo+gZ{^fq(FbtZp*XyypoPMcX&5kWO z4OLYai$$L2*XxxNTlV{?Rjqs%P16pC!@YDqpP%DD##SUpC8x{f@>z=G_r1U;ss=e2 zXHo0*x;oU{cd519G{}MQ*y_5@IHv0UPjSh@@dbM0g`?B1e#8I(002ovPDHLkV1fZa B3B>>a literal 0 HcmV?d00001 diff --git a/test/reference/copy-path.mask.argb32.ref.png b/test/reference/copy-path.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b50e9e47bf3390bdd1b78a6166332aa68966a4f9 GIT binary patch literal 616 zcmV-u0+;=XP)LSq)#8FU?4vf-8Uc=|)$KjXk*j5`g`zuyM9tL4b6sT>?tl^=&OMhIz| zCW@jcikhbRzW>xH;JjYCxS%vmr_*UUHJi=SG^J-*a%{I-QV=0jAIEq+CIu&xNqrmu z08+5m>(R4KotJmi@Apa8U@)kU!*$&sSa&h(M^ok&W1MB#ZnslaRS*P05L8t~2xVDT z8RROzyB__;d3i@IM_!Eg{Z6M7MUiQmilQirVwz?YMNfgSo!j+#T~4{KTNz}@aX1`E z!Q=5*ABSaGq@ZP4^>Ij&L<&lhM9;FE7s_o^-XTkl;c!T@Mx#-E9E-)`2i9E-`+*xW zw>O1hXc&ep%d#vRh7pG0GpTmp&#UFgtEn9CpZ9&=hY<2S&+|Nl@E6YeNs^Gx4M~#F zvn)9_n++-Gd0u@S5JFNALRcRM<-897pl2)QrEvADwdFX@w(axze7RgIYD@n;UUCc1 zrQ7Z9_xqa_$MIwR+uE|^@I3FU>p0HCS}vDgt#WNya%5R%+xEka|xZI|B=eUJm^YYPC-bv+1zZ(mcj|4;L33detrA%d?Yw3EmH0000LSq)#8FU?4vf-8Uc=|)$KjXk*j5`g`zuyM9tL4b6sT>?tl^=&OMhIz| zCW@jcikhbRzW>xH;JjYCxS%vmr_*UUHJi=SG^J-*a%{I-QV=0jAIEq+CIu&xNqrmu z08+5m>(R4KotJmi@Apa8U@)kU!*$&sSa&h(M^ok&W1MB#ZnslaRS*P05L8t~2xVDT z8RROzyB__;d3i@IM_!Eg{Z6M7MUiQmilQirVwz?YMNfgSo!j+#T~4{KTNz}@aX1`E z!Q=5*ABSaGq@ZP4^>Ij&L<&lhM9;FE7s_o^-XTkl;c!T@Mx#-E9E-)`2i9E-`+*xW zw>O1hXc&ep%d#vRh7pG0GpTmp&#UFgtEn9CpZ9&=hY<2S&+|Nl@E6YeNs^Gx4M~#F zvn)9_n++-Gd0u@S5JFNALRcRM<-897pl2)QrEvADwdFX@w(axze7RgIYD@n;UUCc1 zrQ7Z9_xqa_$MIwR+uE|^@I3FU>p0HCS}vDgt#WNya%5R%+xEka|xZI|B=eUJm^YYPC-bv+1zZ(mcj|4;L33detrA%d?Yw3EmH0000LSq)#8FU?4vf-8Uc=|)$KjXk*j5`g`zuyM9tL4b6sT>?tl^=&OMhIz| zCW@jcikhbRzW>xH;JjYCxS%vmr_*UUHJi=SG^J-*a%{I-QV=0jAIEq+CIu&xNqrmu z08+5m>(R4KotJmi@Apa8U@)kU!*$&sSa&h(M^ok&W1MB#ZnslaRS*P05L8t~2xVDT z8RROzyB__;d3i@IM_!Eg{Z6M7MUiQmilQirVwz?YMNfgSo!j+#T~4{KTNz}@aX1`E z!Q=5*ABSaGq@ZP4^>Ij&L<&lhM9;FE7s_o^-XTkl;c!T@Mx#-E9E-)`2i9E-`+*xW zw>O1hXc&ep%d#vRh7pG0GpTmp&#UFgtEn9CpZ9&=hY<2S&+|Nl@E6YeNs^Gx4M~#F zvn)9_n++-Gd0u@S5JFNALRcRM<-897pl2)QrEvADwdFX@w(axze7RgIYD@n;UUCc1 zrQ7Z9_xqa_$MIwR+uE|^@I3FU>p0HCS}vDgt#WNya%5R%+xEka|xZI|B=eUJm^YYPC-bv+1zZ(mcj|4;L33detrA%d?Yw3EmH00008|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png-stream.egl.argb32.ref.png b/test/reference/create-from-png-stream.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png-stream.mask.argb32.ref.png b/test/reference/create-from-png-stream.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png-stream.mask.rgb24.ref.png b/test/reference/create-from-png-stream.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png-stream.rgb24.ref.png b/test/reference/create-from-png-stream.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.argb32.ref.png b/test/reference/create-from-png.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.egl.argb32.ref.png b/test/reference/create-from-png.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..21465ce4a73fac0cf69f0fe07a36ff4c716c8c3e GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14Xz!T^vI= eW+o>%urV<3F)(hN^$N&fVDNPHb6Mw<&;$S*a}=)t literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.mask.argb32.ref.png b/test/reference/create-from-png.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.mask.rgb24.ref.png b/test/reference/create-from-png.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.rgb24.ref.png b/test/reference/create-from-png.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.traps.argb32.ref.png b/test/reference/create-from-png.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/create-from-png.traps.rgb24.ref.png b/test/reference/create-from-png.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/culled-glyphs.argb32.ref.png b/test/reference/culled-glyphs.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6701295be9e648c207a73f8694296e551193ff4f GIT binary patch literal 440 zcmV;p0Z0CcP)0F4?|t3^p@PD6FsZc&f)JtxiD>c*i1Z;G9NL72 z#%32c$EH3+U!aE6z&#>viCSS&`P5g-}Kvdl0H#+c+Z9*=pRzu)gk>AEgOQ7w4CdB3oe(-5W@5MoQF%LQqm%8UM`ono%{WM zx7&^5I6ry2-5v}EX?eX~E0xL{yxD930II6Gu6w)P_WQkQnn`3?764#ApPx=A-}hx% zMhLyZgb>@dS(Z%(gAl5!nnugzlBVe-Vp(>*UPF@mByk)&j`Mgtn$0G|Fxe;w0>^O* ig+iy(K?wZ-|6bn(N+e>p!%>m|0000io literal 0 HcmV?d00001 diff --git a/test/reference/culled-glyphs.base.argb32.ref.png b/test/reference/culled-glyphs.base.argb32.ref.png index 08aad331919c7264ff68a7eb6eca84e57860afe3..6701295be9e648c207a73f8694296e551193ff4f 100644 GIT binary patch delta 396 zcmV;70dxMd1Goc_Hh*nNL_t(IjqQ{%tAbDz$M1dK0-=J!bTFy42!arz28n3$3yAa~ z930w&hQ?+WH^-(vL|>qW)WAI=Zi|(n+&2hj_=ZQ@gZJOg|IhDm&KV9Qgn&==^)dMm z|7F^9`##E&hkwIiI2_jNb;B?OK{y_d zyWK7&CzFXNil%7>L9kdXMxzlR8OgHDFbu|+|9t;L)dA(jMmC75u*=zs+s;auKd%NBC`@LzJNn}|T0AN0! zpH3&=_hnf|2))6C5Zks{mQ4nO5UQ%0M$6@rrs*VNS$4f%Lz4R>aU462^LRX(%_hSz q*(eAC$8idULZ{O~2>k&6Uf%^uBx1M2QIY@v002ovP6b4+LSTZlKfwY3 delta 390 zcmV;10eSwo1G58=Hh*YIL_t(IjqQ{%tAbD%hL5)^B!~yZ?Wnjk6_hUF(kwz-i(B9i za42Z@2e{UcXl!fiA4EbzN0e0V!xO7zl!ZF(wrmhJg@zJRbQN1VODXndQ}vqdYB|hZnv8#ibYeBq!$b!tk>&N6jfmeAx+a5#bHR%YU+J?M|oD?RKBz<#ORTt^}`ED*%9HSwRq_Y3lp_Y&OfI`Fsulm`o<8 z(`mooo2E(AbO|PeEEWrdP+p9pD9f^*(R4axSvHRlLd)fnBJVy)7=}?4$+9d6LebB% kY`fhu43ppWJ^V}k01T-l7rYuiB>(^b07*qoM6N<$f)}K`kpKVy diff --git a/test/reference/culled-glyphs.base.rgb24.ref.png b/test/reference/culled-glyphs.base.rgb24.ref.png index 08aad331919c7264ff68a7eb6eca84e57860afe3..6701295be9e648c207a73f8694296e551193ff4f 100644 GIT binary patch delta 396 zcmV;70dxMd1Goc_Hh*nNL_t(IjqQ{%tAbDz$M1dK0-=J!bTFy42!arz28n3$3yAa~ z930w&hQ?+WH^-(vL|>qW)WAI=Zi|(n+&2hj_=ZQ@gZJOg|IhDm&KV9Qgn&==^)dMm z|7F^9`##E&hkwIiI2_jNb;B?OK{y_d zyWK7&CzFXNil%7>L9kdXMxzlR8OgHDFbu|+|9t;L)dA(jMmC75u*=zs+s;auKd%NBC`@LzJNn}|T0AN0! zpH3&=_hnf|2))6C5Zks{mQ4nO5UQ%0M$6@rrs*VNS$4f%Lz4R>aU462^LRX(%_hSz q*(eAC$8idULZ{O~2>k&6Uf%^uBx1M2QIY@v002ovP6b4+LSTZlKfwY3 delta 390 zcmV;10eSwo1G58=Hh*YIL_t(IjqQ{%tAbD%hL5)^B!~yZ?Wnjk6_hUF(kwz-i(B9i za42Z@2e{UcXl!fiA4EbzN0e0V!xO7zl!ZF(wrmhJg@zJRbQN1VODXndQ}vqdYB|hZnv8#ibYeBq!$b!tk>&N6jfmeAx+a5#bHR%YU+J?M|oD?RKBz<#ORTt^}`ED*%9HSwRq_Y3lp_Y&OfI`Fsulm`o<8 z(`mooo2E(AbO|PeEEWrdP+p9pD9f^*(R4axSvHRlLd)fnBJVy)7=}?4$+9d6LebB% kY`fhu43ppWJ^V}k01T-l7rYuiB>(^b07*qoM6N<$f)}K`kpKVy diff --git a/test/reference/culled-glyphs.mask.argb32.ref.png b/test/reference/culled-glyphs.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6701295be9e648c207a73f8694296e551193ff4f GIT binary patch literal 440 zcmV;p0Z0CcP)0F4?|t3^p@PD6FsZc&f)JtxiD>c*i1Z;G9NL72 z#%32c$EH3+U!aE6z&#>viCSS&`P5g-}Kvdl0H#+c+Z9*=pRzu)gk>AEgOQ7w4CdB3oe(-5W@5MoQF%LQqm%8UM`ono%{WM zx7&^5I6ry2-5v}EX?eX~E0xL{yxD930II6Gu6w)P_WQkQnn`3?764#ApPx=A-}hx% zMhLyZgb>@dS(Z%(gAl5!nnugzlBVe-Vp(>*UPF@mByk)&j`Mgtn$0G|Fxe;w0>^O* ig+iy(K?wZ-|6bn(N+e>p!%>m|0000io literal 0 HcmV?d00001 diff --git a/test/reference/culled-glyphs.mask.rgb24.ref.png b/test/reference/culled-glyphs.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6701295be9e648c207a73f8694296e551193ff4f GIT binary patch literal 440 zcmV;p0Z0CcP)0F4?|t3^p@PD6FsZc&f)JtxiD>c*i1Z;G9NL72 z#%32c$EH3+U!aE6z&#>viCSS&`P5g-}Kvdl0H#+c+Z9*=pRzu)gk>AEgOQ7w4CdB3oe(-5W@5MoQF%LQqm%8UM`ono%{WM zx7&^5I6ry2-5v}EX?eX~E0xL{yxD930II6Gu6w)P_WQkQnn`3?764#ApPx=A-}hx% zMhLyZgb>@dS(Z%(gAl5!nnugzlBVe-Vp(>*UPF@mByk)&j`Mgtn$0G|Fxe;w0>^O* ig+iy(K?wZ-|6bn(N+e>p!%>m|0000io literal 0 HcmV?d00001 diff --git a/test/reference/culled-glyphs.rgb24.ref.png b/test/reference/culled-glyphs.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6701295be9e648c207a73f8694296e551193ff4f GIT binary patch literal 440 zcmV;p0Z0CcP)0F4?|t3^p@PD6FsZc&f)JtxiD>c*i1Z;G9NL72 z#%32c$EH3+U!aE6z&#>viCSS&`P5g-}Kvdl0H#+c+Z9*=pRzu)gk>AEgOQ7w4CdB3oe(-5W@5MoQF%LQqm%8UM`ono%{WM zx7&^5I6ry2-5v}EX?eX~E0xL{yxD930II6Gu6w)P_WQkQnn`3?764#ApPx=A-}hx% zMhLyZgb>@dS(Z%(gAl5!nnugzlBVe-Vp(>*UPF@mByk)&j`Mgtn$0G|Fxe;w0>^O* ig+iy(K?wZ-|6bn(N+e>p!%>m|0000io literal 0 HcmV?d00001 diff --git a/test/reference/culled-glyphs.traps.argb32.ref.png b/test/reference/culled-glyphs.traps.argb32.ref.png index 08aad331919c7264ff68a7eb6eca84e57860afe3..6701295be9e648c207a73f8694296e551193ff4f 100644 GIT binary patch delta 396 zcmV;70dxMd1Goc_Hh*nNL_t(IjqQ{%tAbDz$M1dK0-=J!bTFy42!arz28n3$3yAa~ z930w&hQ?+WH^-(vL|>qW)WAI=Zi|(n+&2hj_=ZQ@gZJOg|IhDm&KV9Qgn&==^)dMm z|7F^9`##E&hkwIiI2_jNb;B?OK{y_d zyWK7&CzFXNil%7>L9kdXMxzlR8OgHDFbu|+|9t;L)dA(jMmC75u*=zs+s;auKd%NBC`@LzJNn}|T0AN0! zpH3&=_hnf|2))6C5Zks{mQ4nO5UQ%0M$6@rrs*VNS$4f%Lz4R>aU462^LRX(%_hSz q*(eAC$8idULZ{O~2>k&6Uf%^uBx1M2QIY@v002ovP6b4+LSTZlKfwY3 delta 390 zcmV;10eSwo1G58=Hh*YIL_t(IjqQ{%tAbD%hL5)^B!~yZ?Wnjk6_hUF(kwz-i(B9i za42Z@2e{UcXl!fiA4EbzN0e0V!xO7zl!ZF(wrmhJg@zJRbQN1VODXndQ}vqdYB|hZnv8#ibYeBq!$b!tk>&N6jfmeAx+a5#bHR%YU+J?M|oD?RKBz<#ORTt^}`ED*%9HSwRq_Y3lp_Y&OfI`Fsulm`o<8 z(`mooo2E(AbO|PeEEWrdP+p9pD9f^*(R4axSvHRlLd)fnBJVy)7=}?4$+9d6LebB% kY`fhu43ppWJ^V}k01T-l7rYuiB>(^b07*qoM6N<$f)}K`kpKVy diff --git a/test/reference/culled-glyphs.traps.rgb24.ref.png b/test/reference/culled-glyphs.traps.rgb24.ref.png index 08aad331919c7264ff68a7eb6eca84e57860afe3..6701295be9e648c207a73f8694296e551193ff4f 100644 GIT binary patch delta 396 zcmV;70dxMd1Goc_Hh*nNL_t(IjqQ{%tAbDz$M1dK0-=J!bTFy42!arz28n3$3yAa~ z930w&hQ?+WH^-(vL|>qW)WAI=Zi|(n+&2hj_=ZQ@gZJOg|IhDm&KV9Qgn&==^)dMm z|7F^9`##E&hkwIiI2_jNb;B?OK{y_d zyWK7&CzFXNil%7>L9kdXMxzlR8OgHDFbu|+|9t;L)dA(jMmC75u*=zs+s;auKd%NBC`@LzJNn}|T0AN0! zpH3&=_hnf|2))6C5Zks{mQ4nO5UQ%0M$6@rrs*VNS$4f%Lz4R>aU462^LRX(%_hSz q*(eAC$8idULZ{O~2>k&6Uf%^uBx1M2QIY@v002ovP6b4+LSTZlKfwY3 delta 390 zcmV;10eSwo1G58=Hh*YIL_t(IjqQ{%tAbD%hL5)^B!~yZ?Wnjk6_hUF(kwz-i(B9i za42Z@2e{UcXl!fiA4EbzN0e0V!xO7zl!ZF(wrmhJg@zJRbQN1VODXndQ}vqdYB|hZnv8#ibYeBq!$b!tk>&N6jfmeAx+a5#bHR%YU+J?M|oD?RKBz<#ORTt^}`ED*%9HSwRq_Y3lp_Y&OfI`Fsulm`o<8 z(`mooo2E(AbO|PeEEWrdP+p9pD9f^*(R4axSvHRlLd)fnBJVy)7=}?4$+9d6LebB% kY`fhu43ppWJ^V}k01T-l7rYuiB>(^b07*qoM6N<$f)}K`kpKVy diff --git a/test/reference/curve-to-as-line-to.argb32.ref.png b/test/reference/curve-to-as-line-to.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2411832ee9706abc4d81cdbc09db3d0f18856b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^azM<=!2~4lI-gz(q}Y|gW!U_%O?XxlssJ= zLnNjq|M~ylp1HSS+cvXapR^?lSD$1P6BGL(df~!VhAwR`6&)}0T|m_gp00i_>zopr E06*6uvH$=8 literal 0 HcmV?d00001 diff --git a/test/reference/curve-to-as-line-to.egl.argb32.ref.png b/test/reference/curve-to-as-line-to.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2411832ee9706abc4d81cdbc09db3d0f18856b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^azM<=!2~4lI-gz(q}Y|gW!U_%O?XxlssJ= zLnNjq|M~ylp1HSS+cvXapR^?lSD$1P6BGL(df~!VhAwR`6&)}0T|m_gp00i_>zopr E06*6uvH$=8 literal 0 HcmV?d00001 diff --git a/test/reference/curve-to-as-line-to.mask.argb32.ref.png b/test/reference/curve-to-as-line-to.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2411832ee9706abc4d81cdbc09db3d0f18856b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^azM<=!2~4lI-gz(q}Y|gW!U_%O?XxlssJ= zLnNjq|M~ylp1HSS+cvXapR^?lSD$1P6BGL(df~!VhAwR`6&)}0T|m_gp00i_>zopr E06*6uvH$=8 literal 0 HcmV?d00001 diff --git a/test/reference/curve-to-as-line-to.mask.rgb24.ref.png b/test/reference/curve-to-as-line-to.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2411832ee9706abc4d81cdbc09db3d0f18856b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^azM<=!2~4lI-gz(q}Y|gW!U_%O?XxlssJ= zLnNjq|M~ylp1HSS+cvXapR^?lSD$1P6BGL(df~!VhAwR`6&)}0T|m_gp00i_>zopr E06*6uvH$=8 literal 0 HcmV?d00001 diff --git a/test/reference/curve-to-as-line-to.rgb24.ref.png b/test/reference/curve-to-as-line-to.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2411832ee9706abc4d81cdbc09db3d0f18856b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^azM<=!2~4lI-gz(q}Y|gW!U_%O?XxlssJ= zLnNjq|M~ylp1HSS+cvXapR^?lSD$1P6BGL(df~!VhAwR`6&)}0T|m_gp00i_>zopr E06*6uvH$=8 literal 0 HcmV?d00001 diff --git a/test/reference/dash-caps-joins.argb32.ref.png b/test/reference/dash-caps-joins.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b09b86fcec409f8c299fc0d43afa8a4c6d62eb8b GIT binary patch literal 5157 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 OqceaT=~e35NBsx9nGoLq literal 0 HcmV?d00001 diff --git a/test/reference/dash-caps-joins.egl.argb32.ref.png b/test/reference/dash-caps-joins.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc97c71748504906182092bf8a5ca568e710725 GIT binary patch literal 5273 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 P8X5FphR{-Nn`i$8x*1oH literal 0 HcmV?d00001 diff --git a/test/reference/dash-caps-joins.mask.argb32.ref.png b/test/reference/dash-caps-joins.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b09b86fcec409f8c299fc0d43afa8a4c6d62eb8b GIT binary patch literal 5157 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 OqceaT=~e35NBsx9nGoLq literal 0 HcmV?d00001 diff --git a/test/reference/dash-caps-joins.mask.rgb24.ref.png b/test/reference/dash-caps-joins.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b09b86fcec409f8c299fc0d43afa8a4c6d62eb8b GIT binary patch literal 5157 zcmb7|c|26@+rZI7$TpU2BbkU8I~iL_CL>R_iW&P7l0C8;A=_XwsX?}EkE~-bWSv2l zj4fi2CCZj9Bzu0R-}Be|{_%c3?>V1y?(2{1y07cp%XNRRlVD<`&(12uN=HY>Zh+7; z1KLI4dBe;Aywh0XvVn%l(NJHH?)1<7rlmNQj*e&2K<~!Apse+5D-YgL(Qa2acQ@p4 zwRqhqZ_r9Ki=u7HEn!l);;XvX0&J}UmH~M$ZP)IU)=h6;Pf&v(x8S%+6|EEjE*?>Z z>$2BO3iS#YS;pe)USAbYY451}ym6qDbn2T<^&WU4w|by;C3|-77`+s>x0W@Lp)B?+ z1%mr4&e>M-A}&QtR)$4jxcbG@|1D(P>aruf#P_Szd49$l6}JrNUL3B@=o%U_Q4#95 zr`@KyT+CRvberfCkG7GK%_Kf3buV&O&PejFsP%|VjjV)UXnVo5hZ)Gxwz9El30R*b zxzo%oEOIpiv5>J8ChSWaXw1vlBHf!eZ)#-!li0cDnvX>GiW%e=$R6y{>~v0k-p#tu zQ0#y&JQ#h>h3Wp9XM!MbvBoquHu^{_bqg`a=$@RM_!IZdLe|=ag@r|A+Kq3qLUe@rPel>q0%xpiKC;3(y9>46^ zU-iD-jDwL|q(Vtmb#!{##@f2PPJhngn=o~3Y;1C++`8d$KmcBDjB-xC`MSue6#SEV zm3xAcLqbdum{nZk@c3Xyo_xF=zBgU0dTZ&A-6K&gL!&I%4Uw|qckj|Q#!NA9{dk8+ zdKv$^dLhzJbU+j53%_taFg3+}wSSu)9xDoTd=J;lZx;rbwQ-*_Z0kw1<|-;GqS&c< zj6W@Ly2h=8w|H~Q*m%%TzU95tyo4STzvM!y3L9mqx}czdidTq<+dxf28&EeN(Y_wO(4-;HvH z#_-y}6ZG;cD(>tkg3lR(I{zJ`>|i?T#qJoaPMexO1ZQGwWNB%Mh+x@HIX&DyhwNWI zRngX-{`k?<*7o;u!SgOh;?|b0MKw=Pw`hd5g+=j9r~(Wokl4xKCmN-hnr`7(11Nlhf7N+4FN9`)|^a40Ka* z=)8uS*Hq8oU_BTefh86=bBbs@s9)Pz7gzy#p+*VUHbI_(4{VofYisE^e&o43P#Ms> z2Lf*Kr1BZUjTO)t<7)@v9t^&f&J7a7FY@xlvJ%@M(ot68sq>i`IR*O9g^q>vXxFxT zE@7Rfrl$JBljcVFG=K~24!UPb2X$YfQ5voaCC?`*&SKWQ?!0d};QFV&p1&Bp!Pn-A zGuY}i;9Ro+X+y9?B5`faBTI1+rc7UdSz{(_IbO0dMi`Ph{~{$vG~!rMQu1uE{;$p1 z!ImeWwTYUueo3D{e{QJVr<~y&SKay&%~`!#Pa-*(zhCuZuGhWXnUgG-b>WJPOjG#L z)wIR&rVih{Xq~QNqwMWENFOrIhH8d0#VGP=e(}!5U@%RAo7;~PiJA)h8td!purtR) zH#vi?K4mG6Z~o-<-a;6%P9lFJn1L>(RiCmX`8w< zb%GghjP}oqR;C%&>~iraXJ?5(GNf*UE~l-! zDb>&pmyw?j@s`PtkC8FsT}Y73u|NK9U(zGBpxg0%DgA3mqM6Xy?gZ*S-wacj=o|->cu{0zP^z|uh)au^Dnf8{& zs?UF*yY$Q`TjRc^WohLMD=Vvpre?$bXa|PPl^MTuhKGkICMKq^Oc7t6WcEOR$36X$ zEqhfjFta~@)=t~;^Yas|8*~plzdOKRyVH|P&vG^3TXIidK{Q|6b%3{gp3*NaE(!?? zcg$5u11=61((IV>^IKc5>61&pG~u0ej%d{*BO{@E8+_qvrEf4BQw>fHXLa4(WsKlZ z<3it(hhAO-Kjc$WQ{BhP70+E&RV8kg#Al4^{5KeZ#rj$F-TJC>0)andFX;{Db!O(e zO5pnB0<23_RW)FaL?UfiJjk)z{gMRgEL=`L>n6uz&hzt=cIX=wTYcuD7AkyD zD3p_vlbpq0M|?F9Eb3sOnu+ZAi&+&S{U>636r)pRQEO+WHyqew5)u;F1(^AJMVScH z*f2pl%33BrKU2-Sy;>Su$(V!itATXScKLM0JDFdb3_0_o%;~wwrH8BRL8t2MS=l6m zxrZF=$C5sJ_a0E>@lSr1u?Etrq5gEOhu>ugT>@TMOFY$@%1B23$_|`qTfzFk!qz8M zvFr05EjQv8z({vmyy`Ls$!~Ici&lPoF zp&O>Dd9=MiUF$EQcq(EvvA9?YUk$VAqo)@V^dOMqQr-HYHu@1#a&mIBCGR8Dw==Xu zYIV;)Kz{1k-+xCdF^&2RxUWKl<)TnD=s?d`h01*;5;-p_$$Mj-#5^g&9$(g@pE$hFZL zmr$bH2xViiZVn>m<;|@W=b|?nmKvLy=F(q;5rm6c=MZ_CP@raPl0 z#^VY{-0}yB@9fA@NNa1bfIv@w|L8E1=-3%2ibmYSN#fzmExTh@_?=a}tQDKO!T?Fo zc>*|i8XGkLyCH2R1LD!>>xW4#)#Vuvlp5SdE>l&Ii<5oCwc%m2@NjLn=kYU6T)8DB zCC$xRO%H^GgcNL6d4PoL>|f!!N5$aV!A>yttkLv3f2Wrk0c!%~lp@F(DDmk%=~wM6 zZKvRwRPl+A;=7@8swyh)(_=B3^1J0_Wqxd%-@nhB;g}4e7ge>ik_6$twyT=CTQ7PC z27d1h>IjYuRZTH}^rGqcn!$tzc_ccxsfL)JM(~J(qR9bU=Kch4i~@yJ%Q{idLl zmX5lnrc4#Syz%f1JRWauZayzXH;7hmhjm32GW5FUhX2#*)_!0Dwp%rgSh7!>e{o+U z8@*1V_065-08{SK<(w$lqj}kM@CCeI$Ap=Xj&MY$qvDc{))yTsM>QIE0@o;~J(~Q) z)^?^pQ%$jB{c3}PeZvx?3snEguL?D`s`sofCR@Wbn}rIR>pWI0A&mKl359iD)3`7}ogyaGgknA2i);isBnfDn9i zcsenuX1vbbSdjof&v+Xfh%ZmI3=?<45`uc0A-1+$-2VR%f?OuJm=k#yH+n+`vNbL4 z-mUSPZhW#jHu~vPQc{x1`*yxLsm}%==gwiG4-}_lSbhekW0m;S$$Zf#KUo=BH^V&T zsR$+N^+Jgp2HYb3pd3|X^;1lJEraV(lT8{pcn}0)N<`ShF5q zI4&b3C`fD;epLykmLnYEv=;Tady_wRVA;X13RrkdID()f-*zY;lOTn_dAuT4q9m)-3VsKLCpk5SlN@(d1IOx z2O(c7syqE~;4B{VJ{dG6m%-Z|OHamZfF8x`@7g|V#BVqcCGoKcU3zD#bj4O({qX+7 z=O!K1J9(IM?)(q|>XrkX>D|d;Q7g;Gt*Y6G({KleNQ;6sIvvdl>jrLp2Opmw(VW-5 zq~Z41I5goc}=p3iSHOjf{y1J`b*Q{H^4t7^*EpiK@U+yUa zWKh)5Fp=vgyQJAbM>`xMNdM3UKuG6s`I2$sK0nO(nPSbu{dK5O%xQldUVGk(TuM17 z0;XNPdNt%_6G)#5SsTpDmpau#i}z8hOYceeQ^?X7?AZZXZ1kM8pIM4=|u zKi4;?oK@4i+$kZZ{Mua^$ngLcT`!Ke}a1b%s2sFak6 zK&2RhI&&s8(8qeY(5&Q=K31>b+U@Un4<} z0TKPs#jzw_!kqJq1s|=eM+)v=3;T(dSO?)Z>?cAxu0zj9EBh8h@JM!jaw7`h(6xtX z_SKB6EbAJVWRwrB(gvo?V`vVR3EAr8cOcQ-|EsxV`~>qalOa2_$lpr{gg`W>{7pb- zvc{FO{Cqj)r$uXX1>h?{g&cd|{twXn>EZBTDHj-VhZ}s|86PD1eEns+%bRQ00M<4z zU@>~WHq&BdVjdLiF4GUJ?`rbr9z&~ zZ@nve^NW8b7b^vX+z?^S~oo!Ej3J&W9jeJ$HPxI zar5(zfybEl7N15(oh5BeP3gNa;~~*45DE#0ct1=CtJ$V<)(HWHahkkcK!rL!hT}3o z9gQe09UZ&rgGkMM*+h?PadSRF{{EkQz8xQH?MYI@T~TQcsO2wy$NO8OWftze#@f3t zFOne^(8Ry}JjJ;MMMc%XeoF({t~tT~R90d)Qx{I3Pyx=1M--U><)Vn7;K9)*c^zwT zIkn^-hA0*YP4us1JTARJp^*Shh((U`lW)r(3!dxz4l*(_vbD7h4n6=X@{%I!8ejum zc&>T)s>xlst-9pi_aAc|(51iq&xzPJAAT=ma*ELvvmZnYsL3XBDdo5PSv01Z>JJa98yjCA)jxNqQ;R)IgzOymw&dGeneVv!bO(LyN~RR{xVt<)J5Ffs zlA_@6Tu#lr>dE@EuePeHD(v8KP*U{#WK0Yrb%%a~k8!jbk7mzuA6fB7qg%fUoGpSJ zy9y$uSqlM1U~*3a=?-2yf({6%si^$rSox%l^fx}nk6ZlJ?V>u5iT1!GQiYoRovdVa zMA5BVw-oFcF(?rBr3kpl=gkqAX|TGZqa$5gNk!$^NUfy&?kB^!P1C8-(a!Ny1#po< z9*n@A;|!V!-&R*wr)>T$6kz2|L3;JIL1KcJbOvHC7P2hQNp+$v-g!pu$G!N4HM!EA z;RbLGY@GqnOjld9e;Kt$V4RfrZXf_~%j^Z%;PUTGzC~Z&mP?kU#l>ft)%_OPjG8E8 z!U~H=&ErL1Fl+x+-Y|plm2j=iNBX7Q3Jg?p8%{St6pgIl@#i~m-pyOF`BDG{rq8N= z+B{LRinHmhhI9ucgmA|;@fyK}Dk>_FtA<&=qtOw3(FnZd?cKM%pS{Tyw?$w+bTu|# z7Hb)H5Lg(6J%FCgB9HTwGy+FyuBk8>7=@P79YTVBJ;&$=Kex!(q2nS<(MBSMswn#(@ z96-HXn6K{9Y=u=lx9a)P(T$^JMWAz1xo zOv>YR67@H3lIRpS9qbvesGRWL`CUr@3gUa#4P`({!N2;8?f)(8iynFO3_p4x$PN7W OqceaT=~e35NBsx9nGoLq literal 0 HcmV?d00001 diff --git a/test/reference/dash-caps-joins.rgb24.ref.png b/test/reference/dash-caps-joins.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b09b86fcec409f8c299fc0d43afa8a4c6d62eb8b GIT binary patch literal 5157 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 OqceaT=~e35NBsx9nGoLq literal 0 HcmV?d00001 diff --git a/test/reference/dash-curve.argb32.ref.png b/test/reference/dash-curve.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8bebde204a5e12a60f5ac3b3386a21c273e9ea5b GIT binary patch literal 41040 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%0D>761h?f{o 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-curve.egl.argb32.ref.png b/test/reference/dash-curve.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a4659fa6ab13ee486d60bd174adb5ca54d034f6 GIT binary patch literal 42857 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%0D>761h?f{o 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-curve.mask.rgb24.ref.png b/test/reference/dash-curve.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8bebde204a5e12a60f5ac3b3386a21c273e9ea5b GIT binary patch literal 41040 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%0D>761h?f{o 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-curve.rgb24.ref.png b/test/reference/dash-curve.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8bebde204a5e12a60f5ac3b3386a21c273e9ea5b GIT binary patch literal 41040 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%0D>761h?f{o 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-infinite-loop.argb32.ref.png b/test/reference/dash-infinite-loop.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ae1717a1cb5ded544a0208d1bcb4ff9baad9000 GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0vp^DImy|2n`A4;zjVr-8z#PO zaan7ge_lCpQvCJOxwEG;z5e`DV(F(ZK?$6Svz8fp@y0zAm(_lC_`~UJKdtR{hSg2- zd%gr2&HTa{TPommr8IZSq>~H%XGqtChPr9)H2i6oc#J9F`qn_NJpbFLxxD52-85&m z{B98yOZ#;sBFst? zeM*gHth{(q;w5zx>nNkR(;JV~9;)zIc2Rv=^27T-?>&1Gs&Y|1ERj*bsmAu}#XA-6 z?`G?Y>HKmrT=j4FJ7K;J3*HJJeWI4RzxELCv@<_`S*WXSzWjQzw~o)R>CcW;_s8{Z zG`O|DCqMAbI{zKVFYVvI>drf}bN?49#?^hj5PsOZcjLYH+i%-mzyAN=r=Jt-*Q|Rz z$K1N#dhNfu6WY_3pOo*9Fgo>ldboA{Wczy?7rYYQe*3Kav?BMiOD)a`56kE8h|&9C zS!h|Fyno+K)??w4u|87n8;Em(H{$`p& z5|hurCC#k=C);}_9{l{oKP$p$o?88-BTe&9&QIA`5 zoNOm{$M;`Kqw40mPwL7#Yv%nq$({Z5iGN%~g!#|OvSMLA|DJTTE}d*YGb!=n6aRe? zMoUi4zq8R{=AT5J13)d`tjq;(pPYZ=^&PJ@YV}F_Mb3uy@?Comh)eJ{~wmjVtDcUUxCGme93Nse5f1NM@4WTDsyDBkbW$&S~2VOPp6M%bd4= zPlS$KzxxM&FWrW%ck|*4bgN4f-7Re_CDQNXBYS2<=43D(d<=wMJj^5*3WOX ze|O<^qy+buU(q6BFIW}ixW5P`9^5mXhkM)JBM}B~uCjB7?X5~WxFoz@=f-EL7S`lA z=Zy&`wHd|ER4hH%#JfHv!r;MFA?~Hss>hlxXuF^Mzc@Wo?v~~DsI^x%-rD9{y9lyU#t20&p&y3 zWv3tBd+fj={`Hq%etCXCiua2YCwD{fy4>6K>|t3a&dvY0A&!4d`1`L*+otXjw9A~@ z-1;ZZHBoVMcxJ?jm!S$`n<}Svw%WuUO;T(QKN;ciHq=6FQq|P{){;224HHhB<`N64 zkUVrKK|eY|;#n#mH}f8yq=oCJ2kLzJw5gl*;oQ%=*7+toR;345NBw1qyS3PFQH1_m z%jH2=zIs=m;1rFEza{Lqx?%daipi@_dslDMe73hvw%pG`mY zm%rvX@V0FB*|huiLf!)VeS-uxvIu&UNnFT($NgQF{ZG*vV1i`uboFyt=akR{00~1t A&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/dash-infinite-loop.mask.argb32.ref.png b/test/reference/dash-infinite-loop.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ae1717a1cb5ded544a0208d1bcb4ff9baad9000 GIT binary patch literal 877 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 OkHOQ`&t;ucLK6VtdnjxG literal 0 HcmV?d00001 diff --git a/test/reference/dash-no-dash.egl.argb32.ref.png b/test/reference/dash-no-dash.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c150a4f022d4cc67517b9e7a58a6a04990cfe64d GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA6Oh!uSy>FE*pj^6T^Rm@;DWu&Cj&)vJY5_^ zG$tnh`TyUZ*|R}~_y7O@=}KoS*x1}Y&HeKKe|^%8FC{_~yWCSW7#WTSc^y`MXLk#z OkHOQ`&t;ucLK6VtdnjxG literal 0 HcmV?d00001 diff --git a/test/reference/dash-no-dash.mask.argb32.ref.png b/test/reference/dash-no-dash.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c150a4f022d4cc67517b9e7a58a6a04990cfe64d GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA6Oh!uSy>FE*pj^6T^Rm@;DWu&Cj&)vJY5_^ zG$tnh`TyUZ*|R}~_y7O@=}KoS*x1}Y&HeKKe|^%8FC{_~yWCSW7#WTSc^y`MXLk#z OkHOQ`&t;ucLK6VtdnjxG literal 0 HcmV?d00001 diff --git a/test/reference/dash-no-dash.mask.rgb24.ref.png b/test/reference/dash-no-dash.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c150a4f022d4cc67517b9e7a58a6a04990cfe64d GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA6Oh!uSy>FE*pj^6T^Rm@;DWu&Cj&)vJY5_^ zG$tnh`TyUZ*|R}~_y7O@=}KoS*x1}Y&HeKKe|^%8FC{_~yWCSW7#WTSc^y`MXLk#z OkHOQ`&t;ucLK6VtdnjxG literal 0 HcmV?d00001 diff --git a/test/reference/dash-no-dash.rgb24.ref.png b/test/reference/dash-no-dash.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c150a4f022d4cc67517b9e7a58a6a04990cfe64d GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA6Oh!uSy>FE*pj^6T^Rm@;DWu&Cj&)vJY5_^ zG$tnh`TyUZ*|R}~_y7O@=}KoS*x1}Y&HeKKe|^%8FC{_~yWCSW7#WTSc^y`MXLk#z OkHOQ`&t;ucLK6VtdnjxG literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset-negative.argb32.ref.png b/test/reference/dash-offset-negative.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df22d08b2ac34b10ec9c9138973f05d791d236fd GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1SJ0&Eu0Oc*pj^6T^Rm@;DWu&Cj&*yJY5_^ zEPCHg+Q`dbz;npw%Hf|jwu)NWj~jU(GM1VPvU+fB+T`f4@hxM{{%bkw-yX3`d?bFG Y+i9tyr)aqGOP~o1p00i_>zopr02<>duK)l5 literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset-negative.egl.argb32.ref.png b/test/reference/dash-offset-negative.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df22d08b2ac34b10ec9c9138973f05d791d236fd GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1SJ0&Eu0Oc*pj^6T^Rm@;DWu&Cj&*yJY5_^ zEPCHg+Q`dbz;npw%Hf|jwu)NWj~jU(GM1VPvU+fB+T`f4@hxM{{%bkw-yX3`d?bFG Y+i9tyr)aqGOP~o1p00i_>zopr02<>duK)l5 literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset-negative.mask.argb32.ref.png b/test/reference/dash-offset-negative.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df22d08b2ac34b10ec9c9138973f05d791d236fd GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1SJ0&Eu0Oc*pj^6T^Rm@;DWu&Cj&*yJY5_^ zEPCHg+Q`dbz;npw%Hf|jwu)NWj~jU(GM1VPvU+fB+T`f4@hxM{{%bkw-yX3`d?bFG Y+i9tyr)aqGOP~o1p00i_>zopr02<>duK)l5 literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset-negative.mask.rgb24.ref.png b/test/reference/dash-offset-negative.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df22d08b2ac34b10ec9c9138973f05d791d236fd GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1SJ0&Eu0Oc*pj^6T^Rm@;DWu&Cj&*yJY5_^ zEPCHg+Q`dbz;npw%Hf|jwu)NWj~jU(GM1VPvU+fB+T`f4@hxM{{%bkw-yX3`d?bFG Y+i9tyr)aqGOP~o1p00i_>zopr02<>duK)l5 literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset-negative.rgb24.ref.png b/test/reference/dash-offset-negative.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df22d08b2ac34b10ec9c9138973f05d791d236fd GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1SJ0&Eu0Oc*pj^6T^Rm@;DWu&Cj&*yJY5_^ zEPCHg+Q`dbz;npw%Hf|jwu)NWj~jU(GM1VPvU+fB+T`f4@hxM{{%bkw-yX3`d?bFG Y+i9tyr)aqGOP~o1p00i_>zopr02<>duK)l5 literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset.argb32.ref.png b/test/reference/dash-offset.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..52600c435d1274f9ee2eb6ce0e8c8e28f049c2c4 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^^MH5`2NRHF)NfS>Qfx`y?k)`fL2$v|<&zm0n9h5; zIEGZrd3*a{)*AyJw}(r<{Ee^Nb>Y~9TN<5@4Ua#Mp4zRJ^;7Ug*O{L`Yxo5J*8CQ~ z5ZxnoI%8vx*z4{8mVdVCf86o)Rqy=kZzQ7T?~SV8`uN7I2Un8j{(IhjYUNR*D4oSe zf2BL~Y3HmhwrUI9{qbtwOue78CIxptZR>e@B}r0u+Qp>YT4%mJcP%WoM&zA{@B@iR z>RwxB{-o~g=W>Hzvc|FRu1=W~rDL9=vm9bG*m?w!-6{R)Pj%_t?O$iNR9}Dg?|wx1 zFJIfG70$u&vOyYouUZST^Ux>ak= z*yzRw7iVp}Ghrjp!o@)Mukp=4v9>SqOmdKI;Vst06$5S AMF0Q* literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset.egl.argb32.ref.png b/test/reference/dash-offset.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..52600c435d1274f9ee2eb6ce0e8c8e28f049c2c4 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^^MH5`2NRHF)NfS>Qfx`y?k)`fL2$v|<&zm0n9h5; zIEGZrd3*a{)*AyJw}(r<{Ee^Nb>Y~9TN<5@4Ua#Mp4zRJ^;7Ug*O{L`Yxo5J*8CQ~ z5ZxnoI%8vx*z4{8mVdVCf86o)Rqy=kZzQ7T?~SV8`uN7I2Un8j{(IhjYUNR*D4oSe zf2BL~Y3HmhwrUI9{qbtwOue78CIxptZR>e@B}r0u+Qp>YT4%mJcP%WoM&zA{@B@iR z>RwxB{-o~g=W>Hzvc|FRu1=W~rDL9=vm9bG*m?w!-6{R)Pj%_t?O$iNR9}Dg?|wx1 zFJIfG70$u&vOyYouUZST^Ux>ak= z*yzRw7iVp}Ghrjp!o@)Mukp=4v9>SqOmdKI;Vst06$5S AMF0Q* literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset.mask.argb32.ref.png b/test/reference/dash-offset.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..52600c435d1274f9ee2eb6ce0e8c8e28f049c2c4 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^^MH5`2NRHF)NfS>Qfx`y?k)`fL2$v|<&zm0n9h5; zIEGZrd3*a{)*AyJw}(r<{Ee^Nb>Y~9TN<5@4Ua#Mp4zRJ^;7Ug*O{L`Yxo5J*8CQ~ z5ZxnoI%8vx*z4{8mVdVCf86o)Rqy=kZzQ7T?~SV8`uN7I2Un8j{(IhjYUNR*D4oSe zf2BL~Y3HmhwrUI9{qbtwOue78CIxptZR>e@B}r0u+Qp>YT4%mJcP%WoM&zA{@B@iR z>RwxB{-o~g=W>Hzvc|FRu1=W~rDL9=vm9bG*m?w!-6{R)Pj%_t?O$iNR9}Dg?|wx1 zFJIfG70$u&vOyYouUZST^Ux>ak= z*yzRw7iVp}Ghrjp!o@)Mukp=4v9>SqOmdKI;Vst06$5S AMF0Q* literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset.mask.rgb24.ref.png b/test/reference/dash-offset.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..52600c435d1274f9ee2eb6ce0e8c8e28f049c2c4 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^^MH5`2NRHF)NfS>Qfx`y?k)`fL2$v|<&zm0n9h5; zIEGZrd3*a{)*AyJw}(r<{Ee^Nb>Y~9TN<5@4Ua#Mp4zRJ^;7Ug*O{L`Yxo5J*8CQ~ z5ZxnoI%8vx*z4{8mVdVCf86o)Rqy=kZzQ7T?~SV8`uN7I2Un8j{(IhjYUNR*D4oSe zf2BL~Y3HmhwrUI9{qbtwOue78CIxptZR>e@B}r0u+Qp>YT4%mJcP%WoM&zA{@B@iR z>RwxB{-o~g=W>Hzvc|FRu1=W~rDL9=vm9bG*m?w!-6{R)Pj%_t?O$iNR9}Dg?|wx1 zFJIfG70$u&vOyYouUZST^Ux>ak= z*yzRw7iVp}Ghrjp!o@)Mukp=4v9>SqOmdKI;Vst06$5S AMF0Q* literal 0 HcmV?d00001 diff --git a/test/reference/dash-offset.rgb24.ref.png b/test/reference/dash-offset.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..52600c435d1274f9ee2eb6ce0e8c8e28f049c2c4 GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^^MH5`2NRHF)NfS>Qfx`y?k)`fL2$v|<&zm0n9h5; zIEGZrd3*a{)*AyJw}(r<{Ee^Nb>Y~9TN<5@4Ua#Mp4zRJ^;7Ug*O{L`Yxo5J*8CQ~ z5ZxnoI%8vx*z4{8mVdVCf86o)Rqy=kZzQ7T?~SV8`uN7I2Un8j{(IhjYUNR*D4oSe zf2BL~Y3HmhwrUI9{qbtwOue78CIxptZR>e@B}r0u+Qp>YT4%mJcP%WoM&zA{@B@iR z>RwxB{-o~g=W>Hzvc|FRu1=W~rDL9=vm9bG*m?w!-6{R)Pj%_t?O$iNR9}Dg?|wx1 zFJIfG70$u&vOyYouUZST^Ux>ak= z*yzRw7iVp}Ghrjp!o@)Mukp=4v9>SqOmdKI;Vst06$5S AMF0Q* literal 0 HcmV?d00001 diff --git a/test/reference/dash-scale.argb32.ref.png b/test/reference/dash-scale.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..deef9dcd2f24f6b8699e83a28fb491f77e131c63 GIT binary patch literal 8913 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 UJk0Na7hbSb6g1?~vgRTG3u1|t*8l(j literal 0 HcmV?d00001 diff --git a/test/reference/dash-scale.mask.argb32.ref.png b/test/reference/dash-scale.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..deef9dcd2f24f6b8699e83a28fb491f77e131c63 GIT binary patch literal 8913 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-state.egl.argb32.ref.png b/test/reference/dash-state.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..de99b14a23a8fcbe254aa59cb103e55d58539688 GIT binary patch literal 10296 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-state.mask.rgb24.ref.png b/test/reference/dash-state.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..31551cfeec10bcea34f828835eb4fc79c349eb42 GIT binary patch literal 8027 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-state.rgb24.ref.png b/test/reference/dash-state.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..31551cfeec10bcea34f828835eb4fc79c349eb42 GIT binary patch literal 8027 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 literal 0 HcmV?d00001 diff --git a/test/reference/dash-zero-length.argb32.ref.png b/test/reference/dash-zero-length.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc5f5ef223e03f9123ce0a1a0618a570e6c8f26 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^!a!`x!3HG#zXf#xDYhhUcNd2LAh=-f^2tDv*`6+r zArY-_r#W&p81S&DKRWoo-lbl`zbhl>>bDJB^f-2LKH3m1pmmBtX3wGS9F70;;$4d( zWS#}dC$OkJ%G&ew^{GDoz{duK)s0TWe!PC{xWt~$(695oQVmSZ+ literal 0 HcmV?d00001 diff --git a/test/reference/dash-zero-length.egl.argb32.ref.png b/test/reference/dash-zero-length.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4d61657dee62471858dacadda2df017c4dcfa882 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^!a!`x!3HG#zXf#xDYhhUcNd2LAh=-f^2tDv1)eUB zArY-_r#W)97znUrA8Gzyf8rH?y1(8c;mM|!CY`)Z-*}QP$_hxGVvyN$usdhf|9Rn| zMK@%wwfxt-%RZyAb%)gdU%9Er+gI!Bgv-26M#koEYx*k6G9r}v-MUq-@ z_o-R81&_;Y+2WtRYsP*P-N`xUuKRs%DhR)E$49(a#r667&gHY8dF+4Zer8s6;hBG? hL7Bg=&rb9I#iY-bs53!Htpn&*22WQ%mvv4FO#suFW8(k- literal 0 HcmV?d00001 diff --git a/test/reference/dash-zero-length.mask.argb32.ref.png b/test/reference/dash-zero-length.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc5f5ef223e03f9123ce0a1a0618a570e6c8f26 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^!a!`x!3HG#zXf#xDYhhUcNd2LAh=-f^2tDv*`6+r zArY-_r#W&p81S&DKRWoo-lbl`zbhl>>bDJB^f-2LKH3m1pmmBtX3wGS9F70;;$4d( zWS#}dC$OkJ%G&ew^{GDoz{duK)s0TWe!PC{xWt~$(695oQVmSZ+ literal 0 HcmV?d00001 diff --git a/test/reference/dash-zero-length.mask.rgb24.ref.png b/test/reference/dash-zero-length.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b14bd8dca5d435ce5b60c0961b31ff0655bbd6ec GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^!a!`x!2~1^OgVZNNU`)qF25c{4X zV*9HQm2=8Vjg|Bcrr3JyD2_I}`B8S~(rh0l_PWiw)ec7)rgI6YWZk>9@TJA=5Yx-$ z`#z|d7(O`jAC?gz8o2{iQ3jCx`YbP|K7tDnm{ Hr-UW|1LIQ> literal 0 HcmV?d00001 diff --git a/test/reference/dash-zero-length.rgb24.ref.png b/test/reference/dash-zero-length.rgb24.ref.png index 74d5df27afb3b56a7507c39ab397e9c4aa4e22df..b14bd8dca5d435ce5b60c0961b31ff0655bbd6ec 100644 GIT binary patch delta 164 zcmV;V09*gs0n!1GHh+gnL_t(YiS3oq4uBvCMX#-g{{Khn5Am&8iUO^Xi~EF^F&Q2e zuqpu{Q`utP^EWzxUGD%`x9U_R&LgEWA}+yXJxI87TQ=G89l51zOacdfvn_i-#Q>KI z5+rKg+M($<+f+5vcfRl@G%?`J_{$_B)6$&;Rhj#npbCQ9ksanEVIIY7-%|$MQ87p< STI4qX0000WHKGD| z;5IBla)vViyVzaBn#&ZlkAz9U00fADLBhmg5*IjP1Oj_svHt}`#K>V1m!&2M0N?gp zR@h{zZ+WXdpDi^Aux6juWaF-93uD$5TD+A z^lo@#1d|+a0NFwR9AIZ_BBcc^CELLSAo}N!ogs(%|E)bc<#fbRPwhMjF9CMDjAJ7> zj@j)J;N$RDPwk92nsRCZ=b;qCkXpM6$1#NeD;;R^nc!)96yurU5WM?btfAgNmG17LVNGj+rGw@1=aHr?Hn!A@ zE&;8&%8Sb+O80A4k9B*CNtnXb`!(M{+-xH_&vkoyzDpFhOb2^8oab6pSt$~>_7Yf| zs}{Dk>l%UQzu&A2sa3Ub(Ows_8^5-01e$4mO3mKO|Jm#biU!(SuCAf?>Dx8*X*BQ% zQy*CkO*j4qo)+JJcNkkPi&n9c2lE!4UcTJ_RfHpa|7h&3&tIUNT!tr}A~yg4002ov JPDHLkV1n0HG=u;E literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-arc.mask.argb32.ref.png b/test/reference/degenerate-arc.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4da4fd6e4e6307ea9e4960d2dec80cee03e3f705 GIT binary patch literal 653 zcmV;80&@L{P)OjUctEU`0uJMzvz|Y*LI5}nh38E6~LBT zvlQtqZULO)bQ{|)UC=&Krh)ecbQk z>KcpoB`@_Y!Loc^@B)iAuC8&vA22Y5pZMg_!?&*harpZ{ezJx8GJ^O65Z}Le^q%=_ z1d|+c2-(5l4q)eSCZz=|CEH>K5Q96&PQ*z6-rBo!&c_`0)p0j`0NCp>NsQnmVGs~t zH+<-;<1xo`&Mn|&D8(?O)-J+JH4LdVW6lPyus2{U)d*gZ!Se%SqE!87TX4su!cZ5l;RF@3_t@@sW%Op0w zoV*_E<`$DMg^S<~Ztn#0V{&4>5NKxU)8t~WndL1TT+nCHz!s)D@*0{={0;0DKmS6j#xaJ&%f8FT nyhW$Om-OjUctEU`0uJMzvz|Y*LI5}nh38E6~LBT zvlQtqZULO)bQ{|)UC=&Krh)ecbQk z>KcpoB`@_Y!Loc^@B)iAuC8&vA22Y5pZMg_!?&*harpZ{ezJx8GJ^O65Z}Le^q%=_ z1d|+c2-(5l4q)eSCZz=|CEH>K5Q96&PQ*z6-rBo!&c_`0)p0j`0NCp>NsQnmVGs~t zH+<-;<1xo`&Mn|&D8(?O)-J+JH4LdVW6lPyus2{U)d*gZ!Se%SqE!87TX4su!cZ5l;RF@3_t@@sW%Op0w zoV*_E<`$DMg^S<~Ztn#0V{&4>5NKxU)8t~WndL1TT+nCHz!s)D@*0{={0;0DKmS6j#xaJ&%f8FT nyhW$Om-Cnnk7&fd=8w3By@W^NZ5{alJCv|y?79k?|$Otbno4DNTQ7p zt*8KA`8CUsUE>fWd?l z2RLAW+dW)dV%|OHxw$1+m#;IPVcx~XC2sdZhPLnn9|Q%yegTO6-|y82S9qXe$Ugw_ z?X#eG!Z|p%c-s#0!H;E2bWEh zzMP^So8}gqu!XDN>tX`&v#sETdT_9uC03_Q4|_dqR9Pt!uJ#(ZPOZYOcGE(j|MzG+ zR7TYZuT1MePv9-L%XTRRFMzxSwZj82GBhbD4uw5t6U(-wogLpv5y!gsQ}lE0mCi_F4tp{S z6~K9%TaCIz2|z*$h?o!zH%luiL4e4ZMMNMO1J0R)fZAfS0)L^YBZ53&j&Bt{Z{pn} zI%{YI1weq3G9m(phPq(UOrfN-wEYH_wgEfewml;Rg`x2U8yXPUD&%VrIdiusI5b{@ z0!AWVqe@by&NhziRHFuft4n-M@$=>H;x2Uh>N3HFMlB%AI@$ZqamA|bvakT(Wbx6_} z3PFHb)`Gjo5pzaH_s%oZHS7&m7NSCuLQhhikz4TpOn(RZe7bKMsi(_H4n0nb`y^By zMWe4icK601nO#0DvXmM@0DOfzl;_62Z*iI)qrvZ;>>bUuW z`}?&MkT|v%*r^itB{PCO4Ia{_lOz$!o&b+1Vm~bgvBwI5*Sjz0i@!rU>?{O2_KW5B z_lJ*Rg@3?orH`ftfmAonE3SgTB)d*ytA^yrQDwG=u*)la_=ffRIr3l~mHS#>;8sDF z0*Skkvpe$?^pn-(pMP9XtnqbwCdB{%002ovPDHLkU;%>Fs4Nfw diff --git a/test/reference/degenerate-arcs.argb32.ref.png b/test/reference/degenerate-arcs.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1869dc1594a5b4a4420c254536e821ecb9b67e GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cZPZ!4! zi{9iv|Nq-F?`-JInd=;G%q?}_e6L{ttFy+hSEhYl@oeJ4nT00alh_z)1vr&otNwon P)X3oJ>gTe~DWM4f;#Vj3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-arcs.egl.argb32.ref.png b/test/reference/degenerate-arcs.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a80a3ef43c06a1df4902db7653bc566176c8b666 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v}}XPZ!4! zi{9iv|Nq-F?`-JInd=;G%q?}_d~f5##*g-g>(@M4HuLL`oMVeW+cQ_~S&;qj{D=9B zuBKeG8`9j^+}KoZU%1hdd+c%1A+!EplJngTe~DWM4f;#Vj3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-arcs.mask.rgb24.ref.png b/test/reference/degenerate-arcs.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1869dc1594a5b4a4420c254536e821ecb9b67e GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cZPZ!4! zi{9iv|Nq-F?`-JInd=;G%q?}_e6L{ttFy+hSEhYl@oeJ4nT00alh_z)1vr&otNwon P)X3oJ>gTe~DWM4f;#Vj3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-arcs.rgb24.ref.png b/test/reference/degenerate-arcs.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fc1869dc1594a5b4a4420c254536e821ecb9b67e GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cZPZ!4! zi{9iv|Nq-F?`-JInd=;G%q?}_e6L{ttFy+hSEhYl@oeJ4nT00alh_z)1vr&otNwon P)X3oJ>gTe~DWM4f;#Vj3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-curve-to.argb32.ref.png b/test/reference/degenerate-curve-to.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab11ecee2db21238f112d32676184da2449700 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?Xx&U(5y zhGLLk5Pu`z`twYjBsOOeVI+{y8 cCoOm>?Ae?6-@;Wl0_ZUYPgg&ebxsLQ0BmS;0{{R3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-curve-to.egl.argb32.ref.png b/test/reference/degenerate-curve-to.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab11ecee2db21238f112d32676184da2449700 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?Xx&U(5y zhGLLk5Pu`z`twYjBsOOeVI+{y8 cCoOm>?Ae?6-@;Wl0_ZUYPgg&ebxsLQ0BmS;0{{R3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-curve-to.mask.argb32.ref.png b/test/reference/degenerate-curve-to.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab11ecee2db21238f112d32676184da2449700 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?Xx&U(5y zhGLLk5Pu`z`twYjBsOOeVI+{y8 cCoOm>?Ae?6-@;Wl0_ZUYPgg&ebxsLQ0BmS;0{{R3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-curve-to.mask.rgb24.ref.png b/test/reference/degenerate-curve-to.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab11ecee2db21238f112d32676184da2449700 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?Xx&U(5y zhGLLk5Pu`z`twYjBsOOeVI+{y8 cCoOm>?Ae?6-@;Wl0_ZUYPgg&ebxsLQ0BmS;0{{R3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-curve-to.rgb24.ref.png b/test/reference/degenerate-curve-to.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18ab11ecee2db21238f112d32676184da2449700 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?Xx&U(5y zhGLLk5Pu`z`twYjBsOOeVI+{y8 cCoOm>?Ae?6-@;Wl0_ZUYPgg&ebxsLQ0BmS;0{{R3 literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-dash.argb32.ref.png b/test/reference/degenerate-dash.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddfc8bbfd3a61d3a4c9ad53ad1383ff11014de7 GIT binary patch literal 2086 zcmeH|eKZql9LHDO*~(lkNko^Fr6LWRTx9bSV|LP-@)nhJ8KJBfuUY7}L>5eP*_jcl}9-k8fPc@SVvq$H^c77 z)8-5HO#3o-WRbYo3%}G#KvNKO@rw4^0n=2?9-s{>efmtBvjERx@+yG31nKKQ{N&8Q zUZH1sR1#x5@t(@o*?KCU#n+i)PMtD!rN6O$Fy2nX2?3by#gL=u)|d^&L~DrxhF7c6d!vN6dUhTxla>5g}(m)!Pnd2M+8@O>tx)Ba;5~Zyqw2#NBT+#c-^sT zl>j6?wIF*<0=e|eMwRf7To|OLE-q0y%R^e1 z24A&WRy$T`chx};4xEre54G^rYb?DLisq#cLrEkvRrxH#-zbYVWwIcbH~2ix&Zb7f z@^7`b8EHFLlQdH=%sJ2Pq$_6H((iBS7e8f)d|#ZZq=A49X|3^S4LW%v3T#7$MuWCY zXu5YA{@vcMU0_k?Vh_su!mWe#Uz@g<3Ny2D)|Tdl)en24YH4>^&Zx8&;LVH##8EwL zNLQCOc-{)RUzx3U4kD2jK86|&OB?+Id2Ma|R$Cr#Yiw-UYiG#Es)^jA=3nLKKXix zs!h~vAsT)$ADOr9q)X;n6S!#g%{3DbzghK9C~1?V^;~vbWpScfauf5g8?uP3ubLX> zvTGpyF#dzf4&SO^P;YqVW^zLS!EfGQ$akd~v01VSj;~lch;XfkPP!uvB*r zYuZBL^1v6BO(8Yx*04G0a%vu8tTSeySb+Qsn*QVu2^Mh= zNicW0>1PTnb!ZuAEQ<@`8x!i;D5?^)Vi*s8d0A(hQ=W_)}^IYtadjc zmu`k9*n2ew@FbFl9scN=fv$*%t=qR5+D|lhxWP!a%}vY(gyC>(SZ=O&KUIr9Dm*5A z8P1IKps=}=07$CHn9AYQo7>r4^-*gdGp6QM1?I&--Ie$}ev+cm1B!lith8i}9d%Y*mIrUp1goCaagbK{H@MYRQP@dmKQTUL>kVg>t+SuWon~ z5>3_|n*RAp%d{sxahWeNw$QL*&Gz19MhF;=9baZ0VI)G$VimSHt z{)@^LAzjZhf=X|XE);0$tG;7R3D7e$!r(Pt*!_x|ap!f{U-8k3Pc%1pn}wQlESp@L l+L?l-!EOJC@xOynp~7I(ICZ^qXOtg5z|9%!#6lgp_y?I6&lCUv literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-dash.egl.argb32.ref.png b/test/reference/degenerate-dash.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eba9966b61cdcf7cadcb982e9ae107b293c7fce9 GIT binary patch literal 2182 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect-similar.egl.argb32.ref.png b/test/reference/extend-reflect-similar.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ece9a3c89716328ee60660324b42ee34c0da4d GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xt1`Z~mi0>+ki9m`i$=lt9;Xep2*t>i(P@2`# w#WAE}&f9~Aj6nHA3%>g2^71bLGDi@oFgmEqz-X8IoDJk@Pgg&ebxsLQ0FO)=$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect-similar.mask.argb32.ref.png b/test/reference/extend-reflect-similar.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect-similar.mask.rgb24.ref.png b/test/reference/extend-reflect-similar.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect-similar.rgb24.ref.png b/test/reference/extend-reflect-similar.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect.argb32.ref.png b/test/reference/extend-reflect.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect.mask.rgb24.ref.png b/test/reference/extend-reflect.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect.rgb24.ref.png b/test/reference/extend-reflect.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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

vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat-similar.argb32.ref.png b/test/reference/extend-repeat-similar.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 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 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat-similar.egl.argb32.ref.png b/test/reference/extend-repeat-similar.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ece9a3c89716328ee60660324b42ee34c0da4d GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xt1`Z~mi0>+ki9m`i$=lt9;Xep2*t>i(P@2`# w#WAE}&f9~Aj6nHA3%>g2^71bLGDi@oFgmEqz-X8IoDJk@Pgg&ebxsLQ0FO)=$^ZZW literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat-similar.mask.argb32.ref.png b/test/reference/extend-repeat-similar.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 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 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat-similar.mask.rgb24.ref.png b/test/reference/extend-repeat-similar.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 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 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat-similar.rgb24.ref.png b/test/reference/extend-repeat-similar.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 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 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat.argb32.ref.png b/test/reference/extend-repeat.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 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 ^)b~{}? ziW5t=;I(ytn!$q=Ovz)@lQKq8iu6p35C;Z`!vbvskuW(^PKN?m7_AEv!CRSk6wwi4 ziGi6F65)tQW};!C2o2^DOwSm0ei~f8IFI4X$w0Em^}PGuw?BFD^}P*LG03UkZ>Kb- zh|ME`DgvVLtd$b*PNm4j#XJ>RdoBx@%Kl={b(csaW$@T8t5Q-@fP#YJ`r`1>vn!ecPtu@Oj>;TD0_($a0jr6w_-1C5ZP5YH}v7Ggloc3--fH8ZVmZyrAL_+l%4~%JIG*Z+j+)3ps^AI7MM(;_jfq)CeP;cwalWDi3*8BaPJ*=y_>}EOa z^yY$vu(q@gut&x`6?c$xTd5me-IQ%xxRi)cDa5K=l=X7j@9ONy$GheA!`-$R`~0nM zeXuW@B%l5A=NA1i?*vw_c}Y{j@#sBhKhgfMo3y%ZQp6m`W82UAxI~>;1rhmh^wZKD z5T-QR?{}>&qP6v{64yzj@RN(;mLLRh``C(1(t=`j?A^LYGiQ=XN=AA*QV8hD zw$k{6N%S`1GDTS6nQCdwGVY_5GD%Kr^d-u~yD3Rau&+xBl!z@{l0BT2B86B9hVh;T z5ka6%ER;ii2oQ5-$T?Rj$w$5eC(}d}%Jl5=2?eR{RJq&Qqu*`|rDy8ah!V_f0Vd27 z5lIAuaecXK;no=_MeDS?>ZAhxD10gA(aXA{Y2WAdQM6BI@+1lq)J7o{cXeg>w(n%1oRg5i*y3 z)%0=#65tI03mfi^_cw=$m`>aJ^8R+($<^-alMlXqvAdL6UOj&Kus!_n)4%f%{{8>> zt1mv=tDvK8jS*l-p^M!fnQhx_TL=H8jPGzd6Q;UF?=f+*DibVxJvF!V;M3~+Y3B(K zvQA6))dS3lxW1@iJrm5dn+tO`+k{Y(3<-{+NdjUt_oAvyAoon6)N=OL{W^+7NH}3; zl;obQC>2%V!CUv(P!6EvP?vdU$eGh;aML?;l;jM8p~- zK^z3EtF7I5pg-K0qt03?3VC<8FgNO+ZbqCSFeTK=?C*5_(?9RVv=#s}DiiY9 zpI<*cJ$6IfFLx~?j3dSm4^^--(ut^tDCushAW~)~=6XSODm=McTRSl+3yI_WFvf5S zj&13d8AB8XOvyxW3L9?U5ti&AW`qMVygQN{Qk^xyxF|5)Mk#5(m5YFjYMysyg1oQ%4zOC+_{>kJRv-TKw#UKq#qk-5xT zy4h~0>(*cw+ZH{+N`=L}@8=q}%-7T1?RI^=4?kTWW|(s7<`ucsTEF$|x+*7Tidsb< z+hdF4X2%z=?oV4}i)YU->pm-oavJFM-LkGSk%CGJx7GpLTJ$zhjFOpJBzm--kF5(> zP?U=9lF&2g>CM$~y+6#%lmv3p$PgmYGU?P#e!TAnn)iUlx>=o=S;Mfc;X#{ax3Db^ z^PHSu3J-<^(gVU8-h?pEtcA_3C`9LViHApvhIyx@^4h|K(ny$Cgo(gTAW9y9nPCr- z;pa=?gaKe?Mr3-BG9{9P%^|Es2K0hOs1Sea`niyHxBKN35yUvP$Rr_R8HjZ-aX1w% z(=-8IwIm734LJqCU{!Jp7Ek10V-HBY6EdO`GKmok;sjB84zsTlB!)?!XkYPa$AIe?fs(?UiCmnOb|S4iam+LCuep$z;qp-5>H3%7{0}~^6JK6Y z76*KuDiie+`%);yv3~j0@~~x{bz6Ei@Hj;UZRuNwIoQM^Pd~Wj-TX;KaiP72UCHF-?T9 zsp96k)|zd}tp~xUnuAyq4pK=*jwgpH!uI>DHLP2L0#3{fc69Kd&A~G*35+6gzEuz3 zY?2U`^|Z9@FwKWD4F$@qbSV4Q2kbFq@H0ol#}s4eB@ozxBG3k25*`RfbdSx#4LxX( zAeB=jIkON2B@>MxUj+zRL>NTuSBLW17eD!b|N8&z@w3bq8TN4BwuU#it6SNYAmmg) zjJCRM(abaG>HctaS*978ZCTs#EYgfQ6)|5!yVnZS7&%NN8!jip-Nn#&T+h-8}E;_3i!I zv{NJGv+G@QZYO{J@Q|7jVYvdEyXR)zUUJga;mOr}akam=+U<)Vyr0%}-MT2>T+O|; zi+MLI?f2>MOcL%%TniKRi-YWE*&ld!;B&@T_6T}dtVI^pA}9q&^4N;9^}e~8wZlvy ze%Q}K5lPIXgj%xa3QExe&Z2B?YcnAPGKhvZ8^~ssNdwm`OhjxM8EdU{b%D#BWMbPA z9fFYQjM5TL2Mi=EW^nja#3>A!Nrn)CIten~qN;{jmW7COP%+|+%YbFvZztyb?uQ?# z(5uILCf;dTM+#T|`iEp9nVC{J$+KHh24u9s2vK-?&k?GU2?%FZBN>Fe@oN|?QUFaN zq9<4LaameBJv@AVzx?Gq-51(6+wLFSdn`+@rG^DW#vG&~OcIg1I#rfZNDD1XTUtLZ z%{$m2OrF$wcXLE|x-+RtQm~BC1P&rWt*|gHM5Qt3;Xn-15{C=f9~c_QygzRDN58zP z?{xjkKm1QWRw-4)&DK?Jk6BfU1dvQrDqkMv@cOtc(~ijtlfbz!H?yJ>d5@%rlP%kN zJX-hMHfJp$zJFNE`{ULvb8YArMdhL#ZZ59Yek@#>oixhqr?v*`Pr%Y&K`5DxNyW;|S*%nuTDpY!Lh zKQB4`?z|3~P@k`$-4scoPe-tXEygz*7_FQu5rt@UY^3zv+!;y!iT z``)xqbM*-h2~{6hpb&K6NEvG)24Ii-eQYgUp(MgIgW~)SmkN)9mn)nP%gd9L>`Nwy zNX&gsVJyPmbpH9@|Ia^+W-PQd>&;V&m*=X@>JdwUwdBHwZ5zu z{ONi+$T6Q_q+4q_17MgDAkVp}_3PaFt&O_^W-&gjYboq7iV&HX47p~qSgAf8GSNIf zt*nFqHK!%fd6g`d3ouX-W{%dJI05R`h9gY{4-X7&$joEt?11h|j`aj+@N`-QtxW9#_^~NLVNg)>6f*+BowyJMv@vqQ;~`E*RCS;3h;Gipj81?6 z0-)u<_@L?lga=W1KyDO*9%>MzU#P8skJA`}!-66njWKk%?)R_P%i(aCYI7<8q)cw$ zhUS43kJ&Rah7*7jxnu@>pf~`+5g(ioOca6v5vJf4VG$AjiX{BbsV(xKBW4PQpL{!!#vaQdx^+q1&z9yEcR2Q~2R)0c|>5r4ocwrj)>4 zN5_4i0A5y1iI^#8I3D=jiI_+=N==XdAL|)wH5LyFB6iKW(927r&~G~b3%W^(001BW zNklgl2?H8qmgH*{2rVU%IEI@6A-8>m29PQ^B^UAYv4p#$Bhl$xnG_J`G!JC- zhvg)K0~`s#DJ%%d6am>Cx*`yX7_$@kaiygMItJ31X6DQx2oX5c7*P-aADnd~oDY~I zIG6*XCGzy>d_YVKhhLOM@KB5bVnEl}`XmNH9%>el5|m8pX!;<s~ zB2J6U84*PAaFm=Q2~cA4#Rmr&3G90_rEfa_{O|v#KTA2^-*lV097@pN>mryzl#3vfJ=LVrt$0{MYXVme$N;=DgI^ z8F5|tI`6M<_aEM!et7xyuTKADO()Z-(?5r{FN z+tfJ%HF;MX!H`GG}DegMHMiRNjM?1xkEUW%C+KXgOH>KN4TLQ z?QHIiI)UxLHtE^ZvdbcHiA*Y-69h30Lwt|a3msylR7$JVq|tkd{BG-#JPF^KoB6v zBg{JZpBBaL;h8bO%mD(!e>r0vz#OtL1V7+cGu$lHV!#6|9W%@xdN2<)1^qJg{|^5{ zyMHYim{F$&qJ-S;U66)agqK7mEpr+JW}%b<5!`L-+PXWCvyrG|Kz1hD_Z`BrAmCJU zH;iz1obv%fn;$;%(;+0K**)hB2}H1njA`3_XOhDTPtS-v2(dTYn(wnSN2)ZNEmFVf z{PSP_n;&{N5vvtSB8=q5m)3y^L#$EX14VqIyCYAkq2594cqri7##93)49BexCj9Bk zjZ4+x=6+ZYZQH!bw$1Ne){=%qQuRKDwVXKa{rctp_oIJ#clhnc^Itq4zc-tg%N0F9 zV4uD3dO9tEqpM>`1RE%_Pj_vRrHD8R1ZviBIeNR6326177226 zQN?@H(MXWMMj`;z*^Mzr(A#APNHa|5WB`L`U0r#&jc#bPR3Wl(EJPA;J}!)wE0@f| z1Yv4cR;ZaELfDtAB?U7%1ThTLn2x}6K7OYH5~j=nlQ2$&jw?$7pD`51@CP6AG0t~D zb&H5BLJz|V1j3__2~JELNP$G=8u36~0YXeLKw$h6`56Ep3@kAb(46i73@#HPCw{F~oJaH+x!4%|DWl<#*Pld=%# zR6r>v0zl!RxzKSr6ObSZF$QV}p9mN^lMo+D6~V(H6;2xZ-MNBI21ge#PIyGKAlo(| zTZjne+}r;3_6LJ&#>3O{+du!+KMzQ|Zir4eraDVv_EHi6CCGDMlT^b-$VkQo5F^Yb zGXRN@xnuByOHRR~85jTpBtk2eg1-N8D^1#@}o+ag=Oqh!&j`J}um6;*s2So}AgA*VocMVVk-kSj;1qhK% z0Aykg01zrUir9L@V}+V22;FCB5CQ={UX|RG8HoWQ3;-z*By0)=2L?GI5r!kUYXC43 z00su5{XztJ!00d{LYQ1V933=Z0=iis@&o7U4rcBM5kV1wh%smXarD1I{NvQC*?4(b z6Vq+)I>X(DhHA9?AYve{Ih7TUYY~buhpF$a-_?hryVZh0FAzd2=v>W!V(w(wBP4# z)7Og`q;ER^{Fndgw_$Uw;sz{2lyuPSfRKjv5I6JNy>Gj2`~3QK6JCTM)aS%cpRdy+ z6?u9-j%nAcjsY0d8d|`%jbZlR{?iXY(W8&vxlmvS^0IQSPBYMK4C^B`7@uB0{q*|d zkFS5w*q@hQ{r1B@TbI>&w9&}f(MQbYQxY9B3z`P>sp}zT*CZ(b5E5dPD!_rs4JHI8 zs=ccQfU`FMg~Ex5gM83NXq@2Xc@?mdlWX)Hk`yLKFfuj`2TDX+(>9G6`vA89^q)WX z>zlpZF`NV-z`@nQ&0q`@7S~8DIb$tk?jVo)TO=u^GLhE|=zs+CVbgSTBM+2JDO*Yi z7{It>C=ykmRz!|I)GUyIm?9!vACm`W2m<&;j)07j#8`mX83-dxK@bDg10aC^WESQ? z4zMtgAPV#_{{M!nECUZZ-{ZIBEnr2ATF0TRo-rM&IqEz zIUP?q7Y?`Hytgqm=ER}irU6EfdT4|T0jk@KF{Y}|Io)Hr8F(S7Who`qLo6p)h4+0N z7W#0^7=F2rFQ4bVIZ~HAzW;tH)d&sI_hC6nkRK0{DE;(@w)X@e2-Cn`FP=Gn)A{Fr z_dopES}P$EWmQu3IUJDR-tM>Sz1{t7v)jD^B~uTeL*@Xu^!|F?RilUiq-~#JuB!Jo zkf|o1h|ibpejoqhUmVYe<$PL8dD^#qpF04eS>`N-Ci$(kFSpSq4)>ut=G^V}^X2cp zzJ6ZQ@x$r2AJ4y$Y!gDM1y1wns3nQEnK(;!AnI_oB2LUxF`NN?pM6)!HBVC^GlkyW z03rO|rie`K)1fjzz>=jVLx{tnIJ=n*^)@^UKF+t{Q4%AnhKo4z=IqT6JQVl5fT3Kn-dAajLB2toCz6FoWjxY7h3u+1IEX59D0Dd zA<&vv*JDMD$JPpa1IL{v)A`!nZbB zpKXWhb-cZ`K3iE6psQ+xKOdGcIxwY#OR3->!X7l5&rWZzH)8ZeB{O3{;PtKDx1j<5 z>>sacBZ7_v-aXahX}R6I8qcQJtvTY;L6$?Au+3?`+nA9HNv6HIfPH@bn>jb8<^B3` z<;5}joV{sE4lGHirli;@xdVYmYo0UZ1hXj`3a6k61wACf94*U=jH)Aoe1;&Ev}p8z z05{iIq@?6I+p#XEno3~@>t=@NVT=!e1`@ImfkRCg2rL)?Z?^%E1({fh1YxRy2W;B} zO#~4N8C=8}2_aDMAsoob*J+r$y*voWSUaouk?K zdG`Nw-~X2QDm>d9!bk{-X%5>ve!bdgk&^7)>cTJ2i4n$}%$yTp@V581&oN?7O*s%I zVyKx9m@UlI$*pS`PXho*OProk1k?p`_L_-fo{yfA_u~mN*?L zWgy^oBT2XxVzO}m!{3jez94!oIrTC6aKePnwXSX0H=Td}cmLx*A%Jb~ub1t5chhLw zAaN-O0f@Qgg3LPI+>WbUZoSl!Q*5{K`STWl0G10aM>?(Cn`ebz?c-wCpY(eri@L?&IU&OHg6bA7Nr;kJvp`=CoU^4&CLjo8 zX3ghN0(;yVlPwF>g(FNSjA>J+uuB3IHL&m?9)xdhpL_e`{rX9= z9V&AKae6)-QbO~9z-^lz&WwRx60QfV1vB&135e!)zs~Em@B0L&@Ch6Urqj_vXN+m8 z>T2l7$W#5+_wPR*)|>nk1wqCSnOrnHkpunvJ~57{e^yF7xu% zb7rnFre81f^Ot+cb;eM&FJDJp3PfD4Gr-qUzUln)U;L}z8NfdJcK2J`Qbry51k4eOHQw-eIYfd5o4)@)<1_qSO8m(k5jD?oJ`p3WF$J*Vz)Cd0? z_O=1qdMq`Uk1x;fk4MK@ncf|b&qp?l-c`py0Ml{bFB50;t$TmFf3_H5A@C9bj5yVa zd5*@wwMg$xk}$alGLzasCY|vh8z8VnL~s@vZMqRB5P_7zUBN`dRkg^Ph%JoBBhZ{Y z>~KiuLpnYL7|DtKQCUnRHUF}@AwvWhQ@3UgAXva2A{>TCIf`-UoD%>z+yM{)j;mzG z@QLVzcvuU9XCZTkz&WjC3W%i?3Wvw~X*xNFc&V%r^7zyWafJypuNZ6`;4#4!@s}C~ zM(lI%(891kkdtPTp`^&k2_iy~jVfl0!HW?t9<5?Jd--TSImTtC=a_p&PvSIs3!y%_uZOg8ty_Z>lD*W&^LS*T$HiOUSh$*@x)ITR+h3mFeYw24DWh&wuvMKlXi^$LYkih((kn2F57bZS0)_fOv);4|TMbN;)cXK{=*^ZT0gMQ^ZhbA=?Q-uoJFU;FtgcKX7M2r-4o(2!xmYQ+4_yky7%Ibo?(60iUO38okbqv^E0$bmFi9jwGorGPMJNPQAC*y1C*$^-y!+SS!_v%(&nB+jYzdt(#6GjIa<% zq0y&}VXa&5(>+QO4cuF|+26mE82SLw6CJb4>I57*t}Za41F1 zefsd=0tjJ)-!3tf0lK;Nd(>P?m1+I>#D|sNou59uKN1EQjiwV|YyF$fKmWzQ{uOZ) zPJ!O`ac|8vv{}E|{jR4|%?oA8W9UA&Bx?kQ+wru9dBh|pS8pAH^mJSqJufK`v=5>z zDgF7c&p`^PyIybCeQZHcLUG%6)d&L%eY@YMIsgnE=kwuMmh)k)iQK)L`-q(Kv>n}T znjnT+*MSmazFYpQ<8yZ5%)HK{Cok(>uL&s=s_^2 zkLjtNor!Q)S-t3SnPZM`nHXMKHzk!lDt+f1rgNL+OBH2-OOf~8Z!z75cWPJEM*Um z*_D9QbzK*hS&#nV<1vxdN^jSGy-y)52YfzLA_lU;fIz8GP(Qs(hmumHB67LjFK=yG zxeAS4fBta-a2CF`O-+2guthMxM&*$@cSPX`%h9U8v zJV2Jr0MW~mjcn_iMlYEml!e{Hm0F9MSM%AMqY^mzgv59}^7%QrV+1=YAp^o9&wVsA zD#DzRPu8Rm$sDta%x&SCd zETx87fH~lja!PzY7s7Tpi3nb=w>fDjhT|O58IU{+IofvHhI_<}fZhfpg%}nu6`!B- z(+cmO@`tB-Ueo1vJw2_L%gxC@eq4&65EBKGI54s&Dhx1od%N$q9iN}`(^Jj@uKx3v zaaS1)!#?P<%dY#+7&rl8`$8S3S{Hs5IpX++Lchk_J zfW{e%NRN3RJ0(g9wGS|A8cCcCU%xhl(uYl@vZPYT6xtr1d`-y>zP@c!p-(+OFTZ|Q z5$irK5y2?aHiMB^NTjPyQx9tQ83vhPh7x>nW_gM8qo|3 z?d~IhG73O|TDbZHwnq5))@D~66Not>Z<`jZ-o4};Iwdj?I&!9C&>rObu7nZ}kRby2 z;iZ1)#E1yl%s>G=w{ALh`ar~-U_J5qbYP4nrE^^i^CFUp)Rm4aoR6F;5{~oBvJ@O+ zAOlAH_~~}vHGs@@?{nX~E4V8<_Ssn+(GM$*-us=Afmb>m;Q4@0$5d-dOsAFC z3j6FS6-xS>-yVMV4-N#rEjF>t@{k~kl;YV5mhyMEL8$N%O3_?J1!^|p`UlrUGcIgj-mJSCGL z-gb)scAPqMEtjvGnjLB`dA;2B!;&KyIWU^_L68iTocGzmF>wM`Oz>dZB$062n*vbE9N|P+nESSulpl`)4^g&1 zc7ljPWuZJt-KKCB;pgYVoCFz3`Y<9IyK+ivH?EQtUK3?d9j7>JB9UGI$& zfx(wASO0}Q<^ceqF@q9w2KQkTLUCHpIh~&QP-T^z2+~3pb~vtYZF(faJjFf}%91ku#nDB*#MpfeQ$-~fQ2q3UWx)SD8O zL~!7h&(l!Hj07^Lx+%69LBzhUXA*0z?`8}m5P-NWtP?QU`w-$D(_-2n5gMvQGFvkR zgkZujq#S@YU0Dc`_cki!1OztSVVHUZIIV>oJ&>r zA&ImxMe%m+H3?NDfb*I-_B=vu_(x3^nsG zP$6cbISf()H&a#*LQDyZEYrhG5nz#*cWb`&pZ@dj|BD6WRMZK@62_b!97~lGwd;QC0l^RBA$uP^Rgx4ybgbAq?`~z`Q#rhQJ{%4SY#K+Oy_71FuiGmKeYtK> z{QY^+F-oRH2_t{GzH*wXK@_fvBJDmq()r+TWBYp5QatZ9B|ILuh~<>`Ev~z!l1AGA z>d%+Ak``|$GivHlaDfp67fWB?b4Ly_@ z!1;DJLAG!b)NTNrBueJtj*cahFkJSIn1vhyA&4*(qSREg?DxIaGIZosvT#h|NcU~y zj2`x|*)a2%j_@GVv7o!V2NIO$TB?=hEQ7ZPwZkcW`7*9=^bh~xca}bvoR9UTmI^p; z{pWzmSlmgCBp3lL)Z-z?cAsGiphO5j;Z6Zgh=^_w7Kx}Hmfyat;Kd9NQ8le05shrXG$dd7&G*=vLyNNw1iC&TvtX9ols8le60I^|MYsV^n!g>;L)J^-x`Vk#xNeOq9i# zs!cd7GNNz$5Gn*p6j=m>TI)grz$_Vbe0jZcSs=isB80{SCpVWA#Q4L9RWdCLQ~?Pz zMP!;90hRzE5HTSF1SX;0CtzTJJB1^$h%iuiOb-C0Fh|C45M-8oS__HKuv!l8)(nJ% z3C0|wYfAFCZ|YMSz^AJbAqazGBw-P9_X%1{Qg>6#2wc*#0QE7(Zg*322#nlDFydX`jJ7I%?-o-Scn+PQV>lu?VwnBiAHF`F*4NK1 z*X8oMyKBxB!Z|UjVeZ7j7~m$tsX)p6{@t-w4Mh?s09X9&&0(UGf4y@qoZ;PxMt7<_6$z60d^&Kg>}nW~ zTD%KFk`Q9x)aS?v<}@}kCF11bX7(6<=OoV9+YOwN3X+-varW?L6MDNpq%uq;@3mwR zF2{3(e|)z>2th=4@LeTHvOHM}YFwJ*U2LM+cgKDh=emc~gD+%^} zFQ;c=5GD?q?u)EQy0x}#t)}N(Af>C25oAI)RdxINc2RSHd~KiP@+sV;CIT=E5uyZ? z3CV&0-ALITk*T>MQh0ELqqzZL4m@UF)SX}k;_;9~RzS$5gxhuda=G696^A()l+4@w zFZ=%Yu4YD<4k+w_DT(3q*wPX!ofvSAk#Hd3365h=?lxQBb&S?kaj0$GMF5Due7S;^ zx6cza-(K$odOoef%pfZh1ZgW^YwP$_YMFk5ZbDwLlNnC2mk;e07*naR9%>T zsJ_14|I^>TmSr7dAaDSh?dy_0Z`WaV5IzJSmZZ*e><|jX_tCXGQ`*{i_bz?Y`Io)V z=VN+4omePC*hIqEw-H3demo?deI|H*sX7cJ&WGbrN5kuVuFJuwZkNr$m&Izr=>qBO zq#QmimbxVN&|t`69--u}#swvE=xB+A%m^IWi9)A?#vx}Thk(6LW=fgK*`qmdpN-H( zXsJo{F>OOL9o>DVi0#LpUQ4RSTI;%=pK@zE6K9G!roxa^Gt&9pQ}+>jd#OhRt}6!2 z-ZR$}rWnD*_glAcLfQ9in>ztJxPgI#Kz0g(w}&wpfz@w{2|W8RkI)nmK%6s)dq4zO zk_^Bo!Vp9e00=@55N-gR03C8-P7D~x|G%D&CAmRNW0_tM0RdK`T+$H%=G@hL%_}p_ z@WmAXkOa{P5s?W6APZ%p1q>#S*SF8Zt!6U4rd;mr#^3?~n#RDb^_S-*iG=3+rT_H# z^3&Vp?betW$z7;3X^c)#v&0zt52r;~WP#RNMC@a} zUdMMIK79Q;5(x>YS;_#6&mRucM*_^8!9gfaPf5oRaEK700o2CaJAKpn$N&95{8d@X z=~%Vf+uc$&!B8_G9@Bk#$*HLwmTG~j9b6pXShIJyUR#Gz7RthV-?DHUX=^(rB;{>) z*ZA-Lx}u}1RY_~*;RZmYjsotOxNrjZiGTz+J(!Z}B!)JJa9$2+?ur&nWPpIkjC~q7 zGKrfJiF-tZc>u9QaTsQS!RxXtt4tqr($o1vW?Ad=(0j!FZNKiO#}&KHA_N?2NN6R? z+~j<$!*@iQ)8_O*52Ofm$8azU1T%9m0tjbB0(U@g0iNblfhEi^K*O0RAR^FN2!c2S z9%_d9^uFq>%LDP=-X>)`-yyfAYrxl)kz__}S^ZU6fD%YGYu(t|s&-$zcF zk~31SlsF#6)V#={QehxUi1u`9LU`5cUWJz|nB3-ELdS3ujm}5#Vl~7>O;A?sxCqFRvrl!VI@ z+U0GldGQ3Q?Qs&R5=lZv0g8xYE<~i$G#)Mq5e^76bw&=3?cUC(<8Txf5$s)`P77Oh zugiLP|8l%szi#{I3Az+|`||s@y_I8GYRxIBN4wp(o26WC9y(eUo?(K7#9zMb5g0ME z6!nG=+#5I$3Luhb1gHRmqgpeYj+}tPOGx2zz?>N@+;ST#{J4T5Vj;{7Zm3{DjDf!I zR&okbc7ZUIM_m?6N&ub_9#t$sG>?S@!2;h#h&B$VWyVm?(~u5WwY=pn`NZb(-CMV+vN=se?7bQfqWDMDFefLGIA3I}=3C$I z>EU&mPOOE&*>2{s3W*z8_`3Gxr|yBcUP`OIU-tzumg$oVc@AUv|QI)ffPlR zvfI^KlE|lV;G$y@?-9uz%iU=tG@^)%>vf$#mDxPf%jN0TJ4z8Pv@{zBmK|{=CYyT} zumB8c-Otya&Ve}HAKkq-$2dM+&pHmhne_zpeD&kFW5TCTvkqEIDT6(pTP?A6Kff$m zswdAquo8g>9hvR0AG+spj56ske%boh*4OL-5~n_u!P4ioElYUo%v|?*ul)4fSI_0* zw;ub$?qQOMm?TTc+QPD%=QL_E8+({5Ybo{ZNzJl%wB=~|k8 ze?D~KxHROaNB_%@?8reRqSwlXI33H{S6_Kqx+SyK)?1sSXj73ii8W{(dow1mP&#$9 zB+*ic!-*x>2JIxLnV=*ugi<4;e27J8{Qccbx#0+WX?` z(o@}ecdFq|o*qGhv`F+)3yj}Co}Zo_68HD}qUsUDRQuWs)$W;;MeyDIa5z#?ZGBx< zA4>(ALhfJPe|o%(W&ikm`Sz=~-+c1`?CVgQJ^$ht|L*7C{rcU*;pOu9;fI%RfA;42 z<#yVARY(7ezx>{Vq^>C^L(CPp8AJRmtT!X>#@#@t7w|KXC!*h>@fGf^y_Wy(FoK6Equ_D&A|23 z^Le)`w{<3xX)3A~frryKcgK2Z@6+RM+Ec7V+*T|5I$tlx-LBLc*+9~}J5Yt^^V-x! zQF&}@YdwmV)@{Jy-~aNx-XVCc;~=42GQ!>C_5E({O^IyAxEpWlGuL`~?l0%Q-yi1n zRtFJ|b>%Q2LalmTR&UbGMRl25x0uf>D!sZt6w&>Ds6x%xLNqrkD#XN0MN35Yw6@J3 zzGVH=|M0K>t{LBMbGQCE#sTPaOQPiLHdqf4W`UNpCd)FHfe*VK$QN^1%*zryc=qsM zrb&k0CD^B-WcqKvISe%%(R(`{Di^dKRSHnfFZ09U^~0;T`{8~V>-qMVKYskv+hWc0 zu&?Y^Yn|P8W3lL*SiOhQG>#rgk?v+mtQyf38WzGj@EDQz`=Qy=9qXE(u8;d^+D|8Q zp>$y!_Jh`4M30_5jJF&rqTOyM%!$^$C9!7+Lr5%)gcH*GH8PnJ=^!Q&Rwh#B%mg8a zqR3QY5{^ud6e%7-LIePa007>Q2$2w0sb-y-m?dDICaFx-;=1$|!VIWvJb0KxH3EC8~tePxtLW306VH!>p98Q_i*7g7UlYjU6)w>Vx9|Jkh z^OEU72xGu3&7z|vQ&mjkBxF?yNr(G^0rL!pf=e+FA_JsMqgGq{4NR6PLLU8g2{Q~t zYmdkPdFye0aiM)%;^AG4duGcbq7yOGvUaENj@x;S2t&?mC(^dW`2tbhjQ|jd>)DnC zARO;>Ki1yh5u#x5^=6?w6{wUz6mVbH`&T0gxlyww!km1&wGb}A;hqpwTv)YjHJUFY@H zs{@1E(#Nq%m7l%k{YWE^ySk5#)~wWWZR>Ymf2%@){_*L(4h%AQny2+Bg}J0iVSxj1 zYb%HVLU;^gHSZY=N>w4E%|*mSkwuv)m?%9+p)Atcie#jMNfqN*BSQx*mCYL985;o| z3}trn#!Nvp_g+|Q)nIS{DU_0l@B|}3)-!GpfgbdOq?6B zfg*wcV`3IXhNlY@Kr+ldVW6N4A_6!P0F#rkfl?_QUKErP%j;3T(^7WQm5>mJYuPaMCq(Z~6b+;RbI*OuJDg*;3+F>_NzI4^HGg`(?Z@HOSNp?JHF3TyPuI&d)W7|E--V4| zzxsOG?WM%|{Qmj*L)qba>mNUzk9Ye~(-ErG77J*kjf05F?Pf*waDt~6)xOTy#y}BZ zN(K;v769D?nYHTLornt+VU|*p!`7zEOxeuM(Hc&7yF{OM2No6}qKk-tGn_ymxWgQj zl%xpHWMX23IYG*Ccj~Q2EG)$-2`_VVfcm*y9O9gbzctILuRRBM(&L{uSgW|ro;+?KX@8mX#9 zYppY5?MqN5Z-|qGB(p>$CTm9j zr>Cd)^Li@-Wh7x}5tYSy+Yo*v0rbbG<-@1;Yu`NVhMHkP+Pv*XdAau8zKqqE)=$$e zBUymV7Kw~1N`;71Ahd-fZh_+D2SSfG0U8l01omGSW5aGphi>LY73ZjUGtB#1;uo2?7&^17Ltb ztYCS_VW|Zc7}GG$4uu4MQy=gASC#+Pvz1KTMZ)X>nV;t)3R) z6yd9-5yRd47G#;hteir~Pfst0X&MG4MiLlk)&QiN=FT%nKtN{9>uRwz-rgr{HCvaM##*Z^tRJn$glOs*F@sP4+6hEcX8SDx_nr zFOLgJ)IIh?DW!@A3!NYR`MP=w0`{kI8g-}jZ~opr80=XJdy1fzj4(zp3z70-O+`w< zWnDaKWe;=@+fBQrE#2egW%k9%}H{Y@lB*YNmndx9+5CI)Q85!vyNfcpcBFYkhFwBcDH-CP)9rlCu zMYL$G!#Ip`IPDG~5StPc*_tv>9y1ZO( z?)mt5)}r2Wy`@DwU(Rn{-S3XD9(5W-x)I6pqxJmYYZhx;Lt zPy6xJ{Vu`la&ynZ($gj#OD#QCSc&LMThEu}Zn{6zyX$OoTu=`h#H{pVp^w$Csy>IA1;NEuDaM_O;V;YdrF_oqfyZifx!~S%C_YGjn`cg^}&NbWn^G}a2 zKfxlrwZ*3U!*M9YIZUNgAqtOGsBjX4T1I6B1wjZ(TGnN`tQU}NInW~9tO-EO0C+Q% z5l1SePvbtkbz8vU;oi~P)Xk>Rl`RQGN+cPa5lBnct>}+TK@Frw7>I%Sy6%SB19MxE zj-)!~(%d>v!|>JN^=>>y+Ol5%^23i{-wooeKVS0W^V$qoTZ{7j-8dE9O+`yluGZ|j zEFMuysWh#Z>g6&FMEy`$DRbKI`z>#6x%9`Ye>m=?R*pu*vb4p!S?5x!8}~)OX#LYa z`iFmb>6bP<4+G4BD9gDe%QVT{=KXzP=(3^~MYp=uOUbHoI8L|a)~t1Fhr>`p2&)n+voG^)I!+?uPRDVQN=e;%>&;ZiC~Co=gFBe2 z2$*5kLE_n&m6^M>G)82pV~buH-LtPLB&FzKH#n!+8oo9+3!0bq__9RsILY-ouQ#0T z@5f?8VPOrxGe#|*X~CR;ut;SLLh{4EACK3cV%s9uF z^RnI4fKn%JQD(Sv1Ya~G!=|Vyz6rO~ocL)VFx8B{avx`u4 zSLMTgs#1~S;TaxIm84ljkY{xF<<>dFh->9K%F zr%Mp&F)?L~NAVx1YrpOz01%}np_1}1k4g34Id+w2z8VS4^}oo}|LO}nz2 zhJo_;fBSAX*31x91%-DJ8mGG3?-fKuN$hPs9VTW7ktYRZQU=T;0IphAZyA1@8&ng> zFa>!8q7cYzhA@cwy4s9ub1f2P_jgCpboAA*u9+kSJXAKfjjB60Bf?M%GXfDrh1fwE zP|?iI6Ga59-jy;kixfn-o2UTWf@A{#Dr1YpbD;B3yN7S~yFHM<{L}w;m`2uiv-9Ql zL->-F2|~#PX4d8lCxO`0oeXeJB}6cD5D_P2i+6SpOJimrIBOzgBQzi*Dc}kbsRRzV zBgoP+2&zOxo@v4Ywlz8dOE+avMp9ND-O|HXvyV>}PTtqT1Yj6+zY``B5(p<;f^L23 zj!}nhU9>!(*M^=(;W15#99 zx<9?*)fevEu7&B?n}6B*|D%8Mhpy{&epG4or~ot5X*XQwc7Ex#)V`*anG#%^1!#H2&$B*mme%NzW?h8$KyThne{6G2Kce;^sB}HO;AXr#ciJ=Tz z4N0vxErm;h+0D|WY7JkU-~oxubZ0%^mfcj9VF5QwuHlAEmEvi{+;0)cPzZ;ztlhv6 zDyrOj&oG8UlbItkf~ztzkQ|&!CDM3jF+fWcmkpT!5l}uBS<{SD9X+6k<3lj>-x_a-y zOhYXhF?*hGYws~t9SfZov+PyJ!n~`csLbn{uuevxb!ni|yI)>>XYi(^Lo~gH6|L|enKa{s`#%SVMiSu&4K0e-Mm55|z zDWeag6s33NeziXPa(}nKJF4}ryxo_g7Pbr(QC3iLp@^PQm;sPQ3YUbhZiR$6%z95r z56|E%iRkXRof?oThh;-hkT9t*r&~7%F~|d%2u`S~7K(6?8c~&cj9lbNc%J-J84nl2v(}*Ji!l?2^1c-=6=?|NVbl<{t1Os46eFr653byS8rB zx+k+1$+X?BFrrqyJJtQZobCruL^z2Ok(q;lG!VHbKpUqUj7)&SJp=@z00T}e6k9-# zx!go?F5Sr$`~rma*gdc?}f|mcrrg+nNaoN>(XMdO6?fG{DhUIgY>a zv#)=*j>o0BGBF||820J>^yfeP;=KIg;bBNYpL?lF6g`+B5k>?L2PDFg?3o_Pgg_Re z1dxFYN4k4>5Qrfb=nVwjhVzHJx7HW;n}{$8Gi&l{78K;MSo8=%Cn6)JuQU~tNR17RnC?VRV$J@D1pAtVL30ISTci%YaJt4 zM7H5?gcs57#;jogMN$;ih_D_TAD0v!w)xvYNkZvx5A#M8qHM{GBu?+%x{s4GMWma9 zQ#yRCg(3`Q#6x9GOK^9OAa^B-B8bQ&c6Wjja|9y24g`b;9Lzx(y|93`Q7$|~iINDJ zL7?DnO;`XaLdncTLWxXKB1Cd9GXV;MP#{6-){}Vcu^Y=!*xWLRn2C|WVbSNjUj6!# z!}R9sufD6p{a3GkT_Re{y*;zE7BBPq0xX#qD&f(X)iT0Dh$Ew!5epK++TGXItvMyr zW+s%3_^VhSk0fDACLvI!cz}a|%nU%xBg2R{emDUMqNK>w#TpX{SdvI(bChWoeEv02 zl(ljqnN=u=;MRL~CKYH1fKD005~M{2cQfyvF%F}fb+bfn?R0`f9kDj^`RXllf2c*M zh;U*Jcci`G`#+oA?cr?&(ICgM4!7I&i`GB=Pyfpw65#F@zO3PAo(@x;a9eNi7^i(} z4HQTTr)?C0h=|^qIk?F7{IF#g@%7ft`LG|xI$o|_czAsWB!oB+ZpjQddgh?a5aNp$s}SV+$=1kYceNns_g zM46n4o&m4|s$dFYuxOYGODP2m7FJfX?%@tnR=~r11dEhz(XAz8DbJJr;s6m2faK7YSH&C&oaM=)K$ip$-SJ<@VtRd;b`3-ql^z zT^;XFyS6OuMnp`-+z=j4%n$_uk<3Nhf+=WoJh`(XWAhkRq3pdS0dV&e766tkFw3nI ziwqKx%&@Sf`KTJo)_d=!sz7w}G7iG%7UbAZHPhU~v$pIJ9zlmg<&P)Qhsm_7qIBO!@IdfL3^JZBxKHyi74JdRZh(dyxu&RY@0$wa~+$|CIHaHzsP z%20?>lCO_T86NiaD~W08V{?7?)!Y40?~eP^ZnvAbR(}8V{p0nA>-^KzUV{6&Sb!a# zfkDxt2^Z_cvW>dKqjwL2!qP$PoCqRL(g+}u1@7S#oVm7zSOHei@P=&=?T7?Rf+NF} z0WJbiM30S9io`%Hv3(NfRCp{CfF7%RBxzPggM2T7<|whJz?R z|GNZCcd^zf;oHoqQWvk)*~;oBZZh$RB8do4o} zxvyreHzN%wGThTi)RzXX5kZm6;z$KS$%2?vw{c&Hr7df#W!Mcu9LW^v9!yEZXt%|| zrN~y-3S|;)@g9WjVKmX}@{SUHPZdSp0fMr>E|G;~{tQdOd(yKfg#OeONOXtu)NJ?p5< zD8yzV6iJ?u+g4-H$-Fy|ZV;?y;atF5k>A~tk~3RG5ze5nVC5hm%a|OVj&z0wvamRO zETg*>kwip5q=cCP*}bQ&y%mACD3w@cGoS_$LU{v@Q%P%{77Z!Z%+!^GNJ^;Oc`5u$y;nnY`JH|7M8iS zP?_N=%%mRX=|NyXl%2@Tt0<7+ro+in#*}Sfr1ejLcPcf+w>GgIEep>O<E$R`?y09>_Q>KRikszX~0b);hWCR41 z$rhbc7_bNjtAr>oD`h4nDd*NacUwJ@D+j!g5RpeDr!p~T(UF2nxeHo>OI0M;B0v=3 z!ctHhImk0zz>;}gI~YpgNMc9`(GcN9d0uY2@iY#H023g>%^ARc*oCc1x;Fao_`~_K ze0;pz-|Y^E!Fqi9crAnOCXQTuZP!_EOAI1kwEp$wyX(HMwgV7wwPs9 zks<{p;VG&t96_t4h%9N3PtUu<5FD2|$DLlV4mr*9Vi~97B-FP8OG!MUbw?86^9F&K zGCh>Sg9*YBkPJ_ln|93P>4nnC6!1h%*`2FX36Iy0JosvAmI!`rV2wiK@Osb^hBywgbE8mmD)yzNNAw| z6V!55B3KBcr>-3}kuBlYZb;OkyW#dG{Voa}PImw5&7t09#%WLY`#Mb{Gwu#|KYsZB zmp}eLM$eJgZthtFC5?I*6HPp^l3Qaf2KOEUwTP?J5KYlfiyXU9t zG>9+mS`OG$4*dAz(_jD1?@r^yF;;@aC<8E-7}@-qQ<4W*spCGWQE;ETo0G+ajP0KaL28_4uOoPygy)|2LMz9+Y5# zqf@4kcw|DC))Q>KCrpVl96-xR1`CJ#n}=7APamFc>r{?z@%rKZ`Eh-Gc}dN$UQe&? z_rLX<56ISfw58WV06c=6E!-lN3k3=R)R{OSkse7v6cuLl@JtGVB*3J#5L^+KB%l_} zKyD$-gshC@?1&5qab~I(FnPov6bL3xvdCbDKv*HUWn(yVDXIZaXJ)W4E1|`8UCSUI z5FvyKYwISZFg~9Gk@IejiUfOg&y!7>(cgJbJ*NUQXofno$ zoqERGyKny5*T4Pd_ztc;A~XK?fBU~3?wR=N(jwC{HbY}3sW1zIk-1WudlIQRC;>)W zOqi3&oj6%py19egyk~Nn(W zo7eXNdU{&MLWx!;MLMfTm})`#x*AJ4pXbB=FbtVaOn`D2w&Ca~O+k8VGapj2z0~LCD^1Ze|%2QJTg5sVFCmaw~oUl}kh}Zp+e8%3e=t z!Qkto!`BE`&Brg&6ly(r;q1XuZCeiS+`{gwkKwGiNlT~djJAtWPuWfpzQ7x ztTJqOxg0?<5K+}afqfmrR`VOPMmAQ9R1lSn2orR-2-n`C420woSrt?{+=L*KB5Llf zXBq3b;Vz(#P>L$TAYo1#K7D+l-9SR_=BXS;E0jcoun-rtYj52nm&Llzm}q$a@7wLH z%gugzc{)Cf%h|3M%Z!INhi>h7clz$@@4o$w$p`%1-~W$aO*^wZ9P6L_$uEBAZ~XPS zt-kiJzxp+$^7Q!l!~1Iw-D&mp&HbA{{gYpwPP_f?^zp+d;vF%EHwZ}vk`$^Nf_m)*wHO!{xb$m3MF6rRTgZyZvFY=iM|7 zuUI%mM5jub!raFiQ8G|tX}DFTLHKY25oLe?QtTS8{Q!^BjOpn_~ai^|KS2MBjUcVdoxYZ;p<=BZFa-BNmJe}rzRzhV?Ljc zDDdoN32;FKqyRt!VMsEVbu;szKyxDjK>}n!Z~$j~d?n-Fohblf^_~(D0|aRA-K@J4 z}miAkRm8di2#whI)sCB>p=l5002GW@tNU!%|HHw zfB2svlY3`&6aoec6QQo!+%ZssA`lS6Lpy1xdl*=2y){WVe(?U&`?t&Cbe_tf4m`*- z=I}O^p||zPjas-+0@v_xM1#hGl3CTk>9Mnxm}_q#tj&jl37If2^J;D$K8*QsgndV_518opv(ZP;8d_5Sl8KRcbyOzG9z zLp^~vQ%pg4vAy~6$G@9kTGn-5`e`{1dAQu~&hzQb{ps7+Uwn7>!Xv);lkaq;j^W{J z_w8Q(>R)?uQ}Wwy+qbW0b8NMrPc@8Fl5x)=IM*dJ@3v)A_>)g=s?XO?@{`@Blmq~j zK$sm&)xi`uA|(Mq1W4*33~KRM`*c8Xh%Oo^4uHws3B9@#@MF^K z`^!K6ga7fbng$~RxTN7?bLnQ*t(&EkFalv{+B7u696|yYQ-#&kjwjsY9Y^~5>$j(B zyX|g&CF2NLQdlrxo{G@7S(u2BXkD7S-=69;X7m`#NI)KH=2B$L%tTCt7zQ3Li3T$T zG=vbMjsT`*DDD~n5H^$%LMhNf2?ZPo2$@9EG?jIo`{Kx8-jUK!q-jNilm}vB5noN` zzETTkGQhr2ZG1ZLhGS!kWWh$l=J-pm?dSz`MjLZ>v?lou6LIbx%aLCm)F~X zw%<&zUffy~EO9uT5|?$s>-`UZ`q@u!cKa`1zSv*h98c$8fAiwSt9PxL6P?ZvUw-k$ z-QDRtn=3+~Mn_~8DFwA#=D`ihw7I$5a_F0Px1F>`bn|dv!i>_pCL!yzx%3}=z9Z1= zT&DcV4|X4Yv?pH6usN+Ogq1Q_SRkxxO`HRRFeMUyG-+yU+5kPJtZIpqhkFD;Rx|WA z5HA(oy+}55b4PF_Z(bt+06MN|$ZWXGrpk^S9M_i@8Q8Tpx0DltH0wjk0f0yzt!X83 z)egN|7zvwOkY^MEuIDnOUG;}FfUvi2?iqO1P$G{|1OkwfbGNPveKi0gimu&_Jv>w$ zk(pd;00U+7_+Imm|L}kQ>lp5a6O9Z*t+8tKuDi|DT3^>{rW(Cu$xMpTb4B1fw;*Zr zpe?}Y7r%V{>5s0rIZYeBeRr=eIg6uS-#mS~?MR`00VHscEF_%b(d1wx@2q;_?I3sm!NWLwDleoLN3(+)A)`dWT*Tch7wq-e-mNQ;F z+0~`)%CKnc_ZJQw&fL_>^q9lZ?N-2jnVUNbGACKrn#vH()ItXS?)5vS3@K6?m&4pU zYe=N0X&3-6TA;b#uxWDenTYOw%}IZ+3imk%!Kj z#;KgnZ@&8GmFns1H{adY^)#=4zO7Q(2_m@|a{fP1KE zvsN|(gsTIwmz0oF@9O5NT?X#05eYH~5egJzOsLRicUiOf~d0m%*2)q_0n`_2FV^pF1*xPpf(3vJG4br9?BeO{Vz z=4n88^?>H8M4Tup9Pf|I%4+Gn%#dNbEhWotyKl$y>vy+#ng)@fj0)}>~}j6@rbu~5A)K?rdV(2d~r1)=ysf%&(pYj z_3gJ0OP_Xm7;u|5=e5pjdvbHB>gW0J^x_&+zq`FB9G_i3af~c!Gi=|!x;q~H>S}wl z9lh86Uw(W0$;Vf>?@rq4$Ddul|NadFRqZ8bq;S_n(0T)oL=px~ zL)93`-8vA0M>qh~-l~RR>^EB>3I|{pWHl4c7?QY{yF&wr)|xwTf^}XrvZ>~2+D+S% zJSA`oHTAG}_lL1eOvcQBEyxKo0=anv0_h;)YEG=yAi~`U#@e-a1q3q>_r#2xG6AJ< z3?|S3FbL=#SbH7P4x=;j{pr+NJbQNKj|#HyE&uqB{_%gQ&D465?2q9(^Sk?Q)dMwW z6y$)A%n|zL{&ZS(Tb?d+ofq5fN>E(vCjq*9H$R;9c$gjRvrnJawjxts{IlzQ-V$UD z*ZE}g`EaqhDQVEq?dHi^-{nDCYecElp7VC8^Zo64+71^N)9u6kdG-Bn7$p(H+U8OQ z#af0^xJU|!kj!ge+>IG9p!HscB6-LqF@U?je0{gyPTNw3fgJ+~AN7U8s6D*H>u>In zc-m~k>-oHhq}^_#y{URz7X_R$T~1eDefO>8%l$N%dxUe=oKhLab3LDr^TUI0rze8v z?QUvX8Gp{vArHN-YCs9EO4{dkINW~v(FY>Qd%wMV{qwKC z`1bhnOzqkG`(OU*&;R-V^VNU#cYgafe>A=OuKm#;f3r6K?VrAPeRb)f-C8(g5dcGi zd9DVYF%xnN8j^4th|sOO!;lEk)thz)10=~@a!$>A=CSKJaYh`PS7M~V2=8XM-n2k>VO{5!>n~}MtLY0eVj%h2=YXX5bizPx&<>ks4xS9pp=pb-CTQBWI+Pe zCV5DC;0#P20Xl0L6A@Bkz+j@=w`ViHemc6JfBoY27r!`NZnp1T@4tTi4x^yf&wuj+ zZ|inDt;;f&QDZK$UFPGf+u5952>>=@dGG1YZS7#adtEh2764%IFaby?564v~=YfGu zdw>Np8|XC2QY+)wn__S?9fwVAE4gK1O8NBoA;?q;g}a$Hb%>Hn$_2L<14I$}@X7us z4>Kbm5te7^fgKYDt= z`?_ql7xOY3dRSj;>!Ii%TnIfUsL`0!yh-K=aWi*EWSnJ865rRbvRKylMClLg0i@d(=0EsE@x6>$W4(nO(?oWU@1??~PZJDPs z9#7UhHoMDfaRwq}BoaY1pdc^=SMR;8YIAfma3(H5oQX3FDtRMtwC3KUT3BE(4|yN} z5z3hnkRXLiM5G}-=66{VA+vcsFQ#!`R&~C=KMNNj3BvPo`uf}3?Q~H_a>Yb448Sb6 z$K$KFryu_2)6akMp~X74x%Sn1oKE#L*V}i8wfAYr=B?L$wb|w@)28H-5h4i#dh6|R zwtHX^Nr42y#<80B>P!id0SpmEk~uxxFAsCuH|ST0=3kR%gA4FKkW^LCheUEkcjtE%Ew zl3ZNv$}oKV!F%H*l97{?JeoTqDn<~7d!o_Y6|8$OlHlXZEg~{v8f53LYTcs)N`OVU z$Kt*w8Nng2wzfL-2s|yVj9bCz4!5`G+WXv2lt9=4(NwHwAxV--NovH^%XuV)OrJDy&>JT7y0)pmBP7T9)Enu;(s!36HY z@V(|A|JQ%~pFs;4r&BM_> zi$p*-ZO|DokUF~nZUzKU11~9~lYqyPKHM zI$D58N-{wp^NEOBb71q3-a;|}csvS-ptC?kAR&?yQ6OmR5Qt2Vjm9iuy$_JhQM~~$ z#o!JC!8q2M)lOyG5CSoIpjmvc`RCvJJHHEoOla*{F4^&CE)Y#0kk(t<}RYK$1Id#+=E=JWM$ukSX@nYU^gvdo-h^ zYHfZxoQ~(U2deejRLxp#?y9QhsHW)99oo98Lj<eWGBD4 z*q=|$EH3ur`S6glKE2)#0>s=k9?t#a>v6LgcKZ=*CE=z$LCpHF)+GSW>q+fox)^lz zo|q%dLOn<+)Yi4uwS}3lYrj3L$9Z`;&!?qUa|iOE7P$7R7^^xa$VCKEy*r@;AtQ0h zB_kR!21b^Yb0(BWzQtZ02Jbe)Jok+-wGNYRh@I9j2j<$(FT~WLHNI zCR$F-K`zEYgpPGd1I_btwVyH$ZnzzbWZZ0sFwW~yM%Yhzzk7C?5BDbxcyGv0dQ9a zs2Uak?rzp{P66Q!vScDd%npz3e1Rz5Dj{y{ojQ=Gwgv5Z`P5`G5HPpO%eChLl|< zu!{|i(<*PSoBl|HEz;T(AkOkDWj(fOzl1|G^Nw%Bq{oP^M?%e(I z;(~#8Nh0c88)E{1=H0wouMzIhfvxI7Xn=tT24TV7x~Z+zq9cNMJgU~+QHhX9x*?GO z1S4g}sSHW7Fzu(^lr}=blzM{!i-3Rw7-q~FscSe8T3GLZ0ikAAbyYJ)DqA_6>S0;a z=%4)H^2znE-HarRX07{aUYgS&gM4VlbW9;r-{7)4lk@IJVcThtZ= zMW}?YYCaZWh(ze!)=uu(dI{%cQLQQ-*eJ&sYrx9=9NIxuQI|=Esg(Dh?mv2OpGyRn z)!WT}m!*BL`N#k5pZqt821Ibw8CG=#cK{M5wdM+khk4wMLBr|6zI$_i`=+VE`_Hcr zhx_~U;iKm_cB~EQgHPTYIK6#yu)q&Lcpv(Du5;P!p4j#3}W_% zroc(v0x8z$iGw3B5E%gbV?4FHchjcMD4a-$1&BbMB2f|`LuW=)n45j^^VjQ&+si`T zfB3<32FoLz`rJDVDQzy|;n*T*w=1n{sO-kH+vLP~sdYZry7s$cJ@+WYr^E5LfBJ*{ zc6>OUmSzv%gB8pH5CydL9$rSGkhMafGAjgt4ow44hY_;S zqvRwBgrfkpR)?}BfPk>xje70a)`@b8sCm$w4H3b8S!rEMChmP5r!)vGI=9*xC7kQx z1F>N4YJ@Az;~*(xZ3RUVAfhlHIsxazY&>eXseKLz~U2HJ)uA2AW39 z127^13bFyu%VBpp4r!WwuJ`cjyN9(^#r3y-{ON~&S(o+OX3sx-et%eneY4rszRvS} zm=_k_rSj^{FESJ6oHMzDn*^|_844ntb!7;W!MzE(FqzHgwLi*M8JPqCl!=%)C!v7t zIGQ()rfz}O-H7t(d_X5)foMW*+H)qiTHSzwk%&Af_C${62$G6>M_>S8iiG6K0if#c zK!6^7)vln-eIpqN+Um2(LlCfz&F_LViVY}nn?}c$1hafrE zC8h1!*B&%429)2N-hK1!{Pf9_{ce2m_RYWeqc1SJ0v(k$zWhr7nna@jecYos#uJ`2J9;mo<1cJj!AAari0 zBuEbCGC$ZnxBW9&>slKCrBo4b#L2%&4A%^Ls<9{PPrDboOK2$07R znH?X`w`vxu=8CP;y56U0;%tDv)Eo>bCzxQl-{@zwQMe>`gr8~iLASr2L#Vc?~2;p zjR?ep0W%?24xC7YxUK@ zBg}k#9J~j#Bq+k&Tesf)v31*<*VcVm`>M7yYb|P34VOd!0ZH;eCGjSwoEV4$Y@EvV z&F-W3u6Nta%tI~^orxB$%{vW{N?vC>E$wQ*vla*t!IUH{+S*!!-j>ZMyOOv2yqWNW z=g$P~#W%NKy*^cMSmfc&LA|>4%bV>ujSBwuVL6=bWb0wkX-ZF@O@~Fl{U&|%>?c?I zy=fo>5l!PbWNDAT6oej#l8(pQ51#L8Zx6>;cm2@o}GMEL58< z^I4LgPW8O3EHcR8*46!Zw`_Ksx~z#Q527m&4*TtHNa$cy&mB%OL`p;mW1f0lggq3P zIYDQJWxXGW7J$K&${F+ zBPZ8RnM;6klC`eDVWEIjhJlA+Dnl-k%MfNf6azKt088yv!w8(vs;(OP=+*pQ^Uwdq zfBi{q&~?ojMd0lEh`Kxhw*2ofg22zGa(RLvNi zDTReOuAQoKDf^Tdz#33hIWAsX27r_zX9VAq8}bAnF7fDCVF5&yIbz8%W&!w+t@dD`qUmzeA7 zj$Et55iw^> z7^>&n_3JkeUzP3f&~C?l^3WIGym|KQa;Zz#{-=NX>Q}!!T;G(g^UckEyURCMyRqcj zW-uhAaVnA=T`OoBr3|RnfM6;)m$cbj3Ty|NJnC3d$s#1~04PljnTK3Dpu3KlrV%z9 zW+D&ISssm(LRn;>2=zdYfY7iA31^X<28xJv(fi}Nx+8MtJ;y#t%A-zGBMxNf*5|r7 z7+_fNq6-Q{^hf2oa8j>ASh6JM2zT&RtvCE$^DoO{-UTH#L!=^Idtd$4H{YF4^5)pz z|KQ5k^@~5fy`Ssm#hdq^?`YgUy_}l1d7U5L8aSO!w!M(nt)%qTi+8PsR@-cbG}V-D zpX^8^r^KdR!Mr&N!&yS zZ{OUVPVzfHeM$%~zn<4Sx!<>on{AGilucFGHWQ7TDIrLXWsQJ{I0w|$Gt)>ROIul_ zuWgxC1`vTq1GQurEUCdbZUl#UnK6dwCrlCu-r)Y+cKZzlw6k)It7$G&Tixz9%^Idk z8PD@+NMj!Id96S?jx>&v1qo(>XzP8RGW4cFS@I14(i>qMFrU1Sy@xA7sfA8+$LJ4cqwg^~2laxr|$Dd_L8O<@EWFKGu`Id;Rd{-MOv?sJqKN4crypyA}#tYa8=G zU~cMQ36TVXfrwius)YpwpgOdur_q-9^i%B?ge=2A<4BThI~Fi! zQ0tg!2>0F%0+%+M&T30-NB15W3g}LOAWS(8h!jA8gU6^%%+gv1!6!?lrS`VQT)|+h zJqW>cC1Mt02_g(|3p4K?p0Wt@ZYtAAB0$MY$|Qo|Ip?Mo!UtqGA!4KIp)5c}Uc7m0 z0oP9^_ha~4MwzngcX_`r+i~O|U7*hT;@#b=S9ePK*^hSPAlBRQJYQT-Uw--J<<;dd zT$#eToe@Eht9AZE8JxJXk^}(5}r~ zij)AU-6A|dJsfCx>< zSKqv@h@X7^oJM|gfB*S!d>BFBef3cN;YS~Yfdi%57a~CFl&p1U7#??AnGw`mgYKz% zgXn~`-A>n+8-uljB?@67inXa)b5JBmNJFBzJqY3^70)4{4c1(;$B|)mBelLZb3g)d z$W92B3CVQL!ebVo#bSwo2*IGY^H=JIVKPP#Xf^D@oA=hWoNSMbwjFb?Lht_nh<2L7Egn<9_FaFTc*S6HAtD8N9aQ5(AhOTQr zJIP24`!aZ1udbiGy_;X%-v0PEKl${kv_(FAUWarx`)XbN?efh>&;Rlco}0%0dXL&$ zJt^g%{Pf4w^m-#ZxVhf%k?D_q_Ah_)FI*fR?#JD;zxmgGdaCXJ_^1EYHUI7Z@+W=0 zyV%pit%PVw2*x_wcGx!cFb9B~5^+MYURMOf#DXE5)T75rJUGz(?cwI~vTN>|+k8d| zbG?69hLVLNAwj3ZvE~88`Cf0g)4)jQdU&{1J0Xrz_BdohMAYqR^>B(tS*CqX#OARM zL)25lQc3X1$3rTx%*&fYANPqR4=@m<);a@qtE)L7le;2iAx?vbCLW;qab0V4YpJ&Q ze)GQ@FC@SlyAE$}U#)(Yk~TxGRqvPO*^_;n?L2oz`ueK}Px<)=8&FDt$J6QJ$%O!^ z`+LuxD(J=4#U$g^!}fT0e)IC-Y(_(F%>_Bk6e=K404ax~1+~^m&`1yniMt081Jcv0 z{ca5N2Lw*mo7M$FOo`hD*nLSn)M~ePw@GN4QikEUwzQ%Be)sV9l%eHJ=eA}Klp>6{oxmX_wWAgPoI6r_`84b|NiSWQkm9YetmfJ_Wb0@s7S|p{P_Jn1{_{L z{N@io(lAw=PrXd3=}L(Uv)1r{G7duARe2=^6H!1$Ym@nUw<=Y_GT_srC^deo9wg73RGO95%K-RGr#ulbkh zVzVCOS1(@N&vzev@}%T+Iv-!YUO)KY@{@e6;Ea$`eEroil{6A~ox#e(QEzYCyW{=c zT@_{)W}=k$54Y!Wm^yU}et1|mI|xWlT)SanRI`9WxeTSLlMEi#tCxh5U|-lz_`)V~)VJuRN|cE81x zEf7q*le;|{Vp)XU{OWqIeI+P_sNRvm!Z4QyuUrJ?%Qpy>s(Et+Qt5I zC%by?4xtSM!FmPiNwWCn)yv!O^!{>s^6dEsck^unKhEFw^~sZq&)dwe>uVBf8hI!; zHy7`2U%mhSleOyekALtVzWDjvPrvc$Z+!T{`&U=j|LhO`&kx_<4Ef^x@udFVi*N2W zo9T2P3F5PlpQV)M`&x$b`u4?EFE4iEZj*?BNgfV|`$HRZE-8guwxB@pf{JTDo^7!X zg~bU=v5$VRJspm7Z_`i)zMQ!15-h_ZKPyPi%2U}ktF`%MDVIO^Q2oTw7^F2%c{`SI zH!L}MSG(`)%NKXgo_NGAWj^Ur_fZ+?J8U;g4(r_=iQcARA#aD4OXH09yl%hTahld<*4 zEc+}M7u&n@{deD<-oEO`xplQx-8$YroTi+u!LMGts=d`dBRX^Z<==Y7VuaPbqXtJ< zw{}|dzzVf`7ZE@NgXOd$cwhDWP}ftxe|wtecsLx^x}HyA9hZ}yW(@)q%HuffhKsA| z=GpG@W;bs7#f7j}^|cJ4%Mo0ATP&88IA=w6z>r7`fZ?sVc{+a1sCVb!{}-}=#~m&0&%as7vX_OqY=>fit1 zvrp!Fx19#Jwi(O6`?p{2x0l`Z-~If>m%l!4^4P1V|Ej?KA-T z?VE#Z7(ny>|50}zJG*Duec$(5JO1Mn-sg=c)~VE09oSN{P1B}Gle8KVKu7{a$B_-_ z9wfkk4R~yLg;lwvT@t<~H9@JHwd-%-uUcWCxx?K-0 z31mWQhsL&Z?OBiLk;S8V6CLdK69}}?A(R}2KoS}PIie)FDom=&IBRoZl2lnJ=2Gwc zp^z|*@x_bX4}Wy!lZt7&-Skov-QIGp1?NZsAQ8pJXhn);5o6G$P^j$~y2%m#Avrx-<|tOWk3*y&a!lb&=)mF4zu{ab0pDxt6kOb*=UKe%DP-mMW!@MQ%g>7ytc- znA4PUNK7Q9rQ(t!A|qlDQ%b=zqokAqI9NM0O+kbVc!*vKkttg{2?P+qDD7-yjBE@H zK}yZROxE{9pPaAD(n#rjKpuqv5-6nvj>O0(hlxX?AuwQwB4!4_Fa#&Lk^)P^IdZPD zA_kl#Vhj=?S3Cy_N^oE-Q0{GjEWX;$?|UCJF56n>pe0kBk${vLpbpW8oEgP0u6A{) z7v(GuD)$J)M5%gzuy%cVK07~NB?M)p^&R7sB1~&``Fg7ge0Z_k_dN(gk&G^5hyakH zZHoqg|N67LL~3*a5RS@sOY>wtf2^cFuH@bZQ_p6zHcsPacW@yrC9PUmE>D=!p2e4! z&zbNyx4(IF{pdE|fngX{ALt9RZj`+jKame97QoHllv{Mq^G>sR}(_p_ze3SNBP z$B5RulQYFK{_K+*E%oVnd2}XcrS6Brqjy)tqYsHP1W*6w-#kAIY;{yf4t<{zh`LGN z`ugeFam6v*Zx1d&&b%&pTM7h51Ubo+!FtCKiJ{CK2{`~G3#gd#UFW`heYoHHnAyce z^H%$Z|LK4EZe15d;rh*H)It}s5ZnZ_yE-&Wo&?(;{O;EFHfD@{mqWxc(lA6fcmW(i zNX3g%EEcmk`R&*@bB!ty+F=v+efl5&{9Ve7F)4(w-ojT&K}JAKB1aA&C_~bqIK$2k ziID&x;#>+-NPx%~2%)UAn?t9IqST5QdG8dJApkM5aa2NUg~5kH$>1Y##>=mE(g*-D zMFgH$f{aQKF`~?Y2`SVRC&@V@5+Vx(Bv$H5o6@;{n1+~xDFv|PGZ6z~m?1G@g((mr zdK`vGDVGwf23ZckziSHn@(3vT`Oycs;tge$4b!`&o9fOp3h1y zNtFnUKKs@67oShftUfxc&dyX-Dvm7VD1?$qkaNl9%;2{#@9u8X^2oSs*Z0}zlgFp; zJzPARwWlCg*LRzTr>nz$9g(pZPUiCQ!xN=VCNQQMr=BxGK!5#%|LfPUzxc(AUmhLl zewx1Z?bAgIoN_-VB>CBk%b)$?ZgU@>Jvq8Kt8`VGLfu_o387!T-Ukv0aBpZ>hFF_cC_Wz=2P_r3e7o z(IgZJMlrByO7A~z5p+(`$AFAUp?o0k{8t^Lz*r#S2{XYog#==v2wX7%gZB(DhMaP; z-VS3LEpddt8^*y(U3SA50|->!d7c8A1Ts-();sSr0;EJaLC&NQfFk2eazsQW3uM57 zG7&-|mJ3}JMIC(LfQXdyNI+6clq@EiY@BjV83QqvvXUqfqyQ;0@d#2DN=n6)LgbJc z35jK)IdVW`EQ93jkxt--Lt4(4_jh*;;4n-!dX^z3w%hem>YxAORp!lZnx>pdr)Lir zl9&ySBqQz_bK218{HFJdrhNAJn2V`u#cn%T506gI8L7H`JowSNsdsBa@HS{uD5b_> ze}CA_XY--&0PuEwg@8iVlS_*gwnzBEd*_9e(PcrRTrx!2o>b9tw>agurr_IC1?fdU9FCI0s zd5sZ{j%JS^oSdGt-}%nRZQEw@buB;q==|&Nd@U1o{S-Z3Ui#nu!mW4X$-|4k`l}aG zRr`JH56q`*3XO={ZW5BGoSkF0w|hb+ks*QRg*F9b^ns8HAjUk0n7GJN3Zx8}waSzu zL!e9qu_{G~?5*|>|NH;(pAEYi@=Edv(x9?T1OynT@Z$3RvzLe0*F!gXqa-I_nK7aW zK*+wTY=)3RBvXm367sL^^GHhWyj2BnO7^|qe?R)nF>^F2*l8GrD!ItOxb?vpDF9QV zltW}`)>bIk_GS=VlgLv)2^7cYt=97P&3#?es?>?Y6#B9jW6UuyKUv1;cs`d3a!LX) zgh<2~W#F0t2@YDIkZ7G3LJE$VQi?t>$}s~#&cJ{X%R+KN1i&&RKp}**eoQ$45J^N7 z3;+pZ&RPktRUb`M5iroSg6a&B;l7823!@O+R?&p1yN|jQ#SH z``a(^gRjjWJ-t|WuP5I_gbZvod+_6*e#+JK;Rnxt_3P)S^{Fmob;MoT39eqhxqbZP z^r&5yY$a3k!TVo-eEwv2xBuZMe@kl2c`Rqe)6;JVFxNMiqjlf^yPv+ie7<}jT$;Z4 ze79d)Q<>m>MqDn`>2XV7g-#6d>BGlwUcY|-<43|pDGdl)X>gfOhcO4H4KGS5Gi93* z&DCa`z}Her(4IxDg)|HWa~9uf|NPJY*<+$W(KJH$!zKw5Jdm@WeR=)k-`uaeKsmLo zmK-_fqm2Y81f)z9!A{wGiYWz3#aw8ELSjFK(Ro#IDWE`JvD8X!v=+b*?>U&QKFmyHiu1!@y*Nq^OyTX z#j<(aU5XDM{!S69#u(EG%kFp6=2y>u+`IjHbE!&Ha+xyz`yc*4nKPz65FneyD1uMl z|LOO?|MS1;r!jK|QRajG!|(jVxmljfE{+!$*Y`K4$B%aV{kGfZga8~Rz4OkaZ+`gq zns!w+N89^*0OmbuDT_*a=63t(>BC2@F0pTUBYg7Zoy`mcD-3eZQv${k6B2;ML@BeJ z889vsRWoihbEA(wGRVLvCq^Mh56;rx`}j0NkcI61m?34%_q$#T87W*mzTikaWaPT6 zRg8TBY`JQM#!{-~Vo{WZk8Xdk!=6=jb9uEzrdKERVqTWKT&!B57%&!6-uA<2U1=mD zMi+%(Qo*d&rjSw!Er25wT4t6R}=fD4_ z%l1rE$49G+AO7NRUu>TL;3q%n`mt$C;DNIH;Ni31e);KD_r=-6(uQq4W9N$tw>$jD zzxlU+_nV&}uy#==@b5qR*t+pIFMsrW{cDSdh%)A$ND%kC!+Ljj zaQCn7pYQFOnUu1-y}iDC^P)7fv9rH^@$)ZlfBTo;|C?WZdhJ~l$d#6n1u60LY<_w? zYt(F*{OWYRS}q3LRVD8FQ832rP?bWNs1+%x7=xTtN}4fV6pb`8flZVXaUvqdh!O&V zG;g(k{*V931F5sXtTZ=8nm4Lyc)5Ug-fvG%+qP+s=L@Y!N(3SVL}XlM!==`Iwu1TM ztISXa&QMa!nI%G&a}dcv%JAK99&0HQW{{c?Qp$luO3)S}q>i!|2Bm~dG^^)@DRiMs zq53Y4W0XaXX=IFcqxPCReAThsD` zv$t1n>aknfSzS7GiG+_%D-)tP^fWlOKLpMyW6r+)?SJ&{v%fz-J0Gq3^{1Z&yVEjv zS2J0(R^H{%{Y`{n)Zdf!&2 zl0tLQcjGWk(=cA$bbw&(D1;J7EIH00Cem6XLWcNO`{)1kpPmbra%6TAG1V>w4w1!N zNjWb>WrWtcteGxSKR8)(U1G?IM4m5XQvgTc#8b$Vjg&cvuSN?QvJ3)d3o$QQNQp5* zpthNLORK7A3bEboIm2bM(p9N=UGY+9F-_C`dUt(u3o^~;;_-ZDUB5ats|!^h%h?$& zPUT`zmRcdi&hLB-L;xgx$UY}zpp`};C6^pgAP3}>qMe*iXj23L0VoCL*{@vA-bUwSKc?QfXme*>QI~Dq zBtM-UEu-&t!~HKle|~a)Y;D&xF=KanRwo|?r>9R(nz_y%C`-;%Q&o2IA>~M^YD%K~ z@Z#ao(W-a*%&kB~o@Q;?v{lGSX#M);^Xtv+o6SDv42%X#zxnjGJNTFwBVvqMm%Dzq zn%BdakW?v~^OGk`x}%e}+wkb+yYI{sP5tC=chjez-HkTZRZ~bNR3a8~2wL$)ZDN=P zACzERBmw!Y_Rqify%Rsi%QxHo2#Itd@T580Z@NAu$C9&?6v%)$0;OOl!Gg*uw~d+? zk|*>d_WL*nLV%bUMIJ37!yJe!(Ny~B*&G3FA2f%P^Ga8+xgW;^8B?}1eLO$cs7s@> z7>6{*XrqgbDObmH&XRSLt_=y*Htk0b9$w7NvMG%c(c9n?7e)$Az*7RL3WkYN;vAJk zC4`h1vz@XJ6uII^kul=H5~ZBc$ObKI`8;_LFpHLg4G`h}dP~Gn5$8-9m01Q3T!WB; z18T(;&xO$fl0YG(LSTupoN~;ba|SHs2$`wmk%$S!7!L$&@}V22Lf1wM#)J@96j^D$ zAKlAW-R9nY@p-@7g@nn>)Vm)owPC(<;~u3u-rNA-tZgoqi_@k(D)i#vgGWFA*?;)y zkAAkS+Z=mq?*{jQ&n}ISfrEwwFMt|_+y>8m+QgZ^9P)MAjOF|Ad|A+7Y;-hao zd;F{^Dwu{Y<;~}BetUG*zVmGU?zDSo0D?fza0-d63q4<7t? zfA-%#T77gjdoOvnSe8#Nj#jf-q2yv&)Jl{nkwbx!N8tmNQYrw-G5GXW`{&>Ny|e8) zcb*Gb*ggv=yItq3&k4to5&=p!D;p!~s#fnkn?HOoJ6jc}M-`KCL_2anQB*aeCR2#I z5RXn9jVyoF-6gm<;S{(FzFnB2P}^O9e{*Q`GBMjOq>Yi2tg9AL+;1+6f@>}cT^j{H zx@OTDO@b%Ea{@0*U_gEfN}EC#IYX^Xt&Eb~XehO+%cdzx#W_(vxS_L-1@2vn5u<}? z%61gdadIN}37AYQc^j_pc0y|;Y+1 z;9MXdQe@-<4K7Uql54e6rAn1#WucTbQq&CP7!v^-QwZKkj?Tp?P}h+i{n5Pq_`UYy z_m7@DtQJc;c`$qZ>#gw3)s%}nEfiC4wfBUP? zFRz#LlSbEn@|}P9(c=$ozYh>!-oLI&-qux7s;Zo=cO#%U>~|rjob%=NrmZT3q*TyJ ztcoLG$@wTuar@?G7{ltQ`1(hu>-|PnvaZZ99MD5>)9HhzDTPoNQp}m(?)#JyXNVH4 zb10QAAjQ&HEif2{ado=fcL%{yDQ>4!mbt9;)y;j1IRgNAV|Z1R7bowYE}qWnr;;z2 z)0M7G&YR6XQf_8tCN|k{d(%x5U*9u7K{tkRVsEv7{`Y_Pq)&NyzRXBB_jg(V&o~b8 zZasYZ{0%Vu`euugv=UO1)_}~RrukByU({z0=0_`>wOVPcD=s;B8-~fT%FiNkl!6$IHXYK2n>4wxXcbqJn{K4=C#wY)oJ$0>9uf&E3Xut%kC_nw8o>*# z>(X$ZkTNnQg&4-Y-~w2tn5NK&?8Y#4-gDACDnF#7`fPK5m;%Mj7%@iRhsa1yHf|47 z^0+KplMF=x0B%aodzKT$yr`N0UKwPPh!|z^L)4&iv@VPxhQS9<+2s^H15%AKS~28c zd*2^o@{=()t4kM{)-tpBYWHeA+#ZH$ z^0u89Wm`IDgQpB(Rx6RC3sIZus5VAV?LySG5DZd>f=dv*>klYE>0H%uc~)`_XJ@6B zSqjdH3x%`g+)iUPFV_8zvE*a&mM|mdN{Xs2+HSWcpi&oFnSHkhp#5$if}5g~N}SEx z%jZ{9vLtb^K17yW6bkF6LC*I5p)hrdEXC9hU1nKGadma8l+ZQ|Q&~^mO%ZS)AviSvMx6(Pzh% z><;Oz_Rs&zKRZW;A+oBHkI#;rovd>{ghOY&&pC<1!5<%0jg|x?j26OBB&}tk>R_p4 zyp`t3YIV};qF}RG)z(5Naw!iUhB5uYpIn?jtRFm?A@dT^aCLf8EROZr*=(_#ujUIQ zxzai@a(MzNfhAQJQb4IxN|~cd2?`^#cbfAQ0!xfD(RD+@5R$hny6kM6ra1I5xR7O* z-e$Xt&gKlfA12PUfUmwSOD>ewh9i$QVZ#0}t#`X_n1*3uG9^ewQK1A>C{)QYGM+~_ z#*~qBSqVhO1k+knRat7;mb$61tqaO_?1P)cc4LLCxF#m!I65FnUNEQam?$bg=AVE1 z#pKY3To)HtZ}z|Z`J3x?^pFl?xLr^0J^lUv_uqYTGXDohtM^Y%o}8aOdjILurlPy; zmm&GVQ&DMCCd{0Bb9z*N`0T^0tLNpcXcgEn3Bku<$SIYL?#7Wzs+1|T(2}p$n+RN& zMw?X4!h^Hg00kTE!22%#=Eco!vRt5%ay75cj%NbJIK`t`JM?+%0fosRyZc>o!G|fZ z=sjb^%2MUT#?dmFWXVcXUtX;V&^bzpPy~(&@2XN6!i%$$qLkAx8dGx4>!#tr zSQ6{48@i;8xm#}*tC`>v2leG|wlN|Xe3~Ys6(!c~rpe~x`NK^4>4S$)&z~e_ADy0` z)MrQaIRPdH-ubq!8G$mZsyG+&lvsJc?RzI<#+Y*gP^FndUsU3)_Rqie_4dW}VVa!V zk3aw9%grGUL)abs-i79DQ3+ZEs7A5ltr`= z83Ud(W4+BOOB=lN0~d&h65;N8fAwm3^=4Y%jIUnq9zQ$wJd3z`{_}p{v(LX+-`}L` z>y)i|ym&M(RxHnNw!?C<bF+s0al3P+c$OFm91<+Ib%rcf-zeoBLLiR0!ly?lLla##QWxm__&%e03+jZ??x!w)Or>m2rdCHlQxLf-e5^6K^Z@~l)w2|+0VV}fJEbbj(USw8LM z|M?ex{j1MjPd4=9em;{Nu`tc$>+M_ZpFetH*7xpyJ+h23$S+@Xn{~Lnni#Od_avVmKB1M)G#h4i|1XMy0vJA)o07U-kxjaBhoLEfJhiKi1DdOZK zBN04Hk$ayGT|c@!jl_Uk2NJdSwkV36kfr?U)#d$W*ss^Kx*Y5f0jx_t<@M%pceS%q zzPwv+4?~KSa^CC@*EidJZ^OjWL=;8NG5g?r-1l+6Pne89q|z)XvhL0WZ{k=@JybPY zoxoxtnhLqdb!AQ-G^-QdE_npk^>OIk`Ppo}(+^kQ`raS@7e>mbXHP%=@azBnuRhtW zrzej-eDD3QDP@B7M(M@k#5#6%{6u1TvRbs2D2)y|K`LUDlS?=I{d&CH^*s^A90lqK zDI{O2IwNj&2M!eo0T2paGDhperfFv^36gAczkB(5ckumtAD$liVYm0^vzY+_jDtYn zh#6j8-a{6XbKZBR;ixhPyua&FVGL=}&bob=&li2y^+U`AsxXIcFt{QD>-#`CQflg= zDUI{}6oXKj5*H{Ji@BC!9Hz_7rkh+_>tPr(QBg=gg&d)(s`uYHX%=|c?lXyL3fdBUIWoESYl+fk|+hJ=shP^6r~S=W!BV6me>^a#o4l%87{DD zi}}1LYFTKbw9b*32cFdAC{H|lCKw6Mry*>wyMC9u0Yz5U$D+nyd!Bjr1jLmn0F_a) z(6x}Lglwzocv-Zy+HFeCPhw&@dQ{x@V^QGOzWJR5tQ)$vk$&g|7A}aYsV}#m^x<&7 z-!yIW>GRL`LpO$fyJ&6ik+Xht-MfJ}TwENF*0RKt=krC&0p`uT(DJbFnp$)Rmywr6 z?R}n?U@ak24<4)@T^!9@b#>WILwtJtzNre(p>v1Zn*mtOxf#Z;@9nH&;g6&XoL zIas&r`m)wWOJbtXT64@XE{_{2S)f=ImEe4{-~A{5>67`97>4M)fB5i(liBzC-C_Uk zqi4?^JkBYdFU~orL{1QK0SHPVpT_+(4$Il>@x?jB@w?yt=7*2I_VVgV7rHEKBK=nT z=l|7z{f8fZ@Z`JS_;#r!h}5*z(S6U=UMWMBlDP#^XL>nR~-Vo(k+qQMZh)%@FuK!_>F+GxsA3Tm~9nNm(d^O&5s zP}L@SZv-|+x=$nLJTgM1eU6bh5K&CYBgQfeGI|v(vlFh@Q@^9ll?xLQgQ_VBBIk?j z%BHB7v+|vX7vmUK$0wNFc5^6nxoVF#!{~DAVs~?RZVH7YSaMp4(N3l|fd0v9+33=x zO&50e+x<8>7Fd6U+R4W}ms$B<&aTX%~^yF4~P=hd!G{<$F3^%H{SbD2zvM8*~8gczqh5Li{qZ0D z?jIrfKm3E={q8rvbAEDmd^!()Box{}RcnxXw_R`Uhk8DnwX=CqPa$TOIpVBnhILmh z=GT{-A%(h?MS=aW8+ly!g9NUHj?QzQn%c1F3uSzakVA+zhLltGEV~q^;37*oQEdta z#CT?qSwx9Nido50@gR zDv&5yU@;=oN}573o{LHqMiN9$PzWsuIhW&P?GTJ$ZB-L;AtW*Y38fUAV4NaC1t?-9 zrHmA;t{Y%U>Z(7CQ?MZkP9g+fRi!MbXt`;D5zAIGZ)|sOj8!bpit>8BuXI%jDY*Xn zH$S@E?(Rp&n24-jcP~#?iyWtnDdrwZ=!V`|J6{wVyK#{3#_LaC{C1qI5D-GBbY*x& z;EGCIUvHvIlA}zXhP^?6%(TRmLpP1%G#)RHIY-U&gR}XAm0p%|bGv>1`EI|N7uc#0 zD-)WUpDvoCd5K)CH`_uNvES!Bo;O82Wt8&@2$89s*T#MvtElWWsjV_hc zG8sVvnczH!6l@v}c5~Rv%*cmYr$vp8G61}tx2+cECyf$p?8g|KgtS~%$qkx~rDTG| z*|J*A_~~N)&a?BP38qXB&sPv|)viMD2fOKpL&g|vA_^1}GN|iDah_A&>|YPA-&sc- zO`~V^Ofmje`-gx1um60qQ;HNrB(er)H@p3#hfj~|lhVxWxa<5bv;1cFDnRnirRaw~ zX~7XW5J1YAGpWt8nQw3I1H^WIv{@fsJ%2sf>A}U~O|oliN0kTT~=AY}?Up?47hr4UkJjNSz+P+1!buAPmtfz#tsD5@8= z4|Y8GUw?9oMQz#e?D4EHJmYG2cXBkJA1{|*zPe8dNfI$|?%GZ3@BM>6`r#+vzdqan zDQ;eeyBAGLqYI%ewI}j+kibC7 zadIir@#;LY!KY-W><9nm&F$%S7$VC`Y9%$#L>!E)>!Q8A zyYI$c3vBD<<@(LZ>4Vx7kf1Ia%6PEX`*H28Rb>$qNzS#vx7+{!_P_q4&iBNn5}1hq z8KuZrmb|D`nM2}A4t5O5S4K&tyWqXG{k{i;akO1G%&M}gYUDg+3L*eva`3ZXed&CD z|G~-cfA=x4G+LJ^XQC;LT5=Q^Qb0nMvnsh{ye(%b4nQJJF+@th9p!{hONE(C!4Y}R z%=ricBTE{hN+|$|M7}f)P}T|}_d>;tX|`M>oR;lHEskTT z`{2CwG1AfT!)|}rZeCwr_fpu0=NIQEXEVh^3ftXyclR8DpPs%mU!4E)i@zG(OAspg z5QD?4xQr5c0+$%$3|S;ymWjNUJj4i0F(O$Mlp@7EhA{Y0g3cPp!;mv)N~Xka->j=y zvES^^m#exFB!I=JrAjHL7_~IO7~@Q9GbKk7w3Mz3(lonnzuDTq`^hy!MB&eltH)1| zjF#lN(KuVQDX`m{tEwvJW_EkK*G*0#&*!ZR#5srzh&eNI!D}TWqvU9@JUtADj39&{ zqJGzNA$vFF!L{}5_+({$Xv>BW`u(1Bm|Sn8O9WL}-`w3C9W5~nZyhCCv<(9whL9*z ze5?J#|NJliSX3MYV@&LBH-#~6JrBM|ZuZ-Qu29M-MAh#`z<9bk>AE3tHjQq3zn?AV zz3-}~kqOBM#zhje@9$Kh(@6V`tE&3Fk92{hPZKY+_aXXJsX{20ee@w_Bm@Ek{?!E! ziMFmXL;|wjsS+5Au+FE9#4tKykW=I#07^y-#>pCEkOUnL%BN70$n)3agsa`Lw>9K7>J$;g71$Rtle5u-?x3vu2kBPAoe z-)#_t zVk$+`HjC)u;0{$)8Lm%`k6&HC4mmjQQ4#j{emI8UC$!FJxu^al# zfFXBj1jeIJG34O$WU23SKZI^iqheG?nW4+sG9;D+=Ynwt(orl5e)8yKwWvj8Eb_rx8_6ffrLi;x0z{rz63BB16fyu8 z5&?4X(FjE$Yt%83O}nM3O7WLh}}q#w>ssO9+fOQYnoB!6^EEPoAO+!+1D! z9oL#e?E1|(cFYeV5VRiEy5JBj5m`b0rXNGXn;H@XDQxDdewYb^t=DiuVKQWv^( zdkin25r7OE{x zQ!7OPAX8D8<>H77X6@))p7ws2T+_CTc2;Oz7!zU)DHf$lm}k}eczIT!S+$Ei(KN+4 z&@j36Vc4&Iir}U}AeW@O$xee8P{<^;sJu%?7e&ESaDc!x7PWb+{lmZdmw&)gy!!HX zNc7IbqpH*#S)gQt=Nth+Xf`DmL!$Wqv-f5_mSjhon3au#Xe|ULw4I%gt0jxHbv}uPn%Pnbc`+>Yj zVnd2VX_K*pvdoN)5`BtHfF#-J*fF7@47FTdF8b4{jXpRafx50TYft@AK#~(fiV#p6 z*TgcbIC6|iJR6gVMxBwcH)M%q^qp1)gcA)RMVFeY%40T0lemp_xti7U1{GKMj)OJuyey>Eu$#rkrQ%}>pKzOKi92n0%L*M;`fEthN8IhR5+x|CpD z&M%kQd{q_Yd>s4f>Du$FAT?%re!IIZ^J1~A%d*am?Oopwz3aze91&58a?V%FwRf>U z9xrAW34}pKjtOGlv{_zSqsubaLVeR~$_~R`z`lF42cq@-a(nm6Xe?$$xhUDt2aSJq zb!Gi&m@k%n7k~WIP2gD1GGTJw1H<$xzd9={l;bgGka3eP=5vHp7nSS#XRE8sfTw=XF_BCMzT_%A6F$R2sV~7tfcgD7{jo(YD)0T*#q@ z!L+;a?#G+l=b_QtyHTqu&-3Y>&h070g!QtXt;+SPeEEE_DE0N#DyZPmX=74~s;q6E zM@%Dkjz=^YLSU546s1vG5=00?AR%NitiuT;(a=O?wex{Q6J!$5xn69%xVgZr+i#C` zoukwmX8q9K?%(C}jM(@wrhskdmC_PeS)0w)i`5NdAi}X9P#c>|;De8S(y@uVwm&Yb z8Ws0l*F1zYsOUosV{_WGM3EHIph2^D5JgdPY1kddi@LtKm}N>mzrIG+^RhA(MggOB zUF6mvScoZR#-K=@EimwMv6RFqiN=gM`ex)o)pfbPT$Hp5z3*LOA34hD=%WW>q5!LM zZj$c$z8gj*AVEb=vua_ptf({6R^^oG8iqhDvvpnPrE!LmvUv$w8*9ec144{ZNWg;v zGNkj;td@nOKt_8>@9uY@58d&&D(50Hq_&&3;k-+AnZV;Y?Yi9CpkP*RzZ8vFj!PhL7Vcn*1H$|_&3Yg-u-{nMX))A|rO zYv?MADi4}fBr{5g4hF6Va<@nnB3CV8g=i|OaVkHNo%GwLTnRtS{gA@ zrlj^w-yen?%jBs!4kDOha-(cFP1~c37+E&^Q&g&tzAB50*}@d6UaHx`RApXgrBcYm zs7VVIl?Dwu%OZk89bzMpc#NDNx|n*e7{!Z9j0~i-F%=7H66aHvl`?SbF?kve0TVK% z+!VpfFnY+6t)N^88cp%pYH@XY_qrK}qOx5(sw}IsRhi9=CR-7RM?3g%*ST9!JClt= z*tG7BX#nGuiarc|+ePvHIG`j`koe?B-*kOqU<_8I9-JDYRu>EiTJqWuASsUaiX) zpD%B2@~d@zb5UEZu9x-IJW~{_I`=UomfTtniF6@R464$Y%o=pPijbqlQB2CzD4Ic& z5ibxZB@7-kC>S|9(p)K4h~;c~y;?pG;$=0^+V!p*0#q0J%U3^bhQ4!t92}_Oi#I>{ ztDk)J^2G&n7{=3VJ?nT|uT*itUhfjt}5J%@-pCE|@ifQB&2sqPF7DZw|UoMxI%SAOeh_Q?7>v6(#!1fgL}R%MY9LtK@0Xu8|C z+s|I!(7yYi@vlC8W=)2(MgHRDO_`hB-Gj>E<4-?&_3F)hQMHHe>vzq*8D6|t{pgcV zDcN@qJFD@hfAh_|P5aUFYv;VyIRaiTS6Qy#eEoKe@nW&KS+5WK6A$!qU1X$A$AAK> zpkdGm3b?SSQAD8Wx_5`;+wG|t zpgHw^NJd#V44l}fR;e@`hIk66?RFT4(wg1vA&x>I$9@2|l=3=Xw&Or7my3A{J_!M- zytJYMN~5!p#UK5fgWL4oh$y1R+jnn$qn=;XEVQW0+jn<={o~s|{gaoQ?cGez=ee<2 zfY^=0X&i>o26ALXdDrDx29}{rDY6f-A4liWnj*JlikyPgw#=#-pz<7oaoz_BN{L$L zO9?<)(!fUNh1HPs)y>6hRULWR*L9I;2`q^XQJLp9*FFqdlhV))LkMG07=|PvO3nmWW^*!zynM2L zInV0tX4CdPSZ+hJKQ$prHOsTIfQ+u6Ek3%sdOlyz^E%HBN4(#jMjvuh&&)i>3K$@A zt@39VS2^aL>kZg>iOW^7AI6`4bKi5i-EF$Aw@MGA>zm$*kKP{-O-R&s{juxEw)>#* zum1cmo_Cz~yJ0+d4)p5&5ZV0j*$b5%E8HI1yN7-lRolvb-~GG)4PJZsdq*H@1h<;1VAOe{9|65KbNMj;U>v4-g4mjBW40rlUV0KsOG< zkl52{?*O$+KBKwwOI-;l$n$kkFH!Mgos~7_)_nTeXSzzdjN8-Cwdxr5tWUe)A!6H( zZ#MhgI6$c_#(<-n>Ab4T!s?=~K>YPp`PmQVA3rPBt8AWQSu0U-^vM`$P7V{K6#Jor zh=DXnFrrkJjhM=+$TMwKhKyS2#j4Cp>4syb6_i|;Rc$IxDWo*Gq3y!xldw@rfsQBF zIUgV1Hg&d$UfAPivt=qWWdxWg^U>#2fiPksZKn7=n`NYByS0Fc;s?J$h4?ORnr z;*^jwQ{3I}SrHl3WK5YIe47`mBFjaV}zn3Jf>S$(yffA#g7c65hRGe*Y-R*T}< z)$C$X&C6_YG20za3f1c7IYiTrt*OnX*+Z^wF4uwOgT}x5r+@KGJbv}&cnra*p~|v9 z_~h#D?dETOe*f~5kDguEz88klGd`i1(h8YK~(V1N$@_U6z@?8Eu{&4*SbRjarm~dYRw#_aXVuKmIH)Qt$3B zE|#1Iqk3f>;@F+uh2Wgqx*m4NCb!1w@(?;oL6a$pB1kIpT+pLtih&?=16F0;^_^$; z=JqspW1g!l%cF}ic`@9&(G3ZZNV7FL84|)ISY}1X{oP@6+;`492$~RMfa9SvW#z_* zhzLqpabgHGbRkz+-}YUMI#Vb*rWAt!Be9M?lxnfr9+gd5POGaDw9b@inxU#!NLb3U z*&m}z-uno#6Q`{vh?sbYtx={Q8|NeD>g7il>|hwf&GQSJ!{w)!z_G51kbG*b3`MTX zX1pT>2CYxLTrPtPlmR+UA=tbaoOhjEu9m0M-da-@1_+yRaM3O6Rq&nyrpSl@sM;oE zWp1*((6uJ=(O=e=o_(H~-j70YR^`|0XY1vBRu+lV-~8n3-NtiBRb3qWv2*TtYKyGU zD96wlv>Mn!2sF&s_B3=~zuk@|B=S{d>Sbk($tj!Va|oOSK+xt{R#%FcomZp?`TBZs zvs_?^ocM#rzxvC+eD+5_{JhS>)kR*h`Sj)0pZwtC&tAT0xp$$N<@Lu`S3u)upM2Jw zHvO=h&lVrwys)ZR*0VQvZwClpKXfl&tXkJ>#!=@KQ$o^TzG_Yfwy1viqjjm(a%Ls# z9mIZsbVBO<`88F&hfjucx;9gAh0T`GNkyh zJq*E#LLn}cl@M~Os=O$)trtZ*48tgGCt;N3^)jl!l7P^njv;ozaWtKe08-Uiu0#Np z*c3*S(V^>om%83DLDz)i#(jC)U467pM0XEuVYKMD+aAk#!4R{VeS3SjdHx)kQyg_} zVv-@c%a5w$SmUyuuf&cvQx56!*OT^7yL>2 zBmU9nFE`zNGme=qfz;dEEi>FK){A_mi>&DnIvGJsg z$M8YpU;Q`#*dBKNL$gGbOl4)sd!k9V5Fd~M6hRHeRtRxZ}$-97036>*uvH*z8=cmM?Ce=Q*m(-oD;t zSc0bR5EoaAY@KCQVKvRF!W3AniVnh0U%wjQa=keYtNHBu`RdrV6y^4A^X%qQ+fZN32($g(?>cw=e06(lt}kmt z7z5XfA}a`#YQ|Q8-hHztXCxRqE0iK7bo;OaYvy%%xmr?@43}wya;}q3r(GM8I<(OX zXe-0$UtC`#iH;)^#?+B5O1m&X4B>KlNdPtz-^OKiF|U@H*f`2=`%vR-X#CsT2TVBn zE{M;wEGF;Si%Ky>MnI*isw{1l7dT&BXu`{@MQ!W8jjPovryNi{Je+o}eZAZ7k6mpF zApi@a(ri{}AV8|}ER3#+eGE=1n3b79%yQ!s-0tqbx!=9pw2NYOT`WIn{Hx37>NIpn zdV3sCKJL09gpst`>`#3cv=n0$Vwe}XAKl$p7IMFhCHDb|_1zB}%ZU6h_<*Pfabqw(Uq@pRmlwIUl)U}(qg*h*wbo**{66AB`^ zvY0(=T2b=){?)^-KW<`hk|LCLu1Q56-`sxf#sNhn!Weu^eUj*%#|V&wz0a(|1SZS& zr$b(q)k0ldEb>~}60(_wjMf(yS#1v8X>;EQ3Iz0HFoiZ&pW5TlK^$?n?=roVs7zi8 z7fNLV%dQ_aNs;5w_xnTd6AS1?IZrWOKU>T%ZJsNg<@XO8L3#UT`|eF!*0nX@+AhR^ zoMvSX!t2Y0pz69_B#mQu*!JBiB_}Dx9Bl~RC&=uqFiVpwnz^D*vvMvBq^K;GSI@5w zr@IkE=arB<^rvE3G<|!qnxhvLlOkyj(U#@u(5HdAZYc8Hb?xX=PO~ao9ET%iIct^iNXk3u6*ykkEBdtF)QeLaXl{z3!qUk2q)Mc z$IN3Asu2=KA%(D>0XaIH;lFw;?8|W(z>& zohPHPgoI+)MjwGAB1r;>(S_uaHbz~oFKS!3aXdB6>SBF5_BJa=-$i7h6oww6bc63l zMzB7mz{$llxL{Pdo#j|vMjX?qiAD}ef#F^Nu<2ED&M|+ zyI9V4$J5dEf#vFQIiKa8(l7=NKtu{iJ42CT0`CJeH*KE=&55d6nHONtqyfwPl5)`* z8d9S5vD?k&vtlN0WbZj5eEIIpc zZ}0mwUR77*B`b~23X>bMqKt03qrohv{Q3G>Wee}d5r^xWoBq@#0ZcfnY7VSLkKUgS zr`j&Q`J&rw`cH0_ce}&uhl55u?8g|R8!#_st8DS|`HP}d-m=kkmaFC5ENb;Z<6r%g zfBc*b9(}hv3^((OkFPK1Wvz_S3Y)fNEwiN-?w*uPL-X)3#;CeJfR8@K)8J31uzAzVD1(cc%@DoT@NV0ws%(7>0>q#-af%o7 zMOBd1a(Pj#>cVJAu}6U9LmXmr9FP0NVsfP^dcgGh^}cN+bP|Sy3fi{!qqKb-2EVTB zuJxPE(C(52`||QdR%get@zEDmmJ;Nq7+erarUbI&QWty-4)VeTI^~&}&ljOjci$XY zVJCwie(|%{iA9|J;Sbg+o)8Eea)53hm#YiO!fa)1Ntm+`lzFK%c5Ur?Bw%d`s71&V_kqXQlx z*V$#g&b75@x@Pb$UaVHRHDzX>Kf7p#?(Mc2L-O9;?lwYv`_PEuR}ZH{<37EanMz|u zQ9S3$MAdf*Id}b#3$BZL=np9ymwDZF9cAW&#=rV!|K&>%bnMWu>%1;i=iAfRDN03A zCxC$)ohzmB)OTOKzJLAt}#Jg_ar_>F@_4SR_SzTq? z;4Cj^%k}XvUascF!aQuo(kw}-s#fz=ec!fUesfyPiuHBXwvCICJr_`Y`thfX3H<0f zuTuSdwT5!Axh{>K&-2c?Avi-k_M-#b9vh`-w$Q726+v~vR~R7gUSq8MY8A*HB2wqq+rHd|iS?7Z?+N`?S- zW=MsqUNpNVjKS)e&6L$Z8oU!o#?Y+Ug;%e3yWZbF>_Z}z>-BY^lo`h~D`yy$_aVdO zY1eZY%fjT^ilEBNC`o}K$`L_aY@7ZEpIoCbgAAd=4A-C5J`UqJV${vPH8!9GYi;j+ z2o7U3V*694$(#CM$uba64S2>@6~sMbX_pZhSDm7ZtDrbNO8nW`)U z^XAx~QeNS9-+%M^@aAqG$dgKMetvhi=k2Mx-|Qt~PMQST;4yMP20*&LURSm5j_$A< z+v8|5-34Kuk3%zt;3HU)x3BMF-~5=Ph3jX_VK~he`FeJhTsCxLy;N1Dg=n@~ zoZRthHhcNv!Y6lkzxRPlU8g2iP?T9#nC$M|;giokt~4MqGgr0l-QH#v68e*iEdwF} z4z9~gF2XJXINOck)VM`98yfFhVvkDM-R((6y{zi_y!hzF^X4#o`tq6Eok~^arc6OB zVek8xr0a&=seQORY)-9<;bAv~0euR&(UfdJFnRL9HwReWT%7vN;>s#p+&(k~l?9r2 z+qMh-%dhVAjIvt#ailWM>eUw>nKrO4)P4&FpoK~}&X5VqhzWMUu|Ni3i_5Fx8wL=qQB(R&! z>9h-(shp38rZ0+8X%(2FOIFLvm(S)!5x@h$OqU8&J4BV~x-y4tA0<^#)YSqLUR=+! zk}hA){^$pvlaK3S_Sx0P$&bds2aSLAPyXzhl3Erst;|O+o`-RW>;Y8Q^tsUpBAyOS zPe!vOtIXwUmfYC&LkeO*9{T3wxEYeR_U_@hIl9pyk{P}K>dii@m!&y~kL&rWE@sL1 zSvDU7I%boXUF$WK>x-Lhd+dg>tjYUmjUA$xtPCPi`G{e))a#W+A<}lfoF(uO(`r`b z1*$xl8J@b%^{x%--~H9wKmNmK&b7xwZ-cJ$dE!{DGL_R1-QaxCm;#igoh?gMkW!$K zeelPAICWvOAEVQ4n+6xOQr^d^%3i&BjVj*lcW9C+KpQnmN(_a)08~g2k`E)gj!UgB zFP5{q@C^g&S(TTXa$PoEY}&Z0>(b<)f<*?;l`_vRS7YCC;7n!BrgcNi>?$Pb$Ds>h z=%8&zn`t7dOjYH!9ojI)DyxdRaM2H=%WF!AhGy5#Uz#i&PVbsy$3Yn^b#4#+DVy2e zjdflc!OR#_f@L0)P^mXBwlyJUa9kcKxXzlF{blmzT@AjUk-&T?(liyZzx5 zf_%{USO3+2`f@nAhfU-AkZY=DIxp=XJpbroG5`9_ZA_A!w2iZ5t+lzL;GHp2t?cD> zZWmP5xkMR!2;!_ZWw|)C!)&?gVglg({pqvM6dJS|N|&WY4hES}Tx4r3DdoDcIgCS>s;p)Y113Euo#V;F|MlYsQh0Mc zD>9R*qI>YbGYk55d*3v@OFl5yRo?p`1h;SQH5U6*-)wnV*9u`io4xvG`-gw{LSnKd zD#0?(m)VMwizzMZ>gsZ3h)Jh*=*lvyiqZ|-orolO*BAM07(xgUgp|>^hBDWZh}fi% zAQPKsMWNS=xgsfYtumz)&Z-4Un3bhO$*f8`7DainT#1%hT_(-J`?9o3OI{X$*hIIw zTD9Y`SQgjMUw-oOAAkOXfBI*C`p-Z8v<3d)szln6Ju{XauMXXjt*gqp)mYlXkN%t6 zch=;`W<2cM%ZnTD!frSit?uvk#jMJ!Opx3#3=oZxq3b*6Gn;YmVw7#;n&wEvxye6h z{3A2N?{fUxfBU~Hr4UhRBvJ&3qzI4*kbp=bAQ2J@0wO8^nEuymK>z>{VL%Z?0i0fq zBAi5o0R$OQh(JIgf&fcGfTtBDVUg*2L@0=ah(shJhzI~rpAk_+h-kV3h!7DHi3oE9 z002THL_ib(5D{h&k!i930Kfnsf&kN*r!V30{O7Ao2T#+OCIA44JWU6H2nA3O0ErL~ z5s`ohl~P3C+1RHuOp|~5{5YS#!}#t({$c!mj^8!@_3wHCDWyl-Kp!24EJ1bOt-ZBNjzOAqt>O`v53{3V?wT z&Q>(dkO1L)5F?_%l!s2XD$}VD1(BajMdUkc6cI$4<|zWxQImIgG|}mD_;@yaav}f# zNb-2U00d;ZDoig3Ki^>b_FC{=V|zN`Z+wq_%b)+l_!Z-KjsO2h20TSIA%Q7iPy#{4 zC`2N_2t$zU*cS*#Xnw!zDEQ8Vf=05ca8tw z(172+slS@G#TbYTC?o-3L4^rL7?mO>BxWKaL=iw_;3@P00yCT)4FUlWfUpRF2#5fJ zkccn{5lxX81Q4Gn>vRxK9GXQ45vJ${$UKR?BrHlJ5C8}PGEW4U5m^LNLI9e~@JwFL zR{{V8J{#V5mM%oZAXAJ#2i|E`lM_HX6Y=-A2m#M~iIWSO7=jQer4+rlyWiXA??vO^ z#(F2a6_J!8vjCFOYC0h^{{y@J-uV5&|8Hf$(;Adgzv4)a1SCmBh?#%{g_w{)U;?`+ zNr)s!pa@w|kj_~l0|FpJLYy2Eh=}lHatS~P6tT$JS|-{|Q>**H#4eVY0E*89E4`J0W%GCHsp%(UZw+x>;_5{mzy zjNc#p|K=2WLJ}e}^RHM#h+b(0kN^+_MYISq0NC0(erG;Cyu!5N1SR zB%&!$PTT^C5Fkx-Q~*+%0<7SfG6NuqBw>mXhzLQZ=qf@YfCw<@g2V{KCvkzZ#_R?5uYM{Nv|Bu0fu1S}k5Qoo+${wO-iuXFIPKYoAkuYa2oLP|+% z{UoKt7(<8vV2sg^8I%u6D?kBJgs4R&6hZ+d>dXlzKW-3D5mK00CS8kw1Xuvh+!&?_f_hZ5 z6Ug)e$f@o#)rVxV)JJg}pAuy}>&WoLq#wt0Vi7(^dYozrL<+ScZ3yw(Lecl2qm-KP z{ba*W==p8#=5O=EzxRQUg*{_b2vGpX2#Tn%j5OWizr`S@{h2tAyhl%dF`mPRjDP)` zx$S9pm{|l;O4E12bBMqMNuo~48Vv%YAB-`;M#K^&W+s~c&oF+1CJ~`1QfKvs83Cq$ z6#_+|Ku@LD1b~w=jL7dvO27!1Kq)0cfB?)eWx|g|q-mp)u=+OZBoP5V17b21mISB( zfQ1Q(@O%;^1Yr@;FlD?j$-+;*mM1RF08?EGCY76>{OO~h^&J2`*8PAGG?LOv>8WV+ zE!l?ehLOh~erv|>AMn03{r4Ml{^O6QI-IpgM47Pj+sD*a^n6Q_+S z8fyfYMc{E~p3Hdq`G=1GzcXJFVP*~?#Uw10Tx4b>A`~Bm0hvWum?6XfBGE-*1T97q z5fN!3nbJH&1W<@LwPUD60DvT@5Cl;{N*pN>YKl*A#BbXbgoOnWkx-qBYH6aKfD^Tz z%ufJ>ISC^nuz;FUO~A>>nE?@jfnn;TNFsmp-5owv^PPus5j;i6{0186p5^r3nZC0MD-WeMKFAqw4qX8~*7T%1VIF+Rx1X6 ztQRv1f$*e=J+gIrFR)LRDQDjPIG^{Lz0T`8*SXH&7#@qvXGnn{AU(?66T-enn}4a0 z1CRQryf>cgc5)nlS9JdV3=s(-0Kmji;c-zKz#3te6xqc@gi{^g7=wsUm3%z+!+k&G z{?hIJHOKEK{(mh4p14^|F(u(7%n}nYND`hDV0;1)AfWJBEt0?atN-WJwqBbu&vhiN zdFq_dq_iSHM8G8JTbX7mr~r$IR%&9C3W!LHFd`_e6ltQ#IEY9Af+AoRr4%R-5QRvj zL=vJP5(o)kOo^Elkst^FC1B#Swg+_f1QQ`eQGx=%2*RQffgZb}U@AMQ^O+yVuz2ho7kC`*iw0bo_@hrWO5Cbr%5@ zp|WI+exLHdliu+D!S7Y$v%iSTCpj9wn1Bs7JyNiG@Xy0JBW8+vIK-_?(9e2%s>eX=wsqeDTHq`fvWt{bs{H zoVvbsUIdIHgIMHQZnQOqjMkZo&V>+DQiLeb6Qa@rpb1GNDl$cGW0~2^L}o~G==)PM z7CLViVY!^yOuR{D&I(b0i6J5p0TU{Pf}lk`E$!PrD*y%(IdhmP0#5CYkFxXGQ2BkL z{CMXknI8~@1(43|%kcdG_=^K^%6MhUlcr4+l=GuY=erHQ!^$!wp1g)B)y(n`(g4*@4k8c zKmCvY^KR%Sr1qoFC?;mKnTOOnpBb%A-@J;f*IBo%RTWYg0}I4Si=f+z?g zpr+nwn#3%islfc$sL8?tL8S3vqT&nb_o5e(W)PdH@FiCT@D}Ks-Oy#~}Tw`IrCdU$tWp08UYu3#C7Qar0)o>4%_* zAV!X&SqjCDQ;O5Gkts?FE)fx=grqfaN=cJofF?z)34pza#K{0Cjy{D$*M<;-b-A}O z3wcpwnGsDwk&&k|Zh{0vfQW>e6!W=E&IF2xL{L~00fP`uEtND?-2rLRpC`?Ek|z)Z zgwM|v0)R|AfRB9{6WyLRC?QOYY6_oEm=oaXypzKCmwo>_-5o?02!tlW0K!*S^RM2$)ye>XQshEVqJ3g3kdh>ks>oxA zqYF$b163$Y5gA}`o{+}Tlhz6$03`YM)m>e$Wm#1nbI!H)IrpootE;QJ`h)J~t3e|V zz!MrEMiZkv>Mzj;6JGcg>Z^(o8xT|=pf+GSA%O_S7Lo8JowlKxqO6Zw_k8TV)||tK zwf4D}rjQl`>AOm72vd=zqt~KYFV~mYK6{MGP_xRq4t`|C_WnOkW@}tFKP|GTs z`T(}gcGOHK^DLT7AxZ>bpsH$Z=yWh3$~HtoH2Qe#fRa{WcM2;>!1}@2B>1g5N8h9! zlv%?Y5sk2QW`@BIS+&stcE|57luzUDoTlz>?G1T3w0h+}4ebuGGqYEDK4XUW+8^$~ zyr1;q_R5~U?AvVr-Wu!fJjZ|XXtRwD$OGbJv`Fl_|3)Je5f~e)!)OwprgIDluzLN- zGar5ao8JaYZSxUUQ3KenmENvsX|*UJz|lv4VqyGfw5Ml7CMTX*|r8G zRKRgErCL%E1U!W1K`${T9c?2i=acPbHLfon9S%7s(M8UZlbWemvYfIRQv-=a8!jwi zqKrflfdfgD{nOGR5j7#JwxkplHvJ;zj=Ft`oQYlyfov+Lc5f;mpi)#I=xzZd8En=J zXHQ$3 zG7W@XNPceP-$T%ONdOp>*hQ7h1Cah3X>KnH2}kVwXFyc`?K2mxWBiJnoG)gp+4rINh*$LWZl_T=L2s1+80_o#ab`0#Mtp&`eyh%N-ZvIaI297xI_JVXSG#AWvIDh-1WNv10IVS{5Qlm`Gb&U35J&(6c; z%mAsuP5saY+PH^8;rWjL#16P{W*aefkZOnAIu&6zy$mwi)B}_NfUkb}-@fwv*Q;ZS z8bVPiL8@%)=7K$7*@_pcAh5c(wq-_=1gY**VMS19P30doH=C|Uzf4oy?giGYJa)7cKOobQD9#v5?CZa z8DfbcNsZ{kH)}%aHa*e?{E8BS(0N=$m1uZ#a8B(;o@!1D=r~yO*%66eQtzN|0Da;t zbLzGYKzcd%%K7BEUaeZK6(M4Rq(}xcRW%{py*QVNi^Q?|+NJb9xd8-PqTU-DLPUmS zZ&<%9Q$yr|3Aa?594t)a=9g%7&N_M<4&X6u~&f`BR=sz+p=>=a$*P{Js{U2~j z8k=3Cpx3Wo|Lk+0bJj`*W%AgT65&I(ta5b7oH?$|293g~FlZj6k&vgYSBt%rR@+UT zd@*3T7>r11P+WY&v(NjC_aGmE43ct6z*<6Nwq6_lKtAT9ue2f-x)o^e2D3-fXtDCQT4vDuOx; zdx_zU^}0N8DfS-lR4*)Z8b{=`ki>iIO*n(P8taggs5v5~6vE}OcVYj+`+nm$A9?Jk za=dlxEuVPyxtDI-D~lu%S;C`u2!LcNNe@(ODM7kaXe3EcDeeNzrc?0Nos-pi9H*+P zIZ+`Nx|jEc#lD)W(u1Unq*g&0Pz8XP&)x_!GeT4lBJd_~(cT_64*<@-8xU#Ef~p7# z0o7)Z+1zb+urs1VB+>t@-S=Iudrtda01;8$1>){%mXboGhEJ1EPKNbCd1wU+;Sf?7 z6rpO}&tfVn$R;AWc%2GWkqu@B@)g*asN|d@!rk5Bt#bj;+<<3<3JvZExC9{9>Br|d z{uBC^Klkl2Td)Ca8xRrXEP1DhO3bB5nLhf=U*B1+pwQW#l@MVzwLxt=ZMNGwt@Yrt zha8)y{r!|J({no9pQf_+z<%*qjbkaMOM@bURe5iF`}6<&na6KDeC_g;<(^)-y7;dj z+(1HY8G%WLC7zRrzFCV-1 zut>eTIlgi8W(4!FymWL)O=>rKb*Ct#YLf%E>_wueAXH3rN4h|lW_ zk8^h!(RC4Lv8?tEr*CwwayWt!zMg#R213N7V6aHS${4F9#lceBY?A@^*c6s3A)x;SV7*ZP2X$x}SfzwRAWUaL$ho`H<6apjxk{E4=b>Te6f0{R%2B%7|7~0j7 zqy!i{5()r@O83aS`@`e!UB6WeBtt}|v52M!Qw^4}n!v(L=s-!!!HN$COIDtE@-a=z zFaOKep`!~H$#T-lsD;^VP(3(2eBs68JGax9%C}bQyDAHjr2v)msq7_N45k{3Ax%@1 z$p=*^qqwTZwyvj=)e53UOfYJ_6L4-o8hK4E_3W^w`xdzM-2%?ENrG1kkcZiy_000M6NklzX?* zRiRKtKm_8{Frd|QrySkW06p6ezh*Nz7~#D~Y;=4O3qz?4ibLQmVuUOPIb4`_gA;|p zOmaq^d_BgHabcN&Gibr-`sts&-=9+mxl_w$Xn&^MNT`a4x`)^E9skJ^yaH%;65T7c z0j2B{fZkEaY^6mDA(S}2b9<_rKuww^kD!}F5tY7JrY+W@ytu!-aF~(Tfo&cFWGJ5h z=FOw!)yE&Ya&&Nbb9M9H$+*8*Y^LdAUOw^U)%9lc{Ts)xd+4!uz2}L)`uIOE_Eu$D z?hW3tc-=+}Q0tC!^r#LEVlkMPsI6lqlT_Ela8ZTAqgJMU9aQ!1$>!dA`!}C^E}1Qt z1Dc7P>aF9|liTtuZ+&YSw;Qh!0fvjhfgm(O8&y+60SH4vVL$?R2ePB3=+0HX&w*40 z-RT#t0&6%K&}=|@h>#EokyolFcJ1;1IlX?Ki(~{h<21SsCX3XZ*<=uq9-{676^}?7 zgJFM=P9;BGB7*(FQi{2x{n;<3dF(5j6RSqEVmOn-?HpEZx*(lU&UO6T2R`tDTATMY zdk01kEn=k?5Pg#ZPT@G&o}7H>nZLYod`DHvG}WkP20Emw0ZJoc@+%KqTJGa z#o<_d$a|HZxV(1x())hrw=Y~gEUR%EkB=66CTTUTV>|rTufO*Vzr6p+&paD-DFPrJ z4cU^Q8F?k$OT&;&O{-JXBw4L)BKt$C9?{){gpDbQ{)81)iRzZ{`qw>r=l1Qf(!FfG zj+<%Rl;c&|thcvr-@5$3-qouQ`3wrH%xNdPmKd{xAhbQ$rP~KaBR2~)xN|q!8Q;xA zBg}N_R$|XoOgU|Y`-J#x{ruzqdCe?}sE~^xiBO@ngi|&yqz#$N#G|DiENwZM{-lc+ zv7L9x&$`;}GE*}(6%lANOll)Q5lGW)cj0FfEuQQ6xA(vQ{k2A85rNHQpxGY7=k0$+ zS`c6}*}8lC)}Md)gWrAWMf7r_Ha}KN=CwMal!yw1UcGuWmMNzJj>N?{%DBy@!@bp1 zOPt)j^R~DD(wpA$)b$(Rzp!`p-S2(pzklPaPd)n7o8R`}M?U_EvRy9H!5bcV)6;K! zgOHfa<1ZJ{z08h ztJ~9CbRPWfioN?M?Q188du^dIWJ@Y$CZai8&YDe4;$WE;+3Xjk#AsJzeJKPUq1}EE zDo{K1320~RxsLx7(Wrv-PAfrx-nNHld9LU;f_r{_I14y4p;Tl+1+TUPL9R zj2QC3S}e&T4W*Qv2l0)Ms=8mQDN-psI5;fhaR4`N-+1=fzb_GjLCsd{WAS|V-mQOp z_6y?sFn#dg!tegxuYT&ePgqiMI;HtfIyq>9GrXv2PH9^hREQ+el#(p7pR9a}3}ayw z$DUY{T07gq!E9PAC{uR zuYL8)AN=rN+&S4srD=-rDQcE9Zdqy#`c%g#1ZBM$L-6S32h+mE#?`bMhNO|2=MTkl zQZOV!#BTrh-J`vOcf9lMi*)ql<4?c!>8B4C%Pa?vJbdN$$@Q=O#|xrE)MSj^u0#d7n*9&NzFb&xP2U_V&-6wZyrO|Fm^y zNM*10YEw-Sf#%o79=w7wu0H$uPe1piFHF@8sg_Apwo?Jb#Tw%|l1lQ* zn>T-We7mks^r1@+zVyQvZr|F_e6_tpsF~L4gQm(7Pl9n^|XsW(4-?O`_AM|*%7 zqgi+$Sj9zELfE8&h!C_#IP{DTG|*K5Q6(6GK4VfPNENo{Jp^|2=d-hg4W`qV8cCY%R P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat.egl.argb32.ref.png b/test/reference/extend-repeat.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b4cc92ea10c726d200ff62862d87114cb0c7df31 GIT binary patch literal 108791 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 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat.mask.rgb24.ref.png b/test/reference/extend-repeat.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 zcmV)qK$^daP)`n$^EA*OAXPJp6zDU;c=w zATKefX%2H3R?Lip_>;f-?l5C2q!?o)qGyC96oDCY#)3r17y^i58qRqMDT8FXhLkZx z1RwyRIR8)o;5BEt>6^*>R1yK(?cAbj3YM!E*Cl)KNmZ4yY;uQ+OQ_7v?Nswd>#DG_ zKke`DPGuGs7t6=(ldYE}@T{xkxS*DMhEPlvG(Q znTk33fTK&57H7)}Wadn8&NwkDR0x!{F@>CRN{JDR35kQBiBO-8b1N?%caJ{KwlRnO z@%(ZT^R!&_rV_1gmTe-D3)P2Vx_z2s;@7J;r}ydMsr>BqPk;2&PZ;5D3Vmz;^a#EY>f8VKqaR%OaC&id{(A9qzm328n?L{T=|)*~ z{$iyp{^ZqfzW?ssX}q7p>3nn9*4Jnf?4Xeoun==Hc`2cHjK#|L-rp_;Qz1QBrihAt`+AyATH*c_)?KyGrC(G`WyTmInG@w?h)XH4GBxq+(<#NwnHI!2Bf*&hA+`Bl z{}=!GpFURxC7?FKR%O}grW5swfAE9;;VHM6wj#S2C4>FiHzbaU@!_%gR=!(zep$ zkmot83Uiqmqr)7&_+~eHc5zi-KW|Kn1XwARb7q{BVw>)4Q8&a$NnROclu*`cVWi+n z3M&jSDpX1);=B~ag&-=xjb@bvC6E|MhJ-~@CJ-tGS&|Gn7tUPp#JLa7Ck{flMr+NK z6e)TwWsa%Rwz48;HqIeMVuBZ9fQ%E9S|BD8ObVGZ7M8RX#JMZ!{o}R>+zk)57pLGK zZi5?P*!o3V2MC2^%)w}zvOJA61$I0o!5V9?e*W`+^wEdEwY<8Xz5ct;zDWLH6b|#< zpZ@Bvu!yRXLNFpEqRqPflRx`^pw5g>LJA%!xj;F-z551QD+MryKltF2H)kJE#^h|bOy!Qvs9?f$ef{#Qckf6P0(LkK$NA8-R)hKS?PqUyU)~{Em^_Lypy@Kp(MdG%h)Kj ztYl-QF{W;rsmeG7RSQ!?!a@?4E7et802d@mLgzD~;F2@Oh%;cwC10%MvSz6i#t1m| z-6DG0G*ws0{oyDWthHAVZ-D>8mV++g^_49SBd~o0azgMiYV6Zyv z@r$qTD%k_8*2|aIo9A(YAAj=Wzx?z6<8k^@EvJ+J_AuWiNNr;-FE)&kPX!Yd<>quq z3ERe6S((a&aC+QrhZMiMxveU>?5r^K?(wUP^k;wlw*fKw9D*9>GKP>n4n9 z%>_u;s=K~;%~UwM=!c!iQGN8mvXC2Hd^otzzIdE{Zkw)BOzJ``VM<1eRcmu{Q%qVi zA&cbrz5Xx$_>V8*oNwOmk25c1DhU_e)p0kBr36-jcS-`|B!E*%-bt1;7VJB{tduAa zXBdxpP6V9i!YGUE2^e4^p=H;YH&;vG;KyVHzqoEp!*@^fd?IV>eqqj+*9J^&4a#{c zbIv}8+}V0_z7(wZ;7n^t>b~ngeg5Lv(yqJOYMG-?u?T6EG{i+ITV-$jMRxop9x=Zk8p)WH5~>Qd5yv@v z_jcGl`LDhl4~JBs*oFS+)3vcI4q-lm3g^3f&SBAa&(^EUu0N~H>c#Vyzx?Ze^H+cN z*Xy>&JbIs>4*M_O-rV0$grZh9q}*Eb!`B}V?qF&oh_eDxfy<#tHF^9u|Mpj({>F!| zKJ2Q7yJ;x6`||zgXIK3PA1*)o=-C+K&2AXSXtl&b>$zA8PuNEJd7*^~0^|Q0hVo_H7F3g0wuDHiE5=Z=Y%=M^1c2qe)sQP?YB5Y zAywr^l)N4eL+}v`%rh0@pxC1BtZbWBfBfO{#q-70rn)?9n94KwSwu%!w*ZE0CEH5A zyzC4xWLy9c@n;u;k_ajGD_d21e;A+cPn}s8=KGcMISW#4(*ww--Az>qBV=V-t9i_! zTlLnE6h#UwJgS;APSGW8Y-K7$-fG)wtCg^Z*G9K>*HyI^f(TDx8hl_$#87gE9Jq7n zXPJYbAaN|5slrP1>F)6$jR69|#d^Ku5`+{nCpUy;wTMH|Oi3=|M76foXu$*#a$-4! zkSL~-8O20XC@%35dZTr%OQTp_X|1f1Edw>@LY&Pdr5Kce5VA`&4CLo{wyb~rasT5V zoV|Y0tk!h#eDUt@_A+)iH@vauo68SZ=c~!@_s4tABa-{>-7o82x7{UZZff;cpa1Qb zH+SphMQ7SS{O$kb(^sGP@tAo2?&)1qi@t5DS~vA#dzd-M)A5k7AmYv4u5TLPMeAgW z+*D_rl@PPE)x-PyX-=E7>L;IGZjU?FsJ5}wbb`oJaF@@!u9i|mDj88c9LG|MU;v8y z5I|{D@sdl|Zv0px=8U{C{OY_lMm{{9cH7+-U)+wfXN8AYjFrHpQet-VufMn(rqXs@ z->>^_p%gvb?K$JqG;c1~$KfOeXf3=eb&YjvZttH;M&z9HXsu|f`q{-tm#a66_KgxN z7EEJWi@4hzGhw%=k(l%8;eK#VY@b+ke3;Yh*!TLs_^sc$7z?hi*9dg~^k^g(2=kO5 zx6^0eyywikyWfK%qoq=03_#53Yn585YX8YP!Uuw!jn-F+z${Hr!zLACRfC83^vj zIG%Ee&RT&yxNj-0Tk9Mm~GE zD_2*q=M?*X850iUwqMp*rruT@>sl`>RsGqY|GU5V?B9Ly_9i4|j6#;*9^P)JhtuR- z^!>7``#J=lA|X$UR!htwWn-JO)>`BGm26un87~7!p|}*ocmm0_!KTgYt6CU-byXXM zN(w8hnh1MV?Oa{H*DWB2Lm8DJ^9(Mpe2^o@yp~ zWnXVL7rm(}wpcWME2XATaEg4I%kTZ+v+Eb_^VbVtQ2|(?FE6Uqxw*Pptk%oTa%Gj! z#uP>Y9aoC8qT5PIUTa+n3ectS$|{V(2vJgEg$X8yVJeVPiJs+v!Dr|4H0Bf%Dpb*< zKjh#MxfmxWn2{U=2~J8#ZHyHlvM*3zJh|=RFidWm98;z6QdJEo4jQDc1!N|04s$LD zLa0UpFeaHXvT5qtsJ=E`1ASW&`gu&j$^Fht)d)jO<#`UA6h+B`@pGZ9?;=_ zCTy!`x9^XC^UL>l+Z=g0&FNw5K7RA}|F8e^7Z=NaaJKou#l`FEtCv4`^QLR)asPEH zaf(zm#?}Q;h-fd*+D|_G8b!Uco7K$2eDmm>Y_85166Eai*`l9DoJS7QB3HxHp@bBZODxC8 z7_qw6SlB#!ri!XrZQGmMEpZ5eN+B?uGAm5v5@QTatu4W`tBa~uZknyFg%EAm3C>uN z+kKdZVyu1K?pB+H6i#sc^{@9igOI{GXN{)9hJ$k+&zCQd@XhlVZ?0b#=3ic3U$j?e z?KN>IjK>iBwq?Y%-89v;RF}l+r~Nnvl@T&x;au0&rLk({_xiv1(NFqs?@rEzaGZbn zi?4U5JWc6vipP+;v-<2pG;6kO?R0d`$00LQ+0%aSv;5-S{usTn6>|_r3=xdgT7pqR zDY0DHWowb+KmWtuBqlkNg#mFT3@gb?#yRHVRM3o4&th?9^201Eiy-SPJA^!B~m-p_BpJG}bvJPMR~^UW{EmgVHxuK+2d==x=&P#20<7TMw>M9_>A2l4+IsR+=G=!83vPF($J>Kbd9nG~AOFMu$SU>b>dlWo`N{wNuYPgZy4Np1 z`S=Gv(%L2;tv0LGg%9lN{I!DmVzcTSSzD8^@KWWhTqyU)<92>Lj3W_c%o0rIC6!p~ z76EpLli&@PlJiuFnlaj*c3r<r^9#e4yQPN{K@5MoDRo$y;xW-ITKt07XZlL z-aK)XE`%5d+X>JpI6OU$pdqKS>KDT?Etjit7{)0hab4NdFj?3TaUaJ-n5lGa)zvn{ z(d8typ&}%x)oN*!oF{j)+YK)Ct(m47iK}{)i-gOe+;= zsrsflUsrvr54&23i(DAy2wM1Yt}6J^Pk*~`HcUg`sW=T1s*q&UwKw};jOp}r+;x5T z**9Mvr(sUVe%1Rif?(tBZVVF%{_NTL>^&=@M6q1;g7am!tc*Gxhpv^wDIkctYGcG@ z&AlgJ`uX$C%V%fHUf2*e!~MirD}zifQHfK*yN6yXm zFdnygnzQ%FkebTYwKc|W&NhXUv3=iDyJU~s`FeBa++10UB{H0)6#MPi=n8?PQj-sd zVXRwYjUpy1V~haId41j~#S-PFYNQam&64^ZbNcJj5l3PJPWbHPzbAACO?02Wi)SLcnH_ZXdkca!zH@4D1l9gbzoV~NH`yi^bJ=^tCZc>llzLsf~)!b0Jf7 zk59K>y#0$n-#$M5`pd7raAl?v7JYxVzWiSQ7ytAh|E8q9hWOzJ&;H)efBgHu^ZP*Y zAO7C&{O(VG`}*SQ{BoJ%OdyTrO>4L^hy8Zlj6cilS34ubggAMR@%m#Ii{3-P6Z1_hM{DaLS_XEwYFlMm_Wvn zWl&I+j9S%7RGO=bTdgbNR8^*Jt&&Ocm?4IYF=ro9Gmwl;p@bAm7M!>Nzyz2}!xbo& zSkAzVR<_biVAbf#D&koXucVO#La5n!KP4+!-?RimN(GE_#cL%6@!4hI4F{PsX>FBc zZQF5HlxfD(?2=DK3X&n8u2Rc&HkA zcel%-C;_TOnvNDYM`jchOoN+eH=nQ1g#aV)`PK6I#;j|#d)R;T<>9znR?zE|8=JaT zT&}vaWeq}Zcl*jzc|0P{*Im^CUslE#F-(VxO}*~=^S+zz?_>$BQMIIt&eU2NRjecl zObUUiBwwbJ-<^&M8O79^vTC8zmUGcB``*awi%v^6k8@5z@v>ewB}|6RwPKRx#k$!n z#N}%F!H3sXmuy{LTyJ=SO}|Mgp8Rf@P6#>qLX;>MV7zTREd&agcO_F!naEpM+#ilFU%WYQFKWB+^I?bwWcdE@Ht`ZeC^=4JF;V~s zPMjA+!IZJxG z#GDE+DLLeIzp$VUH%eg6%ws|z02~gZ5S7Q`V_?L!)Qzl+)-eXosFY-ZW1%E)J0vZt z!jYpaCDhvH5{@oPkkJ)ex6y@`)lf<2$Fs}&@whXh5uAer!3ayjf(2P&g)=23Y7LT^ zX%5JF({#jhhy_zh1%=QO2q|HK7&35BQYr~K$B?`P?R~C<2|lZiU!K=eQ@d(o^7ASF z-7g-XYCW4ie6^^oK-e4}FV2?B^Y!}cw@;-2DI&&0xC?Ik$N%8>|MVCC_U`n^nF!%< zetB+frx?eAU1Lsu_~PBKTdPB4rxVP6+|--y!xj=*G@vM}N=|N6W8?V6zJn*Q0UA@*J7>CKA^WpYTVuT3P1eo~xqrDhjO zrt{4;vMHA09mXlXfB$g#aur;mA~P|Nv9cgF|Mu$;@dwW@ z{{HX2;;hU*6hb6&X*NoLgj5m`FhpGo#YA5(N}f2$;&RGVxCn#=f>9cfY$X5$A`3Bd z37Hkcxj*{4vqnmaSQr|uGnU?9flEqRFd-{8j!qln$4N>ngzzybrAo;J zTyf9>q?G7V!30(_V2XiMz_^&k34|)dIinDhlse|XxBvvkm`k%&78B-z40vVDdgtAz#3b=Lutd-|EwPOm=$DHZx{KarQ?RW2P z?nWj3i|c3C7gq}{Qc3&6{P_3{aB+G0!E$x|H(&j$Ief>ZE-~d40JTtAfhar_#smYF z$<%eBXp~4fbEX-Qswyg(GR`SYG1c6lf%!Bc3Z_*l?BV^kSyac}@p`>!J4uqWoQ=|@ z)LdxIk|NMXW7k?ld!6jo% z9v*g;wSBuxaRgzH`;%!vsVrqP9%c^ta&s{ZQxVL~VgGbote0aPnyym?C?+Okk#rm% zb!Ey-$6aWe_Tx`Y1$8V=R3^rhV`+3HHN%)=$_NCUIB)?1IOin$wn3hWlaE2yoUu%? z0La2n3x$*bnc~uiSP+Oo4#YT?EK=g27%@IOZ>%U2ECoCc zAr&DkAjU@Vg|(cs!8_u>K}(=TZHJQ&PK?u}i~=D+7VlB1x=>^gI3X2jswTz(gaVQb zQGm`N&U5bDW%eoB;>OIU`6`X!3!I z&~TQ6y}Z1d4&S->5Yj1zXtl~L83jy z25ug2i{OEZ5DZwQnXX%$gY%wZOkDB0>fF&ooifkBg%MIHI6cG^Kv;wJBmV#ZAOJ~3 zK~$(3$z^h37NVg@Zgv3RJ+9Xq2~pP)q)ZX(X1P6{9-p4#h+SXTtq`UQ#dtEV}-dmKYx4oE@28Wf+EiO=`f@SJW+ALR`oH+2Kl(VO z2!)T2gH*U)wv7VfanW|BvJ-iasq1?ZC@MYAAyV-erINL(-o1UW)@TrdIASR*Sy`)M ziRf&7CWKL-+CFpOA;;iDj)fED7(+?(j6*2C@SG)N;Ed%&43z|t$wdrfnulpb#u_+u?Kl>5KLrgQ*O65{c$H~pHGPI0fyIfbVfXaqX?z&Na6j&lXUPGW48;7Li04Fc7>1INqnPL5eGnX`IdR}bL2Iy8 z!@=ZC%0kw{yLle-roB8I4hrgNj)js@yp%i-(VChICZtRudG8q)y3t7{rA%e&Fwelu z6h$mpb?vfS8P2!kz$FvNWr3z?VhM}oa^0;etxHH!YM*jSF{RQqi>j_I@|Esu+qGH~ z=UkPlvg_5Ekj(oz1a!wZxzP3fs$W#bRMw`PQ^{4W3*e$zp0BSeu$z8`j-1PRqREBr zX*zCW$vn78f>2}z=iL+~uT)V+HZc@ys;Uwt1rD4Us9O8I{?GsWfAM>)faRsfL!BPkV@Y%9Yhn|&Yz2@+G5oHHhD-3cBFhNh{j))Mg)6J|PX z4~#Pa&KN_|8AbMG8t1BMIfz7=GwuR43Rauu{r>U!tBH0GEB17dC47_Cq9krA*^%fZd_oMJ?+xr@m% z-PFR=Ria?}%2q&Fjt39Ks!Ble#;%AbAylrXoQA%qYkLxu^Fs5O;lwLfOV3=ZY2?>Q@N)r5JzTAdrkR4dSAUCS|? z5+F%=x4VhKQ)H$ECWwIdZCy3WRAj5#f?&DSO0Vk0^>USI76K&K<948sENhuls9^ydaYHKqu9;bkw zE1pt9PDWL=5|RqbEV%>(97&-}Cq@O_kcE~ZCLjsSP~suXr1RP388_2@du&_FsgZIc9w`%*RGefIV_=yClu+F6=+D~r@~ksLTwh#plzrW(hG$|*%C@pvai&== z*(k+{TC?B@my0D8EQKUDh&c`(ooL&7y;;<-N^_h;!I&}A=@@flfB=cD>RuH&&GY2E zAVx`KEM2qE##F5Vsf7h2TjmlVb?dgZwF(M~(6(k$Dy@8;8D}|X0%DN~1`4FD)oNK$ zNuXq;a`&)HbDECFRoxSjD`VR)cl&+JGg1V}~h`eMghsszkEB!lrcT+#)s|vz5Xx$ z+yCr8U~~EMyY1EW^SitK?ihw~Rv?yYd3ta+w}YGWdU2Mfh$&fHO+$KrGoJMuBc+RB ze;lkfKl|aQEYFNXrIjl_m$1~WDVJRh9pb%`(> z9T6|N1W((iVVrr$JR?2rPg#gL$EL2%x`nDlyA<6*HMMO`Ed)nEE!+l0y#wz1vxShQmF=sOP~;oF*P~NGcOU`A@RZyid9vLJ zDN~%i<5W}y6if7RnC5~EdD2oJrT z$rogWv7A%!33G`?LkiB%!G*#kUoXyv?e6C020+g)DNdr6j=3T;C_)U)q9st$D5)5i z(I{ZVtuacl#Qg5CXQa0GdzGXxIwF617?$1Qtgfw8Q*^^LGiSFCJ| z$H||7@mx~oq`+j)2oXeXs_yOA+qORc>a({G_xn}XubOsQw?6sD{i9|=GvPu4X-4#_ zH_y&L*zQih_0u1HzyJS-AFOX4PrEsG8h_){=P$0-$J3+$h~VioUSFMO=MMW3u^1yC z9v`f=&o0hdZTfn7cXLltDrsWOl*AWbyyr}4#_GCNq~3n}xSe8EDIr8kG|f2&V#txn zA+nR30c1%!B|aQxrP{(sXb@c2ZL`?a)k`gm8i}z z%3Z)?fw{<>yvtPPFh}&xPZ3k5=!3_?7$CC15DcpXf(w~Trdkv=Q$`h@3P;9(@l;YM znPSM8$yiZhs@i%x?OlolS+)$JfZ~sj|N*XtZG<$$c@lzoU{F02qG$i-tx zz|crmS5?8-FPF>Ba?$jP^E~DCMPG=|rDTnn#KT?CtV)IEP^79itIK7*U?ru|36U2U zOVyewjZDZ8=`>C$AR!1a$J02wsqJeZtgTkk?)JOI(vV1PUoTfn0I*6#&L5t}ufN)! z4pH&;{rlTht!mxhKJ4#zbD)HhW;ajXVWHcn+tG*P;7TeIRS8KO8-pu^amvvL$HURh zq{{V0Kb+jR-#tx($Cw#`^F<4jk@J*Sb(@Ci_GbI$`6cY9@AZH2`bsOqyM=xB{Ia%c zcmF6Xd-?jsx8J_+7tMH>zPlUtgM0RD_35kEQ1sp7PD}pz-@Uzi8ed#rgb<~)obkvrL~NL*yTkEjdm0=YPIGic2_2lng0YN36nAj>lup~N^RCuv zcYDa5fYEVw3^f$n+U4jSAZ-?XNwE+x5VqDN5~o2Lj}(vb{UJQfljodB`rEskIEd@B z76}$@eS3HRtIuwK@}uWZ+xt%Ty;a&ImM8B{-nld;2%t#BFj-@mMpl=SF{V6wA0pSP zvbruAOVU!;rs)_L5mQnj#zaX75=*sm?9Fpu*{S@?-z)I4jKoYcB$`VcZ_s_&N}%t|#=I50#vy6H4B0#UKb z*pHumWB|01T`w0MyEs2vuFoS*ir2{OG*8~2cEd?Eu(@a}BPk&jQ~AkAnZ_{<`_qszHJvqe#SC0rEnb|TU-#?Y zw$>`l{9$|YFW8%VZ48wofqRs z`~CE%fAQV>NB=uN|LOTz*Q~ntx3}B7@!@G!Oyqe;!54t7JDtX3DUoab`R6z5^Uf#I zqRokjk}WVs``B0T-=h~~8>l<@?;~Qg+9GdOEACqi*ziY;;ZP>SR zvrA2re1J$e#@KWtxU}Lu%wQ(2&4&%ahQr_Y;V-0lxU9L2(BRXuvJI9<(_b+I~K-0b#@ym|N-qHTu8&h6FV z7D|42b`nJ2YW(wG|ErJGsu65B+$3Gire+ z=kDi!<~_pj$&2T=hi#N`W~=W#yFx5}@ch+_+a{t%6Pq*+O?vV25R#sqFWfvX7PT>H zKCcV{0fwN14_I(N1~H0GhoQT=IjCTW!4$c)%H)3v1Da>s5&9NPV>5XN!59y_?% z9ZF}Nskfn}6b#v_s)DAvEEPQ(p%@5?vBz0mwq5IGeExDjv_n~PQIv6vF?qGpjKkO` zKq4c~mSjl@lVV*|t#q%qSG(JG^dkgAh%vx!+uC|I4iOO%ScN4C1nS#Ra?v$i8>1;0 z)x?xyP!J?B(TAE>SJyjssVHglpax?KwueJMn{SY?*7f0b7suqij}TiOjWYxhlk~B% zY`ftw`iLbzedkn0=!fv|@u@4}?EN#4IGbUw*?y$)lb0&tWR zf-9?j^kb`MoArKw>zu7C3xtQEALF>5Z-Vy}FhxNGKyD79s7qUvm6;nNAN|?<%!@Az z+xbB$E@tKV$)l6?a#2@F(jR{B)0-(@bpO|-53swa{lgv2SCFI?|pFCUv>S>ah_vcS)!|R39q8lN0JtRMCP*3#l?Z9MS=Tkq7huX!AVfc|W{cIyV(f;Y z*@5VO-xg?5gSxQYznaa~O>={!hqzBE^h1|)48d;?`=X9f_Ip%Tu3j~IvHJpMW<+kl=TaA5x7!It^w|x+t*VXA_Rk=k~@_MlzMn9ib!H+2g z5|GH_Fb-+lHvQGrZVbL4v_#)|@4PsRRBP8aqwn_nmM!`?yx!fCvxs5WANn!)J^LO0 z%!f~}+Ka<56s88^7cZ|x;Nj|IRW3|b9J;M3+_q_7UG6^l_|`|MO!@Teap;HP;EAor z@K)oW|KorAuiji-md1SaCpUle$>I9Yv-RXd6`Zs7`f3ZTt3`EvwH=eL=4a18x%l2k z7uMBd?5ml1?}HEDd2j-_uh&?wENF1bhTzeY71#P~yZb9oXC!{u4=5E=X`EUI#R!_ew5juKfCh$ODq z8cv}Nqb3m*wWe4u>Fm6ymql5ZAAj_E++#_VGc|){wp|=f9?#k0;bts({p8`}vP3T2 z%V#$Q)?ldJ#?^yWaZ(hs${AYBDqCT-sagns{Or}R?MuLM@WjG~W@W_&U15=F^nTwA z6}x3s4>3v5&3wj!y=vjCEzQ-g-z*pBk2kxfp{OrkUp;zwW?Yz`E(nX;TYuAz=Z`lp zcZc({xh0H2=Buix2$&B;qd>1dyQR@;ux?Q?6Dz&Eya8vI^ZIPFrYc#f(*X6-B$M_x zO-Q_LqE|3Z`@ugsKTR4(i9#4tORlQj$^r?5v-KGPxI%ps*R#{*Y+a~}gWg6 z&u(sSckSF(N&pU&(_&E>AV8XxMHt3I>|z+1VNn+ru_&!i@bc#3vx}QoSIw&0oLB3& z8vlIunD>2)WUhC^-p8A^4`Cp~SGW7F4MwXWDhVvB(huY7o9kk=Btrtj!%dYib$%x% zEN8U?F%E56a6$bbxBG|y4JBe+xKcpC~SKki%-E}=@auF5!W@vYf zMuFrB;^AhGib!K!EiSJbWqo$>$>mMAyNY4d6rpxYLmXvz{_@jt=uuT848h0LC5?Xc z7y*)s_l09jV2k2*zb$9=Y{jRit8&h+hGJo$pp(Sc=Y{LyN8=E{;yQC?hLDe8;o z*RP&8^?dFuj7=M2KuL?b1eKGsl_Ixor<#T#TwZtWKBZApiY2-byiZWLMP=8vWLk{X zJT2;_3J_CWtsgvou-(5NKutMQ8n@lPT33gzIo&MLE62p7hi!Cqz2A1Jr?%~@vK-rH z@TsK5tXS>(9Tlc<=HX^#k&W2>&ZlU7H}3XVAthCrx$5?HJMKZF3PMq`@4WYs*j5gU ziq2Q(%c^n!23bHQ!S!w!MnAOv`f%k#KP$}H>;xowY>;`^49mKH|Lk2=-j4?Ylu=O} zpc;cIrouT!<7|u+tuf+9t8Tk(B&uba*X6_Y$!0mP%OV7|20%s%`uOB=@ag8d!Ne)~ zSJ$@(-&jOjvKpB=dwsDBgRa;r!zWi)hp~OD@z1~fOOH1vWm(vh&1SJQo4K1ihpI(c zHohGN2C&AuAY)louBhrczW?Op(K{P~hz1@!J>RTWqH=O}@^JHD7R`6x`S5f$KbaRF zy!S+EuY5u_dVU5bl233@k6 zkIw4axG<=(cGoq}U+h)u(+Bm77cW-p#m#QN8@nL-;B38Il%7&Q1PMSy3}i-2kzxYx zgNPiOF7-wd%@%c8fkm5otjjYh)f8xn)tFs-vsf;wg^q)GFA?G6SI^JZk1UfI_~_Hi zkmADHIqAGE#1Ez5qHujPEYBA*rqb2r#$ri*r~Mv>0XM6Y*SpK+us^AnP1~#5-LN{#YweC>a&m9tE=w4hwIlj+h>6XuFsTt ztc`lF$uH(b-^IeXrw`8FJAY&aQ;Ksg+?bX{d9qr*clu=5_ph(6XNy%I`k>7i`}v|A z{ZQ3V&+58%sB(L?FUz{H=wqndoD!8YmxdUB4_mMwA#!oYc$0U0g?}~kB8l` zyG^3DWJA#drf1J?n}dc{L!XeLX*xe>)5X5`C-ZsR_^YeFxk(P()3YbVyx0u~AAL0| zQi9S}{TP&zt$`eksSQ4c5z5L2+Lwi0E?1#TuRq%fW2?O)e)K2LlBkaQ)89EsagRVS zq6BDf<9c(dMObXCs|ia{g1W5PVA~u%`RqbQhl!T1c=+(c7{^z)x1A4N(?Ef?Gyt*f zdW&|oE`_l3p>%V$&}y*ad_4>B%FTNecy zs9kwDGzxriaWTq(U{UJZ>s{B4U243vh2ap#K(QZ(ID!mNn&NDJQX1#bwuj!2@pQ8( zovjP^_|fU1Z(m#=hLF4;U*23P$;-=wvV3y6-yX*IA1>_7U_nv6lx!n+Z9*x>t}hi& zs(IgSQ!%W|dE2&B*tZ)0{7e7NQ&1dbL@Q(KP0g)u_Cw2*s%oA9dO4Vq+2FowzyIvw z*|WWma(#U@cJbLqmx*{(xVha?f{#D`LECjPC=tvH;|D}C2IAD|{V?_+s;`=6PnO)gdiZ2z33vMg7*#Nkw5Y1F@7mC`KBPpmq9&HMYiTT&#iqb2 zfoVf)8Ox%!^Rj6hBDraAyOi3#KRH=GmN= zoB2i4eEivdwWv12ZjFX0x2dkVs>-#=ae{U+?=7fuQU5+e7bMrL62YS?XoGS*=}3l>=+kI#bQe zIQGQINJ^TbT5H)7Gc~(rXtXL8>$ACxo;}rCAb?v~;xL=94mXD|1ZNhmU}t~~_)#HQ zON+xz_~etDo6cWc-iAb6nv?U2*$zWm)C-L4eJF6fzv(0lb!AKARFTU%YGSZNB_ik; zn?v`V_s&s8K>N^QfhX_Jee8!}z-SJ)jdcMvIOjU=Ll`ketFGI(hU|Vjj6HUt#RBKc zRf;1K5V9r+K7RTqH$zWXyX|~Y8KLXfx2yHy+3V+`N&>-SpSr{0W>M8u!P~>_>B*uh zP3+RcCu?ic4pGE=jSK0xoLOf_GV~ygDp%ORAf2yham(X z!I8dr_BsYhAdqk_r|gO!ym+~7{j9X}vaIKpNcvG;Uv*YXW?L+bTY#&{u)Ewf%SY>Z zU2N9##oEnFe(&8!CmXjubzJJhCrh9D)yd2(h#aJZj~;K7!}6@Yy1Lo#`lwtKc6ZYe zmj?87vw`FZ=YAN*&{~?y7|tK9`+mPzl_!e_X)JrDE`Y}J@@%q*Fy${}<89)*dnaxc%-nzm; zLcbqlBY;SN{n!?^RFyFTjIJHR{xGhJMSt+VA@RuUZeH$nFzeZTxvbuK^7ydr-+%gO zyxG@Wm$ptp9bxCYn6z#Cn|*WndV95R#uzSd`p~0Kp|pmQ3kbGMKKR2H)(=nj-PP)W zV^_VrJXBOyXkT47ZSWs||Fv0AG1qPws7{OdqVGhL3~ku&`!4tt+@H;add+g3vH*~gdv_ec9rF9vj} z=?^hR0(W(_-`|A7&PE@%hpwt>HXMZFn4Hn4PaiF-Du4%og{c|1=_40rKC|2FE^3-V zHJ`08;pzFZsOjwK;%C0|A^CVxEk1bgZt{b*@K)oWfAJU2De<~m7`E>`c^rm5iU;8K z(3RF8sCwESIr+q*df6TJqa6BVoO^w_yV{Mzh)8zu{`=2wi}|{? zTlMi|xtUjs;753ieD+Yj}eypPVhKB_J1pc>gn44bt%**H`p zv97ryW?&Q_{I2WwZMeD};%J&C^C+Sr8azax?apHe-IF}n3c7m($t4G9-6qB&ud!(2ZsV)W^5mwZHBIuAO#nP zt7hzD;Wi;@H}q`?eGAQDaD^eFnVro_*Yr&o;;fie^JbiG@<{eb=|Pl;_W$=}2zPAHVtm zI^%s<&d>VL9d_+zeR8?GC=8UfJ3BqUzPRn%)a<)`Hv|gvHOo_s&tJx* zY1HO0I&#jrk}3GnTAgj&*?H+!G@F+iwf7rERIfZSf}Klp&rqBBqv zio$+uE8{jZQ_a*=abfA~{H!cOicJcE6he%B7fx1gwJt^p7KKp9D9$=!9^2ut9r`xS zin(~`F_|Tq689edo{X}DOHL_w|mg{08X^bhY=d%ZA8%shaHGNyx#jL8wUfMm8 z20wOHx#;^4LIfqY22Y?ajV23X9^7xOw93EtPWW20qV0pcN!n+Ka_*j4N5{PENG-u>ARzw_6B;jjGi`|tg0-~GSq=M@>c+O>z9gAyU}$A5C$?ofL7;$_o@ez~bnH}gWk86?2y(|~$) zJ^F;_=L;CqVznxr@zVRCR_Zav<%WlS^ZUR5@$Y{0eZ%Q`yM6ZJb@0^ggGZfJJgZ7j z7~vyfCv>(5deu05D}4p2$`Aaa}#@ahJ5pPKOgVs&oDm!Ab&aj zJjYKO|K=zC04b%TZ6J^e0fPdt0wSP_5D_Q{0uYcULR0~rz?7k>h#(3G1gNSC3ZnTp z03wQzCa@zMv8bwysDPU10ZCE6R6BfG`~-h^Ua`&}^%kPlc$6a%U>4pL<4C zMWlS6s*sP$tHaSm^X2e(HoRLz005Bm_`U!XG+z|}0T8AaOmD6QpEtI<6Mo}&^kaVg zFUJoVKWY5`1sQPmYDx;(VNe1^7E~ft5CkGXAt4Y@08}6Zm|(3aC<;U%8D%0WfYU!f zNC5y8LE&>=E{OmVs1iWl1p+`S00^j{poB=o*;y*6PIe4>fB6Fh&@bRyK?SBIQDySU zh^VNbq^Q~45RqtFQsACzyl=gTd11|-J1-AMKM#P4$e2C0h^W4~6A{U4#J%(UxL))t z7MJ|+$E(m6Xuw~NA2oi``2U6meE+5XaM~7QAhN(n3LuJ%2~`D|NeD@VhzL;?5CtT= zK0pwGX`w+N00K}^1yBW5Ku}Uu0VSgBi9rGJjT8Cu_;HnX;Eq z1Qh`QL`8tfCi3G0h$;|(V)kQ1lU3)BL0L2@=+V|xHG}xbb!B4L2n2}Jaw&och>Qw~ zA}9v%_A|e436EP4$w&Eij$GoWLJHKzeU+|pYY(&vv1n0o! z8UIo57d}rY{(myQJ^26T6gndb5k=&OJVS_{4FeF{R5+FoDAX0@0Bq(ou7N{aBDT)dJF#+5uOfX$t z6jTHe1c@j+%FHd02mw;2qY98xcCd;QWd=Y}O)3;45D|iA@2X0wfC!LvK@tQKR06;w zv!SC>2$Z!e1ehEs0LbwYn!{v$LqWgv!^Fdh05J1wBqD2>cnYDj{&8o(SrI|R7~}mp zhd&QbsH(>N#AT7MGqRP6i1*Q0OQcDV5s5%lVodz?B=@7}s9)#cuRp#$_%}aJ3L&Lr zjJcCiVvHd~0I=4YV+7?xG7PAoOo&D~p%N;v^27-!@Sh(wg~ znl$BXCQVpX5E(Ro4v3Ur82~5>s3L;MBn`=Nf+TxL6%oz476B=U0!-W(@(ltX)$9bC z{{Upp`{ewPW=lPa+jti!zO&&w z^!zw)^T+w(pZmaLV$WI*Au8Yyfr%<7Nck222!qV?lR1yxqbFbX=kPY;-+Z%WJI{`Y zs6t99e-^xi2ttrFnv|S1pfLE}S_@)T9Z?byqTDk~?x0CTs7ySmHzEj-f2#ycz+iIf zH348&h7skSqy&P137A=x00BfGN5aP>Ql6-!!f&EZQdN)%5ZO>f6CeYCs1Oq2bP^;4 z6;(BmBVNd|@ZDM~nM(^m&Pzd7x#?~_JqlW%1JE(=2ZUgd*f5)%GGHkcbME(M#uv2`mX5)wR24%qo4h{LE=%iq=^L5mh+O%$*tM zufOg1|1cq=JMX3YyviLiXkeK_7nD>l>MTs66U7F#DkK1epa`m%ORWUtm@gJo0+pi*E z`?*)_H9gmq=bGFx9Fxowq(Bjnj&gTK*cWK?R|+|B)Ias!xU<{5aQs=(`Ry618bSbo z%u(U^PzJzR710!BjEM+y9^YDvh17|E3rhS)FxA_68&Z)BRBPyta@!<^Y9 z0}&ZjK?F9;WQekH5D^0c6No4?1A~GxA`z=5L`5V}Qoxv!h%k{NC;%l8l1bYGnpT2L zNKsi)0R%xs4INGT`Sr=pHG1Z;u=DAJp# z^$RGP{5}BZkaj9O0hmJX@h|*cm|bW~c~=pigh+0FGX1dd{3|0R)63+H7}!=kNY!H~oQj zi?R&+o(xlAxN^=IQ#j|WbER$CW*EGPCdq$Nhg2njS~ARp$i~>ZFosBpkij3ueoW4o zRb5kIow22L)>>;VpaKY}3K}LPN-&jR5r80~Bcfcn2FK*?bngj((zJdnCP1S6O@ygT zHLGGsddJGX7(RUo5clnB`ezQufhLcxnpcS<8U=tdF5no~Wl`$OFX;Yd@Bi>t8*LtW zZc|Fk{O1(~eBpiF`QiJYzoqy$Uk>Z@5_Kf}kVHi_DTrv6-SToHAX6N!pnxin@}nty z^wCHE&2Rk1#nqMguy4C&^r~Q)EMip_r8Ul4vc?n~$1#MM5)-0AM~G|`zz~vZWU^K1 zVqLhxMiEH5?YjM8s7%?c!g{@Mg?gLnQW#M|NFX8+feYI(p0_-Uvz+99*8;O)f^|~NmSHn>(cZV^lmrRUF3FG z`*9y+{~xf`uN?WgthGPUtK3(x-)j7uTupMP6WpzTA}R@zLgow#pt%?mjwRIykfqnD zv>)=S^y;%`|HXg)U*7a>Mrt?sf?^UuS9nO>=nHF%WkN2jagGSo0EQ5K5&E)Vy6Jzf6R@`{_O+-wZvbnNVRW z5xcWqPz8~^tLbxM@)rsx-PyZ5*{~=<? zB9aTX?&UCalB{y-0PfuH9hBeT?=3amyHPn?y3AL;BA~rf?3np$`e!)Gd-;oZV&0#2 za6WRfUY(ZN>AmHuySEwtCP~h1OoBWBCRNEuoc8_aGD1WI)~xENcB{qQS!<9AYtb5FCS=3bSY|a@Btpu% zFbX577)3-#00v2?r_}@~5)D|QY?Mf-dH*6DBkKGT^;qbY70A5HDbGy=Ku}U71ca$u zfU2r!Zq0Dt+oHaaRPTJz9ku%jd8faCfp^_W?hREWqnSO)0+Y13o0=ery0}4_9$KU+# zf9H4qPm!P!Sun;lMk!p)jEY7SM1&Bks#KK}q>rhUeqL9DL>r8?1*Or7GMbRUS{NmO zD3OUtoS_5>L=_Dq5-SKQfh8aj0q_8!k!~1wO>3Ayxh~79ELN+9GuAo*wO|B{5mjQg z29pQ@pmJi!{umSzK+-3UaiJcU!(t6akd-uV6|T zW=!YIFHDj7J#gWXRO5Xcp1AkhNu;wRbXVx2pebq;=shF=Ln;bM5D^NarA?9|W(@+- zFcE%5H8|XDlm`HST=Sgy`Tcx2-b)~5xoL9R06E>GsHkr@{*6w8iyo_uRPH3zNphP? z5$>{=qAEG-0g3_u@O!`gfBnwy{y|LOB?>AM22mv(V!z}yTMj8GAqcdGj!O#$4PZ>k z2Q>ydADprxpk+tw<2Xi0xwDic3kU+1j6n{ni4{bhvk8$@hu~EKNyygU+$i95q z*r0jCb(S+Q>&yg@3r7_7&h%6jRe|Ve!f%Q^?jQ37-}3gBRVC3Fqa@6EdH@m;VyX)i zQ9>P~CZ(v90*yhu9(Uw`Rz_wnpF~nrV+mA~C=)WXB+=YTiU{2Z}K1OjY#Tb~-jNJ*HC_eljqiq^46 zD6JtyGS*8%Kmv^lwKF0}tYzU^ACg2wwP<=s3K}H`O_Wp%VXcV!qkN^?smIFTbIS7)6IM#P@^IW6b67)kc|o&VudOB#(AT3&K^+~ zevuRqgpTPVC6uf;iyloo7f4I~}n0BDC{j4F#^ zc6JIUt3n_~j3QWB=cY0!f{6!7LSj@^Gzkfj6jez9AW2rUQxal8<-8Mn+M_fTWRha8 z61f-8PW=W{5d;Adm?qWamDkRMty)j4E zsw$|UQ&}qkyw&(OxfVPLz`cckQpy1UP~cd)G|6$AftcOO&C6H+$=~@;yS^V{G-Ln) zd_aiKRYoPLbX{0)q*^Bvm!&o12-Xy6^w9N^RFv8=I%|+Pff!>1wRF|8UjFTW|37&A zbP;vDx%t_D{7--D*~K9g21P7Nl8^)ez%Zeq8Bq*DR1-!ZF=&7=q=Z10$&21>o3-FI7n;K3+yg+5eK!Cx zcNQc9QB(k;+#oY|x4n~{K_-brrmy9Bzl(L>(zq7@L?ot!fGH(nHiiH(O7cGWq$)fm z%7r38P)LBPsG^8U6l;r2NC=h@(S{U#P$IAl%nYhu(8iF^S}P(crIaA$$OQm$H{hc} z1zGM8NGJfvQ~B{*jDG{ul7Ecb@z{b5K=T5mAgaeL?}|t$M=BEhKm5)AZrip%K*#p1 z3W#c%*bxuDABN~Vnw=)WJttGw#n^l18l)kNF$xKol8nJ22?HmI2pVDvlKfQ& zqj#k(oO5i9EuTJmh!}VM{^IINM6D|~iw!ZxsnKgniUb%bZwJoS3r3L;gpiT$iY{Q< zmVehP6ESawLZCM^`^&YvDl+YhxUXg9GrT#`TV=x{Dv~;%hQy$N$QZz}7}TgTMm7Yq zl5%cS1yYheXox6?git$}ms4L~IEEe07-!yuAYYkqI+k8)jB!#9-;7D7KmdaP23h$| z>w>o#|K_;RWH}Wl#*pt`RTTwP?ut+VK!tGXk+-|tKYw`>1E2*&^kYCWB1|M2#>faP z%%}+ru^;y;}3wwgisi^hN4OgYMC9;Y(D?Nr~B=#`QO7Ix807g zKr9g;swN*Q!-ZoaDV*_Mf=`YJNF^j9k|B0JSmFQ@MXX`Nq>{p@du&q&g>j{!L(@Gt zUAbBKlOMeD0Z@SWfCB5y850A5Vs@SgA_N#oNQgj%KoMCbcMUj7ARu`YC+0Vah>9wh z`*j^7E+SM^LIec?dDAc;^SL)Qx^Dn_KOX+pTC%7}nqtIUjt>e2Lx?Jh2@sM7WCbi7 z&I_ig!3hBaGg=GQr*0HyVObi0duqX(@uQ!8nx8ik@>E)Wl=hD$Hz-7iNGVB*Z#Vu8 z8%PlVayyBsS85hYb;tinv4H=(AG;sm~iJFSi4A3FzsxFsv z3$_y&tP@Zbg5Uk#)uKFq=j_2^Hot1G4$W8>MeqH}mhZiP-u3;9i~YN2Pk-s(eeXB^ z(f_PcwZWH_OOqB)gNOs-spFg`i3vy)3dbo(%n_@q!I;RXBqRcYBr&R~$q~`6=?~rT zKm4=bGR$S^AUBaCy4kny58+?^xt|N;(5EOOppuXv0f+*LP%hO(Apk%X6aoe?pmz>A zK{nC5uJThJhzMco^b47RWt|Klw*i?Tq6&zD_{Cilcj57$*}Q&|LsdnzAN`ofF%~9w zWKM3ds?RmOhF+d7AFEREm8n)tbx<(#{#Is^PhU9D&H5n}*oo@d2fAk+NSM$)0e%vpLiqW*blfnJ1fA4Sp z)W1^yPyghfN-Plpz$~0)gOD3}8LEtPmWe4QMPf7@V`9YGnV3YT?m?)zQWB=Wu%Zzq zCN}WlyHB>aw`0_l!jR(F`>_xEHuT+ab9-~TuFlWT(oqy9JenQeg~V{|APAKIu*=jw zP;zlI0*T&rH@a(lcT5_=v79|-e=z6pe<4Do&b{N*3MHA4{zRSRbjm4IT9q}V4^ zWoNZCx+rN@a_N}p=`Of2)H?Jcg05AiSCQV5ap;$u#0KiNd zVgevG;MkDj7^4UMf2e!ACdk3Mw0Hz$FPHU;mu6S1#s=|Cn+6#Ms(Xc_!6dj5PsT<)_t z-v0yHlU8^27TFJe56RwlciO)_KD^`>!b4FLR#j#xMN5&QqMS!78;k1S)Fwv18eI+{ zrpT0qevpJo^evu%9%Juo`?t&v6+|qs5=uh!+f3&)-m^dUMH@}rc=_f3>lc3RVpoaH zR2do3SU4fb9LfN1YCPJ|S}SGX*u^X&o8~HHt>NhCxXout^qt$^`Rr$Zvt=?3qI$7C z<0yCT-uiz(`+FQ4Qn_|?`j7tcfBC83`J|d~Ai$k}GJrvh0vSzIirLhV5MnkKGvif> z^NXliNYRijXw7QuzMw6FP*mJq4UQDDWKe>cCZxlq7^CiHIeM2_j4Omf(e)3E8L2y+=X}fiRIQw4o%IC>QzdAp3)L(%&Wr z?#JcpIoyHBWMD@zp>5(m(&jpMUdwN{5PNMolkl^MvM}i0X4T5O}+rlj+^puh|%^ z^F_TF29vbT`2*HsLP*YJ*4uB~Iawcl{6G7V(N3Ot><2#h13z#yt_mML`mTp=pTGLm zuRX^y6fqFYm^f4vnO2OH0~lB+rPUgNoquE&22@9pLo5gjABCx!ejH#NS*>`BX9 z2)$_U9})1D_qF}o6oF*NlJ9xnngS(tzBVkz%hcwJ&;6TE|IQbFuevIkx5~m(ZA2Wb zK_G@t^OVh4eQHD)hcc{W7*6VZn{-EX@$mHrFRHgXZ)dlo(FU33Ds5h^>BjAsUV848 zzyD(&4-P^+_V@$B7LJ=YUq8F;+jDvFfom_l{@m?bJ7`=?Z-PWs++z@Pv;?Y086?wd z%hosus{!wR=z$;qyC465e(hK1OwXoVm=P^WD1Zb;Q*cC*ibcoF5fSKo_J97bKJ~u$ zUjM-Ro_^OO??PYu=mKWQPT@fb=U@>|Mqd@AOr|d3uy}M*Z@MxOi-3?x%Zy0`1PG(+ zJtQ6A&zJ3$_xr%~c1^SU!iT?~qr;~p%IapN&MIv!0Vcva13ujC%l+FrVGJ^~?YI7r*q!|9+lxv?B@(gPq;E zXyJ$$RN%3l=6OasyituHv!eXI_Z;Oi8t1Rv zc;(u)E7z`F?F5`e!Gfcs^-~{s?*~8h_){Nz4G6{EM%U3>_hp5e$qr zJpACJ)9x-PyrC2w20cHouid_#c_HSv&vpt{iNOjpiAvuq8Ei;*W@Dm3%Db*TFzvQX zN|e>(=Ix8^cK81GzGpoQ{ePK=m?(&(M_*>po-vD-aZ=xR>ZBbii+p1DW9fwOw6s-v zpxvj;Z!^=s*ognqbMBWTGu{0VSM!n#&G-6|%Ppt_d)7P82jK1155P9==+Y^|5ZxE9%IDuZjrUdR0jLr5m@2hHF=^{oNn^ z#795+5j9~*WP9f2uYUfw|A0ca(|mD0wZ=A#Dnf**)(ByhjoF8veER)QJ@~7i`5enQ zu2hL?pgIpGbz7T@4LT0AbBtxkq{*8Qv)XPq9j^uvbC%*ozZ+ftp z9&d(!{NMan>(#hzwN*Ej1X*uv?n7%=cVS5)Ltix}g0KMj~U$zd1;Nx zA|<+413yHSgH6+=Ce0x^ykFcH?^vDhPad515Pt9R%)^=VeZN>NOGs4b+NIdL$2!pY z*!x+1$>F}XfBngy{-?dO%G|+iz3JX917I?i-~Zj;`~5%qq9{w33rc5@w+xVqxyNpr zBXi!(szWKt!pgl!#AENeDn=gj$x(rwlQt#^*YU(#?p8%Nn_>2Lv2Cm2B!gPZ+UhgU zK70F(*FW&&lWOwK7r*+8zx>(he4Hn_IG^218CN40F>MJBG2)dOICs1A>kpi~_|nTN zrMIetq()|PvXEdb>sCD(nJgqLEs+R9w5BYD8Az{@%uarCvbi`vBQgki#PiR+@c5(e z-tBHa^X&7Fz55ADLC0(HGF|Nd`$XEwf%{u1-Rc&+8|^vl4i#_@!a^j=!%IGS&*wv1 z>mJL#FB~``+*|jExODW26zH>>Lwl(&7v<$weQ^7~^z~-u#df!wd^fpACLtmxM+>-T zkHZN>fQWm4{Qk9n{h6Qn*-LZvZe2tm0W(3EzVgK{{PL$i8APJWf~lU>)~b_xwy5Bo zv+=TB#htO1IM%BH3|2h#*wt}tg2rlWw7p9kK1vEz@rdK~gLTU0GH5wHKE0TCR@fcH z8Wqp{`8TgUbn?khe(pWjKk~sR|IR0V_(vXn*8{sPAB_(^`ru=aKKv+AxbL9U0EmEa z^Nlw@@$nz}^XHz=z|DoPvo5VQ?mJeALQHNXHBsi(x~p z)xt$8l~~_ByC}uloI2Y1-HS~b?{3dcI6-gj&Z>{U@$0{JaWP#zx%uIbeC+Y}J!10s zKl}&Or!j=QJHPqA|FfTq^DJUX)FoDK-h7R6=MXBIts!F+(g@e#yiO)Gds8XKq9UUW zEi(l``b;`Rst_AFRyJf%>yTV{I^B5vjT>)J4f*45{`o7nUb}Vc_SMtVzxSgbzjpmW z0G&(134KenBeh&0L;@AS`ouznGdo*6388DBE-mMSTQ2r{Ig#FfYgtq}w5c!mtNE{K z@BgpsUI3uh+L27yJ7@ph2S4tc&?2HLwbuRCE%AOgkhzbSzvsnd=3Hy7-W;BYq$KKu zlElQwy@oWgP+{%d&1y^3y|3+`UwHBLgV|&dcwt_wcjsUE*Z=AdzxoyCA=6E1nzz$j zYm*2j&WI?SEpwWxYGDz;Z4gR7Iy$NIHr$Ei?|uA{2Ol1`Q%%yLFq3R+Om}g-x)xzA z{AjaD=X8u^&_QqAxf4!<4Uz5?-tgGN55D}`8>IZ+_dNWOk9|;$ubdp;y!rZ6FTVDT zZ$AI*8zLuS#wx6`Que4qGJB9ntMi;>EXV7kInX>eD>>g*fypR?ii(_XYs+MzBC;wh zqMnkZ8M$6_Yfv6R$pm6H(;&`-SxNT<4N5=upMU(x_dPCH7FX#2xsrW-OiY3zqO8oI zu7pIyA|}F;`_LkM=~%SVF2!EDM9}dUq}lXW4#?fL{^~3OnK{ohy)_SGvt_ApNk@R* zf9|iV)*6wj($DD|f|m>aeH^C9Xw^j|6Yeop_uxoGAP685;u=ByHb_K5LS#n9vY+cQ zAt`WQ+rK4I-%vMY69!XZ7NXDn_GiEHXMb8FO=28!s#^!uw9F7jt(6i@&>}?&D{WQ= z5r8PA`84^KLke%E$yH4W=`_zitfZ7!KT^)$d{g9TV2pz{!LT{0ZGQ8v6SxdvWjbA- z-rZiD<<_&U*Lr6=KljSbm%sD7ob0uY!zz47yrL#cMr*pher*!q_g%0*UwtxM}pZcfDJe00aiykw6`>u-Sup%Z- zZmJm98I<6rR)ukX5w=3ao5!b|R0($FdjS@NTZhK zy9$Cp`ou0<&S`2xDPvI;9Ze!ai_HyVDUp>}22Lc;bzYA}n8TwOv!;_YCy%hAB3Z=3 zapz*IECd#ch`Fz+B&g5OnUX{^2uLP*?X@>vfBm%&KK0~k=nLv(qCzApqNbv%Vk(1~ zsT5P|h+Gv>QDL>NanlX`Ko^0_et1t8=kVoQH6;=4Th@mRoc@E{_83!t3SU2>+$sTUx5}6mIl>8epirZkRLXIBvjwP+0K_~!t`j53RHAK@4ilCqBySc?v=wM-t&f-}IKeUusD zUQ|pJ2q79uX&#cITF&R~E3dwEdR!iU@R~B46*V>0Qml-&E<-UbgBBB0Q6&-xvj~?` zRQtjM?K>*HANp3IduZoe{(Pu-FFP&0#R#>y5M8P#>2EwN^V^U9q`SA)y2NgG-ToC8 z0R&LjItXfjX9kc#nS_LcTe4?{qeZsGy{Sb;!XuMNSUCGz1W{&&U>V#II1{}GA=;_U z?qmD6q*M_x;zWRM+_?EmpZwH$n_2BhX`Xk}gb2=n2s?m?Y1&C)6I-oi9Bs2%m7&~v z>lB5HP|`MMjnIxLe7tdV`&7T!b+H%Z^|IkRBa;T0v&H}x0{vlW_$a5 zIyz;MHy*aDo;z|gBcgoji6{TTfBpAgzx}PRf9o5k8=Fj9Qikkyb-g)a7PgG6^L);v zLM2Jo!{DHdfn^X)5pH#^J6t^)2tEf*6-L}RGBSw@#C^`BU>ZaU`aN9dAY&2n=D`D9 zIX)rQySvFuJ(F@CTwZ{mbY?|$e*-}&+X;uB^aF`s6--+<|lI!2cfV3zK^BD`7+ z0H$e*IC$wI0Lt$%bt0t7%#W7-f9>9r_QKpKcQ`{MJz-Y$i8_?MEhlW zfcVg|rd;+4sBe~Z+E*g#+;Wm|>KI58!C;Ec{VOTV3|_`RLPGX{_n8xfx# z6+~pV>TW{H>>xEBMZu}WnGR$?hBBCy=GBa&`8bpSC6Sm4VPPW#Oa$RS`the;df_Eg z>lnzQ%7hAf?e(*pufP7(2Oei85mptI-h6^+S9b1GCoxkIQq@w5ne`H}+o!NBA^Fmp z01T$UEOv*qe2NpmDx@7hK!Xl9iF zB6{@wy_L_3F_0O8W=Z4-Xw(|2gAC4yd8(3ST}H?5*6k_kSX;Y$7FQmm&6Nz~owMDl z9092A$pA-kh6_?e6p=~l9uD@@K?g-Txr*&-L-;h+04HKK6yvU@K&lqx$rz;!W?<@| zg2)7EL`H;r3X7;Eh?QrLWO%mcU%Eje$Q-Ny3FhWN5;NVs*uMD6i|>8+!<)@ogoJgE zwd#JNB5KyR-lUXrxwm{^eq$0*CBo(L=cOdNZ_8X>17Z>B_v*{iez-J2y(bReQ&<1Z zgy?-sxo>(b8gt8vA80R`-bINJNuCtQSj5HpHA9q(P!TraL4|oCCjx+^WC-`)#(Rm3 zz6rQwHiRJF>+Iam_OCzjPkuT)8^GW%ec?-g@~y8kd$eggr#od$fQngbF$^U@q&%pO zw&I8YL?tpKx$t=Pa5@$@0J%wmw&;$vuS7md4*4RsPw<212+ClS}3vsDQ zG3aJBn6CZo!hK$g<-FrzAmJdCyJz)ywO(zkwjG=#%*tj7;QA)}( z42hU`Z7f4kZ3!SoD?mDO^2p$!z=$J|PJpmDz%3Ff%3$V`qXJA_a)US;LaAgzixKtZ z28who3gGtn^wn>E>&o%)=!4gZLEIJq^nM#j&CJy7Es5sK6Ch?1Wz_|?p{fVSbpJyt zW>(bR8Z7nL+Z#of?+Codetg$v*msT0?>zpx>gU7XGP7PglwzfrDw)aB9HyQ*BN7>e zzKcLT`B<6+Dy+&XBz)kQ+>?n3Gxc@`^=yX#N+c~bIg#jlpXg(!``Z3%gpxvtBmd}+ z{zO_N#oehPsW}2*0D+`vS%;OXs4-1GrKAu=4G=bE6dpJQ=`DRQ5|UuI!Oeu+w%Z&B zk!&?-ESqUJPf235V%Uf_&zto?*(xx_`M|u^^5{c(e!le_W}0u_a9(M! zBU=#)vSzD%vKh}Ww!*`1sxp|Wv^i}Y(?di7FKkA+Dw3NrH6M!(7OmA?ptr9E&E&b} zP*~PQUEDcEwG$jtvL}#wb}`;cm+TqVGB&nCVpN-JBT+Ny#hD0SZ0oOn<_mxP zXWwA}Q7>1*_q4(2?U(Vr9Ph8OknX>vrwRMzDg&UZ?p`Y*<3OxVi|P#^((~*9*h!c5 z5lK*uXpsyy6UvPKb|#_+{G=dIEX6Ycm57Lvl9}&o``4fNpMR#KI{xU3U;N5fzqIph zxMU1t?|;_kLN5{b;N1V|7n#01Kuj3nVssFX`h zLJCw|hS{m$=v?lYhN&B;U5=4q!^T5I4K%1DeBTT+8lWJ^j= z5`|LX;Bi=+=+vfQZ{aC!g`_x@WOZh`dhIAucTsDF7D*uCEPD0mR6&z(GwAe+LT9y5 zU^_Pyl)(n&sbboxiK%wFI44dtX*JL9Y_DH=0L*h>n$wJUoE2Jx(<(S2Th%H=L^=%W z;bXC)TC`}Vc2-GA)j@wm^Y+7WxX63T?|nBb_gf81 z#{uXC?Q(&_UBZU6KcWskm0m)F`jTM3Hgs^LBOx$mW-NTp36JRAuMX?nt3>0zwtxNa z|A+taU;fKq_``qy$0CZv)M@}MI<-lZlYLhwCMjHmS*>^`5QCOz942OhoC02{5k(nN zi^E)uSOMm14~^+6VN&Q&%K{yjkysXp{ zs3X(5h(agJUj%wNa~ZWU6ZXRD+7*+C0JO-=FsSX}Kp@qq5oo@P>ZziUEwg&o1eq|GMkQU)^&XvJEAiKMhsZ1?Mb2y@b_02cP=<4}2uQsc3#laz>ySq6QTd%oh zCDly7n6{L%8OD%_MT-{JEX=bv5+Vy0=r~8&fgz+3!JzdpjKeU`EfQ8@qHPit6tCF@ zrG{e0tU^SBOeV=rj;Ab4*{HA)b0k?M58K*GO6=y z0Nk33P=H#^1m8a2ee0QLpMLVOG7Om+8TUljy(29khr{yS0(jViuP^)XU*K1{KQ0Hx z%MtY+|2(YAf7gh8Pjr2!Zy)~FWgm`+1D4~kRM^|h+563%o+`78clO6Yy)TUnFi{|v zpNzL=OI=A};oT;9Wb?>GLr|Y2Ep;`6usb{dKY#A$?rZzkM;?EAJ&c)w%sw<(mBA}U z8z@;}?hs}*PO4gTo*PrDu^0wJ&0WhzilGpRt6CQXLnJ{g_`!D%Nzo+NBeT)8ZL9)d zJ(OY81RglLCc>GfyxDC-Mu9M->}r%1lfZXT;&>SB`nBV%I9gj-QPVnDsgW184#n2x z7&1X;GA5>!m@`#WjKp{ta$GyvgaIT;mPONyg*07CQAbra@NhBD#gqxeeSu6oW1gF; z)ucURxH5@JGE+h+gGCc*B0{{Kd^4J$KS@9kVvAB>Ns4D&f2fmz^AGiT7*P_^OI~@>Rtu@*M zl@Cw$GdrZ@kl0_&=Pq44f;*1daf-!bejXCZ{|^=e{yKCrJ=6B!iI!!aTktTUDs zd~nwd1TrEcYqXZ(5y*ZwAQ4d!B}OI*zxl?iKmRX&;iXrUdj5z#y=6Kd>) zG4Ln?Rt?X=wANMzG7F;23U?F(8$v@+YdDQ41A!qTgE3JgAu=Ku^ZN8rjmAY#tFzM4 zsanaJfb)8#>ys#Dj5@yZ@|mTs2HW~X5?8M=Q}ae_tVLoHOsfn~j^}57x;|oSb;f!a zTI`xn8DNpQdTq6gHVov^(CN`T*A#IXbTB6i;y{N1sCf${t4MMTYE0QD4iJfoNHD=v z6EutlZ)V0M!V=lFRx%Rfu+B^&PNaz4Jv)E$@rQ5Ryv>@z!Yq+gl$o+SoRDUUiMD8o z6cZ7&M&EwvjjuoR+}EG^#-Bg`{KfX}16Qu7NLR7!Zbf}~x_3W%Tix5WnD}zc{H_js zNV5;#et7=i+n3{QM@T0qFtK!Y=M}?vQ03ZNKL_t(rM2y3#locaEB*K9tbtyhKM{tv5ZCntDfnz35 zWius)7!e~gBPlCOHHjm3*<39bH9E(-U=@kgAQ9P8T4b9&d4}YTSMH4E2tsA_hV)1i z8j3I?*m(%n9f-5G^;+k)J6W?8^`P}i9P=(b5(bOLwWh#ES)+D(46z(#HWOZtY^xL| zj}SxUS()9VE3$LudQhiHY$S)2zUjiM!O{v#(c*!=bKsQK1E8)im7Pb4h{28H*4YJs z(@_@HyeQV z2&E3eUzXwan@!w5ANo=UB-Zx|!UzAnCyTz^sp7rlUu*4hzI{lE?;(Y}oS9!jI5*!% zTLQu(0==e=pcc{gakT|J)2Yj}ATlG#gEMJQqd@>MQ}!EKUlb&wM85(gyyYDGtp)&q za0hI$iS{wD*ZK3G`_13_w|_9VG_z@{_qF}&M?Us3R#({El9)|3BX<{*a3YaBB_mw` z(g8%345H*caTAz`8k;Tr){=rCX(Rc-NuGZ4prUy~#<5Ioa-@*jplWDS5(G#c;=xCU zh-t7Ki=7O?USTJ@-MrqY>&`|UO-$p~-D$-e71d3QW2qh#Xi>*uY>_R91%r%H zp@o&9(#bJ&C=km8YD=OZ0>je9SjGBel@qQS?kU2_y+UyzMthV7Eh0wDZ&Ovb=20J zw8@Z=6ip+Fa28g94Qeb!*uVsKP)tfOQswA+nTo5|c%=f!9A1hEcsG;MKqO?#%#WGO za&}&$*W~0q9BOBV|qD?_rma)1K{B{5E-j5OwC_K+ydAVj8d z-z7u}F(-2j>N7b(RjAGlEX3Lsk(^irOk}E@EMl!yq?k~Eku<18?|>tj#GOpJWjz1# z>q2<Zp?vU)}$fk5|`%)OY2M|6f)&*(5Lr3FF`?rJ9s&I2IsA0$AZ z+ht)IOo|G3{@$cW-2Be#KmULKi`#e31!9b%bA`ACqB~{Hx&m>Y~8&nsy z?}TYl)oA$6cWw@r4?q0SKJQ(&ak`Tp^5Xpm?r~%K9s}4zO8ia-CR!#{ZWj?Q7t>UkH40NoV@*~E zrw1`{P-UiK`rx%IwVpf8h)6=PFo|#q0U%S03=vMG3b(|dlIYmoB$8TTvS4{L(-SI8 zO2?aVC^olB?5aH1s6?;dy7k1Pk8Cz8Ud)x=v21wAF5e1Z*Ms>cL*aV$h)J0`qC7VyTm~xA}G6)CwZnvUr69cM8bi{rNf-rmEaa~jQ#== zDY?g}03PnkJZZUybSC|N_i!M4cMFREXl8Ps6!CIy%k)S}%ESxLKJ&$|e5p|@qN;Mf zyYO_S!kq-`zO{dS;s-z6h1FO%F^e_f1_2whP*OJb!%g2rhC!@ndV~QQO)yEe0mR7- zOaz9sW#CTo=(Pup)rzVybF7B4;z5L_c`iDxOw=+Qo3T7_jdpXZ)slp<&dRK9w{;56 zM9WCVxbd<|uT-mB$0?xTB%G4u&^O{FuQ)TnQA-Vwy})dXCz3kQ9X%EHi<#PavuGE*DU0#F$EK#t77L#bH(ZRVuE~uC80g8kNg`)@O%tRtR z5ok#PN^spPFB}eI1voQ?h}o2T9nk-qm5;K%tuHc z*HV=0+z5hzb5j{Hk3(69PP^(L3&0zTYQhKO0GX1MCTiq7n0a~z6QvdcV&s$N0Lyfq zTG!%6B&ne*%s%NLs?@@3m3G(2d8P&?Q`H#Qhva1K9FifVB4R_Rh7bt^3`b+3!Ysm4 z^07ysc-NJO&dzR$Xfb6@mM~Lc%Jk0S!AvOv5>;X%hN@V&5OIotF%)Udb+9YPM;^}P z!t4nZo0`A+>Z?ESfyYgahU)#Sv`QZ;|%u&3P(?cD^kx7x1oB+s*Y7u5OQzi-}!fd|Nm-RFh^IvaDQ<=PB26WKn$AjBPcX2t&NLs?1-46GApZwGeD-u@Xo4J)CAn$^8)eeBoY;b99QGiX0>dsiBM76)pqmNYY#to zZ5-A;Qt>+`!$h*oSBMjx2M(9oOK(9I_t`QM*-2PE`v5Z<$g_K3=Q?1|PP2>%$|UdG z_X%GZGblg{&?4Z={#NI}>Bwesq@$xR&~F6}z!3ybqCm~qC)G@Vbo8pQ@Y28Px15Xw zF&GgPL7q_~JrJ1yaUjxbkVj7EcYpV{Kl`<>eXV&8YDj9WonPGb@YYgIlar0^Yx~zH zKm24FgCv}s#7+AUE=7bCswzBiE1geQh@+|RhNzZ7WGtM-Et4Y(2^bj4SWJp_X+}DF z_pLg`@%n+YyLY#D+sWqYs2d7ry;!g1XuXbEkH(Xzo)rVHPFL5C$Mxw+KK$@e>P|Gq zwH=ki$%g(s5MDRV(0vVYB&+J+H!Y0|_Sw#EP7z+zL z!NEy=+7=lZp1wr)1%%~^0B+rQ;Wt11E8lwYYC==nWX4BH{Yx~y^ z|M1hvaIPe7%Kg1o784;A3*$N(gN6q7sGO5VBSK2%OtS;Qgj8b_A~u3V#TMjq?t=YY z??qXAU_L#5pw-&iZWvc8G|QQeB)XHqS2idOt1`wsJA73(L>jFgAIUD}B-zgM$q8M* zYMHT}n@S;(qI|T;)fnTToH2|#*Ay=E);DV@B@$3(wg%xul_ASeVykVIHgnqfF;2+)v5Z04FjjV@Y-wJItNt6m;;;! z5h`<|Qq+`$vqcpFGFezylvJ4mo)ke@%9s=^>h8u8$f0mXBZ4G@;jXXTc>O((K6JEM zWhcI4eoNcFw_bbHjZRF1i1bL0%sznKBPB8^GTl3xBD*t3qT`veyK7{>9rkn@v>>FA zeMhf%rLZ)u_eTI7wc*jx-B?D)`_6NpG)45V-<#20t9l`ra|Rvqb!32A=c$a0NcVJ) z$ey$lXZAUKBogh$i_d@Z*FSapVk;_x2!{+Sy{KWfx-PiW7Pk;0& zh%@(jKz0&>th3Qs?q=2bcNiG*pj3K@J5VWS`-uvl!4hnNb7BGfCl9q(pj zJE2<6&p=TSnqCZ=S%pUm&C?m! zJ)xvUd+!P=>^=O-xb?o*NKRD5T7#A%%)+W1o(;@{NP@Hsb%qpbEkq?VUwY-$#~yjt zdNnTFbsZ*nD1eEhv%O^xVeG+?$ZWA}1NDY;BpT2$QXQ7v z>*eHSTceL;JDpVm8E}Vt2S4_>4NtT{i|~L4S|E~|qXqhnB#=Z)iygFtWdyZ^N4kf5 zr`16Onn!p?PcLJp1=O(FZ|XQzVyZ2R9E9DfC)=!yL{7WW+n>Gin0m2lAIv$ zeQp2xcgA93N+Z`%yrg7Vd4so|ddpp#O~sQ*voJBK+R)`uJ)?T%PMP0w zZq28h=l0|WS0EZzQp&0*7hWYLueUO08Bz^d2Qu85>O{L$IXPLK>@Ie9cDp-sz1aC! zR-k-~B@$`tY;gexXlh$D&LCWuqu231t%@afg*MaG#r!vVxjv?@EIasyvjk5}TS2 zgC-zM!a94t@aoG?Kl%7Lj?%Rs{(tJ;WNET2yUts?Ip0f6siMAkb;Q> z)l(ECnUOP@MtlIxG}n7+A~VTkq9ijC4TVl5p#o5-%BpOtGNb!D_j~U-yV2ly6!Z#V z7K50?A7LK*`rXZ1-{K*5g8A9yfB+9?&JaO)#z^Rk7#+2pFQsAW;~d>1`*}(}Pq_hP z3|sx!d$SDNQv#G02p`=tJfgXqQ;P@>i)=$^<Hbz}avuGEeLMTbXMgd({~!PJ7hk?AREp3Rttv-3x*Q!HJ-mmD z)xC4g*w{mohAorW)?)TbZYsr|#iXp;+s~U6|!&{jsl7cN6A)5qIOl z!6GE08DYuk5p9btt@n1h*Lf<|qt?<-O2<-VU-JfmhxQ0Xm72z8P7J3wHAAA-vgLB~ z9J4ZekvT4&`QgUO)D6j*wy`xb4kK2dPAdY`eFHQyJ&d8Eu=J6{k)Gs|!^f6MoEgr< zFJ8WW`Q}$es=Fv)JxkRXFUw3Nfuj^brjVAB%;M%uBvJ@Em>Gef1c*wVx8BAj5Gg|9 z9$WLU_Ji+zm)^#sjjL)=nTk~5f#4i;it+44o~2HItETdCp>@xpvKZ#O(T9^|+SwO$ zmLd;5*;o#HgvHo?g$252jPUI9v+C|{-g^%VH#fI*3o~!-W(Et3(b;>1bx$+zW~1?r zp~3JmHxC=|5K0fMPK-~;k;wG0KmFt1|KmUUgS-0^5hZ#is&<~Yj?Kek)3rC^kV+yH zj>4t;lH~7n{mT!2`+E##sD$QLY^$6Kr9h(^W}c@Cla%4?NI8T4(z264%SisgkeRp5 zyIUYTQrM?LpMHNICImJQPn$3C`r)Yksh_HfCa3XfJH@t<69sVl_&`N2>(!wgHd}&X z^FWd?53Nq?(KiC=(j&S(zkD9%^M#ez6_VHM?R9-$vn>5+vDQhWsYv0N4pVKuYz>D= znN8<-|Jir{&Zob1_v)+5Yo9MdQxd%Nby>+8OB5jvPdC%zmd+p~tu4`Ok-C|MhX^|m zMzHXNWilhsMbsO$ZkP3PUk;#XbP^`YQuI(*sz`)0d17^vsiA%- zTP?#2k&t8sC5ZX{_O7?(<8Oa3?u;U=I%u^7iXr8!s#R&8%2cH&%~hr%Q_;EBT11rR zqRLuCizuB}$m}t` zCK8dBZV{G5k$DzTVE|zPc+$8=(?CT>Al%M>V_IZ}_wD}w`Lo~ulRy14_ee3}&eEwG zcFSgKHpV8Wb}A){CQ*8zKsVbch>70m`j;R6&W|`sU&0$v2q!UF!a-=QN1%H`#>S9m z-Z_VHkeG5#!tTut&D^6~^x#OiYRE)dg-ia{58o#-YgVUeSuGL5bbES)Fj?g&wdk}j z?(UuL9~LD!_GQhZ&~ziu$y;D86-0202&$s{NeI|Z7R2}KY4xCx-Jz&gv;KH`kgONe z^B`aBxHX^nvY=4bsmwa{$F^kDN%UcTx%Sh0Pv2i&Zx#m0)9Ol4&frFM%M5El1lxdC zyC-FtFdet8H&j&SbT{J2NRV(6L%n4H-OV#H;kgpw=JJ{%TvjC#FbfAoB+Rl@GHT82 za<_Ls4gb0bckc(?^++D!iJm06wG?I*0_T9IzI=UmJU)E-@khcsN@?_!Lx9BuAVxX? zQ4m0s$~4w#Oi(6aDuP*QQZ9@lq{6evEL>D}%7s~ogi?e>ITL}Dp;pW~At};hPRknPqh{@#iS1&&M*MIuI z{NyJ;4NAReyD7PtRCiu`H;o-OSz;*@6-gq5!3mC(02g8@?{xjk_kZ{!JBef=sgy*p zRL{u1S_GOqr0O!@gcTKYa3d zOUt7-w+;jQX>+1!+ng&B6f7QuF4mJ~0?e{mLaCS&Dku(CQ<|FtEHp`}Q~CS9 z`8%iM^3d)*dj?26kt&l?$xL_xq#7wfF;1V7h*`xVRE3fN46vTSDzP$o7>Ms5j$eKK z<+JBcr@EuJd!S!mhQ}fHER7ta<6FncRtU+q`9CRzzVc8Vm(#b8Z3e-q+r?=GJYqtvi8GCoU7!DV4yA>l>|NMTAJ_ zE4B{ux*5__h>6H!_~A2wX`ZU;)>Z<|Gm|0%%xT_E_IPUX{f~a5#5kz9Doq-Bc8B(& ziV(9@8Qg8KxXePR@#Cp8Q=LNzB$ko@7;son5Ev1Y2sjEP!-+;baHavo;PCJkW*J|9^UHtw zd;gVf>&wTl9eviS%peDIVNGdfU6@lsYXB}Jlq`Z}+q4t`C&j)_-5t=(v22E?C&h8; zKmO~#;oP1*drBmD8+e^b0GWk5dYoT>?%5+-ga;59&L$a>2{3_#Kmy1}OoYGHi=0Ks zbnal|d@Bw!M5YfR1{|QU0N!djFl1WJAkRbw=TMv?k@6N#m4S40q@Vwph#}+}Vv;;V zJI2n6;6MNTPyX^JfBfR*Lm=y%TCx_HwcfEUXeTV&R`#1zFN{b>N;e9SDg}s|=32PV z?{xjk_kZi}0uCh)6G6JC6DOF9GKmD#vy3C6wTO&upc1487gDW7R49`|t6c2L?f_y; zWjC>k(0n1*j9JWcE+svasHggl*0u0+5_ z=GhrEPePQUM2x-$97(}cttFR!d8LK@)Q(1Ye)#ao^wgtM>B+shx86Cc8Q-nA!mpt= z!>%|sUqiexBw6E2BF=C8v&IwS(Hrga09DaQVjCHs#Kb_3FO8%jAWw`7(%l@jc-n&!ZUuzLgAiPnCy9S~P5Q0r( z)eL2kcf0<7<3~TD2(Wiswq_9w5EC;f*}Qa@?qSVsYr$vcEh#a;a6+V3nlJgu73+?* zN)a03Riae3Cs%cBG>)s;}=pGKXh#;S|TF_)&h+ z86LE$?m_1PTEipmYjG!j!>+=vj5n1Q`q&fSFh3N<4y%geWDW zOGJoQW%b^#XTS*!pNS9 z?mkKObRk(6|Kh7(efN{^2r+>Z89_Lw&?DX=W|+Wut4}-==7%Q_OrWs<8yh8NAqWk0 zKoWu9!ax8B(V4bRVEVP&F9AO@_Lzi(-_k=EP#){Bu@D+petGTg8 z8DAambp6Y3{N`^2wKa~JoI#SLBE(|ip)1lNJbJcntYa6V3?V0?EIZv@^Yd%j?Vu%9 zmD%RmipUzq5@n8LOw&HeDMOVHQ$+;8lW>Gja}^$2)|ga9SP-OaeJiA-9BfKrVOuUF z%4}e>XwAHLv>pr|s!1*oPHzC~W}T=s!>PMUDK(=kkK60Dt$gwwDZf%=2>t)WA6sp!n7*R4+Asri+)_@T+i|iie!k9D#U?im&QBp@r z1ciG7)H4IYNtH`a@9FMvw8ABuID$At-%1c2Lo&rNt*vo!&n+mm6orJt$t^sBSsm#C zUN`^67e8yZTpjizY7V>&9Lb~zxWgm5#Yp-a&)FE4BPb$TraKLJ@mo*sctZ>gG%UuT zeO^*U1ihomq+-QNB9 z#V`N-&Ffc-Wu`s3;lsYS){c+i9o^gUWVQ04s)8~kGcBTb;SdS-MX1%S_mPVf)WP;n z*S~!76XLR?001BWNklHt#d8!w?G;G_} znI=|NqHT+%H|rjTv-*$xVYz)c-f@YgIh70xk`(5`MO9WesXmvfcTjR7x`}mKkD#o| z+|VMEAmE%zXiZUSk#tt+CjtftLWp-dw`M^Zo|gXU$De%fqffv1`YZ3031SL_CnHHn ztm(EU3#0_Hv6Ku%q_C{bK}nn>sl;vdZ(hCm$xnak=I_1t97Kd*VijUxQD%$>Os67M zxiBd+Gl-K23`WB8Y~rP0oXy6d%t%iVGs*vtI6L0L&D{|h7UKmyl$YT>%sk#oFy4L> z;0)t%oZ*t=C_Lz3be{3YuuQ$*{`B+z>-Ftty`6~d<|4lJoFkTH-Co^C+j41nYFUK$ zMG|Bd$sq(gmF$I+qAQzHvWSwDqz>77ws*SzG3xHKAEiEvTIarWqze`8L8hXb(%~jPbgmYWl zRCSu+#x7{?0TA}kpae(La8Fk zA_CzgN@5-$5M~lqRVoEa9FgvD1m)14g|es&m*iM0$9V=G?%X8KKoWt?-6NZ2Gq~g2 zEB~$fF~%L)k(n?L`0zGm5=Is`D~k{_w&lgozxtPVZ(bC#N&2(*l-cf%$J0u0?qch1 z&A0BemJ$^v5zIni*&lb=C9;GLWwhMV zVZ9b1MfZ(zFga~LZg;1%a3TRHdxVfq~m%HnW-ENX~?f3VqlsN>*=o@<^ zX;KEOF0CU$Nh+0yiL#r4Srp#73I%Lmb!mOu>|&B_JF?Va7*Zh>HS5YLNG&d4kn)jW%0o?sD??2IH5aCmliVwy#fWZi}I)$Qvy zZ*C`6A()3H10;e>-_H{}`3NX5B#6O2q-N*|>gHonl$ql^6Wt$9_S4UP`NbEXtKjnD zP_?pfQ7*~=6_r|4m9=mwQj63=09o$|6cuEOka;Fhq|jNjkd~3@0xHa4$|TE7WGz|> zsSH{zF;gMP`D)~2*u@ZU5dskKP-QY@5#86K#Fa&rX60SY*DwF#7hnCp`D6HYb0zaW zZXZwU(yYtzF&|Ifnl;N=t27y~uqe%=+ghxV7UERlB0?ZDT6(O_265I)>bqV4pML*) zL?o!7%xZ%wrUF%H8SfrK(zKU)XiuNX#a@x?VaM~1L?XiLOuIRsJel5qy1U+2RXU#5 zhtt}6n$dhHYv0z5r=korGtV?XGI0O|S4j&8rO+5zI*2nF$%S~Hrerja&2!QMpqYUv zA|u#>k`#IV)w zb3-;(Tpw=M^^^f4Qmzzp+kVY|MiI@V_phGP+i0@x!6+)F=tSv3ErXh;kPcb~C7%z! zq|0Jo{p#gUfA;gs3w{3da-Js@R;41O45DNrW{MbW^c;Z(K&YUq?kX3-W&u2!ZP z-t5zA+?fk3x9vnkLaZuCAiDH`gjfbjL$K3%>pEIN^HA18>J1S=6DYID#3V|EbnD#H zqOcH2Gb5$~Ndgss5W#RD-I*eIme~;m2+Kqo78?RAO7$QAgWpxnfANRE-w3L5sCrSa zGRQ3-m(Af->QqWC>e&~wObg?lJcLI9u0`3CxD+YG)7E^RbU)=k`g`C1?H~PcG~xsz zf?0HrZEKm-!!vNU$YZ2{A(2cFAx>V+Dys+`*S?u&rg^@;e|Yug{_gR#_U(gbPxia% zVQtIi<{`{Qr3#f&GgFv_MMZ|FIx>_{3h(CWa#xgdD&@;x{_J1;>;LKX{R?LL==~|; zbbH&@t-FbX*VSIW3fKh8ATu)tlE|X9u|E<{0!&26*b>d66DSY>3wYT=gDcl}y8h{( z{IlPK1{Ejvp+(h1^PH7EP<9X{si_>{aX6HVs#N;Ll`uOqs}$-KL9F@ae(6XGvKD5^ zQl@1UFmReLI2;0_r zu&}gc<5Eg3Rj{=d$s(bo%6fdXwfS+wZYPl`1dk4YLu#oc5E3e!hyrp1F{kHgi*-TO z3J$n?s2kV9OuqE97l0CAC6A79!w%EL+#`sY=SC8mlSJ)d&<;jVs4^v452m_pL_$SV zhG{)9z~dQ7AQm-Pr82Re!?>83oXeaBp>zTZv(TYleEaE#uixC=ZpX~nPlsL61oiaO z^2n^MM-QGRQYO|Qf~V9{4zjn7HA18mp}+UNZ~fkX{<~q>%^ptcH!mO87EAA2_oBQn z<<|}eVWy0mi^Ii!7LKCAUi`ngFpO}f3>yy=kFa$>1QGqEycofnhDzW7pxqN-0jQdPIvp6*jYRc1n%zUw5@*oaN@$s zMPe#i)+0FgAAMNF%f)`bwfN@tE_V;FPG$?x`Q~OC07N3azTR^gK5!D~pq?=(54ARMJu4lk3Fh9`wn0>a!n1E4@cm@^&8 zW1q}LU|TM{?z)(V?Mh)9AQUKr$#jRCr~35DpI+?uGhN=4%WJ9=0XbDdfQZ+1-OQGC zMWCo&T_}OAd2cc4T#D}xy9DC2&ldaLbwAdJ<9a&vQgp9$v72o3eqs+$lCm%m9IQ-9 zfCO==lHQrvT8I?p+)aCCIxZ^+2n6? zH*$|8rwA=2ykA}Kg?w#ZcqSr;u>cMk;zVMG3R8q9NR{WAgt(b`5R40E1v{VZduDDO znQYxe1}cLn*)uFt!0w)jAb1eF06_3av~@UBV#uE(J5iE2kj#zw+bTH~NW zERdv3F052D$Q*d5>t8AiI$i`aUf zly7eKHy4+a(Cyukr4nalVaHV1(tzwew~Znx+=~z^snWz0VG*8yg$Yxb6F5ASKmZl; zvtJ;YbyroHd-ImjgSl%dIh9Dj2kn`pJBpBJSP&sga%K>7f`&^lFmy~q|BFa&mOwha zZQs*~C<()Jbhn*I_@kTWh3au#cGG0oDi>y1TMri|cm@+WU_F_L7~$yNrixvu%GAu- z*5^trSk^VHFYDS?i?e&)EfJ0$MqyX`L+`EicCo*pi0^#s>iN}PDS!Uu7cXy*U;OIp z(-uGd>ec5j?%PJqyLr5PT>t9lUv9%0j6@`bCEJHjcR%>{2RDbqVZVDgJs#WbmtX(e zzx>(n-(1^=?-ls=)r*I(U!T^-%Zl}cLUd}Q8_AdV4_oVI48w74*2BgK;!L1vCMqqt zC(O(uu$?-2SVjamm4#(asgcr~HA;G?>!1FM|MowbO7fIbsq+jXe|fvyT;GbqMF8}Ut z|L%JqeR6kq`v-sYNB!ZJWi#52{o&{fR3#wFmxr2~kXTM_TWPni!~_y}2&;#gXC&|D zxwSQs(_X&*`mvdW+o4vf$x;xhNo7{BDOgn^s2^=*V`666m&wBJ9yWJ1 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extend-repeat.rgb24.ref.png b/test/reference/extend-repeat.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..81f0503dfd3d0174d6483689430cb8cff2a31a29 GIT binary patch literal 108603 zcmV)qK$^daP)`n$^EA*OAXPJp6zDU;c=w zATKefX%2H3R?Lip_>;f-?l5C2q!?o)qGyC96oDCY#)3r17y^i58qRqMDT8FXhLkZx z1RwyRIR8)o;5BEt>6^*>R1yK(?cAbj3YM!E*Cl)KNmZ4yY;uQ+OQ_7v?Nswd>#DG_ zKke`DPGuGs7t6=(ldYE}@T{xkxS*DMhEPlvG(Q znTk33fTK&57H7)}Wadn8&NwkDR0x!{F@>CRN{JDR35kQBiBO-8b1N?%caJ{KwlRnO z@%(ZT^R!&_rV_1gmTe-D3)P2Vx_z2s;@7J;r}ydMsr>BqPk;2&PZ;5D3Vmz;^a#EY>f8VKqaR%OaC&id{(A9qzm328n?L{T=|)*~ z{$iyp{^ZqfzW?ssX}q7p>3nn9*4Jnf?4Xeoun==Hc`2cHjK#|L-rp_;Qz1QBrihAt`+AyATH*c_)?KyGrC(G`WyTmInG@w?h)XH4GBxq+(<#NwnHI!2Bf*&hA+`Bl z{}=!GpFURxC7?FKR%O}grW5swfAE9;;VHM6wj#S2C4>FiHzbaU@!_%gR=!(zep$ zkmot83Uiqmqr)7&_+~eHc5zi-KW|Kn1XwARb7q{BVw>)4Q8&a$NnROclu*`cVWi+n z3M&jSDpX1);=B~ag&-=xjb@bvC6E|MhJ-~@CJ-tGS&|Gn7tUPp#JLa7Ck{flMr+NK z6e)TwWsa%Rwz48;HqIeMVuBZ9fQ%E9S|BD8ObVGZ7M8RX#JMZ!{o}R>+zk)57pLGK zZi5?P*!o3V2MC2^%)w}zvOJA61$I0o!5V9?e*W`+^wEdEwY<8Xz5ct;zDWLH6b|#< zpZ@Bvu!yRXLNFpEqRqPflRx`^pw5g>LJA%!xj;F-z551QD+MryKltF2H)kJE#^h|bOy!Qvs9?f$ef{#Qckf6P0(LkK$NA8-R)hKS?PqUyU)~{Em^_Lypy@Kp(MdG%h)Kj ztYl-QF{W;rsmeG7RSQ!?!a@?4E7et802d@mLgzD~;F2@Oh%;cwC10%MvSz6i#t1m| z-6DG0G*ws0{oyDWthHAVZ-D>8mV++g^_49SBd~o0azgMiYV6Zyv z@r$qTD%k_8*2|aIo9A(YAAj=Wzx?z6<8k^@EvJ+J_AuWiNNr;-FE)&kPX!Yd<>quq z3ERe6S((a&aC+QrhZMiMxveU>?5r^K?(wUP^k;wlw*fKw9D*9>GKP>n4n9 z%>_u;s=K~;%~UwM=!c!iQGN8mvXC2Hd^otzzIdE{Zkw)BOzJ``VM<1eRcmu{Q%qVi zA&cbrz5Xx$_>V8*oNwOmk25c1DhU_e)p0kBr36-jcS-`|B!E*%-bt1;7VJB{tduAa zXBdxpP6V9i!YGUE2^e4^p=H;YH&;vG;KyVHzqoEp!*@^fd?IV>eqqj+*9J^&4a#{c zbIv}8+}V0_z7(wZ;7n^t>b~ngeg5Lv(yqJOYMG-?u?T6EG{i+ITV-$jMRxop9x=Zk8p)WH5~>Qd5yv@v z_jcGl`LDhl4~JBs*oFS+)3vcI4q-lm3g^3f&SBAa&(^EUu0N~H>c#Vyzx?Ze^H+cN z*Xy>&JbIs>4*M_O-rV0$grZh9q}*Eb!`B}V?qF&oh_eDxfy<#tHF^9u|Mpj({>F!| zKJ2Q7yJ;x6`||zgXIK3PA1*)o=-C+K&2AXSXtl&b>$zA8PuNEJd7*^~0^|Q0hVo_H7F3g0wuDHiE5=Z=Y%=M^1c2qe)sQP?YB5Y zAywr^l)N4eL+}v`%rh0@pxC1BtZbWBfBfO{#q-70rn)?9n94KwSwu%!w*ZE0CEH5A zyzC4xWLy9c@n;u;k_ajGD_d21e;A+cPn}s8=KGcMISW#4(*ww--Az>qBV=V-t9i_! zTlLnE6h#UwJgS;APSGW8Y-K7$-fG)wtCg^Z*G9K>*HyI^f(TDx8hl_$#87gE9Jq7n zXPJYbAaN|5slrP1>F)6$jR69|#d^Ku5`+{nCpUy;wTMH|Oi3=|M76foXu$*#a$-4! zkSL~-8O20XC@%35dZTr%OQTp_X|1f1Edw>@LY&Pdr5Kce5VA`&4CLo{wyb~rasT5V zoV|Y0tk!h#eDUt@_A+)iH@vauo68SZ=c~!@_s4tABa-{>-7o82x7{UZZff;cpa1Qb zH+SphMQ7SS{O$kb(^sGP@tAo2?&)1qi@t5DS~vA#dzd-M)A5k7AmYv4u5TLPMeAgW z+*D_rl@PPE)x-PyX-=E7>L;IGZjU?FsJ5}wbb`oJaF@@!u9i|mDj88c9LG|MU;v8y z5I|{D@sdl|Zv0px=8U{C{OY_lMm{{9cH7+-U)+wfXN8AYjFrHpQet-VufMn(rqXs@ z->>^_p%gvb?K$JqG;c1~$KfOeXf3=eb&YjvZttH;M&z9HXsu|f`q{-tm#a66_KgxN z7EEJWi@4hzGhw%=k(l%8;eK#VY@b+ke3;Yh*!TLs_^sc$7z?hi*9dg~^k^g(2=kO5 zx6^0eyywikyWfK%qoq=03_#53Yn585YX8YP!Uuw!jn-F+z${Hr!zLACRfC83^vj zIG%Ee&RT&yxNj-0Tk9Mm~GE zD_2*q=M?*X850iUwqMp*rruT@>sl`>RsGqY|GU5V?B9Ly_9i4|j6#;*9^P)JhtuR- z^!>7``#J=lA|X$UR!htwWn-JO)>`BGm26un87~7!p|}*ocmm0_!KTgYt6CU-byXXM zN(w8hnh1MV?Oa{H*DWB2Lm8DJ^9(Mpe2^o@yp~ zWnXVL7rm(}wpcWME2XATaEg4I%kTZ+v+Eb_^VbVtQ2|(?FE6Uqxw*Pptk%oTa%Gj! z#uP>Y9aoC8qT5PIUTa+n3ectS$|{V(2vJgEg$X8yVJeVPiJs+v!Dr|4H0Bf%Dpb*< zKjh#MxfmxWn2{U=2~J8#ZHyHlvM*3zJh|=RFidWm98;z6QdJEo4jQDc1!N|04s$LD zLa0UpFeaHXvT5qtsJ=E`1ASW&`gu&j$^Fht)d)jO<#`UA6h+B`@pGZ9?;=_ zCTy!`x9^XC^UL>l+Z=g0&FNw5K7RA}|F8e^7Z=NaaJKou#l`FEtCv4`^QLR)asPEH zaf(zm#?}Q;h-fd*+D|_G8b!Uco7K$2eDmm>Y_85166Eai*`l9DoJS7QB3HxHp@bBZODxC8 z7_qw6SlB#!ri!XrZQGmMEpZ5eN+B?uGAm5v5@QTatu4W`tBa~uZknyFg%EAm3C>uN z+kKdZVyu1K?pB+H6i#sc^{@9igOI{GXN{)9hJ$k+&zCQd@XhlVZ?0b#=3ic3U$j?e z?KN>IjK>iBwq?Y%-89v;RF}l+r~Nnvl@T&x;au0&rLk({_xiv1(NFqs?@rEzaGZbn zi?4U5JWc6vipP+;v-<2pG;6kO?R0d`$00LQ+0%aSv;5-S{usTn6>|_r3=xdgT7pqR zDY0DHWowb+KmWtuBqlkNg#mFT3@gb?#yRHVRM3o4&th?9^201Eiy-SPJA^!B~m-p_BpJG}bvJPMR~^UW{EmgVHxuK+2d==x=&P#20<7TMw>M9_>A2l4+IsR+=G=!83vPF($J>Kbd9nG~AOFMu$SU>b>dlWo`N{wNuYPgZy4Np1 z`S=Gv(%L2;tv0LGg%9lN{I!DmVzcTSSzD8^@KWWhTqyU)<92>Lj3W_c%o0rIC6!p~ z76EpLli&@PlJiuFnlaj*c3r<r^9#e4yQPN{K@5MoDRo$y;xW-ITKt07XZlL z-aK)XE`%5d+X>JpI6OU$pdqKS>KDT?Etjit7{)0hab4NdFj?3TaUaJ-n5lGa)zvn{ z(d8typ&}%x)oN*!oF{j)+YK)Ct(m47iK}{)i-gOe+;= zsrsflUsrvr54&23i(DAy2wM1Yt}6J^Pk*~`HcUg`sW=T1s*q&UwKw};jOp}r+;x5T z**9Mvr(sUVe%1Rif?(tBZVVF%{_NTL>^&=@M6q1;g7am!tc*Gxhpv^wDIkctYGcG@ z&AlgJ`uX$C%V%fHUf2*e!~MirD}zifQHfK*yN6yXm zFdnygnzQ%FkebTYwKc|W&NhXUv3=iDyJU~s`FeBa++10UB{H0)6#MPi=n8?PQj-sd zVXRwYjUpy1V~haId41j~#S-PFYNQam&64^ZbNcJj5l3PJPWbHPzbAACO?02Wi)SLcnH_ZXdkca!zH@4D1l9gbzoV~NH`yi^bJ=^tCZc>llzLsf~)!b0Jf7 zk59K>y#0$n-#$M5`pd7raAl?v7JYxVzWiSQ7ytAh|E8q9hWOzJ&;H)efBgHu^ZP*Y zAO7C&{O(VG`}*SQ{BoJ%OdyTrO>4L^hy8Zlj6cilS34ubggAMR@%m#Ii{3-P6Z1_hM{DaLS_XEwYFlMm_Wvn zWl&I+j9S%7RGO=bTdgbNR8^*Jt&&Ocm?4IYF=ro9Gmwl;p@bAm7M!>Nzyz2}!xbo& zSkAzVR<_biVAbf#D&koXucVO#La5n!KP4+!-?RimN(GE_#cL%6@!4hI4F{PsX>FBc zZQF5HlxfD(?2=DK3X&n8u2Rc&HkA zcel%-C;_TOnvNDYM`jchOoN+eH=nQ1g#aV)`PK6I#;j|#d)R;T<>9znR?zE|8=JaT zT&}vaWeq}Zcl*jzc|0P{*Im^CUslE#F-(VxO}*~=^S+zz?_>$BQMIIt&eU2NRjecl zObUUiBwwbJ-<^&M8O79^vTC8zmUGcB``*awi%v^6k8@5z@v>ewB}|6RwPKRx#k$!n z#N}%F!H3sXmuy{LTyJ=SO}|Mgp8Rf@P6#>qLX;>MV7zTREd&agcO_F!naEpM+#ilFU%WYQFKWB+^I?bwWcdE@Ht`ZeC^=4JF;V~s zPMjA+!IZJxG z#GDE+DLLeIzp$VUH%eg6%ws|z02~gZ5S7Q`V_?L!)Qzl+)-eXosFY-ZW1%E)J0vZt z!jYpaCDhvH5{@oPkkJ)ex6y@`)lf<2$Fs}&@whXh5uAer!3ayjf(2P&g)=23Y7LT^ zX%5JF({#jhhy_zh1%=QO2q|HK7&35BQYr~K$B?`P?R~C<2|lZiU!K=eQ@d(o^7ASF z-7g-XYCW4ie6^^oK-e4}FV2?B^Y!}cw@;-2DI&&0xC?Ik$N%8>|MVCC_U`n^nF!%< zetB+frx?eAU1Lsu_~PBKTdPB4rxVP6+|--y!xj=*G@vM}N=|N6W8?V6zJn*Q0UA@*J7>CKA^WpYTVuT3P1eo~xqrDhjO zrt{4;vMHA09mXlXfB$g#aur;mA~P|Nv9cgF|Mu$;@dwW@ z{{HX2;;hU*6hb6&X*NoLgj5m`FhpGo#YA5(N}f2$;&RGVxCn#=f>9cfY$X5$A`3Bd z37Hkcxj*{4vqnmaSQr|uGnU?9flEqRFd-{8j!qln$4N>ngzzybrAo;J zTyf9>q?G7V!30(_V2XiMz_^&k34|)dIinDhlse|XxBvvkm`k%&78B-z40vVDdgtAz#3b=Lutd-|EwPOm=$DHZx{KarQ?RW2P z?nWj3i|c3C7gq}{Qc3&6{P_3{aB+G0!E$x|H(&j$Ief>ZE-~d40JTtAfhar_#smYF z$<%eBXp~4fbEX-Qswyg(GR`SYG1c6lf%!Bc3Z_*l?BV^kSyac}@p`>!J4uqWoQ=|@ z)LdxIk|NMXW7k?ld!6jo% z9v*g;wSBuxaRgzH`;%!vsVrqP9%c^ta&s{ZQxVL~VgGbote0aPnyym?C?+Okk#rm% zb!Ey-$6aWe_Tx`Y1$8V=R3^rhV`+3HHN%)=$_NCUIB)?1IOin$wn3hWlaE2yoUu%? z0La2n3x$*bnc~uiSP+Oo4#YT?EK=g27%@IOZ>%U2ECoCc zAr&DkAjU@Vg|(cs!8_u>K}(=TZHJQ&PK?u}i~=D+7VlB1x=>^gI3X2jswTz(gaVQb zQGm`N&U5bDW%eoB;>OIU`6`X!3!I z&~TQ6y}Z1d4&S->5Yj1zXtl~L83jy z25ug2i{OEZ5DZwQnXX%$gY%wZOkDB0>fF&ooifkBg%MIHI6cG^Kv;wJBmV#ZAOJ~3 zK~$(3$z^h37NVg@Zgv3RJ+9Xq2~pP)q)ZX(X1P6{9-p4#h+SXTtq`UQ#dtEV}-dmKYx4oE@28Wf+EiO=`f@SJW+ALR`oH+2Kl(VO z2!)T2gH*U)wv7VfanW|BvJ-iasq1?ZC@MYAAyV-erINL(-o1UW)@TrdIASR*Sy`)M ziRf&7CWKL-+CFpOA;;iDj)fED7(+?(j6*2C@SG)N;Ed%&43z|t$wdrfnulpb#u_+u?Kl>5KLrgQ*O65{c$H~pHGPI0fyIfbVfXaqX?z&Na6j&lXUPGW48;7Li04Fc7>1INqnPL5eGnX`IdR}bL2Iy8 z!@=ZC%0kw{yLle-roB8I4hrgNj)js@yp%i-(VChICZtRudG8q)y3t7{rA%e&Fwelu z6h$mpb?vfS8P2!kz$FvNWr3z?VhM}oa^0;etxHH!YM*jSF{RQqi>j_I@|Esu+qGH~ z=UkPlvg_5Ekj(oz1a!wZxzP3fs$W#bRMw`PQ^{4W3*e$zp0BSeu$z8`j-1PRqREBr zX*zCW$vn78f>2}z=iL+~uT)V+HZc@ys;Uwt1rD4Us9O8I{?GsWfAM>)faRsfL!BPkV@Y%9Yhn|&Yz2@+G5oHHhD-3cBFhNh{j))Mg)6J|PX z4~#Pa&KN_|8AbMG8t1BMIfz7=GwuR43Rauu{r>U!tBH0GEB17dC47_Cq9krA*^%fZd_oMJ?+xr@m% z-PFR=Ria?}%2q&Fjt39Ks!Ble#;%AbAylrXoQA%qYkLxu^Fs5O;lwLfOV3=ZY2?>Q@N)r5JzTAdrkR4dSAUCS|? z5+F%=x4VhKQ)H$ECWwIdZCy3WRAj5#f?&DSO0Vk0^>USI76K&K<948sENhuls9^ydaYHKqu9;bkw zE1pt9PDWL=5|RqbEV%>(97&-}Cq@O_kcE~ZCLjsSP~suXr1RP388_2@du&_FsgZIc9w`%*RGefIV_=yClu+F6=+D~r@~ksLTwh#plzrW(hG$|*%C@pvai&== z*(k+{TC?B@my0D8EQKUDh&c`(ooL&7y;;<-N^_h;!I&}A=@@flfB=cD>RuH&&GY2E zAVx`KEM2qE##F5Vsf7h2TjmlVb?dgZwF(M~(6(k$Dy@8;8D}|X0%DN~1`4FD)oNK$ zNuXq;a`&)HbDECFRoxSjD`VR)cl&+JGg1V}~h`eMghsszkEB!lrcT+#)s|vz5Xx$ z+yCr8U~~EMyY1EW^SitK?ihw~Rv?yYd3ta+w}YGWdU2Mfh$&fHO+$KrGoJMuBc+RB ze;lkfKl|aQEYFNXrIjl_m$1~WDVJRh9pb%`(> z9T6|N1W((iVVrr$JR?2rPg#gL$EL2%x`nDlyA<6*HMMO`Ed)nEE!+l0y#wz1vxShQmF=sOP~;oF*P~NGcOU`A@RZyid9vLJ zDN~%i<5W}y6if7RnC5~EdD2oJrT z$rogWv7A%!33G`?LkiB%!G*#kUoXyv?e6C020+g)DNdr6j=3T;C_)U)q9st$D5)5i z(I{ZVtuacl#Qg5CXQa0GdzGXxIwF617?$1Qtgfw8Q*^^LGiSFCJ| z$H||7@mx~oq`+j)2oXeXs_yOA+qORc>a({G_xn}XubOsQw?6sD{i9|=GvPu4X-4#_ zH_y&L*zQih_0u1HzyJS-AFOX4PrEsG8h_){=P$0-$J3+$h~VioUSFMO=MMW3u^1yC z9v`f=&o0hdZTfn7cXLltDrsWOl*AWbyyr}4#_GCNq~3n}xSe8EDIr8kG|f2&V#txn zA+nR30c1%!B|aQxrP{(sXb@c2ZL`?a)k`gm8i}z z%3Z)?fw{<>yvtPPFh}&xPZ3k5=!3_?7$CC15DcpXf(w~Trdkv=Q$`h@3P;9(@l;YM znPSM8$yiZhs@i%x?OlolS+)$JfZ~sj|N*XtZG<$$c@lzoU{F02qG$i-tx zz|crmS5?8-FPF>Ba?$jP^E~DCMPG=|rDTnn#KT?CtV)IEP^79itIK7*U?ru|36U2U zOVyewjZDZ8=`>C$AR!1a$J02wsqJeZtgTkk?)JOI(vV1PUoTfn0I*6#&L5t}ufN)! z4pH&;{rlTht!mxhKJ4#zbD)HhW;ajXVWHcn+tG*P;7TeIRS8KO8-pu^amvvL$HURh zq{{V0Kb+jR-#tx($Cw#`^F<4jk@J*Sb(@Ci_GbI$`6cY9@AZH2`bsOqyM=xB{Ia%c zcmF6Xd-?jsx8J_+7tMH>zPlUtgM0RD_35kEQ1sp7PD}pz-@Uzi8ed#rgb<~)obkvrL~NL*yTkEjdm0=YPIGic2_2lng0YN36nAj>lup~N^RCuv zcYDa5fYEVw3^f$n+U4jSAZ-?XNwE+x5VqDN5~o2Lj}(vb{UJQfljodB`rEskIEd@B z76}$@eS3HRtIuwK@}uWZ+xt%Ty;a&ImM8B{-nld;2%t#BFj-@mMpl=SF{V6wA0pSP zvbruAOVU!;rs)_L5mQnj#zaX75=*sm?9Fpu*{S@?-z)I4jKoYcB$`VcZ_s_&N}%t|#=I50#vy6H4B0#UKb z*pHumWB|01T`w0MyEs2vuFoS*ir2{OG*8~2cEd?Eu(@a}BPk&jQ~AkAnZ_{<`_qszHJvqe#SC0rEnb|TU-#?Y zw$>`l{9$|YFW8%VZ48wofqRs z`~CE%fAQV>NB=uN|LOTz*Q~ntx3}B7@!@G!Oyqe;!54t7JDtX3DUoab`R6z5^Uf#I zqRokjk}WVs``B0T-=h~~8>l<@?;~Qg+9GdOEACqi*ziY;;ZP>SR zvrA2re1J$e#@KWtxU}Lu%wQ(2&4&%ahQr_Y;V-0lxU9L2(BRXuvJI9<(_b+I~K-0b#@ym|N-qHTu8&h6FV z7D|42b`nJ2YW(wG|ErJGsu65B+$3Gire+ z=kDi!<~_pj$&2T=hi#N`W~=W#yFx5}@ch+_+a{t%6Pq*+O?vV25R#sqFWfvX7PT>H zKCcV{0fwN14_I(N1~H0GhoQT=IjCTW!4$c)%H)3v1Da>s5&9NPV>5XN!59y_?% z9ZF}Nskfn}6b#v_s)DAvEEPQ(p%@5?vBz0mwq5IGeExDjv_n~PQIv6vF?qGpjKkO` zKq4c~mSjl@lVV*|t#q%qSG(JG^dkgAh%vx!+uC|I4iOO%ScN4C1nS#Ra?v$i8>1;0 z)x?xyP!J?B(TAE>SJyjssVHglpax?KwueJMn{SY?*7f0b7suqij}TiOjWYxhlk~B% zY`ftw`iLbzedkn0=!fv|@u@4}?EN#4IGbUw*?y$)lb0&tWR zf-9?j^kb`MoArKw>zu7C3xtQEALF>5Z-Vy}FhxNGKyD79s7qUvm6;nNAN|?<%!@Az z+xbB$E@tKV$)l6?a#2@F(jR{B)0-(@bpO|-53swa{lgv2SCFI?|pFCUv>S>ah_vcS)!|R39q8lN0JtRMCP*3#l?Z9MS=Tkq7huX!AVfc|W{cIyV(f;Y z*@5VO-xg?5gSxQYznaa~O>={!hqzBE^h1|)48d;?`=X9f_Ip%Tu3j~IvHJpMW<+kl=TaA5x7!It^w|x+t*VXA_Rk=k~@_MlzMn9ib!H+2g z5|GH_Fb-+lHvQGrZVbL4v_#)|@4PsRRBP8aqwn_nmM!`?yx!fCvxs5WANn!)J^LO0 z%!f~}+Ka<56s88^7cZ|x;Nj|IRW3|b9J;M3+_q_7UG6^l_|`|MO!@Teap;HP;EAor z@K)oW|KorAuiji-md1SaCpUle$>I9Yv-RXd6`Zs7`f3ZTt3`EvwH=eL=4a18x%l2k z7uMBd?5ml1?}HEDd2j-_uh&?wENF1bhTzeY71#P~yZb9oXC!{u4=5E=X`EUI#R!_ew5juKfCh$ODq z8cv}Nqb3m*wWe4u>Fm6ymql5ZAAj_E++#_VGc|){wp|=f9?#k0;bts({p8`}vP3T2 z%V#$Q)?ldJ#?^yWaZ(hs${AYBDqCT-sagns{Or}R?MuLM@WjG~W@W_&U15=F^nTwA z6}x3s4>3v5&3wj!y=vjCEzQ-g-z*pBk2kxfp{OrkUp;zwW?Yz`E(nX;TYuAz=Z`lp zcZc({xh0H2=Buix2$&B;qd>1dyQR@;ux?Q?6Dz&Eya8vI^ZIPFrYc#f(*X6-B$M_x zO-Q_LqE|3Z`@ugsKTR4(i9#4tORlQj$^r?5v-KGPxI%ps*R#{*Y+a~}gWg6 z&u(sSckSF(N&pU&(_&E>AV8XxMHt3I>|z+1VNn+ru_&!i@bc#3vx}QoSIw&0oLB3& z8vlIunD>2)WUhC^-p8A^4`Cp~SGW7F4MwXWDhVvB(huY7o9kk=Btrtj!%dYib$%x% zEN8U?F%E56a6$bbxBG|y4JBe+xKcpC~SKki%-E}=@auF5!W@vYf zMuFrB;^AhGib!K!EiSJbWqo$>$>mMAyNY4d6rpxYLmXvz{_@jt=uuT848h0LC5?Xc z7y*)s_l09jV2k2*zb$9=Y{jRit8&h+hGJo$pp(Sc=Y{LyN8=E{;yQC?hLDe8;o z*RP&8^?dFuj7=M2KuL?b1eKGsl_Ixor<#T#TwZtWKBZApiY2-byiZWLMP=8vWLk{X zJT2;_3J_CWtsgvou-(5NKutMQ8n@lPT33gzIo&MLE62p7hi!Cqz2A1Jr?%~@vK-rH z@TsK5tXS>(9Tlc<=HX^#k&W2>&ZlU7H}3XVAthCrx$5?HJMKZF3PMq`@4WYs*j5gU ziq2Q(%c^n!23bHQ!S!w!MnAOv`f%k#KP$}H>;xowY>;`^49mKH|Lk2=-j4?Ylu=O} zpc;cIrouT!<7|u+tuf+9t8Tk(B&uba*X6_Y$!0mP%OV7|20%s%`uOB=@ag8d!Ne)~ zSJ$@(-&jOjvKpB=dwsDBgRa;r!zWi)hp~OD@z1~fOOH1vWm(vh&1SJQo4K1ihpI(c zHohGN2C&AuAY)louBhrczW?Op(K{P~hz1@!J>RTWqH=O}@^JHD7R`6x`S5f$KbaRF zy!S+EuY5u_dVU5bl233@k6 zkIw4axG<=(cGoq}U+h)u(+Bm77cW-p#m#QN8@nL-;B38Il%7&Q1PMSy3}i-2kzxYx zgNPiOF7-wd%@%c8fkm5otjjYh)f8xn)tFs-vsf;wg^q)GFA?G6SI^JZk1UfI_~_Hi zkmADHIqAGE#1Ez5qHujPEYBA*rqb2r#$ri*r~Mv>0XM6Y*SpK+us^AnP1~#5-LN{#YweC>a&m9tE=w4hwIlj+h>6XuFsTt ztc`lF$uH(b-^IeXrw`8FJAY&aQ;Ksg+?bX{d9qr*clu=5_ph(6XNy%I`k>7i`}v|A z{ZQ3V&+58%sB(L?FUz{H=wqndoD!8YmxdUB4_mMwA#!oYc$0U0g?}~kB8l` zyG^3DWJA#drf1J?n}dc{L!XeLX*xe>)5X5`C-ZsR_^YeFxk(P()3YbVyx0u~AAL0| zQi9S}{TP&zt$`eksSQ4c5z5L2+Lwi0E?1#TuRq%fW2?O)e)K2LlBkaQ)89EsagRVS zq6BDf<9c(dMObXCs|ia{g1W5PVA~u%`RqbQhl!T1c=+(c7{^z)x1A4N(?Ef?Gyt*f zdW&|oE`_l3p>%V$&}y*ad_4>B%FTNecy zs9kwDGzxriaWTq(U{UJZ>s{B4U243vh2ap#K(QZ(ID!mNn&NDJQX1#bwuj!2@pQ8( zovjP^_|fU1Z(m#=hLF4;U*23P$;-=wvV3y6-yX*IA1>_7U_nv6lx!n+Z9*x>t}hi& zs(IgSQ!%W|dE2&B*tZ)0{7e7NQ&1dbL@Q(KP0g)u_Cw2*s%oA9dO4Vq+2FowzyIvw z*|WWma(#U@cJbLqmx*{(xVha?f{#D`LECjPC=tvH;|D}C2IAD|{V?_+s;`=6PnO)gdiZ2z33vMg7*#Nkw5Y1F@7mC`KBPpmq9&HMYiTT&#iqb2 zfoVf)8Ox%!^Rj6hBDraAyOi3#KRH=GmN= zoB2i4eEivdwWv12ZjFX0x2dkVs>-#=ae{U+?=7fuQU5+e7bMrL62YS?XoGS*=}3l>=+kI#bQe zIQGQINJ^TbT5H)7Gc~(rXtXL8>$ACxo;}rCAb?v~;xL=94mXD|1ZNhmU}t~~_)#HQ zON+xz_~etDo6cWc-iAb6nv?U2*$zWm)C-L4eJF6fzv(0lb!AKARFTU%YGSZNB_ik; zn?v`V_s&s8K>N^QfhX_Jee8!}z-SJ)jdcMvIOjU=Ll`ketFGI(hU|Vjj6HUt#RBKc zRf;1K5V9r+K7RTqH$zWXyX|~Y8KLXfx2yHy+3V+`N&>-SpSr{0W>M8u!P~>_>B*uh zP3+RcCu?ic4pGE=jSK0xoLOf_GV~ygDp%ORAf2yham(X z!I8dr_BsYhAdqk_r|gO!ym+~7{j9X}vaIKpNcvG;Uv*YXW?L+bTY#&{u)Ewf%SY>Z zU2N9##oEnFe(&8!CmXjubzJJhCrh9D)yd2(h#aJZj~;K7!}6@Yy1Lo#`lwtKc6ZYe zmj?87vw`FZ=YAN*&{~?y7|tK9`+mPzl_!e_X)JrDE`Y}J@@%q*Fy${}<89)*dnaxc%-nzm; zLcbqlBY;SN{n!?^RFyFTjIJHR{xGhJMSt+VA@RuUZeH$nFzeZTxvbuK^7ydr-+%gO zyxG@Wm$ptp9bxCYn6z#Cn|*WndV95R#uzSd`p~0Kp|pmQ3kbGMKKR2H)(=nj-PP)W zV^_VrJXBOyXkT47ZSWs||Fv0AG1qPws7{OdqVGhL3~ku&`!4tt+@H;add+g3vH*~gdv_ec9rF9vj} z=?^hR0(W(_-`|A7&PE@%hpwt>HXMZFn4Hn4PaiF-Du4%og{c|1=_40rKC|2FE^3-V zHJ`08;pzFZsOjwK;%C0|A^CVxEk1bgZt{b*@K)oWfAJU2De<~m7`E>`c^rm5iU;8K z(3RF8sCwESIr+q*df6TJqa6BVoO^w_yV{Mzh)8zu{`=2wi}|{? zTlMi|xtUjs;753ieD+Yj}eypPVhKB_J1pc>gn44bt%**H`p zv97ryW?&Q_{I2WwZMeD};%J&C^C+Sr8azax?apHe-IF}n3c7m($t4G9-6qB&ud!(2ZsV)W^5mwZHBIuAO#nP zt7hzD;Wi;@H}q`?eGAQDaD^eFnVro_*Yr&o;;fie^JbiG@<{eb=|Pl;_W$=}2zPAHVtm zI^%s<&d>VL9d_+zeR8?GC=8UfJ3BqUzPRn%)a<)`Hv|gvHOo_s&tJx* zY1HO0I&#jrk}3GnTAgj&*?H+!G@F+iwf7rERIfZSf}Klp&rqBBqv zio$+uE8{jZQ_a*=abfA~{H!cOicJcE6he%B7fx1gwJt^p7KKp9D9$=!9^2ut9r`xS zin(~`F_|Tq689edo{X}DOHL_w|mg{08X^bhY=d%ZA8%shaHGNyx#jL8wUfMm8 z20wOHx#;^4LIfqY22Y?ajV23X9^7xOw93EtPWW20qV0pcN!n+Ka_*j4N5{PENG-u>ARzw_6B;jjGi`|tg0-~GSq=M@>c+O>z9gAyU}$A5C$?ofL7;$_o@ez~bnH}gWk86?2y(|~$) zJ^F;_=L;CqVznxr@zVRCR_Zav<%WlS^ZUR5@$Y{0eZ%Q`yM6ZJb@0^ggGZfJJgZ7j z7~vyfCv>(5deu05D}4p2$`Aaa}#@ahJ5pPKOgVs&oDm!Ab&aj zJjYKO|K=zC04b%TZ6J^e0fPdt0wSP_5D_Q{0uYcULR0~rz?7k>h#(3G1gNSC3ZnTp z03wQzCa@zMv8bwysDPU10ZCE6R6BfG`~-h^Ua`&}^%kPlc$6a%U>4pL<4C zMWlS6s*sP$tHaSm^X2e(HoRLz005Bm_`U!XG+z|}0T8AaOmD6QpEtI<6Mo}&^kaVg zFUJoVKWY5`1sQPmYDx;(VNe1^7E~ft5CkGXAt4Y@08}6Zm|(3aC<;U%8D%0WfYU!f zNC5y8LE&>=E{OmVs1iWl1p+`S00^j{poB=o*;y*6PIe4>fB6Fh&@bRyK?SBIQDySU zh^VNbq^Q~45RqtFQsACzyl=gTd11|-J1-AMKM#P4$e2C0h^W4~6A{U4#J%(UxL))t z7MJ|+$E(m6Xuw~NA2oi``2U6meE+5XaM~7QAhN(n3LuJ%2~`D|NeD@VhzL;?5CtT= zK0pwGX`w+N00K}^1yBW5Ku}Uu0VSgBi9rGJjT8Cu_;HnX;Eq z1Qh`QL`8tfCi3G0h$;|(V)kQ1lU3)BL0L2@=+V|xHG}xbb!B4L2n2}Jaw&och>Qw~ zA}9v%_A|e436EP4$w&Eij$GoWLJHKzeU+|pYY(&vv1n0o! z8UIo57d}rY{(myQJ^26T6gndb5k=&OJVS_{4FeF{R5+FoDAX0@0Bq(ou7N{aBDT)dJF#+5uOfX$t z6jTHe1c@j+%FHd02mw;2qY98xcCd;QWd=Y}O)3;45D|iA@2X0wfC!LvK@tQKR06;w zv!SC>2$Z!e1ehEs0LbwYn!{v$LqWgv!^Fdh05J1wBqD2>cnYDj{&8o(SrI|R7~}mp zhd&QbsH(>N#AT7MGqRP6i1*Q0OQcDV5s5%lVodz?B=@7}s9)#cuRp#$_%}aJ3L&Lr zjJcCiVvHd~0I=4YV+7?xG7PAoOo&D~p%N;v^27-!@Sh(wg~ znl$BXCQVpX5E(Ro4v3Ur82~5>s3L;MBn`=Nf+TxL6%oz476B=U0!-W(@(ltX)$9bC z{{Upp`{ewPW=lPa+jti!zO&&w z^!zw)^T+w(pZmaLV$WI*Au8Yyfr%<7Nck222!qV?lR1yxqbFbX=kPY;-+Z%WJI{`Y zs6t99e-^xi2ttrFnv|S1pfLE}S_@)T9Z?byqTDk~?x0CTs7ySmHzEj-f2#ycz+iIf zH348&h7skSqy&P137A=x00BfGN5aP>Ql6-!!f&EZQdN)%5ZO>f6CeYCs1Oq2bP^;4 z6;(BmBVNd|@ZDM~nM(^m&Pzd7x#?~_JqlW%1JE(=2ZUgd*f5)%GGHkcbME(M#uv2`mX5)wR24%qo4h{LE=%iq=^L5mh+O%$*tM zufOg1|1cq=JMX3YyviLiXkeK_7nD>l>MTs66U7F#DkK1epa`m%ORWUtm@gJo0+pi*E z`?*)_H9gmq=bGFx9Fxowq(Bjnj&gTK*cWK?R|+|B)Ias!xU<{5aQs=(`Ry618bSbo z%u(U^PzJzR710!BjEM+y9^YDvh17|E3rhS)FxA_68&Z)BRBPyta@!<^Y9 z0}&ZjK?F9;WQekH5D^0c6No4?1A~GxA`z=5L`5V}Qoxv!h%k{NC;%l8l1bYGnpT2L zNKsi)0R%xs4INGT`Sr=pHG1Z;u=DAJp# z^$RGP{5}BZkaj9O0hmJX@h|*cm|bW~c~=pigh+0FGX1dd{3|0R)63+H7}!=kNY!H~oQj zi?R&+o(xlAxN^=IQ#j|WbER$CW*EGPCdq$Nhg2njS~ARp$i~>ZFosBpkij3ueoW4o zRb5kIow22L)>>;VpaKY}3K}LPN-&jR5r80~Bcfcn2FK*?bngj((zJdnCP1S6O@ygT zHLGGsddJGX7(RUo5clnB`ezQufhLcxnpcS<8U=tdF5no~Wl`$OFX;Yd@Bi>t8*LtW zZc|Fk{O1(~eBpiF`QiJYzoqy$Uk>Z@5_Kf}kVHi_DTrv6-SToHAX6N!pnxin@}nty z^wCHE&2Rk1#nqMguy4C&^r~Q)EMip_r8Ul4vc?n~$1#MM5)-0AM~G|`zz~vZWU^K1 zVqLhxMiEH5?YjM8s7%?c!g{@Mg?gLnQW#M|NFX8+feYI(p0_-Uvz+99*8;O)f^|~NmSHn>(cZV^lmrRUF3FG z`*9y+{~xf`uN?WgthGPUtK3(x-)j7uTupMP6WpzTA}R@zLgow#pt%?mjwRIykfqnD zv>)=S^y;%`|HXg)U*7a>Mrt?sf?^UuS9nO>=nHF%WkN2jagGSo0EQ5K5&E)Vy6Jzf6R@`{_O+-wZvbnNVRW z5xcWqPz8~^tLbxM@)rsx-PyZ5*{~=<? zB9aTX?&UCalB{y-0PfuH9hBeT?=3amyHPn?y3AL;BA~rf?3np$`e!)Gd-;oZV&0#2 za6WRfUY(ZN>AmHuySEwtCP~h1OoBWBCRNEuoc8_aGD1WI)~xENcB{qQS!<9AYtb5FCS=3bSY|a@Btpu% zFbX577)3-#00v2?r_}@~5)D|QY?Mf-dH*6DBkKGT^;qbY70A5HDbGy=Ku}U71ca$u zfU2r!Zq0Dt+oHaaRPTJz9ku%jd8faCfp^_W?hREWqnSO)0+Y13o0=ery0}4_9$KU+# zf9H4qPm!P!Sun;lMk!p)jEY7SM1&Bks#KK}q>rhUeqL9DL>r8?1*Or7GMbRUS{NmO zD3OUtoS_5>L=_Dq5-SKQfh8aj0q_8!k!~1wO>3Ayxh~79ELN+9GuAo*wO|B{5mjQg z29pQ@pmJi!{umSzK+-3UaiJcU!(t6akd-uV6|T zW=!YIFHDj7J#gWXRO5Xcp1AkhNu;wRbXVx2pebq;=shF=Ln;bM5D^NarA?9|W(@+- zFcE%5H8|XDlm`HST=Sgy`Tcx2-b)~5xoL9R06E>GsHkr@{*6w8iyo_uRPH3zNphP? z5$>{=qAEG-0g3_u@O!`gfBnwy{y|LOB?>AM22mv(V!z}yTMj8GAqcdGj!O#$4PZ>k z2Q>ydADprxpk+tw<2Xi0xwDic3kU+1j6n{ni4{bhvk8$@hu~EKNyygU+$i95q z*r0jCb(S+Q>&yg@3r7_7&h%6jRe|Ve!f%Q^?jQ37-}3gBRVC3Fqa@6EdH@m;VyX)i zQ9>P~CZ(v90*yhu9(Uw`Rz_wnpF~nrV+mA~C=)WXB+=YTiU{2Z}K1OjY#Tb~-jNJ*HC_eljqiq^46 zD6JtyGS*8%Kmv^lwKF0}tYzU^ACg2wwP<=s3K}H`O_Wp%VXcV!qkN^?smIFTbIS7)6IM#P@^IW6b67)kc|o&VudOB#(AT3&K^+~ zevuRqgpTPVC6uf;iyloo7f4I~}n0BDC{j4F#^ zc6JIUt3n_~j3QWB=cY0!f{6!7LSj@^Gzkfj6jez9AW2rUQxal8<-8Mn+M_fTWRha8 z61f-8PW=W{5d;Adm?qWamDkRMty)j4E zsw$|UQ&}qkyw&(OxfVPLz`cckQpy1UP~cd)G|6$AftcOO&C6H+$=~@;yS^V{G-Ln) zd_aiKRYoPLbX{0)q*^Bvm!&o12-Xy6^w9N^RFv8=I%|+Pff!>1wRF|8UjFTW|37&A zbP;vDx%t_D{7--D*~K9g21P7Nl8^)ez%Zeq8Bq*DR1-!ZF=&7=q=Z10$&21>o3-FI7n;K3+yg+5eK!Cx zcNQc9QB(k;+#oY|x4n~{K_-brrmy9Bzl(L>(zq7@L?ot!fGH(nHiiH(O7cGWq$)fm z%7r38P)LBPsG^8U6l;r2NC=h@(S{U#P$IAl%nYhu(8iF^S}P(crIaA$$OQm$H{hc} z1zGM8NGJfvQ~B{*jDG{ul7Ecb@z{b5K=T5mAgaeL?}|t$M=BEhKm5)AZrip%K*#p1 z3W#c%*bxuDABN~Vnw=)WJttGw#n^l18l)kNF$xKol8nJ22?HmI2pVDvlKfQ& zqj#k(oO5i9EuTJmh!}VM{^IINM6D|~iw!ZxsnKgniUb%bZwJoS3r3L;gpiT$iY{Q< zmVehP6ESawLZCM^`^&YvDl+YhxUXg9GrT#`TV=x{Dv~;%hQy$N$QZz}7}TgTMm7Yq zl5%cS1yYheXox6?git$}ms4L~IEEe07-!yuAYYkqI+k8)jB!#9-;7D7KmdaP23h$| z>w>o#|K_;RWH}Wl#*pt`RTTwP?ut+VK!tGXk+-|tKYw`>1E2*&^kYCWB1|M2#>faP z%%}+ru^;y;}3wwgisi^hN4OgYMC9;Y(D?Nr~B=#`QO7Ix807g zKr9g;swN*Q!-ZoaDV*_Mf=`YJNF^j9k|B0JSmFQ@MXX`Nq>{p@du&q&g>j{!L(@Gt zUAbBKlOMeD0Z@SWfCB5y850A5Vs@SgA_N#oNQgj%KoMCbcMUj7ARu`YC+0Vah>9wh z`*j^7E+SM^LIec?dDAc;^SL)Qx^Dn_KOX+pTC%7}nqtIUjt>e2Lx?Jh2@sM7WCbi7 z&I_ig!3hBaGg=GQr*0HyVObi0duqX(@uQ!8nx8ik@>E)Wl=hD$Hz-7iNGVB*Z#Vu8 z8%PlVayyBsS85hYb;tinv4H=(AG;sm~iJFSi4A3FzsxFsv z3$_y&tP@Zbg5Uk#)uKFq=j_2^Hot1G4$W8>MeqH}mhZiP-u3;9i~YN2Pk-s(eeXB^ z(f_PcwZWH_OOqB)gNOs-spFg`i3vy)3dbo(%n_@q!I;RXBqRcYBr&R~$q~`6=?~rT zKm4=bGR$S^AUBaCy4kny58+?^xt|N;(5EOOppuXv0f+*LP%hO(Apk%X6aoe?pmz>A zK{nC5uJThJhzMco^b47RWt|Klw*i?Tq6&zD_{Cilcj57$*}Q&|LsdnzAN`ofF%~9w zWKM3ds?RmOhF+d7AFEREm8n)tbx<(#{#Is^PhU9D&H5n}*oo@d2fAk+NSM$)0e%vpLiqW*blfnJ1fA4Sp z)W1^yPyghfN-Plpz$~0)gOD3}8LEtPmWe4QMPf7@V`9YGnV3YT?m?)zQWB=Wu%Zzq zCN}WlyHB>aw`0_l!jR(F`>_xEHuT+ab9-~TuFlWT(oqy9JenQeg~V{|APAKIu*=jw zP;zlI0*T&rH@a(lcT5_=v79|-e=z6pe<4Do&b{N*3MHA4{zRSRbjm4IT9q}V4^ zWoNZCx+rN@a_N}p=`Of2)H?Jcg05AiSCQV5ap;$u#0KiNd zVgevG;MkDj7^4UMf2e!ACdk3Mw0Hz$FPHU;mu6S1#s=|Cn+6#Ms(Xc_!6dj5PsT<)_t z-v0yHlU8^27TFJe56RwlciO)_KD^`>!b4FLR#j#xMN5&QqMS!78;k1S)Fwv18eI+{ zrpT0qevpJo^evu%9%Juo`?t&v6+|qs5=uh!+f3&)-m^dUMH@}rc=_f3>lc3RVpoaH zR2do3SU4fb9LfN1YCPJ|S}SGX*u^X&o8~HHt>NhCxXout^qt$^`Rr$Zvt=?3qI$7C z<0yCT-uiz(`+FQ4Qn_|?`j7tcfBC83`J|d~Ai$k}GJrvh0vSzIirLhV5MnkKGvif> z^NXliNYRijXw7QuzMw6FP*mJq4UQDDWKe>cCZxlq7^CiHIeM2_j4Omf(e)3E8L2y+=X}fiRIQw4o%IC>QzdAp3)L(%&Wr z?#JcpIoyHBWMD@zp>5(m(&jpMUdwN{5PNMolkl^MvM}i0X4T5O}+rlj+^puh|%^ z^F_TF29vbT`2*HsLP*YJ*4uB~Iawcl{6G7V(N3Ot><2#h13z#yt_mML`mTp=pTGLm zuRX^y6fqFYm^f4vnO2OH0~lB+rPUgNoquE&22@9pLo5gjABCx!ejH#NS*>`BX9 z2)$_U9})1D_qF}o6oF*NlJ9xnngS(tzBVkz%hcwJ&;6TE|IQbFuevIkx5~m(ZA2Wb zK_G@t^OVh4eQHD)hcc{W7*6VZn{-EX@$mHrFRHgXZ)dlo(FU33Ds5h^>BjAsUV848 zzyD(&4-P^+_V@$B7LJ=YUq8F;+jDvFfom_l{@m?bJ7`=?Z-PWs++z@Pv;?Y086?wd z%hosus{!wR=z$;qyC465e(hK1OwXoVm=P^WD1Zb;Q*cC*ibcoF5fSKo_J97bKJ~u$ zUjM-Ro_^OO??PYu=mKWQPT@fb=U@>|Mqd@AOr|d3uy}M*Z@MxOi-3?x%Zy0`1PG(+ zJtQ6A&zJ3$_xr%~c1^SU!iT?~qr;~p%IapN&MIv!0Vcva13ujC%l+FrVGJ^~?YI7r*q!|9+lxv?B@(gPq;E zXyJ$$RN%3l=6OasyituHv!eXI_Z;Oi8t1Rv zc;(u)E7z`F?F5`e!Gfcs^-~{s?*~8h_){Nz4G6{EM%U3>_hp5e$qr zJpACJ)9x-PyrC2w20cHouid_#c_HSv&vpt{iNOjpiAvuq8Ei;*W@Dm3%Db*TFzvQX zN|e>(=Ix8^cK81GzGpoQ{ePK=m?(&(M_*>po-vD-aZ=xR>ZBbii+p1DW9fwOw6s-v zpxvj;Z!^=s*ognqbMBWTGu{0VSM!n#&G-6|%Ppt_d)7P82jK1155P9==+Y^|5ZxE9%IDuZjrUdR0jLr5m@2hHF=^{oNn^ z#795+5j9~*WP9f2uYUfw|A0ca(|mD0wZ=A#Dnf**)(ByhjoF8veER)QJ@~7i`5enQ zu2hL?pgIpGbz7T@4LT0AbBtxkq{*8Qv)XPq9j^uvbC%*ozZ+ftp z9&d(!{NMan>(#hzwN*Ej1X*uv?n7%=cVS5)Ltix}g0KMj~U$zd1;Nx zA|<+413yHSgH6+=Ce0x^ykFcH?^vDhPad515Pt9R%)^=VeZN>NOGs4b+NIdL$2!pY z*!x+1$>F}XfBngy{-?dO%G|+iz3JX917I?i-~Zj;`~5%qq9{w33rc5@w+xVqxyNpr zBXi!(szWKt!pgl!#AENeDn=gj$x(rwlQt#^*YU(#?p8%Nn_>2Lv2Cm2B!gPZ+UhgU zK70F(*FW&&lWOwK7r*+8zx>(he4Hn_IG^218CN40F>MJBG2)dOICs1A>kpi~_|nTN zrMIetq()|PvXEdb>sCD(nJgqLEs+R9w5BYD8Az{@%uarCvbi`vBQgki#PiR+@c5(e z-tBHa^X&7Fz55ADLC0(HGF|Nd`$XEwf%{u1-Rc&+8|^vl4i#_@!a^j=!%IGS&*wv1 z>mJL#FB~``+*|jExODW26zH>>Lwl(&7v<$weQ^7~^z~-u#df!wd^fpACLtmxM+>-T zkHZN>fQWm4{Qk9n{h6Qn*-LZvZe2tm0W(3EzVgK{{PL$i8APJWf~lU>)~b_xwy5Bo zv+=TB#htO1IM%BH3|2h#*wt}tg2rlWw7p9kK1vEz@rdK~gLTU0GH5wHKE0TCR@fcH z8Wqp{`8TgUbn?khe(pWjKk~sR|IR0V_(vXn*8{sPAB_(^`ru=aKKv+AxbL9U0EmEa z^Nlw@@$nz}^XHz=z|DoPvo5VQ?mJeALQHNXHBsi(x~p z)xt$8l~~_ByC}uloI2Y1-HS~b?{3dcI6-gj&Z>{U@$0{JaWP#zx%uIbeC+Y}J!10s zKl}&Or!j=QJHPqA|FfTq^DJUX)FoDK-h7R6=MXBIts!F+(g@e#yiO)Gds8XKq9UUW zEi(l``b;`Rst_AFRyJf%>yTV{I^B5vjT>)J4f*45{`o7nUb}Vc_SMtVzxSgbzjpmW z0G&(134KenBeh&0L;@AS`ouznGdo*6388DBE-mMSTQ2r{Ig#FfYgtq}w5c!mtNE{K z@BgpsUI3uh+L27yJ7@ph2S4tc&?2HLwbuRCE%AOgkhzbSzvsnd=3Hy7-W;BYq$KKu zlElQwy@oWgP+{%d&1y^3y|3+`UwHBLgV|&dcwt_wcjsUE*Z=AdzxoyCA=6E1nzz$j zYm*2j&WI?SEpwWxYGDz;Z4gR7Iy$NIHr$Ei?|uA{2Ol1`Q%%yLFq3R+Om}g-x)xzA z{AjaD=X8u^&_QqAxf4!<4Uz5?-tgGN55D}`8>IZ+_dNWOk9|;$ubdp;y!rZ6FTVDT zZ$AI*8zLuS#wx6`Que4qGJB9ntMi;>EXV7kInX>eD>>g*fypR?ii(_XYs+MzBC;wh zqMnkZ8M$6_Yfv6R$pm6H(;&`-SxNT<4N5=upMU(x_dPCH7FX#2xsrW-OiY3zqO8oI zu7pIyA|}F;`_LkM=~%SVF2!EDM9}dUq}lXW4#?fL{^~3OnK{ohy)_SGvt_ApNk@R* zf9|iV)*6wj($DD|f|m>aeH^C9Xw^j|6Yeop_uxoGAP685;u=ByHb_K5LS#n9vY+cQ zAt`WQ+rK4I-%vMY69!XZ7NXDn_GiEHXMb8FO=28!s#^!uw9F7jt(6i@&>}?&D{WQ= z5r8PA`84^KLke%E$yH4W=`_zitfZ7!KT^)$d{g9TV2pz{!LT{0ZGQ8v6SxdvWjbA- z-rZiD<<_&U*Lr6=KljSbm%sD7ob0uY!zz47yrL#cMr*pher*!q_g%0*UwtxM}pZcfDJe00aiykw6`>u-Sup%Z- zZmJm98I<6rR)ukX5w=3ao5!b|R0($FdjS@NTZhK zy9$Cp`ou0<&S`2xDPvI;9Ze!ai_HyVDUp>}22Lc;bzYA}n8TwOv!;_YCy%hAB3Z=3 zapz*IECd#ch`Fz+B&g5OnUX{^2uLP*?X@>vfBm%&KK0~k=nLv(qCzApqNbv%Vk(1~ zsT5P|h+Gv>QDL>NanlX`Ko^0_et1t8=kVoQH6;=4Th@mRoc@E{_83!t3SU2>+$sTUx5}6mIl>8epirZkRLXIBvjwP+0K_~!t`j53RHAK@4ilCqBySc?v=wM-t&f-}IKeUusD zUQ|pJ2q79uX&#cITF&R~E3dwEdR!iU@R~B46*V>0Qml-&E<-UbgBBB0Q6&-xvj~?` zRQtjM?K>*HANp3IduZoe{(Pu-FFP&0#R#>y5M8P#>2EwN^V^U9q`SA)y2NgG-ToC8 z0R&LjItXfjX9kc#nS_LcTe4?{qeZsGy{Sb;!XuMNSUCGz1W{&&U>V#II1{}GA=;_U z?qmD6q*M_x;zWRM+_?EmpZwH$n_2BhX`Xk}gb2=n2s?m?Y1&C)6I-oi9Bs2%m7&~v z>lB5HP|`MMjnIxLe7tdV`&7T!b+H%Z^|IkRBa;T0v&H}x0{vlW_$a5 zIyz;MHy*aDo;z|gBcgoji6{TTfBpAgzx}PRf9o5k8=Fj9Qikkyb-g)a7PgG6^L);v zLM2Jo!{DHdfn^X)5pH#^J6t^)2tEf*6-L}RGBSw@#C^`BU>ZaU`aN9dAY&2n=D`D9 zIX)rQySvFuJ(F@CTwZ{mbY?|$e*-}&+X;uB^aF`s6--+<|lI!2cfV3zK^BD`7+ z0H$e*IC$wI0Lt$%bt0t7%#W7-f9>9r_QKpKcQ`{MJz-Y$i8_?MEhlW zfcVg|rd;+4sBe~Z+E*g#+;Wm|>KI58!C;Ec{VOTV3|_`RLPGX{_n8xfx# z6+~pV>TW{H>>xEBMZu}WnGR$?hBBCy=GBa&`8bpSC6Sm4VPPW#Oa$RS`the;df_Eg z>lnzQ%7hAf?e(*pufP7(2Oei85mptI-h6^+S9b1GCoxkIQq@w5ne`H}+o!NBA^Fmp z01T$UEOv*qe2NpmDx@7hK!Xl9iF zB6{@wy_L_3F_0O8W=Z4-Xw(|2gAC4yd8(3ST}H?5*6k_kSX;Y$7FQmm&6Nz~owMDl z9092A$pA-kh6_?e6p=~l9uD@@K?g-Txr*&-L-;h+04HKK6yvU@K&lqx$rz;!W?<@| zg2)7EL`H;r3X7;Eh?QrLWO%mcU%Eje$Q-Ny3FhWN5;NVs*uMD6i|>8+!<)@ogoJgE zwd#JNB5KyR-lUXrxwm{^eq$0*CBo(L=cOdNZ_8X>17Z>B_v*{iez-J2y(bReQ&<1Z zgy?-sxo>(b8gt8vA80R`-bINJNuCtQSj5HpHA9q(P!TraL4|oCCjx+^WC-`)#(Rm3 zz6rQwHiRJF>+Iam_OCzjPkuT)8^GW%ec?-g@~y8kd$eggr#od$fQngbF$^U@q&%pO zw&I8YL?tpKx$t=Pa5@$@0J%wmw&;$vuS7md4*4RsPw<212+ClS}3vsDQ zG3aJBn6CZo!hK$g<-FrzAmJdCyJz)ywO(zkwjG=#%*tj7;QA)}( z42hU`Z7f4kZ3!SoD?mDO^2p$!z=$J|PJpmDz%3Ff%3$V`qXJA_a)US;LaAgzixKtZ z28who3gGtn^wn>E>&o%)=!4gZLEIJq^nM#j&CJy7Es5sK6Ch?1Wz_|?p{fVSbpJyt zW>(bR8Z7nL+Z#of?+Codetg$v*msT0?>zpx>gU7XGP7PglwzfrDw)aB9HyQ*BN7>e zzKcLT`B<6+Dy+&XBz)kQ+>?n3Gxc@`^=yX#N+c~bIg#jlpXg(!``Z3%gpxvtBmd}+ z{zO_N#oehPsW}2*0D+`vS%;OXs4-1GrKAu=4G=bE6dpJQ=`DRQ5|UuI!Oeu+w%Z&B zk!&?-ESqUJPf235V%Uf_&zto?*(xx_`M|u^^5{c(e!le_W}0u_a9(M! zBU=#)vSzD%vKh}Ww!*`1sxp|Wv^i}Y(?di7FKkA+Dw3NrH6M!(7OmA?ptr9E&E&b} zP*~PQUEDcEwG$jtvL}#wb}`;cm+TqVGB&nCVpN-JBT+Ny#hD0SZ0oOn<_mxP zXWwA}Q7>1*_q4(2?U(Vr9Ph8OknX>vrwRMzDg&UZ?p`Y*<3OxVi|P#^((~*9*h!c5 z5lK*uXpsyy6UvPKb|#_+{G=dIEX6Ycm57Lvl9}&o``4fNpMR#KI{xU3U;N5fzqIph zxMU1t?|;_kLN5{b;N1V|7n#01Kuj3nVssFX`h zLJCw|hS{m$=v?lYhN&B;U5=4q!^T5I4K%1DeBTT+8lWJ^j= z5`|LX;Bi=+=+vfQZ{aC!g`_x@WOZh`dhIAucTsDF7D*uCEPD0mR6&z(GwAe+LT9y5 zU^_Pyl)(n&sbboxiK%wFI44dtX*JL9Y_DH=0L*h>n$wJUoE2Jx(<(S2Th%H=L^=%W z;bXC)TC`}Vc2-GA)j@wm^Y+7WxX63T?|nBb_gf81 z#{uXC?Q(&_UBZU6KcWskm0m)F`jTM3Hgs^LBOx$mW-NTp36JRAuMX?nt3>0zwtxNa z|A+taU;fKq_``qy$0CZv)M@}MI<-lZlYLhwCMjHmS*>^`5QCOz942OhoC02{5k(nN zi^E)uSOMm14~^+6VN&Q&%K{yjkysXp{ zs3X(5h(agJUj%wNa~ZWU6ZXRD+7*+C0JO-=FsSX}Kp@qq5oo@P>ZziUEwg&o1eq|GMkQU)^&XvJEAiKMhsZ1?Mb2y@b_02cP=<4}2uQsc3#laz>ySq6QTd%oh zCDly7n6{L%8OD%_MT-{JEX=bv5+Vy0=r~8&fgz+3!JzdpjKeU`EfQ8@qHPit6tCF@ zrG{e0tU^SBOeV=rj;Ab4*{HA)b0k?M58K*GO6=y z0Nk33P=H#^1m8a2ee0QLpMLVOG7Om+8TUljy(29khr{yS0(jViuP^)XU*K1{KQ0Hx z%MtY+|2(YAf7gh8Pjr2!Zy)~FWgm`+1D4~kRM^|h+563%o+`78clO6Yy)TUnFi{|v zpNzL=OI=A};oT;9Wb?>GLr|Y2Ep;`6usb{dKY#A$?rZzkM;?EAJ&c)w%sw<(mBA}U z8z@;}?hs}*PO4gTo*PrDu^0wJ&0WhzilGpRt6CQXLnJ{g_`!D%Nzo+NBeT)8ZL9)d zJ(OY81RglLCc>GfyxDC-Mu9M->}r%1lfZXT;&>SB`nBV%I9gj-QPVnDsgW184#n2x z7&1X;GA5>!m@`#WjKp{ta$GyvgaIT;mPONyg*07CQAbra@NhBD#gqxeeSu6oW1gF; z)ucURxH5@JGE+h+gGCc*B0{{Kd^4J$KS@9kVvAB>Ns4D&f2fmz^AGiT7*P_^OI~@>Rtu@*M zl@Cw$GdrZ@kl0_&=Pq44f;*1daf-!bejXCZ{|^=e{yKCrJ=6B!iI!!aTktTUDs zd~nwd1TrEcYqXZ(5y*ZwAQ4d!B}OI*zxl?iKmRX&;iXrUdj5z#y=6Kd>) zG4Ln?Rt?X=wANMzG7F;23U?F(8$v@+YdDQ41A!qTgE3JgAu=Ku^ZN8rjmAY#tFzM4 zsanaJfb)8#>ys#Dj5@yZ@|mTs2HW~X5?8M=Q}ae_tVLoHOsfn~j^}57x;|oSb;f!a zTI`xn8DNpQdTq6gHVov^(CN`T*A#IXbTB6i;y{N1sCf${t4MMTYE0QD4iJfoNHD=v z6EutlZ)V0M!V=lFRx%Rfu+B^&PNaz4Jv)E$@rQ5Ryv>@z!Yq+gl$o+SoRDUUiMD8o z6cZ7&M&EwvjjuoR+}EG^#-Bg`{KfX}16Qu7NLR7!Zbf}~x_3W%Tix5WnD}zc{H_js zNV5;#et7=i+n3{QM@T0qFtK!Y=M}?vQ03ZNKL_t(rM2y3#locaEB*K9tbtyhKM{tv5ZCntDfnz35 zWius)7!e~gBPlCOHHjm3*<39bH9E(-U=@kgAQ9P8T4b9&d4}YTSMH4E2tsA_hV)1i z8j3I?*m(%n9f-5G^;+k)J6W?8^`P}i9P=(b5(bOLwWh#ES)+D(46z(#HWOZtY^xL| zj}SxUS()9VE3$LudQhiHY$S)2zUjiM!O{v#(c*!=bKsQK1E8)im7Pb4h{28H*4YJs z(@_@HyeQV z2&E3eUzXwan@!w5ANo=UB-Zx|!UzAnCyTz^sp7rlUu*4hzI{lE?;(Y}oS9!jI5*!% zTLQu(0==e=pcc{gakT|J)2Yj}ATlG#gEMJQqd@>MQ}!EKUlb&wM85(gyyYDGtp)&q za0hI$iS{wD*ZK3G`_13_w|_9VG_z@{_qF}&M?Us3R#({El9)|3BX<{*a3YaBB_mw` z(g8%345H*caTAz`8k;Tr){=rCX(Rc-NuGZ4prUy~#<5Ioa-@*jplWDS5(G#c;=xCU zh-t7Ki=7O?USTJ@-MrqY>&`|UO-$p~-D$-e71d3QW2qh#Xi>*uY>_R91%r%H zp@o&9(#bJ&C=km8YD=OZ0>je9SjGBel@qQS?kU2_y+UyzMthV7Eh0wDZ&Ovb=20J zw8@Z=6ip+Fa28g94Qeb!*uVsKP)tfOQswA+nTo5|c%=f!9A1hEcsG;MKqO?#%#WGO za&}&$*W~0q9BOBV|qD?_rma)1K{B{5E-j5OwC_K+ydAVj8d z-z7u}F(-2j>N7b(RjAGlEX3Lsk(^irOk}E@EMl!yq?k~Eku<18?|>tj#GOpJWjz1# z>q2<Zp?vU)}$fk5|`%)OY2M|6f)&*(5Lr3FF`?rJ9s&I2IsA0$AZ z+ht)IOo|G3{@$cW-2Be#KmULKi`#e31!9b%bA`ACqB~{Hx&m>Y~8&nsy z?}TYl)oA$6cWw@r4?q0SKJQ(&ak`Tp^5Xpm?r~%K9s}4zO8ia-CR!#{ZWj?Q7t>UkH40NoV@*~E zrw1`{P-UiK`rx%IwVpf8h)6=PFo|#q0U%S03=vMG3b(|dlIYmoB$8TTvS4{L(-SI8 zO2?aVC^olB?5aH1s6?;dy7k1Pk8Cz8Ud)x=v21wAF5e1Z*Ms>cL*aV$h)J0`qC7VyTm~xA}G6)CwZnvUr69cM8bi{rNf-rmEaa~jQ#== zDY?g}03PnkJZZUybSC|N_i!M4cMFREXl8Ps6!CIy%k)S}%ESxLKJ&$|e5p|@qN;Mf zyYO_S!kq-`zO{dS;s-z6h1FO%F^e_f1_2whP*OJb!%g2rhC!@ndV~QQO)yEe0mR7- zOaz9sW#CTo=(Pup)rzVybF7B4;z5L_c`iDxOw=+Qo3T7_jdpXZ)slp<&dRK9w{;56 zM9WCVxbd<|uT-mB$0?xTB%G4u&^O{FuQ)TnQA-Vwy})dXCz3kQ9X%EHi<#PavuGE*DU0#F$EK#t77L#bH(ZRVuE~uC80g8kNg`)@O%tRtR z5ok#PN^spPFB}eI1voQ?h}o2T9nk-qm5;K%tuHc z*HV=0+z5hzb5j{Hk3(69PP^(L3&0zTYQhKO0GX1MCTiq7n0a~z6QvdcV&s$N0Lyfq zTG!%6B&ne*%s%NLs?@@3m3G(2d8P&?Q`H#Qhva1K9FifVB4R_Rh7bt^3`b+3!Ysm4 z^07ysc-NJO&dzR$Xfb6@mM~Lc%Jk0S!AvOv5>;X%hN@V&5OIotF%)Udb+9YPM;^}P z!t4nZo0`A+>Z?ESfyYgahU)#Sv`QZ;|%u&3P(?cD^kx7x1oB+s*Y7u5OQzi-}!fd|Nm-RFh^IvaDQ<=PB26WKn$AjBPcX2t&NLs?1-46GApZwGeD-u@Xo4J)CAn$^8)eeBoY;b99QGiX0>dsiBM76)pqmNYY#to zZ5-A;Qt>+`!$h*oSBMjx2M(9oOK(9I_t`QM*-2PE`v5Z<$g_K3=Q?1|PP2>%$|UdG z_X%GZGblg{&?4Z={#NI}>Bwesq@$xR&~F6}z!3ybqCm~qC)G@Vbo8pQ@Y28Px15Xw zF&GgPL7q_~JrJ1yaUjxbkVj7EcYpV{Kl`<>eXV&8YDj9WonPGb@YYgIlar0^Yx~zH zKm24FgCv}s#7+AUE=7bCswzBiE1geQh@+|RhNzZ7WGtM-Et4Y(2^bj4SWJp_X+}DF z_pLg`@%n+YyLY#D+sWqYs2d7ry;!g1XuXbEkH(Xzo)rVHPFL5C$Mxw+KK$@e>P|Gq zwH=ki$%g(s5MDRV(0vVYB&+J+H!Y0|_Sw#EP7z+zL z!NEy=+7=lZp1wr)1%%~^0B+rQ;Wt11E8lwYYC==nWX4BH{Yx~y^ z|M1hvaIPe7%Kg1o784;A3*$N(gN6q7sGO5VBSK2%OtS;Qgj8b_A~u3V#TMjq?t=YY z??qXAU_L#5pw-&iZWvc8G|QQeB)XHqS2idOt1`wsJA73(L>jFgAIUD}B-zgM$q8M* zYMHT}n@S;(qI|T;)fnTToH2|#*Ay=E);DV@B@$3(wg%xul_ASeVykVIHgnqfF;2+)v5Z04FjjV@Y-wJItNt6m;;;! z5h`<|Qq+`$vqcpFGFezylvJ4mo)ke@%9s=^>h8u8$f0mXBZ4G@;jXXTc>O((K6JEM zWhcI4eoNcFw_bbHjZRF1i1bL0%sznKBPB8^GTl3xBD*t3qT`veyK7{>9rkn@v>>FA zeMhf%rLZ)u_eTI7wc*jx-B?D)`_6NpG)45V-<#20t9l`ra|Rvqb!32A=c$a0NcVJ) z$ey$lXZAUKBogh$i_d@Z*FSapVk;_x2!{+Sy{KWfx-PiW7Pk;0& zh%@(jKz0&>th3Qs?q=2bcNiG*pj3K@J5VWS`-uvl!4hnNb7BGfCl9q(pj zJE2<6&p=TSnqCZ=S%pUm&C?m! zJ)xvUd+!P=>^=O-xb?o*NKRD5T7#A%%)+W1o(;@{NP@Hsb%qpbEkq?VUwY-$#~yjt zdNnTFbsZ*nD1eEhv%O^xVeG+?$ZWA}1NDY;BpT2$QXQ7v z>*eHSTceL;JDpVm8E}Vt2S4_>4NtT{i|~L4S|E~|qXqhnB#=Z)iygFtWdyZ^N4kf5 zr`16Onn!p?PcLJp1=O(FZ|XQzVyZ2R9E9DfC)=!yL{7WW+n>Gin0m2lAIv$ zeQp2xcgA93N+Z`%yrg7Vd4so|ddpp#O~sQ*voJBK+R)`uJ)?T%PMP0w zZq28h=l0|WS0EZzQp&0*7hWYLueUO08Bz^d2Qu85>O{L$IXPLK>@Ie9cDp-sz1aC! zR-k-~B@$`tY;gexXlh$D&LCWuqu231t%@afg*MaG#r!vVxjv?@EIasyvjk5}TS2 zgC-zM!a94t@aoG?Kl%7Lj?%Rs{(tJ;WNET2yUts?Ip0f6siMAkb;Q> z)l(ECnUOP@MtlIxG}n7+A~VTkq9ijC4TVl5p#o5-%BpOtGNb!D_j~U-yV2ly6!Z#V z7K50?A7LK*`rXZ1-{K*5g8A9yfB+9?&JaO)#z^Rk7#+2pFQsAW;~d>1`*}(}Pq_hP z3|sx!d$SDNQv#G02p`=tJfgXqQ;P@>i)=$^<Hbz}avuGEeLMTbXMgd({~!PJ7hk?AREp3Rttv-3x*Q!HJ-mmD z)xC4g*w{mohAorW)?)TbZYsr|#iXp;+s~U6|!&{jsl7cN6A)5qIOl z!6GE08DYuk5p9btt@n1h*Lf<|qt?<-O2<-VU-JfmhxQ0Xm72z8P7J3wHAAA-vgLB~ z9J4ZekvT4&`QgUO)D6j*wy`xb4kK2dPAdY`eFHQyJ&d8Eu=J6{k)Gs|!^f6MoEgr< zFJ8WW`Q}$es=Fv)JxkRXFUw3Nfuj^brjVAB%;M%uBvJ@Em>Gef1c*wVx8BAj5Gg|9 z9$WLU_Ji+zm)^#sjjL)=nTk~5f#4i;it+44o~2HItETdCp>@xpvKZ#O(T9^|+SwO$ zmLd;5*;o#HgvHo?g$252jPUI9v+C|{-g^%VH#fI*3o~!-W(Et3(b;>1bx$+zW~1?r zp~3JmHxC=|5K0fMPK-~;k;wG0KmFt1|KmUUgS-0^5hZ#is&<~Yj?Kek)3rC^kV+yH zj>4t;lH~7n{mT!2`+E##sD$QLY^$6Kr9h(^W}c@Cla%4?NI8T4(z264%SisgkeRp5 zyIUYTQrM?LpMHNICImJQPn$3C`r)Yksh_HfCa3XfJH@t<69sVl_&`N2>(!wgHd}&X z^FWd?53Nq?(KiC=(j&S(zkD9%^M#ez6_VHM?R9-$vn>5+vDQhWsYv0N4pVKuYz>D= znN8<-|Jir{&Zob1_v)+5Yo9MdQxd%Nby>+8OB5jvPdC%zmd+p~tu4`Ok-C|MhX^|m zMzHXNWilhsMbsO$ZkP3PUk;#XbP^`YQuI(*sz`)0d17^vsiA%- zTP?#2k&t8sC5ZX{_O7?(<8Oa3?u;U=I%u^7iXr8!s#R&8%2cH&%~hr%Q_;EBT11rR zqRLuCizuB}$m}t` zCK8dBZV{G5k$DzTVE|zPc+$8=(?CT>Al%M>V_IZ}_wD}w`Lo~ulRy14_ee3}&eEwG zcFSgKHpV8Wb}A){CQ*8zKsVbch>70m`j;R6&W|`sU&0$v2q!UF!a-=QN1%H`#>S9m z-Z_VHkeG5#!tTut&D^6~^x#OiYRE)dg-ia{58o#-YgVUeSuGL5bbES)Fj?g&wdk}j z?(UuL9~LD!_GQhZ&~ziu$y;D86-0202&$s{NeI|Z7R2}KY4xCx-Jz&gv;KH`kgONe z^B`aBxHX^nvY=4bsmwa{$F^kDN%UcTx%Sh0Pv2i&Zx#m0)9Ol4&frFM%M5El1lxdC zyC-FtFdet8H&j&SbT{J2NRV(6L%n4H-OV#H;kgpw=JJ{%TvjC#FbfAoB+Rl@GHT82 za<_Ls4gb0bckc(?^++D!iJm06wG?I*0_T9IzI=UmJU)E-@khcsN@?_!Lx9BuAVxX? zQ4m0s$~4w#Oi(6aDuP*QQZ9@lq{6evEL>D}%7s~ogi?e>ITL}Dp;pW~At};hPRknPqh{@#iS1&&M*MIuI z{NyJ;4NAReyD7PtRCiu`H;o-OSz;*@6-gq5!3mC(02g8@?{xjk_kZ{!JBef=sgy*p zRL{u1S_GOqr0O!@gcTKYa3d zOUt7-w+;jQX>+1!+ng&B6f7QuF4mJ~0?e{mLaCS&Dku(CQ<|FtEHp`}Q~CS9 z`8%iM^3d)*dj?26kt&l?$xL_xq#7wfF;1V7h*`xVRE3fN46vTSDzP$o7>Ms5j$eKK z<+JBcr@EuJd!S!mhQ}fHER7ta<6FncRtU+q`9CRzzVc8Vm(#b8Z3e-q+r?=GJYqtvi8GCoU7!DV4yA>l>|NMTAJ_ zE4B{ux*5__h>6H!_~A2wX`ZU;)>Z<|Gm|0%%xT_E_IPUX{f~a5#5kz9Doq-Bc8B(& ziV(9@8Qg8KxXePR@#Cp8Q=LNzB$ko@7;son5Ev1Y2sjEP!-+;baHavo;PCJkW*J|9^UHtw zd;gVf>&wTl9eviS%peDIVNGdfU6@lsYXB}Jlq`Z}+q4t`C&j)_-5t=(v22E?C&h8; zKmO~#;oP1*drBmD8+e^b0GWk5dYoT>?%5+-ga;59&L$a>2{3_#Kmy1}OoYGHi=0Ks zbnal|d@Bw!M5YfR1{|QU0N!djFl1WJAkRbw=TMv?k@6N#m4S40q@Vwph#}+}Vv;;V zJI2n6;6MNTPyX^JfBfR*Lm=y%TCx_HwcfEUXeTV&R`#1zFN{b>N;e9SDg}s|=32PV z?{xjk_kZi}0uCh)6G6JC6DOF9GKmD#vy3C6wTO&upc1487gDW7R49`|t6c2L?f_y; zWjC>k(0n1*j9JWcE+svasHggl*0u0+5_ z=GhrEPePQUM2x-$97(}cttFR!d8LK@)Q(1Ye)#ao^wgtM>B+shx86Cc8Q-nA!mpt= z!>%|sUqiexBw6E2BF=C8v&IwS(Hrga09DaQVjCHs#Kb_3FO8%jAWw`7(%l@jc-n&!ZUuzLgAiPnCy9S~P5Q0r( z)eL2kcf0<7<3~TD2(Wiswq_9w5EC;f*}Qa@?qSVsYr$vcEh#a;a6+V3nlJgu73+?* zN)a03Riae3Cs%cBG>)s;}=pGKXh#;S|TF_)&h+ z86LE$?m_1PTEipmYjG!j!>+=vj5n1Q`q&fSFh3N<4y%geWDW zOGJoQW%b^#XTS*!pNS9 z?mkKObRk(6|Kh7(efN{^2r+>Z89_Lw&?DX=W|+Wut4}-==7%Q_OrWs<8yh8NAqWk0 zKoWu9!ax8B(V4bRVEVP&F9AO@_Lzi(-_k=EP#){Bu@D+petGTg8 z8DAambp6Y3{N`^2wKa~JoI#SLBE(|ip)1lNJbJcntYa6V3?V0?EIZv@^Yd%j?Vu%9 zmD%RmipUzq5@n8LOw&HeDMOVHQ$+;8lW>Gja}^$2)|ga9SP-OaeJiA-9BfKrVOuUF z%4}e>XwAHLv>pr|s!1*oPHzC~W}T=s!>PMUDK(=kkK60Dt$gwwDZf%=2>t)WA6sp!n7*R4+Asri+)_@T+i|iie!k9D#U?im&QBp@r z1ciG7)H4IYNtH`a@9FMvw8ABuID$At-%1c2Lo&rNt*vo!&n+mm6orJt$t^sBSsm#C zUN`^67e8yZTpjizY7V>&9Lb~zxWgm5#Yp-a&)FE4BPb$TraKLJ@mo*sctZ>gG%UuT zeO^*U1ihomq+-QNB9 z#V`N-&Ffc-Wu`s3;lsYS){c+i9o^gUWVQ04s)8~kGcBTb;SdS-MX1%S_mPVf)WP;n z*S~!76XLR?001BWNklHt#d8!w?G;G_} znI=|NqHT+%H|rjTv-*$xVYz)c-f@YgIh70xk`(5`MO9WesXmvfcTjR7x`}mKkD#o| z+|VMEAmE%zXiZUSk#tt+CjtftLWp-dw`M^Zo|gXU$De%fqffv1`YZ3031SL_CnHHn ztm(EU3#0_Hv6Ku%q_C{bK}nn>sl;vdZ(hCm$xnak=I_1t97Kd*VijUxQD%$>Os67M zxiBd+Gl-K23`WB8Y~rP0oXy6d%t%iVGs*vtI6L0L&D{|h7UKmyl$YT>%sk#oFy4L> z;0)t%oZ*t=C_Lz3be{3YuuQ$*{`B+z>-Ftty`6~d<|4lJoFkTH-Co^C+j41nYFUK$ zMG|Bd$sq(gmF$I+qAQzHvWSwDqz>77ws*SzG3xHKAEiEvTIarWqze`8L8hXb(%~jPbgmYWl zRCSu+#x7{?0TA}kpae(La8Fk zA_CzgN@5-$5M~lqRVoEa9FgvD1m)14g|es&m*iM0$9V=G?%X8KKoWt?-6NZ2Gq~g2 zEB~$fF~%L)k(n?L`0zGm5=Is`D~k{_w&lgozxtPVZ(bC#N&2(*l-cf%$J0u0?qch1 z&A0BemJ$^v5zIni*&lb=C9;GLWwhMV zVZ9b1MfZ(zFga~LZg;1%a3TRHdxVfq~m%HnW-ENX~?f3VqlsN>*=o@<^ zX;KEOF0CU$Nh+0yiL#r4Srp#73I%Lmb!mOu>|&B_JF?Va7*Zh>HS5YLNG&d4kn)jW%0o?sD??2IH5aCmliVwy#fWZi}I)$Qvy zZ*C`6A()3H10;e>-_H{}`3NX5B#6O2q-N*|>gHonl$ql^6Wt$9_S4UP`NbEXtKjnD zP_?pfQ7*~=6_r|4m9=mwQj63=09o$|6cuEOka;Fhq|jNjkd~3@0xHa4$|TE7WGz|> zsSH{zF;gMP`D)~2*u@ZU5dskKP-QY@5#86K#Fa&rX60SY*DwF#7hnCp`D6HYb0zaW zZXZwU(yYtzF&|Ifnl;N=t27y~uqe%=+ghxV7UERlB0?ZDT6(O_265I)>bqV4pML*) zL?o!7%xZ%wrUF%H8SfrK(zKU)XiuNX#a@x?VaM~1L?XiLOuIRsJel5qy1U+2RXU#5 zhtt}6n$dhHYv0z5r=korGtV?XGI0O|S4j&8rO+5zI*2nF$%S~Hrerja&2!QMpqYUv zA|u#>k`#IV)w zb3-;(Tpw=M^^^f4Qmzzp+kVY|MiI@V_phGP+i0@x!6+)F=tSv3ErXh;kPcb~C7%z! zq|0Jo{p#gUfA;gs3w{3da-Js@R;41O45DNrW{MbW^c;Z(K&YUq?kX3-W&u2!ZP z-t5zA+?fk3x9vnkLaZuCAiDH`gjfbjL$K3%>pEIN^HA18>J1S=6DYID#3V|EbnD#H zqOcH2Gb5$~Ndgss5W#RD-I*eIme~;m2+Kqo78?RAO7$QAgWpxnfANRE-w3L5sCrSa zGRQ3-m(Af->QqWC>e&~wObg?lJcLI9u0`3CxD+YG)7E^RbU)=k`g`C1?H~PcG~xsz zf?0HrZEKm-!!vNU$YZ2{A(2cFAx>V+Dys+`*S?u&rg^@;e|Yug{_gR#_U(gbPxia% zVQtIi<{`{Qr3#f&GgFv_MMZ|FIx>_{3h(CWa#xgdD&@;x{_J1;>;LKX{R?LL==~|; zbbH&@t-FbX*VSIW3fKh8ATu)tlE|X9u|E<{0!&26*b>d66DSY>3wYT=gDcl}y8h{( z{IlPK1{Ejvp+(h1^PH7EP<9X{si_>{aX6HVs#N;Ll`uOqs}$-KL9F@ae(6XGvKD5^ zQl@1UFmReLI2;0_r zu&}gc<5Eg3Rj{=d$s(bo%6fdXwfS+wZYPl`1dk4YLu#oc5E3e!hyrp1F{kHgi*-TO z3J$n?s2kV9OuqE97l0CAC6A79!w%EL+#`sY=SC8mlSJ)d&<;jVs4^v452m_pL_$SV zhG{)9z~dQ7AQm-Pr82Re!?>83oXeaBp>zTZv(TYleEaE#uixC=ZpX~nPlsL61oiaO z^2n^MM-QGRQYO|Qf~V9{4zjn7HA18mp}+UNZ~fkX{<~q>%^ptcH!mO87EAA2_oBQn z<<|}eVWy0mi^Ii!7LKCAUi`ngFpO}f3>yy=kFa$>1QGqEycofnhDzW7pxqN-0jQdPIvp6*jYRc1n%zUw5@*oaN@$s zMPe#i)+0FgAAMNF%f)`bwfN@tE_V;FPG$?x`Q~OC07N3azTR^gK5!D~pq?=(54ARMJu4lk3Fh9`wn0>a!n1E4@cm@^&8 zW1q}LU|TM{?z)(V?Mh)9AQUKr$#jRCr~35DpI+?uGhN=4%WJ9=0XbDdfQZ+1-OQGC zMWCo&T_}OAd2cc4T#D}xy9DC2&ldaLbwAdJ<9a&vQgp9$v72o3eqs+$lCm%m9IQ-9 zfCO==lHQrvT8I?p+)aCCIxZ^+2n6? zH*$|8rwA=2ykA}Kg?w#ZcqSr;u>cMk;zVMG3R8q9NR{WAgt(b`5R40E1v{VZduDDO znQYxe1}cLn*)uFt!0w)jAb1eF06_3av~@UBV#uE(J5iE2kj#zw+bTH~NW zERdv3F052D$Q*d5>t8AiI$i`aUf zly7eKHy4+a(Cyukr4nalVaHV1(tzwew~Znx+=~z^snWz0VG*8yg$Yxb6F5ASKmZl; zvtJ;YbyroHd-ImjgSl%dIh9Dj2kn`pJBpBJSP&sga%K>7f`&^lFmy~q|BFa&mOwha zZQs*~C<()Jbhn*I_@kTWh3au#cGG0oDi>y1TMri|cm@+WU_F_L7~$yNrixvu%GAu- z*5^trSk^VHFYDS?i?e&)EfJ0$MqyX`L+`EicCo*pi0^#s>iN}PDS!Uu7cXy*U;OIp z(-uGd>ec5j?%PJqyLr5PT>t9lUv9%0j6@`bCEJHjcR%>{2RDbqVZVDgJs#WbmtX(e zzx>(n-(1^=?-ls=)r*I(U!T^-%Zl}cLUd}Q8_AdV4_oVI48w74*2BgK;!L1vCMqqt zC(O(uu$?-2SVjamm4#(asgcr~HA;G?>!1FM|MowbO7fIbsq+jXe|fvyT;GbqMF8}Ut z|L%JqeR6kq`v-sYNB!ZJWi#52{o&{fR3#wFmxr2~kXTM_TWPni!~_y}2&;#gXC&|D zxwSQs(_X&*`mvdW+o4vf$x;xhNo7{BDOgn^s2^=*V`666m&wBJ9yWJ1 ^)b~{}? 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 P00000NkvXXu0mjfxP;IG literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-alpha-mask.egl.argb32.ref.png b/test/reference/extended-blend-alpha-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ff3194155a8c51f15239be3aeb73771de0d28b GIT binary patch literal 23536 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 R>>$FM>6$hQS)gSZ@?TIZUg!V- literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-alpha-mask.mask.argb32.ref.png b/test/reference/extended-blend-alpha-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a1dd2a93f754021281930d8192d59ab994305368 GIT binary patch literal 9221 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 literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png b/test/reference/extended-blend-alpha-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f12f1456455baf167f288ba01cb4b5a78ef0cd GIT binary patch literal 4597 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 literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-alpha.egl.argb32.ref.png b/test/reference/extended-blend-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8bf77fb4d6d3dca7c34464582c260af582c2d8 GIT binary patch literal 23591 zcmZ^r2|QHq`}ZYO#*)aMwUS*ZGg(HIr8J0SNeGQ4>yVu&TL{^bVMq*Ri7Z(s``S#5 zEZNtwZ^K~5@EqUY@ArRx&-1*V@p5M7oO7SKU)Q%On|^_ht_fN3)`@-ouU&@k)j z+<8btb4nlhH$KY%?D;&__yu@kcy?d=4$bk&Uv>jJiH1gqM)%HbV_)Q2!}zG@>=D{AIrnFh+%wNv5Pd9YCy4I1P#&0M zliRIZ!jui6mjzEDARhDFmQ0@ME#?bnseDHyWpfhO;jFefN&Ap;#+;-Ye5BX&bc=LJ zTGBA+lRf?N$h;U?B+CTW%T(oYKfzvAXDa^P9ucXDlIys zW0D6Q(gp=K%^}=qOh>8yFGq$J@Y+5CVrqz%EeiB-f^*k(V z`5neE#K~Uufo;gq@Z=Z!$}f|ei7UoxXH7^~4C&_>{b*F;LR__dKbB$sbRm9fpwQ)W z&$j(a)``Z~gYz3i4pfFZzNqQjtcsz~R#iFG*g-3qYHNEGnt9iU?lOu%HvK~okEIHw zS!D8?#O;1^yEHBBMOVZRMHgAA(Pdq|>Tz;ylx7t2_{>o=e=8iB{(2v`zoRNmIUQ_m zKRFvSrE}DcY?t+g!)7nQ7Zha-%F6j4HT9T3H-j5!q}$l@G6xVB59;M%$I%#hm_GPA z3^Q#Ni?P~dm!ue)-XX_Un<2C4j_wU;n6-d^{gx{!`uUx++tZ^-XFK*RNJ|9$L|;EF zE0}#}hwHX}2*=J2QBPI%oWJ>76@=<9x{{)7wE1uRli&Ceke1`BEHA~PQYFB^Sqrzz z%)G{2Ev0;Y}3^TfWlsA+fcvekW$LglukX-8c$}IWJj$i-9 zC(lRT1ZI7FqH@Ss*3;B_&u-gKD=dPYx!g#tDdx&?|B9X(9qLk8AAi{D;JFf?)jtHD zHU0Z)I2zX}p#zoEAIiZE4`xaP-{IlB6uwNAT-&ooNH~p>d&12Bb#NxE53{AcAawKw zssMM7N&Q2)_z@BnatB+^)Tr6i{d6k@5@(eFg87WYIUJaBKHPo$e5(FD;{c@HZkXS_ zoGF>UsJoBJWz_)s`XS(QH}C6zV3^&3?z7J>TkW@le^|++5wea>=t;|!u9hP$SZcinzEMe#X+p69O z%eonsH3(RrbEkrBXJE(QDLW@Xb*+a1CPi}v@iula30!H=t#P~Q*}f8O0564We5Jd! ztn|7G)VICS;sHN}Z_lqhqacq(aESTW3+YF3ipBLXwYm834v=QY z1)O9qLYQ0q{Jm4&1-)4?^k`ay+l0=XIShrwRVK_o%z3suVNHitHcf4k{E2KY{oU&r zNDHeddh=}b;l*!K#O(9(jEvl*w9Xt#xn$@_SX-RcRzUk7{r$V0opMD_qaRKkrFbw3 zBThGmB{uQRa)1?J(h?^5B{4eK?*kgCTG9?a1f-zz(gj#e*3sp~rMW`oEiq2XOT)l6fRmRFRYc=DQlnM`gkvbWs=aKdE z?-oKF%dTDlmHtR<@gVEjh9o7O91Z!S(&k6&+=0sj>(lfdRXAW-JC+pUs1IOSr}r&1 z+0raK$yZ)eW6L$tirGJET_e;<3`rYGn z=wuxCLW+ern{LaWHG>|Fy{z0y>v8$vskmkGE|!SIim4^ska*5p*fr*zN>mezFqD`) zY0keg0mfNK833k!U>dtG0)CG;>|ExV?tRaA(U}sF3WS&f-u zlA*|tULS%BY!Y8GR`?&jH=HrCVsrawhCF&J$Rlg@`|JppIrvPzor?kxS`-3pkrFmd zI=Rn~PW2!VPYcOvXjL-qqsPabK}CD584d^E#MpGCrz%xsajA9W7A+7|6mILMoWu?z z>BYjp36>!|Q}N5w(`#?Cw1ncQ^nevpAHBeCGGTPoC!jOLZ?BO7^P<*kV=q76_9}|~ z#DY^KDM9>Lrs@VA7OFRUdSx}p&@3GOT~L;W5E2*POEUia#kbQy-^M4e4|A3x*G9@B z*F~zlOhJrqw9KhJNW`mBRF*6{&qL;htb^J5kE?*dtR5GXHOD)(C#|bpMQ*j_{v1}R zNanH;%paaG3fcQ`{pHB8PY)eR9CMc@1IhnvPZ!As;!N0!-)|86cmJp=g>8QS?q3^y zF5?x%V(>*yQN}skeFCj&JJsyTnzX4cn+jh6Zn*AR#Cgn!NKtQQS7%UJHygi>&pmW z(o(vuk6|3cF#7vn*r_rmNy@I3-^KCo`tX0ZnXEJ6xkRYZ?NO+Bi)EV=u2~d8^uf<3 zgX89`BUp)>NHzTMvce}n-OCjm&kidpYK=*#x&A`e=NG?(%*Y)smf}`N53@VG zMUTGr+TX8r4k49;72Ur`8Q`_kn`vP+uzU8CbgDsYJ3E&b9mN+N{l@!oGoKz;x<@3o zI%eYi7iu5<&BFvYIT**QMV?XSrHo7YUBZZ<(`z>e|Hz7U9Q}Ygu5OGGmO{R6?$^x` zFLS~>S76IJfq7#u@3ebpJwbiJ1oVDWPY33+N_{n)Vag-QsBnL9mXCT7RGLJd1_$Mr zVY<4A5!H7(L%67eBZB|$L4-OOi$Bg^7-1C0CYeS(42+C4${J;2x#TCIhFIS% zB-d$!u}O%zr|4byPKS^T_l;&7B0O1xf!@mZx39gu$u;Nja>fn7z$3S=V5M@W-aG-L z-lRRS^xe)wn$I9OYS{n99hvUQy`-_3;ictuA<@^h9pP33v-<9obEalc$x z|3DcQ-SQ}@_iZQZvN#eT5%i)U?KBI!EA6!|k{n!-CCetClC{ie$FpnI$V&rOjTK7Q z?)$7r(K~1KJ=1-Rsg<&OGKw-xeS4T(UbnG$@b<`Tj393K?Yj-*93-fbHoXdaiGyRi zkNEP^+#QlNCwjM&4eD-9p0ttEvw}}4x~mP8Wb>fm9V5^IXs$|)=Mc&GeTU{BY3@Xf z-x`=uM<^^c(@taI9RRMzS!n|E;pBYjb+h+(ea`p;o2%&Xx=rg-1>Jpdr{G8!<6ten zNmy3aCDlvIr~p;((ffM^bgC)Ke}LsiCxRR(E&np2kI|w(uPkJCcnFpbDt!^%i~C~m zxzQ?r*DoOWG)fAY$+j30ct)m0QeWt;5w>Y~Jr@}Xp5GmzilEZ`eCw%_{m5>mzd2=@ zzRJu9?ynt8F;BWGj+GBo@WXrEACi}%HnHq)JNx069ASU)YeKVjw~3v*KfwA4lcd8_EHt_AWPbE({uSbf9;cAn zq&b|sc#b%>Kb*EoKbVvGemww7icwCUD-wy)iNTn$-nl5O` zq!tI9#GBXesa521Yp=WXJ>3&IW~29})FqU2+17g$Vwd~E3?ogzd|J0kJG0raqmFON z+<`W|;zM}zx$u>xx@>excGANUv)@KbjStO$1&-I#K2faPy_3AgYK|CNj63f3a1%Z< z+1eP()d5MoZVlfiDUWJ>=<(dIOHariL3P?+H={BE{pVhWrKI_DA(TB)|4S0xu_F zZz}lWF;+G80aLFLyYJJRWxn(0?vPb%SMHZ&emEKiHP5zG+)G;cC^`y-ebS$)4OUL+WSD8$&ghe!F)y1xV-X5*#qLkYW5HHeN4HV=2m07 z7KApcP(96gpG(nr-55{Tpi_~Ao%Hr2Eiv4mNb;vYe^sr$Q}mE9^JK&d2>j0sv=o*| zpWW+yy_qGmvU6PF5e>}^#+R_D1}&1Ncko$z8Ib7E;t|8$61l7e$sA1Jn4r|FncCl; zepyU@CE3N^YHgq#Oz+6@{o5_gLL1e24-L2wswa7ZbI2@V_nS%#J|E$922z~!q@#vD z`%5Dx)Rv~8mg%h_A{y^sVLkAtw8Y|<<*kCgg;zEE@lvm9l`Y@{RxvmEN_?`E=wIhU z`P!eF$T6GKYgbWaua4W$DnK&PXqX8uFX+$8A26c8+L>M+9sX^&b+_Vn)@V#V5XW#s zB0UbO2#A}urCOhh&){IeQ@WQ5q}{fzzFmoUstR8TtKNfns$`30NZ_jWfr_pDx|mt2 z>iI8jX08DR&}FWi;CFzj9}~daNBG^khpAi0-$%<9VDJof#KYU93nt*w~DxI;R5*WS%c}BN-|?3s#gBr}!vkc#sSJ1v=`J zaHb7M`@d3=w}%=Mh|f6!T4RuvC2vKLq2gzS*k<4SvXG&%mokxu0xLjzV%yhjfwB^N zd_dIMH$aIs2+WGE1-&;^d+>MqhZ-(r@)HiRMpc3D%iTp4{yu&`;x%h)we1+ziFdXL zT*W^*xXyq=Z}6O!bS(39$a5J7PJPqkyF&a|4EA{{{G7kVN7Z;zdhrO3%vcW)7SCz% z2C_Zoi_*&QCB0~q41+L?tMN%%Itxq00qBsT8-pba>&ie4(CpHoisof zS3aM6u~tscJLiflSpLh&3%hxWrsA4b&lF>Cm-DG>aT;~h+^^`1e)~-H%074EFAWEU zKzamz|JDdOcVXHbPH09j}2` z2wRRhvNQzw-x@%S>Q|gJ3(I1`5uTq-@B4H&QX6TL+cX1eUam>!{{N~Wjy6fP*#~+=8tNf zRjP&?b0bttuydBxGQ?GReTo=c3D#V*mBw;|j1w6djqW|qe4BHWZ@=Vs^;_o*Q>E2( z@aOB_xl=5TE)%NU0#_r4l-p(E6WVyH)WtkUbA7Py0-fcg{8w}&?T^SFRMqAgCbMjt z7zHftt{L*Z9^V_!KZ1#)!7V(RWt{K5aGE%Q_^0Tw>_$ABH>}sV5k%S~ujx4rVY5^F?5E<2HMX&s&XvM{W(tPgHUK#Y#Ir zPyH3729iWx5^j5k&BAGh?uj=r8*-?6Na!kGuTKHm}$UKVclQ);81$Y-X zCB}2K#VzGW^}s`nHu!Po?s?z)L3dp1jy;RQd8^!K1C#I1sN@|Dep7c_vr{h$uMNW) z9r`Ta3d(|ax`Z^Am1t_2m~8lGQ5Km* zO=M|-)XDhk=Q5N{QQps;VOHnD9WOpws*TqtP{SjQUAK>5CFUDj$FEnvU%Rp*4`AbO z1B3(M#>WZ2{FOjfNh^i8?tE7bvMY%r9B}_-eUBpw{EJE{Fz;4wsYuia0qx+F7Ww0-A{(ld;Gc%s=D^-Xz8aFj0 zPA7lM$$rzibXeZHM79Uec~2E@3{j=&DdqNzSI}kHPzT<<7GT2?uMo?T`VHQWpH{|> zNM`{+{!AB1E{PkW3I=&W5-9QDdI@_#Dn$CMV

E=NYze$C9A~Gj1HRAHMTB7joN!0BB*GY_*qs^ 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

  • ;;t~ChvghIg~!6VNOh5l*;Gy16bUg<3$Y+h!sP2;PVzv^^D zl9<+(EBIFtV0|8f)6~ueX7D-W<Md3aK%8=1n^{owEt zM@?|_*tUrROd*6grC%0Ng%H)qQ6wlz9@uTlXk0W4sbmASs`xCrFROm6~?HF z0qIo=8`}EQ6WRC$dArc4)lQRap;(*^3RYmXe3Faor@)D!MvuN2t5zJB(>$u!^Q{nM z_V1v}#b$z9kvqVg2J&lp%Ut&I^SnmpYb0c+squ``L|RxO=`%Eb%_Q4ExN6zEBW7xM zq`|`y$bL7?CgQTH!H#U_c_)}@CwEJx*pr=B66l`7u&tW*{#j475khdt=6m12<+ zKROM1KGxUhl^FbF4x5mVRynS(0&{PWAVTk$=AT_xezL^(ZrjIp-1t=|zarg==54_I z1us;FIFV|a7|T2_Gt0lbiTN^2NDQbKmGI3CJlt&An3FKfyWUGoSyk%wg$aRQ705ky z(sCMr1@hgYVn;GEUw zA92zEU-!Va@yJI5W7I8HZXzo-3z|Np0ra3tNxcqWfa;Jbm(AgE`us53xdmn+uCTLdr#1qEpfSu9~WWK&Qo&G{skHOBo%W<6u*}kl~MPTxAruPE~}7 ziC1N;Sl+>IBjlcXrfp68iAOZWP%Vmk7!MEC1&0e!9X%}-cP$uf=9OC$v9!NVNes7o zQq|0bkvje)e@%zsn#Olj#9E6mGw{u@7cEr5l>j_5&8Gdco4Bzh`VaLs%g0Rqu0$rh zxD&`-BG`3_$vE3EF^4h_5hL_c=?R;x7J zD97l0Cx@exbEW9lVYnO|miZFR>P8QRPQ0pwj=x&*w-?@&`Lhr*OPKVU5^+OYLL{OO zctMwP1XO%$ux4K4_n3_Flq(X=S2R+A&J-)rRWLJmOU0n;OrH&VdG)qpxcLSu?R++ zv+lq8QL)6}1gX0| zuT0^T5OWOee9C&q7vzAP;GwB2-_BCjC@L5mwvb*G)f=}LTK@jH)hS~}bODg;Twgw~5oLla~1nFTOB1{|q1TuqG?a+HBa8P~G@A zwl+6l@Fj$e5tLdPR#G*#z3^D>jh##Uz6g1=ySf8W1K((mY2 zxH@`A7oMb|+Zf0D9vjr-P?7*v`5gop2>bkRjroa*yMJTruDQ5MwMT*8s(4x!6Vx_j z`49Q}uex^7s=g<9RH^<-Du0=KV5U5?Q@>DHfxkR#+2eM2`bF(V8J7OU1cTvCyHMHV zUPBs1%l*M^Yh1_!=}C`gV6>xQ=Ou3=pIt7!xAu9=nMyH62{Ge6j{f^HUHaDPgWSV> zR=7LGR>n7qy~5qJH@Tnp2$uKXBzZw%Ovc0FD|zYHU}DMSBDa2WCM8I%nmUzz*Y_a>2RJf4S39BZJV5MqbS49S(Jv)hd`mvIwWLiXx0ihKk}3 zhM01GAA{Oc0!{#fM&J!j0#9KUBu*e4XxO8IQZQt?C~{Pg4(qR^Vfo9rUWJ@{Un4q} zb#M!4_VfvXkTQY0mRZNZ{+U+t4nC;kIDX|5gW7uA)4iB2)_c#SpD@pbCD|32Sg#EI zoWcznKYkd#@io#RvRr@ZWzSt%8hjPEPDF>;r?E?E52%m~k|TvQ!`Uyrx+#eeOS#{8 zU^-`#|A^5Z1)W(aAef@opI`RzFmnklmlrkP9bqPQBF8T|tcXHQIBDX}_!ta=JRp}w z*KFe@*R@rBH}64wRuAMNv_dZ*9B4_N5-GSw=UVjjS6-Kj6OJI)Xq5;q69tR=ca#PV zuIOGC!HyC`W=w1bkjgkqnB>g*hK~?%ycl>@Hnv_GKT{o`TUnE{0(q{*Tf(Dr%J0sU zZ0u-r*einw#)-el7G|Wgz=&A8k+{e6NnXr5Riyu|HA30Tj`BaDdPD@n%pt@1`J|aG Uripcs{7rNJj_&Oeb*r#{0o#SenE(I) literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-alpha.mask.argb32.ref.png b/test/reference/extended-blend-alpha.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4d56a21fc46aa05c86369b620e0cd08b4f9abfe0 GIT binary patch literal 9406 zcmaKS3p|v0`@VL!+IJ(X17lb!nrbV}FhdUMZ83z0ibRFXXv{cnjYDI?Zpv|n6>a8m zDx-1cH&M#5!k`R|C*y2(i(zugAyb6^Gxqm;dv~k<7;|{|aJldMd)?Q4Ut*8hSt@*o z{7z0zPT{DP`3X6>HTLkQ?nO1@O~4f{mrQ+=}euR!wfQoZL3Kqvl5(FQrdp z48*Bh-nm2qNF5@*&~jfUkOA?E9i4QVE!;;`LmyGOPs3g)`roy0B~hN}P(F?Hrpz$@tR zX-H@025#xr_QHIzq#b1+fu=1?95%79Dox29Us?iZp8W^M7JIp0zT2HCC%1LZV|nC5 zz;rS;W+e5_kq^ZFxc3=i>YCcKC0mlo3+fRu;hL`kVrvXg9cJnw6r;u+U;;OeL-ge}cbnG{ z0)zSQP47|~MrMyW*Ef3?(2Q6nVfwTM!H|TWoU3R&8>mY&0!@AZGK2ATgqd<2tvAhN zzz@Ndy5Ez&AO3qZSO1D4k2$Z)2NYf|zB>*+-gCWZaZ52aMr3)wVO;>>x9;tkIh4yP zHI#-5-Q(!)Zf|7EpWx(7qLm60%N&04EQS-&sF>ZUIlT`I7PM5V2UtM+H7x3IrZ(f- z6S5`By9C Sg(GArvHcqNChgx75N0IfDRj_A6*wFUy3FvNuT1Eo_0-C+DWMK)x3{ z8ml>rGv%o!VQa>hPK}3!)4q~({P*-Xa(TaeECnA#7S{3UbU4m26n%iRC`7zT%C>;{!PIIenK|u3&haH2WFRm$Zh(d(l(2Vhi z)fRu;jEAe3p5-np+hc!+`Ur`)VRSqX(0AJA&fi!8Dc`(_xDVl!GFOQWqglxh~| zg0925(7`rD1_fEw9i*U@D-n?28afH)TI@UnH>DADBiP1*a=obI0rKoYTf|##jQk#D z!2#9H`3<2b>zjRGWIaQYWWn;e8Cj90noQVc&ZF$%vaM->JmJij$jVeY^`)E_W2|Q9 zJsHut2d(zm?rW@RaH2LZsh2&RB7nTmH%p%FeF93VpxV?AU3#nXzDM~fh-i|UT3a$^ zXhapq4-(^!5{Uh*GLIK%B*S9}`vW63W#XzJNP)csdfQcYm$g8~$+^ib5PX!#GlAW# z+{hLO>B2)FHT-y(yq4TA2fq8rL;rhn%31Z|5d{C6Ye+>ub!{ixeXQJ?|tDejXs_SaPDpUJY{YpBU`VT1=)|8w9GL1G%l%tgBn)Tnx{Sp7uC&zM_ z49uQcQHfBCEb_6P)o;@7LJ?0Fp@eBZmQ>N>hK14oy?LHbZy6-7rz_UhJ<oL_Pb4&&^T(y@F@zX%9>75b#xNv2Utx+g@ufYc}|PArkKfS9B-&=f~!{pb-@y zPM!{NSFu6a!-+eS?$IzPs{1^_>8Rp4Erlz_A^@L)u$?`_OyU=vX&re>8aQWKs@HCi z+CJtR>6|NHIi`lkf9>aO40MqhPC|6=9f`MX)=sC{%Pl5ZB{oT|V^IIq zjAftNQM4o7QJG#8PCD^rS*~q zwsH9lM$nKS-$)Z$4CeegA$+)wntQcW{xtm$2;^{4cEEAd2*(t^*21wL(j z(b8paLNe3~y~c-ch1A@uqB{>e6?YmUT3h}QsopZk&;yq#*rhj$U07Eahp)jwbI84QaHVB@X^KA>v8X6ooVf9Y z%p9s8mA-R9HaOUJYzt2~Jeb*J$`fs(2OwJ%FQjm$UDIGLg&TETY!4 zQmi)l0Myz)i8y=#wCB|$CTQEn-<&+5mF`!OcGaA&#JNUIpxt(ch z*Y$W565{Dk-f?$eRj zn3WhW%DRwM1#;&|btBtWwP@OfunJgt7X>-u?3ul-=|}E%CyKVEZ;3=_B__p6yw&Zf znFd=T#Y37*P7Apg3BY*IVZ(I6c|0T}7hp;$<1fm4-kvVsa7&_qU4q7!=w;I6p2e)z z!H9tQWwkP?B56v*syPhS93JmqTxzR<-@y0J*55e=w*7Q5Hhd)^krcY^StSPV(#1Q1 zZ16xCJi#)l>USvWm}eR# zyf1su$3rhs?q^%cz1fn(XCW929Kt#rJpw~tA~mGzMSMuY;0iS^fqog*E;fDi>;@6 zc5?TYWW#sMumptlh?GO=Pumk|s?6GL#kGPCvhWvU-xfqAbvdeyWW8bv9PfpUJhH{8 z0jJm$UCp0P_+>r+%UbP6oi!FKC7KH&T%RI)1q6CiaH-i1BUjucS9DCAKbkAbTcvwhc&-fBt zZU@ke{uhFhQym_NHFB4atd1QYc@3_s{h^c>I+&y5Thba5l7J!%*NzZ^0oP5J7apl* zb)E3zNG4GXSUu2yw~Lji_n3{H+^T~UVZ}EE{*0U02e8A$AB&Z5Qg>585@S%_P$;XR1^9uxd)s6!AK805vv)`WXG&=3RXUvw(Sg@|5Y>WCSP*Yty0#Hlgp?D$$4 z;RUsKq{?#PB`bwyRRg=i4eJt%eBcK1_+ECFUef8ZF9nd>L3mFhAW9N}&>Ql3sMQK}n*#hh39gCIJSaR99l$uW5Tf@Mn2 z>M5p@67>A%c_mA<;+{oW0iL?@NdaC2M%8N?PHc&#=~;FapGtU09}lbb6>i-ezZ*FN zQ#h`@pXGI*7b!UZz`J#TI5qolYW1)Mu=D9+-ngPy?Smlqz4K2;j1{M4Gyb~O!v2`p zv$_mV51B?lOVSF)TMoPL6_c)>^{v3I3X#5HSS7qZ^Q6|PHB3>3imaByE?I+*C9&=cf(NxP+R2<=&sl%6f&Xes#v!eB3k0vHfgce{M(Qio5 zu#Q?>Z7{ahD=j_R#14W=3nU-c>oLL;vvQ7@H11P)Ir1QauCa)K_aLSk zcalDQZ{LBfjZelhb5rk7On5T+pzO7=b;=v2rV81 z;8#Z1yp4C`*_uDM5u_#z)Io5+JZJfCjckwZym z-{4#@Z%#Q9iwAkY76V|20HaNCB9u@rujve2bi(m9PeMBjIb(UC&iYQQWQ zBuKS#$O~u3-Z=(jV7iEKlRCTpAGP6JKS~Cx+ss25(z}yS4AJm5173}}YEzH~$LBK@ zv^K9*A-JD^((HYDu#iJ@0B$hCIBj0I3M=bJkle$wsHFB!TsslSo)Ei0FX6cUd4N-fH zAgr((o;M09CyGr+PT~L~W>BheXJDoy^xh6P07F)zvfYC&vPH_BfoB|{BL4fk#RZfC z1GvpCfF*c`id;C`p=gIlILCggka-Av4}7;pz=5RZaT-&t3>~2>aL@bshfjMxZXIPX z)7DIiSd|nvyE6=j!sBRNkEO(Y9axQVLzK~ZbZXa$hh6QiedxQOGFvi#i+j?&Q(7Hd zASsfjijU%4CmkURwdwk7<~t7@Si&)^11ShEf8SCJjImcHli=nzatt`kI%N%?qx)hF zIJB;L91nRmoO{B2I0khBvl-ur!2kLMkbemi>v2zHWz#{&rpfW`(%x;Egx_U{i?;S; zozIg|Wtk#40X*ZJ9xmd(Ap4HNm{$BDmbq0_um1&WkJXe_(VOdq68AY7N%ZVu`p)CcS1z85AH9Tc%BJBi_XmsyhdZ4#Y z2EPYg#_BZ!skfD(7>G-x@Jx;XE z;ibC^5%qbGW#VDu#~$;4dz^&eu5a3rk$TkhSnVzyj_Nq!uRVvrkUCnJ?%|2s&wlUU z8{=+`iLxvNOKRMz@^ogaC1LhP54jrml(I74p3S@bf_kol;s7M3c^h@frYtp}t2yQ^gM>-*+Li&I2+e{3`m17$@W}h|5&$Pv569tw5S_AF5_(*Q-*$a z8?Rhw?_0d=K6WF}3CfNVo@T7eKdx{WW1!!8&V@g+zt`4Xd@^gwP%?XHta2{J(ZN7r zHr)|=RoJS4t+~eGT?(T6Z0row%?i<_2cfeJkWj8-XMsXz`P;E{4{h-NZIB@2kbnJy zL*Oplza;^CzGC!zhTbJ1!gF8~JKm6*xA1YDj^LJ z6ttH7b%Z^sdeP}h7Ig1lda;5M4L#pn} z%0s>$+jdY$PTTP+81kzQ3Cq zq@$nO?Mql{^D(9u>qXBGuoXK$+l2nO?xDS*EWhli$of3-Omo_;+SC85fquyVz4x&c zZ5DXN-L2oZkaPxHFX;Dq6XIj}sNfgQ;ksOV2T~fUFd!2KQ*!{$^No`{&QUZrlAfrCJ0iplh=E2lwvHf{MzH%*n!nu%e?n@ zi+|SrxaJcF;fkqsl6a9%pLVIq^;pVbuQthn$? z-vF&BUOS-BTPqQzpXxI_aboh1MP53wBb92q&k1t3fL0hH3n(J7&JlX24GzK${O^kC zxwOg<=o2m~RU7-GyKB(mfo5vpl{j{pGVg zKhtB5{y`g%`lsEIEcc6Gt7++s)Q&Lq>Ui4h`=iKd=>+`X(Ap8BNle0jK*Z}s4;{R| ziP>k?^u-=U^O1)W9B<>cf7MDeO0;9aOC+ zD=qP0zsaZp1#ZMcrq?kB9kkI+RWoxDNIt|Bn7E$eLk|TeVO`|R%^&GKClfJT zJZ_>)EO`$1-Jw0f0>3}Lux_fmj@%LvB08$IY&w?mtXt=93Eu^r6hztj52<&=wEOL4 zzKi*-g}I4|eVMk~A8c-fl|Z>z^Y>8dD@^Uy;^nQH7KK&KcT1SZg~JCA)&p2qhDXZF z-Jk{`*x?N90TzxLfX;E92)xkTNYRyWDl?pnv)8oEyw7ZbvT5L5vBU{$??BGvWYa2P z|IA`G5KBYq*gq?r+2Xe5OTxyEA7f8?I-DPNU~KsYpJp+!qibVQj*`gyI{vcC`6*R= z=tf4O#HS_>ql?VwzqBS>;zfLOnIT>HuDrXo$Go@!L=5+CT8}e$>4H^&3xtO@YS_21 zbM|%JekZ}It_tf#q?u+~;`jv;*uRK4&xi8Kne!I2<$J)~B%I7GLwg~Hiwsqnyg1s@ z*%mO@W2W4rVHEY*Lb+7G8&A0&(dLc6>@Tu{mL7&Z4}$%u?d_Y!(oQ0$&9o^EQkg4o z-PV5&UVIh@!kZ}M-V5-G1qYg5^L~qhU8(PlhC3{GarIHLHy&&T)QE`l@LkU%1)j2~ z`|yWxNf(R6Zz*r1lK2qplL}0hQcf;%$(g|@`?MljuRfRy2u+yqE6~KxHnY-s%q?TL z!L6TW%aqPb2YE*bS!KM*S8fCcYKLb{j$IKu)t9eF6gGS?#t z@1FI$nfq9fUp-k5Y~!`k64u9teHXU&v}OjV4C^aflJ{6!wb))^RbgTG^UQxFJ;_7V z?{@P*_%XvpM14>>ITxi5$Jf*+b0Zwz17NP7(8RAyOo2tFuv%Qo2Xiwp3?q2q^VJv1 z;r{5I_caZ>;r^o`o#Zd3tvF=Dr@dp4YE;IxET}Fo$5B-#f4n3mjh6V7D zA!>6U!>OkM8LJ>*QT8oWz4dZ_eq2uO8!y@a0$?OV@tEi*)z?c9T3WEqff1MZ!V{gJ zj1$<;T1f8W&RF|JV76S3)(e9#fdfqf^YlixzU84`W4?^_L}14UH{x&IXYrJnEQTt^ z03{Z}CR=FYJ=OCAB%vQBRqs-{VHTjZys#N>=dh%a+l+^P3u+h7E{t}TqooJ}Y&q*e zXp(m!ELEA9B=GrcFp`MCm0}pk&T~GtnP7ivyto(R{b%@=}rvApAjTbv!s;|M=yi|Lq`Vds z6S1ZW>q^9m00p*TTtkB3_1Jv2!N|dUopvtk)Gf)?Bt1qy&A8aGG>-|i{}IbiuW$%J zxBx(AWxq3$xPx`p_&mR*rGZz}m0&StOkye=oekUv=1zVn-cQLy$+OcQeaZ3=hxiA+ z^uTR4p{fSDvU$w};ePR~@aHjxfPm6H!Oj{1Cns+Nc4flGp#N?Bubo(=ivg?Mm?g=7 ze0h*;n`P=m+_BSZPgFZ@oZEM z&FI0Y4nHvW>nH*6Sq^%g;sA}X(&JUbe z7h8NAe27_}~E^BLC zw>b?c64Cs;N`u7DYw2@~P50++1d0PvT16N6D8(X7ZiM2^2%V6Srt3W$j%Ky9tP1-g z;llj?70$Ig0;9CI6BO=NX7TobuDFS(+?=Kl<`>7}!V^806)wPgF6v-{;6=mP(ug3V zw4nId{IC8l++5F{$|TKJv@%^N>!{e8ljY6?X7NZ|^_t?wFVGz0P27pAtUuFJdKb-E?B#k$WOnG?B49 z*QrV+_HD6jL>jJ`H4Tb1;YxX%+IF7b@~iqU+s>GsQqdCmrfR1q@N@Vv{2D$iwL~{u zm!%8SwN0H@)!TPmH7$9Hk+kZv5XYa?t<5JmEfh}MN#6~xh3_#N3vs;t*xHi+! z=VjHg{k9T7P}!4ww58nRoiN?V$lA}*mxN#>W80k5EqsQ>PK>9WDlJgS^QZvdjs@DK zh>mKwq!n1YZD7?Gc1QOg6H2ZJx;7P@D&Oofki^Dowd7sLYS9RJ&MDx3VoCrXFiJ;r zf>OepkL)fU66QCv@p0D$>^BR;D2~)^FQ2O2wQ;$}gN%tulPDU$b9^@_FF33cTsFc9(le`7>C^$}rg-T>mBKL(Ym?+*y zf&J^ca^7$H;KyyAWYL?UbKg02p-qQ{>7tGl{qWlOPRJvKssfmacTaT|@bGR^i#qeb z((a83J`VEaaGj~ZF3HoR$=Gmd8p5}O)|9DFmF~dFI?VZJd#SA`P9_2-OMIy!In=!K z1XX@zNl5(H#uQ&u5Y+Hy7@|M6x_6{7H@EAD1{8coDA(?sjX;y*Rhrm%92iTE!R_vFQ$cyz% zpd;PScW=n?Tfyha)2@(8`PXh!w~u+WJ{pN~t{?LyY&?(E3))w3LMiAuu|HH7#d% z{E7ns5>8tV@bKA#(vj|uI%2*2J*5o+qWs~bE$NMHFJunL9~f7-Vq@i%?9P(9WR)Tq zyLxQRK3toR2!gjy-rg9wTqwP4UbZVS_ujWS+H@sG3+I1HBeWT)9!S*)E6DBm@@r3` zMXLCk&n9{i)KygVjq$|1+m!!mU)q!O`-~-|r}T692C?xA{ejkLO%H2QbH7PP)`BNS zz9sfdvcd&GSv9X2Nq?KL+cqvqZMsfDnxfq5PQM)kx!Q~8}ET$X$mwY?vH7zTCDtq(EW!_ z{nb79w^N}@7m!U}T4l%z(zH{Pmt3flu?qI`IU1tVOJK}?z&QCn4Z#?T6t;(eLgojR zxVc9Q8;;Y;F`S!oMfE{)#C9dmZ~l_?^%|o#;OiK z6G7F(z?_PoNlVKjwh$K_IlN(E3*4WLXAg$vFl*b|L0npZv3KvYTL5Rjm%1DD^*6wX znXiK$k2;cFt4A$Kz}D;3J_()?JXqitS=5p?{VHhSf>du=i^ zx})8*nIiJ_P5A9oI#%6~HG3GQi|R|cR}96p9%dpNU!U9Obw`TgsP#_MsyTPrc#cvGIelQHj2oh~K;8BMbA$wl*QLFJo{if}(hb?6*@f^{-wns>S3+(i5Sq}wabqAjsh znOGW$CI)mp{~QDse4h)J5iR+aXV-%*X#xT`2|c;LHUUN+t%Q6%Q0Rx#`Il6sc{w~5 z3PmiFj(?w!)C!)9Ua7HEz=-lN)z1VAUHYN>=w$eZ$*$jvHLet1TO-9*qN0kySfRt^ z>{~wci|_6ho6bBBG)2pc_#|kI#s1IHUsP$?IQmD<$mGsk=N2cLK5MuM{Tv0i=xpjT zd68){`Jy0)aq)$}80#Yl!s87+96+kJv*PMLldp~Dnj!~c=IR`9xA|4X;}Xji)K9c- zhKaX8d~Z4{EI?yOWmak>V>bgC?^0Wz%@tG-_Jq#vu|+zBJ!Ru{Gs2X=yi>CIV|M{X z!MCsFy3sXY5&txT2i3(}8%rqrHBC+mI*TdB5jZ^2QS>)DMI28VnGT%*jy5{D- z7Q1S!M9}(69oMbIjR9eL1KE2%POhC%+IZeTlHR4B7vQInh7<>RF4_?+`Z2t?{^B$U{HF;60S>D(W-G3me8D zseLYTm-ls3mRpA*QvLoynG7Q}NM%czGpxKpks{+!wfS6({a*T9e~t#>b&NtQ6vt+r zw()e8my^caY>}2ST&2pp&vewY79i3u<8bnAc@ABd7G_(sqdQ@3cXd$KHD1a!6W4hl zE9XR~KMCp0d&A`G*w?95*iehRW+!sN&Q}fS(9w@+6rV*K&7lTQ5#4%TG;SF z%_y!?x#?4qTueo{oI*yt|A@bp!TLi5SHR6cinsFxM{$*;6Cs z;eCvafdom(km#7_`+oqECr*ULFlV=^g1+wsKt?+yLpgozw5_5hQ9jpC;@d@=B^kos zKd1O9?4jyPcyJ)9|HZYcQUl2&Jxq@N$da()@GJHSQEMPuO^)#Gebkf*rFfH(-d>)3 z`Fs7|Sn!T0XDk&#)x}s)i_1_P#(}=AO+RFA-K%c$N1 zaMP*I|BKqbo;itN{c3g3oogdb0q1j1LA*OI8S5THxIqzD_&-91d+*NX^||l?kHUN= zrOV;jVCcB9Mes2XdE^7h(P?n!nK(5MY`#-`sB6>v^#$X1AD@bXvl?hLJ1>XoklrB>F(U(>wEf5+6~kz8pvxV!){NI6T80KJZ{YQ)X%Y*lIdw1 zM>sxRb=Q7mV=CfzXC)WC3H9L zW$g|JoUCy33n2nZZ!gz~vvP??D4sA5f&}6ufg8ww2SCu0P(NTE2*{6U$)!t$VjiA( zn>$<^g-h{qPB&;zIY(ih#BtuPS^I%ENKzCLNXenCpwlTItPr6%WDZ^%Co3Neb@K=o zqBta}(9h_rjdfR{78f-HnDmw=)`DE@{s{`xsshVy(~HvgO_uF;OC^{bA*UP6g;S4O z5^Ht9DG~A*WcF9t##DJAl->c*5HKbJ<`2r1S{o?~p{+cEUikO_FH`>;2K~qXtr1M| zn49y`3@=*x!xqoX)|zh^2M?AuqXv51P>WxEpf&XRYk1G*-03w&EMJ_!H zE=`*X=V&ba>FsV*n)5FX>m*hApJ;uLYq8u)A zfKbL(-Pf+x7B>P*tLVy`k+LOxS8>VC&p^b9k#^)=R zGXYct3sKo)qtWhd^i`R3wTAVQhu^fp3F<4r=Mu(6>6r*$l@bcV7fN5aQTO2>_RTOe zCoxO=p?2!ZVU1n`W(4{nLNQ(Ht~1k8*%QX3`%1;ANoR-OGO2LykZ=X}3H5*3 z=8obdvb~YQ#@N0c-nsdM?ejoce5cc{{;hKZ91MyhIuI;2Y#c3|E@UjK=wULjvaD>f zzGAts#yeYT?|4-`teS4Fm@pAzW5T!-kxPFA+!^^wl^g4B0wUCegPmCJ_)!IXj=(rl z+~AM_zYay0sFcu$h4hz`y3t%J= %VdS(hF#tY9ioCtgm7gD8jqzp}im@3au(OLR zu#zhe#^!InY-h)*%{2+mOxA<5;mi|^La+Oh#G7FcFV@FnvZ^@&pgKvWyc zZeX$quYXswGH(HR#g%_}1RJgBFfJfMko9A%kgMNx`Cz+)<_BJE>Yiw(?27(yr3nW? zR4*rP2)zdoB)OAsb>MvtWt(~!1SF=5*pDO6FxYtC7Qo{KHQ0$7{07Cz*%$I|)_Euo zO84nXN3h(%Da&x9RpUFRuT-P)F2Z*v8AVB}k)l>mno9$lfJn%v8|8B}M{DzV?EO3> zgY#H@w3f6a42?+%$_n-5)JJkb+ca*0sn<~38Y(M)5eg>fy&EzaD>;;_BgTpjQ>dYL zj%l`HWiQ)wF={CI*i_dW=-?G%oYj^MtzJo#bp$$7{p=rbJYBE#QsqyQ1D+CP66UX7Al z?3VJn&m^?|gf4CZqUi2&$@>-$HoAlw{ER5Os`wiiogWkpyR6!ot$TzTtkDjTf2ej( zMY8cef*o~*7XsNlm`5-J%e=5OuyZ(kbqNJ0R7LOn1hM}O2=mxA<F4{s;KAbkYC- literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-mask.egl.argb32.ref.png b/test/reference/extended-blend-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b575e9ca9a62e0c5d753e6508cf9d3536ba5f1ca GIT binary patch literal 13332 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 Yg>+4mvX0B%J?x?kb#LgDX*~%0U(gBHy#N3J literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-mask.mask.argb32.ref.png b/test/reference/extended-blend-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa78e4cc7673d7a54496022db64ea536902b868 GIT binary patch literal 3971 zcmZu!3s{n88@9PwHkGFT3eCe5@UT*;w3LaiWC)bv*-bO0T8ic&6U_sZi*OZIAexzI zhL+)}rbgC0OxMzRMv;l9SsoH4S|;WJ`ai1u8U1i^aa|wZ_Z;r`e(w9>tfz;Y_IiW$ zYHDiQSPaTrO>GSx`1r2V0In1b)pLO_je~pLP-?H0?`w58Gu6~U4p`J~-xGO~;ht#d z!!I@d)(?$RH;uGiw}xQ`6DFlO87B@+dLCVKHadttE6=*g3{(WQg-y(;5Tkvx1jBaopnms}UxfLL3DL{u7y4 zm=IES26Xz6b?POG8AFkRfPB7EfrQfD>By&0}pAE-JrL$Bot^^1HWjG~$5+DA)1W!EJFWprjnzd_h@q`I3 z;J_JL`e^=^s&rRZP0sa!1yM_#7unWLBcOB{20Z*&AAKt!o9ZRl zV`ZudImKReckKSAa9Qlrje2N-&`2LFx#K=;++0|cjK2UCqIJ=Ng}B34?*kygcIBX6 zjK2l*U1QBlLHrJ5vkv2}uoNiWAJH6MOzmlDjFWv82SnVe$>E;iqcqTJnX7<^9m-!G|d$f zwzIA}TGyE8fXZdV4Y1!82a@F68iwhZ@$0S9W3--@x^2tkZz9-T z%3LQ_QH;(e*ljn=CHJ?_N`8mZ`|;q6yh0e^_lfPSkC1Z?17{SSl{pAo^wCq!&EYcS zxEAMlCj66EvC7ka*SbS=Xti5Y_~8w{?nW?x7&5R~c|M#wauT3T6>wnI(^_=d7m6Yz zK=AiX1Ea5eNoSO!DzAU_vbxUGT38{>`RDeHZ_0?GMO)f~`~i~7%I)$WdKZO@mADTk zB~{nOXac#?_nI%h8wCkk^5ZQI9y-61CrX``gSW-m^v$L`t@7Nv(A`230JN$xLfykkQc_%kdYfUIt4=Yw-7< zov#%py?84p@5(65hcnIecf8o0I^Vn~UMqtTFT6B$o|D`6)vvD^kh=#itHQZIbkR%<2@*uk(E5pMRTvTH8W+AVu%Uq(XrNQP`wy=$FmM*Q z$ocJkilIuC0tl2QjILEFWkZNNk$!YbfV`W%$p7l;wm$wcV`MbGf$q?zkA@Jh+kL;@ zUWI+LnQ$g5*Ts-ai9I0ycK@54wyxy}L)>(3yh+h-9X~UEn-ptuScW+1qmKbJybMo{ z#uhQsdS=Hq%oUS7q;AQh{N=09P6Jt;6lDrt!-v6jPYQ?%$xE$2(KpVhGXv5}Xa4OiPt*W=~a?)zIwe1jVvkJ44Z z1IW*Yon<+fc{I3@99W%AgnDr!2cgDB8XD-YbEa)BMXWQ>*YOi_?^6V0p7UGH)gh-q zZtn$;HnPva7dB9yno!#&n4=dN<9kWr+qN5uAOv6J<}JaOX|6*|% z5ug_+==1-F!B+ui$^%@^LMyRlQdG0< z!Hv9y!7~cSeOa&PZbnH)FAieo!Yc0y$%=`)*%ixW$-@DILh}5SgpzO)#1oA+k;N*e zyr|9rj2IJj*ugF(^yLQU;E}_QHkaGFBJO0(x!WtBjCwK5yVj6 zU?19v57mNjG&DZDuLtmRJ5Nld>Dl<&{gk0>e(sG*zz>U44vjlwq>Gp)OKmzo)>2+i zbk~2ZQU_TVUFG8@kS6v4hD7zUzx9jvQrKmx*KI(&$45%c=|@0x?xnc0o|BWaofNkzT{X%4-T*ntv3V9)#NbNJP`-+{n9ZS=m*bL z?+1P!@5TX7G2n>fx>ovFaB-B_9}g}D%Jl}db9V<2uinue+BGB;Q}B?mTwFsvDj z=-&HP37|eT5ldxX13+490|xwm(z%jD7sc#C>#LbSoak@G*l^ zia@+*EI}0gFn#p;0P*?`3%WmEnW=Q@OXaEpS*S?su>m%yRi@VMX#(!>&?#rZbL-9s zt1pve42Jwq$j>LpLiqF>n-~I|14lTJUe17iS z5fB6I#H04iLcN*&@rPdpkdNj7J0Z8V5J_XRRQ+Kqp_(6C5(sG2%zYLL=O5Aw)h2U^ z*O3%w6?(p%akUZQyzYy27cUM<8jMY(u9D`ERWq8Bx)NaZgy23^NfZ^^e8$+HSeyE~ zE<=1ob$DBX_-9W4SRs@+2MC{k@p5HGb|OPT@@q(~mM4nm9}ObsWcQ+Fk?j?*#Kgp_ zBDs9VbC6PQVDgj7=_x`(t4VbV?_X^McONd1AR)_Rm8Hp>>R*w-Ex%%2vs#56lnh2- za>n?>^P37~L3gt2N9VZP3RJ@Usm_6FGbV3R(e(*zs@ID_?HebL2>DXRQ2Jl(a=A=? z;>2GgnIO=hski8^q}_f}g|f}vjh6aYGeHPM(C-2ElOry*Utud8zh0Bor-zQ&RrBD1 zghWVx;3LfGQc?BZwP-BzEHHWoi#}#A6ge6L;^i3PgvBVo?Myf~WWl_T-xZhgah(KUt1Z~Un9OI#vv^}` z_ahxy6{Wy>i4!87ilF?;!tDA4iNTyIOKzokG1D<7ieIm)IJ#o6 z|CyBM+Mahb@a7+>`R{i)rO4lFP4oK2TbD=zmQHk;9sJLbWklajm?lT>9~F@yYM@(< zu|+{IZC1<#j@eSGd4-Kaoad=enG}mEGldcJX

    p z)kwY8#-}?~02mw4rZX8({*~e#z~2}>SeQO|csNR0v%GBgy@;hn-}vOi5!O)WxOlpo zA$O(Z1+enMLRl4qBaxl(Kvmvp(MQ^L8a1s*rkKY;bpE1S%$_J8CLD3;Lw^2iuX505 WXrF6OF5n83SFqoCpepu+{`6m%qhtU8 literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-mask.mask.rgb24.ref.png b/test/reference/extended-blend-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1c854745b2a6ff9ba93b2081549380239a28e2c7 GIT binary patch literal 3643 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 Xbzj-}S3lgEM~~Nj_&)lNKcD*_%}=Fw literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-solid-alpha.egl.argb32.ref.png b/test/reference/extended-blend-solid-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1a381d585b8c9be419326aea206c601e05d0d9 GIT binary patch literal 18249 zcmagG2|Uzq_s4BXWZ$!AO_3;M-`5h7t&k&3%Yt3l+ zHR8JQfTXA~H5LAk*tJioW6)?3(wP^S!y5|UX+a5N^Ous)xp3sirGr_mr#bLU%@g~D2vsZTB+5UEk;CM4PQ zkCHm>!#2)Es#S%#ubx3jsJ7&YsmuE{#YpHj?3%u%6zeYC!Dwt@Xy*`-tXd@fB#kSft_>*+J10hU zXIcRRN3v_lB*X3I5Q1Bnmj}y6f4^WJF6W_XyFx#99!ukk1GO!`su=WSX(^Pa7c_gJ z`s$T4TgL7fZNiol{HbiXpvvxn9_6(Qfv&kB6t@psm)(!QRl=9M1EP|KKJ-~OEb2XG zm}4v@EL~KqV2a1XA^cs3Q!i0Xy9emN?H#S)Kc4SLU^YxI)o~)Fi&ep6&&XE20qg^q z5z~VnU_fGsZ!H2CkjiV8X%%3n*7+O*%!S3Pt!G*te@6%iYeH7W*E}_?kiu7A*9SlQ zN*JH1Q0}5vxQ3e89<31~D>(0{ox5`!rNuB%D{Ot0iEm(&?PbyitM%FaDAv?X3%Y@4 zEE(NQV#wl;v-%4lEDDv!&Ca}Jh~ano^KNEE=~zeV`sbyZA8EdkvdT22 zlN9H8?yJ+AMaRwzWqL3Z1mXyq4ApGt4SE%qtFu-|%RX)9C`m{?;H9iuG+UOeTGegl zI>$rJ=d=`kKj*pG#AilqVL-~S3?TJImFRYrH!K(1HRYg@?d~t7(FYAZ%MEh9gq_MO zK6}rJWrCR}uk*-3B9QR*RB~OX|27o;3)aVgQ8&NvYx_w>Eq0u38D4tmbbhV_GTA>fD9|-|_h3(Kwhr}s#4^^*u;t7mf^I9ccMyce_lIDkPbQ&!P zPp2Rn)d#C;@Ag8LvB0`ncx*WG#M6t&1B`r?D4=-a-n^7~Mog1Kq^?zR0G%ao!ly7d zZnUGTa1vFJ)ShO=J2o}8B>?>{_VCY!TYz%D#a)hpMnfl<)+5HL6_ZQ-xz|!KvIpYN z4xwpQPMkP_SNXNbHo$$`025|JS*XzSsPKShZUYvr(zcv`c5$FZBs`bGbq+EG=Q$hsd;1Wpl zm7f^4L%aq@BY(MGP)?21-22{IA^w>T@pKJTw+*XQOC8lJQK1>1(5>ZG^Zr>|y1=Tl zGQPKN&7SXi7VbzM+tOmW4@A_YC%8tTPwsSSN(;sQsGH=V3oRtJ1^YPfI?S2Bz_bhmu@7$m;!37P0xPfv7BJ z{nSlkgLb2V3Q5qafG;aj(*F-hBUF?xq{r|hBMz*l_CjCbYLZuhTR7!6c3%PFD*;&}7e zK8z2(2NyWHmVT(a%=EhhxW~_u=x0n~OP+anl~%@HI!iD2L3Q(rN-NA{)%4EDyw5X63eT_aMnZr>2 zC5C!^avp8GhPx)L%Ylss_6Pd`OTL=d_-U(vSQf>dKMftk&1+?_0pnY zX`40mQ3FsexA%+h^AMn0v{qd_-Jjscj77ChSqJaIbneng1uP0lXYqYYz5kcM^+vvo4rE8Q9W(?~K z&en}ZO$v}gZE|d3jOHQ(y#6uT>oPIT--V*U?q2<#y^n$CXZhO^ z^}YM?Y$~Hmb7QnrEpxYR3rZswp4x?+H_c)su zz?X$5mFv6nULBE(*&w&t)jw%Eom{&EoQeInN$;s#GMXK%RgT*ce2A&x6(GiN(`dX#rBCDv>6?w@tx~sf|Vf zI7s*+>*{C`caHCsq(@Ftv)&;I1H=o&@1z-1>JPx4Q7-V%6~zkTDGN8Lua(qSPWPMu zrhayy1jO@m=DFRjw&NU{Uh8Z@@rJye zmR7w40Uxy!dAK?v(KUR1Wh7x=WlpiXRvwDnbF0^V$2j!l(;_&nMvx2`+V6*)!{w@K z7md_EtV8n9hrT~gVA(IceBzhIHi#X-&jOOTl$a#!^%Ru0%n`5XwB1@4ugrC~0d{+X z@~PQO*nLqglb_P``Z}! zwFq4pbT$Fyb*b0>_IXOCM^hPna%Jub+nN!Wkv2B1bd1lBciM{)3C96;91pangO5R{ zsi1IXg^#y|!nr!C)UbT#`EWBL7RvQ8-ITzqefZ9*v~y4}5Y9Q@*^R)lMTG>|)gPnL^7e zK17iR52M8}UGl;4Jj5epVwi_5rch`+OvIa}u953Q`cS%0nO9`|Uj5d%R?LVd&HHJ% zrRT)yH${Ds$nR-W60fDS!oj#M@{JZbCFg&s9!vJTuXR!U{Eo&wgJ@0^g9zUb22m!` zlUTZ~uUUnO9PnalI$0XFwS^GRwCFbh{2chlTHN|8&Rw9Fqrp`xokBI{YAu4X#t`&t z=N2ZLc)g~?9ZT*R_hc5uHZtEF;xjgWX83crNN`!~<<5le_|Xp3Q+jD3;%9$jNV+b} zr7gxd{4~>G+)SI(Q$#D@9xea0$eUVX7c{JnU=!NZv?7G-JPYBx@DbeZ5{fb#R)5Df zW2uPdiR<{zGOSL641iXL65V=${&}9$qk8))6_9jR>bI7Tnk} zubr%Xs@3=9;MxOel&=18k!0tpgBlzJZpk=y{k>%rmfQ_C)J6x`bA~99r0Qjt?boREwkQ1rSozp8|nRsUn*9WPvGl& zf8%L%7E$Hi95jW>Fb)HTjI*Qaon2c#+#hA$R4YHOV{Ks1(F=jn8muA{2*Qc5D$vqSeOw=7?ye0bimdNk7qN5`WPuCzlH}(lk z6X?SmDD2aoxuGodWHw!(5w-ePr#EBm)2zqEYo$RK5rgJobF_ekGEqh* z$3DrajkLrbb>V;&rQ2^ysSP(H*UL?2 zE&VY&H>{4)RYcnZ(=7cq4=+;)l;kCgulY9h2tXY(q>i>1t^TxpXH*?s_3Q$;AeYJz zxA(MwE19&EoC>GNYJK8+G?z1aHfr3HAEqUna1uW%bh3%{x$(r$Be_gc$rbiBJM!iD zad+W}r`qOtA!>JAdHj(?R)f=-)1>&tR)&?CCI2}CGjwvk9y_jLx*l1%Po3fO zG3!YemOF3dHFqh={P6Y!SxPe?U!B%X>Y<(6N08kmc+Jl@+pmeZ()(ZC3m4Yi3;#hq z<=Kc4&@{K*bise#C#@_Q*N>XtjNJA@&5Q!12XssXNRL=k_>R~9v*W&+_5ScbUW(&k zhm_ydur@{KkyOD(Ppcb7o=1G6e<+V@5OlOW{;ptQMmAI?(a!ET#bK~cv6x1mH)waX zvIPET&%z7mDH#2Pz2A}2^*!>f_7n3*YmsDCSF(rJ(&2*d8tLO77-`oSYcb$C%+8p!!0r6h2)C31;5>at@Scs?QdTZ|$= zxIhGdJ2a2Dv%U&RdUi)!nFKtdeUD!I9svu6w$=Sxh@AJDvEsPLWUyShuH-?0oY6!w z>YZ|AyVGts)!=We*h5$BnsV8|M)=8|^3XgoT7IER(&->{ai>l45BsF@e1$IF_Tp;^ z*hwsuM9oW#6mcb^AFVmjiT2I~8nr_r1c*k;6d!bL(cE&Gt5Bwjs0+7t?9!&tnNCi|KheH`o*h4%F;#NXz2q0 zE1ddx3a_-8e;20}LBKWP?E5^>nex+s>)yc7EB{YwTmmqh=18i<@g%&D<*^i8spHKe zcra=Jwe^iPiJVL;ayIvpfmX_9y!Pbmx035_Tc%^0a~4VMf(3DIPY05oQ>EC9c|80P zz`D%HrMkuHx5U)O@hP`vUKnSNKO@#VgGM zw~Hb7%QxwJ^tul_yYmYDuNMO-{JPrsI+5Bo#-)l9x2s3b!qKCPA+gVf8!5jQsCOlr z!}hCXGPv%psH^_xRpV|D9ROTtwCHE|0c7%#_7s_z?MVB|o_PpB7S@5WQ(I|&Q!|&m z-Zv|(?;2}k<;^KMu|x=JN5Kt##XUN-P^LrNy-j9{EU?b3)YDV0j%S5LrOfIo_aVO;Z-l>s*2jEee&O#~2r}mtS;683F~|cUJvvQ($$zBV1QR%QI(&%QRwFGRMg`dhuM~*LnEM zv-sZPKEk9!vBe|DxjFT=Y6Aaj+mi5hXG6!uB6akg1&hUOgp)L^9vKlJ-QQ`q_Op7_ z6R-63rQIR41!}irP`zHr<^CZXv_o&BviCHhFO#byfDYTgRRg z|C1r)FO!Sow#OPasr}Elo;T9qWG-gx;w}T@MNBUTl8}n;dBLwM!HI7Mm!7QQF9Yv$ z+SsRuy^CO#4efD@9Fp`<&_ZY7N47o?%> z^C&~HkIBLBDz%P;Tqo`%D_F%gS_ze1b>{3QG>Bd{BdDYKqxY_xzNi{ah)O68ze<@5 zzCt?5!!NtGZyP>F2fQDde1YydA8WBw0uVu^ez}TzC&0NJB>JI+P0NzXIv%~Ihp_N# zwR2ElGxeipB77u1Rs}P^D)&Mau|8YPF%;3vUX0G#8)xmDu+q$p!hvN;Cl>eB6`Y5P zxaVXz0xxW3j^TnIuw3do6yMg^8_SN}-0W1j__h1(hl#sgQn6`tT~CR1_^8ay#!*`6 zVnC?Yue~UiwVv~>%hA5$U%t7}A9X7>G+fJC1Un7@9UlNB&F@<4?GtXt6cZ1B4mbHwFdRBeI`Y3j^FK^j50;d7qbpexNdxy=U5dsam^gxkE|k5?byC+S0Rf{@`{mYVHO=eFbK| zXGDJaL~rc(hd{4~PfOfpcb)LmTOvxq!D6djn2?-1?1l8km_N1(g#jIU(jUfvxjt&@ z22BHRzMaomv&)4@@29^Q9RF>X%i;<^jBO{+0<-^)Q`ajc|BE7SEr(k8NU)Q{T#}U9 z*x}e203x@D>WJ8XF9 z5S%bDV)NG4&7-iPevDW~-;JLTZQ(V{?hM^#^nCHFPi{O<+Oe=SetYHNW{uP(xKGL% z5RWN|f=A`~ zh=Q_NYqZ?gOK}tvE=E#f@7*Sw+5DRRVGW9PNU=?#!((T^Jd%Bt+A|Py_0q>JObgYQ zck(6)-S311ReqGn&v(BEIa~lD$e;%Y_cLco7QhZ;uTvjP6iwgf1TD*V%=F*ivQFPN z2)uB_VqdJnDc7<3o7WIvf70%v8G;DfwGdZL8G7Wg5kZn*C2}9lT*-&rQKkK5TF&BH$A=v4 zkrC}rva

    #%J+@qF+R_z|S$GKBn&&7P=maz#(Dl;RzYe@w`D1FS8MwcUymoIwf`& zfc{83J#>=1qbcSHZ`u5C*g%Q=1_!wr@UED@{fei16wkS<8okZCb;Jl!>cunpa=}kA z`1_Q6qhVcXtL@s?Jwykf7X$J)xa#>0QGvB{oP%;Lh-#Ad#t#`qbgVR1jsT8vck2#4 zBx=vGD-W0E-C876CP#N$lTYjx=L|T08C+i zpM>p)jADKI@T(S~69^4*ZobQz<|{lizx_hpO;Dxi(F=!aexXId?YxGUV|>M%<$c!F zuJ7SbQh5;PV>FALZnmGqL#{ZBA6KcTMO46jx&szUtJiDdN012Ms^9=_rXG&>Dg?k_ z{06?x?2!tX*|^aO52Wa&``MGBGRW;Z??)Qo57QL^tJ3{L#GBrY-1dhKN>|T7afg>R z1lZa{j;b#u)n19;NJy%2faQ|xb{4?84Sq6AJi8s;xfuO1Hn#diE)Y+p@Ze|Y07y=x zz*j2%fSK#CDJz#-an`5f=@mKlP!`(eFZ)XtFCh}YVCxvh$ztI_2VBo`3d7g^r8_y0 zg<(#F>xpGRcb^&H6S2?;lXguae`PZhG0cJPkJbDwQHo2>phj8-ZLTjd0J(U$>6%D|k1~!BR}P3?JTIPyRDe$WF5J_c9?~8@Ttprf0COK+|%OjafyCYhaB3M?i_QnXkOw4*b;YM?knzYe0}CFt`rPZ<=|wXA}r?zX4!56 zVh`lLc5Yro)yxIl|8N2Y=Qe$}lv`t=?A`blf!`IT&T16`{&PKr%o}Sd%9{ixl1v?3 zY(M2*b|0=v81^#GlJA*t!%)go$ikfzJD7^XNw^+)mH^I?or9F3;81n^}QP=@E92L8AI?Y;nZQ1njX208pK=#B9nLXzB&kQ$*GOb6Q? zU&9*r;H)&i^F+cd>rC!>Oib$8))Y@d4yG0YcjC+VSSB~#3oO} zm(u@#Kl>DA80P*T3rqdq(*G0$NS|f8q$VlNqWzI==q!)C?4=4=U(IF2vRAizsQpOk zt$r)?&@(U1(Y^|x6mGZ-uQM+=t@JB;@#BX;?Utgn00=!Se@*zL6o+43N8Nb8r?nvO zMgDZq6SO_Fy*KgjGTek%!Sr8b;9nKK&)*9F0-)$XAB?gzts5Pm4Ae}`Z>eFCdW4pm zVYkf%+O>^v`(#MuamA0Vl=EM{`w`tf`IpKwDb_Wt7$U>UQB6OU)df?l#-6dwYS0yXKQ+);i!`LqGJ%{2%NgDt*nZWfYp zyx#7mPIS`nrf$x(+}xaH?CTr7*4JDxbs_40+huVCnW<|zQpf*@S{xA)htZe~G*T`* zhgekDi=N*vOM?mJd;LN2Jv<(#+TOfor>#l!^qYI8e&OJP#Kft`WDJU4bD9$_E87Zl z)r>tZ7i{;O9Ct!ztl~-mp-1LDvFqKS$<^qSQ$@_^sUqfIPiGm`c{3*e!%|fLVJXuN zcH)aB>H{_Ho2iG4+uwtgEBrhoHK;XyEZLswJ;F})9#Jeo9(|@ zfrn@qOBEQr{vh{XHTxVVY|a2$GfrVo#~7G<)v2 z-H-99<8$Usi2_>zOOBOCb7=SUg?ZO7BuIdE>e+R|XB5;{&9g=BP37 z2*&b{1{_5Ss|01hAPKk~Nnf;k2NhUgQFnSRAGXt5Db~>)NQ>h?Ox%G;iX1Th0amH&wL?PdWLv>O6c8-N02vXH&VFVRDZ+gFDE9;axn#i{;-V)0BOEcX6f65xj4a8;2RFk~^V z>d?{OL(9Z$U8&1`|B^}&AorM1l0E)Sb?J)pz%8=}(o#y!YVFGhEo&4!ps-eVSyO@E z{;Ge@IpD0UT4|IcX0;R%WR@%pIU2{A0lSd_J2{ty*%VPBQFJYbWWY8C=uU#67|a-L zTKI4VY-H)V-(z+Ps|+CgVXgo)0heOXs$K#B6;Wfv2(n{_UX#PK?@foele~iabD;G| zX#+Wa4-T?dqqP@jKg@HeGQ@B39%WWtKL|g2_+X_%8Xs_$J1u0OKz}4#^1k22GKuMN zm9dBMI8XlpzWff5ae)(WIN;e=cSmywD%1=e-`&iCaENj8%i=0w=_Np;?upzKFPCvt zDxZ<}D_CE=)-?)MccAB!JJOBAV*lXp4^yit6gg2!pLs}8)J*{>JY?ua_^1K3$62$a z_Oof$9K9b;6Tn~c0|!*%h^chIxQV!`$}CK9&u1fuctxUO{kGtUcv^XmAnz&P=y z*jpz8mA`HNfF4MyRCkvy+gluN+x&G$Ex-?T{Oz>;Jw#O2Zw9&OQ5kB8BlZD18ne2y zbYauRLXFKDo$&+6tf&FHXm#{bLv3n>c4NcuVsOFLqs_|ewv zo{nROBomJYduA?8rsjP1Qpl_TkDphvBfuR(Mfmt@Q%~dS~x{KB#2L)7PXdd)c zUV9)Nc@ogxqHMY2rQ%JkJzNtnkN3O^Qq#5>Jh-sH{&l{}?akCHbK3dmC(H4uXn3oT zir|**KZD&TTFGHn5g~n&&M$qBQhkqT|1q+Nied&#)!0nU*i47YaO#pXP?T#h?*fEMPaM(>uLyfK_#XNH5)?n>v6RN9F}TN9dsioiI2`}*(i@#oP~LWR zvy?vWpJp&Qgtcsb6gk|jycggEUwj>^Wsb^n^UN{Oj0rdN@SZry1k=DNAvx%KsoOXB z`~YMDAPN!}encuI{LCSAXc8$nU3(e=xHwB-)rz4=dgZHFeA?cVq0E^yKLRj6Z5fe?($!kAeF@a&AzDqWwk8uMs%SIoBjr6NcyQE^-g`F^Iw z-9-7Z>k(ks&6~r{G+pkLU8S)&K&F!kG-F>{@$6>6>>dUH9~yjB>G#ScojI#xUKhG} zdl+y6K+)7@@F_zk;MP;h@JjG&c~#E>{6e3O_YE!@X3^@!i_-4Mcw=Cdd&AIU4L!X1 zf3=+fQ5E3Z9KBA zEP~xI4Z6Xms?7Zgs8&A0ZuYtxDQjd@l7Ucr{%i3gz^XdaKeYYrbp7cC_PEw3*I(*cXAB| z+JAmUmG|WTec&pN_q#4MBEr(#HyR)Ys%T$(Y0>C=r<3*uExoPo(+Wh6ppv*d6V8%P z|FP^aQZ2Nz@$)5TBy#g#jm@+OZIGY$MoTbJy5aDlQaLHW3DJNMPpsvuw=%Z#ic z{c!XT%_s^BQ8qT?_h-JX2fzmK4X9@_EB5L+@6QRA_s{Jc0$>wEJ-Y+gj6)n@4s1yo zFq=n^QehREbIg=kmPS-RqHvrzMzPQ8&S$h2-H#A%?TcXVh!6>~(Q~G%+!H!GVtP;i zzO^PsbQk@rfAzk30i@tVWLntM0{lpb?RI1XXY}6P!-#b)O+Bpb;q8>6%Zi1gr;;Pv zq{<2(ub<0eRWaZT{4oo$_cSdD6}3!X|MzS51B?HD4VX5g%W>n})n63H&TZ{!>rYGE z*b`z3{=sV~%kdy~s!!_&pj7IU+Xe(zQI(gLcnwcTqH^h$HQCsjnkD~ zk&Jz1Abm>jo#u+-y?h~2?>hnA^INM+9$Npy0(QZAaIC`&=JIG_rDKXh>9+m;(2}(q6qvclMs(uNXYOol7*>EM37~iLBzcz_y{+g2o2jLP& zNPyG%vM^M=ON{UEEe`}fF*tS8QS$gFWa`)!R7|AGzl$31ZB#i6?c1#R8f6h<7bGkD z6j*ewjlo|=LVv$j^K{ZVr%4U8O8n?NU-^k3@0lw6>LSpm`VW>_5!4eI!0`nxobhg& zyNvH{wrPn`g*zUq05+_+Ct_AVF#_yf$6Q%!Z%;W+p1H;kH})-b8U@@Ia;jvaJhzA6 z@o=eWq}sJL28yh4JIA6K`R0mk-bCN&C$N6DH?+5?0l4xRD$J!W;{go5TCIyHk-KRIAQF_ObbR@67@g22rb-* zBO`fPkqZc{ZZ*WmKlqO0A{u;tXnAVlRkl zL4IzR_t-lReXplPy#6^FDF0Adoj!?29BpUEZJ7SQ1_9fM!SV;k-0IC!!b5l=UErR2 z$?6Rg9G&VOILozg{U81ky|$U$xrf`;JZ;lFAH3ao)f0QlXoen?Kl_0Ae#h%ZxTey} zTpmY@tMeG2ihML{=Se}*Q*+17`Mb?-BYWPbhGZl0i7G2qVH=2oUn)8{-o(B>4xhgz z!Y#03!F@uy>vPjcC8+qgC(XB?zbi+gCDqKozX}IQ<;1-C;cj15c(*ugX#pSR<_SpW z$m73e+Fe6FPAcz(ur%U!{49LM7|c4tubI8+K<-H=9?9ma2x2#_m1$;QK!<_CD9j%v zdELg-A0>G1$jWWiZ-IpZ$W^&{4&@VWiFdh2mkaOP`!pMSPWUjCd6}PHDPz{XgHzd8 zMSvcj_6kW=36AG|ZB#-uH`4?9st*-=i}wit9e5pz>MN_zwmfBmc25@w$fRL~+-bBC zfW|iPVEZKq01p5r^mCAFVUWmF%PIFzhfAb8xI|wI5Pbk08>Zl%_88M5K=sl8Z`DVp zkcrThEXximYqQfNFev`GsqvU!F`u*T&C4^3e7`F+jQyG-se{6yMBFkY5$i>Cjtr9K3`{lx52Q!Fkr&x zE$}++U@J*1cY|D~Dn1RD&%@^Y(BF8;S&_L?w+`q|M7JPW6MTbbGJ(FJ3eeWE+;iGH zlEA5g4Qbi|RXck!0K`VpZ^jsF0s>FILN3G_YHim9unl|mO8iX9(r8hE=YJ_c1Xk|k z0I}EtfFs^|J{@u3h5;qSWCks*_kJi+FyJd*W1%ACj4U z;V_W}VPfLBdGf04{S9t`EE40>YXz4C`=|}|iY>sCkDVRBRrOJse|zN;AL6$Uo4z=HdS8k1!P43_N7Q{|M;G*TZN!qN%DH^d{E_6pf&*=o2~g#WQ3?%KtUnpId+7PTEb>6 zjJeIGw*mQn^y}N9hW(OGtGtEo|4<=$nY*J%CqU=@-`Gu6Qbh3N%KhvGoQn1-I!e7N z^8!8bur#5rYWvb^mn8w9O9Xa|F0dkAE_x*t0Nb1_4OHJKcn>TaQe1>&ekfUDfaF#L zL?)%49XYzWO|*b?WGAKhwplSCL0Mf$vtKf1yJ>WFqtoxk1Cyt{%VgOcS=zzPtp@h9 z6l=D>(U8pj0Qh6AW3#8HMdxCQ-?(NzVYx>E0SFrx0gcMDCop8-nu$W&MI+fSsD2-Z z!+_=SElJ)Ztp`iz!%&p>%hjz34M3avRC9s>GDYzE^~=DLjyl!a@I5#cei(T4%G+@C zhHe9hQ^x9@2?MZ-jmyC89z_7|1H?u4|A>h|cJG1C?U=mL|CFZu>wlT_3f_3wXLX8F z!)LTeKfmU5M}CSET(w}7R+txupVroW= zeK)S54Sd_b0m=3yMC5tci4uehc5?niM&&2ajsgmvu-4_YQ@H`tY*ox-_0es+Iu!qW zRTRN1A>h`YmHiBY{7DSrQ4EL3Wnt775l;%>+~v7Vo+WU4GX^7))p*bS%0&V>zpt<& z+QGH}&c>Eqnxb{=oE0f>-Lo<;99_`T}Z4Ga^YrO z^xpWNk9?9_pr1^cL|ok^mNao@p9q>2_Xdm?3iUJvsGklZh8xUG<02pYRkJw7FF6L& ziqvaaU1-_|@ZYh{nC9#^PW-y9NL%Ekf;d)GhfdOl;&?tU({0-MJ>UdVqrOvPpo(f< zESu2_fmnVJaDqm4Hi_*Gu-TAVAZ#$zH5vqb%e)0^eqcJ*bV`w)al)qc{Ok3^l&9Va z(k2R=9<~9PhZIBY!!}#LxkDO!w8}gM=+?a!cS?U>R;@VDOL)EHGJ-r|tVJq)g-7f+ z?qI^?(dPRfep5$Pw{!jchI$zxrd(D~r@F7DcRbX12I_cRCl0Y&q1v&|Sm?$)ljcL2 z$|i?JteXGn+H}$`}D6ta$Hu%&{d+YC|dexK9D!#vT^4X&x`^yNyoL^np zl{a#NFsft#i2hJ>JO0xJ-)|!kM4vl)&*#!VYg-cpTAcj4x!jWA#wSR8g%1E@%p-p; z*DOo;Rrrw3Y5oOPQC@g(Hy0vm5&VP>ASOx>_97zcBZ@9MBHeLk^{I&detC)hf}#CT z>&W~k);TpR-6T}UyOMA}xg!5}hSF`|48p2(VC$3o%$C$cbWqDO`3E}Y6S*aJhVzmE z>MRy8bR0ScwRx(EnX&La5-c!oE@3-f@9&$dx_CUi)D~N(YaYYj=u;neA956#x`WBj zgp4Bx%~=eOmQOEBS<(*m7DkOz@+8f#GGAI8ZMf}le;HAo2~(XzsD5i={^|f`{<1xf z=q0>>)G1#1rS@XID`oU7{t$sRTxl@h9km54BzZI7<{NyeV(YJM=Eq^%bJZ=+PL^vj zRW~h3yVgJ-VEOcb&=7Et$erycOX=-#&d%qS!LPj&kEEw5fG~3MJX_KZt^>qN(dQTL zzOK5Q0qlC$r53wbGy zm1U;R|3?egVzIv)-g)x=LZ+UInbX(4+SW0@g#>EngmnxomLJlsX36=W2Iqv?#mru61>hcnP;s`jV@o|-0n|b~YX8M-aI&23cG-z(0^59xl!spoUO7qQ& z0Sh@n<$N`i&b0P|{9-3%(fj+pb3>$@Hkn%=_4{OME8{hIVnB| z&Le3HEd@%9LA$?vo+To%FTpTPtrSHIU^Oq`+#4^|VPBFEgtg-m;#ujGKIdF~Z~L^* zFx?@dC)V`WKh0}KtpU;rMp_{9XI)Eok$eVMN%|$olgZOjAUB#@U)(jZ3_w{xdtknE zr!1^wFQWaV;M3XrB3C_#``?SMU-68K6fvz(p5He=JwK)hR9crG%gr&A`XAbbvy)C- zyTAqpV&!E63?kES&+CSt3pr$bH$ccOpq_`Hca2H|s{4A2h4ulGlxw)3=GhpGk9aeI zRD#N%Dm8V);4qO>9dnnqJ{~fi=xzt+B~N?0%%2>M04;NI z={vt47s(X-*-maM<$C!)Mt*(h4gK^0TMO9lSu>rQNLJ*x>pWX!2WCkdEI*BYr^CuD zCt|-?f8f#$Pj#f*;;I*HxRpZRI61=bfJVK-I5D|8K;rkxCr%Jg-Q(7*nJNhwBp$b- zRuzK@>y*l+FaE+c#_;Ax{^@zHOhFoGLbtF9vUGL8%JDbX6+YfcWfoBtiuNK2lj2os z!y$9QElV-dPD;+?Cg7!62c?yR<_uz_p)v279sSoi5RZP_d0JF#wBL0)kXaMa9~I-3 zzr@d}q*JbLROb9dU=mr%WkFZi&?DXXTLGT5gO)zF-Z~4&Bn9MN8{s|Q>T)o-8QOnR z$O6CiBL=YRFDRC?W)kxaJ@eiSW?=dK;p&posWIj|QBSI>Z;9Pc5vtLW)UlG;r@vNK zml9m{p%nFMnibg1EX*C)wDFwZ6?aYi~<30mb6+>;llQ@lmZOEEIb7^T( zRWR^LGUDr()S0R;fZZfjWGv2^G1$|YnXt=A1$jhp;Q)c}my$gttKWbY`3?a(q+m_h z;mh{&d`AKVM}C z>K%JeX<-?Fl*bib3mh*x^8^Pr-2QgN^@Pp>KuuHikxl1;vucUAlCVs{t$X@ZEQxak zJ8wX0Gs$C*gkAAz_Qkw}tiDP;>mQs^YJ$k&yn0oWeYwSk)}?0=>F-#z>f!O%=5Mf8 zPqP0dKYMK>Y~@!fdD#`DZz{e#{%$?SV5SqRmw5DfjXo-tv3B;JOQ0jTjT+!6FV8@E z5JRVd&uB6GNx}NSO|3H3WrRdt{$}K3av(jkAgMYK&}VdFZ`rYyX#!4*5A@^v?7)v|HRj7pDSl-$3ya>o;;s zjFa0=l*Cx9w&*(pwxJJ1+MAlTxDcY(*op9RIV|lq5Xq7xgV~-%xP-YH=MDP)Bz-mN zN6j58S|z`i9vr0sgaVi152lK^k+BoW!aq398455~RzliFw401PgAov;$mIlx7@?Ps@eH5)fik|D7UFUvDWv=yA;bFP= z9-oA{3=_^|Le(qi60CT*OsEVE{rhE8w5CmZaXhA&?J$BYX<-G{aXW(#?9Yw8XQg+}`4+1aeJBhQ}(FxH_cQO{A(8lu*t z&4-&;Jw$yQBCXf(LDMwTV`q~d0CO!3HJ#(Tyu{1pd|Ph}%tk-@KnPt2>T~YT6=V+| zM4yFTp%;NDm9rNGgFJY9MCOjOCsI7&#{EUt27{v-_M%AT&6iuoinJNF?>m4$Pbymr z-50BYuUc@=ClA%_oc7`E*V;lnZ#FMc0J5)3xZtpoP8GAPT-w07@fa(fttbmg;2eZ7 zdg5|_HdBQ zP^X{bMB00s^S=VdNb0H;kuyhSMpLAzoK6UwuIk-U1v4c%wqF75v`?DAVlCJ9>--`k zyZ~*=k+d0@nYhC-b*3B}Iy8lSki52^tgZHuyu#{eVRrQCAbz1t`6mR|gfwFsY4aIc#oaRwI8wZo30G8tq&;hJn(Q);c3mutRlLxPM>49h=9 z2hguN9=Wd@f_Mba7h6k`szyq8PZQ<IGN|ae{9|e-RdEy1xR}9GB3+Jp<*e59t zo8lS0wNFxm#eD;WDQl>gZ3{mMK;_>BzGr{Av)YlPCr8okO5x!Ewrb}7%3i93mw>hB zERkwzf$Z1=bmU&sY|g)kFxw0J8gw6e+@V_gt$A<@TC~U`z(;gi{n)*a{~*gizWsjc zQWEY8?6ULG?-x=pg@5JXqwY8^&h52JrS`N=WxX6}Jw17^1yQq^XY_b)2j2O3djGw@ zpu_q#<(KRJ)U9XkPuzIALVBcB-i103h@sj?iaI=s>_=bdO5Yh)pBJ`)2^Eoi=JSrj zbY5ly-(BYD?|0XgHv6qrE;vpO@cLs5dq~6gdX%?^VYvI9EfC#QER$~L(5Q!6CPPv` z#h1lb1tlaA1xSPYz2T0I{q+#&~T!HV4`GcvEfLQmH|9 zd6WseuAsBg#cP;22b4tyv3i)zYhMpPm}J-ws>~rWAmes(2n9JwvQQ8C)u!3+ z_LI?_Z4KrKiDNKuYJ1&}F>TWbEe9M>_yo*6$RoAn&-EwAdm|ZuD1G(c>Y)rfOqKW1 zZnbOale)l2bhS(AVksYqXgHD$@-PK@>)z|<(WehBxWolFfd4HY}g{_u0MoOldzgt$8j;J(_&Pf9CqF zMb{m&qDyq8jrabMdwX+Z!1?=oCm(lOIJ;J7N)jii$JcSyzz!2SW*3_{^9bNjfvR|?|^6H OFnGH9xvXa8m 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 %VdS(hF#tY9ioCtgm7gD8jqzp}im@3au(OLR zu#zhe#^!InY-h)*%{2+mOxA<5;mi|^La+Oh#G7FcFV@FnvZ^@&pgKvWyc zZeX$quYXswGH(HR#g%_}1RJgBFfJfMko9A%kgMNx`Cz+)<_BJE>Yiw(?27(yr3nW? zR4*rP2)zdoB)OAsb>MvtWt(~!1SF=5*pDO6FxYtC7Qo{KHQ0$7{07Cz*%$I|)_Euo zO84nXN3h(%Da&x9RpUFRuT-P)F2Z*v8AVB}k)l>mno9$lfJn%v8|8B}M{DzV?EO3> zgY#H@w3f6a42?+%$_n-5)JJkb+ca*0sn<~38Y(M)5eg>fy&EzaD>;;_BgTpjQ>dYL zj%l`HWiQ)wF={CI*i_dW=-?G%oYj^MtzJo#bp$$7{p=rbJYBE#QsqyQ1D+CP66UX7Al z?3VJn&m^?|gf4CZqUi2&$@>-$HoAlw{ER5Os`wiiogWkpyR6!ot$TzTtkDjTf2ej( zMY8cef*o~*7XsNlm`5-J%e=5OuyZ(kbqNJ0R7LOn1hM}O2=mxA<F4{s;KAbkYC- literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-solid.argb32.ref.png b/test/reference/extended-blend-solid.argb32.ref.png index 083fe8737d37968548756c2a60a5cea28b162753..902ef8845bafe31902c1ad00eea35f939c6813db 100644 GIT binary patch literal 4063 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 F{{rmYV*mgE literal 4071 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 avLTB*Oi%g#(4eR2jooo4n=)(P8~+D|v~7<7 diff --git a/test/reference/extended-blend-solid.egl.argb32.ref.png b/test/reference/extended-blend-solid.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5ecd73f8259444ec8b91b989bf4a2abf19ed71cf GIT binary patch literal 9719 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 literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-solid.mask.argb32.ref.png b/test/reference/extended-blend-solid.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..902ef8845bafe31902c1ad00eea35f939c6813db GIT binary patch literal 4063 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 F{{rmYV*mgE literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend-solid.mask.rgb24.ref.png b/test/reference/extended-blend-solid.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4580e0dad8f293cdcd7f810a4535b3f4cf4e77a5 GIT binary patch literal 3775 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 VlGbgfom+TiXX9jDa?tm}{{Y<>Z7%=- literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend.argb32.ref.png b/test/reference/extended-blend.argb32.ref.png index 083fe8737d37968548756c2a60a5cea28b162753..902ef8845bafe31902c1ad00eea35f939c6813db 100644 GIT binary patch literal 4063 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 F{{rmYV*mgE literal 4071 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 avLTB*Oi%g#(4eR2jooo4n=)(P8~+D|v~7<7 diff --git a/test/reference/extended-blend.egl.argb32.ref.png b/test/reference/extended-blend.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bf1f49dc2032ce923f7bc1d6ee1ac4cc8abb02 GIT binary patch literal 12545 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 literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend.mask.argb32.ref.png b/test/reference/extended-blend.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..902ef8845bafe31902c1ad00eea35f939c6813db GIT binary patch literal 4063 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 F{{rmYV*mgE literal 0 HcmV?d00001 diff --git a/test/reference/extended-blend.mask.rgb24.ref.png b/test/reference/extended-blend.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4580e0dad8f293cdcd7f810a4535b3f4cf4e77a5 GIT binary patch literal 3775 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 VlGbgfom+TiXX9jDa?tm}{{Y<>Z7%=- literal 0 HcmV?d00001 diff --git a/test/reference/fallback-resolution.ppi144x144.ref.png b/test/reference/fallback-resolution.ppi144x144.ref.png index cbe93ca67abddc57d60147fe7fdc8f63d5c02bb1..fd0666a428c13da3f823ac1a8461660048114eba 100644 GIT binary patch literal 8746 zcmX|H2RxQ>*S7b{e2lE@kQGAl@MN#-%_D@Y?45Y*ovcJ=%9fH!_R7l4$jFQ`B760n z-uL^yyI-nb_xhjzIoG+a>)f%r+A8EEOe9!XSmbJ|C_VTy<=<~29Qf(T<+BZc5ZG#{ zps@b_`<4HxGz|-j9ZL;`H1L16X&GQZGr{zn3I|OyWyf$wAx}_%2xr80JdV`F1KaP7 zb0^*5kE_o3!DbU?7FLyxmrCLaW8!|7*c#0VT5BmcS`?I;y zK69aKFD|}Yi1{6_UaW4-A6k--wGT0nu{!R*!?Mn2X`+(s`5jqRJzB@jnf`KwrUEFr5S)_w*NbD8BScH>7ocSis%Uaxa8z7KgY`%gv{*h?21RsUore{ z!HVyUOG=WIka)t+m9D;jcsT#|zOk}0L3H~a;{p~6-YZw`{us;+4GlFjd(GP)6%{o+ zJS<4BVHsH#bHQ7YpKsHZz$nHXT~M%4cst&0zG+~^^STg0W}lXhj&*}a!J|iy-f+>9 zaC31L*VO2a+VY_uQX5%VoNd0F?{(4fTJ3-D^+Vgw&u?C1e0DYjo-{P1YscQfE-l?q zTwJ_eg0sff#>C8=DP+zwTjt{Gy0o;!%*=dxTY!v-iD_|h(Z$83*xcN}VCY7X7p+DZylyL>tK{PggTzg)?#nx^IxwaJ z+{rmd(sg7_6Qz%NTVHQ`OF>HN-R`a@IbA7dS$Vm*xcKK1d$H`hT?xqMbz|$0@vmQB zSP^4OC?awOx;CDL{yjfDe@(K*{QLOKzAvL-eqw4Wd%)p-q2NAEmz`K;MMc<}fxv!8 zER9&{Aa!i<_Jk-?IEwQ|=$Uk&SI6}9(;3}F%Ih>ny1F*b&LkLC8Sk|SLQ1=?it=(& z3W_8MaW&R?JRv13f|)sDLhAZ;!_$Kz8RDw~0!%XAd{h&IgIiF6Vs~E@7qj1^hqRWL zw@wt>V}vac`g1rkqGxVyu1n0r!_(Q>=`3jMib>DNc$$@kg|xJ=`1$KsNzu;n*~^!F z-hSH)3kAK6wbr^OCaOilMpYL4Ubd#z*2%1GTAG^6Aq`yltZmND&O=KX@$ni;N)i2z z06vcO$_a?noSbrcMjOPc=X>|LM*dUz-oC#3_wUQf$c&}ShYt>F^YZedLUnY$Oi!Dw zOOun6!>+FFXgWwx>*Au>)UKcEW6#<(t578m2qq7|uV>FCC%rqrr*V^MmBhCYyh zmt}qN2njznG=x>&#-k;PR4y7`_f}F;($LTVcPPr1-k&HFI-w`T6YZ8HtIBjXJN2if}gqM%VX98H7{# zsy=$Cp(**S+c*Y%i-wvLQ+x^K##27R)23V=fuU}bNOo6 zs@}rU^@(ch%p@ay{kyKN+h^ zp&i~mT_Ezy59_AjfP;;xELZ#y%ne!Dj~_mK`1tYk=*VU2H8=dTv{Z#ZRb5>@ijpl! zSbLSX$4+ecPZzuppJAMY0jD58KXHs=(eU!X_hB2cY%y8Q07pm1n8ZZG$vjmWN#6|< zcXxM)k!hVnE?{>_No0eImX;Q*LG=M(Co~qZqMN}-Dau9It-_WcP>n=RDHBg^MG$ZX zbgQ0bUY)#z*jSFtbj`+~!>zU9B7nqS>+2k;&lC$B@88#dWzcV(Eg!A|u!TmWN$CYe z#Ko`ZktBDUH+U?xM^i!tmFhefzBau+S}Nr_jlt~i?^`$eKbjiQTl~~>sq4p|kdTnR zzP{9l0I9y~BiugxUwr-io=ZPigdpYS<`#={s353C#Khtf639qNuZ-Xx9vsj!FhsoI zp}ceF4nIG?>g4EXU4A~6xCZBm)iTkyde?8)n$N;9-3g5PCMJCPQ!#j~w}Kl&&rizA z1nBI(n6X_eIac>J3~_pTdQUTe_AT!m1gXnm#62!=C_H-$(Mm{ zP*YIrs5a`@2oC)_m;$PTS_xTI4LGZw5&MuswHk@xANp2SYCxCt66}?Ck8aWg9y?Jnt*q)Sq?a&rxzh z!}LZbCXhZTu8s9|Q$4-#uOzPS?tTv*93So6MWIl(wuL1n+@WrNFAkdzH>Q*<)TxIo zNR=)Iv&HZAKH)F!OjG58jj+kv-(AsgdTX1_KHb(5OdFn$!QdrOxCaNHbtkiN5Pb+e z545mg2{nT52$jKYvK7_|A?@q!jp^=|AOr5@eY>EXfek}cURL%Y=unuNRX#M>(UI@O z$;W3Oo|RG)8%ul(t;yrn8ApffTzmW9u5Qma8zac07ILKA1O5F07V{s%))0~m!%D}; z$5ABQs7Yw!+|b4?+#4vmS)$%LdWH-iqoZ&dv8Z|vz&HLUncNE;XwRBib&s`+Te zLt5OSKTG~$D1=K<5$7Z|BZEFmIIeRMqEF3lu!HzIHRW{o?&$b9J~9Q$0-ih+jUO{7 zr&t;hfg9i1Hq|**gKnRyyB8Z%A|r7#>QOT`Hg?^;FB!a13hW-fzHW|=VeB#LB^jBS zMVo%`V93|wtyx*3aDe2wPeG+ad1entKl*MmwbA1tfvq{#vlGd9E)zKhL)<#izW^pe zx{Ry~Yierh>y760EiElYY~nj@`@cpdB~eIYZ*6QehMs?DTco8S(B^;p_N{T1MQkV+ zeSE8AdQs65aDWy25r6>SO|wXQay>hH`-O(|n7B9`di7VYUS*-(p@S%#(}u7MQj+}J z3;{twR2v5eha)*YQTR)PpRg9zn}HHR2OF;6>d{PWOt8P*WbdET0HIY7Qd3eub7{_a~|r7>dJcn5Ep>%YP(ew_%EH3VLObE!D8LOiA$NY;3U+eMJNJ1p1R0myy+IaF zm1!1=dns;6{&?v6&y?$-Rv{^Xa68!B7o@v!5J7}+HNL@rp4CaowRw7aDj@1ic#_2L z4W^71GI~?RqNMX`XJ%(6SZVX$3)xsq z1T7f>uK2A>9eeAet!`{DeX~hfYYW?x&vsTnVe}8ar zaEgen3;VSf7HuYi^sk?jBB{(6&H1r9tC}fW+6+v?)ZLt%TJJEWX-tlm>L9Z)o|Je< zS6A1g%F{YjNXSjkvuZ&c92^CN1kqwj;KH>?ToA6C(}1 z-dhB0x!Ti2ZAA_{U^*VvF`oEgrKUML<(Heyr6$_80Y5?(x`^N%Fhr3tE-ow#TVJFD zB~vR_G=A%e`4n<$&r=L35khL z5=^iC(d+3T2 z0%l__U4fHa+}s9NJV9J0z3g~Nl&T5>ZRK(+=tNl7!=vA=laq+b7Nr7RO)afd2ABKy z)3S{u(fJ=rZvKtvN;(LNz<$qR%mf5Z?%_paQ`4>ZPU`qhz%gNde&oUDi?cspe*gXr z4Gpw0$lQ?AgY*3fYj_JAll_B(CeIahJG*6oZVsZ|!$Wz10nl5ZlRIr|Rk=U|lvh+( zymcNw+5d%)g9Q4Pm^c8sOHWU4=*LDe2NlusB}phiJ8e;)p9TqCbh=@g6WM({WR3N2 zQm^@Air7msQro+`dAYeGKidIcWDB^dq|~mK#>1hLmX;>vK9}%@fF$y@+w2D@MVFa| z9S{rB0d6x54^9s@Z``;6AOx=tkPA>D$j1lNZgYK|QOr&i>dC;sKue2!N7i~7`<^)k z3%$*4Vq&mpW`M%{YkR6kTeBbYx5Lp#8&h>9 zB_;DAhnGY1p#7MdnyQ+xQwf^BMhVhGFJc>BTKaPgfPN{yljIKvPX0MBxvtO1w+`uK zsvb8qE;9Y(S9Npf{?Bm;_wwzm8z7*w#Wy!LQmRM3ex+YxQe(=p^nebwOiN7G1q>W| zn85TWC)(G`J?O7z7ZYgcUSFRHQV zclib+WIBHVu7O4DZVhr!JY!M#mC9=5!OD@Mh0t#A;EU|0vv7DbhTflk0 zgdig!C51L{ZS)HHqB24D1&4@)1eaR}k*=xfjley}y&ol|r9U<{Dl!b^lO8ip5+Xkq zC}Ig%oYd3cy(Y#T$M`4ctLqYllaY}vr>n4(YUhGNP*YP|tDx#m9T*s(!o&W=E|3mV zjBk5Olm*-mFbIIYvESE%T!2O4O3S-oATxdU^^XO9YXC z!C;(5U%(~+IX&FlgHkn^`gL`C<~_tp8syu9r7lBbWAGW0S#Ioti3EOvZmoRBap0}s zBdlqxC_3RxQtv%AY67ILhDQ8r43cVjZS5r|nhI}o_M?=nY|#2hiMF=3ZS4`Xz?hI| zT|P1rl4&615PlGn!d8v`CwuEPH6nXfEb*P{s;V}%COyqSmH~Uy=R{7y3IIuXHXt>h zm6J0uHfGTjd;=uyK4W(Zhtl#*#pf8CG1}p1vE3-TDNMn3#H-3m?gt^IA3uIHGr-&Z z^Y18m_!pW|Q^@I1bMcE8g@5hqrih7&ZLZZeHa5O~O5OVX0KO z^?ZAIc@IeV+?#Yx8!f6Qzy93H#2(><;eIr8ycpgI2Symvz$ay z@2YlU76dIHB<^2Tew zek~=SrLhcMot*`~_(Zw1@zIj#5`nsjRLquiWs1c-$KKf7{LGE_)EQdLuH0r%E(Laa z`HL4ko&wyht*u;oAp|K>)-8n5?Z~g0R8`Ie7HvG5Sy*k-FPx=`fWG&=So|IiJAdOX z_nzHQ7n04~xI5@EJkXMZ= z*fTwTw+##=S}5v%&dA6BL-H|$mN1%@1Rv4T7<{akN1cq~#J*WAp{S%pCqr`j3|yQ1 zjRQnDoV>Vb%f&)Vi&^?c=}t*tQlP;_?J-8GYhlso^UDZiG^4mfPv0ZuB6L;jS)(X; zU7p{}0N=i20>4(6N{jAzQc_S57-*a-0{Q>Pap#*Kez6hp*bAPhG%w9qs(nPsl*kiO zAcGA1S)$7)%|NekgqfP2PGXa1CBA2Gj~?vG5Vj;~laA_NU0szHmb=C49~6}4^`>QM zr)4Vd-8-qSAaVkdX?Ht2F6yB}U?AW#US_BYmgWT{>#mq6lv%IFPn!-fhi;$r(;Emz zDw@{VVE?-&k>v)p%MuVU^c&lUM+=1cfxiJQ7abQ}0o~clIbRWZd3muA)&NTZ5wR;! zT3dU`+w$V#f`nlqD$!^{MMXu1plLV;e3fdePXgCypydLW9H%58Wap#p zeRjjkL;EFk69z$(@5{^HXGag#A1y6*#<#rfhE_$(P^xPm(Y-V^Imyn=;di5uF3?0U zBPS;(GO`o;z@IJ^Q0$!^BKSciZk!pC&nUUbZQDLs&7L>DXFQCE^_-;WMpNp5V8XnL85SOk=>51?HC;u z7Z4yJZhrVTFUAm$f{#|+)^>3)SJv=z@wRBliFddQk_tM|6KF=8bdtAjv9cIfTD;fe zpSa#@dDOMw0lPyLf8W)0GxM7DV-aM__pw*{=I`9Ne=txJI=iDKm|Qn2yU?aDV*DpPlgx(1eX837s%eQBA?ekM|Znyg=W(2We0mXpMs$ zs=eDCmR<<8-H@0g-D5!tuPO)1zhf|5xoG9bk0r-rDiyFE<^LXk(J$2|e|i5AxP}bZ ztSWk$2)@JJVSJ+K`v|i360WqpI7eOB{_ZYLIbVS;f{rfI{gANzcluRh58;mr3Z{ z;xv8dHv8JXudS^u#^0Qnh=}jnHRyBx@_7MZ!&aNU6%ZA@6hf0K5Qg>#H=yOB7Z~HM zTY14&%PqFGLlZWvvc8%!Nr1hj;#7EA&u@JyFORpm0C6PiyTR_aMuDV?R4f>F^p=?& z8X5xAv%lYEvIZ?FDG7-02c+EB*BAJ^pC6m7Z^gTJ@2aca6%<+~tRG%xVL3b9ZiZ7* zs_3&7teuOitF28<)nu;jVp>HKtkB?P%{GOY%M5}6FkDX0#`YY_aPjt=`g$HNuJ0C{ zrNV6v15bUxxO=OQ-|hi}n!xQn;L2soFR0NXWbWVU$tz5xh+Cor>iO|HAiw<}8R-5Jrw6a)gA@CntgHj(|}u7;u<;1n31)Rm;lC z^z`-r?pHq?0EG@Cx2$0bt*nv~dx#$R4wRQ=ydh`7caB9VR?Q@{$rtY1rF^WkFRZGf zaBY)=CiiyloijUG)B@ZbXchaj`1n2;u#^;ykBuEc{vRL1rj(ahkTqCr0k-sBB=7F- zf>VB-LIX0UEi07}53k2X!hOE!wgmxaOeceXLeA@}^T{vE z%axK_Vf+X+DR#HXe+S3)FWS~t&&;e$S#3-Wt^lF$I$cp+ea)*%9&w48Ilj@r#3ZX9 z$&~Tb9OME_^7i8j9R9t~%a;m%ME{+36cZjliU0(K`UKZbe^oyg|vd@sXbbzd-xD2;QF9`5@MsFV*_f@9i+&yUK1Dh0zb87E@*f8vwFIf zt}c6;2rTMsK!FU!ISj=n@+}M4%J$qR#R6RrQbox`O1frd0enda}vDVGB{ z52R;_!F$AC2XC1Wm{39wZt_^bY28ugqvhe{)tK+Uj&8#kS6lIOC&aDk!%ou^;YCxj zWgO(LtgiZQ&D>y3E{#6Zr1Fx*gACrPDId|L#g8pviYF4S}?e~=Lt7WU}BZvkFDRxE&KUj4trTAem3 zT3T9geS5|<#Uvyw-Z&1IXk<#fxgVwsvC`8UX^SKkji^mzYfL^6wyUhiZ@uaVX6rI^Ze{=IlBT1r_%ggmHUegl!9`q zffr;PSi>i1R+ydRV94& z>Rl1UuA65hdyHa%=2MAvz-DV;lf=nKPup8K$@1YGA)!sc*B1K>MVP<9aEcLu7;==b zI|7LgL*?!z7-I?;+{ORBy9*N&IJkb4>Ww1uG1$RpN22g;0K^r1x*p4*r(pnOy1GC) zj)0Jic~Zu%iVP9shM^n4BfWO58a_7oY`5s=NP@PvUjc%;u&}VYN{>LSEia>nmdocw z9f{hpqRuYM$^@`1k`$?Y1_mO3^0# Fe*g-n*j4}l literal 8697 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 diff --git a/test/reference/fallback-resolution.ppi144x72.ref.png b/test/reference/fallback-resolution.ppi144x72.ref.png index 4c16ca14ad0a69c3dc495f975e98767b221a5bd5..ec6685cc087b8a3bf177b2eeee91c574f0b614a2 100644 GIT binary patch literal 8531 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 diff --git a/test/reference/fallback-resolution.ppi288x72.ref.png b/test/reference/fallback-resolution.ppi288x72.ref.png index b21358767cfee61c21471c8ed848426eb1f932c4..969c04f17886f874f579cb21836e002c13eede19 100644 GIT binary patch literal 7203 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 literal 7166 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 JD&!#0{{sv(NJ0Pr diff --git a/test/reference/fallback-resolution.ppi576x72.ref.png b/test/reference/fallback-resolution.ppi576x72.ref.png index b63e66e28ca681738d93327feac782ee1095b9d5..bbab0653e8e6ce89bf4a06ca28cff01f7aa7c76d 100644 GIT binary patch literal 6457 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 ph)Y| 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 KL%u=|f&4$;*++2z literal 7231 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 CC=E~m diff --git a/test/reference/fallback-resolution.ppi72x576.ref.png b/test/reference/fallback-resolution.ppi72x576.ref.png index c943f083439e4b5c112934977764423f359bf66d..7b4d62e1946a322533cf1f1ebb90e64743f36179 100644 GIT binary patch literal 6604 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 bM}a{DIuf?>hy?I71q-2~t^8RL74rW8BXr7( diff --git a/test/reference/fallback-resolution.ppi72x72.ref.png b/test/reference/fallback-resolution.ppi72x72.ref.png index 5d1df2cc12cc8f0711b1b4b83d6b218a4b2485d6..690c0af2debf9bec2c2477e935eaae3f5114b684 100644 GIT binary patch literal 8579 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 literal 8510 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 diff --git a/test/reference/fallback.argb32.ref.png b/test/reference/fallback.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..32386d5f2b5035c9d679c01a0f4bd3f3d547bf6a GIT binary patch literal 4059 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 literal 0 HcmV?d00001 diff --git a/test/reference/fallback.base.argb32.ref.png b/test/reference/fallback.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c5f467675da99401a2083eb74413adc2e63a94 GIT binary patch literal 4156 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 delta 1655 zcmV--28j8A5Sa~-HGc+9NklzjY%w5XMJ-4ji%r!yQ})oD%E~(1F!~wgZ*0 zEx3b~BRf22&X$)sJ2|p5I9QWU688^)9n1${@p}_cx_jK2?|nN10;EV(8b6{FsF<3y zJrR8+vgkCbWYX53Z&D?ahDV|k(HWgal{^!j&^e@Hx-A^hh=0zcKA6Z6IdmGS=&t2C zB1R`u8AHX^xwV`rdUQTDVc!T_A>Etu+RPHZyiTu&{@?%|6bMF818)I zh&psu6~K3@Rt3-brp+u7?(fN}m~A<2X6?t$Nm>uQ>>Jm%m3Q!AbzGr!R$5MbiN1$^ zLDEX#Ro^(GuYVQqou`DCC9Q!I(YR%uHnZYb>E$)hdHANytO)F?p2f4Yh`WywooZQZ z3R^s#pKqpMbhZVtv^uWDI{q!E&8#5UL(H=2LVVL^mOm@2;~K0J+H$5a=(O|4`YBm3 zo5OfEI&|8Z<9|bz3P<^-&8$uQZ^%;d8OCj9g~A~+7Jmuv@QrKR%F6`ZkVUem<+%0| zeE}ONV|nmC-?(-ZI!DCI)$-Wca@x$Ar4QGzFsy`c+RXX@M`>6RaeIKXF`{e9invBz z5}lB5reJhAnP6iDEC#`r(`MF;X@(4_&fyVWazA&qa2JhMa=0J*~{edCV0t=vmUmpe&Y zjyvQ_bQY2>YdEoQ+#!!brS8V8N!@a$u;?;1v2wcQ3#<6X9cgCCZjWV(=f}uJVni3K zMlY&crgU1qnS#;vD!|gBt@N^`S z)E}ke&qODkn=s;{I@J7aAU9Ag$JKij%E=VViyq{gDGa*&6bwhO4nuw8YTQ<~DdozD zboYm6^k@ZSNj?2@fziHk)g6WQiRH?L0qvV9ELsOCIK5U`z-Y(ZqDM<1g~F|v1qyX~ z#(#*GLIkU#6&{PW%ZD&%L3X0HH+Gad{i8!`vXfp*C@>w`DEBdav3&OY6uVf1*x0H(_)FaoA!r4Th0 zF6Ra08J&O+hj`!dL@6!Dm9VYMP<;+mYD5@ifdUx{vCiIsbt>@PFczJ_3bvflzn2c( zLLy>Bi?&1#d+`Sv`oictLnKDDj1!F3 zA-e0tFrdqm3Qnz*2f2xv5JuM~7=2QuJg{g5RIM|hYZHtysZv{HwK`629Yz->9wwbw zTlDDKRjo6i3lonnomi_dx^PwNSbua?DPl|{))oW0a6RkfIhaMlq|j>>i!NEjI=)+i z<(_nI!n&6`5k2c(5lO`@$EhEM_UL-0x{enex}MZw#3fsR(Ul5XXM13sh<=V$suWo3 zLQh&3QefLU6|Zt`oK>!3^EmpD;$i)tKN0YT(nbo6<3XNT8ej9miVI=HwgVE(ggg-L_>oK#>C~3l?&-Ntx zY`HPB12i7kI=>M8B=>AgWPgYZ(fRryfBd%uzy0v@p<2!>(PyGpqCc*WWqG;#4Hsyp zCEl5=l+AK~{v!I5=tA^`=<+7A!dxx&{q+G5|E}}ye|CkB=g-&X@%Nj@ujs5oVQ6QH zu}=Qde>C8Fz4cmXA&11p*-X04OY`P^iVOWspPlb5+)8uXa^-*9A%_>(h5EJO;z zNSG;jU=1nXb#S>xvxqV#+)QECVTqRWFVXMKAK7EJ%oJvwpqA4XB9&p@o5}y(k`KJl za@s&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.base.argb32.ref.png b/test/reference/fill-disjoint.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.base.rgb24.ref.png b/test/reference/fill-disjoint.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.egl.argb32.ref.png b/test/reference/fill-disjoint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.mask.argb32.ref.png b/test/reference/fill-disjoint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.mask.rgb24.ref.png b/test/reference/fill-disjoint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.ref.png b/test/reference/fill-disjoint.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.rgb24.ref.png b/test/reference/fill-disjoint.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.traps.argb32.ref.png b/test/reference/fill-disjoint.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-disjoint.traps.rgb24.ref.png b/test/reference/fill-disjoint.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..da9a3b11286a266dc6d011932825749ef88a46e9 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAjOvC?e4&nc-73xAYTf*NOZG;`ynnAw=l$Ndzc&B&Hu3pP`@hH4 zGyZt*!eJ=r{mA5) z?{>TKnhdvEZ;lb~#_C6PllPSB;dTgIxeLd}$YnmxYLN>J7K+~IosQQvFz4Qw6ueAP zJ1^Rz>QDUz;ym*0kLKkG$JeK+J+zeHNt{o7W}e%8-13u&Uoj`)fC4&grqSJ$qf5_s z-LG^d&gX`~%OqpBD{k_eHNl&3+#v-SVdnl*CW~L!$)0?#=X-*<07^SmGFjBzMZ4~~ zC<)>7g{1JQP3$k`KmU_R7XhPe^3^l1LwzXakt1*uul&~R5X|vDF zu$ToKc6r{jA~NN*1~2n0Q~IF3u6lkfadzC^_kO*dnR`<=k-=)m_>kRh<@c|fwgL+W N22WQ%mvv4FO#qkGY+3*S literal 0 HcmV?d00001 diff --git a/test/reference/fill-empty.egl.argb32.ref.png b/test/reference/fill-empty.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8c26f7ebf01fbbd2fd147d3c2c99e73effabd17a GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDxec)B=- tNK8#mN%--9ej~>Lm!3t8VHRr`7|bp(aWHpJwE?PO@O1TaS?83{1OSw?8yElp literal 0 HcmV?d00001 diff --git a/test/reference/fill-empty.mask.argb32.ref.png b/test/reference/fill-empty.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8c26f7ebf01fbbd2fd147d3c2c99e73effabd17a GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDxec)B=- tNK8#mN%--9ej~>Lm!3t8VHRr`7|bp(aWHpJwE?PO@O1TaS?83{1OSw?8yElp literal 0 HcmV?d00001 diff --git a/test/reference/fill-empty.mask.rgb24.ref.png b/test/reference/fill-empty.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7a8a0e42c07618206558d450b62b63f2d0a5be GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q);^M7e6xbN7dl)%yp5mMURKeis>gTe~DWM4fKE)d2 literal 0 HcmV?d00001 diff --git a/test/reference/fill-image.argb32.ref.png b/test/reference/fill-image.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..068fbb7c941075563275ab4b39f49278ea4807b0 GIT binary patch literal 1315 zcmV+;1>E|HP)Mqmss!4%Aev|KD1bi)7~ff<;yEHiKzUWBf|2ih~;u=n<<;iOE#>u_)Ab~&aO zzIB(Q#pN5=5W0;H=!apSX{s+n@JQ(PHpqH7Q&gJj%LuFw-F6Gg@K%U4)t5J6S?E0I zY=Uc{GgT`Sur72qmL!8+p%b*Y?22%NQG(Ax=VhsK2uh*zGfz3k$lyBchwab{txNp4;W&2^&LFjZL z-3cF9N)H9>A~X2f#_N8#+qH)(9JKK;80voiq0J?*#;23};YXWOyJ!ZC&FwDaU}o@| zv85gU{mj#4=IMIj&$oSMJ?1Q|F2+z9em5{Q?%@t)Le2RgwlT}(P?$Q6l zV0QW`F?t#%4gCh?3j8Gg;0Y%(Uy29hc_$i$utRLf;rs$6m=!fz^J^4^+^5gvA18K* z0uxReQ6O?p)vnam?pgA4`NvjHBj8gpdY@8TOV&eT^arJObQ}|-4=S~_WIZNE$CcXA zaY2msE48&`^@!0wmDg2+f&Ns%mFeM2mI8qb1{#7>#ghR7P&D)?aDKlDm&4Shu+l*>K)uT@j-J-=sFi zaxp45R!`QL7;U<*8|41(SEaU=tYI-K4_PBbHhfyCttD$zj6SW@j*cy2RKARK+Qos% z)tvucIPweq2G+PPAWi<&p9j|DIC6WbfOQEjSc)3Wiv@m1=$2GmQoM}h;?ALdzcTIVLseI_ z!MV^ms+F_(Uz!#`+Q!bBDtr|pO@mMk-S!4aTW?z9dsEk=|BX#u>#4vtr<<3agw2r* zHT}^J+u#$JwolMB9D=O{OmhAUF>P_a0lHz$?fpf6gFoORjQ(%8I8P)Ji9{liNF)+D Z_zRZcK@x@DTu=Z2002ovPDHLkV1j&Fc?SRh literal 0 HcmV?d00001 diff --git a/test/reference/fill-image.base.argb32.ref.png b/test/reference/fill-image.base.argb32.ref.png index b94ed91d75d17e0ab8eea8de6e04886315cfc997..1e67073dffa3a60c559934f052b91b6077af0543 100644 GIT binary patch delta 1422 zcmV;91#$YX3$hE4Hh*VHL_t(|ob8-VY*j@VhM#+Tv4B=u+X5|CG15i~CLk^}CdQbU zXwd`;t_)%0Mh#I{#GtO#`d7thLJSMzrcwNf#t^|YF%gSxL5e?Bl-M>F3blX>4bWZ} zP2(-n@0)YZ%$ak|Jel3xx$paZ=iW1O=FAKP0)apv5C{YUfq(KL=UKc48leSlffY~- z4NwQbX&8lZI0pUj6Z{SnQ1odzbsAw4yayMd7_nT0E@+1a-%+@w9-e?x(GxURISG$K zt?#%j(+d0T<>GEDZr<3BRLJv z!@bZ9RWJ|oGhdsBc~Aw-a36HQcwCiFpx`q@GgQXv^^U+sSQK5Z8rtEz=!!j1X+QcX zRKUTAraNJY4e2HDdh~pG>mu{;aTKpF!qv7tEP~D`9)CXYb^qFBY_ZpIFMd7r8=HB{ zrIX9^ps~5fQn{Epc-+`hyL&(XvdqlW1l*LSEm#F-4UA1fV>*TkFl1n8C{|~eoN5?0 zuy;J2!Nju$Rt8{x3RdP|0UR|jxx=*&lRx0k-bXYrAC4PXbvxa9K$AZU)lMB4Qv>HT zw_m!Gzkki(TD7>7k4~$B;aeSPs}C8EI1*04HqG;47pki@)xJzU+|Q7M!#E(F z$=YgBOrBPM&Z3etUKT?b zwk5MvyDas#lw7h{i(;|<9eMpDcZjuz;FO_XuYZieQSk$}Tano#UXc5(Xr#hMF_5n0 z0(qDeHLOp5xPOSY!X`MM_!`g}^Em=2;wPQ-_%yCkz)#jJ9WXUf?|5jROj=#iO zZGT*vELoFE>&!7F)+T*b{-@a2mLozq=ai<}FDrxddH&FnB@a8xE|qe)qlsE;-A5U$ z+nkLYt{iOAWGzryXO4wptu_+Ul66e1HJAg+7IJ?#sI=CS)hpJnP+DgW*>JzoT1%Fk z>^qg#nd2_8R{LdX)QSU>vU}W_5W~49;eWS>$-fe`zu^?TFMiio13^)66^0k4y&hTBonxWg9U zHv=m}p8k(DFk)cu*VJAhG{TgDp))R)n2W47xK9;fGUY>(HXC@FF5A-DocW}&r48== zT#EU&-#*9V`{i)R*vw9sPUa*BAAcHKEW#@ewrf^L+=K6JLpiaIDtOJ(Q3Xq3XGCeA zM-@y{2|W=_7vXzokJVk)z-IU%y5a%2!hZD8seq57yPq!O&;f1G0##5b`J3dR09DWe zZSWHO5m#l8_uo`0Id~&(B(6(mCZ|Jai*-PxyK*7pFQ4kQmnf-~!I|?;Gk;A1p7x!o z?U}kssno(=A8Gn5`CE8jtWEJu$sSnaJ6;Q{gwI{3X>aO>-Z*C=Y=R%{<>&}Jkb#Lt zx75LUco)t`PtbXI2ipAfbQw6}yrJZX^9E>|Il^`XhGBH}5$9*1=+kl_5C{YUfj}S- cC>#C()fhn~YW4l200000Ne4wvM6N<$f-@$$Jpcdz delta 1419 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 delta 1419 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 Z_zRZcK@x@DTu=Z2002ovPDHLkV1j&Fc?SRh literal 0 HcmV?d00001 diff --git a/test/reference/fill-image.mask.rgb24.ref.png b/test/reference/fill-image.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..068fbb7c941075563275ab4b39f49278ea4807b0 GIT binary patch literal 1315 zcmV+;1>E|HP)Mqmss!4%Aev|KD1bi)7~ff<;yEHiKzUWBf|2ih~;u=n<<;iOE#>u_)Ab~&aO zzIB(Q#pN5=5W0;H=!apSX{s+n@JQ(PHpqH7Q&gJj%LuFw-F6Gg@K%U4)t5J6S?E0I zY=Uc{GgT`Sur72qmL!8+p%b*Y?22%NQG(Ax=VhsK2uh*zGfz3k$lyBchwab{txNp4;W&2^&LFjZL z-3cF9N)H9>A~X2f#_N8#+qH)(9JKK;80voiq0J?*#;23};YXWOyJ!ZC&FwDaU}o@| zv85gU{mj#4=IMIj&$oSMJ?1Q|F2+z9em5{Q?%@t)Le2RgwlT}(P?$Q6l zV0QW`F?t#%4gCh?3j8Gg;0Y%(Uy29hc_$i$utRLf;rs$6m=!fz^J^4^+^5gvA18K* z0uxReQ6O?p)vnam?pgA4`NvjHBj8gpdY@8TOV&eT^arJObQ}|-4=S~_WIZNE$CcXA zaY2msE48&`^@!0wmDg2+f&Ns%mFeM2mI8qb1{#7>#ghR7P&D)?aDKlDm&4Shu+l*>K)uT@j-J-=sFi zaxp45R!`QL7;U<*8|41(SEaU=tYI-K4_PBbHhfyCttD$zj6SW@j*cy2RKARK+Qos% z)tvucIPweq2G+PPAWi<&p9j|DIC6WbfOQEjSc)3Wiv@m1=$2GmQoM}h;?ALdzcTIVLseI_ z!MV^ms+F_(Uz!#`+Q!bBDtr|pO@mMk-S!4aTW?z9dsEk=|BX#u>#4vtr<<3agw2r* zHT}^J+u#$JwolMB9D=O{OmhAUF>P_a0lHz$?fpf6gFoORjQ(%8I8P)Ji9{liNF)+D Z_zRZcK@x@DTu=Z2002ovPDHLkV1j&Fc?SRh literal 0 HcmV?d00001 diff --git a/test/reference/fill-image.rgb24.ref.png b/test/reference/fill-image.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..068fbb7c941075563275ab4b39f49278ea4807b0 GIT binary patch literal 1315 zcmV+;1>E|HP)Mqmss!4%Aev|KD1bi)7~ff<;yEHiKzUWBf|2ih~;u=n<<;iOE#>u_)Ab~&aO zzIB(Q#pN5=5W0;H=!apSX{s+n@JQ(PHpqH7Q&gJj%LuFw-F6Gg@K%U4)t5J6S?E0I zY=Uc{GgT`Sur72qmL!8+p%b*Y?22%NQG(Ax=VhsK2uh*zGfz3k$lyBchwab{txNp4;W&2^&LFjZL z-3cF9N)H9>A~X2f#_N8#+qH)(9JKK;80voiq0J?*#;23};YXWOyJ!ZC&FwDaU}o@| zv85gU{mj#4=IMIj&$oSMJ?1Q|F2+z9em5{Q?%@t)Le2RgwlT}(P?$Q6l zV0QW`F?t#%4gCh?3j8Gg;0Y%(Uy29hc_$i$utRLf;rs$6m=!fz^J^4^+^5gvA18K* z0uxReQ6O?p)vnam?pgA4`NvjHBj8gpdY@8TOV&eT^arJObQ}|-4=S~_WIZNE$CcXA zaY2msE48&`^@!0wmDg2+f&Ns%mFeM2mI8qb1{#7>#ghR7P&D)?aDKlDm&4Shu+l*>K)uT@j-J-=sFi zaxp45R!`QL7;U<*8|41(SEaU=tYI-K4_PBbHhfyCttD$zj6SW@j*cy2RKARK+Qos% z)tvucIPweq2G+PPAWi<&p9j|DIC6WbfOQEjSc)3Wiv@m1=$2GmQoM}h;?ALdzcTIVLseI_ z!MV^ms+F_(Uz!#`+Q!bBDtr|pO@mMk-S!4aTW?z9dsEk=|BX#u>#4vtr<<3agw2r* zHT}^J+u#$JwolMB9D=O{OmhAUF>P_a0lHz$?fpf6gFoORjQ(%8I8P)Ji9{liNF)+D Z_zRZcK@x@DTu=Z2002ovPDHLkV1j&Fc?SRh literal 0 HcmV?d00001 diff --git a/test/reference/fill-image.traps.argb32.ref.png b/test/reference/fill-image.traps.argb32.ref.png index b94ed91d75d17e0ab8eea8de6e04886315cfc997..1e67073dffa3a60c559934f052b91b6077af0543 100644 GIT binary patch delta 1422 zcmV;91#$YX3$hE4Hh*VHL_t(|ob8-VY*j@VhM#+Tv4B=u+X5|CG15i~CLk^}CdQbU zXwd`;t_)%0Mh#I{#GtO#`d7thLJSMzrcwNf#t^|YF%gSxL5e?Bl-M>F3blX>4bWZ} zP2(-n@0)YZ%$ak|Jel3xx$paZ=iW1O=FAKP0)apv5C{YUfq(KL=UKc48leSlffY~- z4NwQbX&8lZI0pUj6Z{SnQ1odzbsAw4yayMd7_nT0E@+1a-%+@w9-e?x(GxURISG$K zt?#%j(+d0T<>GEDZr<3BRLJv z!@bZ9RWJ|oGhdsBc~Aw-a36HQcwCiFpx`q@GgQXv^^U+sSQK5Z8rtEz=!!j1X+QcX zRKUTAraNJY4e2HDdh~pG>mu{;aTKpF!qv7tEP~D`9)CXYb^qFBY_ZpIFMd7r8=HB{ zrIX9^ps~5fQn{Epc-+`hyL&(XvdqlW1l*LSEm#F-4UA1fV>*TkFl1n8C{|~eoN5?0 zuy;J2!Nju$Rt8{x3RdP|0UR|jxx=*&lRx0k-bXYrAC4PXbvxa9K$AZU)lMB4Qv>HT zw_m!Gzkki(TD7>7k4~$B;aeSPs}C8EI1*04HqG;47pki@)xJzU+|Q7M!#E(F z$=YgBOrBPM&Z3etUKT?b zwk5MvyDas#lw7h{i(;|<9eMpDcZjuz;FO_XuYZieQSk$}Tano#UXc5(Xr#hMF_5n0 z0(qDeHLOp5xPOSY!X`MM_!`g}^Em=2;wPQ-_%yCkz)#jJ9WXUf?|5jROj=#iO zZGT*vELoFE>&!7F)+T*b{-@a2mLozq=ai<}FDrxddH&FnB@a8xE|qe)qlsE;-A5U$ z+nkLYt{iOAWGzryXO4wptu_+Ul66e1HJAg+7IJ?#sI=CS)hpJnP+DgW*>JzoT1%Fk z>^qg#nd2_8R{LdX)QSU>vU}W_5W~49;eWS>$-fe`zu^?TFMiio13^)66^0k4y&hTBonxWg9U zHv=m}p8k(DFk)cu*VJAhG{TgDp))R)n2W47xK9;fGUY>(HXC@FF5A-DocW}&r48== zT#EU&-#*9V`{i)R*vw9sPUa*BAAcHKEW#@ewrf^L+=K6JLpiaIDtOJ(Q3Xq3XGCeA zM-@y{2|W=_7vXzokJVk)z-IU%y5a%2!hZD8seq57yPq!O&;f1G0##5b`J3dR09DWe zZSWHO5m#l8_uo`0Id~&(B(6(mCZ|Jai*-PxyK*7pFQ4kQmnf-~!I|?;Gk;A1p7x!o z?U}kssno(=A8Gn5`CE8jtWEJu$sSnaJ6;Q{gwI{3X>aO>-Z*C=Y=R%{<>&}Jkb#Lt zx75LUco)t`PtbXI2ipAfbQw6}yrJZX^9E>|Il^`XhGBH}5$9*1=+kl_5C{YUfj}S- cC>#C()fhn~YW4l200000Ne4wvM6N<$f-@$$Jpcdz delta 1419 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 delta 1419 zcmV;61$6qd3$F{1Hh*MEL_t(|ob8-TY*j@V$A5>GTC9|oHrPUoM8NV0D8@#q5>&eI z6~z_t5g&<5iEgAm5~J?asIcG>72{5Asw)JQjS{t$r~wihje#gcXi4m?&{B;;T~x?z zd;5KJ?wL7ruFfyB`|jNTf4+0i+%t1#1_FUVAP@)y0)as35Px|VuZ6{MHCzjAPzAM6 z1;8-mU>H7w9ykpBFyPa#4;tZK=!Eky8nX<*8?Y8;`EG?<7Qm};I(~wtDud7gm-}v) zO(JN81NL$>x$J`_zMGkp2-@HWmubo`-@tO;O)iof;g_`1lwbBkv+uUYpaQn|NK<~f z52pFfgH9_9`hU*USot~2eSZWUz7sT|oQDT|r=!2AfE%fEpun5+{Rv0Q)<=u>QVYA>^eD^)D{=%>(7Ip9_oQ$uy2d3L^eH^Obcudoq zpw5PL6TBZ&`V)`8uX5;)7*sjIN?c`P73pc zvANq*@e{!-#+Fv5V(DL&nR)87)IFJV6Z~OdY+#CiUi(y4@)OKR$4wz-!zlxkcf0nn%D}`SsBrB=qZ;}&pCeH1&Ou}_>(cM(?wd>_{HeL! z;ZA;orhlD-neOD{bF0C9(BwjR8l2FC*SZi+#T@m%YwN3dI z7+t8;){-SZt;zo{8RVcCU8U64k~K$+4k@)W$8j;L{j+PyayXahgPa)E-ePFU%G6|D za(~W=(WJ@B$Q-dP{uZN4mD-tDT#^+AmAICylIy}{vSwHnP;{bO`5EJFb;B3;FWs(2VP0IW_lpi2PJx%9Ywnr2oyUFasiO;o&2;lw7h~Y{FKHN}EKb@cMon>cSAY@AOWm=HK$g zF5M+ZE455*vo3jyCb`qPqz$GS?259#m@P8c@^Q0u)x>PqJa;-0Uabj_z&Ekeon^!L{nkzzejw276|5DQwq#%OGEVx1-dVZAZB)1uK=1 zGqB=oqf?{VaW`M2W@xF|0Y!cKx)jT-G3cj8)7(Ng#zq5AW980N{6z4Yv85HMSQOy>10aE;45Q`qkqr=m9{-JnC*YOSiEg0r>LU}p0>0XxY=NMJfZkJ zs$h)b4#D^q)))16Sr3nCbDjmuZtsU+jFIGcl@ss+w8Q)<<}IpWF|@-DZTYNF-tqpM z%BKvvifxJO@{I4~6y}bi4v2JDj>0_OIgzM`gT8Y#R=P6MNy${eX5X3GkbkL8N~I2V z`AE~tCGmrrOawPTZ(3>UF2RK=1-K5rcbTToOK|a%LM61>yEjK*8?s!&|w{&3rVbv4PEEKO~pr$VR3YXP#as zi0D%zMBfD+_w0_o@KMkqLiCf}(-(3;^?;ew7_ut7n%Ed^98*rb5N3g#VoV3XsawhT})V2k5?e0<-L1GYFE zX3GI}2DUlOKqx=h=4gnm11KMu;wXcm>|lz6$F>5XY+%ZRd;usunDW?>tw1OpnBf>- z1ZodvIOMjK0JR1)9^wl@&B2UET(%OS#$b*kd@-m$U|&Q;H=>(yAPbRLp0Rd7B18|% zn?&zb-wi2P*V2&elGN?abUjT3eZpML9fMWTKwS$rZ zJS^WNd#@^QTbF_YY_`~2)v?%OZ#6}0i@nnntu6LWa|&?3BGl9td!s9}XN$ehm67O3xO1*HU`6*t?d~dT+5eEvIFRy(uL1v&G&MlG+w~Pgst&*jvJK zw8h>Mnzt?Xj?fgxFHawl0^Hdf!c&s}cK4r8%@fE>?N3;8U|awI002ovPDHLkV1oTi B%fA2s literal 0 HcmV?d00001 diff --git a/test/reference/fill-missed-stop.mask.argb32.ref.png b/test/reference/fill-missed-stop.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..477eec9a50e693f73d11634b0860e15ee799f15e GIT binary patch literal 455 zcmV;&0XY7NP)s!&|w{&3rVbv4PEEKO~pr$VR3YXP#as zi0D%zMBfD+_w0_o@KMkqLiCf}(-(3;^?;ew7_ut7n%Ed^98*rb5N3g#VoV3XsawhT})V2k5?e0<-L1GYFE zX3GI}2DUlOKqx=h=4gnm11KMu;wXcm>|lz6$F>5XY+%ZRd;usunDW?>tw1OpnBf>- z1ZodvIOMjK0JR1)9^wl@&B2UET(%OS#$b*kd@-m$U|&Q;H=>(yAPbRLp0Rd7B18|% zn?&zb4}#0zR!-R!T$S`f=olX+Ay>-;6cnpnedL1bnxE4;7JA?Ka8}rP`i8f&Rpize z%+7DCurZu#@K{<+%)elHeosV={d9x((hAq^6>rw}USm7Y!{U{tV~kL|kAjf= z={dKyMn5W_Z#nDt1dobO8Sk9+AO2jtlmBds7?Awhq6Z|WwzvVwr7dwlvc07YNbVQ5 z>U(ClN5w?;Y;A?g7a%#|pa1X8<`38AKk%-2SKoA((dS^Q)08(o=Yavr;OXk;vd$@? F2>>EBtM&i@ literal 0 HcmV?d00001 diff --git a/test/reference/fill-missed-stop.rgb24.ref.png b/test/reference/fill-missed-stop.rgb24.ref.png index 3f9d2ad4ac112a34f25830a2d1a7125d003bf7b2..2e663f05b3387da160b9da052ac9ffb24314f030 100644 GIT binary patch delta 328 zcmeyz^p9zReZ6&=lc7L!V&SCNiy7gWn~k?kT9dMZ<4KJDv2Al!E3NwY;p29Of4g7# z)xPkvEx$aM>p^h&+sY}sf~%5V2p!|YB;;zDfP!MRtB+hzUGsBV$3pKLAI=IpPv7u% zwu;>Pg4y|P6*h)*4IWFYiTM{S&#&)^sIi}J@LpQs+P&h<`rd17=XqGX@)nft-+BMK zx>;PG+MLg&9dD=q5svS^QD-)#;ApsN+5D%%dcRH`c{jV}P-%SQjLOMA8Xxxx-Divu ziuX|vl0QA?*4F4pKUt9Em3tx)*_Bq#jy|GnA#;oAHM-WBiao9;6D987hZ@}}oJ0}yz+ L`njxgN@xNA)3u#1Oet~G_EbIG<#6t6a?a_UQ7+jwHGiTR{>PRs zw<}pbZ}&?-)(0tLJGg(kfax>nk7u0=y>EQ; z73vS)an{_~X5I|H86SCtyVZAGt~Ynn**D*N#&=$U?DsowPFKAq=dU93b!kWM@jLHd z3rp*}3!nRGb>y4(zs~ipIrh?CJ07hT+I{{Lr+95@(sy6Ghr8B0oY~{4HswcL=X(ad zPJK0j&i+)tx3_dZ?mjPbw$?+%rqbm5!s#FWT)fks=F|-&tDL3-NiV0xKr+bDX+4l~ zcG?Xj?{mt!7t6;9&FXt*XCw3rNP7HV{`cnW57*2;sM>tDKltv~-Bf|)VPZQNfWXt$ K&t;ucLK6UeWt|`Z diff --git a/test/reference/fill-rule.argb32.ref.png b/test/reference/fill-rule.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..23e0a3a8da34355f5b0331a495010e6ff8d1997c GIT binary patch literal 2065 zcmV+s2=4cZP)=R{ zPZM}Z;6DOuwfZ#D#&wx~1;9!GPXO32GTE0z>@^#rkIFx1ZEt4UauMdx{FVvM-Vtf;I6|Y zyi4Gar_WDn9`mV>PopOgc!9tlH52hRfvr>c+*kAaeZD@89>ApxN!4WZ&Ya{v|0Zy_ zTD~OBs^VE8DTF?cK3_8a*Jt#Zr62nM*gcD{s|=_GxsBs;Zp@ z0NV$^wW=rPzuN)ecgL|p_%sZ|=poE<*3ZR`BV|(2&}TzdEZzd}cI+S$$263Hz(oQV zW5(@+8e=L(sbbFt$|5z|lr0<#3} z7lgb|U^aGKDUq6nnwRNU0jw^3zdHY!;Z9N-YMzW`J$S4yj~}LCQwXdkaHphx@(xGe z=|%;np%4W2mxwqtYlY%KiW+KNrt6jxTV~ua4Vyw>1%ZW{cl84GzKK*|8VW&RXN`zM z+Zj7f&7`WK#&?Iy5@O3tJ*J@q1g<)~tFOk6Q!}Qa0L-=>OcHTu)`O>nlr_}0OurfE zv3^?o$I^W>hnr44F%v*-JPqD>g)5`CUp%pEz`rgJ6EheZ#hY8sA)1zbF0B_ zPmE$3HigUU?p#fEeO{Y%K|?K{jN^58uBfihYnkLV)G`^HEETrQWSE9cVRhY|tM$G< zuPYjA_+;FJX8*Iy=05sNCp6SB86}p8zArPTVN*D{?#|VETc2kd3PHEJJ6BUzpVtOm z(r|cO+lQR)9#tcQY;M#iCo5(D68IpphI_`3zMIwnyc|=*MF?yqa3ex6soD*Wommq} zL$NY2`jwvr(XbfIEP*o$UTE!hh80(@Eo&%VAWOHx+@Km3gBcL`h`<8{FS<5+kZUtg zqTzATnV7|XT!V(=LG7Z z400=ma<_`aG%NWCK9_4@gN`)GpX!OF?$9qDXhT{Rg#_aT}*b}5JyG`JL zn1J#c25V8m`qn5>H7o|Xk-!fMCQ4}gp1=mh8U`(FVDrL@pc)nfo#E(Ne_gXV0yD}r zJRLH=JjTz`qs{46Yq$v0%-Z;80s`Wp;gJ?&I+BuxBQTw;&Geaoz)aAv z)lK)TZwjDR!$qh+YtuXv5SSVbTW?3g^3pu@8ZJVeSsVFGKtL)qJQ^X6qp4~*0`+8V z!es&iGp1qdE$p~dT$Eo4e z0Js)${Kn)O&J#G?_SpHD^QmjN2;=Ne8CoZL5Ee8%NnlM2Wqfd^bC|XRXqr& zp+v(U32X{D-llwvRyAy6pR8}sKxtI_snT^xQ_+La zhXxvcO<-+}-?aq3>4Sy5B~8wLOcd<8{V!_ScU`&htN zG8zJaWQ&X&%=U;#?zKsxkE3ZQ1ZA2BjqIzS++G{;W=SD14TWH{wrZ98Dk!tpCW&*F zO+x|Ltl^~7z6v(qYoofp(KHl-qh;zo=C!Ya&Gy=~UcT>xX($B!YZs^9SHbD`+NiG2 zGYtixf9;~kz6$#9wNYE+Xc`K^$(z25CfcQn{@uM=+YIl6X($BUYZrrbsiI$ZFO~Iq zrlA0ItGjEZOBLO^d#S6>GYy5{ueqx>Rv;#z9qmo@pom ztLyHfcd251#z9Seo@poq%j@n`b*W-?#z94mqiHAvmmk%jvP%`qGY-Lyu<*e&6o8|L z*r@MP#pM}?=;th(hH`-o>+X{3QpM4XL)7{_(@-v;<80&1j{tBf;}Eqz&os=C_-MTa vVD|v{MZj0941k*eUPSgc#Kbf-3{CtGTiF7E9$~k`00000NkvXXu0mjf{^i>^ literal 0 HcmV?d00001 diff --git a/test/reference/fill-rule.egl.argb32.ref.png b/test/reference/fill-rule.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3683f7daad63efdca44239fe9e8a7539b17f560d GIT binary patch literal 2261 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 literal 0 HcmV?d00001 diff --git a/test/reference/fill-rule.mask.rgb24.ref.png b/test/reference/fill-rule.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..55486e6299584a4a846014452adb37d871f6b419 GIT binary patch literal 1803 zcmV+m2lV)fP)k{A*a!mAM}j>8*y)TsK$`(U5L?2f}5$>~S< zA>QytLRtrp;6GR!V|XLKQtjSv!ZKJ6d#t8*9Nx&UR4e^f-xo%59NtJsE8uT<3Qu7P zmdg%rB&VJ2b!x>9+2M_X=tH>IyD&O&4-Qrj|D^X2pH>fVB&rFxXtK-~VL~~4Q}6tn zl*1c|>IFEVx6CJCm2&viviYwnhc}Ye6x^v^<2x{=G5m|NA05#c-bhrh!mYApUV<%p z!*`c`f4AQ7MsjN9w)$6EGuyQe{)Oq@Z%)HMO|mRCeNer7zi%@9B&>loaMEOWBRPH5 zwY1mZTGz`j4TpaX-xv;WB&6=#R_h|U`=WYaw##vNBRTD?xW;~VO|H&%ISy|mrz6#A zjaGW3^b?e?;f=!Sc`s`Lw!)RNU%dja!(Ynj9EUe*)W}r>Dh9)86TApZu?`(`y7OoAu=1_F+7G1vCl+I(UIfq-jgs2qc9oe@G+DjGQin( z*6eKTGZ9mU$c({*HueJ;i+w%I$`O zvCl1#(m@t|V=1<*y6$EfA_H8meuH0*eQtr2Au- zcnmY<_i%AUK5qIaF4J*YX? z`*JBv-4S2Ng;r_b&OdH=d>Vi$@+nWp1x`gm?q~|`#$L;+xEtna0Q$%W{2lZ_ROCWw zrqaqYL4wGBD};0^lY%05&LgQ*nko|{h3viRPhD*&fLth%RGMxkC_J+F2Y($*0J)>M zsWh`pP)Otu)%m4e0a1_(#Y&~wWP*Yr2kN+)PX@V=a4O9;6BGdXaG0YUP6@dqnN*se zOpqr%Lk`p#JCPo8q0Mk9ZT2D^Ms*QcX_|Ew0e2`|Ab z@JoQnr{PcdKETW#G_YORCDLp)ZXut9)&AyO-F}u_n#fx1!Y+|ucXc=N1=#3g&W&&( zVPvTOuZJV_qepk3G{ zlIpHjAkP`@x*K3_7?45RXmbyb=Afh0$cx$^Lw3R9kRXGhdF~P(4Sz=sM1BM_${NB^ zn5lTwcbdpH1u@oU?4HYuj7P(nR3fA%)xZ~QKDlL|Gn<286A#GO%rBjs_#k0kZ7-UGh_W%y;c9i#SGelOovwnL372S@)-ff1+Q0>l!=mAvZl_b5}43VM2 zoekFmSd~|j^lmdmE^%iCdH_rFN@Ct^hRD$8&Pw(G_UDyk?CK1Wq4!Qo@;!jh<(0hL z8)~33MDE-jEn*K~cV0>0&e$0uL))EAp$G6;UMaM9n;|m5tlt}8xoI5Ehxcylfo!}D tEW!@>&HP9qbOYXi#lT0&5V_G1>wia4mMssoQ~Ce^002ovPDHLkV1n>HZ7Bc% literal 0 HcmV?d00001 diff --git a/test/reference/fill-rule.rgb24.ref.png b/test/reference/fill-rule.rgb24.ref.png index 704172fdea77c376fc58e877c58bb5be544cf793..55486e6299584a4a846014452adb37d871f6b419 100644 GIT binary patch delta 1770 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 YzaVh6&I@{%=l}o!07*qoM6N<$g5?M!9{>OV literal 0 HcmV?d00001 diff --git a/test/reference/filter-bilinear-extents.egl.argb32.ref.png b/test/reference/filter-bilinear-extents.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8fa420d42a2bc031125f61db4976e02027b122 GIT binary patch literal 1217 zcmV;y1U~zTP)|G3RL(PGYIvT+C0H=`FJ(Ji>Q)0)eQ|3Ilec9XSjf z4UdW^G3S4CniixR_8pkq_H1VM9iHJC1X7`)&e)M%;Lvld`L6jPcm|d}6&N8v4>jno z_Us5x@C-jeAV3w&h#hDz92^gZC(W~*^N1Cv3pg;KKkgaV69vfG5m%D}A!#M8!d5hf zy2dnA7TqFSxU?-^M8XCL_$ZjM?17dHRuYh(4ZvkE01UP1I>g|Of_N8 zIiU+;Pfq+wyd+MEZo(yeA|_Izl+VG8$Mn<<#$Xf%>WtCYGy609K%J42+%W7p1DbRp zM_wYYfwxE(=_5W6A!YJ(50;S$9WWm2uo^2@8d1>vLw$=#dr%N(c)@cMK5vCXM7|Ck|h5JGvl%R)`(-z z(ecnw)r5v&-YZ5!uuGU28oa?PyufGth#!dlGiDi)(1Ci^h{$2!!SGn~-SA}5d(QKX zFhoiI#<1hO!|gd2E)`J`AZFr72*jSCKQE(9XfQX8@EjFSnjf0y_L{xk2uU`C9qy6W zM_vmTL4uS?BWWP@q?)8i;`1`9j2W?lR&o#=1y6!!$kkYG2#O>N%Gwc&My$Uh f-Z}rTKfC?~DKNFqOLxHz00000NkvXXu0mjf-`XBZ literal 0 HcmV?d00001 diff --git a/test/reference/filter-bilinear-extents.mask.argb32.ref.png b/test/reference/filter-bilinear-extents.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..797e7981f2c025e9e4207329c423528ab1b5588d GIT binary patch literal 1210 zcmV;r1V#IaP)&a%FHax z4)6fSWfzDBZ7`BnuuB{!9!4GUeTQdw27y#)s1xnP&T|-esQIq>Axi#wPZ=igFhC9Z zt9N#UCwPXRAP}GuW}+SGE*vaJ!;|J&mi&g(1uPiQAKw|*69vfPh^t9~kaUtx(^fQw zy2dnAExJQ?$VD)UvJ|Z;`XTb_{NG?15zztd&=%dI8gzwLXi$>wmB%ytk!D6I<{H1} z9MKuECq;fmULvPRKVu^<5+X5@^XFj3VFv03V=xK>b;4-cGy5}pPo0pG)G+Qj1Dbdt z1zrNLp0_|B7y`}{ASTj$50;P-?J^}v&!~i)QKgIxqal3bGNS^)(p&n0-q0&7xS22! z#b;nMDqu!hwP?h|!E?B9s4jhv6D8?Cm>EaQZ;dz( zJXnqmRgG^L%U&_9!^qg+3{K$$F5xEJNN}GqONfZ})I}o#hmi-vW6gKNQ;XhnE*)VA zw+7i^_nZ@#ilFci5@Eu7!hqMGmr+JEn43m8j*2JE56yFT&0agAG{_G7$m=7onTsSs zOvH&e5(i>UR7CN48Lt{4=p+ZhQSc;qmi+9H8KH@#BT9qpIY09H7k`6=Jd-B!NWPFP z*^o6!e#mU;k+Q_HUoFF)bRmtzKnR4$n7CvvU+$0bEN#Kc@Ns=L5+d>vcr9Qx*5DK#;!G0o z0{?8mJVaJE_7O7=4u%`2@@iy6I%>v7C@0;sVa$STw>D2BIai9pv1X8>CE@H;UIWH9;hJ0{EE_@FQWs*F-~RJD>Vx ze+MSEzP_{T7%mW+cyEeWG%0Qe?hl6VyT9G~yJG!;Apt>_Btc#~V$q28cf>pA|Mh3r YzaVh6&I@{%=l}o!07*qoM6N<$g5?M!9{>OV literal 0 HcmV?d00001 diff --git a/test/reference/filter-bilinear-extents.mask.rgb24.ref.png b/test/reference/filter-bilinear-extents.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..797e7981f2c025e9e4207329c423528ab1b5588d GIT binary patch literal 1210 zcmV;r1V#IaP)&a%FHax z4)6fSWfzDBZ7`BnuuB{!9!4GUeTQdw27y#)s1xnP&T|-esQIq>Axi#wPZ=igFhC9Z zt9N#UCwPXRAP}GuW}+SGE*vaJ!;|J&mi&g(1uPiQAKw|*69vfPh^t9~kaUtx(^fQw zy2dnAExJQ?$VD)UvJ|Z;`XTb_{NG?15zztd&=%dI8gzwLXi$>wmB%ytk!D6I<{H1} z9MKuECq;fmULvPRKVu^<5+X5@^XFj3VFv03V=xK>b;4-cGy5}pPo0pG)G+Qj1Dbdt z1zrNLp0_|B7y`}{ASTj$50;P-?J^}v&!~i)QKgIxqal3bGNS^)(p&n0-q0&7xS22! z#b;nMDqu!hwP?h|!E?B9s4jhv6D8?Cm>EaQZ;dz( zJXnqmRgG^L%U&_9!^qg+3{K$$F5xEJNN}GqONfZ})I}o#hmi-vW6gKNQ;XhnE*)VA zw+7i^_nZ@#ilFci5@Eu7!hqMGmr+JEn43m8j*2JE56yFT&0agAG{_G7$m=7onTsSs zOvH&e5(i>UR7CN48Lt{4=p+ZhQSc;qmi+9H8KH@#BT9qpIY09H7k`6=Jd-B!NWPFP z*^o6!e#mU;k+Q_HUoFF)bRmtzKnR4$n7CvvU+$0bEN#Kc@Ns=L5+d>vcr9Qx*5DK#;!G0o z0{?8mJVaJE_7O7=4u%`2@@iy6I%>v7C@0;sVa$STw>D2BIai9pv1X8>CE@H;UIWH9;hJ0{EE_@FQWs*F-~RJD>Vx ze+MSEzP_{T7%mW+cyEeWG%0Qe?hl6VyT9G~yJG!;Apt>_Btc#~V$q28cf>pA|Mh3r YzaVh6&I@{%=l}o!07*qoM6N<$g5?M!9{>OV literal 0 HcmV?d00001 diff --git a/test/reference/filter-bilinear-extents.rgb24.ref.png b/test/reference/filter-bilinear-extents.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..797e7981f2c025e9e4207329c423528ab1b5588d GIT binary patch literal 1210 zcmV;r1V#IaP)&a%FHax z4)6fSWfzDBZ7`BnuuB{!9!4GUeTQdw27y#)s1xnP&T|-esQIq>Axi#wPZ=igFhC9Z zt9N#UCwPXRAP}GuW}+SGE*vaJ!;|J&mi&g(1uPiQAKw|*69vfPh^t9~kaUtx(^fQw zy2dnAExJQ?$VD)UvJ|Z;`XTb_{NG?15zztd&=%dI8gzwLXi$>wmB%ytk!D6I<{H1} z9MKuECq;fmULvPRKVu^<5+X5@^XFj3VFv03V=xK>b;4-cGy5}pPo0pG)G+Qj1Dbdt z1zrNLp0_|B7y`}{ASTj$50;P-?J^}v&!~i)QKgIxqal3bGNS^)(p&n0-q0&7xS22! z#b;nMDqu!hwP?h|!E?B9s4jhv6D8?Cm>EaQZ;dz( zJXnqmRgG^L%U&_9!^qg+3{K$$F5xEJNN}GqONfZ})I}o#hmi-vW6gKNQ;XhnE*)VA zw+7i^_nZ@#ilFci5@Eu7!hqMGmr+JEn43m8j*2JE56yFT&0agAG{_G7$m=7onTsSs zOvH&e5(i>UR7CN48Lt{4=p+ZhQSc;qmi+9H8KH@#BT9qpIY09H7k`6=Jd-B!NWPFP z*^o6!e#mU;k+Q_HUoFF)bRmtzKnR4$n7CvvU+$0bEN#Kc@Ns=L5+d>vcr9Qx*5DK#;!G0o z0{?8mJVaJE_7O7=4u%`2@@iy6I%>v7C@0;sVa$STw>D2BIai9pv1X8>CE@H;UIWH9;hJ0{EE_@FQWs*F-~RJD>Vx ze+MSEzP_{T7%mW+cyEeWG%0Qe?hl6VyT9G~yJG!;Apt>_Btc#~V$q28cf>pA|Mh3r YzaVh6&I@{%=l}o!07*qoM6N<$g5?M!9{>OV literal 0 HcmV?d00001 diff --git a/test/reference/filter-nearest-offset.argb32.ref.png b/test/reference/filter-nearest-offset.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cca9a1dc45ce9e85ba2028a3eccc62784cf71c1 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}hPZ!6K zh}O4P4Y?Q;d0Z~e+&h2yT;^S^zPnh@HXZ#RJFB6w-EYydV-l03#I;Vwcz(`_Db4l% zv}Nz7b~(>!y3vP0qz-hdDia!Sj)&Hpz6SY eOe|gPxaUgi>y7hPh%}idG{#6M*W{!8$y37^k3Zh?plMJbdXptDft`TXl P00000NkvXXu0mjfQ0u4y literal 0 HcmV?d00001 diff --git a/test/reference/filter-nearest-offset.mask.argb32.ref.png b/test/reference/filter-nearest-offset.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cca9a1dc45ce9e85ba2028a3eccc62784cf71c1 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg1SGwrdiDS*wj^(N7l!{JxM1({$v}}hPZ!6K zh}O4P4Y?Q;d0Z~e+&h2yT;^S^zPnh@HXZ#RJFB6w-EYydV-l03#I;Vwcz(`_Db4l% zv}Nz7b~(>!y3vP0qz-hdDia!Sj)&Hpz6SY eOe|gPxaUgi>y7hP!y3vP0qz-hdDia!Sj)&Hpz6SY eOe|gPxaUgi>y7hP!y3vP0qz-hdDia!Sj)&Hpz6SY eOe|gPxaUgi>y7hP{MH8)v80c-<8$sotdi!4YWeL zlXY5J0#lnk#iwa{wuD(ymCWO_sDgr|#BKAO=Q+?cO;Df)7tEvS=y)>s!aA*Zws#T2 zba*fldHm5I&Xwus-lz<*(~9SV%g!QF4PPZgNy*%jsEMcoZf5ElJg68UD0;X##=Xcn z-nm(r=eT!Omd#*yJU8zryVnczTI3A2#)8YqpVtr(k4Bbxk!h+82!+I0s2$_naL7Lj9wPpc5*q9(v zH+*_?b^pMZ_t&#oUTxkyKFH_p)%}Cj4M*E!N94oz6>%`!M9^IG#uJcBXsmHe)KOf> zp6)h0QH&aaZ>i_@%07*qoM6N<$ Eg7Y@+ivR!s literal 0 HcmV?d00001 diff --git a/test/reference/filter-nearest-transformed.egl.argb32.ref.png b/test/reference/filter-nearest-transformed.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..be4a22a30646939935b6ba7079d8017bdeaa2178 GIT binary patch literal 460 zcmV;-0WO%Hk7W6 zwBXM(CPG8){hD!cU1?`=a!#I^lL2sdcdyOg2=B*zhZp_Br~LzmPOl?1{%6j{AJ&$w z%GJ91Z53vfszm?q0YCE}MNtF=a&W=CG!>B=*QVC<-efDSJ`HARC|iy4a(LC+Vehbm6k~dFovMla*zuzzAb?5qSX?f1+^SL8(bk-IJ!%YN@H7>jYVhM#6j)^*o3(@Kp zR7F*T#3Xq^95;abya*Z!a?9P#Fw@!T!bu>#=zk5NIe9zVOCFAUUv`^&p9hzaKspl}xs^Kr0000{MH8)v80c-<8$sotdi!4YWeL zlXY5J0#lnk#iwa{wuD(ymCWO_sDgr|#BKAO=Q+?cO;Df)7tEvS=y)>s!aA*Zws#T2 zba*fldHm5I&Xwus-lz<*(~9SV%g!QF4PPZgNy*%jsEMcoZf5ElJg68UD0;X##=Xcn z-nm(r=eT!Omd#*yJU8zryVnczTI3A2#)8YqpVtr(k4Bbxk!h+82!+I0s2$_naL7Lj9wPpc5*q9(v zH+*_?b^pMZ_t&#oUTxkyKFH_p)%}Cj4M*E!N94oz6>%`!M9^IG#uJcBXsmHe)KOf> zp6)h0QH&aaZ>i_@%07*qoM6N<$ Eg7Y@+ivR!s literal 0 HcmV?d00001 diff --git a/test/reference/filter-nearest-transformed.mask.rgb24.ref.png b/test/reference/filter-nearest-transformed.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..24adf8bc1800ef2ff7ecb493bcb34894f884cbc5 GIT binary patch literal 514 zcmV+d0{#7oP){MH8)v80c-<8$sotdi!4YWeL zlXY5J0#lnk#iwa{wuD(ymCWO_sDgr|#BKAO=Q+?cO;Df)7tEvS=y)>s!aA*Zws#T2 zba*fldHm5I&Xwus-lz<*(~9SV%g!QF4PPZgNy*%jsEMcoZf5ElJg68UD0;X##=Xcn z-nm(r=eT!Omd#*yJU8zryVnczTI3A2#)8YqpVtr(k4Bbxk!h+82!+I0s2$_naL7Lj9wPpc5*q9(v zH+*_?b^pMZ_t&#oUTxkyKFH_p)%}Cj4M*E!N94oz6>%`!M9^IG#uJcBXsmHe)KOf> zp6)h0QH&aaZ>i_@%07*qoM6N<$ Eg7Y@+ivR!s literal 0 HcmV?d00001 diff --git a/test/reference/filter-nearest-transformed.rgb24.ref.png b/test/reference/filter-nearest-transformed.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..24adf8bc1800ef2ff7ecb493bcb34894f884cbc5 GIT binary patch literal 514 zcmV+d0{#7oP){MH8)v80c-<8$sotdi!4YWeL zlXY5J0#lnk#iwa{wuD(ymCWO_sDgr|#BKAO=Q+?cO;Df)7tEvS=y)>s!aA*Zws#T2 zba*fldHm5I&Xwus-lz<*(~9SV%g!QF4PPZgNy*%jsEMcoZf5ElJg68UD0;X##=Xcn z-nm(r=eT!Omd#*yJU8zryVnczTI3A2#)8YqpVtr(k4Bbxk!h+82!+I0s2$_naL7Lj9wPpc5*q9(v zH+*_?b^pMZ_t&#oUTxkyKFH_p)%}Cj4M*E!N94oz6>%`!M9^IG#uJcBXsmHe)KOf> zp6)h0QH&aaZ>i_@%07*qoM6N<$ Eg7Y@+ivR!s literal 0 HcmV?d00001 diff --git a/test/reference/finer-grained-fallbacks.argb32.ref.png b/test/reference/finer-grained-fallbacks.argb32.ref.png index ea50762784ddebe9f41741bbe71e9868f6dbad21..896017945c7947e388adc0e9d2b39705de1334d8 100644 GIT binary patch delta 1028 zcmV+f1pE8p2doH?Hh8`G zJOUIHSm}}yXlSqyvQy>-qC_dya+3mLcL*UwfdqvmYzZRFm*Ng)?7KUA=HC5t_h!D) zH23bFbLQKfbIzPSkdV+mM21*F)O2bAO?s{RDU`)5Q9jW^^$v1USkle z0U|z))!x5oybH+d zu>&0{^yBzP!+&C424uAyTAR!m#kzrv2Ng0}O1hfJ7>_GH&oE+?jc_z+6$N|fOQGvR zH-)YVeVb3{?ZpCOw}6Np#6nFgsR3RRGADFb=!1~F`C$tQ?g&H1SgvQlFzdYG=Hf(e zTqE$3kb5UcIGS&fK!Uqno7*fL8Rvu!tI0SNobB4=x_{xno;v_b1TwMDDa`;_Y|5yv z;II2Wz!#ybkLQ%9>o=!c_+&f;etlDRjJ*FcTrnrom%@+Mz(xw05CB-j(>r&gmpa}BgeUaEn5NHx$lVDSD$v$O`< zYX|BS`f=PsMrjSyK<@O0)&k}01~P&*P<5Gf)qe@Wc^5IpiY7A$!Gd77fQTK@eGRnr z!;;(A-|>0ze*=GJ@Ud-M5;{X_V{%AsOved$ zsf}qwVQOP4QNC^%6*2FRVtHl`PX-vn1egc!-4nKq^;f_+O9%A1)srVGH2O&DUuwADa=2>jRI8mPhh zN4@5~cA!pSY#YdBLp7IOi5YI3LDnKu+khU4lU{R z4RWk7EjpMyKxcgH%G@_dSAQR)*GOH*uo_nYKf}xujMDhG5j(oXGelL8?+Y=H1OGl1BE`vjg@o>SIH;ys) zj^hKNSgp66*N%3+jbMD*A-^VHa8&C8TiY6VY~rpu=GElWbO=*161hMO`-FVwr!Bfd zRE*W23yTmrOn}+J zu~HCgb&JX>&|XmzBhv{%kU2aAjs?_#$o7mL!eP~%}l-br%wqn#@pKs zWicMCy?<2xnt9D+1SpGf2jF{a&pXtM-QNN785cf%#(xucYK=I6+=5)3){0558Cnp? zYLl;DqSBYe+Oi_BJBmnPOI+C*D1l9j5KH0s#3E|viq^Ndbv|3?8G$8%HGu^ouM!Pn zmanv9;@-s7@pT#B2?8OGmuQO)AZ~;2;>ikvNyVW0hK!;JdBkU+y7BI_c1ympLzx~! zAxG|#Uw=FUEg_zP_5rn8Z@aD?2EOZEKubZ(b%E__Jp&bp+vyBc$LBsrSrv@ulz zHC{?-TG}!3Xk$`*zQt|w1%phCV~aMXT8lQO5`W@P_!_496CTmVqzxKvOq$@iK#XW( zQZ2`5+&iUbC?UAw*}ZchxFz`I4qqK(T$hb0p~1OR*qGezkRn!!Yp^kG+Jqp=Hl}pw zbVHy~XDm&<&n3+}|EUa*ZbjGr^l6gk5trJSoXXzuLlq&d>&5D_7ra-E%?cFQn9`y1 z?0*G5-&}D*HYTS@aB4Ot7cknGD#0W#nn~aTfm;EeZ*d!ZP7}5SlZx?7;2SN4oRDiW zHl~aQ3$~CWcgb%|XP|QcZyh-%bq4CXmnzp9DS% zcqU6Sa0KfXq bCBlIJLmoA|VL7AF00000NkvXXu0mjf3*fx2 diff --git a/test/reference/finer-grained-fallbacks.egl.argb32.ref.png b/test/reference/finer-grained-fallbacks.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22f9cc6174b85acd2dbeb234ba003e04ced6e2d5 GIT binary patch literal 1128 zcmV-u1eg1XP)?3fw#GXNnKM|{lB?DjG;!g54hT$V@Z4VIdSMXWH-Hq^XlCLqui6O*8 z#G8qHk5c@LTfpM5A9?*5;PXVANjp@NV%(bIKOY2svxs{)!dC3fNh-TQ=xQQj95sBN;f_((!n;YU@XVptg{}x) z6}l{RAx~WG#WLcaM~HpIa!n(t0fiuBN$7^qQy~@l(_JLEE({T4xt#&SsPj|TSCXE% zMoT(7{!p_fe7b7jpCYfpgz9zQI{Kw5krE9qWsiqz!J9q-GS3MkB>OlVyw7dmu37uww9*J+X{1smNeV;TtU2!FB4ZhU&pW2ZZ1OdDlF z2;(%@y8 zCIBMa{DR+9UBp zeG4yp<<8%Np9GgekGfIZg(+kDL-1}QpE(%x@y$~X^etec2}i7$w;bq4f!|)bGN#hU zyweM)GZ8FYCJFAMHYyPGT&++DaN_*ui);)&~~IHL`; uYTOO>ZQwoNHTU(uz?}?!Z_}3^6?hKha<3V4yy>O@0000f3y1m(tv~_nm}3*7>d-1g(xFYTTbxCAAuBr zB9SU7iK!CdZQ?R~016PRXtzO;5~n0m1O;V^#lljYlVV;ri z4GM^ObL@E73rnu(rR>!PF*cC#9Im>PnAb38+QUSiKe?${%~$+D6m z#0$iS741!{#McXvcMhI-UVjGowvIrosFRF)3(WbV;BOXkeLjFgk83L;-nNFGOXdFp zdpm~tUwg#Y;1_7@FhXo0Mu=C2Wd13!RYdL(pIW1IYpt_l6#E7;elD?*BzNk@$ejyV zbk$KYo_2hmc*n>)ig%Mnkx|sVFSILkUFe$7g)uiO`q)4`%^>0su@NYf07w)yeW5!- zFNKsCFULsmqo{O;^oXm@Z``ObGT8iDwPdZX$>T+k%PU$c>3Rw;DZAL0@oN za6CuCvEY`a&Tuvk3JAULTd#yB*V(%wcqmGGpn|i4UBPw1HNjaAM}v~POTyl!3r((| zH*e26*BgSdfeZ;YjdxmTa<9(MuaG75X3bL39l7`b!x7F{7BIPZ3hg?5v*gJ47OG=qpk(S8rK@rNbFJJ?0uCjTe! zTLiC~j-^9u=wwU|os8*}qfW+@aMsC~63#jqQ^Hv%V@jZVgioM*grA|4F{K=KGNv5o z`vx*P8IwDfQ^phtZ3|6=j@+0Ceg6Z0EYd_t_*g9&Q(x#nWWR}zWlY|$1?T*%j*MxL zM}$Z!ckE^FO2Uybwvk~kdsh-}nM{kw82i7uS|y}pOog~xdc~T+6*albWJprIv*ybL zKtwmc<9C(InCxZmDkJ2ZE3Ju)sq&jEt&WUoX3uxNkE3OmF{SJ+mZ{B|RmLO%9tJtKC5VNZDdRz(ejqPY(3B~ z3;q_m2kQG_EeX0$b z>@A+1zvB(TqXHrx2|jHsptd2nEO;PzuJ}I`j@{1>1ee>6uhEAkcPoEPTu;2`PX9|R hWqKSnxo$fY<2944$EasKwSxcv002ovPDHLkV1lOJC1(Ht literal 0 HcmV?d00001 diff --git a/test/reference/finer-grained-fallbacks.mask.rgb24.ref.png b/test/reference/finer-grained-fallbacks.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6cd94f80735fdf898e7c36f0178a8e597a6659 GIT binary patch literal 891 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≪dn6s~Vhv}4-OX4{C rn1LRJx-vfBVW5{JzsX7e5A*s3*T9fMqE}_%00000NkvXXu0mjfE?tgd literal 0 HcmV?d00001 diff --git a/test/reference/font-matrix-translation.base.argb32.ref.png b/test/reference/font-matrix-translation.base.argb32.ref.png index dd5fabacd5b48356bdb5163d16fc0582f3f0bd63..a4a108206cb4a33e9c24c1ed0512219597635bd3 100644 GIT binary patch delta 824 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≪dn6s~Vhv}4-OX4{C rn1LRJx-vfBVW5{JzsX7e5A*s3*T9fMqE}_%00000NkvXXu0mjfE?tgd literal 0 HcmV?d00001 diff --git a/test/reference/font-matrix-translation.mask.rgb24.ref.png b/test/reference/font-matrix-translation.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a108206cb4a33e9c24c1ed0512219597635bd3 GIT binary patch literal 865 zcmV-n1D^beP)*?(G0pK|9>FMbcl83~@u;)0E6h)C` z*=RJHOeR~c7J%(`TPl@ev6vtT-EJ3vBuVLXdbwQ6Z?oBKr_(thUY0y+tlRBYDwTe} zKNJex-`^8aJRYyrYJwmHgTY87((m`pX7gw?N+c3Ql*{EBjRw#2=fqDob~qfWR4Tb3 z0Qr1g5Cj18`P^!?rcx=bR{Q+?d~0KWUdU!J7;H8huh%PYT`U$(r;~_SmMs(t;c&QE zEIvFuT&d}5l}4j+pKQC`<~Z&=&GmZi^Z5dSfWzToNB@wO@}m5Rw^(&=>Nav4Cc*K@gCHk-}k z@fZvSQ55U-x?ZmzkH-LJvzf(WsaC5e#LHDO*nPPS^Jjg6>2$hWE;)|7ySw{H85cs) z;SZ0#`k(h6E~WEL_&?0+pZeuFzIK@QGjpX%fJBid69R6&4v8m0--Y~=icB$H^h0ARaCsf1Vzf`D!p03-?NG-SWoZjsHR(>Wy`N?vKK+f7O(`TZ0M zk?e!`0K|KEk@so`m4xv(EXQ0UEAqW64pTlZJ zDg~_;I|F^Uv6m+H9D@OEHstmG9*V_+oK7MlmZd_0!eJ^F>AHbltFKj)l=f3≪dn6s~Vhv}4-OX4{C rn1LRJx-vfBVW5{JzsX7e5A*s3*T9fMqE}_%00000NkvXXu0mjfE?tgd literal 0 HcmV?d00001 diff --git a/test/reference/font-matrix-translation.rgb24.ref.png b/test/reference/font-matrix-translation.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a108206cb4a33e9c24c1ed0512219597635bd3 GIT binary patch literal 865 zcmV-n1D^beP)*?(G0pK|9>FMbcl83~@u;)0E6h)C` z*=RJHOeR~c7J%(`TPl@ev6vtT-EJ3vBuVLXdbwQ6Z?oBKr_(thUY0y+tlRBYDwTe} zKNJex-`^8aJRYyrYJwmHgTY87((m`pX7gw?N+c3Ql*{EBjRw#2=fqDob~qfWR4Tb3 z0Qr1g5Cj18`P^!?rcx=bR{Q+?d~0KWUdU!J7;H8huh%PYT`U$(r;~_SmMs(t;c&QE zEIvFuT&d}5l}4j+pKQC`<~Z&=&GmZi^Z5dSfWzToNB@wO@}m5Rw^(&=>Nav4Cc*K@gCHk-}k z@fZvSQ55U-x?ZmzkH-LJvzf(WsaC5e#LHDO*nPPS^Jjg6>2$hWE;)|7ySw{H85cs) z;SZ0#`k(h6E~WEL_&?0+pZeuFzIK@QGjpX%fJBid69R6&4v8m0--Y~=icB$H^h0ARaCsf1Vzf`D!p03-?NG-SWoZjsHR(>Wy`N?vKK+f7O(`TZ0M zk?e!`0K|KEk@so`m4xv(EXQ0UEAqW64pTlZJ zDg~_;I|F^Uv6m+H9D@OEHstmG9*V_+oK7MlmZd_0!eJ^F>AHbltFKj)l=f3≪dn6s~Vhv}4-OX4{C rn1LRJx-vfBVW5{JzsX7e5A*s3*T9fMqE}_%00000NkvXXu0mjfE?tgd literal 0 HcmV?d00001 diff --git a/test/reference/font-matrix-translation.traps.argb32.ref.png b/test/reference/font-matrix-translation.traps.argb32.ref.png index dd5fabacd5b48356bdb5163d16fc0582f3f0bd63..a4a108206cb4a33e9c24c1ed0512219597635bd3 100644 GIT binary patch delta 824 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≪dn6s~Vhv}4-OX4{C rn1LRJx-vfBVW5{JzsX7e5A*s3*T9fMqE}_%00000NkvXXu0mjfE?tgd literal 0 HcmV?d00001 diff --git a/test/reference/font-matrix-translation.traps.rgb24.ref.png b/test/reference/font-matrix-translation.traps.rgb24.ref.png index dd5fabacd5b48356bdb5163d16fc0582f3f0bd63..a4a108206cb4a33e9c24c1ed0512219597635bd3 100644 GIT binary patch delta 824 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png b/test/reference/ft-show-glyphs-positioning.base.argb32.ref.png index b49ed47caa640ad72c01bb343a7dfe858c418454..af6dcaf95d8996c9e1fcfe361c13bb8987fd5b51 100644 GIT binary patch delta 3221 zcmV;G3~KY?8LJtPHh*AAL_t(|ob8-{OcUoH$FHob%mS8OYX?`IQ~@V-6D$x{rIKc5 z5+`#^H-9V)lO}UZWJWig0W!B}@W=cEHs)$DK%F~jSo}PZ^&YfvpB4`f&;nSeDwzfb1_+vUU6Ou}$w{G2<)+K@#hGFgP?KACSc8O24@>gGdrBl%1`o6xt+}zw9J9cn?)B1cqgTc_;+&nQcv2NYEojZ3@0vrxU zVPPRtW`8Dcgi1&1f`wJf4#$PtKn||J7GtUA=lWaR|q8 zyWAm$}54M zBKDWSZ#f7h8Yne2_1w907K=qF6nZ?K%*@PFr+-f2IR4&y@0FLA@7c45*nRD_*XUDz z`|Y>1w6wy)LXk*x^X5(Zd*#@%V;3)8Y;A3Q|NZwB3dQ8)Bp6@2cJ0=!TU%OMKKke* z6h-&%-_H{K^wUp+i;z?*RVtMxlc~D88b#5@#zyY%+Wh={l}c4#U*FW!^vNfmP>%Y| z%zxyKoMFX^6;)MLmo8ljbS{gx8#iu<#p1HEvikb^d-v{<4{5d9oSdAdrY4ig6c-nF zCT^+Ie`RAWQr`)=Ai_hnO_~D04i+R1? z`}gm6b#-AF_RBB7;5cqJn`2^P#>U1#Kz4RE=wN6t{_hU1si^^jg@uI&4jf=9lC19T z?#ReUr_;$4z$G)(8#zN&RTWcymbretK|e*@y?a+E6poILg56`sj%l^pfGkmT^?&Ns zB}nsZ@IA%o(t4Fc>m3GwCrwm&v6ZvL1elICJJqMn=X@KmCLtNNQ@T!C)vU zDcQMm=kV~b)oN8J6!G!#@4WNQ@bK`@KmYvYmtR7sXtmmT^X92kD(J<&xVYG8G$tk{ z&Ye4VczAeVU|`v@WfqG?E|)*?#D5bYX4$f3EWwn7Nl8gyLo62e_V%*fXh`bp?3Byp zVzHPdhCMSEZz(A$(9G;}xp^+IhON} zTLeMQpFbZH6Vuw-+Wfb2b91Y!t5>dEdGzQ}wOS2Av$C>?UFZ~p!N9c4=;$bq#{(y^ zy1KfruMdo;r>FDze4S2*AV_-H9kIWu~@jfqN~5Z-{bK_MMdT0B z9}2O|K+B0h5X4|GY~8w*Ji2}R_R7l2HEY)N_xERIWr0DpTHW8@zjp0fmMIS&Jb*5v zR4P>}RbpbIQmOp<>wm9_dx}6HsH>~{;)^fDVsUYCac*v|P$*;yo)SeyM%L8S96x^i znP;9^v0_DDUS2@cL-FQ!u3v8l4jkCMdv{!19Qk4q85vnyTl?v!pC%_Kr>CdO+ARJ+eeR)NF*sKDapynHk<9xp?^bDSZ1K*@VMW9LsxHa zFOSEIkB?^x$jr>#yLa!FEnBz*hp4{3J{-p}3=3jzDBift4bGd>=^Py$#W3vg#~%;E z7+GGg*KW591Og1h=pS94dg`gh#zvV;HZn3IlgXeNLNAkJIsa(~Lsed0J}@vKl}ayP zzI^}w{p;7ShkyP8gf*=K9js6&X4(jX%myyvrI%ik$z-FWquaJ^`|-yg!|gl!wQt`( z`a_DD(#&6j!wM@D&HObutgu2+xP!xbv^85g_&)%DXGCGzm_;s^%jI%~nB-vx7Zeoy z@WT%wTMAzP0r)#33WzrTf5U$dA3l8a=+O|9JnZ21_J8)l!NHI%1uv7yl$@MAg9c`U zii(Qv-Mcr_E*>#Ko|QwE9p!p6DLZ?PyK?wP>dK_5$r5xt6qcHz zYuBz>t$$V~V=|entgP(%_3QER@$bI-?xIDDz$|i~=ybZ$($d?vZ)as?k$DMrBAHF# z>2^v=N@Zmw!OqbESt!s+rcR+uCzKO~;-`MWUnoXQ7c@DPXJuko>6HeAt5O7A8k&%d z|C&su#ful?I6gKuCK8F3FJF%1xZCZHjEn?7QGa2w1RW2BrKYI0wUx!##*G^{Y}nA$ z)O6&?5fnuS1_p?eK=jG__3Jlp-rUmCQdCs*ML%p!OPQvg{epp&3ZS(r{b zCkn++*}-2HjF=*5aweXY?u}k)ptvgi6j7FDNl4(o6B85B(a~0`wV|OQFE4M&k|l$K zgMZ(A^Ud?mKhI)`X*_6_nl2V&ot>R?=gxJz-5~PimtQ_~=n!!dK%aDUbVNl(jf{+d zag|C1UPr$~GK=8E9R-kO0XhM7%EWX+IZ?m(DIL#c!iec&N>1llq2B0~28yfFMOm6l zLO!3bR;wEu8@s!^H5v_yqL(jUZfk4PXn!;;mRK?e$5PY9VyvsHDC-FLLqTNzy=p0nb8t-lmf`I0G$A$gEE~=oTy*?l#b^@F=D76rsNc! zm4#QPR2nF*N*85mmW1TOH5yH0V`EQGPgPYFilPk-4Q*|06%`dMmN;g{LwgF#WPdCo zB7*#ACx3@Bcjd~JV`F3AfB!v#AU2!r+i$-G<3Y3pAx_*r z06MpC-+uDs$vJc8h(x01=4MJjZEbCSe*TFQCt_k^`uh3~A3hAe5+x=kN~O|;3l|c% zezV!UZQC~RW%IAU{yKmDyk7$VBi3rQ2M-=pDwO~uhDI_a2R!TK7k%jv6S8LrJ#*0V`FvKZ75x5}NnWqFySsa0VuCyvbW1!k zY+5K7@vP!m!bfRIZ*Q7#{Q14qjqKBCbfNEd>X8IY>%zJ%NZWV z_HddjeF%W}q?Z0w^;fpBsq;8(<{E6rGb(zm`U1m7Q}^wo4}0Oww4t%ZE!yJNL){og zu`|9?fKFX#e;q`_*KY1_+qRRF6YgX;gQAA0qutTb(MRZ6cm9Jh=ID*)Jrxxd(Kxwu zuMJxBc&M+h()!PMk?0DOiI%7)R6#q#;o%{!+`$LRUu5s=?ED&6LfWmW>*(qV#^VQ; zIMMm$TkFvu%puC)wiRpUxfcw^$0;30Tv0zO<+K0hG z^kfx4l?8Sd782>GTctJySUGt)IZ(E-v9bNrC*|8M3h5}kmQZj*5dBL+0@EaCDXs~) zJ61L|HPzMCHQ$|@nv(K7E$tgj?#@t-Zp7|tPfx;4NosS1MryZycXwA8%E)MVQk@_w zEG+El>4|N-aNz<&jN@$k11Tw~@(;gIcsw418EV9@I7IDO{t&S#p}fV)2?z)j6&8ZU zA!TI5pTCkdAQJiWl%<=T4=)&%1!(w{k;#AavfPe7DA0corDEmMC%l!El@~Wd1vGq( zjg32K1U5O&q+}lDdzymp?SuscKHG6zE-fwfs%@;U-s+XfRgjepJ){=}P^zk`-jGB5$2iN`_tD026^RB!whTQM#>npXbSF)~>l#+5=93=55*}d}QFm!OpF(>!; z_J++9H4F?56HhTRGD3lLa*Y!fhx_sUyT4}kK$eE~OQU?B&Ll2xb!`|ddf=rRMt3J| z%@)+Kw6x^o;~Rn9sKerw66CJ35cO3`As#nE!>llmKKdOC)ZR}-5bgQbd_6=RpPEFDWOX!Unvx) z_}r*nK2KCcL{m}GVoTIfvF|>2a;M{!prD}r!$aDKuuJe_ikG#*^Ili@>Gt;a-PH+w zE*3EsW@flZekAPA(s2HgBN~l1Gh_c0kH%nFA@|*LKfX~Rt4}f)6ck{0JnyY}Nlf3^ z-q``m%LlNW-Tt{&KlA+a!bN2JFpZ|f$y}KXj~iMP(e#HzMSc4iV_AY@cggmBhSaV* zu1(&bOIDtno3pXCJq6)NM3Avy$9`W}AQFl6o$yL4L0;Ylm+q9x%F5foN$uOWNzfZg z8ApeQ(vp&oqp`c|(i*CO68L_V@RHEqqRN z!ahw%=$tdjQcpy@E-o(a@9$rmtiP07j6@=rlGD=CBn(r&(eMQ(57!(+86XPWpA&&g zG6-?AfPlZXs9(SSSX|VALf@Fm&dtwTD{vD;!KTN_az;l-v$M0mx!iiPD?ot?2?;GM zENGEZy5~)djrR`@tV?ka2to90tdp~|a~pxt!%s&zRgSm&L)ccu*yGJT6(&Nav2^vs z>dJ}{m%hb|Jav#8bFZfDny6L^0C#}@=3FO6XR`xrg!WngVy)Lt5jU)@L9iV~gHzSs z4p+}2<>scI|7T@q$-Sz)JoWPewPnFMi)FIyCj=6Cv{s+Yt=Jg8<266?Vf%|w5hgb! zG4X295?kGh2^!sX5owWzlA=IqG@65h!+CCn`)oKI4i>r3CX`Af0t;IQBEaz`Siu*n zcc@gV2cd{D5y8R6=D)o(+}n$Ud;}?^PcQSR&boU`fFP>jN9(u%j?dA-L3&0;e(UAj z?Ceo`&_%TeF8==ic&i`n@4vHeQWq182@(kZ(a*OnY;9}X!wI z4fXbt%gWFw6u>ViXpBZ1oGUP=fBPnS7*~K2Tc0o^#KzWpPl$6Q!u9oSZEYnaB!)K+ zwid@I6w);Srm4BVQr%(7VanDcueA& z@^#@~pKc1-py~1?AJ-BB0|No@?F}=et`7b8f#5xXKdlqMwZo-+{rHRTt-hCYMV=hu zN4L~$vvtB$baW!Q8T%QNl9K_js1vx&%vq$McrEQIzm|`E5y(dbMkXDT=5ej|?y*!Y z`?ETP0($vQ!54#7PA%tKQegb?dea6KZDRA!*WaHPw;sS}f#-_05Qv+b8$%4_?jWe3|H2cNBU=`OQx;^yVu|7z>Uc+)-$!05d@9lEZ(t-}RJ-7L5YHRhFSVdrw>r+>W2G24wWVn+> zbi?Bsi3|)3oXnl+^0zpd8Tmc$W=RfS6f;I5!)71wfL7%IoZtZf=#NW`t#_vF6I-F`&Vp|`$;a;yJ{@SG+7b=`!|v<# zl8|{40!D+IM0j&cUY?k$swxyZ>Z%g8HytvhyC+DLd>c^IJc{s$!v_a5K!UV{`1vkf zss{cFJFR>PbJFZp5EALX06pLP9(|Jg#4dpt&v?suW0mG0WC_-t|vnBO0ko zg2K$g|C98RDD+CK(HtB?&EM+6FBjXVGyR)!-R|ud#)ZRxM|ea;>*2Ee89jb}{+C%< zATc~7hq1wfMkdVZS6EqD^M@1c^IKYA;HxT}x0kU~+5=Y+3k!=ShFW6f%FRN;@J8&~ zAr6$p!px+1Ed<}FJDV3L%^$zRQWHpx>n)uoCKh17%RlP{71n9Z@*Ih-DiiMm7q`Qs zB7sO9%0wYwu0wI$4MW4g_ja{57a-sk!%uWyqt-S|WoGhTj1T;M90s}H=IG(+sn<=i z;^2LRtFWJuBNsjElj-Y-PKq5hFy=>E3NHRPYoqu*#s6nmY4r$Jbqc~nU^+wS=;#0m zYC-aOxk-P3;*I}wHDC^52ADlTh$lXJG*#(h_;34Ue3~uB%7JSh4^KvV`h$}v)t8Ls zL;2}>k{mcv zi5df30-M>tsvBQ8{76!6S1KD%SWL^M3~c`zp8|mDK%F~jSo}PZ^&YfvpB4`f&;nSeDwzfb1_+vUU6Ou}$w{G2<)+K@#hGFgP?KACSc8O24@>gGdrBl%1`o6xt+}zw9J9cn?)B1cqgTc_;+&nQcv2NYEojZ3@0vrxU zVPPRtW`8Dcgi1&1f`wJf4#$PtKn||J7GtUA=lWaR|q8 zyWAm$}54M zBKDWSZ#f7h8Yne2_1w907K=qF6nZ?K%*@PFr+-f2IR4&y@0FLA@7c45*nRD_*XUDz z`|Y>1w6wy)LXk*x^X5(Zd*#@%V;3)8Y;A3Q|NZwB3dQ8)Bp6@2cJ0=!TU%OMKKke* z6h-&%-_H{K^wUp+i;z?*RVtMxlc~D88b#5@#zyY%+Wh={l}c4#U*FW!^vNfmP>%Y| z%zxyKoMFX^6;)MLmo8ljbS{gx8#iu<#p1HEvikb^d-v{<4{5d9oSdAdrY4ig6c-nF zCT^+Ie`RAWQr`)=Ai_hnO_~D04i+R1? z`}gm6b#-AF_RBB7;5cqJn`2^P#>U1#Kz4RE=wN6t{_hU1si^^jg@uI&4jf=9lC19T z?#ReUr_;$4z$G)(8#zN&RTWcymbretK|e*@y?a+E6poILg56`sj%l^pfGkmT^?&Ns zB}nsZ@IA%o(t4Fc>m3GwCrwm&v6ZvL1elICJJqMn=X@KmCLtNNQ@T!C)vU zDcQMm=kV~b)oN8J6!G!#@4WNQ@bK`@KmYvYmtR7sXtmmT^X92kD(J<&xVYG8G$tk{ z&Ye4VczAeVU|`v@WfqG?E|)*?#D5bYX4$f3EWwn7Nl8gyLo62e_V%*fXh`bp?3Byp zVzHPdhCMSEZz(A$(9G;}xp^+IhON} zTLeMQpFbZH6Vuw-+Wfb2b91Y!t5>dEdGzQ}wOS2Av$C>?UFZ~p!N9c4=;$bq#{(y^ zy1KfruMdo;r>FDze4S2*AV_-H9kIWu~@jfqN~5Z-{bK_MMdT0B z9}2O|K+B0h5X4|GY~8w*Ji2}R_R7l2HEY)N_xERIWr0DpTHW8@zjp0fmMIS&Jb*5v zR4P>}RbpbIQmOp<>wm9_dx}6HsH>~{;)^fDVsUYCac*v|P$*;yo)SeyM%L8S96x^i znP;9^v0_DDUS2@cL-FQ!u3v8l4jkCMdv{!19Qk4q85vnyTl?v!pC%_Kr>CdO+ARJ+eeR)NF*sKDapynHk<9xp?^bDSZ1K*@VMW9LsxHa zFOSEIkB?^x$jr>#yLa!FEnBz*hp4{3J{-p}3=3jzDBift4bGd>=^Py$#W3vg#~%;E z7+GGg*KW591Og1h=pS94dg`gh#zvV;HZn3IlgXeNLNAkJIsa(~Lsed0J}@vKl}ayP zzI^}w{p;7ShkyP8gf*=K9js6&X4(jX%myyvrI%ik$z-FWquaJ^`|-yg!|gl!wQt`( z`a_DD(#&6j!wM@D&HObutgu2+xP!xbv^85g_&)%DXGCGzm_;s^%jI%~nB-vx7Zeoy z@WT%wTMAzP0r)#33WzrTf5U$dA3l8a=+O|9JnZ21_J8)l!NHI%1uv7yl$@MAg9c`U zii(Qv-Mcr_E*>#Ko|QwE9p!p6DLZ?PyK?wP>dK_5$r5xt6qcHz zYuBz>t$$V~V=|entgP(%_3QER@$bI-?xIDDz$|i~=ybZ$($d?vZ)as?k$DMrBAHF# z>2^v=N@Zmw!OqbESt!s+rcR+uCzKO~;-`MWUnoXQ7c@DPXJuko>6HeAt5O7A8k&%d z|C&su#ful?I6gKuCK8F3FJF%1xZCZHjEn?7QGa2w1RW2BrKYI0wUx!##*G^{Y}nA$ z)O6&?5fnuS1_p?eK=jG__3Jlp-rUmCQdCs*ML%p!OPQvg{epp&3ZS(r{b zCkn++*}-2HjF=*5aweXY?u}k)ptvgi6j7FDNl4(o6B85B(a~0`wV|OQFE4M&k|l$K zgMZ(A^Ud?mKhI)`X*_6_nl2V&ot>R?=gxJz-5~PimtQ_~=n!!dK%aDUbVNl(jf{+d zag|C1UPr$~GK=8E9R-kO0XhM7%EWX+IZ?m(DIL#c!iec&N>1llq2B0~28yfFMOm6l zLO!3bR;wEu8@s!^H5v_yqL(jUZfk4PXn!;;mRK?e$5PY9VyvsHDC-FLLqTNzy=p0nb8t-lmf`I0G$A$gEE~=oTy*?l#b^@F=D76rsNc! zm4#QPR2nF*N*85mmW1TOH5yH0V`EQGPgPYFilPk-4Q*|06%`dMmN;g{LwgF#WPdCo zB7*#ACx3@Bcjd~JV`F3AfB!v#AU2!r+i$-G<3Y3pAx_*r z06MpC-+uDs$vJc8h(x01=4MJjZEbCSe*TFQCt_k^`uh3~A3hAe5+x=kN~O|;3l|c% zezV!UZQC~RW%IAU{yKmDyk7$VBi3rQ2M-=pDwO~uhDI_a2R!TK7k%jv6S8LrJ#*0V`FvKZ75x5}NnWqFySsa0VuCyvbW1!k zY+5K7@vP!m!bfRIZ*Q7#{Q14qjqKBCbfNEd>X8IY>%zJ%NZWV z_HddjeF%W}q?Z0w^;fpBsq;8(<{E6rGb(zm`U1m7Q}^wo4}0Oww4t%ZE!yJNL){og zu`|9?fKFX#e;q`_*KY1_+qRRF6YgX;gQAA0qutTb(MRZ6cm9Jh=ID*)Jrxxd(Kxwu zuMJxBc&M+h()!PMk?0DOiI%7)R6#q#;o%{!+`$LRUu5s=?ED&6LfWmW>*(qV#^VQ; zIMMm$TkFvu%puC)wiRpUxfcw^$0;30Tv0zO<+K0hG z^kfx4l?8Sd782>GTctJySUGt)IZ(E-v9bNrC*|8M3h5}kmQZj*5dBL+0@EaCDXs~) zJ61L|HPzMCHQ$|@nv(K7E$tgj?#@t-Zp7|tPfx;4NosS1MryZycXwA8%E)MVQk@_w zEG+El>4|N-aNz<&jN@$k11Tw~@(;gIcsw418EV9@I7IDO{t&S#p}fV)2?z)j6&8ZU zA!TI5pTCkdAQJiWl%<=T4=)&%1!(w{k;#AavfPe7DA0corDEmMC%l!El@~Wd1vGq( zjg32K1U5O&q+}lDdzymp?SuscKHG6zE-fwfs%@;U-s+XfRgjepJ){=}P^zk`-jGB5$2iN`_tD026^RB!whTQM#>npXbSF)~>l#+5=93=55*}d}QFm!OpF(>!; z_J++9H4F?56HhTRGD3lLa*Y!fhx_sUyT4}kK$eE~OQU?B&Ll2xb!`|ddf=rRMt3J| z%@)+Kw6x^o;~Rn9sKerw66CJ35cO3`As#nE!>llmKKdOC)ZR}-5bgQbd_6=RpPEFDWOX!Unvx) z_}r*nK2KCcL{m}GVoTIfvF|>2a;M{!prD}r!$aDKuuJe_ikG#*^Ili@>Gt;a-PH+w zE*3EsW@flZekAPA(s2HgBN~l1Gh_c0kH%nFA@|*LKfX~Rt4}f)6ck{0JnyY}Nlf3^ z-q``m%LlNW-Tt{&KlA+a!bN2JFpZ|f$y}KXj~iMP(e#HzMSc4iV_AY@cggmBhSaV* zu1(&bOIDtno3pXCJq6)NM3Avy$9`W}AQFl6o$yL4L0;Ylm+q9x%F5foN$uOWNzfZg z8ApeQ(vp&oqp`c|(i*CO68L_V@RHEqqRN z!ahw%=$tdjQcpy@E-o(a@9$rmtiP07j6@=rlGD=CBn(r&(eMQ(57!(+86XPWpA&&g zG6-?AfPlZXs9(SSSX|VALf@Fm&dtwTD{vD;!KTN_az;l-v$M0mx!iiPD?ot?2?;GM zENGEZy5~)djrR`@tV?ka2to90tdp~|a~pxt!%s&zRgSm&L)ccu*yGJT6(&Nav2^vs z>dJ}{m%hb|Jav#8bFZfDny6L^0C#}@=3FO6XR`xrg!WngVy)Lt5jU)@L9iV~gHzSs z4p+}2<>scI|7T@q$-Sz)JoWPewPnFMi)FIyCj=6Cv{s+Yt=Jg8<266?Vf%|w5hgb! zG4X295?kGh2^!sX5owWzlA=IqG@65h!+CCn`)oKI4i>r3CX`Af0t;IQBEaz`Siu*n zcc@gV2cd{D5y8R6=D)o(+}n$Ud;}?^PcQSR&boU`fFP>jN9(u%j?dA-L3&0;e(UAj z?Ceo`&_%TeF8==ic&i`n@4vHeQWq182@(kZ(a*OnY;9}X!wI z4fXbt%gWFw6u>ViXpBZ1oGUP=fBPnS7*~K2Tc0o^#KzWpPl$6Q!u9oSZEYnaB!)K+ zwid@I6w);Srm4BVQr%(7VanDcueA& z@^#@~pKc1-py~1?AJ-BB0|No@?F}=et`7b8f#5xXKdlqMwZo-+{rHRTt-hCYMV=hu zN4L~$vvtB$baW!Q8T%QNl9K_js1vx&%vq$McrEQIzm|`E5y(dbMkXDT=5ej|?y*!Y z`?ETP0($vQ!54#7PA%tKQegb?dea6KZDRA!*WaHPw;sS}f#-_05Qv+b8$%4_?jWe3|H2cNBU=`OQx;^yVu|7z>Uc+)-$!05d@9lEZ(t-}RJ-7L5YHRhFSVdrw>r+>W2G24wWVn+> zbi?Bsi3|)3oXnl+^0zpd8Tmc$W=RfS6f;I5!)71wfL7%IoZtZf=#NW`t#_vF6I-F`&Vp|`$;a;yJ{@SG+7b=`!|v<# zl8|{40!D+IM0j&cUY?k$swxyZ>Z%g8HytvhyC+DLd>c^IJc{s$!v_a5K!UV{`1vkf zss{cFJFR>PbJFZp5EALX06pLP9(|Jg#4dpt&v?suW0mG0WC_-t|vnBO0ko zg2K$g|C98RDD+CK(HtB?&EM+6FBjXVGyR)!-R|ud#)ZRxM|ea;>*2Ee89jb}{+C%< zATc~7hq1wfMkdVZS6EqD^M@1c^IKYA;HxT}x0kU~+5=Y+3k!=ShFW6f%FRN;@J8&~ zAr6$p!px+1Ed<}FJDV3L%^$zRQWHpx>n)uoCKh17%RlP{71n9Z@*Ih-DiiMm7q`Qs zB7sO9%0wYwu0wI$4MW4g_ja{57a-sk!%uWyqt-S|WoGhTj1T;M90s}H=IG(+sn<=i z;^2LRtFWJuBNsjElj-Y-PKq5hFy=>E3NHRPYoqu*#s6nmY4r$Jbqc~nU^+wS=;#0m zYC-aOxk-P3;*I}wHDC^52ADlTh$lXJG*#(h_;34Ue3~uB%7JSh4^KvV`h$}v)t8Ls zL;2}>k{mcv zi5df30-M>tsvBQ8{76!6S1KD%SWL^M3~c`zp8|m-pP)CUZ+_0zkSdlepz<49OxJ+g|JX#-(}6_OsY4z}Cv zUaxmrm$2Dv6B85Dxc>FW|{E6H8eCN z6bdm6yK?19eSLjgTpSqpcsvq`L?)9FyN^BgSZ8M^dCKwQ$3-GhPfrhy<368HtyUKm z72(sMwzjrE{`g}$G82+YrMGU~n${(P7KUN%?d>z|Vs?p7wDMP9eWg~bGcz*{217+f zh12Q0bLUQSa`Lrn*VJmY#bP0LB@)TfrAx_E%x3fM-Mb443Ywdn%gf8%Zg)vZ3FWPF z;lhOr7cLA94J9Qd?cKX~{`~o1e0X@cw6wIdvokw8d%=PQd_I4}h7C-?4Gj$#hDAq5 zmz0#`<>l%1`o6xt+}zw9J9cn?)B1cqgTc_;+&nQcv2NYEojZ3@0vrxUVPPRtW+rch zN=iyLZQ5is8i$64s;a62n#}l_ry^y1E)g(ZFL+MJx6rluy7$rKkCcjLwl?w07XSS%8W zq^72(t*uS3*F&=@6pGr~+PbU1#Kz4RE=wN6t{_hU1si^^jg@uI&4jf=9lC19T?#ReUr_;$4z$G)( z8#zN&RTWcymbretK|e*@y?a+E6poILg56`sj%l^pfGkmT_3G6nOP07?E~WsfRC?yj z8L(|I7&0?6=`lf<$)y~!9)5~AbLLD&M#fJ+{e&P$YHF&%U??dm*|~G)@bIwJYE>u{ z@$vERyz|cR@bJ$+|NP~bUqYv7wc2^}=BZRF=*7OcxY%ekCMG7%ojZ4Ucz9r7VA--| z7K=qLmp}2u6Ch^UvSlp6l!Qr1Nnk@P7Wek{vfXG%>g?>4%jIIRm?efiGZ$|uDJjs* z>~pzzqpPE%V{&pbBO?R6q9Y?C%a<>whcQ{AOQlk+S+i!rf(5Cmsd;&MyLRmo2n3Xv zXP8j zXl!h(UauF6#Y>kig--eP*I${I>FDUt>2y6kJyB6n2!dc3=JWXw1VK^M;cyUP4u>Nu zDvBwXA|8)NY~!4t%b+MaG&IB>!;+b!H$I^+IhON}TLeMQpFbZH6Vuw-+Wfb2 zb91Y!t5>dEdGzQ}wOS2Av$C>?UFZ~p!N9c4=;$bq#{(y^y1KfruMdo;r>FDze4S2* zAV_D3*9k@oGI(6#B7hfbF3bD*U%ZWe`#9%ON-MW=L zx_$fh%F4<$Yu5Dl_h)5gfkCxe-QVB8cI{f0DGwezfG(p{Dpe{~Vq&6Fsr>ruuZeq# zKp?2AtNY@MFT`STadB~OZmv)$WD1@VMMg%})YKe5e*Bqdo>{SCMP6QBK+{9<=69}N zZwC$>*u8sqTwEOaVi6e`SzBBC>8GD2Cnu+;r_1H?mX?-)ilWGDHp}I5rBbO>D(ma( z_wCz9kC8|uDJdz*$;mdG?a-k^Q&?u8i;s_I3dqdN+`D)0mMvSj z1c#`;zCIksF$@c0ZYbWk%ni<))9D-?9mO#0@y8zz!Wdazuh(w33j_iT!{{Gfo_gx3 z#>PgOOg1tyB9qCW8A30UV>$n62SZg}UOq4|AeBllU%q_*{{8FMuZR8ugf*=K9js6& zX4(jX%myyvrI%ik$z-FWquaJ^`|-yg!|gl!wQt`(`a_DD(#&6j!wM@D&HObutgu2+ zxP!xbv^85g_&)%DXGCGzm_;s^%jI%~nB-vx7Zeoy@WT%wTMAzP0r)#33WzrTf5U$d zA3l8a=+O|9JnZ21_V&TS!H_KlFO$iXoSZy^24;hbii+;tyEoG=9x*|ll|#{6D9}l! zPAe-b=}adRCrZap{er(xj2K!HJvo$TW%5R^6b}ejrO9r$S5#Dxmxd-Jd!y1hllYbjy}4a=Dzz5_CKimYSk#*RENuRwiRInXIg=?E3ZV@$vER zzWeT?MT@{Ja-ZmQy3*3p+qZ9LWo40h33eixP2lNvN=iy)WhKGR(E(W~&`G9Fp-d-~ z6NTcZe!*WTMobqpIh1E*Vp!>w2863p1YH`Mkc|JDOs2()7vnfSHZ~>_iIy*4j^nu7 z?T(C$1V2$>vIHFug{7vbwY8PS*v5?;H*DC@)YNq3$PpAp2L=X+lR)&z`t|EKZ{FO} z(o$4Z^yHIIg4fY6k<21^2U7r9CZLm`PFa{vIwuOnPuam=7L1r8XmTc=mF|sRX`r|& z{S;A_W=TlkzY`M^(b3UXtF@t_Aulg)$&w|5gM;6E^Ud?mKhI)`X*_6_nl2V&ot>R? z=gxJz-5~PimtQ_~=n!!dK%aDUbVNl(jf{+dag|C1UPr$~GK=8E9R-kO0XhM7%EWX+ zIZ?m(DIL#c!iec&N>1llq2B0~28yfFMOm6lLO!3bR;wEu8@s!^H5v_yqL(jUZfk4P zXf!OASTYC4Qq#p^tgEXlAt7Pjym=rpEiH}w6&CbKS6A2K#fybPA#p;$1{Wfk(Gql& z0?4ueodBYPGM!AEs9*e)j^{!#VyGXc{ zRaF&=q74lVZEbB86%{O&IA+E}dkV{BEFvO;{HL+sfB!u;HkQ~0eIgQxh_itph}-Rs zj*dpS5y?#A^!H%D+$xmmWa31*;HMNpF=D8gl2dqACU5jgL#J;kOS2>-rlFz1 z;cz4+C22I8ix)3it=3hmRw2v;?UaMUP%#-xOG|t3;6ZI|ErK9}gM%iMDJLg~GI!<5 zm1ARL-+%u-f*>}V?b~m^1>-@q1R+k`J^(tmZ{L3Mb1=H_NfKy7Vpet!Om z6DML~V*2{}4j(=Yz7i!SCQ7B!g$oxFw|=wPylvYy@MZI_zy3OZ{=8oU03+6FwFeI# zR4SDKBZfvYB?mm~Wn^T~e;><|9Q+Fim&;|d*~pPlZ$R`)>7{WOed!PrvS$cAbI|hn zd{(O!{Qj3oUaz;iyL)0{f;<>>OFS}cS|}Lttm0Y2np({kF2b)u!H8!S&l=X$>XEqy dhZPo7{{xTCk~~u=u5ADS002ovPDHLkV1i5OLBjw5 literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..af6dcaf95d8996c9e1fcfe361c13bb8987fd5b51 GIT binary patch literal 3243 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-positioning.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..af6dcaf95d8996c9e1fcfe361c13bb8987fd5b51 GIT binary patch literal 3243 zcmV;c3{>-pP)CUZ+_0zkSdlepz<49OxJ+g|JX#-(}6_OsY4z}Cv zUaxmrm$2Dv6B85Dxc>FW|{E6H8eCN z6bdm6yK?19eSLjgTpSqpcsvq`L?)9FyN^BgSZ8M^dCKwQ$3-GhPfrhy<368HtyUKm z72(sMwzjrE{`g}$G82+YrMGU~n${(P7KUN%?d>z|Vs?p7wDMP9eWg~bGcz*{217+f zh12Q0bLUQSa`Lrn*VJmY#bP0LB@)TfrAx_E%x3fM-Mb443Ywdn%gf8%Zg)vZ3FWPF z;lhOr7cLA94J9Qd?cKX~{`~o1e0X@cw6wIdvokw8d%=PQd_I4}h7C-?4Gj$#hDAq5 zmz0#`<>l%1`o6xt+}zw9J9cn?)B1cqgTc_;+&nQcv2NYEojZ3@0vrxUVPPRtW+rch zN=iyLZQ5is8i$64s;a62n#}l_ry^y1E)g(ZFL+MJx6rluy7$rKkCcjLwl?w07XSS%8W zq^72(t*uS3*F&=@6pGr~+PbU1#Kz4RE=wN6t{_hU1si^^jg@uI&4jf=9lC19T?#ReUr_;$4z$G)( z8#zN&RTWcymbretK|e*@y?a+E6poILg56`sj%l^pfGkmT_3G6nOP07?E~WsfRC?yj z8L(|I7&0?6=`lf<$)y~!9)5~AbLLD&M#fJ+{e&P$YHF&%U??dm*|~G)@bIwJYE>u{ z@$vERyz|cR@bJ$+|NP~bUqYv7wc2^}=BZRF=*7OcxY%ekCMG7%ojZ4Ucz9r7VA--| z7K=qLmp}2u6Ch^UvSlp6l!Qr1Nnk@P7Wek{vfXG%>g?>4%jIIRm?efiGZ$|uDJjs* z>~pzzqpPE%V{&pbBO?R6q9Y?C%a<>whcQ{AOQlk+S+i!rf(5Cmsd;&MyLRmo2n3Xv zXP8j zXl!h(UauF6#Y>kig--eP*I${I>FDUt>2y6kJyB6n2!dc3=JWXw1VK^M;cyUP4u>Nu zDvBwXA|8)NY~!4t%b+MaG&IB>!;+b!H$I^+IhON}TLeMQpFbZH6Vuw-+Wfb2 zb91Y!t5>dEdGzQ}wOS2Av$C>?UFZ~p!N9c4=;$bq#{(y^y1KfruMdo;r>FDze4S2* zAV_D3*9k@oGI(6#B7hfbF3bD*U%ZWe`#9%ON-MW=L zx_$fh%F4<$Yu5Dl_h)5gfkCxe-QVB8cI{f0DGwezfG(p{Dpe{~Vq&6Fsr>ruuZeq# zKp?2AtNY@MFT`STadB~OZmv)$WD1@VMMg%})YKe5e*Bqdo>{SCMP6QBK+{9<=69}N zZwC$>*u8sqTwEOaVi6e`SzBBC>8GD2Cnu+;r_1H?mX?-)ilWGDHp}I5rBbO>D(ma( z_wCz9kC8|uDJdz*$;mdG?a-k^Q&?u8i;s_I3dqdN+`D)0mMvSj z1c#`;zCIksF$@c0ZYbWk%ni<))9D-?9mO#0@y8zz!Wdazuh(w33j_iT!{{Gfo_gx3 z#>PgOOg1tyB9qCW8A30UV>$n62SZg}UOq4|AeBllU%q_*{{8FMuZR8ugf*=K9js6& zX4(jX%myyvrI%ik$z-FWquaJ^`|-yg!|gl!wQt`(`a_DD(#&6j!wM@D&HObutgu2+ zxP!xbv^85g_&)%DXGCGzm_;s^%jI%~nB-vx7Zeoy@WT%wTMAzP0r)#33WzrTf5U$d zA3l8a=+O|9JnZ21_V&TS!H_KlFO$iXoSZy^24;hbii+;tyEoG=9x*|ll|#{6D9}l! zPAe-b=}adRCrZap{er(xj2K!HJvo$TW%5R^6b}ejrO9r$S5#Dxmxd-Jd!y1hllYbjy}4a=Dzz5_CKimYSk#*RENuRwiRInXIg=?E3ZV@$vER zzWeT?MT@{Ja-ZmQy3*3p+qZ9LWo40h33eixP2lNvN=iy)WhKGR(E(W~&`G9Fp-d-~ z6NTcZe!*WTMobqpIh1E*Vp!>w2863p1YH`Mkc|JDOs2()7vnfSHZ~>_iIy*4j^nu7 z?T(C$1V2$>vIHFug{7vbwY8PS*v5?;H*DC@)YNq3$PpAp2L=X+lR)&z`t|EKZ{FO} z(o$4Z^yHIIg4fY6k<21^2U7r9CZLm`PFa{vIwuOnPuam=7L1r8XmTc=mF|sRX`r|& z{S;A_W=TlkzY`M^(b3UXtF@t_Aulg)$&w|5gM;6E^Ud?mKhI)`X*_6_nl2V&ot>R? z=gxJz-5~PimtQ_~=n!!dK%aDUbVNl(jf{+dag|C1UPr$~GK=8E9R-kO0XhM7%EWX+ zIZ?m(DIL#c!iec&N>1llq2B0~28yfFMOm6lLO!3bR;wEu8@s!^H5v_yqL(jUZfk4P zXf!OASTYC4Qq#p^tgEXlAt7Pjym=rpEiH}w6&CbKS6A2K#fybPA#p;$1{Wfk(Gql& z0?4ueodBYPGM!AEs9*e)j^{!#VyGXc{ zRaF&=q74lVZEbB86%{O&IA+E}dkV{BEFvO;{HL+sfB!u;HkQ~0eIgQxh_itph}-Rs zj*dpS5y?#A^!H%D+$xmmWa31*;HMNpF=D8gl2dqACU5jgL#J;kOS2>-rlFz1 z;cz4+C22I8ix)3it=3hmRw2v;?UaMUP%#-xOG|t3;6ZI|ErK9}gM%iMDJLg~GI!<5 zm1ARL-+%u-f*>}V?b~m^1>-@q1R+k`J^(tmZ{L3Mb1=H_NfKy7Vpet!Om z6DML~V*2{}4j(=Yz7i!SCQ7B!g$oxFw|=wPylvYy@MZI_zy3OZ{=8oU03+6FwFeI# zR4SDKBZfvYB?mm~Wn^T~e;><|9Q+Fim&;|d*~pPlZ$R`)>7{WOed!PrvS$cAbI|hn zd{(O!{Qj3oUaz;iyL)0{f;<>>OFS}cS|}Lttm0Y2np({kF2b)u!H8!S&l=X$>XEqy dhZPo7{{xTCk~~u=u5ADS002ovPDHLkV1i5OLBjw5 literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png b/test/reference/ft-show-glyphs-positioning.traps.argb32.ref.png index b49ed47caa640ad72c01bb343a7dfe858c418454..af6dcaf95d8996c9e1fcfe361c13bb8987fd5b51 100644 GIT binary patch delta 3221 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png b/test/reference/ft-show-glyphs-positioning.traps.rgb24.ref.png index b49ed47caa640ad72c01bb343a7dfe858c418454..af6dcaf95d8996c9e1fcfe361c13bb8987fd5b51 100644 GIT binary patch delta 3221 zcmV;G3~KY?8LJtPHh*AAL_t(|ob8-{OcUoH$FHob%mS8OYX?`IQ~@V-6D$x{rIKc5 z5+`#^H-9V)lO}UZWJWig0W!B}@W=cEHs)$DK%F~jSo}PZ^&YfvpB4`f&;nSeDwzfb1_+vUU6Ou}$w{G2<)+K@#hGFgP?KACSc8O24@>gGdrBl%1`o6xt+}zw9J9cn?)B1cqgTc_;+&nQcv2NYEojZ3@0vrxU zVPPRtW`8Dcgi1&1f`wJf4#$PtKn||J7GtUA=lWaR|q8 zyWAm$}54M zBKDWSZ#f7h8Yne2_1w907K=qF6nZ?K%*@PFr+-f2IR4&y@0FLA@7c45*nRD_*XUDz z`|Y>1w6wy)LXk*x^X5(Zd*#@%V;3)8Y;A3Q|NZwB3dQ8)Bp6@2cJ0=!TU%OMKKke* z6h-&%-_H{K^wUp+i;z?*RVtMxlc~D88b#5@#zyY%+Wh={l}c4#U*FW!^vNfmP>%Y| z%zxyKoMFX^6;)MLmo8ljbS{gx8#iu<#p1HEvikb^d-v{<4{5d9oSdAdrY4ig6c-nF zCT^+Ie`RAWQr`)=Ai_hnO_~D04i+R1? z`}gm6b#-AF_RBB7;5cqJn`2^P#>U1#Kz4RE=wN6t{_hU1si^^jg@uI&4jf=9lC19T z?#ReUr_;$4z$G)(8#zN&RTWcymbretK|e*@y?a+E6poILg56`sj%l^pfGkmT^?&Ns zB}nsZ@IA%o(t4Fc>m3GwCrwm&v6ZvL1elICJJqMn=X@KmCLtNNQ@T!C)vU zDcQMm=kV~b)oN8J6!G!#@4WNQ@bK`@KmYvYmtR7sXtmmT^X92kD(J<&xVYG8G$tk{ z&Ye4VczAeVU|`v@WfqG?E|)*?#D5bYX4$f3EWwn7Nl8gyLo62e_V%*fXh`bp?3Byp zVzHPdhCMSEZz(A$(9G;}xp^+IhON} zTLeMQpFbZH6Vuw-+Wfb2b91Y!t5>dEdGzQ}wOS2Av$C>?UFZ~p!N9c4=;$bq#{(y^ zy1KfruMdo;r>FDze4S2*AV_-H9kIWu~@jfqN~5Z-{bK_MMdT0B z9}2O|K+B0h5X4|GY~8w*Ji2}R_R7l2HEY)N_xERIWr0DpTHW8@zjp0fmMIS&Jb*5v zR4P>}RbpbIQmOp<>wm9_dx}6HsH>~{;)^fDVsUYCac*v|P$*;yo)SeyM%L8S96x^i znP;9^v0_DDUS2@cL-FQ!u3v8l4jkCMdv{!19Qk4q85vnyTl?v!pC%_Kr>CdO+ARJ+eeR)NF*sKDapynHk<9xp?^bDSZ1K*@VMW9LsxHa zFOSEIkB?^x$jr>#yLa!FEnBz*hp4{3J{-p}3=3jzDBift4bGd>=^Py$#W3vg#~%;E z7+GGg*KW591Og1h=pS94dg`gh#zvV;HZn3IlgXeNLNAkJIsa(~Lsed0J}@vKl}ayP zzI^}w{p;7ShkyP8gf*=K9js6&X4(jX%myyvrI%ik$z-FWquaJ^`|-yg!|gl!wQt`( z`a_DD(#&6j!wM@D&HObutgu2+xP!xbv^85g_&)%DXGCGzm_;s^%jI%~nB-vx7Zeoy z@WT%wTMAzP0r)#33WzrTf5U$dA3l8a=+O|9JnZ21_J8)l!NHI%1uv7yl$@MAg9c`U zii(Qv-Mcr_E*>#Ko|QwE9p!p6DLZ?PyK?wP>dK_5$r5xt6qcHz zYuBz>t$$V~V=|entgP(%_3QER@$bI-?xIDDz$|i~=ybZ$($d?vZ)as?k$DMrBAHF# z>2^v=N@Zmw!OqbESt!s+rcR+uCzKO~;-`MWUnoXQ7c@DPXJuko>6HeAt5O7A8k&%d z|C&su#ful?I6gKuCK8F3FJF%1xZCZHjEn?7QGa2w1RW2BrKYI0wUx!##*G^{Y}nA$ z)O6&?5fnuS1_p?eK=jG__3Jlp-rUmCQdCs*ML%p!OPQvg{epp&3ZS(r{b zCkn++*}-2HjF=*5aweXY?u}k)ptvgi6j7FDNl4(o6B85B(a~0`wV|OQFE4M&k|l$K zgMZ(A^Ud?mKhI)`X*_6_nl2V&ot>R?=gxJz-5~PimtQ_~=n!!dK%aDUbVNl(jf{+d zag|C1UPr$~GK=8E9R-kO0XhM7%EWX+IZ?m(DIL#c!iec&N>1llq2B0~28yfFMOm6l zLO!3bR;wEu8@s!^H5v_yqL(jUZfk4PXn!;;mRK?e$5PY9VyvsHDC-FLLqTNzy=p0nb8t-lmf`I0G$A$gEE~=oTy*?l#b^@F=D76rsNc! zm4#QPR2nF*N*85mmW1TOH5yH0V`EQGPgPYFilPk-4Q*|06%`dMmN;g{LwgF#WPdCo zB7*#ACx3@Bcjd~JV`F3AfB!v#AU2!r+i$-G<3Y3pAx_*r z06MpC-+uDs$vJc8h(x01=4MJjZEbCSe*TFQCt_k^`uh3~A3hAe5+x=kN~O|;3l|c% zezV!UZQC~RW%IAU{yKmDyk7$VBi3rQ2M-=pDwO~uhDI_a2R!TK7k%jv6S8LrJ#*0V`FvKZ75x5}NnWqFySsa0VuCyvbW1!k zY+5K7@vP!m!bfRIZ*Q7#{Q14qjqKBCbfNEd>X8IY>%zJ%NZWV z_HddjeF%W}q?Z0w^;fpBsq;8(<{E6rGb(zm`U1m7Q}^wo4}0Oww4t%ZE!yJNL){og zu`|9?fKFX#e;q`_*KY1_+qRRF6YgX;gQAA0qutTb(MRZ6cm9Jh=ID*)Jrxxd(Kxwu zuMJxBc&M+h()!PMk?0DOiI%7)R6#q#;o%{!+`$LRUu5s=?ED&6LfWmW>*(qV#^VQ; zIMMm$TkFvu%puC)wiRpUxfcw^$0;30Tv0zO<+K0hG z^kfx4l?8Sd782>GTctJySUGt)IZ(E-v9bNrC*|8M3h5}kmQZj*5dBL+0@EaCDXs~) zJ61L|HPzMCHQ$|@nv(K7E$tgj?#@t-Zp7|tPfx;4NosS1MryZycXwA8%E)MVQk@_w zEG+El>4|N-aNz<&jN@$k11Tw~@(;gIcsw418EV9@I7IDO{t&S#p}fV)2?z)j6&8ZU zA!TI5pTCkdAQJiWl%<=T4=)&%1!(w{k;#AavfPe7DA0corDEmMC%l!El@~Wd1vGq( zjg32K1U5O&q+}lDdzymp?SuscKHG6zE-fwfs%@;U-s+XfRgjepJ){=}P^zk`-jGB5$2iN`_tD026^RB!whTQM#>npXbSF)~>l#+5=93=55*}d}QFm!OpF(>!; z_J++9H4F?56HhTRGD3lLa*Y!fhx_sUyT4}kK$eE~OQU?B&Ll2xb!`|ddf=rRMt3J| z%@)+Kw6x^o;~Rn9sKerw66CJ35cO3`As#nE!>llmKKdOC)ZR}-5bgQbd_6=RpPEFDWOX!Unvx) z_}r*nK2KCcL{m}GVoTIfvF|>2a;M{!prD}r!$aDKuuJe_ikG#*^Ili@>Gt;a-PH+w zE*3EsW@flZekAPA(s2HgBN~l1Gh_c0kH%nFA@|*LKfX~Rt4}f)6ck{0JnyY}Nlf3^ z-q``m%LlNW-Tt{&KlA+a!bN2JFpZ|f$y}KXj~iMP(e#HzMSc4iV_AY@cggmBhSaV* zu1(&bOIDtno3pXCJq6)NM3Avy$9`W}AQFl6o$yL4L0;Ylm+q9x%F5foN$uOWNzfZg z8ApeQ(vp&oqp`c|(i*CO68L_V@RHEqqRN z!ahw%=$tdjQcpy@E-o(a@9$rmtiP07j6@=rlGD=CBn(r&(eMQ(57!(+86XPWpA&&g zG6-?AfPlZXs9(SSSX|VALf@Fm&dtwTD{vD;!KTN_az;l-v$M0mx!iiPD?ot?2?;GM zENGEZy5~)djrR`@tV?ka2to90tdp~|a~pxt!%s&zRgSm&L)ccu*yGJT6(&Nav2^vs z>dJ}{m%hb|Jav#8bFZfDny6L^0C#}@=3FO6XR`xrg!WngVy)Lt5jU)@L9iV~gHzSs z4p+}2<>scI|7T@q$-Sz)JoWPewPnFMi)FIyCj=6Cv{s+Yt=Jg8<266?Vf%|w5hgb! zG4X295?kGh2^!sX5owWzlA=IqG@65h!+CCn`)oKI4i>r3CX`Af0t;IQBEaz`Siu*n zcc@gV2cd{D5y8R6=D)o(+}n$Ud;}?^PcQSR&boU`fFP>jN9(u%j?dA-L3&0;e(UAj z?Ceo`&_%TeF8==ic&i`n@4vHeQWq182@(kZ(a*OnY;9}X!wI z4fXbt%gWFw6u>ViXpBZ1oGUP=fBPnS7*~K2Tc0o^#KzWpPl$6Q!u9oSZEYnaB!)K+ zwid@I6w);Srm4BVQr%(7VanDcueA& z@^#@~pKc1-py~1?AJ-BB0|No@?F}=et`7b8f#5xXKdlqMwZo-+{rHRTt-hCYMV=hu zN4L~$vvtB$baW!Q8T%QNl9K_js1vx&%vq$McrEQIzm|`E5y(dbMkXDT=5ej|?y*!Y z`?ETP0($vQ!54#7PA%tKQegb?dea6KZDRA!*WaHPw;sS}f#-_05Qv+b8$%4_?jWe3|H2cNBU=`OQx;^yVu|7z>Uc+)-$!05d@9lEZ(t-}RJ-7L5YHRhFSVdrw>r+>W2G24wWVn+> zbi?Bsi3|)3oXnl+^0zpd8Tmc$W=RfS6f;I5!)71wfL7%IoZtZf=#NW`t#_vF6I-F`&Vp|`$;a;yJ{@SG+7b=`!|v<# zl8|{40!D+IM0j&cUY?k$swxyZ>Z%g8HytvhyC+DLd>c^IJc{s$!v_a5K!UV{`1vkf zss{cFJFR>PbJFZp5EALX06pLP9(|Jg#4dpt&v?suW0mG0WC_-t|vnBO0ko zg2K$g|C98RDD+CK(HtB?&EM+6FBjXVGyR)!-R|ud#)ZRxM|ea;>*2Ee89jb}{+C%< zATc~7hq1wfMkdVZS6EqD^M@1c^IKYA;HxT}x0kU~+5=Y+3k!=ShFW6f%FRN;@J8&~ zAr6$p!px+1Ed<}FJDV3L%^$zRQWHpx>n)uoCKh17%RlP{71n9Z@*Ih-DiiMm7q`Qs zB7sO9%0wYwu0wI$4MW4g_ja{57a-sk!%uWyqt-S|WoGhTj1T;M90s}H=IG(+sn<=i z;^2LRtFWJuBNsjElj-Y-PKq5hFy=>E3NHRPYoqu*#s6nmY4r$Jbqc~nU^+wS=;#0m zYC-aOxk-P3;*I}wHDC^52ADlTh$lXJG*#(h_;34Ue3~uB%7JSh4^KvV`h$}v)t8Ls zL;2}>k{mcv zi5df30-M>tsvBQ8{76!6S1KD%SWL^M3~c`zp8|mAOwC^DVL=>b1q=XOYP)btbqm?d|5(Gg)=}rmhkdg-Jl;)Dv ze8DkRl0zdG|Ndn(=e!R76;R`NrM#vcQJs*>_uXJpAom(x>OD6)JScxutu?Qv1py7rPT zbdAHJVh` z7*!Tc4Gk=xn3$NFaEiJmdm~hCDMMC5A-n2)L9_cr^s5NZ=ZV%Pg*6vNe z-?_B3Gv9sZ&YjZIQVQ$yiKx`h_Rt&F*4FTA%}xIpAzW2EY4Na<_ zA7&WCyX0gN>^nA-b?@aO;Q`bIS>FC2RbU~d75Di0<;$1v|E^-gRjkcL?5^~;{q!n{Rkc95kJ0`MLR#x`*ypG*8{T2+(UT1E<+I;_Xgu9=g zy2}5%zV0se>g(&{UZehdyl=U3P*ha(@WBH;ef=koAIldr+*(;#$;!&Q{V?gv>?cZ( zv7(|P0|P@!N=l#D^!T`2cRc6InU?mYthbvAc){{@b)F{zNXBzU{}pshR9sy3i(xkM z&`U^5OA7_3b8yhue0PFLm2Avh43iQECuai3BXw=RS3dhj3>%23 z>gc2kSdYUe$w^5cekSz&``@}8+ORf79eaCw+1V&&X676JafNWDiF>*o?=4q8?WM*wbXlyEtvHf*ACc+Pn)OHiUn=|mS@u!RVyq|>nuA$3Dn!(a?m5g26W3OM1)VfRJ2brEgGUr7? zBc_0WfVKA{Mn=XEGePTdY($T1w7#*VF<>egYmaq-{{QSDdlj3$EN1I_NQm&Zzc-g7g z@bIe%-8nXSWGv>7k}{=(FeTjFgq;kD8%E?;j)|~udFnoS@y_Z%T+L zCnv}B_RMzjio%#$H`r}=Iic~ww&%LA&KIi!j2l@;o-2VKYvmv z#Ya4tqfuyRXz1zbiB%3d(5*681Jsx!lCkPd6{&UJoQ{#@U=~NPad2eO=*d>^^oD|g zfq~rI+m@D=TnS23Nmg^Dyh1`p8&i#JVutd?huJk5a_^w$RR!Y`5^xb%yP=2QUNN9b8YsjIz=wtHUk#Ubaj7dPfX-H`eL3T`)Rzgn{XRJbw#U^~Xx}S0 zFAuBjYcyj)a!k<15s!#b8-n~@&Pzve>TwCu)6S?(e6lRM&*CHh&BO@mt85&wz zULG48gZ_1Jij2(`2_3RFGWam?KSBK{&KL=LyldBFC-Aa!b8&ESTix~*_h~*$tEu(Z z&UlG!MXAV?5gt zep6Uj7|F=Xdv0kN>UX#`($(y^8sFOL-RgCwx|CW|Q&U;F3(elu)y3nsoW@>>L`6r> zuCMpZ+nE>}=c=SfoWG%@q^ujD+u7YcJ3HH)ZWeJ^QZ+O*jHOf6)AN9z_g6P|MfR<7r@x3}*u^kDfkyB`|cj*7{t zJ2@Ssia6t3rQ)+5=UeMI@;C>ofkG-XY~`Z)!us*&&%b-igTNbxp8Iieal_u{yL2J6 zrlA1ezyx98;TRGsD!m;YI4{+#wO$===p%{uY>k1nG&MD4WpN@qZ;Ch-M@ABMiDrEA zzBri~A0G!eVGMZj;)U1w(IRk7~Tv16A#qfDjYom7R*pMfm{|t!o;NYM)O^i{Y;=>0b{bQC6oQs`qZt81!RaK-k zKavF_+l}?>USZG}022mOD;|91;p3aEvt=ZUeCABXdhZ?u^3$qj59cnXZw3$#vNiXO zge~6M%Brsy7EYA*Wk(q0fFX2Ybd|hx&^7&XgqUUrq%xUo&J|e z5PD9|hZfy{NVjj_j!B1oqNb+KZsjrlg17uRCWd&gSTPTlKok{K5^73T_06(tknVFg0J!;y>&c)q0fl#}?n742HXTQB=#%LQJ-v9oNcd<7; zo#&}vO^pCzHPtXYHulKSkWQ&oi#e3f{lE&j=kb@vshiudWoTqXTSMbXr5R|0@1^>U zebqL=^_t&9+J8&F#(9{?BRN1!Nf~V83)sIi_stvyh{>t@0U7mrmdX*+*eHUan3xJa z{RK%Ac=hJ(db7Q?F@rBp%1CEZ4fHP1EBcr1iXNNN`yZs^>(9^eR zBNu09Gu63YPB+y9Vx@bZ2iszGS6hw}V{fn5&N!hu;@EYf%ygF?ME7+k$HvAguf4Xb zs;aUYs|cXS6A@{I->A>XK&o{#HGvB=oExE_JLgMzWxBq7tGE3l%k1RCKu9MJT#w$I z9~vHJD&tE{NijAtxg%`6^EMyUMtp3nrmimNi=jLf;Gd4Y%^A9~D^;uTU`Pt|4$61P=)=oZN6CdkLE}wo3j*6Oc-0QvQWH)PSe%PP}OEC6>^s&Xhd>LOU0cx^f)<7U{6dsBdo_NE``oJMag{wZPjJM#?PqvFp)=`T6on|E`HfXKsZ0-YbNL>gLVJn}S^H zbf8@|hm=B~B=QRiEG#Ymtjq#?VMtW$Ug}zUpC;CSJ!IY`@ z%ZV~S&1VG{mwO0@K@&wNzpq5b`}ZbBM)a5OA49<*MxYCH*J@?T7qjo5|NT5YP1}x{ zrAwDnTgj-fv(S?~!1?3H54MJ!GY|{N2bXPQju9?{CS47U-S!)X@*%a2jg85PiF);R zIfaFaWUYQy(a@HF-w|G3r+>>!O4i4#Eivd>SuZ2d)c$5yS4YcqSUe>-$i0u3^Gc`- zvLd`+yjUsHDFYUm`~BOmojxX|d!F{bm)?N6si~H#>Z^tC@7mfVI1J8l-SGip_M?9hDbc^Tb=BmcS9#E0R+3WmDt9tqw zM<6*oEh;256vL=9f~IhZL>3kmnhRP1RQ(5v(}m=h2t5zaR;@tB_iTU@kk{du4B<2) z+IG1a3a&b7_KbZwmwVz07|BC>zJJH_gUYu&S^oGM7sF`2D^Ax#fw4>;(^o=Y-*bOu zcxh|5_x|X>z{-oVweh=7Yr4pr(9qAuS9=^fB4{Qy@&J0NugSTM1YL2Jk*fR-;E^eP z^X5$z6_qCak3V3cF#aJtLo{CKMll~mD}dD7}-7!w@SJ=s8Vw`H#dF#)XdDx3T9Apg_4@L1J$PHv*nvw0rKKRG zPY_wU}l zLw+qUvj!K+=std&MHAdWf9={e@KJ}GGrd24#Pg+zx~ijyAEt}bG>Vk#daMkwW)L}? zJ$)95(rjLb#xlpkdkogV>u6`5lGiMZ;*Rl1@gqP#Zi6N$ljOUmT_DWzCtjMHM}6OB zV`qQ+_U*;_$tJuQx9$g@hHa-PS4k@ii+6WT@sY&D#0T&0wvUV)038-~w||tex3@>5 z{r7ZhD=Xg{WCpZKY^viF-_8!i7&zR;AhqjY2 zD`We>B^OBx%fWT)*3+SUHROZ)p$%I+6G>2@_pjX}aO9F>2x+*pzj3d^<;#~ro&g`A zd4GKPz@xPnEDWrIM?!P2?d{>e#?z6?o6N5_W`AG(P6Un&>S9Mmk-XROsu4mCs$<2BYd6|+C$HJqVkWE5(S5g(8$;F104AFrpq4gi7%Wdi^W zD%x0(>m<#;LN6sXb+pWoj*1FWj|(vK@2%(+tjkR>-v{C|BjxlAp3_pLhkN4L0wxkHgb!^+cB{jWPKfVf?!h!-JuhY7Ogai<| zfq^)o?G@$akLq5{f*Q?l)QOfyDS%N0?XT2|**7v`P-{ce-V|G-@#Z>0Xe5~?VrY_R)ouC8Mf6TOLd{v7QtmWY$#VRLbD zX%-rXqO+o+q6pWxGO3}S|DNvlf(Vg~pk7{F3|fi)odq=q^l88N!_n53Qot%PD5w*7 zB3;}wq`&<_ZXsk4-W>7}Jw3fopFh)3Q&&}2Gd0RHe){wYfMBN8yKFCu9DnM3yOS=i zrY~M2Pucb!wI98ewKWY5&G7K>WxqD9IbK%QZ(qJ(Bf1>%U>zW}g2L#Zv7h}EpsOd( z_#`{v%8e`(W(*2$*E??~EhU9YZvnrhuP+8#PLUZ%9?y@3jV;RIC|6xwiuB%us^`z1{XIE(qN}S~HA6neaFtG6ui^YxzS?{7 z<0Zy#nL$B8uU})e7kUFmfO5<=&LqoMUr8|ZVx6KOA;ChxiDw%>Vj<0{TmAa=t5fSg zJHvJ`A#>1W1yZNbB&@HmFUnt0Moy0T_U-9LXTlsy)=rQY(=DE%F+s0<{bs=KF;Bh8 zT7EfMcZ)nUZet7HaA#)+WWArC-}spyoAH6E3UzTwi5e|2!Y3&B+|2A6^*tg4NKm`X zpxNl7AE-gqWl1Y54&*_yKzK;Bc7{CHvi%iAb?==7{nwrzt#LakDNH0oIQ@dELgsO~ zv5bMibP~TM&^7!OJp+RX0fzA^3k`r5(A6vl^a27SKNSQ7Tsq}VL&-1Xn9JRo zmk5^l9C%fu#a@xVm;a8aD0L1q1qDS$Uqx6L!L^{*iXE_H)*#_$X1pPM2?>0(xVVTV zVQ!xP`^E~PEf{@-=kDE@2WT)Y;^%)&_SiKp-$2iLT-cRZyJ8*4FsQk@)}z8d_4HWJ zeT_CQuWM)+pPX!hECM|0+427BV4jMFMZxI?WJDPBLPC#bBf5>j^&x%GF*!;JrH`w- zIyz*frLoR}fq_e^#{Q){ZFJtJzU4)C)m)hG#-LPEh1-qGA;y%CnFDVQs_QN9R``IFya1l`=TBYYVv(nxuyJv5zvaOn-G&;P0!TIb2%fO2 zA14ksu;fWCW*gYoZAVoB{MN>aI@|ZEER*FXxWXLV+zHcRvMMTNO-*{r8r$33Qki|- z-Aeu9EdC7*!a<)ge1JLtaR5Tt2noQDExx)3*)X`bbuUR_8RRCu!ZDZ|2-axgH`dp! zU%X&ry?f``S0Yf&LM1)#c!N6sT*k%>IHqSV2~<*6R)!V^(@~(eN(2G|;d%Bo3Rb=P zcnO#_-RqcD=EPb}A{)G4IjCfCj13!|P^5?v;1;-75M@|C@WD5elKT2bIy%lPLj@rR zy2>4qbeq5gAdnd4B4AnGw@tt|s#x@VfiYN_e{Z^M32EO*mQ3jQ6j2}pzCY!Cw>^0d^4gmhY3b?dsj1dBHWBKN=5DdD zEJ0wjInyc#Iqq&Ni=wHiDVQw@dY(IXBnL&;NN?O|^*pHoCDGUS3P@{dAt+Tj^b*~D zFAs+Yfm1 zH7;RCXQz&~c2aWk30!~ws#X;UKVH{@&B=sHeEM{DY3b*YyB64%4`Wt-^wcyo`g(c} z4h{%CJA3GFJ8ehD>gHxKBrz$;3vyQTv%OI6mJD-kM-QX25Qsta>+NL7l;_F5eg7WT zV>Z*|N2m1++18g zW@hNxYptf6C>u4v0F{(nLLldEYU%Fkx<{=HumqA570xnj2^ols=WN#d7ab^ta}YxL zY15D$Z3)LYqkz;cEG%YA^1|??K^$e2aFd5>J$j_j?xLvJHCFk&va+&(!lD}&&7fch zxP$nJ8OcwNO+k|a^m%xC$}mI^9JXp_;JG=d#B@wgx8&qp3g}?(@x{Vj_>p=t@v>Fz zP8Q3R8(i2v;2H%41x@(a6XcD{DRM$lC=@m}_OHT1Jxxt)#PfL1VmRV){+zf2ITSf4 zn*IHKP?QusT}jY{XY0DkWuYVIlAbeSn1I90(H-&Y{FOBB@D9RHXRa3bLJkYtjBY zO^|r?Wky8&fMyaE6^)=4%F4|ZFlzH@XlT$X(q^5VfOrncKFpNLAdlTs;D(vb*ucPD zmo203&lA5N(Iu5bMj+cz-qb|h(*?Cs|3@@sAmH3ibT%d8TdcwScOZPp!M z);bCL50#Zzh~6**>MQv&U^!xBVev>;mt`tKofbo)q4;%H#;cVtU(gEO;IywI02*53 zw||3Gh7`{FX1#KB1X@u^$==Qm(`WW`(CFysA4j&)&&BEKbO>Y`5cQ=3RDTI3IX^!K z<%ffV1Ns)(>Jgk_Sror>C;Ia&h}Mni<`bBrv1=D2$dxOQ{o&6OC`tqqf+ET_&m${2 zDBRlJ1qqMe^&STSKgSmLR9K2D`it>4&|>!Cr@3txknvpL(^*&~B##waD;wPQ+1M~% zzjAbJ-$|0lVNifc4gd)?{|ikcBcp_$MN%B(tsX})y^E_WE7vIR`v1-q9RTavczNHD;Ial+^G=v~f#KUMrcXD{?39g_4!@X|2j=}8gNAQJ5asUjENG9=2z&3H$;#%KRs1A|zWK&o63PM`D<#EZ{#zv`aM!jok^{uTkH*0-|;ObQvBg(hi0dhJxRQdY)vY`vh%3eA@Y5n!fNJmF!Z9~`< zKLVewD&W{*WNL~A`S4uWJyV$F>~nc))##Je;pzJm(6COR|hhJKzv%b znP4ZQtx<%KFcJo#ptdv>X|F(B7#14p4tB)W))v5LZG9c)l6PMWvFII?@A?*p$b^y? zydcy4;g|>9h}?7Dpzf$Hrt|uXu`daJ3u+(D7;O?YjU|?fp^lND;F+M(bWg74pEKlXw z+S-~GNA#prCeN)~x7gTLz`uaO0LTY%dAPst=z{3?=*QL{cpR4cz>;Zf zzB>8ZL@(}sK!Av!tnq3Yy26-R?a~UQq3;@C(pv>36B`MBP26#1XlcoOr9DF=X^K^! zTA%h=Xl!C49s)xY4Si<$nBuZBXM1}rpT0g-4xIjJN*LWmM@LiCdd57UraDhpSTNJ$ z8fSQt4SRrW9UN%uGXt64R!+e~0J+*s|5+h(C1Ppm&lwpR;AA+=L`C@rb@-6ot5-h(6rjLM{0q3)V9LJqptrZTbG5O)-W8-C z!UID}CpxS0w?Huz6mQH(uqEMafPvbTRE8M6UIhaK1Be@1FV01#lkUP@&R{jitZHC( zy1yTH{`KR>rw}$$c-{hw4j1Gwpla#J$h00m4w(v2gfJFv3n?K;*Cu9pU0q$dX7%MT zZ9n20KTF-~85Qgx;o=}?XJ(emX?|*c!*%p6;4|a_a3lgE-auHGiau7Gc zNYlZXl7a#h%r8gg1bL7tFz*^~67cDtSQix38Q1~!Ps&wczo^{Q!V{B{Qk>vp=*X4yke?nf0 z`~nxg?v+_sxN?4W;*#3szI?d7T~JgcopVnMUy*4L3bmSX{!MW3x87blA-g%?*oiYg zh}}^Ggg16Zj2xYuaC|0eU*dw~TKDAxz<{g~@o{2LVMCjm=IC;qZ#hG306j!{*L`>4 zA(F^%8NVZ@fhi=HB9DRz79EcfGVL3NhmZfb$)&uuwifyYvn*}gyElarH^>Cx8G z`gniz*<~2{1;2R{Mg1??8n0GT>!y?P5(A_oKnfE@-k`G<78XuVPvK5*rY51?7!1A1 zp#4FoSFr6ij| z16(YfWyQr|A=k;K-qu)+VIna7T=#mcr$>-_F9zc9!lEJwLQUpXaF2+B(Mt`H6``@R zGKZ-9_gg`arr-DW8q9qNS%#vMvf3Oe3E9NYDhrYhl7F9DufGnzDTwLw{yn3toQq_A zISeBIjpvIZ`@R$o$_@ZVW3<7{=+BWYj8p*<+}z!vU16-;T37cMVhm98P_%GR;`0(7 zw}|rwOmIYF374MLtuCD&L|`~bL>lbziscR!F75cVlJ z2h!s?J0Dh6@ij$geuRt>1e!9Dzr!LlfbHL{rpvmm*9D?=8_SAggMu4QvLOmG%IH!l HBftLzkb4?< literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-table.base.argb32.ref.png b/test/reference/ft-show-glyphs-table.base.argb32.ref.png index c762dc749d4f4076bed9560a0076eb4d7544a696..ed691248974f52789a0abc42c7796ae3354d88b0 100644 GIT binary patch literal 9975 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 HBftLzkb4?< literal 9893 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 HBftLzkb4?< literal 9893 zcmb7qcQ}^+`}ajwc0$=gR*0;!_YAi^vQqXeGdr@y2cbe%xUK9xGE&(iD?&0ev$LPm z=db5Dp6~H{zQ3#ENOIqo`~7~O=j(ipD*~miNQ6&~k01z|h`s=l6K zShDr6!?@p;dL`6aB7l$WPcxgZ^*#O_9xUbfmZ6GSw*xGLSM8CX5QDhu$Stx<=JFOu zkrH7bMFd7E6Ca|-g46Q<{%~^YDuRrcTM{5eh83Z#$Cj3sG{R0S%G>QElDk`5nVkfF zZh1<@#l>RuB#4TN$^?l8%iX(oB_!w(Ii@RDPZMR6^xF7w@4Ko`cmh*L`z54)YNo(a&a{_HPO-0T_q#qtw$FX3Gnf4 z?d?r9`3NIL4{BoSdryxKmX?;ZYqCYAILMUa$s!*2zZ1ujCdDdqT~d#b3mQAiOZVp_ z$0xwY=Z$=9YpYE9A~|`iH5j+Bpa4yyqv9DkJTXxpaPH5~&rk60rLFyKd3kwsRL^)n z;Bes@5*`!7s!W!x^zrOy^+%m+RaF&+l&Y%zV$YjvJjOP*wwX?K{Pk+@*VY_-e0*-- zF4^7P{pa5cR;Qt%;p1}*KU&$hx3lZ%=@AnbpPZObDq^~^vby@n!b0NYk1S6z0pfSG zdzqNH*>jVg=Xl#KMM+IfEl)j7Mv^&BDc-@}UetX>M_c=<`*GB@+oMB6U0q!=DdY0- znp#?96cmDX!|ZM^Ybq)xYoE-)3wZ077wySpSjl+&&rdxOsRISPBf0pklf#{X0TglA zB?JQl<2v_2c*^&H^W&N8#c?ckHiJwwG%4~?l!?j7*{z|WIEamd1J~`_OFM`4_4U`q zg@lF8ntku_@N5j_sKO!Q;NWa*Y+PSI2xq>08&2K%yo=x(&!=BXoQczo&s+zy$jURQ3i&k9wmb(|PrX^-$VUc_IXSO}8#%YRL(C$^(#f2+>EtXz9^5skM zXWNe-KD>cM(~BQ{(~wLPv`@;+ydmFB7p%WSPw?4(2o^c;v9GVssXdgauC8v_u{q7u zi)BzvR#p~;8i3P|JZ$@RuSm&mXUr@h^X3oHV8-u7k@O_TL$Uuuf&a(qNA3A(DJg~P za8A`YGZa^}e$7=&iHwS(zzLC=UF=QaFj7}j6Zb#y^6>C*cdsfgUcYAM%jdCX5Gj-&m2KE_Z`*h~ni1G8heymJRb7-oJleT3Q+u zgvm8pSy|b2mfX{GKT@c}V(Vyc_13LhP?@SKDp}dt7(WY3n(b_DTlp5$QJOuTt}K}@ zal^wpE4j3^wD3;!q^1;SBBz6qfdL|AWyR`YcE@`(Zg@vC+zDM+ScpcG;$aC13GLon z?|se=rkcJ|!v?{Au%SUg4#9xU~|`8F_6>b|N6RT!N_p}7?4PU`vaXv5=_j2(vOHsS*oWQ3Ea_WoYwqMYbBPh?(WGN=b1QWMXSEl!@paPxbkwt z!^1y)`gG5Ak@nux7xjWS(d@Zz-carB+52#Db0_wZ>W8*%FLd)6ef#!}pO3FKJ|~-8 zHBxyH+9b9*J;w2Xne-+&D4g6Pe4GS-Us){%*;f1p_o_pySuuG zY42vBUIZ!Vi2ZuK_vzu67&-+71!$Qc&@FCmyIqO52Ic!YJ1=+VoIztCyiezqR&sSR zJ*Ru%ohU|9S_xkRp|+)+_O`as;s*yYJbMPedkra^ryDuAxX7bA(CSzsRJ?K1Tv{d1 z{aU*IH`p#!rv!!Coy0Bch!vlZkj(ucDKSz0{L>$lo?f+e|GU7zz$?rOjpt{_v$L~Q zR8#_oWKkUghI(h^RYgUFNKkOFa=e(^GAUwC$oD=GmxMk;%8@?S+S)oS=-|(2SCikd zhmFnhi_2G0p&{?yy=!PV?n@Kx?(XLE{#}*V(AX%Zq0v7yG?eatl>gxa4;x!vef?2q z0-JW8dWXeF_#bxmuTZ4FI-+Dl2@OB```y3aBRu2#$ibn}W8Fwm@yk^Di?H{@QI*8ylPP@o{r! zf9d$g_V%k^*HmY9Fvlgi0MSg5iTySqM{<`eahRWgb4an=IPTr z2rBkuJ&nola3L9yBK-tN%OL50KORtZw$k<+V*WXrN{8!wf702Qr>3%!+>ytm{#E;I zs<;oOZLtlR#9r7yYZ>sY6BqX>9)W{*u9r*ha4j~elr;+aQeS3d> zl8%=4amvxr5x;fctMd?S0?My)Ov+COGNgwmU3U9!*5>DPAa_MXy7J;}?d`L#KjJ*7 zfExOG7kLF^czF1(sA%_jTlf{`d0|*$Pj7F-8u4I?{K~hy*tWaW(yJpM9$HvzAMM%i zR-oADUGB0Q$|?ZVt}Vf;hlaGET6h{{ch%!Q$Ix{z?YO$SQhXi^PfIgN<`xwdU0Pfm z9UHq82b!TvSJ42Gr*4pTqxdwZ$xDV#t$B-PDP1LacH@^R!A|v7O*8NHnp?2-~3UR zkenPQ!fSEk&YgJ1aH#R&;o-`2!0FGQKU=&i5S2gL>6gU#38g%BH;l*i&rfN9Rae&? zzvKOzY;0p=W2!9iYin!JHxJuGuV6hdobGW_Wl#0mX=cePORZKQm>+sHv!C-CKccdN1`l+z$Sa6Zrok zr*1haV~0CSAu>0-DPAQc0BHYOTFT4I3-fU@VG|VG`*?opY@MzkFaOZi)c;^(sEP!HZil^`wslIPJv>+9>1e}7*3QIVyht*vb+n#BD82Qdpc6{Nh@ z(a~YdGd4P!)INLvH7`a~@5MU>?MGeirmn2m#j^mh#4z7k>=n3A$WIo5C9lvGrmFSu zcz+!!b)IRCxXMO`6$eMt;Sh#)Q}fP|Ep{ z`SbISkM>z3Gm@|sV`y6~h}P2pBiWS8KYUOJ3~g)6^2;LQ(ILw(FTW#rak-CuFhNQ^ zH%%*TEi8U5EF>P0?CtFd^u{yYym?cM9*8Z;7@_9MCpeM8#l~kl$j^x?dxPj2#U}fq zm65`GwCa|YHUw+Kwam5DuVR9 z;m3_S-A8+-?|xwjAY_pE(b9q-s3MKz$?tJ2hpQzYyJDfmzPTyOic3=R7>9REz=VgY z{&=#jYPhuzd-(Rvn>5LQ=KA`#F(nzsK&n{C6E7nq^kOb7PTC{aeFkR_QwTwhYM}M;5 z78X9>u1ge1bk(1GTj?|<0x0Sh27Ckyc~I?;`AGeGeo4vL$jHK$m$R~rUew;|*d;08 zvU?sGJ?}w9aK+4P%D(4&^!e*Pc_sU1r@a%Fh+t;b9d}fUd=TUI&dy}O(dog=rItvF zTcv;F6?Nlae}Q~kYObgz^Nfs)tlP$}P4HXwTt{l%ev?t!+vLDEuZbnOxw#jf)@>I` z7^6AKj4VwXy{2#nslc0crn9qK6Zhom-sP~`@)a7LYf(E~1A+?Iui%AI^qNk_#>=}^y!{x#3;NW16 z(e5NAmRov7|1b=Wjn$Nv{@LHJE-%j#n5xMboy?n`pYNMi-4}o(tu^LBZ0zkDYHKr$ zlQAygkdu?6_$C3UW;b6`A6*)?3`UG z;O77>(xj57y9owdtjgtRG~Ni+{?1Oe4HccZ`}rRroiOdQT}0P5A79~&s08+b@Cpck z`sD+4RQ@=kp+Qud6jlWXI;^a${M@4z4;l$e`Z_hWRvFh-<%hJ`=C=*YUqo*8q5Rdn z_f|##L12!-J~K%8UZbV(|5T@zQJD-uxnvMZq?cr7N+&43($6j~RttNw zP$=qFdp|{p2wSnMw5&{;F2b7;$Smxf=f;oD&dxX@dQp%2OmV&^TVKYflykI(!_Mu8zZPI7(wisHF`-8T3Hu10LB0O<;$Zt9zHrocLjun6%`bSsRfjT*#4E`aL&n$gDQ=H@CYUERsIOH7+q78hAb@%;bJ;&LWg5`=vY0KVPuY=^ZAXS~@@^g{__ ztoMO3ETE>U%B0L9q)6@_ookjlC|BfunuxA{X?b}$z$^5zPW_Hsbv+NX6xYK zyFGu|W6s34MZ{s87leIeB)(xvC_T23udtvXM|Ad_)I-}Cg5kUuF+z@A@+zvT@L_Y? zU_C18>M<~~xF(D3W+wrh?@y}CmGFvW=2)jNN+C@ zlA4wVummPc4IHuCY7VEqq*MC_=<4eI@v=w${{Gd~)xHwx z?XzIl^rTBlvayBL`@97b2Mu5|+ZM7Nd!3Mw5ay^lpGn>+nK2_NywG>MlMQ{Fjt-ry z`(&vv?av>V+{OX~DKkh-PmeX#H83#9So#$$+oY_$d43o(I66vy=dqG!e-P(N@dm0B z|7~vD5S0TN)g|*wn*W^##ToG`E^e!nExop`&Ts#_HDCmOx{!c?mzNhRKax96Nk&Fy zddMWpzR_!oNkG7Dd%pA0ml%^OJBmp0&mlUT;3~`)=oaSQfAb5fcysfk|LM`miElK| z8AFb9>eHuBE32x+#l$?;#%I^oih$Dp^O}^N{zFNL8PL3iWFujxA4niWz)4v*<%H}0 znju(HL5yHifoAx3TncKWiG*}`Sy?TjHM0jK2L=XQ{`_o3oA4)h6A=@C{v|`dz|@;A z3EQlrs~gAiCOH`wxpCu0xkg2KIUsd*Ru=j`6AQ}=#&BWhX%rum#*-&yN-Q9Y>Ypy) zQ$t&qRadj(G2OZqm9@pD@$S!|FM>x%=zDr3NbO*2TNiMChRfh<4))fdzt5|v`Ck_o z(|1wY?&~Xt_<~v>e;G?7Oe|6& zd8=?T{K^6obhORM->vdqkfgEHg7~MtE5jT?jNs?UTH=6PgZaZm8P(|%QackLPlk}< zhv*pXuw1a?sw#I^SN;Xtg2?TVU|{2Rb_H@w7=eH`@Y%;FCof6)`JDo1l{`P$8O&DH zu46Z?b-_TuT~X)=$7DB_yFrANmJP!lWMYE@Rfq}rO<7R`4bpW=X1-hUva;_!TztA&QcZNLk%DD#@Eb|klUnQg-c@_#7hx{@)^7-8j z)Pjqs%g?~FGCt(>+qa)PI^aCw;#wD;YIcsptWOj5bR!>^ScxX1Vu2nh`P146&V0M)e&_qEHo6xFU*UqtL^|A z$-Umso;^2auJ#O`Nc*Z3FZSdYR#^K57gCBp=?^%&bU|)lPE0L@hK3e6tpEquoUFO6 z#vuTN(A~phap#aJ&SqseA5I;B3|L5$w{?BsBzPn!F^7RSWpPZnjlxmL$T6jkBT(O7{Xe=Odn zslaWNl$6pX{2q&DM@2964cXb*F)3?tCPvC-0j(>raqLUIhxt4M#$fS1 zba>mTJ0LnVu$!A3+LJOOG7=L3=hZDfc?kg0)YO!Gy+)BJ4o(u_ZfDwOvvY><9f(^5 zjL7dpLr?$yd5GNg-bHhc!fkf<_CVr{q?JViZ@G6)~S&T^X6q|K|8p|mX2?L1{oV0qq$ZlT<1O$>Fets9$RLjVEijANV{62uUMtV z$HOQTU0c%C(@RQ7cm$V)MOIc7_=uNqiOH{BJ6NC8?~v3?hN-;NpRSrS1Zr&X)f8Kz zO1fkKY=D!aqquns@|KLco}1FQ?Zss%4?yWv%FUi2qH$|vZPoQZdHnxTfT6OhQ3?v5 zKbSOte7hV3jALtS>kZ!{oDOeKgfUKum|n~as=2YT5lkZA-9bfkuvfoarhbSL3zT{# z_?lH!IegbOIu6wJOHAc0K~wjLiHW_Cxq*lUoTdI+V1`qW?f$MJ3sSlw9=)>udk;@&cGjPX=wqB<7(Et zGAH48#2%e}W$k9n3 zPa!VQ8WZkXxx>qgx-KjrfED=bmxVh~SB2;1G!#$(40D}mG(md5FdyHI^UenyA=}5G zJ9ew=$AIjeg)#V(Ms-Y2Pk)JJSlaRmBc_wNav$U&sQ#R^w6ywW&9t5UD5FXmts-VH zx}t~Nr*E<->*?xZAk%jR7Zis;$s*>E34kgAT7%~Q0`nv|CU5 z_+XO+NlZ+{pR>X8>*4|%HRbJFXwR(;hOYAp^vQFss~YU&rVSpBFwDR{`MKo<7Ak=L zRK2^&pO^KXOCaV z5*I40`%!7whtfJFG7n3a{v_SJtAdXi2n-*N&6q{!a<<=2KZGevZx*^m(A}RRu3|9q z@o5T`yZzQe#+!URlO35rcQ7$Al}hIQzW*KwYc`=E0|P@Ny)uQfRq|~!VnimB7fPLn zhli8XZh!4NmNbkTfF;ZpIP8YSGdOk#SHOj^AN%m~HKkhf>29K z>+vlJmR8r-i=8~&!Uj0wPtG3#YDq{)fShU>YRr}$j>5hT-fDlpu(0r#X_c@|gbo}7lHUKwi45+bFfEXKYkq)?7q}CG^9cX27{iTrLgdZXTu z`ynZu1Uj-o3~CE~lhl9N;H4V|xn0B)cj&1T=qZ@!#yD4;4W|YNr|}2vOOz|Ebn!yk z;Ji5ryCT^h<&8zk-NKR%m&@{8jPc|8H)WM75udur$_m}<2E&+HA$obE4waK4FXFm* zUq%KK0s9080qY%tmrDqEZKr3)oB0Ota>!)zUPebRlPYsjWA5Vy=sO!YoY zUdw5UTBfGcQ2pLdm4&L7)0p<|crX3_kbGgp{f~+8Flj#YD>HL;PEJVk_fofT>i!K@ zwYR$vghfXa4wGOIfc8~ZQu2ad4Kf=({M_>Lbz0i!kK0TV)A71x=B=3Z)0l;Sr+>GF z5FjqVC8IaXA=VnCg|2jPa6p|9C3oj!Cm=l2+e4c`M+ENa>atwBb`5OZe4WTaPaU0C zv9bN&jsP+Yd$9X@oj1W%MdIYF$an5T#l}Ley1Jo~` z1@IPRWnF~d3(*^3B`A(3Qc^8|J`L3hj&^orcv#@QWwy2rWXkG)Fjn?!qs!iX@fU(K z#Kqk`=eXyAwstV_C|I8>qo4~R%L(1y0(}7-My?Ye{e()zlZUte0Lorz08 zK)?~Jbo_e*E^rOFkRqch{3vNvRaJzSmv_9z*-Ty@n=Y~gW3Ae4cR{%j1Y{a^+t|T6i4%< zn)_`0j$u*W^*sYaw6ZTWM^?u#UB}Q6;tx^pT^p;Bl_99l|2rqz7Pj}k- z@A0v{t?k0n(wv_flc>lZa3s~(9L>Na^EFvc~2I4<3-vi9pK3M)U0CFCYFjkN~$$&8{nJTu^*WNEMOqF_U1Kr=&DE zP6~mC6dsP(NU!V1zq+`XTUZG1j~esyK^@>rN=nw#xl;}2TLC$z^M`ahyooHUz`Fn0 z&f>_}ShiMbWsp|q*LO!rx1h~AI66OnW(C&OZg!p5JW%H2jTN*}Fh!2i8K5foI$qX{ z8er^9H~C;>wBzU5Y3l0UOjMaU6ZMra0}9Gr!Tx)$qF-We%gZD^^)2|K^*R|*S3Q7T zjY8CJX!z`4!$cxI0OmOrzZI(T_pe_=&3Mh2P&RDpsi^KXfEL93XUlVw^fyOn&iI_1 zn_$&&)U1NpQa%uI`6?@<;Mz5H=B+_M%WBSJAegVW(i{-%!ucmIDT$JT;^w4)kkE9s zV@iF}Oz2ATZP*ATCr(Dwp-KT;ZphnF2x-jP^EuF zbhCN9z?IEw?t9>4NI3Q1>~t?lQY8Nl69P zTQM^;W0;Q?8N%U!sXgVzatcxu;dK}<<=G_Sgy^TBu<+2g8O8qIA}rT_2<9E|CWvOo ziVWx0)_#n9&yR?-$kH7MC8FWoV1&-IGdup7;@pf8SoY|Ph1-j3l?pB{E=tPEnt$=Q zi|W^vKt^IBP#4k1iVhBIAWk550@dSaZVoZO8>CTiR8UbMm(1N>Bxht~fVa=!|F^Zh zy&b@}v(pw12qOA`^V0(mv4Jtz^_(i;paPq}@HsY#pF%uzLpJoQMriwN52y%nak>&_ zky^jwYIs!TIOK{|6(UAOwC^DVL=>b1q=XOYP)btbqm?d|5(Gg)=}rmhkdg-Jl;)Dv ze8DkRl0zdG|Ndn(=e!R76;R`NrM#vcQJs*>_uXJpAom(x>OD6)JScxutu?Qv1py7rPT zbdAHJVh` z7*!Tc4Gk=xn3$NFaEiJmdm~hCDMMC5A-n2)L9_cr^s5NZ=ZV%Pg*6vNe z-?_B3Gv9sZ&YjZIQVQ$yiKx`h_Rt&F*4FTA%}xIpAzW2EY4Na<_ zA7&WCyX0gN>^nA-b?@aO;Q`bIS>FC2RbU~d75Di0<;$1v|E^-gRjkcL?5^~;{q!n{Rkc95kJ0`MLR#x`*ypG*8{T2+(UT1E<+I;_Xgu9=g zy2}5%zV0se>g(&{UZehdyl=U3P*ha(@WBH;ef=koAIldr+*(;#$;!&Q{V?gv>?cZ( zv7(|P0|P@!N=l#D^!T`2cRc6InU?mYthbvAc){{@b)F{zNXBzU{}pshR9sy3i(xkM z&`U^5OA7_3b8yhue0PFLm2Avh43iQECuai3BXw=RS3dhj3>%23 z>gc2kSdYUe$w^5cekSz&``@}8+ORf79eaCw+1V&&X676JafNWDiF>*o?=4q8?WM*wbXlyEtvHf*ACc+Pn)OHiUn=|mS@u!RVyq|>nuA$3Dn!(a?m5g26W3OM1)VfRJ2brEgGUr7? zBc_0WfVKA{Mn=XEGePTdY($T1w7#*VF<>egYmaq-{{QSDdlj3$EN1I_NQm&Zzc-g7g z@bIe%-8nXSWGv>7k}{=(FeTjFgq;kD8%E?;j)|~udFnoS@y_Z%T+L zCnv}B_RMzjio%#$H`r}=Iic~ww&%LA&KIi!j2l@;o-2VKYvmv z#Ya4tqfuyRXz1zbiB%3d(5*681Jsx!lCkPd6{&UJoQ{#@U=~NPad2eO=*d>^^oD|g zfq~rI+m@D=TnS23Nmg^Dyh1`p8&i#JVutd?huJk5a_^w$RR!Y`5^xb%yP=2QUNN9b8YsjIz=wtHUk#Ubaj7dPfX-H`eL3T`)Rzgn{XRJbw#U^~Xx}S0 zFAuBjYcyj)a!k<15s!#b8-n~@&Pzve>TwCu)6S?(e6lRM&*CHh&BO@mt85&wz zULG48gZ_1Jij2(`2_3RFGWam?KSBK{&KL=LyldBFC-Aa!b8&ESTix~*_h~*$tEu(Z z&UlG!MXAV?5gt zep6Uj7|F=Xdv0kN>UX#`($(y^8sFOL-RgCwx|CW|Q&U;F3(elu)y3nsoW@>>L`6r> zuCMpZ+nE>}=c=SfoWG%@q^ujD+u7YcJ3HH)ZWeJ^QZ+O*jHOf6)AN9z_g6P|MfR<7r@x3}*u^kDfkyB`|cj*7{t zJ2@Ssia6t3rQ)+5=UeMI@;C>ofkG-XY~`Z)!us*&&%b-igTNbxp8Iieal_u{yL2J6 zrlA1ezyx98;TRGsD!m;YI4{+#wO$===p%{uY>k1nG&MD4WpN@qZ;Ch-M@ABMiDrEA zzBri~A0G!eVGMZj;)U1w(IRk7~Tv16A#qfDjYom7R*pMfm{|t!o;NYM)O^i{Y;=>0b{bQC6oQs`qZt81!RaK-k zKavF_+l}?>USZG}022mOD;|91;p3aEvt=ZUeCABXdhZ?u^3$qj59cnXZw3$#vNiXO zge~6M%Brsy7EYA*Wk(q0fFX2Ybd|hx&^7&XgqUUrq%xUo&J|e z5PD9|hZfy{NVjj_j!B1oqNb+KZsjrlg17uRCWd&gSTPTlKok{K5^73T_06(tknVFg0J!;y>&c)q0fl#}?n742HXTQB=#%LQJ-v9oNcd<7; zo#&}vO^pCzHPtXYHulKSkWQ&oi#e3f{lE&j=kb@vshiudWoTqXTSMbXr5R|0@1^>U zebqL=^_t&9+J8&F#(9{?BRN1!Nf~V83)sIi_stvyh{>t@0U7mrmdX*+*eHUan3xJa z{RK%Ac=hJ(db7Q?F@rBp%1CEZ4fHP1EBcr1iXNNN`yZs^>(9^eR zBNu09Gu63YPB+y9Vx@bZ2iszGS6hw}V{fn5&N!hu;@EYf%ygF?ME7+k$HvAguf4Xb zs;aUYs|cXS6A@{I->A>XK&o{#HGvB=oExE_JLgMzWxBq7tGE3l%k1RCKu9MJT#w$I z9~vHJD&tE{NijAtxg%`6^EMyUMtp3nrmimNi=jLf;Gd4Y%^A9~D^;uTU`Pt|4$61P=)=oZN6CdkLE}wo3j*6Oc-0QvQWH)PSe%PP}OEC6>^s&Xhd>LOU0cx^f)<7U{6dsBdo_NE``oJMag{wZPjJM#?PqvFp)=`T6on|E`HfXKsZ0-YbNL>gLVJn}S^H zbf8@|hm=B~B=QRiEG#Ymtjq#?VMtW$Ug}zUpC;CSJ!IY`@ z%ZV~S&1VG{mwO0@K@&wNzpq5b`}ZbBM)a5OA49<*MxYCH*J@?T7qjo5|NT5YP1}x{ zrAwDnTgj-fv(S?~!1?3H54MJ!GY|{N2bXPQju9?{CS47U-S!)X@*%a2jg85PiF);R zIfaFaWUYQy(a@HF-w|G3r+>>!O4i4#Eivd>SuZ2d)c$5yS4YcqSUe>-$i0u3^Gc`- zvLd`+yjUsHDFYUm`~BOmojxX|d!F{bm)?N6si~H#>Z^tC@7mfVI1J8l-SGip_M?9hDbc^Tb=BmcS9#E0R+3WmDt9tqw zM<6*oEh;256vL=9f~IhZL>3kmnhRP1RQ(5v(}m=h2t5zaR;@tB_iTU@kk{du4B<2) z+IG1a3a&b7_KbZwmwVz07|BC>zJJH_gUYu&S^oGM7sF`2D^Ax#fw4>;(^o=Y-*bOu zcxh|5_x|X>z{-oVweh=7Yr4pr(9qAuS9=^fB4{Qy@&J0NugSTM1YL2Jk*fR-;E^eP z^X5$z6_qCak3V3cF#aJtLo{CKMll~mD}dD7}-7!w@SJ=s8Vw`H#dF#)XdDx3T9Apg_4@L1J$PHv*nvw0rKKRG zPY_wU}l zLw+qUvj!K+=std&MHAdWf9={e@KJ}GGrd24#Pg+zx~ijyAEt}bG>Vk#daMkwW)L}? zJ$)95(rjLb#xlpkdkogV>u6`5lGiMZ;*Rl1@gqP#Zi6N$ljOUmT_DWzCtjMHM}6OB zV`qQ+_U*;_$tJuQx9$g@hHa-PS4k@ii+6WT@sY&D#0T&0wvUV)038-~w||tex3@>5 z{r7ZhD=Xg{WCpZKY^viF-_8!i7&zR;AhqjY2 zD`We>B^OBx%fWT)*3+SUHROZ)p$%I+6G>2@_pjX}aO9F>2x+*pzj3d^<;#~ro&g`A zd4GKPz@xPnEDWrIM?!P2?d{>e#?z6?o6N5_W`AG(P6Un&>S9Mmk-XROsu4mCs$<2BYd6|+C$HJqVkWE5(S5g(8$;F104AFrpq4gi7%Wdi^W zD%x0(>m<#;LN6sXb+pWoj*1FWj|(vK@2%(+tjkR>-v{C|BjxlAp3_pLhkN4L0wxkHgb!^+cB{jWPKfVf?!h!-JuhY7Ogai<| zfq^)o?G@$akLq5{f*Q?l)QOfyDS%N0?XT2|**7v`P-{ce-V|G-@#Z>0Xe5~?VrY_R)ouC8Mf6TOLd{v7QtmWY$#VRLbD zX%-rXqO+o+q6pWxGO3}S|DNvlf(Vg~pk7{F3|fi)odq=q^l88N!_n53Qot%PD5w*7 zB3;}wq`&<_ZXsk4-W>7}Jw3fopFh)3Q&&}2Gd0RHe){wYfMBN8yKFCu9DnM3yOS=i zrY~M2Pucb!wI98ewKWY5&G7K>WxqD9IbK%QZ(qJ(Bf1>%U>zW}g2L#Zv7h}EpsOd( z_#`{v%8e`(W(*2$*E??~EhU9YZvnrhuP+8#PLUZ%9?y@3jV;RIC|6xwiuB%us^`z1{XIE(qN}S~HA6neaFtG6ui^YxzS?{7 z<0Zy#nL$B8uU})e7kUFmfO5<=&LqoMUr8|ZVx6KOA;ChxiDw%>Vj<0{TmAa=t5fSg zJHvJ`A#>1W1yZNbB&@HmFUnt0Moy0T_U-9LXTlsy)=rQY(=DE%F+s0<{bs=KF;Bh8 zT7EfMcZ)nUZet7HaA#)+WWArC-}spyoAH6E3UzTwi5e|2!Y3&B+|2A6^*tg4NKm`X zpxNl7AE-gqWl1Y54&*_yKzK;Bc7{CHvi%iAb?==7{nwrzt#LakDNH0oIQ@dELgsO~ zv5bMibP~TM&^7!OJp+RX0fzA^3k`r5(A6vl^a27SKNSQ7Tsq}VL&-1Xn9JRo zmk5^l9C%fu#a@xVm;a8aD0L1q1qDS$Uqx6L!L^{*iXE_H)*#_$X1pPM2?>0(xVVTV zVQ!xP`^E~PEf{@-=kDE@2WT)Y;^%)&_SiKp-$2iLT-cRZyJ8*4FsQk@)}z8d_4HWJ zeT_CQuWM)+pPX!hECM|0+427BV4jMFMZxI?WJDPBLPC#bBf5>j^&x%GF*!;JrH`w- zIyz*frLoR}fq_e^#{Q){ZFJtJzU4)C)m)hG#-LPEh1-qGA;y%CnFDVQs_QN9R``IFya1l`=TBYYVv(nxuyJv5zvaOn-G&;P0!TIb2%fO2 zA14ksu;fWCW*gYoZAVoB{MN>aI@|ZEER*FXxWXLV+zHcRvMMTNO-*{r8r$33Qki|- z-Aeu9EdC7*!a<)ge1JLtaR5Tt2noQDExx)3*)X`bbuUR_8RRCu!ZDZ|2-axgH`dp! zU%X&ry?f``S0Yf&LM1)#c!N6sT*k%>IHqSV2~<*6R)!V^(@~(eN(2G|;d%Bo3Rb=P zcnO#_-RqcD=EPb}A{)G4IjCfCj13!|P^5?v;1;-75M@|C@WD5elKT2bIy%lPLj@rR zy2>4qbeq5gAdnd4B4AnGw@tt|s#x@VfiYN_e{Z^M32EO*mQ3jQ6j2}pzCY!Cw>^0d^4gmhY3b?dsj1dBHWBKN=5DdD zEJ0wjInyc#Iqq&Ni=wHiDVQw@dY(IXBnL&;NN?O|^*pHoCDGUS3P@{dAt+Tj^b*~D zFAs+Yfm1 zH7;RCXQz&~c2aWk30!~ws#X;UKVH{@&B=sHeEM{DY3b*YyB64%4`Wt-^wcyo`g(c} z4h{%CJA3GFJ8ehD>gHxKBrz$;3vyQTv%OI6mJD-kM-QX25Qsta>+NL7l;_F5eg7WT zV>Z*|N2m1++18g zW@hNxYptf6C>u4v0F{(nLLldEYU%Fkx<{=HumqA570xnj2^ols=WN#d7ab^ta}YxL zY15D$Z3)LYqkz;cEG%YA^1|??K^$e2aFd5>J$j_j?xLvJHCFk&va+&(!lD}&&7fch zxP$nJ8OcwNO+k|a^m%xC$}mI^9JXp_;JG=d#B@wgx8&qp3g}?(@x{Vj_>p=t@v>Fz zP8Q3R8(i2v;2H%41x@(a6XcD{DRM$lC=@m}_OHT1Jxxt)#PfL1VmRV){+zf2ITSf4 zn*IHKP?QusT}jY{XY0DkWuYVIlAbeSn1I90(H-&Y{FOBB@D9RHXRa3bLJkYtjBY zO^|r?Wky8&fMyaE6^)=4%F4|ZFlzH@XlT$X(q^5VfOrncKFpNLAdlTs;D(vb*ucPD zmo203&lA5N(Iu5bMj+cz-qb|h(*?Cs|3@@sAmH3ibT%d8TdcwScOZPp!M z);bCL50#Zzh~6**>MQv&U^!xBVev>;mt`tKofbo)q4;%H#;cVtU(gEO;IywI02*53 zw||3Gh7`{FX1#KB1X@u^$==Qm(`WW`(CFysA4j&)&&BEKbO>Y`5cQ=3RDTI3IX^!K z<%ffV1Ns)(>Jgk_Sror>C;Ia&h}Mni<`bBrv1=D2$dxOQ{o&6OC`tqqf+ET_&m${2 zDBRlJ1qqMe^&STSKgSmLR9K2D`it>4&|>!Cr@3txknvpL(^*&~B##waD;wPQ+1M~% zzjAbJ-$|0lVNifc4gd)?{|ikcBcp_$MN%B(tsX})y^E_WE7vIR`v1-q9RTavczNHD;Ial+^G=v~f#KUMrcXD{?39g_4!@X|2j=}8gNAQJ5asUjENG9=2z&3H$;#%KRs1A|zWK&o63PM`D<#EZ{#zv`aM!jok^{uTkH*0-|;ObQvBg(hi0dhJxRQdY)vY`vh%3eA@Y5n!fNJmF!Z9~`< zKLVewD&W{*WNL~A`S4uWJyV$F>~nc))##Je;pzJm(6COR|hhJKzv%b znP4ZQtx<%KFcJo#ptdv>X|F(B7#14p4tB)W))v5LZG9c)l6PMWvFII?@A?*p$b^y? zydcy4;g|>9h}?7Dpzf$Hrt|uXu`daJ3u+(D7;O?YjU|?fp^lND;F+M(bWg74pEKlXw z+S-~GNA#prCeN)~x7gTLz`uaO0LTY%dAPst=z{3?=*QL{cpR4cz>;Zf zzB>8ZL@(}sK!Av!tnq3Yy26-R?a~UQq3;@C(pv>36B`MBP26#1XlcoOr9DF=X^K^! zTA%h=Xl!C49s)xY4Si<$nBuZBXM1}rpT0g-4xIjJN*LWmM@LiCdd57UraDhpSTNJ$ z8fSQt4SRrW9UN%uGXt64R!+e~0J+*s|5+h(C1Ppm&lwpR;AA+=L`C@rb@-6ot5-h(6rjLM{0q3)V9LJqptrZTbG5O)-W8-C z!UID}CpxS0w?Huz6mQH(uqEMafPvbTRE8M6UIhaK1Be@1FV01#lkUP@&R{jitZHC( zy1yTH{`KR>rw}$$c-{hw4j1Gwpla#J$h00m4w(v2gfJFv3n?K;*Cu9pU0q$dX7%MT zZ9n20KTF-~85Qgx;o=}?XJ(emX?|*c!*%p6;4|a_a3lgE-auHGiau7Gc zNYlZXl7a#h%r8gg1bL7tFz*^~67cDtSQix38Q1~!Ps&wczo^{Q!V{B{Qk>vp=*X4yke?nf0 z`~nxg?v+_sxN?4W;*#3szI?d7T~JgcopVnMUy*4L3bmSX{!MW3x87blA-g%?*oiYg zh}}^Ggg16Zj2xYuaC|0eU*dw~TKDAxz<{g~@o{2LVMCjm=IC;qZ#hG306j!{*L`>4 zA(F^%8NVZ@fhi=HB9DRz79EcfGVL3NhmZfb$)&uuwifyYvn*}gyElarH^>Cx8G z`gniz*<~2{1;2R{Mg1??8n0GT>!y?P5(A_oKnfE@-k`G<78XuVPvK5*rY51?7!1A1 zp#4FoSFr6ij| z16(YfWyQr|A=k;K-qu)+VIna7T=#mcr$>-_F9zc9!lEJwLQUpXaF2+B(Mt`H6``@R zGKZ-9_gg`arr-DW8q9qNS%#vMvf3Oe3E9NYDhrYhl7F9DufGnzDTwLw{yn3toQq_A zISeBIjpvIZ`@R$o$_@ZVW3<7{=+BWYj8p*<+}z!vU16-;T37cMVhm98P_%GR;`0(7 zw}|rwOmIYF374MLtuCD&L|`~bL>lbziscR!F75cVlJ z2h!s?J0Dh6@ij$geuRt>1e!9Dzr!LlfbHL{rpvmm*9D?=8_SAggMu4QvLOmG%IH!l HBftLzkb4?< literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-table.mask.rgb24.ref.png b/test/reference/ft-show-glyphs-table.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ed691248974f52789a0abc42c7796ae3354d88b0 GIT binary patch literal 9975 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 HBftLzkb4?< literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-table.rgb24.ref.png b/test/reference/ft-show-glyphs-table.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ed691248974f52789a0abc42c7796ae3354d88b0 GIT binary patch literal 9975 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 HBftLzkb4?< literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-table.traps.argb32.ref.png b/test/reference/ft-show-glyphs-table.traps.argb32.ref.png index c762dc749d4f4076bed9560a0076eb4d7544a696..ed691248974f52789a0abc42c7796ae3354d88b0 100644 GIT binary patch literal 9975 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 HBftLzkb4?< literal 9893 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 HBftLzkb4?< literal 0 HcmV?d00001 diff --git a/test/reference/ft-show-glyphs-table.traps.rgb24.ref.png b/test/reference/ft-show-glyphs-table.traps.rgb24.ref.png index c762dc749d4f4076bed9560a0076eb4d7544a696..ed691248974f52789a0abc42c7796ae3354d88b0 100644 GIT binary patch literal 9975 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 HBftLzkb4?< literal 9893 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-antialias-none.mask.argb32.ref.png b/test/reference/ft-text-antialias-none.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c638c9ea6667c74e2632515b0ca023f21ba0d53f GIT binary patch literal 295 zcmV+?0oeYDP)-H5~te^Yug?V1_OUi(0;ou}_nN6kp?Q(pMD>Hkoe zPv&FlhYs*E%3nV)5FRB8;S>~tPG&-E7tE8HC}ny14dGM+mb*nKGv+Zzk(XZ#bm=%= tZkbvfCOFHOn9;G5c|`RJU*Rjf6CaJUi9Umflu!Tw002ovPDHLkV1nhfdSn0q literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-antialias-none.mask.rgb24.ref.png b/test/reference/ft-text-antialias-none.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c638c9ea6667c74e2632515b0ca023f21ba0d53f GIT binary patch literal 295 zcmV+?0oeYDP)-H5~te^Yug?V1_OUi(0;ou}_nN6kp?Q(pMD>Hkoe zPv&FlhYs*E%3nV)5FRB8;S>~tPG&-E7tE8HC}ny14dGM+mb*nKGv+Zzk(XZ#bm=%= tZkbvfCOFHOn9;G5c|`RJU*Rjf6CaJUi9Umflu!Tw002ovPDHLkV1nhfdSn0q literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-antialias-none.rgb24.ref.png b/test/reference/ft-text-antialias-none.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c638c9ea6667c74e2632515b0ca023f21ba0d53f GIT binary patch literal 295 zcmV+?0oeYDP)-H5~te^Yug?V1_OUi(0;ou}_nN6kp?Q(pMD>Hkoe zPv&FlhYs*E%3nV)5FRB8;S>~tPG&-E7tE8HC}ny14dGM+mb*nKGv+Zzk(XZ#bm=%= tZkbvfCOFHOn9;G5c|`RJU*Rjf6CaJUi9Umflu!Tw002ovPDHLkV1nhfdSn0q literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-vertical-layout-type1.argb32.ref.png b/test/reference/ft-text-vertical-layout-type1.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4941965b43eda051cbf961390f830ab57cabdf93 GIT binary patch literal 3062 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png b/test/reference/ft-text-vertical-layout-type3.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7b428c1fbcf7102d3417dd4dc0f682415e063e GIT binary patch literal 3610 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type3.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7b428c1fbcf7102d3417dd4dc0f682415e063e GIT binary patch literal 3610 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 literal 0 HcmV?d00001 diff --git a/test/reference/ft-text-vertical-layout-type3.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type3.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7b428c1fbcf7102d3417dd4dc0f682415e063e GIT binary patch literal 3610 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 literal 0 HcmV?d00001 diff --git a/test/reference/get-group-target.argb32.ref.png b/test/reference/get-group-target.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d162775e7b8fa28a7eb4123c37786547cd711383 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_b`PZ!4! zj+x0R2|vy^@ERnFrY0mLG+z2IDVWsr|Km%A*rtgo;fxGiIxPIbQ`vNZIv6}%{an^L HB{Ts5H18k# literal 0 HcmV?d00001 diff --git a/test/reference/get-group-target.egl.argb32.ref.png b/test/reference/get-group-target.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d162775e7b8fa28a7eb4123c37786547cd711383 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_b`PZ!4! zj+x0R2|vy^@ERnFrY0mLG+z2IDVWsr|Km%A*rtgo;fxGiIxPIbQ`vNZIv6}%{an^L HB{Ts5H18k# literal 0 HcmV?d00001 diff --git a/test/reference/get-group-target.mask.argb32.ref.png b/test/reference/get-group-target.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d162775e7b8fa28a7eb4123c37786547cd711383 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_b`PZ!4! zj+x0R2|vy^@ERnFrY0mLG+z2IDVWsr|Km%A*rtgo;fxGiIxPIbQ`vNZIv6}%{an^L HB{Ts5H18k# literal 0 HcmV?d00001 diff --git a/test/reference/get-group-target.mask.rgb24.ref.png b/test/reference/get-group-target.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d162775e7b8fa28a7eb4123c37786547cd711383 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_b`PZ!4! zj+x0R2|vy^@ERnFrY0mLG+z2IDVWsr|Km%A*rtgo;fxGiIxPIbQ`vNZIv6}%{an^L HB{Ts5H18k# literal 0 HcmV?d00001 diff --git a/test/reference/get-group-target.rgb24.ref.png b/test/reference/get-group-target.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d162775e7b8fa28a7eb4123c37786547cd711383 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_b`PZ!4! zj+x0R2|vy^@ERnFrY0mLG+z2IDVWsr|Km%A*rtgo;fxGiIxPIbQ`vNZIv6}%{an^L HB{Ts5H18k# literal 0 HcmV?d00001 diff --git a/test/reference/gl-surface-source.base.argb32.ref.png b/test/reference/gl-surface-source.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..018297208e7e69c63dc671094b4659d2f64f26b6 GIT binary patch literal 377 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 delta 2838 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 diff --git a/test/reference/glyph-cache-pressure.base.rgb24.ref.png b/test/reference/glyph-cache-pressure.base.rgb24.ref.png index 14182f11d9b68c9682d5ac9535d52b587b9c8b13..a6e1b061f43ff3c05097dce3b6274eb7ca92157d 100644 GIT binary patch delta 2833 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 delta 2838 zcmV+x3+eQ#7OxhNHh<(vL_t(&f$f@oOq16a$8Y6DUaGArP_P)VD`2oTR6u2@=xWR` zb4wwND)KTB4H{=7DqUeD=)#O+m7t<*3T(Wnqm&5(iY+hMCK50;5LzQhy9(M8H>f2r zTGqQi?)LneKD1Qv=Wof+&tJFaIrp6JIeoa#y$>Zo2*F$4@_(;n(f?Y&Ti#-mx$n*= zPo9`erdJNC)oNe7crh|EVl*0GImiMv000&!;0>o3A0HndAAiG1UoZBB&H07SQwxL; zLRem2J~lQ6|A9)S_V@S0m#43PL6BDbdsxWT|;gu^_ zl9H14@893k(_UzIx#WP*nimg!w)}TKDTe*Mgi@ILOg%| z{KSb9yLa!FNF8GD6D=X2su(0sz)vIWH`t<4H;bAO= zTrTHZP=8cZ1ORAgXxO)JAD7F`&dwei8$%QG^752QWo~Y6N=gaZ%WiS|!vA({(xw+Xgi%=*`O-*fUYcre8#l^)u z9(;I6>S_Q0fDp>%axX8h;^N|#mX=?C{S__3k&%&wg@q+0B_t9_ zDwU#@HX|cr)22U1bBqVfpcIM{hVge>7C;j~V%F4=q`Q?|gvNC*Uu)3U_oSr>< zhKxs!9LdSa!CJR&-MaJV&wusRS0oZCEiElOJG-*7l18I-badEnuO)NJvy&GSmVcU> z8XXlmoH=ub&1M@62K3QrG-@;&g+f6hkp>0^kdo7PAgxJ_v z6nAoRa?P4Gwx(kc2!xcBlz;EO`)=E|Z50(2JRZ-@&CS73n>KC2#GE~Q7633fI2aHR z5EvMU>>Li~(W6HI03wkn5{Y*1+DtAcR`2 zHZ(L80I+rIR^&f8ILKfy{QUf^6f&92#Kgql;9wSu6(1je@Zdog7Z>|Y#|o2M?B(md3@!UAlBB zJw4so*%@GOln4ZZm4COBlM^`_rKLF@3T-O^0K>z>WHK25Kqiy5TJ7}oG-hA6Y#9K+WHNp6#TPL#F&8gh z#ID*eheDxfG#bnqt;%>f9F9~fmC0lr4u`|x$Ye4!wsPz4?tjkA%xq|ApwVam0EI#! z5{d5Lzu(r@R$E&;J3DJOn~|r7hX)#v$>gU`pJFdr&_)(fSXekRG9nNNN=r-e`!~pem<;w8z@QjQM5{a~7 z!v@Dgp`{)|C>D#~fB$_nkxV9|UA#`GlS-vKcI*HEeD>LABoe8utt})ZgwN+YqAD^n zl1in1`Q?|BlaqCIb#l3UPB#vR)7siPHZ~R<9L(Wx8h;xb)oL}i8X;6F6_?8`FE0-Z z3quwU4-Xd?7k77e2;n#1e1lGGR)mL#dwP1JKTC~9bMM|gWPkSTnO?6a5{Wx@?1+wz ze(>OdtrE6w-HJ{s4<9~kX=!n!YD@6#bwu90dD(2XpPye*QPIrI3;^J_-+sd`u~;mr zRC@gQ@qh2X|K4hrySsaGa&lZ;+~&=jv8UhPcc(xg5DJAkfd47IA0Kn7Jv!Ha51oxw)pMrn0hf(V|6{FJHcM=YLLZZSB00TwPu3>+74EngRm@uU@^% z<#IheJ@IZ#CKEm10RR*Vg+`-o+_=%z)z#9crl#ii-+w=HFLfyv3q z!NI`{2BWvPclGMk_{g4~o)r}p85tSt)~!oONQjGzL-xMDK02Kq5fQ;+u?7bRv$C>m zm4C2*|9+uRNT<_x?b^lVa_24C3VeGVkvDH%H#ax2SX^CQO{3Am!ouR?<1MeQTD7XZ zy*)oa|I(#PRueNbGu3MKfddErW3sjNw!_%im`bHW=i&u2Z>T^1_+xZ*)XHc!o7HOd z^z`(?1z-Vfom&@zUa!~d_4a*?M&pwwPk*e8Gcz-fA3w%USC*K~=A}!QDwRs~acXJ` zKiv_~33|@<&MD98p9PNO9UUDV85wb0l1wIBv0?>!xq+~GDzbyOxA(%|+dCL)@#4kH zmoK+65(tDjk3KKUxpU{VS}l=Clt?5#K0dFo{Mcvd(xvnIxVX6Z`}V&d%C ovzeKhmUaSs`wP0a{9E}8T3JYLv=2e6RR91007*qoM6N<$f=6C_00000 diff --git a/test/reference/glyph-cache-pressure.mask.argb32.ref.png b/test/reference/glyph-cache-pressure.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e1b061f43ff3c05097dce3b6274eb7ca92157d GIT binary patch literal 2858 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 delta 2838 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 diff --git a/test/reference/glyph-cache-pressure.traps.ref.png b/test/reference/glyph-cache-pressure.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e1b061f43ff3c05097dce3b6274eb7ca92157d GIT binary patch literal 2858 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 delta 2838 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 diff --git a/test/reference/gradient-alpha.argb32.ref.png b/test/reference/gradient-alpha.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f64b26a76f3160c3ae627f39972ce2778cd47444 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDw@dAc}; zNK8#$lag`wumelN&oc*pcSp3^cLx1vZETMa{<$K@^y0jqM-Dj8>5T9E&Qr+6_})Qy UnM3hDEud}&Pgg&ebxsLQ02S~np#T5? literal 0 HcmV?d00001 diff --git a/test/reference/gradient-alpha.egl.argb32.ref.png b/test/reference/gradient-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c389087bb67a2207517b74e09a4721a4610f5b GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDyVdb&7< zNKCEmx8`Fq??td#@Wey&b;`LMN nwtTxi#rXTFRF-LOFM9G7zJ)EBeSDP{&;bmdu6{1-oD!Mf4u_bxCyDw@dAc}; zNK8#$lag`wumelN&oc*pcSp3^cLx1vZETMa{<$K@^y0jqM-Dj8>5T9E&Qr+6_})Qy UnM3hDEud}&Pgg&ebxsLQ02S~np#T5? literal 0 HcmV?d00001 diff --git a/test/reference/gradient-alpha.mask.rgb24.ref.png b/test/reference/gradient-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3c7258d95412cd7c4f8d5c4b45399d1c4e10958b GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih^OdmCBzn=sxz^JB?=;Yn#n)c;Nv%4Be~=Uj0hqDls+ OkHOQ`&t;ucLK6UI7bU>} literal 0 HcmV?d00001 diff --git a/test/reference/gradient-constant-alpha.argb32.ref.png b/test/reference/gradient-constant-alpha.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7f49e2c6f56d703bf102146e86a3aeff0e7d2107 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDypc)B=- zNK8#m`Elm*0SA_Z#0oXn9;-f4u_bxCyDxadAc}; zNKEbR-^knGz{A|Hp~`%~|MV7qU2YcJ(?r_?yG`I!$BSGy_J)$Ox@SW zF=Oevn796kd)6sVEtdClzW>LJi&^;co1UKnI$`170`;-VpBNJ6Tg}&+V4?)Hg~8L+ K&t;ucLK6T0r#IsO literal 0 HcmV?d00001 diff --git a/test/reference/gradient-constant-alpha.mask.argb32.ref.png b/test/reference/gradient-constant-alpha.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7f49e2c6f56d703bf102146e86a3aeff0e7d2107 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDypc)B=- zNK8#m`Elm*0SA_Z#0oXn9;-iJMK52%#E)78&qol`;+05(V+ Axc~qF literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops-mask.egl.argb32.ref.png b/test/reference/gradient-zero-stops-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops-mask.mask.argb32.ref.png b/test/reference/gradient-zero-stops-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png b/test/reference/gradient-zero-stops-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..21465ce4a73fac0cf69f0fe07a36ff4c716c8c3e GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14Xz!T^vI= eW+o>%urV<3F)(hN^$N&fVDNPHb6Mw<&;$S*a}=)t literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops.argb32.ref.png b/test/reference/gradient-zero-stops.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops.egl.argb32.ref.png b/test/reference/gradient-zero-stops.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops.mask.argb32.ref.png b/test/reference/gradient-zero-stops.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a50f4cacc1af2df452336b68b75f92a36213baf GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`1|*BN@u~nRwj^(N7l!{JxM1({$v_cqPZ!4! fj+w~`4(tpJLJW-gzmm5Dg&90u{an^LB{Ts5%Uu(D literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops.mask.rgb24.ref.png b/test/reference/gradient-zero-stops.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..21465ce4a73fac0cf69f0fe07a36ff4c716c8c3e GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14Xz!T^vI= eW+o>%urV<3F)(hN^$N&fVDNPHb6Mw<&;$S*a}=)t literal 0 HcmV?d00001 diff --git a/test/reference/gradient-zero-stops.rgb24.ref.png b/test/reference/gradient-zero-stops.rgb24.ref.png index eb24e4b6ebdc02d80808e4bcc97699de3fed7952..21465ce4a73fac0cf69f0fe07a36ff4c716c8c3e 100644 GIT binary patch delta 7 Ocmc}{n_xE4Qvm=9_X2HayUHx3vIVCg!0I|hC761SM literal 0 HcmV?d00001 diff --git a/test/reference/group-clip.egl.argb32.ref.png b/test/reference/group-clip.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5a71b564350e6ebbe4cb4e0d9828e9e8f1342957 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^jv&mz1SA=!#t8u_wj^(N7l!{JxM1({$v}}>PZ!6K zjK;T@H}W1(;Bj?ykeuU_XXYWSQnx5OuCwRdJJa;lS$pfZD<^hLm*sRWcpwnOC;4HayUHx3vIVCg!0I|hC761SM literal 0 HcmV?d00001 diff --git a/test/reference/group-clip.mask.rgb24.ref.png b/test/reference/group-clip.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8a7532f710f8485029336d5df2691ba7810ad0 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^jv&mz1SA=!#t8u_wj^(N7l!{JxM1({$v}}3PZ!6K zjK;SY8#x;c1XvtJfAg)3$rfN*XB2$kHayUHx3vIVCg!0I|hC761SM literal 0 HcmV?d00001 diff --git a/test/reference/group-clip.rgb24.ref.png b/test/reference/group-clip.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8a7532f710f8485029336d5df2691ba7810ad0 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^jv&mz1SA=!#t8u_wj^(N7l!{JxM1({$v}}3PZ!6K zjK;SY8#x;c1XvtJfAg)3$rfN*XB2$kHayUHx3vIVCg!0I|hC761SM literal 0 HcmV?d00001 diff --git a/test/reference/group-paint.argb32.ref.png b/test/reference/group-paint.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/group-paint.egl.argb32.ref.png b/test/reference/group-paint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/group-paint.mask.argb32.ref.png b/test/reference/group-paint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/group-paint.mask.rgb24.ref.png b/test/reference/group-paint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/group-paint.rgb24.ref.png b/test/reference/group-paint.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed070cae08b9df517f898cd78e683004bc46a60 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhXtvAZ_q)qV&N_4EB1A!fVy%gahRnJYD@<);T3K0RZ*H8CU=S literal 0 HcmV?d00001 diff --git a/test/reference/group-unaligned.argb32.ref.png b/test/reference/group-unaligned.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..beb0ae2d15f27681acaf23bb9adf48c3613d591a GIT binary patch literal 427 zcmV;c0aX5pP)Cz+zK>zyS`1?`U=) zBMye|6N3&=YEy>RK|FRKqb!|+ie0y@{ zIcYf;0_arkK>(e~atNSP{R9EDsB;ri3EOE)7x8;r>5AO1gK?p%6nahR&fcb=P zlaYUQdi&7#M#JfHnO$8kZMKx+5=Tj)xEQ+GkaZCp02Hl7cx}p>p_{S0k`p5x@2VUV zd^4g|Wc-u5`d4Yc)=n^@b)dBArNb>XC4=i|o1n8VsdsVD!aI?)0B?7f2C=kP)rlBf zO<5z8#?LMf9)%>p*s~^Sr10i;&ifPKDK3c%Lg%cPW@RW1x-JDnv^SKj;Rm&3y-W$D z@(N2WrQ91zm0F2fs%!|U*5QNU+r9)g#o3d<4xE7C>~RveQ|(eTRF`iGVu7G1gpi?| z9QZ^H@!&mPKat&BoQ(c^IO+f8Ero1w{NH@SF?6%Brv03`A~@7DmqEY3jb{6fNRnoo j>|SBHluNmkOG)_z{kQ#5*cm?x00000NkvXXu0mjfdO^sY literal 0 HcmV?d00001 diff --git a/test/reference/group-unaligned.mask.argb32.ref.png b/test/reference/group-unaligned.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..beb0ae2d15f27681acaf23bb9adf48c3613d591a GIT binary patch literal 427 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 APyhe` literal 0 HcmV?d00001 diff --git a/test/reference/halo.base.argb32.ref.png b/test/reference/halo.base.argb32.ref.png index bc971d80983e322d1f044cee2cb97a9ca07a0e58..c915a242be8011fde28d315f6df42a1dc0a0aacf 100644 GIT binary patch literal 8594 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 U@<|;0k_CdijEZ!nq;c^70qlgobN~PV literal 8800 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 WcKg2j^`yuE0000B%nDO!rVyB2qfyWM%eUw55# zcK+;>WaVT%$&E5D?zU%Smg%tc-^nrf2L@&~35i(MEryy4d_T2%9UxxQyxCYy6S^F0 z%hxEM{f-?bt=UfiWYPT8KmGG!d}w3_JE7`W^ra!T?P7C#M^_b@C7On9tj}4TP()E! zJ3r4s;{I8yk}e?wbz%;c6!UASyJTLZV)uC1uHk~tE-8@S)2ZSJ;o~NR zq^}wBezmBSK^xayRF+)3Oz=&Ch1(gSi;cJNR1vd_&5Fv*^R|P3b>sSs7!Ad`waib{ z0QURW@6i5cNY|E2ZBag@%AAZTryK{wreJCspWcGo{jG219;I#uPb+4~5w{IPaei~E zhB2{F*b(;qjbPv!od`$A#B>m)@499G0-H2F0g(vg+=R5~*Z8NlWV!CJ0?Qpr_WfQ` z5f9OkU_&L_zSps{7ekE~u14g)$tBD!5kz!LTI41Nng`v!mG{0x3W&VBhOE+ zKo-KAU5md@uQ5pn$Se{M>0Re~=)beC-=41h>?2OU8d~MGz#bm2Ibpumym=WA@!fyn z|0Lf>+I4^Fb92@9N|8URTy|QhcRgc9D^PRJohU!DJw46aF4M48|1YD#r%xg!6IreM zXqjtVVM!%NM`?b=hj99KTIRt%w?pgBm*{m(r4?oXwDyX&1zKw}+_p(8n6dh=nTvB; zV#b@&%yS--@O7hQrrgdtS~>UjH%=`q zmqUJ)QfCWo*yAva>$yccIou8JEi_T7?1MbC4P)b$M{uc^6IYrOc)k9!4L9n4C2~l& zLM9z3nx#N&t#6oQbD zU&&WNW)7?@W0ik44^O?r4uW%;39)S&s{S^sGUF!K(Yu8avjToANl*zgwDk+&@cONR z_&`)dWkF~R6vKm!W*g@B?coOp0PMSOC?KG3>X99;w@(?b2lthW9wWy{<=1TWLzvBP z>GZ_nX05mEnFTu(Ets$+H*Wy#-wj|Sh~(xog=NlpntPs5v);ii?Wr8>JbjLx!IIQ{u6`duV367CIgPVYKSNdKGQLpPj~!G`cmr|z1=dAsQ{R`9lJ)ivF+*t8MmE^TSp4;J2;N->U-Y#T0oFr1Be+}&2On#14Kh2CRU z=|P)$U#{=mSB@dBDMLNimO#8Q-b)(sck6mZCqHi`goTr8(>H)NnEHjDSQJi|)0rZg zN6v)|tz*+4zR4E`?9g}<^bLhcQ=wZ$&gREpXvinRy3E`>IbGj%k4>v}!!sz}+=9>1 zf800mPPhn%tRLGiFK6~Me^yax&rrPY?sh=e$J2`t0-e__BYty69c0`hlk0bs#|87$ z!h(ryNs0Z||0S2d=wH({FRwN1byp5g!@O*27)C`+W`%qodNl)^SjLq-nVfPDvUAO( z$=@DmrszY(jR$LX2q^Vm1Pck@y7=ml-ZE!vuAm%Se4c^5i1M z+kdf_Z^VpzbVOjax=L2?$7>I!uiYn$m954|@X<25oYYw!i>UAk7_Lu*jg0L0v7#T? zw+=CaGjj(4hsyThB(Ooz&l9(8d!u4rrgqL-Zk7mX5Nz{lG_csuDckVVVnxKt&lbM^ z1y=)$>HQ0co&}1qV|l1TlzBr^;+G%K8Aiz9>*jr_83cYsSUTQR*fVC@_UAGJo!#vv zD1Eh02r>y+!%ETAqo=I@mlA0&2B6&ePyq%Tz$k+DlyST8HN#_uK?(qqezD+K{kLU< zRxWABstPo98SiO95x7~iCdyD?qjB6qg^A|8c2Dgel#BF>qDrojEa8OS_xVL&eLbUIdq$ZK5Cb|T}UvIP$3EmSV3W4;4CE;`VuOO7psj- z@dmr}N2nWOCB^#!^9#oEV7$T43iK@F(BxskfY-=hqsW~Rmu*DKmAVmtu3 z0wNe@4XKW!Xvq-JMrF_6bR|qzN44${qM%uS(ZY0Yk}54S3N?AtYpU`jS|(TUmJW9+ zT>O@^ljy)FGe0FQbuwLl6Kv>&aYpc}o}b>+CC{pr{}Aog)YLEDLd)_9~fM)wFzlYp5S;cRJx)W$`eq9vt7Hm#lct=6C?`Cl{31~5C^Ls8ehLoRR$}kr$_9{r0T45k@(~k#j!Qd1A{^hUxa5uL zna^4v_WQSiaK=a3yY7O0nv*8_b<|5Mz{rC=j^)7gn($KB?Me6rw|o>U0WxaZLIQ`~ zl!sNLOPqD78KRW-5hD_?<_}B=v^mw0%X{UgEKU5&5FsQ$-M=ZBS(XijD7aIU>Z;}G;Z}RGoP!~5$A8= zE{@_$)hdHX7N^};u~+=lQ(6vz{^))8V_fHJ7s~)u6c|7|7M07h;BVh}-_-HEc#O4L z3`b!Eh|dwQ_5JG+UTy8pxmepflS0XpQ8C5ZQ#H`wPz2*aE4)R-@S3iU?^hlh%JAhk zU&%|~fL#d@o~?5!b_;$C$pWlCA84ZzjEEQQVX4pUVxbu?gV=j61W}EwTIPPXSEY=u zK+SjIUctoC56GGZXHm`fG|F+??Qr%JU#m)WV1na+y4C<_R8gD_1C$Ye1;c&N?0nQk3K38F&oMwXSz?B=2p_3Gc?_x-pEc5VvQWa zwW$61x{|#p&>;DdA1fsVp$-Pz`bGBJ;!IT-ObHuvY?;AV`vyW}Ni0_|dn=d$9 zrQ5sfKYgAsY>__?%xBUbEk<4Z5Lbch)VSV2Z{aH<1}k&5Vpa65%O}qDffy9L;4GaK z4~w^md%&V5;Y@DI5&h$4k85CM;8={dju8=UmO}Rnrg&m-Owv$`&nw-Js<;v(3x83^ zPIq0AZ`9XAhlXJ_Wn-fpcLhkW-`iUp_Yh4}B(M>MgsDeD9KhIOAHfF9{&qgHU}WI& zTNQ`86QfUA- zfkcG|mU^z^=(zwSL7u6?UO=fXWWS?vawb!#`G>YA=cDTKR7aQ!m|TeQN8#ofml3HWdb6N(?HJFxIk>rkEzMX zLau+AUtv*qaZ7^6F zU;IRfmCcbk}UHia>uy1NH=TR^V2GkzJn zgpLEY6%|5|CM3ALZW~cfPVt`Cy;vF4M)v0Yiust!4Kt1P&Zp`!AYyqWYZ5Nh`g?Fb zw)#|*QEaveIBX6QNleyM3d++tDV;7X@ zU2s7UU}4e@)>kBE@g^AOEtixM2IkfOmgRG7@A(@%YD$lPWLbQA*%{!scX8wBm#HI^ zaO8A3rno@bif1&03%SQ#Oo9fFy2^e$N>>#rmn1)$aH#06JjOFbIo)8ps>IUr;lET- z_Z2VaSU(zB`6t~zyhpB>E!??{3-PduH+GIFn+o3DJUp-fS!;S9X3v?RzDGx4ur3@a zHfzG2BCd%fMzz@tI?NevdjLjOG1yuH51Ue!X0OWSz=0P?N3a|faG3C17^FhVLc}{5 zd?DrLy6gt^e4I%m`gG{ z^6Cqe8dmUKHYl{h(iJA$9;8g0{UiFXics_oU|R)nUDE6e_2+q-{m~IJwgUkK#_(Un71 zLIlrHL!yTdH7(}=Pw14Y#g-Q~f*!-0LnH^DFf9kfWN#{>Z4)?wMJydgg3lA=b^FwX z-jZ_U9pPq&)~yuLqAt7E<5TG8=6JWVvg;Kffi)z>npp=8yEy^n6;~n>a2s{iNwtd@ zFku{4b09k#n`xd6nIfdjPQKBY>Pq!=>t6hCg++-U!X{a)=XAbScCDzQaiRTjSuUTd z5K4UMNMfz|FaTg1Xj!maGu1#o80RjQ+9VN6^`|^8QbAvs`*{Vcog_x7 zrrp!UW5V`8oi%yqxWbGYW8f`0V}KDMwYI2ZuLU1eHRo*c#khJMGU<&@{`Y?x3xE2K zU260VeUui|b2As^dl^Jn8^{XqD0!;5Tf3rj1>{odg>~)3q>QgzyXCqyXtbIo;zGnE zy-=r1A)VbQ?8UteIM+{=hH7I#Tm~+A!cwWf)N-$)2r*eoVrLCf2<0 zY^_ojFmqz|Ha0z9$+$4{C;b73VG1Ql&@3aE5jYmpr|`>+_>Kj?C>U#kPxJuRYQdP> zS0~LVq@ef3Z&a!GN3HG#Ob-$M$34=~p-IYJhny#|eF|Qh`xRNP_k=Cwin(^BZt6hb zr^+5E73s>sA8MONhSm2%6LIEC{A(Hd}6~Wv^QmS}%nO$Ea3uU*iiS$hNIdDGS zJC{ViBWx+_NFx`b90o52aBKcxxq{AdD%H7RPOL=FRwblG-+Jk$YP=vpU6%e(v60ex zE(3_Wn28zgIi+hL=+6b8h@O~__#(n;(*KxlYz_)OcN%|@Pph3;#n(;K1Q8mj<+pro zA`RjkR#jE3n0gV|x%zA({MEgB2Ls#uRm8IZ+bq_3Q#X9*FN9@@o9gG;9wRA}j=Y}u zpoJe;N{1!0DJA!!0M%l&Y+|ylZ|N;#u?;g(Qv%~_QY0~Qhpq(r($>us*wA&b|LD$Y zxc2Y3?P6P(tW6b1bAVOmle2V4aD_w+Q&6%iVJ+TZVXp$w!{ngt2h#7bP|s?Z4#6Qr zxgN+>=-;@lk(&a%nB6x-Dh_w9cu$bM^3gt2pj4qz8c<{8yBb~V*dg5xt^b}%)It7T zi;jioVtZAgTc;V1WdZG3w_C@C-co_t4i2ASyAvc@R5T3~mV$~aUR?fNs5@O!M6K>p z8eL$|ap&z>3T4Y;9dC^2qSI2&5xj0@0-lgEyb0}T&CJnZH`6kUq3GyVSSCBtuF93@ z{8RtNNRsvb(@RQOku2+?B`$;6DSL3+MEy7PlOC(ClTvY<@miK57Y zGaDfJmj)BwsU)Q;ajJWS1%pH#B|#Wyc*a;JvnlxsV96Y529}NQ_N=kva0*$=UmTJH z9^~#rF%#L=$hiJ6ki9^v{p{q5HpKfqXYHQo^|#+7U)6ClXg7mBN&RET6^!0b zQ7>@_*by_I;8rA}a+&Ecb3`hbu7D3miXY;ybVqAMbhS(R3k{F)|J5c3Tu@0>DA>;G}FYoi4Ex+l2()pl7aU>MAnUE!bfhI@rq&FDO|EI-4(l%z)#P&9Bv2Z$zSKV z)vS^{r={*SSO=1hXR)*`Q&(h-azhHuXEVsVbc#$t(!&3+m#kxPJ{4?g?V|C&(HECs z+0mXVVc+OUJ#JoD;dTu8`zR`wmOt@xf>L zo&r}98N^^i90KG|nKF&~ZGY6O0$?%5X906-80MK1s2G?`Zc+;m@cbl!f+o??I`(_| zoGZR{lCqX`t&Tl0K^nIU;KwH>4+)FG+Q^{2sGBom78S<%Pw47L&}3I8n3@4GT%m|&)6#hscrV`l_@P!gt#S6Vg_%%f*k5jC!+q;s zRWV3~n3u#NfpXUu+A8bCA1%x5sY$bD_P%vysO^fLo%XB@mvw$-L>MN8e!cQti=j9^ zA&sKM)8AZl^BD@v=Hn~i6NV-ct*k;9yEqQhyf!uDj+>2Re~Q6cHsJ)}P>-$yJ0kk{ z0&s0%2l`yeAyftIzj#Akx1;L#jeX)L8!+sbV%C52MAa_|_2DKLAWm6Ji+w}kOW!F4 zk)R5aS+b(Jttr(uHdy^k>4)@qQyDkO?_5i-p2pVxDU39waRq28U1zfc;gB?%Lzt1U zj(<0*M-z9B0A@xU%e+l`oQaOv7;`?kuul7s4}c|?oR_fB_KFsk1?=3+Vx+1Jn!z;^M{`l8Y@%J?T8iI#}|@x-!(84;xu5 zc)>&3nHPV`yyK8d)F!0lsLrM0Rj z6Z8%G>W%i{ru__Cwn8Ph#cXsI9708`alwGaUc&^EE>l4=d2dl1Z11}tGpw$c&R%~; z-)oEbWqv8es3_Yv9C}{oGW=`faPd1iK+^b?9po4JeViAI!tCMB7~LER>{W8u?*Of1 z4yy>%nplv^yme>-XV25@sMxD|qVvPq1Ouo&Sn&10M*X1nf=YJKme_3QZMo@fjelt9O{NJtB6MUv_R6PYAE*b$vsqhEbw$6^^-3* z%DI!0lDQ8vzbW2FPGn5g@Q2$Ku6fbP2z4rdD`;7q{MG1^UFkRY0bEYZK0aol3odep z^)7ilewY)YdVhgdS2bicvxufqTg#wa&E+tolQ2kj)JOZ$QUS_4j>^tYkCAtd^!3{Op1iUSf`?FZzafl)Z~k?1xY_{xVcYVKDX%ufeF$VH3P2YJvSOD2s+#=V++Lo zC{-)pP;g|eV|C4*lX(kQjUpA%A)h5p;1>!QMvbU51XcuZg)T2dD%vvg0g zcQBNS1U8gr5y)iEfhm}HO1Z%M$lEipBO+kGIaU}GmUlkYoC&IQ?HXF(n;UG^kK$NT zV#nl>{gkS{SDc<)L#{Z0Yx%8Z_D}0Rf#&$nY+JCb2dv(HE~>dddM=dS;*4>}P*sE_ zUwAIuIqCXjw^%Cq;!Ic>=Cm)L8B-q{Yi4Xzz{y0OOE{i>kDOv*VD^U U@<|;0k_CdijEZ!nq;c^70qlgobN~PV literal 8800 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 APyhe` literal 0 HcmV?d00001 diff --git a/test/reference/halo.mask.rgb24.ref.png b/test/reference/halo.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..191ee479466701f8c1986c08c3480f9e3d3f7ee2 GIT binary patch literal 8726 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 APyhe` literal 0 HcmV?d00001 diff --git a/test/reference/halo.rgb24.ref.png b/test/reference/halo.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..191ee479466701f8c1986c08c3480f9e3d3f7ee2 GIT binary patch literal 8726 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 APyhe` literal 0 HcmV?d00001 diff --git a/test/reference/halo.traps.argb32.ref.png b/test/reference/halo.traps.argb32.ref.png index bc971d80983e322d1f044cee2cb97a9ca07a0e58..191ee479466701f8c1986c08c3480f9e3d3f7ee2 100644 GIT binary patch literal 8726 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 APyhe` literal 8800 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 WcKg2j^`yuE0000B%nDO!rVyB2qfyWM%eUw55# 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 U@<|;0k_CdijEZ!nq;c^70qlgobN~PV literal 0 HcmV?d00001 diff --git a/test/reference/halo.traps.rgb24.ref.png b/test/reference/halo.traps.rgb24.ref.png index bc971d80983e322d1f044cee2cb97a9ca07a0e58..191ee479466701f8c1986c08c3480f9e3d3f7ee2 100644 GIT binary patch literal 8726 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 APyhe` literal 8800 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 RAQJqiAfqB(A!*|OzX0N96GQ+2 literal 90611 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 diff --git a/test/reference/hatchings.base.rgb24.ref.png b/test/reference/hatchings.base.rgb24.ref.png index 26cc637dc07a02b64e4cc30848dc02e2d9b6a80a..73e156dd3cfb83ebf7fd5edaecde2bbe42c2826d 100644 GIT binary patch literal 94196 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 RAQJqiAfqB(A!*|OzX0N96GQ+2 literal 90611 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 diff --git a/test/reference/hatchings.egl.argb32.ref.png b/test/reference/hatchings.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3f041b013cb8b17caeee2ca50514e782549d7eb1 GIT binary patch literal 100946 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

    f^9hDr`XlRg@l+vn2$+eNyJ# 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 z

    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

    XX7=FtQ8BH88)H0cWx9OTC6zo4PryMbg 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%0AwmrLvPSYLKjtHSy9;ZJon@6HRDHD5VR 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 literal 0 HcmV?d00001 diff --git a/test/reference/hatchings.mask.argb32.ref.png b/test/reference/hatchings.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..77fe853a82cf47feeaf5cd6175e117ce7e385901 GIT binary patch literal 94631 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 diff --git a/test/reference/horizontal-clip.argb32.ref.png b/test/reference/horizontal-clip.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..43dd07f151e04efce0b4d96ed06fd7d8213a6be1 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRq!2~1?xx52_6kC$Fy9>jA5L~c#`DCDonx~6n zh(&Mmpa1{unKc_aRjwXpG3aX(5==0e(!scRp$pG~S`9`9$u@q*^LbHjA5L~c#`DCDonx~6n zh(&Mmpa1{unKc_aRjwXpG3aX(5==0e(!scRp$pG~S`9`9$u@q*^LbHjA5L~c#`DCDonx~6n zh(&Mmpa1{unKc_aRjwXpG3aX(5==0e(!scRp$pG~S`9`9$u@q*^LbHjA5L~c#`DCDonx~6n zh(&Mmpa1{unKc_aRjwXpG3aX(5==0e(!scRp$pG~S`9`9$u@q*^LbHjA5L~c#`DCDonx~6n zh(&Mmpa1{unKc_aRjwXpG3aX(5==0e(!scRp$pG~S`9`9$u@q*^LbHnlUQcZ2sZj(xALhGT6e4Au*U~N~=UDs1}8p zOIs+~l~LLt`nl*P(6+z}tIZ$?CQ;VKrqwL#J@5Oy-}ePljF++RJLkO5dCv2kU9io z+@)1p-oz4LLsy%=S#I2U@7`hSH}!gdCVs7&;BI0qt^-d)kw#G!S&bKfN7vW~V@o5s zDu2xerPrZXdIOznS!(vHIoVTEt}zc;$nn{sstIG82NcFy5*u*&vpt2v>+t6pu#JrVF*&|76^dW zr!Xj3ud6?mb{h_z?S|(YbD%w$oG)2w3bJ$}4=8F3HB}Nqu*sHD)?m+86^%l)QHKHM zFunCQhz|o(JCn?VB*odS_Y`qXPYg0n`PD-mq&VWz$`0XY7?BoNSl&cCHh^K!Bz9uD!_E~k!ZbKjbveQ z!po^rZBbH=BgxEqNy}2tZa(2UozlivlwwNz5R= zq=LKGAi34oVqlT-2|VIUC~l+zpB^S|rOOB{xPl|3{SohoOOfkeu9NVAoAW6h@lWMX Q$X^0fm)Bb-%Z{D<1G%RFUjP6A literal 0 HcmV?d00001 diff --git a/test/reference/huge-linear.egl.argb32.ref.png b/test/reference/huge-linear.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a85078d5a3e71c02ccd420a9280afae4c86de6f5 GIT binary patch literal 3627 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 literal 0 HcmV?d00001 diff --git a/test/reference/huge-linear.mask.argb32.ref.png b/test/reference/huge-linear.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f89217b8260025ca50395493cd081623ee1b9c0b GIT binary patch literal 1600 zcmah~T}YE*6h51qPMvIF5c9%jffgB>nlUQcZ2sZj(xALhGT6e4Au*U~N~=UDs1}8p zOIs+~l~LLt`nl*P(6+z}tIZ$?CQ;VKrqwL#J@5Oy-}ePljF++RJLkO5dCv2kU9io z+@)1p-oz4LLsy%=S#I2U@7`hSH}!gdCVs7&;BI0qt^-d)kw#G!S&bKfN7vW~V@o5s zDu2xerPrZXdIOznS!(vHIoVTEt}zc;$nn{sstIG82NcFy5*u*&vpt2v>+t6pu#JrVF*&|76^dW zr!Xj3ud6?mb{h_z?S|(YbD%w$oG)2w3bJ$}4=8F3HB}Nqu*sHD)?m+86^%l)QHKHM zFunCQhz|o(JCn?VB*odS_Y`qXPYg0n`PD-mq&VWz$`0XY7?BoNSl&cCHh^K!Bz9uD!_E~k!ZbKjbveQ z!po^rZBbH=BgxEqNy}2tZa(2UozlivlwwNz5R= zq=LKGAi34oVqlT-2|VIUC~l+zpB^S|rOOB{xPl|3{SohoOOfkeu9NVAoAW6h@lWMX Q$X^0fm)Bb-%Z{D<1G%RFUjP6A literal 0 HcmV?d00001 diff --git a/test/reference/huge-linear.mask.rgb24.ref.png b/test/reference/huge-linear.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f89217b8260025ca50395493cd081623ee1b9c0b GIT binary patch literal 1600 zcmah~T}YE*6h51qPMvIF5c9%jffgB>nlUQcZ2sZj(xALhGT6e4Au*U~N~=UDs1}8p zOIs+~l~LLt`nl*P(6+z}tIZ$?CQ;VKrqwL#J@5Oy-}ePljF++RJLkO5dCv2kU9io z+@)1p-oz4LLsy%=S#I2U@7`hSH}!gdCVs7&;BI0qt^-d)kw#G!S&bKfN7vW~V@o5s zDu2xerPrZXdIOznS!(vHIoVTEt}zc;$nn{sstIG82NcFy5*u*&vpt2v>+t6pu#JrVF*&|76^dW zr!Xj3ud6?mb{h_z?S|(YbD%w$oG)2w3bJ$}4=8F3HB}Nqu*sHD)?m+86^%l)QHKHM zFunCQhz|o(JCn?VB*odS_Y`qXPYg0n`PD-mq&VWz$`0XY7?BoNSl&cCHh^K!Bz9uD!_E~k!ZbKjbveQ z!po^rZBbH=BgxEqNy}2tZa(2UozlivlwwNz5R= zq=LKGAi34oVqlT-2|VIUC~l+zpB^S|rOOB{xPl|3{SohoOOfkeu9NVAoAW6h@lWMX Q$X^0fm)Bb-%Z{D<1G%RFUjP6A literal 0 HcmV?d00001 diff --git a/test/reference/huge-linear.rgb24.ref.png b/test/reference/huge-linear.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f89217b8260025ca50395493cd081623ee1b9c0b GIT binary patch literal 1600 zcmah~T}YE*6h51qPMvIF5c9%jffgB>nlUQcZ2sZj(xALhGT6e4Au*U~N~=UDs1}8p zOIs+~l~LLt`nl*P(6+z}tIZ$?CQ;VKrqwL#J@5Oy-}ePljF++RJLkO5dCv2kU9io z+@)1p-oz4LLsy%=S#I2U@7`hSH}!gdCVs7&;BI0qt^-d)kw#G!S&bKfN7vW~V@o5s zDu2xerPrZXdIOznS!(vHIoVTEt}zc;$nn{sstIG82NcFy5*u*&vpt2v>+t6pu#JrVF*&|76^dW zr!Xj3ud6?mb{h_z?S|(YbD%w$oG)2w3bJ$}4=8F3HB}Nqu*sHD)?m+86^%l)QHKHM zFunCQhz|o(JCn?VB*odS_Y`qXPYg0n`PD-mq&VWz$`0XY7?BoNSl&cCHh^K!Bz9uD!_E~k!ZbKjbveQ z!po^rZBbH=BgxEqNy}2tZa(2UozlivlwwNz5R= zq=LKGAi34oVqlT-2|VIUC~l+zpB^S|rOOB{xPl|3{SohoOOfkeu9NVAoAW6h@lWMX Q$X^0fm)Bb-%Z{D<1G%RFUjP6A literal 0 HcmV?d00001 diff --git a/test/reference/huge-radial.argb32.ref.png b/test/reference/huge-radial.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..541bb309a614da2e64365bb165e7266a9608bd6e GIT binary patch literal 41702 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

    g|> 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 Z`484G{*om!YDNG6002ovPDHLkV1gak`x5{F literal 0 HcmV?d00001 diff --git a/test/reference/huge-radial.mask.argb32.ref.png b/test/reference/huge-radial.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..541bb309a614da2e64365bb165e7266a9608bd6e GIT binary patch literal 41702 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 literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.egl.argb32.ref.png b/test/reference/image-bug-710072-aligned.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..78e53d62ebad858b5934a1bdd94fecf3016e0f52 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_oo-U3d z8WWdJbmTi?z`@+U>i@CYoz*8)1yo}*YaO_5ura++-0+0+dSmW^dB*Bx41)VNg}<+^ zQ(>v-a#0X$^u6M?>WZn@`-wrK_Pcksy9?)U&v~lG_OA5WG|e|tj_p&n3lbJT(_WfZ nwD8#H0O2-IqF`0~kDA{an^LB{Ts5E(1tA literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.mask.argb32.ref.png b/test/reference/image-bug-710072-aligned.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42abd20544674d23869540aa60e909f2fef44ec1 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt^Wo-U3d z8WYb>wB}<_;BdZJ@qXIm#~F{=)rEI6t``W}yg5V6p(D#_eU+!V?haRrTTlJwm-)-- vX~)$?Rw#>PFqAxdH#4-ESHb?P|0mgkjVg`S>d&VD&1LX(^>bP0l+XkKim5Q! literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.mask.rgb24.ref.png b/test/reference/image-bug-710072-aligned.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42abd20544674d23869540aa60e909f2fef44ec1 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt^Wo-U3d z8WYb>wB}<_;BdZJ@qXIm#~F{=)rEI6t``W}yg5V6p(D#_eU+!V?haRrTTlJwm-)-- vX~)$?Rw#>PFqAxdH#4-ESHb?P|0mgkjVg`S>d&VD&1LX(^>bP0l+XkKim5Q! literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.rgb24.ref.png b/test/reference/image-bug-710072-aligned.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42abd20544674d23869540aa60e909f2fef44ec1 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt^Wo-U3d z8WYb>wB}<_;BdZJ@qXIm#~F{=)rEI6t``W}yg5V6p(D#_eU+!V?haRrTTlJwm-)-- vX~)$?Rw#>PFqAxdH#4-ESHb?P|0mgkjVg`S>d&VD&1LX(^>bP0l+XkKim5Q! literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.xlib-fallback.rgb24.ref.png b/test/reference/image-bug-710072-aligned.xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42abd20544674d23869540aa60e909f2fef44ec1 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt^Wo-U3d z8WYb>wB}<_;BdZJ@qXIm#~F{=)rEI6t``W}yg5V6p(D#_eU+!V?haRrTTlJwm-)-- vX~)$?Rw#>PFqAxdH#4-ESHb?P|0mgkjVg`S>d&VD&1LX(^>bP0l+XkKim5Q! literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-aligned.xlib-window.rgb24.ref.png b/test/reference/image-bug-710072-aligned.xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..42abd20544674d23869540aa60e909f2fef44ec1 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt^Wo-U3d z8WYb>wB}<_;BdZJ@qXIm#~F{=)rEI6t``W}yg5V6p(D#_eU+!V?haRrTTlJwm-)-- vX~)$?Rw#>PFqAxdH#4-ESHb?P|0mgkjVg`S>d&VD&1LX(^>bP0l+XkKim5Q! literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.argb32.ref.png b/test/reference/image-bug-710072-unaligned.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13efa30f830e296ea63a2c6cacb162993fac1c2f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_go-U3d z8WYb>Jji?4frI6E;4cd+ODk_}Kh@)=9Vb;Y~`0_ zuJd0_|6pW`wqE>@tMr5H-DMW4L==bDqG<3 zX~oxsH-1MnxqKFHJ#)*(zWV;=b>>U%%-S^L<3!Wf^>+IiT!Kxe)ph^B0(2CEr>mdK II;Vst0EhWf-T(jq literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.egl.argb32.ref.png b/test/reference/image-bug-710072-unaligned.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..396da65ccc492caa5940481076f4115fb333c615 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_OJzX3_ zG$ziSc#*f+fX8Ki;PZ@2o*&XuMb#8vDV2&H{Oceh%o0=`|Lx_`eJ2W(S{J>#{KWCD zB=4Dby~VEOO7<6y-`sv9<;22wE(VLI=x?~a^g?q(^8wqX?&sv@+yu>b%7 literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.mask.argb32.ref.png b/test/reference/image-bug-710072-unaligned.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13efa30f830e296ea63a2c6cacb162993fac1c2f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_go-U3d z8WYb>Jji?4frI6E;4cd+ODk_}Kh@)=9Vb;Y~`0_ zuJd0_|6pW`wqE>@tMr5H-DMW4L==bDqG<3 zX~oxsH-1MnxqKFHJ#)*(zWV;=b>>U%%-S^L<3!Wf^>+IiT!Kxe)ph^B0(2CEr>mdK II;Vst0EhWf-T(jq literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13efa30f830e296ea63a2c6cacb162993fac1c2f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_go-U3d z8WYb>Jji?4frI6E;4cd+ODk_}Kh@)=9Vb;Y~`0_ zuJd0_|6pW`wqE>@tMr5H-DMW4L==bDqG<3 zX~oxsH-1MnxqKFHJ#)*(zWV;=b>>U%%-S^L<3!Wf^>+IiT!Kxe)ph^B0(2CEr>mdK II;Vst0EhWf-T(jq literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13efa30f830e296ea63a2c6cacb162993fac1c2f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt_go-U3d z8WYb>Jji?4frI6E;4cd+ODk_}Kh@)=9Vb;Y~`0_ zuJd0_|6pW`wqE>@tMr5H-DMW4L==bDqG<3 zX~oxsH-1MnxqKFHJ#)*(zWV;=b>>U%%-S^L<3!Wf^>+IiT!Kxe)ph^B0(2CEr>mdK II;Vst0EhWf-T(jq literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.xlib-fallback.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5a6e6cf82b57764831c9fcc0ddd83c121ada98 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt@=JY5_^ zG$x*%XvlTgfX6l7t1q#jP3G`o{%hSLMg11RH9Y)sCH&!RN&UBh{K99_^X*jAomL!Lkjoy|drTrbxBUA?J|Uk54-wDr+Z|DM&`{b$={YjiZ{(Cynm Pw=sCS`njxgN@xNAuy$3a literal 0 HcmV?d00001 diff --git a/test/reference/image-bug-710072-unaligned.xlib-window.rgb24.ref.png b/test/reference/image-bug-710072-unaligned.xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5a6e6cf82b57764831c9fcc0ddd83c121ada98 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^{2Y)RhkE)4%caKYZ?lYt@=JY5_^ zG$x*%XvlTgfX6l7t1q#jP3G`o{%hSLMg11RH9Y)sCH&!RN&UBh{K99_^X*jAomL!Lkjoy|drTrbxBUA?J|Uk54-wDr+Z|DM&`{b$={YjiZ{(Cynm Pw=sCS`njxgN@xNAuy$3a literal 0 HcmV?d00001 diff --git a/test/reference/image-surface-source.egl.argb32.ref.png b/test/reference/image-surface-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..908a673b578f4d542a704d5cf7f294e4fba13eb2 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt^eo-U3d u6?5JmG-L$w4lVfVpUca?0La7v8pN4%5*Qd`l#WdRsql35b6Mw<&;$VV!5ee{ literal 0 HcmV?d00001 diff --git a/test/reference/image-surface-source.mask.argb32.ref.png b/test/reference/image-surface-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..018297208e7e69c63dc671094b4659d2f64f26b6 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHo^*mi1 zLn`LHz3Z5D#6W<-(f7pu>3i-}Ht{#FI9zr&S8|pm$LWf5mghM?FP49BTa-bYA&g-S zLj>anrUcdlTn#7!`)^Cz@Yl^XNS+=acb^4C{zjGjhqPyZVq+hCGJ7)f^UliuYIu#p zFq`$jwdYOGp0@n?yPo~sx({{#>c6)-2&3AMMH89}i?^|7e~CZQW`E$-D>Mgu``xg{ hgb};PUrej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlHrej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlHrej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlHIaD95%Z7R?0P_;cvFFlBz%4{9N z^d@-mhG^b{f>-(3L)B%%Z4F%Swne^@^9eCeSeMoMauw&ffa?X5b~SvyA~|Q3-JzSW yB*a!QM=ZXVIJ2s8>ML=v)$B3<3}-Vu;I-O4ZPouJ905SLGkCiCxvXIaD95%Z7R?0P_;cvFFlBz%4{9N z^d@-mhG^b{f>-(3L)B%%Z4F%Swne^@^9eCeSeMoMauw&ffa?X5b~SvyA~|Q3-JzSW yB*a!QM=ZXVIJ2s8>ML=v)$B3<3}-Vu;I-O4ZPouJ905SLGkCiCxvXIaD95%Z7R?0P_;cvFFlBz%4{9N z^d@-mhG^b{f>-(3L)B%%Z4F%Swne^@^9eCeSeMoMauw&ffa?X5b~SvyA~|Q3-JzSW yB*a!QM=ZXVIJ2s8>ML=v)$B3<3}-Vu;I-O4ZPouJ905SLGkCiCxvXIaD95%Z7R?0P_;cvFFlBz%4{9N z^d@-mhG^b{f>-(3L)B%%Z4F%Swne^@^9eCeSeMoMauw&ffa?X5b~SvyA~|Q3-JzSW yB*a!QM=ZXVIJ2s8>ML=v)$B3<3}-Vu;I-O4ZPouJ905SLGkCiCxvXIaD95%Z7R?0P_;cvFFlBz%4{9N z^d@-mhG^b{f>-(3L)B%%Z4F%Swne^@^9eCeSeMoMauw&ffa?X5b~SvyA~|Q3-JzSW yB*a!QM=ZXVIJ2s8>ML=v)$B3<3}-Vu;I-O4ZPouJ905SLGkCiCxvXbKp6L-5G}vtUJbUZ4ATPOq zt6Qhp^ccQl3-A)0xYn7Y!Jh9AtKbRC@ApDWqql|~sJ*+FA*5Yu_t6Jsr+}6)c)I$z JtaD0e0sve$IB);} literal 0 HcmV?d00001 diff --git a/test/reference/infinite-join.egl.argb32.ref.png b/test/reference/infinite-join.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a9112410580a92ec55933aac4c355e8c0685d8 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v}}vPZ!4! zj+wQ6yLk^N2sq2n?_w$uV*TCE!W?jqCuDk)is;GJI?>bKp6L-5G}vtUJbUZ4ATPOq zt6Qhp^ccQl3-A)0xYn7Y!Jh9AtKbRC@ApDWqql|~sJ*+FA*5Yu_t6Jsr+}6)c)I$z JtaD0e0sve$IB);} literal 0 HcmV?d00001 diff --git a/test/reference/infinite-join.mask.argb32.ref.png b/test/reference/infinite-join.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a9112410580a92ec55933aac4c355e8c0685d8 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v}}vPZ!4! zj+wQ6yLk^N2sq2n?_w$uV*TCE!W?jqCuDk)is;GJI?>bKp6L-5G}vtUJbUZ4ATPOq zt6Qhp^ccQl3-A)0xYn7Y!Jh9AtKbRC@ApDWqql|~sJ*+FA*5Yu_t6Jsr+}6)c)I$z JtaD0e0sve$IB);} literal 0 HcmV?d00001 diff --git a/test/reference/infinite-join.mask.rgb24.ref.png b/test/reference/infinite-join.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a9112410580a92ec55933aac4c355e8c0685d8 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v}}vPZ!4! zj+wQ6yLk^N2sq2n?_w$uV*TCE!W?jqCuDk)is;GJI?>bKp6L-5G}vtUJbUZ4ATPOq zt6Qhp^ccQl3-A)0xYn7Y!Jh9AtKbRC@ApDWqql|~sJ*+FA*5Yu_t6Jsr+}6)c)I$z JtaD0e0sve$IB);} literal 0 HcmV?d00001 diff --git a/test/reference/infinite-join.rgb24.ref.png b/test/reference/infinite-join.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a9112410580a92ec55933aac4c355e8c0685d8 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v}}vPZ!4! zj+wQ6yLk^N2sq2n?_w$uV*TCE!W?jqCuDk)is;GJI?>bKp6L-5G}vtUJbUZ4ATPOq zt6Qhp^ccQl3-A)0xYn7Y!Jh9AtKbRC@ApDWqql|~sJ*+FA*5Yu_t6Jsr+}6)c)I$z JtaD0e0sve$IB);} literal 0 HcmV?d00001 diff --git a/test/reference/inverse-text.base.argb32.ref.png b/test/reference/inverse-text.base.argb32.ref.png index 40defe6e13d4e4d080146a66d128124a9bf79279..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 100644 GIT binary patch delta 2131 zcmW-ic|25Y8^=$hC!TpJO+&WmvBYC5l##W@7>u!o7NLg1kTtTz$y=708qzdI*<~;f zjd!v{(~P}Q_97XftZfvDgnI7Y>yPutIrrzjuXBHYzu&bYy(E3p7}m7M9d!>(p3g}j z-U?F`?mvP)*4~b85i4~%$2wW+`JwDi-+sj{uwc!=E~O^mY1BpLYbpbCl^FOR-u(Gl;S8h7|ZPP+d^2y5lD27M15~kzt{mpnb1J9fr3&yD$95@g@T7N-L zPmj;%Lr3lnXrZa6^)VRC>dFd-!%>!#lRzRxTtDH*;c5@YveKd0C6G`u5a{FM1I`Ao_{4JJx3nGZQ_&jR`iGo&b3jg#g1eQQYi4MOfP#X8>gwtuA|hmEW!Ki$3M~^65T76w=;h^QoSUDMQ(<-~ zD#~cv)vT@=8ylN)r+fs2JMHEcx$wHtn-@dDl?)ELtEd!KRA^ZiHmQ!mBGIF=GCbQo zBO}Ap!()D=MjSFxa*B_CNrAx~)ykz<^s-^$CE=&d&b&^(#}~`+07#-P)J8ZOzTi zW|tO#R79dv2Nk5C-TJ3HdwOIfwvxCxeej&x)p$lz7M&jTb=Hv|t#&j#JUlUxk3a3< zk2PsML*}o9jg+5+fqG z<2XJ6c&nkoj^(xmO2Iz$e^6Ak7kc;pJ%vieZUex8k^Y*2kuQEq@7%dlQSm>JjEqcQ zp_Ntam%V9i^761ex4yo?5SES@|89jATOVdw*x*%x^PFGgP$cX;bpV~oU z5K@Fw_Udl7w&GBF2g$KV#C`a16-n=6?uR$N!>;@26r8GMA^drq-`IHAy8iBcIeGbF z7cHp&)vJnJ0Y}Ee(-TF(K_*eNL>RV$N=r-CH8i55quE1brR@P^G7=)!DL}KcvxDSs z8yk;j7ls^%JxonZboKRB9XpnmBAuOg(D0RP_7><4F;&vZ*?DR)7Lk0$j`C%62V8Og zzEoT*xVJZN-qh9})Ml7kSj^AOmB%%UH3Pomaw*s#v+nNhYbhylv9awP9YceII9uDk z-d=46VIQ5%3l>>^EGaI2JJ(kT9XNEzru@Y&6e=%2zr3srDr#!-jT$FoOhpFBlv8IP z)YhVb_io=t%gN<17&d#QePF@mMp>_R0>(m3&CgqhR5NlyR~AZ5OWSgVxG%~?Nt;1^ z&7#xkoj9F-NsircrMor*tVnC?>Fq^8%9({ZIsM){p{f$x_jz&k->eR!*1vxzIy+m!ettfIbvGv`7TCnaMfwiW*vQC>cR%z;{PE?@^-J@a zou4`lVt#JK85z|?vp&uYSNmEeZKP8uaU0*cX=&p5PGJ`=Y#Ol!Mrr~wRje|w#n-TB zgMwi8EY`!rBQnykuRYff3<>ft2+BAg%nOh;d z5E7}C#PytD0@*)#f`_>$%uP(R7=*0y?)b&!WnDczo1dm{!yD4m)5pih>qbA6DY_;7 z+!*QZzCmDF#xDb-MVKflXO`<&{}=(?B`0qIq1tGLX?_0udB^qL4h{|{b+hU8V*~>A zuhBZ4Z&$FzN=iz#zWl1)lG~<0(7kz6l=uP6Bn4Xi&QanJkUAVb5$p#>aMYYrLPEm) zgW=FhOybp>cIu_VAJ>Zp0yQaCmaWR H=D+^}#+?yl delta 2135 zcmV-d2&nh+5cUv|Hh(KgL_t(&f$f-SOcUQ4#@{X!rGT^r3N28|B7%ZM8iKMImmtB& zrisX6Pzm^fO@qW>0s;|3xquHrY8OVZcZud1qIv)O%peM}}3)$sXz7K^n-1^zX@eED+x z`0=f-VsrTV`YKFI4veSZ%Yi$x-lwz`Uc z4xY(m&d<-Uu79qsJx8HXyu7?*GTDa@AEZ(#05F+MI-M>M2(VbJv$J!3eZ5E|a&d9d z)zximY*dqu$Gf|`o0yn%bae3feB_{`qob3P6OYGhZEaP~l*wd=4a z)7#q{hr@Yzc=Y%8&(F`J;ojcf~#2<>ifxi~xXIB?^{Gr6wmQ$Hc^}?YpO^$H2eR!0sta@^5jW! zaTMb z9FC!(;m403aX1_RL`6jv78Z_=kN5TUy?XVkprC+8qrH9mHYq8|%gak8fk-4)S62@W z4S!{4XZQ5K53xl>MYFTB4Gj$(4(HghW18%086F;f|Ni}{Q>QE}EHr5lTwPt8 znwsw4zptaC)7I98$K&no?c?L)YinyCK72@{(JU-1Vq;^~dNnBv3JQXPg38Lu7z{>3 zLjx9z1%L||E^s)UzP>&!EiLq*TIFwKWq)O{+3dA_A3S&vY54p5H#Ie(;?JKyBkhTa ziJY7q0I;^Uo|&0ZiFS2$9U2-U5{Urd>FH@=Vq#-sBbUpqtgMiUmP(~a7gI>((t5`@Vhq#(&1f zjE#-g6B{2NkDM(jDY({Rj3=D`wA}kh* zYy^=_h4kO(=;&y&uT`3xn*%_1cQ*hmFE97@_A;5wPoF*kKv!26a%tw~=JfRRkQG#| z65+QSsI#*ZdBcs3jU7FDlz+qF(CPHq*;zL?H}nM$01}BrZ5xBZC?_ZsiZf@<*xTDj zM@M&dcKZ7IN+c4QOcog#DVNJtW^HL{X+yJ&($doMW3@yx45EL?UT!ZeC9;5`VSU{`m3Z4UH%{ zIay0f3jn63rT~COqh)4h?%utd&*zg!B%x4C>mHtE(&)tAD+{9RLao3)9llH0?3h$;`~m%*+g0vrHyiT3W(jFi}xa=tH@o z5K~jr#l^+Bxw&`m-US8*Iy*bp)zz&(cCCG*Bl`OFtMbp~B5rJKw6?akwY80liyIgih>ME@fV{lCh=>Se!2|%Q zRGO5O=EA~4T3Q+aD3=5P zNLyQ5Thl%fg@4cI7Z(=~4h}9ZF1EI|u4gLO;^gF1T3X8E@dyOM?Cfl0WaNfo*V;8H zySloFM53jo<+Eqc78e&&Q&Y>!%h$@Lr>7r0c);aymzI{Anwrq(b2F^0tX#TusiLCd z^5x4^Dm5V?K~wDdmFgjpNXnmHHVO`hV=x#h30N%F!cf9O?K=Ed(AU@BOw9m5AP}sq ztW^H=tv^<+eUlK0L<0kZzZeJrSS*&oV5ofG-=uPzZMNBFn{EDI_!mBDh-~*uma_l= N002ovPDHLkV1g~m8g>8x diff --git a/test/reference/inverse-text.base.rgb24.ref.png b/test/reference/inverse-text.base.rgb24.ref.png index 40defe6e13d4e4d080146a66d128124a9bf79279..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 100644 GIT binary patch delta 2131 zcmW-ic|25Y8^=$hC!TpJO+&WmvBYC5l##W@7>u!o7NLg1kTtTz$y=708qzdI*<~;f zjd!v{(~P}Q_97XftZfvDgnI7Y>yPutIrrzjuXBHYzu&bYy(E3p7}m7M9d!>(p3g}j z-U?F`?mvP)*4~b85i4~%$2wW+`JwDi-+sj{uwc!=E~O^mY1BpLYbpbCl^FOR-u(Gl;S8h7|ZPP+d^2y5lD27M15~kzt{mpnb1J9fr3&yD$95@g@T7N-L zPmj;%Lr3lnXrZa6^)VRC>dFd-!%>!#lRzRxTtDH*;c5@YveKd0C6G`u5a{FM1I`Ao_{4JJx3nGZQ_&jR`iGo&b3jg#g1eQQYi4MOfP#X8>gwtuA|hmEW!Ki$3M~^65T76w=;h^QoSUDMQ(<-~ zD#~cv)vT@=8ylN)r+fs2JMHEcx$wHtn-@dDl?)ELtEd!KRA^ZiHmQ!mBGIF=GCbQo zBO}Ap!()D=MjSFxa*B_CNrAx~)ykz<^s-^$CE=&d&b&^(#}~`+07#-P)J8ZOzTi zW|tO#R79dv2Nk5C-TJ3HdwOIfwvxCxeej&x)p$lz7M&jTb=Hv|t#&j#JUlUxk3a3< zk2PsML*}o9jg+5+fqG z<2XJ6c&nkoj^(xmO2Iz$e^6Ak7kc;pJ%vieZUex8k^Y*2kuQEq@7%dlQSm>JjEqcQ zp_Ntam%V9i^761ex4yo?5SES@|89jATOVdw*x*%x^PFGgP$cX;bpV~oU z5K@Fw_Udl7w&GBF2g$KV#C`a16-n=6?uR$N!>;@26r8GMA^drq-`IHAy8iBcIeGbF z7cHp&)vJnJ0Y}Ee(-TF(K_*eNL>RV$N=r-CH8i55quE1brR@P^G7=)!DL}KcvxDSs z8yk;j7ls^%JxonZboKRB9XpnmBAuOg(D0RP_7><4F;&vZ*?DR)7Lk0$j`C%62V8Og zzEoT*xVJZN-qh9})Ml7kSj^AOmB%%UH3Pomaw*s#v+nNhYbhylv9awP9YceII9uDk z-d=46VIQ5%3l>>^EGaI2JJ(kT9XNEzru@Y&6e=%2zr3srDr#!-jT$FoOhpFBlv8IP z)YhVb_io=t%gN<17&d#QePF@mMp>_R0>(m3&CgqhR5NlyR~AZ5OWSgVxG%~?Nt;1^ z&7#xkoj9F-NsircrMor*tVnC?>Fq^8%9({ZIsM){p{f$x_jz&k->eR!*1vxzIy+m!ettfIbvGv`7TCnaMfwiW*vQC>cR%z;{PE?@^-J@a zou4`lVt#JK85z|?vp&uYSNmEeZKP8uaU0*cX=&p5PGJ`=Y#Ol!Mrr~wRje|w#n-TB zgMwi8EY`!rBQnykuRYff3<>ft2+BAg%nOh;d z5E7}C#PytD0@*)#f`_>$%uP(R7=*0y?)b&!WnDczo1dm{!yD4m)5pih>qbA6DY_;7 z+!*QZzCmDF#xDb-MVKflXO`<&{}=(?B`0qIq1tGLX?_0udB^qL4h{|{b+hU8V*~>A zuhBZ4Z&$FzN=iz#zWl1)lG~<0(7kz6l=uP6Bn4Xi&QanJkUAVb5$p#>aMYYrLPEm) zgW=FhOybp>cIu_VAJ>Zp0yQaCmaWR H=D+^}#+?yl delta 2135 zcmV-d2&nh+5cUv|Hh(KgL_t(&f$f-SOcUQ4#@{X!rGT^r3N28|B7%ZM8iKMImmtB& zrisX6Pzm^fO@qW>0s;|3xquHrY8OVZcZud1qIv)O%peM}}3)$sXz7K^n-1^zX@eED+x z`0=f-VsrTV`YKFI4veSZ%Yi$x-lwz`Uc z4xY(m&d<-Uu79qsJx8HXyu7?*GTDa@AEZ(#05F+MI-M>M2(VbJv$J!3eZ5E|a&d9d z)zximY*dqu$Gf|`o0yn%bae3feB_{`qob3P6OYGhZEaP~l*wd=4a z)7#q{hr@Yzc=Y%8&(F`J;ojcf~#2<>ifxi~xXIB?^{Gr6wmQ$Hc^}?YpO^$H2eR!0sta@^5jW! zaTMb z9FC!(;m403aX1_RL`6jv78Z_=kN5TUy?XVkprC+8qrH9mHYq8|%gak8fk-4)S62@W z4S!{4XZQ5K53xl>MYFTB4Gj$(4(HghW18%086F;f|Ni}{Q>QE}EHr5lTwPt8 znwsw4zptaC)7I98$K&no?c?L)YinyCK72@{(JU-1Vq;^~dNnBv3JQXPg38Lu7z{>3 zLjx9z1%L||E^s)UzP>&!EiLq*TIFwKWq)O{+3dA_A3S&vY54p5H#Ie(;?JKyBkhTa ziJY7q0I;^Uo|&0ZiFS2$9U2-U5{Urd>FH@=Vq#-sBbUpqtgMiUmP(~a7gI>((t5`@Vhq#(&1f zjE#-g6B{2NkDM(jDY({Rj3=D`wA}kh* zYy^=_h4kO(=;&y&uT`3xn*%_1cQ*hmFE97@_A;5wPoF*kKv!26a%tw~=JfRRkQG#| z65+QSsI#*ZdBcs3jU7FDlz+qF(CPHq*;zL?H}nM$01}BrZ5xBZC?_ZsiZf@<*xTDj zM@M&dcKZ7IN+c4QOcog#DVNJtW^HL{X+yJ&($doMW3@yx45EL?UT!ZeC9;5`VSU{`m3Z4UH%{ zIay0f3jn63rT~COqh)4h?%utd&*zg!B%x4C>mHtE(&)tAD+{9RLao3)9llH0?3h$;`~m%*+g0vrHyiT3W(jFi}xa=tH@o z5K~jr#l^+Bxw&`m-US8*Iy*bp)zz&(cCCG*Bl`OFtMbp~B5rJKw6?akwY80liyIgih>ME@fV{lCh=>Se!2|%Q zRGO5O=EA~4T3Q+aD3=5P zNLyQ5Thl%fg@4cI7Z(=~4h}9ZF1EI|u4gLO;^gF1T3X8E@dyOM?Cfl0WaNfo*V;8H zySloFM53jo<+Eqc78e&&Q&Y>!%h$@Lr>7r0c);aymzI{Anwrq(b2F^0tX#TusiLCd z^5x4^Dm5V?K~wDdmFgjpNXnmHHVO`hV=x#h30N%F!cf9O?K=Ed(AU@BOw9m5AP}sq ztW^H=tv^<+eUlK0L<0kZzZeJrSS*&oV5ofG-=uPzZMNBFn{EDI_!mBDh-~*uma_l= N002ovPDHLkV1g~m8g>8x diff --git a/test/reference/inverse-text.mask.argb32.ref.png b/test/reference/inverse-text.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 GIT binary patch literal 2162 zcmW+&2{=?;A3u#=yz^1gkS%&G@!ASyWG${4Gj^dxsG+P`BTEclS!QZT(->u!ZC)DR zWQnG+Ym~i62xV=fNJ+?h`u_L1=RD87|L2_lJ-_9DDGqjcQM3#i03b@RLY&~-3~w=E z6dd~!=E-mpBw6DTu=V>Y;FZw<5LP81$DDl=7qVh)ZUxKo4;;lDZ*Rx62o&3$FF950 z`l0kr!|A!OJDK_qddT9{wqvbFGJ`&7GP@qcT!NI|S zfsaqAY-)9S>+VPy`=qY_geHqklQ(%Z;ty#KHz(ZR$5h+-f}k3 zDUnP&;MsWX+O@z)3EAma9IsK&?k&`)N=a$yL=#y7ydEFd($qX8V`gS%EZ=nG+op+> z$dm62V^}WLjGv0T_c!C&?CkmR07Oye;K7iwx{F#`T09;P9KAQ7hM}I(#$vIn-@mij zY4?oz_16%4$4`SN9Bqp5eu>f(4_UYm#!Bcc_X}#>dB_qod&) za5E#r(ZfStLBYPzA3xu8EI*PVurFf!PWI;e}8{t z-1?5ahBcQzPb4P`?%uuI({plgaImH2*!UR>qL^CD?8grR~H5R{QPQb zYePdrB_$=-*4FY(<4}M{6!mp;bJNex&B`h_x*Q&^CwMiZYu3`zvdk_Q1&}jNPGO6$ z8{D~(6r^Zy&{;ttzr0+{G`~r4e020tX(^87oR*g6>f*96QY{1w=XySNw>6vSRoP*4aC2;h>Ou-Jzusyt@r=1|Qk zI~8EjKv`LN<7=N8tQVD-z@O$tEs?HV$?2Niud0g2yZzplG z`sS6c#xR;P==AWfbGEz)rDGu>A#rg$+!+^_r1rgg_YSk&1%P5keN9bGQHkiEfBFRn z;|&o{Pfu~m%+yqoYXzk1HbBE^V5kB@JND%b4GoRb;Te@1TbPJRUXOswg@!^TE*b6x z81x@u0-$+)^>grKBdtA9f4$|Zkj8TX6sn!1<1|CArQNuJu;=FIeSCbXZUvyaoPrw%%6HcC@9zm-o1ZM zp;FBSAzDyEf6bE7FMf&b+Ov@uvyOPI$Z!NbMlm_Kb2KK3ql9yO;;a z8$TTP(_)bPi>s?R1px-(b2enM87M9; zR#s7oh=^bf`OEF_@%Kjq|5_O^H#axv|7~OA@!aB&?XZiXfq|yBwxVsv@^YBH{Z1OL zg2mbf?${)Y*xB1pFGZme&stHwjO{GHe_u4Z6&~7~H*acc4yiK?O-vT%=gXp-1)3qY z6H-a$en#Eh-Pe+mqNAePJ35922N68JueVp7LEKMgaRWw8KNb}hzMb#O2L}%ywk&(G zTU`6cjWyd4^B;V+}`j&`GDyJ*cU{K+)a4jggYdVlXWCiFq_$X^?blCt^*M zl)T(ENYx`JH6=lEO3JnboBiPia_S7~>k>Mh-ic`Ri?FSRE1cCCFe9a{r?(dcUdU|f$`$0crPONOMUtUP>{M4xv`D-IuPp>+nC8N2A%|aLEp8 zNIL|$x3?F1K7l}h+rtq!I5;$W>t+b-27~?)(3f-V_#_U@c>n%=TU#46LlqSj27>`j z3_7TJ;Xy@3)KX4P&g1w^L*UEY4y*!6q*fBgb&?4g|KtgdbJEzrK#f7nDC>?{T3ON5 z(z5(z_%@_IH8pi&Vxo5JL#eD&{I89X?(Q4J64RI!sIX82Ir;Q54U3;6u(-s;ZO};@ z%&@J`pFi)ozQ@|y`jloSoqn81r2aKltMM(tyiiU~uEvvBxkp5B8v5ItHwAGYU>lO5 z)$JM^f+Q!0Oa^$to*O=I7aJS9@L)Ko0vmVrrj>Fr|L66B0bf dTYG-}adj$wa=V1NI{b+M1WP-FZGQH@{{p-?6QBS9 literal 0 HcmV?d00001 diff --git a/test/reference/inverse-text.mask.rgb24.ref.png b/test/reference/inverse-text.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 GIT binary patch literal 2162 zcmW+&2{=?;A3u#=yz^1gkS%&G@!ASyWG${4Gj^dxsG+P`BTEclS!QZT(->u!ZC)DR zWQnG+Ym~i62xV=fNJ+?h`u_L1=RD87|L2_lJ-_9DDGqjcQM3#i03b@RLY&~-3~w=E z6dd~!=E-mpBw6DTu=V>Y;FZw<5LP81$DDl=7qVh)ZUxKo4;;lDZ*Rx62o&3$FF950 z`l0kr!|A!OJDK_qddT9{wqvbFGJ`&7GP@qcT!NI|S zfsaqAY-)9S>+VPy`=qY_geHqklQ(%Z;ty#KHz(ZR$5h+-f}k3 zDUnP&;MsWX+O@z)3EAma9IsK&?k&`)N=a$yL=#y7ydEFd($qX8V`gS%EZ=nG+op+> z$dm62V^}WLjGv0T_c!C&?CkmR07Oye;K7iwx{F#`T09;P9KAQ7hM}I(#$vIn-@mij zY4?oz_16%4$4`SN9Bqp5eu>f(4_UYm#!Bcc_X}#>dB_qod&) za5E#r(ZfStLBYPzA3xu8EI*PVurFf!PWI;e}8{t z-1?5ahBcQzPb4P`?%uuI({plgaImH2*!UR>qL^CD?8grR~H5R{QPQb zYePdrB_$=-*4FY(<4}M{6!mp;bJNex&B`h_x*Q&^CwMiZYu3`zvdk_Q1&}jNPGO6$ z8{D~(6r^Zy&{;ttzr0+{G`~r4e020tX(^87oR*g6>f*96QY{1w=XySNw>6vSRoP*4aC2;h>Ou-Jzusyt@r=1|Qk zI~8EjKv`LN<7=N8tQVD-z@O$tEs?HV$?2Niud0g2yZzplG z`sS6c#xR;P==AWfbGEz)rDGu>A#rg$+!+^_r1rgg_YSk&1%P5keN9bGQHkiEfBFRn z;|&o{Pfu~m%+yqoYXzk1HbBE^V5kB@JND%b4GoRb;Te@1TbPJRUXOswg@!^TE*b6x z81x@u0-$+)^>grKBdtA9f4$|Zkj8TX6sn!1<1|CArQNuJu;=FIeSCbXZUvyaoPrw%%6HcC@9zm-o1ZM zp;FBSAzDyEf6bE7FMf&b+Ov@uvyOPI$Z!NbMlm_Kb2KK3ql9yO;;a z8$TTP(_)bPi>s?R1px-(b2enM87M9; zR#s7oh=^bf`OEF_@%Kjq|5_O^H#axv|7~OA@!aB&?XZiXfq|yBwxVsv@^YBH{Z1OL zg2mbf?${)Y*xB1pFGZme&stHwjO{GHe_u4Z6&~7~H*acc4yiK?O-vT%=gXp-1)3qY z6H-a$en#Eh-Pe+mqNAePJ35922N68JueVp7LEKMgaRWw8KNb}hzMb#O2L}%ywk&(G zTU`6cjWyd4^B;V+}`j&`GDyJ*cU{K+)a4jggYdVlXWCiFq_$X^?blCt^*M zl)T(ENYx`JH6=lEO3JnboBiPia_S7~>k>Mh-ic`Ri?FSRE1cCCFe9a{r?(dcUdU|f$`$0crPONOMUtUP>{M4xv`D-IuPp>+nC8N2A%|aLEp8 zNIL|$x3?F1K7l}h+rtq!I5;$W>t+b-27~?)(3f-V_#_U@c>n%=TU#46LlqSj27>`j z3_7TJ;Xy@3)KX4P&g1w^L*UEY4y*!6q*fBgb&?4g|KtgdbJEzrK#f7nDC>?{T3ON5 z(z5(z_%@_IH8pi&Vxo5JL#eD&{I89X?(Q4J64RI!sIX82Ir;Q54U3;6u(-s;ZO};@ z%&@J`pFi)ozQ@|y`jloSoqn81r2aKltMM(tyiiU~uEvvBxkp5B8v5ItHwAGYU>lO5 z)$JM^f+Q!0Oa^$to*O=I7aJS9@L)Ko0vmVrrj>Fr|L66B0bf dTYG-}adj$wa=V1NI{b+M1WP-FZGQH@{{p-?6QBS9 literal 0 HcmV?d00001 diff --git a/test/reference/inverse-text.traps.argb32.ref.png b/test/reference/inverse-text.traps.argb32.ref.png index 40defe6e13d4e4d080146a66d128124a9bf79279..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 100644 GIT binary patch delta 2131 zcmW-ic|25Y8^=$hC!TpJO+&WmvBYC5l##W@7>u!o7NLg1kTtTz$y=708qzdI*<~;f zjd!v{(~P}Q_97XftZfvDgnI7Y>yPutIrrzjuXBHYzu&bYy(E3p7}m7M9d!>(p3g}j z-U?F`?mvP)*4~b85i4~%$2wW+`JwDi-+sj{uwc!=E~O^mY1BpLYbpbCl^FOR-u(Gl;S8h7|ZPP+d^2y5lD27M15~kzt{mpnb1J9fr3&yD$95@g@T7N-L zPmj;%Lr3lnXrZa6^)VRC>dFd-!%>!#lRzRxTtDH*;c5@YveKd0C6G`u5a{FM1I`Ao_{4JJx3nGZQ_&jR`iGo&b3jg#g1eQQYi4MOfP#X8>gwtuA|hmEW!Ki$3M~^65T76w=;h^QoSUDMQ(<-~ zD#~cv)vT@=8ylN)r+fs2JMHEcx$wHtn-@dDl?)ELtEd!KRA^ZiHmQ!mBGIF=GCbQo zBO}Ap!()D=MjSFxa*B_CNrAx~)ykz<^s-^$CE=&d&b&^(#}~`+07#-P)J8ZOzTi zW|tO#R79dv2Nk5C-TJ3HdwOIfwvxCxeej&x)p$lz7M&jTb=Hv|t#&j#JUlUxk3a3< zk2PsML*}o9jg+5+fqG z<2XJ6c&nkoj^(xmO2Iz$e^6Ak7kc;pJ%vieZUex8k^Y*2kuQEq@7%dlQSm>JjEqcQ zp_Ntam%V9i^761ex4yo?5SES@|89jATOVdw*x*%x^PFGgP$cX;bpV~oU z5K@Fw_Udl7w&GBF2g$KV#C`a16-n=6?uR$N!>;@26r8GMA^drq-`IHAy8iBcIeGbF z7cHp&)vJnJ0Y}Ee(-TF(K_*eNL>RV$N=r-CH8i55quE1brR@P^G7=)!DL}KcvxDSs z8yk;j7ls^%JxonZboKRB9XpnmBAuOg(D0RP_7><4F;&vZ*?DR)7Lk0$j`C%62V8Og zzEoT*xVJZN-qh9})Ml7kSj^AOmB%%UH3Pomaw*s#v+nNhYbhylv9awP9YceII9uDk z-d=46VIQ5%3l>>^EGaI2JJ(kT9XNEzru@Y&6e=%2zr3srDr#!-jT$FoOhpFBlv8IP z)YhVb_io=t%gN<17&d#QePF@mMp>_R0>(m3&CgqhR5NlyR~AZ5OWSgVxG%~?Nt;1^ z&7#xkoj9F-NsircrMor*tVnC?>Fq^8%9({ZIsM){p{f$x_jz&k->eR!*1vxzIy+m!ettfIbvGv`7TCnaMfwiW*vQC>cR%z;{PE?@^-J@a zou4`lVt#JK85z|?vp&uYSNmEeZKP8uaU0*cX=&p5PGJ`=Y#Ol!Mrr~wRje|w#n-TB zgMwi8EY`!rBQnykuRYff3<>ft2+BAg%nOh;d z5E7}C#PytD0@*)#f`_>$%uP(R7=*0y?)b&!WnDczo1dm{!yD4m)5pih>qbA6DY_;7 z+!*QZzCmDF#xDb-MVKflXO`<&{}=(?B`0qIq1tGLX?_0udB^qL4h{|{b+hU8V*~>A zuhBZ4Z&$FzN=iz#zWl1)lG~<0(7kz6l=uP6Bn4Xi&QanJkUAVb5$p#>aMYYrLPEm) zgW=FhOybp>cIu_VAJ>Zp0yQaCmaWR H=D+^}#+?yl delta 2135 zcmV-d2&nh+5cUv|Hh(KgL_t(&f$f-SOcUQ4#@{X!rGT^r3N28|B7%ZM8iKMImmtB& zrisX6Pzm^fO@qW>0s;|3xquHrY8OVZcZud1qIv)O%peM}}3)$sXz7K^n-1^zX@eED+x z`0=f-VsrTV`YKFI4veSZ%Yi$x-lwz`Uc z4xY(m&d<-Uu79qsJx8HXyu7?*GTDa@AEZ(#05F+MI-M>M2(VbJv$J!3eZ5E|a&d9d z)zximY*dqu$Gf|`o0yn%bae3feB_{`qob3P6OYGhZEaP~l*wd=4a z)7#q{hr@Yzc=Y%8&(F`J;ojcf~#2<>ifxi~xXIB?^{Gr6wmQ$Hc^}?YpO^$H2eR!0sta@^5jW! zaTMb z9FC!(;m403aX1_RL`6jv78Z_=kN5TUy?XVkprC+8qrH9mHYq8|%gak8fk-4)S62@W z4S!{4XZQ5K53xl>MYFTB4Gj$(4(HghW18%086F;f|Ni}{Q>QE}EHr5lTwPt8 znwsw4zptaC)7I98$K&no?c?L)YinyCK72@{(JU-1Vq;^~dNnBv3JQXPg38Lu7z{>3 zLjx9z1%L||E^s)UzP>&!EiLq*TIFwKWq)O{+3dA_A3S&vY54p5H#Ie(;?JKyBkhTa ziJY7q0I;^Uo|&0ZiFS2$9U2-U5{Urd>FH@=Vq#-sBbUpqtgMiUmP(~a7gI>((t5`@Vhq#(&1f zjE#-g6B{2NkDM(jDY({Rj3=D`wA}kh* zYy^=_h4kO(=;&y&uT`3xn*%_1cQ*hmFE97@_A;5wPoF*kKv!26a%tw~=JfRRkQG#| z65+QSsI#*ZdBcs3jU7FDlz+qF(CPHq*;zL?H}nM$01}BrZ5xBZC?_ZsiZf@<*xTDj zM@M&dcKZ7IN+c4QOcog#DVNJtW^HL{X+yJ&($doMW3@yx45EL?UT!ZeC9;5`VSU{`m3Z4UH%{ zIay0f3jn63rT~COqh)4h?%utd&*zg!B%x4C>mHtE(&)tAD+{9RLao3)9llH0?3h$;`~m%*+g0vrHyiT3W(jFi}xa=tH@o z5K~jr#l^+Bxw&`m-US8*Iy*bp)zz&(cCCG*Bl`OFtMbp~B5rJKw6?akwY80liyIgih>ME@fV{lCh=>Se!2|%Q zRGO5O=EA~4T3Q+aD3=5P zNLyQ5Thl%fg@4cI7Z(=~4h}9ZF1EI|u4gLO;^gF1T3X8E@dyOM?Cfl0WaNfo*V;8H zySloFM53jo<+Eqc78e&&Q&Y>!%h$@Lr>7r0c);aymzI{Anwrq(b2F^0tX#TusiLCd z^5x4^Dm5V?K~wDdmFgjpNXnmHHVO`hV=x#h30N%F!cf9O?K=Ed(AU@BOw9m5AP}sq ztW^H=tv^<+eUlK0L<0kZzZeJrSS*&oV5ofG-=uPzZMNBFn{EDI_!mBDh-~*uma_l= N002ovPDHLkV1g~m8g>8x diff --git a/test/reference/inverse-text.traps.ref.png b/test/reference/inverse-text.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 GIT binary patch literal 2162 zcmW+&2{=?;A3u#=yz^1gkS%&G@!ASyWG${4Gj^dxsG+P`BTEclS!QZT(->u!ZC)DR zWQnG+Ym~i62xV=fNJ+?h`u_L1=RD87|L2_lJ-_9DDGqjcQM3#i03b@RLY&~-3~w=E z6dd~!=E-mpBw6DTu=V>Y;FZw<5LP81$DDl=7qVh)ZUxKo4;;lDZ*Rx62o&3$FF950 z`l0kr!|A!OJDK_qddT9{wqvbFGJ`&7GP@qcT!NI|S zfsaqAY-)9S>+VPy`=qY_geHqklQ(%Z;ty#KHz(ZR$5h+-f}k3 zDUnP&;MsWX+O@z)3EAma9IsK&?k&`)N=a$yL=#y7ydEFd($qX8V`gS%EZ=nG+op+> z$dm62V^}WLjGv0T_c!C&?CkmR07Oye;K7iwx{F#`T09;P9KAQ7hM}I(#$vIn-@mij zY4?oz_16%4$4`SN9Bqp5eu>f(4_UYm#!Bcc_X}#>dB_qod&) za5E#r(ZfStLBYPzA3xu8EI*PVurFf!PWI;e}8{t z-1?5ahBcQzPb4P`?%uuI({plgaImH2*!UR>qL^CD?8grR~H5R{QPQb zYePdrB_$=-*4FY(<4}M{6!mp;bJNex&B`h_x*Q&^CwMiZYu3`zvdk_Q1&}jNPGO6$ z8{D~(6r^Zy&{;ttzr0+{G`~r4e020tX(^87oR*g6>f*96QY{1w=XySNw>6vSRoP*4aC2;h>Ou-Jzusyt@r=1|Qk zI~8EjKv`LN<7=N8tQVD-z@O$tEs?HV$?2Niud0g2yZzplG z`sS6c#xR;P==AWfbGEz)rDGu>A#rg$+!+^_r1rgg_YSk&1%P5keN9bGQHkiEfBFRn z;|&o{Pfu~m%+yqoYXzk1HbBE^V5kB@JND%b4GoRb;Te@1TbPJRUXOswg@!^TE*b6x z81x@u0-$+)^>grKBdtA9f4$|Zkj8TX6sn!1<1|CArQNuJu;=FIeSCbXZUvyaoPrw%%6HcC@9zm-o1ZM zp;FBSAzDyEf6bE7FMf&b+Ov@uvyOPI$Z!NbMlm_Kb2KK3ql9yO;;a z8$TTP(_)bPi>s?R1px-(b2enM87M9; zR#s7oh=^bf`OEF_@%Kjq|5_O^H#axv|7~OA@!aB&?XZiXfq|yBwxVsv@^YBH{Z1OL zg2mbf?${)Y*xB1pFGZme&stHwjO{GHe_u4Z6&~7~H*acc4yiK?O-vT%=gXp-1)3qY z6H-a$en#Eh-Pe+mqNAePJ35922N68JueVp7LEKMgaRWw8KNb}hzMb#O2L}%ywk&(G zTU`6cjWyd4^B;V+}`j&`GDyJ*cU{K+)a4jggYdVlXWCiFq_$X^?blCt^*M zl)T(ENYx`JH6=lEO3JnboBiPia_S7~>k>Mh-ic`Ri?FSRE1cCCFe9a{r?(dcUdU|f$`$0crPONOMUtUP>{M4xv`D-IuPp>+nC8N2A%|aLEp8 zNIL|$x3?F1K7l}h+rtq!I5;$W>t+b-27~?)(3f-V_#_U@c>n%=TU#46LlqSj27>`j z3_7TJ;Xy@3)KX4P&g1w^L*UEY4y*!6q*fBgb&?4g|KtgdbJEzrK#f7nDC>?{T3ON5 z(z5(z_%@_IH8pi&Vxo5JL#eD&{I89X?(Q4J64RI!sIX82Ir;Q54U3;6u(-s;ZO};@ z%&@J`pFi)ozQ@|y`jloSoqn81r2aKltMM(tyiiU~uEvvBxkp5B8v5ItHwAGYU>lO5 z)$JM^f+Q!0Oa^$to*O=I7aJS9@L)Ko0vmVrrj>Fr|L66B0bf dTYG-}adj$wa=V1NI{b+M1WP-FZGQH@{{p-?6QBS9 literal 0 HcmV?d00001 diff --git a/test/reference/inverse-text.traps.rgb24.ref.png b/test/reference/inverse-text.traps.rgb24.ref.png index 40defe6e13d4e4d080146a66d128124a9bf79279..b7bbb972f19e67e3a2fdf4ede5a92c5d351759b8 100644 GIT binary patch delta 2131 zcmW-ic|25Y8^=$hC!TpJO+&WmvBYC5l##W@7>u!o7NLg1kTtTz$y=708qzdI*<~;f zjd!v{(~P}Q_97XftZfvDgnI7Y>yPutIrrzjuXBHYzu&bYy(E3p7}m7M9d!>(p3g}j z-U?F`?mvP)*4~b85i4~%$2wW+`JwDi-+sj{uwc!=E~O^mY1BpLYbpbCl^FOR-u(Gl;S8h7|ZPP+d^2y5lD27M15~kzt{mpnb1J9fr3&yD$95@g@T7N-L zPmj;%Lr3lnXrZa6^)VRC>dFd-!%>!#lRzRxTtDH*;c5@YveKd0C6G`u5a{FM1I`Ao_{4JJx3nGZQ_&jR`iGo&b3jg#g1eQQYi4MOfP#X8>gwtuA|hmEW!Ki$3M~^65T76w=;h^QoSUDMQ(<-~ zD#~cv)vT@=8ylN)r+fs2JMHEcx$wHtn-@dDl?)ELtEd!KRA^ZiHmQ!mBGIF=GCbQo zBO}Ap!()D=MjSFxa*B_CNrAx~)ykz<^s-^$CE=&d&b&^(#}~`+07#-P)J8ZOzTi zW|tO#R79dv2Nk5C-TJ3HdwOIfwvxCxeej&x)p$lz7M&jTb=Hv|t#&j#JUlUxk3a3< zk2PsML*}o9jg+5+fqG z<2XJ6c&nkoj^(xmO2Iz$e^6Ak7kc;pJ%vieZUex8k^Y*2kuQEq@7%dlQSm>JjEqcQ zp_Ntam%V9i^761ex4yo?5SES@|89jATOVdw*x*%x^PFGgP$cX;bpV~oU z5K@Fw_Udl7w&GBF2g$KV#C`a16-n=6?uR$N!>;@26r8GMA^drq-`IHAy8iBcIeGbF z7cHp&)vJnJ0Y}Ee(-TF(K_*eNL>RV$N=r-CH8i55quE1brR@P^G7=)!DL}KcvxDSs z8yk;j7ls^%JxonZboKRB9XpnmBAuOg(D0RP_7><4F;&vZ*?DR)7Lk0$j`C%62V8Og zzEoT*xVJZN-qh9})Ml7kSj^AOmB%%UH3Pomaw*s#v+nNhYbhylv9awP9YceII9uDk z-d=46VIQ5%3l>>^EGaI2JJ(kT9XNEzru@Y&6e=%2zr3srDr#!-jT$FoOhpFBlv8IP z)YhVb_io=t%gN<17&d#QePF@mMp>_R0>(m3&CgqhR5NlyR~AZ5OWSgVxG%~?Nt;1^ z&7#xkoj9F-NsircrMor*tVnC?>Fq^8%9({ZIsM){p{f$x_jz&k->eR!*1vxzIy+m!ettfIbvGv`7TCnaMfwiW*vQC>cR%z;{PE?@^-J@a zou4`lVt#JK85z|?vp&uYSNmEeZKP8uaU0*cX=&p5PGJ`=Y#Ol!Mrr~wRje|w#n-TB zgMwi8EY`!rBQnykuRYff3<>ft2+BAg%nOh;d z5E7}C#PytD0@*)#f`_>$%uP(R7=*0y?)b&!WnDczo1dm{!yD4m)5pih>qbA6DY_;7 z+!*QZzCmDF#xDb-MVKflXO`<&{}=(?B`0qIq1tGLX?_0udB^qL4h{|{b+hU8V*~>A zuhBZ4Z&$FzN=iz#zWl1)lG~<0(7kz6l=uP6Bn4Xi&QanJkUAVb5$p#>aMYYrLPEm) zgW=FhOybp>cIu_VAJ>Zp0yQaCmaWR H=D+^}#+?yl delta 2135 zcmV-d2&nh+5cUv|Hh(KgL_t(&f$f-SOcUQ4#@{X!rGT^r3N28|B7%ZM8iKMImmtB& zrisX6Pzm^fO@qW>0s;|3xquHrY8OVZcZud1qIv)O%peM}}3)$sXz7K^n-1^zX@eED+x z`0=f-VsrTV`YKFI4veSZ%Yi$x-lwz`Uc z4xY(m&d<-Uu79qsJx8HXyu7?*GTDa@AEZ(#05F+MI-M>M2(VbJv$J!3eZ5E|a&d9d z)zximY*dqu$Gf|`o0yn%bae3feB_{`qob3P6OYGhZEaP~l*wd=4a z)7#q{hr@Yzc=Y%8&(F`J;ojcf~#2<>ifxi~xXIB?^{Gr6wmQ$Hc^}?YpO^$H2eR!0sta@^5jW! zaTMb z9FC!(;m403aX1_RL`6jv78Z_=kN5TUy?XVkprC+8qrH9mHYq8|%gak8fk-4)S62@W z4S!{4XZQ5K53xl>MYFTB4Gj$(4(HghW18%086F;f|Ni}{Q>QE}EHr5lTwPt8 znwsw4zptaC)7I98$K&no?c?L)YinyCK72@{(JU-1Vq;^~dNnBv3JQXPg38Lu7z{>3 zLjx9z1%L||E^s)UzP>&!EiLq*TIFwKWq)O{+3dA_A3S&vY54p5H#Ie(;?JKyBkhTa ziJY7q0I;^Uo|&0ZiFS2$9U2-U5{Urd>FH@=Vq#-sBbUpqtgMiUmP(~a7gI>((t5`@Vhq#(&1f zjE#-g6B{2NkDM(jDY({Rj3=D`wA}kh* zYy^=_h4kO(=;&y&uT`3xn*%_1cQ*hmFE97@_A;5wPoF*kKv!26a%tw~=JfRRkQG#| z65+QSsI#*ZdBcs3jU7FDlz+qF(CPHq*;zL?H}nM$01}BrZ5xBZC?_ZsiZf@<*xTDj zM@M&dcKZ7IN+c4QOcog#DVNJtW^HL{X+yJ&($doMW3@yx45EL?UT!ZeC9;5`VSU{`m3Z4UH%{ zIay0f3jn63rT~COqh)4h?%utd&*zg!B%x4C>mHtE(&)tAD+{9RLao3)9llH0?3h$;`~m%*+g0vrHyiT3W(jFi}xa=tH@o z5K~jr#l^+Bxw&`m-US8*Iy*bp)zz&(cCCG*Bl`OFtMbp~B5rJKw6?akwY80liyIgih>ME@fV{lCh=>Se!2|%Q zRGO5O=EA~4T3Q+aD3=5P zNLyQ5Thl%fg@4cI7Z(=~4h}9ZF1EI|u4gLO;^gF1T3X8E@dyOM?Cfl0WaNfo*V;8H zySloFM53jo<+Eqc78e&&Q&Y>!%h$@Lr>7r0c);aymzI{Anwrq(b2F^0tX#TusiLCd z^5x4^Dm5V?K~wDdmFgjpNXnmHHVO`hV=x#h30N%F!cf9O?K=Ed(AU@BOw9m5AP}sq ztW^H=tv^<+eUlK0L<0kZzZeJrSS*&oV5ofG-=uPzZMNBFn{EDI_!mBDh-~*uma_l= N002ovPDHLkV1g~m8g>8x diff --git a/test/reference/inverted-clip.base.xfail.png b/test/reference/inverted-clip.base.xfail.png new file mode 100644 index 0000000000000000000000000000000000000000..080b7825bd8e18d92253c4e0c7af2071b69e29eb GIT binary patch literal 1293 zcmV+o1@iidP)sC2I$YL=;Ov z6iYx9OF$G$Kom){g1a8BnAU=MKw8T1rB^ZJ`Frs9$1HZ!%ETq&!!i&{~ zM=%TX!CtWm+wcQ?66_T~Sh3o$2w%ZeuvaA6g}>n5`ynp?!Nht1H(?@-@jkqSb@(xe z?Eqr!zz*EgHY?(+zs z8m82F3R7@Z!IFkpbr^yfe`kWR1*Zyg7jLmPpqj^(NM~wWv!H5DWC>V z&7~~F>iGLo1T1E!7GjlbBKk2bw#`jr)@!%|14<6%nI61>EB%U?TGsRPp%hSoO>>dH zw6uIF0;UOsNvw0ytn4s}RZGQ-oM4(EMX?f?KGq~wu!CWF#PqQyu}mv~QsLVTOTW-b z;wx7CH%wp>%Pw|N5=@gylUS0?kHX_CR_VijNlYJW6051@ND(l7Y!oYj@7nNOVfyPg ziB;8dqzL#fcjj&P)Cy0}e4N=N)>U|>z0}%|$H48ufRi2v~#+ zEH+t>p#z_4IFwsnL)Cn@)2?MbQSm6ptXSQGwVP*^;1FqlOhfw_c8A$|uv6ZHG=IZ2 zt6-E}%c?-#&!IfCWgE7$J|_7V_F>w?r+l&nlQ3*m)_QF?3>(fK<(N%drI1~rYs0H@ zja+q@5+vo2L>(@8-9O7C|H#sp2tzdA`&_BY84qDWRzn`ont^}Cm2$^{%WV-SvDOM6 zw>e9d_X2sv4Zzj*bNwjRbMk<`4ff}?rLf58-5Oxws(ax zU>T-iT*a2w|M3ajhtsU51^;)cr)E$)Gut09qxCcTu@Ad&SJR~S_Wc5MVNuztm`8A; ztP}wgBrZb@ZiF%3hjnPdcR_5&)SCiIk<|4$>=Zqz>j!MWHr&!neOj1A;OF$G$Kom__+J-MR7Cdwb*A-I-!SK*)5~4it$XmVzLb zf*_WHAeMq4mVzLbf*_WHAeMsfv%L9VZ~z0Cf-2Nt7HUudUo7@DvS ztKM$$C+x#E-12q{z^_l1X~R~M$7 zvkNP5*MTJ$Vs&5yKRfWo7w=)t!4#HQtPe1o#amBH2gdMIA{)uX>H@Ho$b}`U- z31@Io9HoFI7{K5525iOp0w=Ixf8%U;1Rc1v>}@Mn1GX%?X3Q46vF>aUalFntfJz>J zS$zfl1b+;*e8lKU=)nLU>N@Ek!%p#)0`9=EMK{$@e3SJPN_G zCRVF-Q+u2>Xo(ui#2O^=r3myztppSN5F&Rgqxqx{GcaptB^X(|WmgKAhh1|kfmq|@ zz7&C>xrsomk_Dn)Ly*NZ%~@x#px^6KL?ZYM3pX_}jja7|Ln&YyKAM}{h~P;s52gqy zY?D-A604Sq7dhd!;d7H%rH`=Um@>d7u_~?{DFUWla6zmXrY~y}%k&tR3e%hu-i8WH zVqK)-MNUW>XMIyasp-oGv0|8(#Y|$IyKvw?O17CTg5&aTq&a{!(TbmJWKF|%CjyiIZp zy)th8>%u*l5w#WnH=Kn%YmaiwJE>CWj?fL^tXwnKA>0?e2d~g%9V(@Z=1&z$0s2!3 zjjWGFxVrSGMfCZs73iru<&Mub^NC)pW!Nit-ev;7+ilXb8^d`k;h?%+T6VNOP<{#R zVjgB~!KNZyh+~_BpMi%3%nP=mZmATZRDp_Qt2;|Df=(hEDRB&=q`zz8rLe0S9Pg8w z@yj3ZUD9$PxLG$`h6T|Hg=}cSkFe;(maF&iRY|BQ>#!hxMeq_Xof&jpY^(vB(!`@* zJQN%AP{ytUN4~1=Nol~E``5I$0*O1Ym_aIFVAKt<|JW1&^Ru+Y*e}f?`!G=E0i=YiB zP=P1j>jVFf)WwSP2|iwLF04Wo=Ae4LDeM9UFoN^zJ$Y5AoA7Ix!M2#002ovPDHLkV1j?XSTO(q literal 0 HcmV?d00001 diff --git a/test/reference/inverted-clip.xfail.png b/test/reference/inverted-clip.xfail.png new file mode 100644 index 0000000000000000000000000000000000000000..080b7825bd8e18d92253c4e0c7af2071b69e29eb GIT binary patch literal 1293 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 W&9|DfO|1^ox&6;3h$ literal 0 HcmV?d00001 diff --git a/test/reference/joins-loop.egl.argb32.ref.png b/test/reference/joins-loop.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8dfca91d7692a7c264ec8d546ec7498aa0d304 GIT binary patch literal 4827 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 literal 0 HcmV?d00001 diff --git a/test/reference/joins-loop.mask.argb32.ref.png b/test/reference/joins-loop.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3f25ada91e6305b119690aaf1961d468624c94 GIT binary patch literal 4492 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 W&9|DfO|1^ox&6;3h$ literal 0 HcmV?d00001 diff --git a/test/reference/joins-loop.mask.rgb24.ref.png b/test/reference/joins-loop.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3f25ada91e6305b119690aaf1961d468624c94 GIT binary patch literal 4492 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 W&9|DfO|1^ox&6;3h$ literal 0 HcmV?d00001 diff --git a/test/reference/joins-loop.rgb24.ref.png b/test/reference/joins-loop.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3f25ada91e6305b119690aaf1961d468624c94 GIT binary patch literal 4492 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 W&9|DfO|1^ox&6;3h$ literal 0 HcmV?d00001 diff --git a/test/reference/joins-retrace.argb32.ref.png b/test/reference/joins-retrace.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22b0ecf9ae090c44df3fe71b16b7178c638dd60b GIT binary patch literal 4997 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 literal 0 HcmV?d00001 diff --git a/test/reference/joins-retrace.egl.argb32.ref.png b/test/reference/joins-retrace.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac9dbf9397247bd800768430c91c66f7a274f99 GIT binary patch literal 5230 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 literal 0 HcmV?d00001 diff --git a/test/reference/joins-retrace.mask.argb32.ref.png b/test/reference/joins-retrace.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22b0ecf9ae090c44df3fe71b16b7178c638dd60b GIT binary patch literal 4997 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 literal 0 HcmV?d00001 diff --git a/test/reference/joins-retrace.mask.rgb24.ref.png b/test/reference/joins-retrace.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22b0ecf9ae090c44df3fe71b16b7178c638dd60b GIT binary patch literal 4997 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 literal 0 HcmV?d00001 diff --git a/test/reference/joins-retrace.rgb24.ref.png b/test/reference/joins-retrace.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22b0ecf9ae090c44df3fe71b16b7178c638dd60b GIT binary patch literal 4997 zcmb7Ic{tSV*T*o{ktE7kMy8B4Jd7n_5=N4xvPQNLV^_vfnDLBE))87|C#fuB%@SiP z6tc^{mA&j``Q5zF`@4SE`@a9YXRd3O>-)XWckcUq&gXp2i8Q*R3uEJFqobpP>0vLL z(9zMK0N-0!7{Gf~)@@Dj0kzlHy-2rz@Jg-DNuZ-UrmA-la}ED|@x`d&)y@6ppifF+ z@F+t0_3chZp6#^LI>alFD#Jv5WLwSKjP@BE?9M_+DT(B z$De3WPRcP%$jXtpj`f-}x|>WtU)D~zZ*xvMCudP*c6YK$$iFlqr7vJBux2nNMVKJf zie|)g(XLd|F^g=s6B@L* zMVtH?yuZ7-5@O257~8zMST;(LB>Uo7x^{MU@~*$enqk->5Xhg6#fQ6|B}0p49>aOB zUWu3-7r#6Yo6#7&x3!X1SsBO=<0&hU84l@pDu!`# zQe?g&sr}`_+wwo;4eEDBY?ZOB%muB}MW4@c4~9PWB=#VxL-z0Q{$8IedV8bdLgnQI zO*q#nv^k8M)0Sm0l&i4LG0uxls{A9l3V*Vj)S zT5IxIXJAfFBh^8C0TQC34vpmFDk>^)G!7*#eW&8a_V%`3^;V*!+1}2oVIq@+ghb8O z#KZ2_eQ+v$AvyYysPg&q!vg~YU0o*Eu087J7v$9S_4W1l_eb$uD(98XQQcTu%d9#c z7=}jhQse#NQq%$_e&R3b>nCvYB)7F)Hs(2NQR z!Jny#=;-V;wy=0olVM&|TpTN)A}=SGW-fkRl-WHMcAT5}wxi?JSRK*A!a~P|z(O!G zGxG1ZhCH0d)FG8a zMz&=`x;i@Ptqz_I>7~VX;5y@-+=M|oPAJjZ+S;SciYvUoPe4e>RBE)l+i@>DEA%Lu zXJNEfI7o}BL=-+aI5;;yuV`B9GyN$qPa?T>+D~=$*MXfX4z{zi^YHKp3=Filp8yC5 z(?l>SvMt>G1OAQvrAwu_0g9KM9_1irn}3*@nIlM~`tcPX{S@_kfnQS2uf%KYZHbn! zsT8DXrZEI*VF>W(p6>3bm>8K&oRiZG@Hjs|KkVUu>sD4$-Nwo|t>(~v{`?uvF6OvC z*8^;NdiwO~(*Xei07U3#29(T-L*qMZqZYX4g2PGiu-y*E)Q;Y?vV!mC(8lrWbBRs0 z(_f$s<6do_KiBI@jleH;j~0+fB>Vk~T#RKy!#zEU8X7O_gIvNRBO^0(V|CE6Lh8F~ zSIsj~WY+y~2Y6g|_8IMV-enk5WJug_g|G8kiI18v`4?oIk z#?;2*Q0K31f3$g>4rAkI63TQ5tRnIZXcv1=>b&cFUtXS@e5M7!-_z66!s6s@WAw9j zQ!6WWw^h7ap|Cy(`k{6+=43LO_wdH9m0ByK8#$;l~u*=4dRS}4{zIQaS6-DYNYP4hyG zb{zGk)vw>{^Gi!hGcz-ewSm0Hj|-~d3yOg|PZ*_8}_wNL4F5Pl;jFTa&ojiFGFi!J`kv!Z73>s54ise4uwV*$0wWt?q9+n#D;+u zy<@=r7m_h%!gDGU0^HxGL5jcGt_wT|; z8{I3ezezxd=AdU}_QZN%iQ%H8;-c#!f z0??+`@U=B)w`pow8K3*b@fsz+Js1DYC2M1z3IUamU0q%2BdSS7BC8{C(oT$ms;Z@# zS&nSun%Ec*3WYM#i|@f*94}GgP;*)DyBV@Om0*}&1eh(#itq1WpcW)BMNeT&JL{xz z=a!h57;?J#_3MqlTl9DnW99Nggge+%0=41{DjuxQ z*;)k!1+G`*3tQh|2}`jJVXqtqO5Duc++I&y;UyrbrKR>{MDQ9(ZyB4^IJ^2n#doHT z$V@=shDsN^UtRSmd*)~SV9z#=>mu_?Z!$|domeQLt3?ZFbab9WbV-@e^j87HRAr$+-F)szkN&c~wQUsE5;4K3J40%@topr`fb z78l>-<&od!zJEWIdZ#mzHg44Ep$O-a38KXzwu5U12Q9Vd%@=p(c6Ndj5f<$_JT^ff zblPX4Tc_*gq*{NaX+>NkI4Z)wZ9;7jU8og?c&?=&tyzC$Vmz&RtdsLF*0al4js2bC z%KY{DzS@v|o6$rQ0D={FtyzS(2A%>Syj7aEZ*#7O*|6xp!8A$~vp5732z|rPu|ov) zkVG&O_?1jLu-KKBs}+tHRC@(<#*IPQ74vg4%!UV0Oh$85y!Tw<87oufc2F_tUJ+GtZw?C@m)ZP;fp{nDZ|xn1JQPvOY%2~he-p6 zJ26J))Fr3`PtmZy2uNQAydTJptpYm}kbG(f$rs!&D~^>vOVm9J9u0xdFh$1JW$=Lo zVX#%OKo0K*o?u=UkHF3iH3@s4<~VXh35^D<8vph)j!Y)=!{PVTg*Qmjor;li*nN@S z(B{dbjA4G($fJyD)zyLrtj0)g7Zwnp;>n-{$SNp=SBGJ`$o8wxo<7BzU1a~Wx!er6 z?zVQ}_MHEt0v^r?2oMET>skD~I6kBzU^v`xWuhM|HB^E-RCp0VZm$KBMn?zwBfTXd zKHhtO@7@BeB-1tyQ3&MtEIm^3_`*zj#kj^`ip{+JIFI$&%Pjz#{5XEX)rK2jAB9DL)} zla!Pc2s0;2==qZ;C*g3gjlhis3)vIFt26DO#7@1+&(8<>d1t=&I1kUG!~?tK>-8bG{ov`CuPPnLPbcd~l=4vJ@PX$f%cm5s3%>FMc7NlBkSf1dsFGGXK!BY=h^ zI+q2oiix)N-@ki>&fUGt)7aM5mMPG9>;I~Ljxb^~3)+3KyR-8s3nSLEnj37U9x9FL zlE-tLl9Zh9NYl#5$jB7jIr7g1isC}L96u0T>w)3}?BQs{+E52i=HA|(mva8gq%BbD zyS(-cf%2Syoeyj$Q7Dw8B;I#@ZsKsWcQ)5weVwR2dfGb<3Weg(Lr)dm28V`bXJ^+< zk*!5LUo`fgpYwm4ni@()J!^ORv$Oie&K;CDX(=hSkiDJJkbU>?XfNg9@%q0fChSi= z6HYEIEiKQotWrWm5~*%|Z@;ro&&;GKd)vFZUOH>=Z@rU{(XhO!+xq_ApVHx)1#v6W zf}?dFWwB9F4ZOJN5u-Q+wsv>JYN3^tFn0I-`^ri}o$aTmXU?375juZq=q$0Mq@(~V z-G>|Nhaxwg!VUx$YYfio{V-_rESCnr>Ha>n^FbTeOif)?JZHyg5%&&lPQ%RYe=5SG z>l9@Bp;hC5PIPAIIyg9_8DS^c0a{jzzo$^!3fsxPHo;KZT4lm)!9Z9P%O z0cBktpMpWrG1+S4;(&q!`sU&PjXq#?#-Q<6I_hcdZE@Rh7?Xj4LH|K#f=u*x=YJq% zm&kAUQvLk>9X!D58k3u=t3BV<(E-gPK>Vln4}?}9Z7sqKR``lx_$;yeHy$-MYQO8V zvb1z99$5NTam@coZ?9<=JTJ1lNp@;+sBHH03rQ)dYgIlA2P(!sQW!K*Mm9EAdbR6? z$GQa6jO)j}LPBakF@P2)sc3vXuy*HHtD;+PL$woRL+3_!jc9aK)Pr=FJw?A#&rx*+ zg^NS16woQ<#%(bVobz82Q1wGeO18S_5)j=zJ=V4Nttpu;c_l9&+Vg|E8novzufsG` zK`Im#b+H%#Rj(T(@Z|Ahqx@^FcC|l3l(6*FFf+RLKoZo`bnDJe?}3%J|2^)^iJ0_5(_y?%H9_m7;ucQ?guu)7nT zRXU&z1oT?P*2n*6SBp0^`~sB1n<7nZ?MBe?{MfDoQa9h8_Pi<^^7nfe7QiWM{k90K z{MA0Czkp@|oirSi?!3|gDvpsoF&go)n?vY8ogQ}Km!L;Z16F~dAG1;}H;)~(-Xb2v zEJUX){yV4)4~A?(HDDqhw(9w?Cc?$w6(bh*T?K1&~{kDo&WzxZvpaJ?CL-FR==cCfgjY4Ud zE+4|w*cbv#EG|5Z1}%O97-F<7!$?HrYfd3!p5>8h{YuTNddj3DLTcDbomJTirG8G6 zZ-%rxckWypX6RAizORIml0yD_R1Ln~JQgX5}eL?oIRNaj!U;j%#fTuo)s! z&*b{`L=?GpfA8E6%a)A2VNGvc)+M=OrL_t&m&MHNtl1k&?MgPw6DLmemwDb?2zd== zGI!=p4GduMd00D3&kmo?Y`+gY7=C_!ODn76X4AZkX>Z=NyNVY*>4&RTiHa0%1=sxL z{8iE#Y4^E^Oxj literal 0 HcmV?d00001 diff --git a/test/reference/joins-star.argb32.ref.png b/test/reference/joins-star.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..76a541cc344ac155e8f2fa5d0231c3df2543ca5d GIT binary patch literal 4914 zcmeHLdo)yg8=e|9h-e5kC$~oEh>GMW6T^&qLppMa2?>SD^)!)ia+`+6ZCuBFs&g2^ zh}?6FiKL6m4EdNbY8VX45WcO`I%|Dvoo}u0-*2tfUTa^T{jUAn@AJI-eV?`CZO)pC zi|!W%fk5KsW+vxAplx!%d6V#VVDB~-n*$tnx?7r>fHt?b{KkhVAP|&eZen!)x18Br z3`WWY7W>LUv6UBOd_kjM92==+xV__Ea*)dAhy}>c8$UA+_AX>pMxIcJR5rPg|JsCP z@x0U9-As`u_VQ(Y#^9}(%)XCI4)aUSW9A^QTYK{kiE~nW_9sd@_gR#ioPmEP0u&>V z9alakw*4YJ#^^4-{iyH_qTJ4Hn$R}I7L>c3P_3C*G)OkyP4b_EE{zY&FHD-+#UsL3 zO{6U%qobqaYb%Io!D!ir-~u#B^F8M{9(op7*54o zlpv)=dpbK~JRK>gg`Q|!3k=lGecQ-TVawE+p!83jg8lT9PKn2j8}lK<(iSk=d&#nE-EH;6grC7QYe&ZeqUeTNX_i# z!%01wQ*Y2jacOxuq-vu~fDVLbXzx97=oxKMcx4s^}MciB-Rn=6?}DLqo0{2BqSu{#v3Ca zo&A&pUrnoq;o`87Q6}?Zdi`4(>bWnma`NZPJ;En@&_NF~XU`?eh)m`Y4V#c(Ku{`` zYEhD$rGD;f-L3;1$-4+Y)d)hlinpqQdssSQswF!!^MnzSd<(-M3 z+W#pCL->EFEsFJLvK9qbX{&6ytj$+R7mnsQ*)fiaLS!XftCxrRlO8$4&G4zL{3p*$ zaG#gAb$G$Dbkoz*D=&HY_^5X$RIE%_3Uy{?tj=)339odQ{9e9#1*;~`JF&LmF-n%+ zdGU67Yq+};RpQbxI-O4Og*V9DYMGGg{v-zu-zePBG+Y?onJ%8IsbW%vQa*)(wg*y! zcy3`^aG`ka?FQ;J^R=L5BBcjfRs?;MID8wI~7fTi>N9*hXPl7f7vvG~)M z7VOehQpuR2QpO&euo@%3Hg0mFc&Us?G)ftVD667wqBHb>EYPC5WJLHM9v+^aDuU<(;{6IybmVgdx1$Iw&}pts3AmSToDwQry7jPxVs< zBAh-fG+O6-T!A^(JgKM{?{#r-aJWmg^owrxwNVwM1HuuU%0ABwYtw>n&(U|b4`W4t z?=#@vGy0yDCcRWWDPK#Fyv3|vduLZ#+73JUCM|*ccfd3??SP#;Sxa#IZ=fSWPx5y^ zApyrvZlw*e&Uq8JNc+xGUZqAU=Z(YMl+a%+-N~xd`G7NC2tfe?5VOP?HFS0W{~euO z=?MF{SA;!kJ6!|;_$&4Rk0>Wul(_e!El|iXFpM|7RmbW>Hb6h|Cjm-6xVIs1-2Qs2 zf*<)!SHA#1v8-5mTiM@5fV}?}Tdcd}%(8ua9;t=5YTfBajO!#odcNHW()DFf&mZn5 zv_}r8IE3jtetqLq8=Li9(`xvJ%Tw3#=$igCT%$a*X;RN6uO;SghiY=ina^>-4>lXb zWe1cW5YRVyPA-p>t!A6R~pp_ajfk zqjgV<-it~kP-B08ryLRdNwan0XSMp;T5p;Y&^-CoJziK(ta)EMa8YK@otQu>{TA2V zZQk8FUSk$<&}Hz53|?QC1&L-TM;t76iR!puGo@frKT0N(d0Z}@g7P6YA6(a5US77w zV4gB&6T#;R-~~2)00zBXb$A`jn;<(Ye`5*7{?MA%Bj6QNsffXdWt`>*)ajgIy(I^@zJ|2%R$kom6U8*v5bavjgt{oiKB!o}OKicy7bI7Xe#L)0?t2LzLwRc9y zyh87l6dhmhQ2oI|X|n);hps0pB!x3~mcD#}*-8~QH*a!Y<<)*PoSB`yhe*ii_&#uJ z%f0c(13Y&R&;X_NWWcAxR{B%36qDo)kV!iW9W;PJcjfBU1kLhh64{#=+wfP^%-kI8 z{N&*H$$DRA zW~P$p4i){mR%x|B+2l8YNBF|QB0|3s$C@LqTXe-rD8wPv$6qNO^#tGKA)z>KqGkd= zQf3i{kC8!m&HY>Zy0p5`U4PRY~S4-Uvfk33Bq}tlr zD86D65*RD1c{&DK_?0j9hjJR-(@yhnny9Us+R4S>i-3*FRcKaH9~d4U9v{zFKLB_$ zFE1~E3T8F7$Yz81{Jv!P@L@HCInlM@H#hqpI!Q}CAhOn{8BP59<*K&XbU3}n&lsz1 z!H2FBiF>MC(P;F!wU2Z?|M7C$zx`1sw(!G$xTCGRaW5p!UEY+}!kKb5#SUp8vR*V> zSzBlRI=L|33I@u+f27=Y<@Uz{?l~sy1sJG+3G7)6=K5$)d)4EMnxQycLiX-<>$MXJ z<4w3iOTLWA#<4338^@*;)i>o9e;A%0hUbUj`C)i|7@i-7=ZE3>KQ%n_XP)BW5Pnbo RJn$0?WR5y(LPcJR`Zp|HwbK9q literal 0 HcmV?d00001 diff --git a/test/reference/joins-star.egl.argb32.ref.png b/test/reference/joins-star.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f32031fb4ca6aba423b5e728db644c69d793c614 GIT binary patch literal 5079 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 C&*0Sn literal 0 HcmV?d00001 diff --git a/test/reference/joins-star.mask.argb32.ref.png b/test/reference/joins-star.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..76a541cc344ac155e8f2fa5d0231c3df2543ca5d GIT binary patch literal 4914 zcmeHLdo)yg8=e|9h-e5kC$~oEh>GMW6T^&qLppMa2?>SD^)!)ia+`+6ZCuBFs&g2^ zh}?6FiKL6m4EdNbY8VX45WcO`I%|Dvoo}u0-*2tfUTa^T{jUAn@AJI-eV?`CZO)pC zi|!W%fk5KsW+vxAplx!%d6V#VVDB~-n*$tnx?7r>fHt?b{KkhVAP|&eZen!)x18Br z3`WWY7W>LUv6UBOd_kjM92==+xV__Ea*)dAhy}>c8$UA+_AX>pMxIcJR5rPg|JsCP z@x0U9-As`u_VQ(Y#^9}(%)XCI4)aUSW9A^QTYK{kiE~nW_9sd@_gR#ioPmEP0u&>V z9alakw*4YJ#^^4-{iyH_qTJ4Hn$R}I7L>c3P_3C*G)OkyP4b_EE{zY&FHD-+#UsL3 zO{6U%qobqaYb%Io!D!ir-~u#B^F8M{9(op7*54o zlpv)=dpbK~JRK>gg`Q|!3k=lGecQ-TVawE+p!83jg8lT9PKn2j8}lK<(iSk=d&#nE-EH;6grC7QYe&ZeqUeTNX_i# z!%01wQ*Y2jacOxuq-vu~fDVLbXzx97=oxKMcx4s^}MciB-Rn=6?}DLqo0{2BqSu{#v3Ca zo&A&pUrnoq;o`87Q6}?Zdi`4(>bWnma`NZPJ;En@&_NF~XU`?eh)m`Y4V#c(Ku{`` zYEhD$rGD;f-L3;1$-4+Y)d)hlinpqQdssSQswF!!^MnzSd<(-M3 z+W#pCL->EFEsFJLvK9qbX{&6ytj$+R7mnsQ*)fiaLS!XftCxrRlO8$4&G4zL{3p*$ zaG#gAb$G$Dbkoz*D=&HY_^5X$RIE%_3Uy{?tj=)339odQ{9e9#1*;~`JF&LmF-n%+ zdGU67Yq+};RpQbxI-O4Og*V9DYMGGg{v-zu-zePBG+Y?onJ%8IsbW%vQa*)(wg*y! zcy3`^aG`ka?FQ;J^R=L5BBcjfRs?;MID8wI~7fTi>N9*hXPl7f7vvG~)M z7VOehQpuR2QpO&euo@%3Hg0mFc&Us?G)ftVD667wqBHb>EYPC5WJLHM9v+^aDuU<(;{6IybmVgdx1$Iw&}pts3AmSToDwQry7jPxVs< zBAh-fG+O6-T!A^(JgKM{?{#r-aJWmg^owrxwNVwM1HuuU%0ABwYtw>n&(U|b4`W4t z?=#@vGy0yDCcRWWDPK#Fyv3|vduLZ#+73JUCM|*ccfd3??SP#;Sxa#IZ=fSWPx5y^ zApyrvZlw*e&Uq8JNc+xGUZqAU=Z(YMl+a%+-N~xd`G7NC2tfe?5VOP?HFS0W{~euO z=?MF{SA;!kJ6!|;_$&4Rk0>Wul(_e!El|iXFpM|7RmbW>Hb6h|Cjm-6xVIs1-2Qs2 zf*<)!SHA#1v8-5mTiM@5fV}?}Tdcd}%(8ua9;t=5YTfBajO!#odcNHW()DFf&mZn5 zv_}r8IE3jtetqLq8=Li9(`xvJ%Tw3#=$igCT%$a*X;RN6uO;SghiY=ina^>-4>lXb zWe1cW5YRVyPA-p>t!A6R~pp_ajfk zqjgV<-it~kP-B08ryLRdNwan0XSMp;T5p;Y&^-CoJziK(ta)EMa8YK@otQu>{TA2V zZQk8FUSk$<&}Hz53|?QC1&L-TM;t76iR!puGo@frKT0N(d0Z}@g7P6YA6(a5US77w zV4gB&6T#;R-~~2)00zBXb$A`jn;<(Ye`5*7{?MA%Bj6QNsffXdWt`>*)ajgIy(I^@zJ|2%R$kom6U8*v5bavjgt{oiKB!o}OKicy7bI7Xe#L)0?t2LzLwRc9y zyh87l6dhmhQ2oI|X|n);hps0pB!x3~mcD#}*-8~QH*a!Y<<)*PoSB`yhe*ii_&#uJ z%f0c(13Y&R&;X_NWWcAxR{B%36qDo)kV!iW9W;PJcjfBU1kLhh64{#=+wfP^%-kI8 z{N&*H$$DRA zW~P$p4i){mR%x|B+2l8YNBF|QB0|3s$C@LqTXe-rD8wPv$6qNO^#tGKA)z>KqGkd= zQf3i{kC8!m&HY>Zy0p5`U4PRY~S4-Uvfk33Bq}tlr zD86D65*RD1c{&DK_?0j9hjJR-(@yhnny9Us+R4S>i-3*FRcKaH9~d4U9v{zFKLB_$ zFE1~E3T8F7$Yz81{Jv!P@L@HCInlM@H#hqpI!Q}CAhOn{8BP59<*K&XbU3}n&lsz1 z!H2FBiF>MC(P;F!wU2Z?|M7C$zx`1sw(!G$xTCGRaW5p!UEY+}!kKb5#SUp8vR*V> zSzBlRI=L|33I@u+f27=Y<@Uz{?l~sy1sJG+3G7)6=K5$)d)4EMnxQycLiX-<>$MXJ z<4w3iOTLWA#<4338^@*;)i>o9e;A%0hUbUj`C)i|7@i-7=ZE3>KQ%n_XP)BW5Pnbo RJn$0?WR5y(LPcJR`Zp|HwbK9q literal 0 HcmV?d00001 diff --git a/test/reference/joins-star.mask.rgb24.ref.png b/test/reference/joins-star.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..76a541cc344ac155e8f2fa5d0231c3df2543ca5d GIT binary patch literal 4914 zcmeHLdo)yg8=e|9h-e5kC$~oEh>GMW6T^&qLppMa2?>SD^)!)ia+`+6ZCuBFs&g2^ zh}?6FiKL6m4EdNbY8VX45WcO`I%|Dvoo}u0-*2tfUTa^T{jUAn@AJI-eV?`CZO)pC zi|!W%fk5KsW+vxAplx!%d6V#VVDB~-n*$tnx?7r>fHt?b{KkhVAP|&eZen!)x18Br z3`WWY7W>LUv6UBOd_kjM92==+xV__Ea*)dAhy}>c8$UA+_AX>pMxIcJR5rPg|JsCP z@x0U9-As`u_VQ(Y#^9}(%)XCI4)aUSW9A^QTYK{kiE~nW_9sd@_gR#ioPmEP0u&>V z9alakw*4YJ#^^4-{iyH_qTJ4Hn$R}I7L>c3P_3C*G)OkyP4b_EE{zY&FHD-+#UsL3 zO{6U%qobqaYb%Io!D!ir-~u#B^F8M{9(op7*54o zlpv)=dpbK~JRK>gg`Q|!3k=lGecQ-TVawE+p!83jg8lT9PKn2j8}lK<(iSk=d&#nE-EH;6grC7QYe&ZeqUeTNX_i# z!%01wQ*Y2jacOxuq-vu~fDVLbXzx97=oxKMcx4s^}MciB-Rn=6?}DLqo0{2BqSu{#v3Ca zo&A&pUrnoq;o`87Q6}?Zdi`4(>bWnma`NZPJ;En@&_NF~XU`?eh)m`Y4V#c(Ku{`` zYEhD$rGD;f-L3;1$-4+Y)d)hlinpqQdssSQswF!!^MnzSd<(-M3 z+W#pCL->EFEsFJLvK9qbX{&6ytj$+R7mnsQ*)fiaLS!XftCxrRlO8$4&G4zL{3p*$ zaG#gAb$G$Dbkoz*D=&HY_^5X$RIE%_3Uy{?tj=)339odQ{9e9#1*;~`JF&LmF-n%+ zdGU67Yq+};RpQbxI-O4Og*V9DYMGGg{v-zu-zePBG+Y?onJ%8IsbW%vQa*)(wg*y! zcy3`^aG`ka?FQ;J^R=L5BBcjfRs?;MID8wI~7fTi>N9*hXPl7f7vvG~)M z7VOehQpuR2QpO&euo@%3Hg0mFc&Us?G)ftVD667wqBHb>EYPC5WJLHM9v+^aDuU<(;{6IybmVgdx1$Iw&}pts3AmSToDwQry7jPxVs< zBAh-fG+O6-T!A^(JgKM{?{#r-aJWmg^owrxwNVwM1HuuU%0ABwYtw>n&(U|b4`W4t z?=#@vGy0yDCcRWWDPK#Fyv3|vduLZ#+73JUCM|*ccfd3??SP#;Sxa#IZ=fSWPx5y^ zApyrvZlw*e&Uq8JNc+xGUZqAU=Z(YMl+a%+-N~xd`G7NC2tfe?5VOP?HFS0W{~euO z=?MF{SA;!kJ6!|;_$&4Rk0>Wul(_e!El|iXFpM|7RmbW>Hb6h|Cjm-6xVIs1-2Qs2 zf*<)!SHA#1v8-5mTiM@5fV}?}Tdcd}%(8ua9;t=5YTfBajO!#odcNHW()DFf&mZn5 zv_}r8IE3jtetqLq8=Li9(`xvJ%Tw3#=$igCT%$a*X;RN6uO;SghiY=ina^>-4>lXb zWe1cW5YRVyPA-p>t!A6R~pp_ajfk zqjgV<-it~kP-B08ryLRdNwan0XSMp;T5p;Y&^-CoJziK(ta)EMa8YK@otQu>{TA2V zZQk8FUSk$<&}Hz53|?QC1&L-TM;t76iR!puGo@frKT0N(d0Z}@g7P6YA6(a5US77w zV4gB&6T#;R-~~2)00zBXb$A`jn;<(Ye`5*7{?MA%Bj6QNsffXdWt`>*)ajgIy(I^@zJ|2%R$kom6U8*v5bavjgt{oiKB!o}OKicy7bI7Xe#L)0?t2LzLwRc9y zyh87l6dhmhQ2oI|X|n);hps0pB!x3~mcD#}*-8~QH*a!Y<<)*PoSB`yhe*ii_&#uJ z%f0c(13Y&R&;X_NWWcAxR{B%36qDo)kV!iW9W;PJcjfBU1kLhh64{#=+wfP^%-kI8 z{N&*H$$DRA zW~P$p4i){mR%x|B+2l8YNBF|QB0|3s$C@LqTXe-rD8wPv$6qNO^#tGKA)z>KqGkd= zQf3i{kC8!m&HY>Zy0p5`U4PRY~S4-Uvfk33Bq}tlr zD86D65*RD1c{&DK_?0j9hjJR-(@yhnny9Us+R4S>i-3*FRcKaH9~d4U9v{zFKLB_$ zFE1~E3T8F7$Yz81{Jv!P@L@HCInlM@H#hqpI!Q}CAhOn{8BP59<*K&XbU3}n&lsz1 z!H2FBiF>MC(P;F!wU2Z?|M7C$zx`1sw(!G$xTCGRaW5p!UEY+}!kKb5#SUp8vR*V> zSzBlRI=L|33I@u+f27=Y<@Uz{?l~sy1sJG+3G7)6=K5$)d)4EMnxQycLiX-<>$MXJ z<4w3iOTLWA#<4338^@*;)i>o9e;A%0hUbUj`C)i|7@i-7=ZE3>KQ%n_XP)BW5Pnbo RJn$0?WR5y(LPcJR`Zp|HwbK9q literal 0 HcmV?d00001 diff --git a/test/reference/joins-star.rgb24.ref.png b/test/reference/joins-star.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..76a541cc344ac155e8f2fa5d0231c3df2543ca5d GIT binary patch literal 4914 zcmeHLdo)yg8=e|9h-e5kC$~oEh>GMW6T^&qLppMa2?>SD^)!)ia+`+6ZCuBFs&g2^ zh}?6FiKL6m4EdNbY8VX45WcO`I%|Dvoo}u0-*2tfUTa^T{jUAn@AJI-eV?`CZO)pC zi|!W%fk5KsW+vxAplx!%d6V#VVDB~-n*$tnx?7r>fHt?b{KkhVAP|&eZen!)x18Br z3`WWY7W>LUv6UBOd_kjM92==+xV__Ea*)dAhy}>c8$UA+_AX>pMxIcJR5rPg|JsCP z@x0U9-As`u_VQ(Y#^9}(%)XCI4)aUSW9A^QTYK{kiE~nW_9sd@_gR#ioPmEP0u&>V z9alakw*4YJ#^^4-{iyH_qTJ4Hn$R}I7L>c3P_3C*G)OkyP4b_EE{zY&FHD-+#UsL3 zO{6U%qobqaYb%Io!D!ir-~u#B^F8M{9(op7*54o zlpv)=dpbK~JRK>gg`Q|!3k=lGecQ-TVawE+p!83jg8lT9PKn2j8}lK<(iSk=d&#nE-EH;6grC7QYe&ZeqUeTNX_i# z!%01wQ*Y2jacOxuq-vu~fDVLbXzx97=oxKMcx4s^}MciB-Rn=6?}DLqo0{2BqSu{#v3Ca zo&A&pUrnoq;o`87Q6}?Zdi`4(>bWnma`NZPJ;En@&_NF~XU`?eh)m`Y4V#c(Ku{`` zYEhD$rGD;f-L3;1$-4+Y)d)hlinpqQdssSQswF!!^MnzSd<(-M3 z+W#pCL->EFEsFJLvK9qbX{&6ytj$+R7mnsQ*)fiaLS!XftCxrRlO8$4&G4zL{3p*$ zaG#gAb$G$Dbkoz*D=&HY_^5X$RIE%_3Uy{?tj=)339odQ{9e9#1*;~`JF&LmF-n%+ zdGU67Yq+};RpQbxI-O4Og*V9DYMGGg{v-zu-zePBG+Y?onJ%8IsbW%vQa*)(wg*y! zcy3`^aG`ka?FQ;J^R=L5BBcjfRs?;MID8wI~7fTi>N9*hXPl7f7vvG~)M z7VOehQpuR2QpO&euo@%3Hg0mFc&Us?G)ftVD667wqBHb>EYPC5WJLHM9v+^aDuU<(;{6IybmVgdx1$Iw&}pts3AmSToDwQry7jPxVs< zBAh-fG+O6-T!A^(JgKM{?{#r-aJWmg^owrxwNVwM1HuuU%0ABwYtw>n&(U|b4`W4t z?=#@vGy0yDCcRWWDPK#Fyv3|vduLZ#+73JUCM|*ccfd3??SP#;Sxa#IZ=fSWPx5y^ zApyrvZlw*e&Uq8JNc+xGUZqAU=Z(YMl+a%+-N~xd`G7NC2tfe?5VOP?HFS0W{~euO z=?MF{SA;!kJ6!|;_$&4Rk0>Wul(_e!El|iXFpM|7RmbW>Hb6h|Cjm-6xVIs1-2Qs2 zf*<)!SHA#1v8-5mTiM@5fV}?}Tdcd}%(8ua9;t=5YTfBajO!#odcNHW()DFf&mZn5 zv_}r8IE3jtetqLq8=Li9(`xvJ%Tw3#=$igCT%$a*X;RN6uO;SghiY=ina^>-4>lXb zWe1cW5YRVyPA-p>t!A6R~pp_ajfk zqjgV<-it~kP-B08ryLRdNwan0XSMp;T5p;Y&^-CoJziK(ta)EMa8YK@otQu>{TA2V zZQk8FUSk$<&}Hz53|?QC1&L-TM;t76iR!puGo@frKT0N(d0Z}@g7P6YA6(a5US77w zV4gB&6T#;R-~~2)00zBXb$A`jn;<(Ye`5*7{?MA%Bj6QNsffXdWt`>*)ajgIy(I^@zJ|2%R$kom6U8*v5bavjgt{oiKB!o}OKicy7bI7Xe#L)0?t2LzLwRc9y zyh87l6dhmhQ2oI|X|n);hps0pB!x3~mcD#}*-8~QH*a!Y<<)*PoSB`yhe*ii_&#uJ z%f0c(13Y&R&;X_NWWcAxR{B%36qDo)kV!iW9W;PJcjfBU1kLhh64{#=+wfP^%-kI8 z{N&*H$$DRA zW~P$p4i){mR%x|B+2l8YNBF|QB0|3s$C@LqTXe-rD8wPv$6qNO^#tGKA)z>KqGkd= zQf3i{kC8!m&HY>Zy0p5`U4PRY~S4-Uvfk33Bq}tlr zD86D65*RD1c{&DK_?0j9hjJR-(@yhnny9Us+R4S>i-3*FRcKaH9~d4U9v{zFKLB_$ zFE1~E3T8F7$Yz81{Jv!P@L@HCInlM@H#hqpI!Q}CAhOn{8BP59<*K&XbU3}n&lsz1 z!H2FBiF>MC(P;F!wU2Z?|M7C$zx`1sw(!G$xTCGRaW5p!UEY+}!kKb5#SUp8vR*V> zSzBlRI=L|33I@u+f27=Y<@Uz{?l~sy1sJG+3G7)6=K5$)d)4EMnxQycLiX-<>$MXJ z<4w3iOTLWA#<4338^@*;)i>o9e;A%0hUbUj`C)i|7@i-7=ZE3>KQ%n_XP)BW5Pnbo RJn$0?WR5y(LPcJR`Zp|HwbK9q literal 0 HcmV?d00001 diff --git a/test/reference/joins.argb32.ref.png b/test/reference/joins.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d069d3d4a8ad5f950d5e286912034ffba48fc0 GIT binary patch literal 6970 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 Z>D(WGsNA&BTjf7?X6=+?uK{{WJ+H>Cgo literal 0 HcmV?d00001 diff --git a/test/reference/joins.egl.argb32.ref.png b/test/reference/joins.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e8ee4a03deb6dde44d3ea36d792d41d5d5d3827b GIT binary patch literal 7177 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 Z>D(WGsNA&BTjf7?X6=+?uK{{WJ+H>Cgo literal 0 HcmV?d00001 diff --git a/test/reference/joins.mask.rgb24.ref.png b/test/reference/joins.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d069d3d4a8ad5f950d5e286912034ffba48fc0 GIT binary patch literal 6970 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 Z>D(WGsNA&BTjf7?X6=+?uK{{WJ+H>Cgo literal 0 HcmV?d00001 diff --git a/test/reference/joins.rgb24.ref.png b/test/reference/joins.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d069d3d4a8ad5f950d5e286912034ffba48fc0 GIT binary patch literal 6970 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 Z>D(WGsNA&BTjf7?X6=+?uK{{WJ+H>Cgo literal 0 HcmV?d00001 diff --git a/test/reference/large-clip.argb32.ref.png b/test/reference/large-clip.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3464bed87bd0bf7cf0cbcf601f2a77fbaeb8e5 GIT binary patch literal 305 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 literal 0 HcmV?d00001 diff --git a/test/reference/large-font.egl.argb32.ref.png b/test/reference/large-font.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..710579ab363b3b622881ac11f9fa83325a9b141d GIT binary patch literal 3705 zcmeAS@N?(olHy`uVBq!ia0y~yU{(NO4kn;Th|olPAjOvC?e4|>mU^Ewu=7P~&Fq#WSbHQjX7y-FpBX{E_PTLokls^Fbk_?`%elF{r G5}E*k-!vfr literal 0 HcmV?d00001 diff --git a/test/reference/large-font.mask.argb32.ref.png b/test/reference/large-font.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..503061a9e2b729f7742fb9bd7454ad4b9bfe9456 GIT binary patch literal 6117 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 literal 0 HcmV?d00001 diff --git a/test/reference/large-font.mask.rgb24.ref.png b/test/reference/large-font.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..503061a9e2b729f7742fb9bd7454ad4b9bfe9456 GIT binary patch literal 6117 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 literal 0 HcmV?d00001 diff --git a/test/reference/large-font.rgb24.ref.png b/test/reference/large-font.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..503061a9e2b729f7742fb9bd7454ad4b9bfe9456 GIT binary patch literal 6117 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 literal 0 HcmV?d00001 diff --git a/test/reference/large-source-roi.argb32.ref.png b/test/reference/large-source-roi.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..216a065e1f8768ece5fc7d291b3518078576c184 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1SGu;4zvI%wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Nr|cBnmIttidqXoRRlu0#h|mmci52&t;ucLK6VA6c^k8 literal 0 HcmV?d00001 diff --git a/test/reference/large-source-roi.egl.argb32.ref.png b/test/reference/large-source-roi.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..216a065e1f8768ece5fc7d291b3518078576c184 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1SGu;4zvI%wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Nr|cBnmIttidqXoRRlu0#h|mmci52&t;ucLK6VA6c^k8 literal 0 HcmV?d00001 diff --git a/test/reference/large-source-roi.mask.argb32.ref.png b/test/reference/large-source-roi.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..216a065e1f8768ece5fc7d291b3518078576c184 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1SGu;4zvI%wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Nr|cBnmIttidqXoRRlu0#h|mmci52&t;ucLK6VA6c^k8 literal 0 HcmV?d00001 diff --git a/test/reference/large-source-roi.mask.rgb24.ref.png b/test/reference/large-source-roi.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..216a065e1f8768ece5fc7d291b3518078576c184 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1SGu;4zvI%wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Nr|cBnmIttidqXoRRlu0#h|mmci52&t;ucLK6VA6c^k8 literal 0 HcmV?d00001 diff --git a/test/reference/large-source-roi.rgb24.ref.png b/test/reference/large-source-roi.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..216a065e1f8768ece5fc7d291b3518078576c184 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1SGu;4zvI%wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Nr|cBnmIttidqXoRRlu0#h|mmci52&t;ucLK6VA6c^k8 literal 0 HcmV?d00001 diff --git a/test/reference/large-source.argb32.ref.png b/test/reference/large-source.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a54455fbb2898513f2029bb05ddd896bef6132bb GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cRPZ!4! zi{9iP=MNk>@Il_m=#Tq^BOS(u0Ss=Y{aJEXZC1@JI?M3!l!!3Xl;5U64Gf;HelF{r G5}E*sxFbFQ literal 0 HcmV?d00001 diff --git a/test/reference/large-source.egl.argb32.ref.png b/test/reference/large-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a54455fbb2898513f2029bb05ddd896bef6132bb GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cRPZ!4! zi{9iP=MNk>@Il_m=#Tq^BOS(u0Ss=Y{aJEXZC1@JI?M3!l!!3Xl;5U64Gf;HelF{r G5}E*sxFbFQ literal 0 HcmV?d00001 diff --git a/test/reference/large-source.mask.argb32.ref.png b/test/reference/large-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a54455fbb2898513f2029bb05ddd896bef6132bb GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cRPZ!4! zi{9iP=MNk>@Il_m=#Tq^BOS(u0Ss=Y{aJEXZC1@JI?M3!l!!3Xl;5U64Gf;HelF{r G5}E*sxFbFQ literal 0 HcmV?d00001 diff --git a/test/reference/large-source.mask.rgb24.ref.png b/test/reference/large-source.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a54455fbb2898513f2029bb05ddd896bef6132bb GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cRPZ!4! zi{9iP=MNk>@Il_m=#Tq^BOS(u0Ss=Y{aJEXZC1@JI?M3!l!!3Xl;5U64Gf;HelF{r G5}E*sxFbFQ literal 0 HcmV?d00001 diff --git a/test/reference/large-source.rgb24.ref.png b/test/reference/large-source.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a54455fbb2898513f2029bb05ddd896bef6132bb GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cRPZ!4! zi{9iP=MNk>@Il_m=#Tq^BOS(u0Ss=Y{aJEXZC1@JI?M3!l!!3Xl;5U64Gf;HelF{r G5}E*sxFbFQ literal 0 HcmV?d00001 diff --git a/test/reference/large-twin-antialias-mixed.argb32.ref.png b/test/reference/large-twin-antialias-mixed.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ace463b125696a974497b6015ec034097f85672f GIT binary patch literal 16660 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 I%RUVLAEG*C82|tP literal 0 HcmV?d00001 diff --git a/test/reference/large-twin-antialias-mixed.mask.argb32.ref.png b/test/reference/large-twin-antialias-mixed.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ace463b125696a974497b6015ec034097f85672f GIT binary patch literal 16660 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 s+kN^&g%FVdQ&MBb@01(rg*Z=?k literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-rectangle.egl.argb32.ref.png b/test/reference/leaky-dashed-rectangle.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf33489e4a681f9030a8ad1c4a46947a9ded475 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*{$C@}B5~$- z#O5hYX@WWe&sZmB=$L-)=eO^LTp|gb-z|=--dg?U^ZzX(vWnX?&*#aT+S)DU^m@MGy6(%` s(_bP~6>oj{F-1)yx9W@f`$=-;s(F9Yp4nIj1A~ph)78&qol`;+09Oi^`v3p{ literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-rectangle.mask.argb32.ref.png b/test/reference/leaky-dashed-rectangle.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..05f45846aaa1c92222adad23b5567d79414c4cc6 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*ua~=#gx-M9Lu(4W_@m+bkw&!D$QfVj+e3bUgl=BU0UW|zUk#g zw`Ir0QmfWXaN`&HK3U~t&7(Q>_Kf%Z(k7hvQ`cGCb=baL#rWrmnGJG^<(d9so32`W z_1xUD>4oNm?Yx;wKc@%q>Ts>}?H4t&HCxH)HCrxp%geyCv*qT_S^#9Y&X&8n=jBBd ziCd|eQ+{(YIM|f>P2b<2ynw-b&#|9Ti}s$f`|t04QLt$Cw>RGcFF%f*wV;Hr`tGEA s+kN^&g%FVdQ&MBb@01(rg*Z=?k literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png b/test/reference/leaky-dashed-rectangle.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..05f45846aaa1c92222adad23b5567d79414c4cc6 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*ua~=#gx-M9Lu(4W_@m+bkw&!D$QfVj+e3bUgl=BU0UW|zUk#g zw`Ir0QmfWXaN`&HK3U~t&7(Q>_Kf%Z(k7hvQ`cGCb=baL#rWrmnGJG^<(d9so32`W z_1xUD>4oNm?Yx;wKc@%q>Ts>}?H4t&HCxH)HCrxp%geyCv*qT_S^#9Y&X&8n=jBBd ziCd|eQ+{(YIM|f>P2b<2ynw-b&#|9Ti}s$f`|t04QLt$Cw>RGcFF%f*wV;Hr`tGEA s+kN^&g%FVdQ&MBb@01(rg*Z=?k literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-rectangle.rgb24.ref.png b/test/reference/leaky-dashed-rectangle.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..05f45846aaa1c92222adad23b5567d79414c4cc6 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*ua~=#gx-M9Lu(4W_@m+bkw&!D$QfVj+e3bUgl=BU0UW|zUk#g zw`Ir0QmfWXaN`&HK3U~t&7(Q>_Kf%Z(k7hvQ`cGCb=baL#rWrmnGJG^<(d9so32`W z_1xUD>4oNm?Yx;wKc@%q>Ts>}?H4t&HCxH)HCrxp%geyCv*qT_S^#9Y&X&8n=jBBd ziCd|eQ+{(YIM|f>P2b<2ynw-b&#|9Ti}s$f`|t04QLt$Cw>RGcFF%f*wV;Hr`tGEA s+kN^&g%FVdQ&MBb@01(rg*Z=?k literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-stroke.argb32.ref.png b/test/reference/leaky-dashed-stroke.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae64dae4c80cb79dcb9f2b683d949e85db528c4f GIT binary patch literal 9387 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 iQFE(jO3MwOJi7|-Z*SL literal 0 HcmV?d00001 diff --git a/test/reference/leaky-dashed-stroke.mask.argb32.ref.png b/test/reference/leaky-dashed-stroke.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ae64dae4c80cb79dcb9f2b683d949e85db528c4f GIT binary patch literal 9387 zcmXw9WmFtZl;w-y1b6oY2*F`+AKcv;90CM)2=4AWB)EHUcNmzU!QI_0gluQe?wKDw zr>ncFUOl_-zK&E;0%M?(pduh3V93fyssYyt1cd+IAio0sy-{Mk11^XVd9WnH-+#aS z&XQyV1S$ksNihx2oYPew1Ni>m;Y%=M5zT%mHX3{GZUULO%UB3V0b7@A!gRz->H3!3 zEDi+Enz)R%&uEbQp2L(lVe>B3w$xSFxLd^6pEKJ`*zaBIS@Y^jo5PV`=g^E>=lVJP zciS4jI5J&X%3*ms!eJGa3qx5DEVB@m!zzhsBuBPL899@)j0>f=Qa49{(S;#3>%kKh zwZ#ipS()7HuL2YP;2@VxP&ksYZ(wjR@ZRUQZ+-8G{r#UG87ciozDZW~tcch4m;{##ig*0#)wq30MeYuV0uu_vPD&E=>SHU7Cc0C=d z=~nCHuhMTYeVr?yUWEGe6yR5r!&~%A+W;1Zk&*H9`&%QU#?PZIPUz%vx%`y|kwx^} zw$DQ5Bfv`bUS8&w5c}A4!UoID1DWIbO5^wj&b&N@j0+fL5-8bdxYLKraq?_c&{H&? zf{gELCb9ietrP9pnMUP92Q>M*_{P@Rj~b%!dhGWySo_j@p8?OP^S%qwY5(|UxD4Gw|b|heMCXoToV!$ z%mD){qaKL9a+Aw zmx1A8LwL2}l;5e1%4GKROtoSEOmeXzF&FZuPX-1=0$S|aFIQ;Q)%3{399Gk~;#jy6 zMRH^UL$hTp#&LNRP`@E<k#mV4c%w+(%#^e?volHZe0QCuPaqpPej&Q<+*? zzHA`m@^^05?Rqlwwz}M$$Y%5SKC|cLH9AZz)B%d=^v)4h9FB8b3+`C+ZO6yMB92VO zx0<{dBz%Lobue-;RjDhXhErC?$M?R766Dym>V94v5I{qNXD9uRVqiAK{WKz`P?wYb zj@ISw2fuU3TQt5eU#TS`;ux5sY-Sc(lNWTRr>%dAwswwsU7sfBDM`L@cQ->D#_V#(v)GoZ zS%Hi(I368M2=a)NO+1%UE8-%iggb^{vh>mMD-_wk6MczZAx-NI)(rzVENVP&zpHTZdHpiDi6 zs5cUKVBlgm{rNl~MZSU_7KUFR>9mX?tP zG0Csj+ws&Qz{gKa>f7vpc)-HGoXtx7CIRwF8cWqQNQCL?a=9^q<8iP9<1wu!vB)Q4 zh(E7SrZQ(_q@48T@zS|y{Ww`ugwS+)n_7j(W6l(tIx2_1tJE9p4fgabtzgY;sHYLg zZsdw1GaW!y%JsIL7%7w`}{!FIF(Ucc?bKYO@vh6T+>n^`1rKBnl5sD|Ng~E)x(bp>N4vfD@#XbV$$<)xzY^}!+=4R zKeJ@>Bqjyr<%NZygYs;edxKluV}aQ_T3jPt_A}T5H%$D0V+aYk5#Hlva-MRTzM3oF zJdVyKUt0r$Q!crX_r(P7N}E(N!%_7))O@mW;_*5oktpOCJ+-X>d5Q9sx5F&cdD2k)wpaIAX z@!h*d`|&JpbE}G%g2G=kF2xw{$or;~Mr3^bpn9BY-(J<##SncvdoohmQ)t-TFQ`$z zKPxQ!az!T*j)O0yfj3j)a?AAlzM{QLo8G0kH>77S)u{8~!R+MZ;@0mfFR@2d6xZRV znzYfzm}xA%J)+5uMjc;anM3d2n=Ek&KZf8k5(#C^ zl(aepcln`U4E7+re!c4;nGfNx%Gw;lU}3qq*jN*yp}oA?y0VzevsmFP*LeILoz$2D z%S7~iR%@;^yS(h3eD~>7v10#Zoc|x4MwyTCy3Dz-Og#&$>%$UQMsFr3;7gd4TW8fe zoN5J#w?}2|lDi2Yb?EheUEMb@CWW9UU`YWl62XWMPvz~xML0=%g+-BasRQ4oXxLR} zOQ{)@3F0XtpKb>mZH}rdHGmkttEPT=L&uhY%lOi2S?F%R=0}K&>y}>X>nzk}3q+zW zq0mrIFKmiQz;wNx&&bq^6H-G{Q`?T2xsNDR))^ur`vxRg44KZ>@aM`S4`-xo%WG?~ z&(vI>p`<2rTnFG{|){J_k*S5cE8 zl-(ze_|ANpCyrblmda_RR&9{k>T(Hj7GzeGlJfMdb%cJmf%IK$o~+2K;jH`ik0h3_ z)PXz4`Z_Hqib{sJ2KfYDFDznX_a4n4{w{X5{M{854h~uQyj#)yMgHgYL-~VjVpu_XnF5A`y|LMrwgle^dy9fomvy?qVGw*!G=`=)X9^=W8k z4IwC_IW`%n_y>#01CnH95AXnFPuK4<6JCW~8JdqFb*5FoaDVuQhbeKNAW z{lPy~oShHWa{I$=mNeSWyhrxoTp6(#>8z?%B=hqzNSJ_Eop;I4l>-w=?R1pUmuu}VaYsd2FC?fIeEHHdPaqZiKvDgkb4h7cIh0x$LbGWlmQx6Pr*x>xWciDW!X$jcIa6F(WMj$q?V~UuViuns0 zwmTnSd3(3C);Ur#Fq|y(P8Vf;@uPCl(t3D;SdTnEE-YR3BC+TO<&xVk*E`eK)kQV= z9nk{g$YNsu;WAtt*8urF<-^J9_+T_FYfxDP@TjLJTe1c7$+0y3=9U2HjVr&$UeAB% z7>5gqoj&ZG{qXn*WH&>y(ty3RlrkfsEM7+T#5yyZRT4@{U*9iogTqK*Fgm(UV?@v^ zZoJ}ZB$gtz<}cq$^|b}P>7?Tcn(U%yHP{_;N_Eu*J*jYTH4UP3c*m>1(`;?Gx*d=1 zmQ*medjJqMm)~jg6$WW}CBeT$?(IEWqgOyV&c^(~tEHKqMsMQ`y-=Wn`=i z2spfDfy37r5D{|MKm;}n3ZJhUJCcjD!r9p|u^Rp^HCrl{ z&GUIZF7)l>xs^T3x~&yFXqAT1*y}paeoGSKHMa7yx+h z#fd@kvmAdtAijxPyJouC5haevg+VAhn{=+c&WTn@Nk_NN0_~%oN;7M_dt#dO?NN;z zTPEirNKFl)>m@6nYHLfUD`&1EGTLmF|A##->siwzV049qPrHOSH*CBmZg&39i9@kA zQ$Zi~YwH0=1d0W84C7rk0Ae#|aD0i$Jzhvy0)eYtX@jV z;DtDgEs0+dSPdZ)BwCeJta0aEW|xqyEv&6|pDaMd8?{*U@s z{g_<#a@TuNphhV);Xf&@E+33vY8=x+%=&6-EzWPPtkOOWujS>C?M?0uppfwHjp4&! ze10U%%tda5l<=Wgg-r4BG>!6*Cho+<908=Cg(#}30aA*2P@58F?S*dWczR@X|1eU% zm2%q0?G+HeYko^ct^f*3??T3i%+*zGErRuWp2s@u+8P9*|a!G+9_i#%bBH(a?ZA>tGlaEi2R0 z_v+Ip_fyE4AitY&UrAS`jFrEkC$Mr zYC5W~iL@x_g$AtwWCn3oOU0!T|GjSUNq>tL5w|x<&ZMETb8=@tmR{n0%c$t*Cp9Z5 z_^?MhnX|bgdo*99%c)hPr6d#=_jy4yofVx-#`-;@QbNMTdAzU%fOywBXUhjyT3yc+ zOsPR2jfy)uov-cfkm%rHPVFyj!opnEU!&20f+t6zLQ6+?^K>GX)KO!!)2H!sWZ8%P z$;3RR2Fruv>t#pyn$owMv=iAP8b<%l}UD|+NQw2PT*n>9vL9P)Y zZ-Ro@c#0KC2hWeXPaHWvL^^hvK72vMv^+QBaUA-o!cLIZGfZh_*8k@>ixI3hxKgKA z;9T%NTb{y7_O{xXFfXrfL}s?~L$NX;uVdF8Hia-AE9=&(hm>pM!#3trOP%$s3?5;$ z+ws6=|JIQvJ0#>iD}l>i#Od;2C|ciyqVN4`17?#W6d47ZkTs%0I}{3ixP}wDG6SGL zDr(^AmWEriurQ)WbaR8s67GK*42TjC;B=lB5rH*V5nZhKHUbG#GMyDNhKG$!ExNPE zl$DtHDx|Ki#d()FyuO*RxcC*`UwX#we0?wSd?AN5^CJ!0UzX3FWaN=?tfOj1w6t2) zJ1}B?ck>KZ zK;2_%IkejTc}2#V!+v>d|9%VHWi&9I6pE(X7!iuL`8PNCufmK@Cpd%t4^K=QD zG&&hq8{@cGK-fof&t7bnvm1j`A?`5K|f&_|bIdNuVj{d88tkqL`mtiV=b8A+5A zOIdK?0)5`WsOtc9llX2vFC1RpcVrt6PM<$#@TUg7y17Bd++TLgS*q8IemNBW-e;S938z>D|SHAcAoAdhLshQX5VVA<%Ch!^I?-R9evZmx-p9$ zT~hL30T^idnN86E)dMA^?XRJAWBfmpnf-NUI(iTXB{|f`$Jt5%5%294mL%u?+3^}8 zGZ>)qIahwXqVJw&$qag>1TEHW=oV4C(=(ssTI&zjDC;|%@x3Qs zZZ?C6`#z70K&FB8KvH7{K3nM>4yTr2Il^S+-_I!y1j{Dis3QPq8%2#e*zUzILGcqM5 zF1xV0x^j`%DomN2v3SIzj8K)5ci7l~VOCV!l)q{e+2$37Y^IHMq#9 z%_O>5YL{ZK>6uo~MEhmWn+Qt(jrMcTzkc@cOu)JXH#b|_U!xQC)S5QhN;%bOL360# za4ywkhL!f=dW+{5fhzs$-Sj024geWDu^RTRV4x>m0&CoqQwzRw4vx2^E+E%;0V=f@*wex z!wzeOMnX;a1sebMKpnURVbUt}^%~SNw+Iy!nV|~=aHFi)f0>yG685Pynd~q7|7w`9G1h&Ef1ktTr4a~Ob5I30OV{{`B_#9U`)v^?F|8cllRs-Zw|h7 z*`~+>x9Av?Q>AvtQkcUdBikxe8NB?9W!=x{SYoyygUe7xr9v00{}a3rBE_UFt(}gD zfxx7x<{>6W3)Eg$7u4|-mj~F7kLKn-YfTqDAJ88=!Yp-Lu;k^*$N}fZ6gC+ra3d__ zau%GSD=RB3R;#1g9kV%nQHRq4Djbc(jUwDEETVn`P{NRqHaoR*z$cKpQK-OiWhr{Iq6=0!BsZ!1y z3=ApEB^jdQsQ;d@`}J@h@E-@qdzOJwSs&iQKS=+UFfSw;I+~XBFn- zKzV_m8|yav-ri~!DEt%U@o}X!I1zhyT)hrLyufhq>7Tyn zLzP9|;vFBAYgsJw{5v-1wOKkuM2+g0Z`4CW08R--Jz|xy0gO>LWMfb9>UwmHhBNs) z4ZpjFhvFDD6iw|1Okwctb}T7!Zjdor<;hYAB8rA6TP8)9}{xL8BkWH(cQ)Z5EqpkvA7B$fy5{PB1# zD+f7LLq&~R&kelJrSbd(D^A3Yi&MzR_xy&Nkg3b# z%m9ZQDLSz;YyE8J<>7(l0O2Dc136$ks(z@UTl`T+DbDt{i!mZ|^xC9hU@LvT;Akf2uN+-WWcv_}*a%pHs%_Z4zd@>Z? z=0-${iz9ArO{`D!9iXOs;@17mwj^N_hl|M%o(#&;VDKup4SQyT)ra@_#v(Yl0J2`o z8;p*O)dVJ2G(r*_|0dDWzP%+5&-3(r?@pV%_LU5tSESAuM*(2a!O0_B#`1QmD#qc4 zfDbGKGwSRab2Z8aWZvFfHs8>NNfriJ({RCsZF} zulGS-SFIBj+L5tEwFw2_(GeA{;NZn>C>mj@p?)2k`7hR`Mqs97Mu3M%z&e^AoKD&> z;dkAb{ZQYqeuD{q8m~a)V32k_V+q0P>Vo|7#wK7W*91g#KOM*c0W8sya7A zNIxWuDXY2~vZuiATzIge3)K4nd-}s3a;ycM3y&kg?s#+|9X1x#T7Yp3#YgXZf)5{F z4Ln{$P8QO+d~Urv_hN|q2Bq-uBbhV@iWPy^R9oxcvj89(a-`w((t+S~Uri)z;OQ9= zgT8sjy0tBTY<$1GpE}&IV(^ZVfj3>iqs5<`mX<=0iV;a&or9B|yQn4O$y}^ffwJk9@xLc&F>)^1?5@V+1^})gWw8XTY&g?+RoqvR`CCm%I}u)TlvZUt{%=yDFl$ydOtKe z#6EK3;^ImrQSkmnokzRtk%IfBZ&p+oKxla8X7nijFXabh^ZC?+9p`pW?#uH`rO?rB)RlECC8+QSi zIV@ZoeO@FBU`$R%Q<-lL#5C{_5j}ly@g#Hkk$X=T4-TnAXq5AbVvT%BgkiGI1s! z&9!>ON8#Jd11Xn`%<~~(EEWHl1reQ!_O;2j^dS4+I**m@Q?x)#VJZPqT3YFtd}j*- zgORZ(tC^n({(smw`+Ean3S+50?lWUiS=>{AsJ#3F-uu2-`_nthH0tEFf$pJ(EeHok245lu>Ba5taZRfiuASY@ zuH37#oxI6REZ5VhTymE^EaK4!Y&^V+Wk-t>!_}lCAtA@3gNsG0&#S=j(^HNJJPMz~ zd^+1_-c3{*@#O_*thG3?7*)oV7uN6T{`$|HgH6>kuWBkriWNcrIrr;U4_|&bSWMHk3Tt`0{3U?{J#ljKlM_ClG@ykd zlGhuIf~F3(S6jTSylwypW3yz@D&QLdjep+)ETPfyo2?QTg8x(Fv}sKLi{XNqCj z!vm2m?SS4Tr4kc>#urnKB9lPgHK;A{KVssL5H=s40_mx45zX?HOb-{C^81{e!=rj9 zT5s=#Wn64A$u}=A0Ez5eZ#$km7C|W7?DxpA+Kx-E=*%%cFDZR>kXVkIJeHDv>XVQ+ z`Ecp`S7>{f(}VT*ovMZ;RQQTr@35)kGr61*1tBXI8SLgThHUibw~#Qk8VX`!Jp8gk z@iG=q-N|z8eHbw+DzNvS|5y#EK133H{Q0XymA0>6Q?0P@*2q5h;_h@{n9~y7%M0io ziXyBBzze{9{9D`o^%g}2|NDq>c?>!t24q{BL22iH9R;m_3{_b<45PqQ;_jT0I~5vW zc|1S;NoQKFh9^(6wC8L!BQr5`v{3eBX|U5LhGHU#eqmu_Z|M0k>W`{{fs7o}ZWjHi z`ggxOt;&r_at6h|z97f$B3sRsRiKgZ>h)rKx_mkjN62Qs&GHXC)U?KF(vy860%=i% z#6;KQuvSoDppH(hCwnZ(RF_cqA88$;rzdpM;@Kejs+*zTVa3G|NBG$)nK0~X7ht#6 zyAF;UEYNO`Ih|-umm8dD<m5o;FTm+690km;7=`lgxlk8DI11 z@bF|&LKGpHQN1FKV=S#PM(tjVl?eb!cPG?bDfjCo%9O&7ZSMA8~ZmSA%IJp#lysen6-K( zZ+*_l`$5SRKwqkEJ@f&~j0a8@F7>x7+7ow38^)G4dB}f0__?OhnyqSgjva^_Q^Pk ziK987>X~X{R#Lh-m3QZnlF}&6pO&MWQ#o{QXVI z>wtwNYC_dydpQLr1Bv^0b<}7vl=%w&mRH4A%mVt3fq^Y;5EIcawObf0$G<8{=*nhG zKUwwcj?dP>OI1(Sl{N5u?txwiK+|PM|AV-;%nE8esqpN8UoGtX`~dB4hIDxen0>is wM)vg-7~s9D^qekfE-wp9DjH;DiC-}PaBRmaW|5@ncFUOl_-zK&E;0%M?(pduh3V93fyssYyt1cd+IAio0sy-{Mk11^XVd9WnH-+#aS z&XQyV1S$ksNihx2oYPew1Ni>m;Y%=M5zT%mHX3{GZUULO%UB3V0b7@A!gRz->H3!3 zEDi+Enz)R%&uEbQp2L(lVe>B3w$xSFxLd^6pEKJ`*zaBIS@Y^jo5PV`=g^E>=lVJP zciS4jI5J&X%3*ms!eJGa3qx5DEVB@m!zzhsBuBPL899@)j0>f=Qa49{(S;#3>%kKh zwZ#ipS()7HuL2YP;2@VxP&ksYZ(wjR@ZRUQZ+-8G{r#UG87ciozDZW~tcch4m;{##ig*0#)wq30MeYuV0uu_vPD&E=>SHU7Cc0C=d z=~nCHuhMTYeVr?yUWEGe6yR5r!&~%A+W;1Zk&*H9`&%QU#?PZIPUz%vx%`y|kwx^} zw$DQ5Bfv`bUS8&w5c}A4!UoID1DWIbO5^wj&b&N@j0+fL5-8bdxYLKraq?_c&{H&? zf{gELCb9ietrP9pnMUP92Q>M*_{P@Rj~b%!dhGWySo_j@p8?OP^S%qwY5(|UxD4Gw|b|heMCXoToV!$ z%mD){qaKL9a+Aw zmx1A8LwL2}l;5e1%4GKROtoSEOmeXzF&FZuPX-1=0$S|aFIQ;Q)%3{399Gk~;#jy6 zMRH^UL$hTp#&LNRP`@E<k#mV4c%w+(%#^e?volHZe0QCuPaqpPej&Q<+*? zzHA`m@^^05?Rqlwwz}M$$Y%5SKC|cLH9AZz)B%d=^v)4h9FB8b3+`C+ZO6yMB92VO zx0<{dBz%Lobue-;RjDhXhErC?$M?R766Dym>V94v5I{qNXD9uRVqiAK{WKz`P?wYb zj@ISw2fuU3TQt5eU#TS`;ux5sY-Sc(lNWTRr>%dAwswwsU7sfBDM`L@cQ->D#_V#(v)GoZ zS%Hi(I368M2=a)NO+1%UE8-%iggb^{vh>mMD-_wk6MczZAx-NI)(rzVENVP&zpHTZdHpiDi6 zs5cUKVBlgm{rNl~MZSU_7KUFR>9mX?tP zG0Csj+ws&Qz{gKa>f7vpc)-HGoXtx7CIRwF8cWqQNQCL?a=9^q<8iP9<1wu!vB)Q4 zh(E7SrZQ(_q@48T@zS|y{Ww`ugwS+)n_7j(W6l(tIx2_1tJE9p4fgabtzgY;sHYLg zZsdw1GaW!y%JsIL7%7w`}{!FIF(Ucc?bKYO@vh6T+>n^`1rKBnl5sD|Ng~E)x(bp>N4vfD@#XbV$$<)xzY^}!+=4R zKeJ@>Bqjyr<%NZygYs;edxKluV}aQ_T3jPt_A}T5H%$D0V+aYk5#Hlva-MRTzM3oF zJdVyKUt0r$Q!crX_r(P7N}E(N!%_7))O@mW;_*5oktpOCJ+-X>d5Q9sx5F&cdD2k)wpaIAX z@!h*d`|&JpbE}G%g2G=kF2xw{$or;~Mr3^bpn9BY-(J<##SncvdoohmQ)t-TFQ`$z zKPxQ!az!T*j)O0yfj3j)a?AAlzM{QLo8G0kH>77S)u{8~!R+MZ;@0mfFR@2d6xZRV znzYfzm}xA%J)+5uMjc;anM3d2n=Ek&KZf8k5(#C^ zl(aepcln`U4E7+re!c4;nGfNx%Gw;lU}3qq*jN*yp}oA?y0VzevsmFP*LeILoz$2D z%S7~iR%@;^yS(h3eD~>7v10#Zoc|x4MwyTCy3Dz-Og#&$>%$UQMsFr3;7gd4TW8fe zoN5J#w?}2|lDi2Yb?EheUEMb@CWW9UU`YWl62XWMPvz~xML0=%g+-BasRQ4oXxLR} zOQ{)@3F0XtpKb>mZH}rdHGmkttEPT=L&uhY%lOi2S?F%R=0}K&>y}>X>nzk}3q+zW zq0mrIFKmiQz;wNx&&bq^6H-G{Q`?T2xsNDR))^ur`vxRg44KZ>@aM`S4`-xo%WG?~ z&(vI>p`<2rTnFG{|){J_k*S5cE8 zl-(ze_|ANpCyrblmda_RR&9{k>T(Hj7GzeGlJfMdb%cJmf%IK$o~+2K;jH`ik0h3_ z)PXz4`Z_Hqib{sJ2KfYDFDznX_a4n4{w{X5{M{854h~uQyj#)yMgHgYL-~VjVpu_XnF5A`y|LMrwgle^dy9fomvy?qVGw*!G=`=)X9^=W8k z4IwC_IW`%n_y>#01CnH95AXnFPuK4<6JCW~8JdqFb*5FoaDVuQhbeKNAW z{lPy~oShHWa{I$=mNeSWyhrxoTp6(#>8z?%B=hqzNSJ_Eop;I4l>-w=?R1pUmuu}VaYsd2FC?fIeEHHdPaqZiKvDgkb4h7cIh0x$LbGWlmQx6Pr*x>xWciDW!X$jcIa6F(WMj$q?V~UuViuns0 zwmTnSd3(3C);Ur#Fq|y(P8Vf;@uPCl(t3D;SdTnEE-YR3BC+TO<&xVk*E`eK)kQV= z9nk{g$YNsu;WAtt*8urF<-^J9_+T_FYfxDP@TjLJTe1c7$+0y3=9U2HjVr&$UeAB% z7>5gqoj&ZG{qXn*WH&>y(ty3RlrkfsEM7+T#5yyZRT4@{U*9iogTqK*Fgm(UV?@v^ zZoJ}ZB$gtz<}cq$^|b}P>7?Tcn(U%yHP{_;N_Eu*J*jYTH4UP3c*m>1(`;?Gx*d=1 zmQ*medjJqMm)~jg6$WW}CBeT$?(IEWqgOyV&c^(~tEHKqMsMQ`y-=Wn`=i z2spfDfy37r5D{|MKm;}n3ZJhUJCcjD!r9p|u^Rp^HCrl{ z&GUIZF7)l>xs^T3x~&yFXqAT1*y}paeoGSKHMa7yx+h z#fd@kvmAdtAijxPyJouC5haevg+VAhn{=+c&WTn@Nk_NN0_~%oN;7M_dt#dO?NN;z zTPEirNKFl)>m@6nYHLfUD`&1EGTLmF|A##->siwzV049qPrHOSH*CBmZg&39i9@kA zQ$Zi~YwH0=1d0W84C7rk0Ae#|aD0i$Jzhvy0)eYtX@jV z;DtDgEs0+dSPdZ)BwCeJta0aEW|xqyEv&6|pDaMd8?{*U@s z{g_<#a@TuNphhV);Xf&@E+33vY8=x+%=&6-EzWPPtkOOWujS>C?M?0uppfwHjp4&! ze10U%%tda5l<=Wgg-r4BG>!6*Cho+<908=Cg(#}30aA*2P@58F?S*dWczR@X|1eU% zm2%q0?G+HeYko^ct^f*3??T3i%+*zGErRuWp2s@u+8P9*|a!G+9_i#%bBH(a?ZA>tGlaEi2R0 z_v+Ip_fyE4AitY&UrAS`jFrEkC$Mr zYC5W~iL@x_g$AtwWCn3oOU0!T|GjSUNq>tL5w|x<&ZMETb8=@tmR{n0%c$t*Cp9Z5 z_^?MhnX|bgdo*99%c)hPr6d#=_jy4yofVx-#`-;@QbNMTdAzU%fOywBXUhjyT3yc+ zOsPR2jfy)uov-cfkm%rHPVFyj!opnEU!&20f+t6zLQ6+?^K>GX)KO!!)2H!sWZ8%P z$;3RR2Fruv>t#pyn$owMv=iAP8b<%l}UD|+NQw2PT*n>9vL9P)Y zZ-Ro@c#0KC2hWeXPaHWvL^^hvK72vMv^+QBaUA-o!cLIZGfZh_*8k@>ixI3hxKgKA z;9T%NTb{y7_O{xXFfXrfL}s?~L$NX;uVdF8Hia-AE9=&(hm>pM!#3trOP%$s3?5;$ z+ws6=|JIQvJ0#>iD}l>i#Od;2C|ciyqVN4`17?#W6d47ZkTs%0I}{3ixP}wDG6SGL zDr(^AmWEriurQ)WbaR8s67GK*42TjC;B=lB5rH*V5nZhKHUbG#GMyDNhKG$!ExNPE zl$DtHDx|Ki#d()FyuO*RxcC*`UwX#we0?wSd?AN5^CJ!0UzX3FWaN=?tfOj1w6t2) zJ1}B?ck>KZ zK;2_%IkejTc}2#V!+v>d|9%VHWi&9I6pE(X7!iuL`8PNCufmK@Cpd%t4^K=QD zG&&hq8{@cGK-fof&t7bnvm1j`A?`5K|f&_|bIdNuVj{d88tkqL`mtiV=b8A+5A zOIdK?0)5`WsOtc9llX2vFC1RpcVrt6PM<$#@TUg7y17Bd++TLgS*q8IemNBW-e;S938z>D|SHAcAoAdhLshQX5VVA<%Ch!^I?-R9evZmx-p9$ zT~hL30T^idnN86E)dMA^?XRJAWBfmpnf-NUI(iTXB{|f`$Jt5%5%294mL%u?+3^}8 zGZ>)qIahwXqVJw&$qag>1TEHW=oV4C(=(ssTI&zjDC;|%@x3Qs zZZ?C6`#z70K&FB8KvH7{K3nM>4yTr2Il^S+-_I!y1j{Dis3QPq8%2#e*zUzILGcqM5 zF1xV0x^j`%DomN2v3SIzj8K)5ci7l~VOCV!l)q{e+2$37Y^IHMq#9 z%_O>5YL{ZK>6uo~MEhmWn+Qt(jrMcTzkc@cOu)JXH#b|_U!xQC)S5QhN;%bOL360# za4ywkhL!f=dW+{5fhzs$-Sj024geWDu^RTRV4x>m0&CoqQwzRw4vx2^E+E%;0V=f@*wex z!wzeOMnX;a1sebMKpnURVbUt}^%~SNw+Iy!nV|~=aHFi)f0>yG685Pynd~q7|7w`9G1h&Ef1ktTr4a~Ob5I30OV{{`B_#9U`)v^?F|8cllRs-Zw|h7 z*`~+>x9Av?Q>AvtQkcUdBikxe8NB?9W!=x{SYoyygUe7xr9v00{}a3rBE_UFt(}gD zfxx7x<{>6W3)Eg$7u4|-mj~F7kLKn-YfTqDAJ88=!Yp-Lu;k^*$N}fZ6gC+ra3d__ zau%GSD=RB3R;#1g9kV%nQHRq4Djbc(jUwDEETVn`P{NRqHaoR*z$cKpQK-OiWhr{Iq6=0!BsZ!1y z3=ApEB^jdQsQ;d@`}J@h@E-@qdzOJwSs&iQKS=+UFfSw;I+~XBFn- zKzV_m8|yav-ri~!DEt%U@o}X!I1zhyT)hrLyufhq>7Tyn zLzP9|;vFBAYgsJw{5v-1wOKkuM2+g0Z`4CW08R--Jz|xy0gO>LWMfb9>UwmHhBNs) z4ZpjFhvFDD6iw|1Okwctb}T7!Zjdor<;hYAB8rA6TP8)9}{xL8BkWH(cQ)Z5EqpkvA7B$fy5{PB1# zD+f7LLq&~R&kelJrSbd(D^A3Yi&MzR_xy&Nkg3b# z%m9ZQDLSz;YyE8J<>7(l0O2Dc136$ks(z@UTl`T+DbDt{i!mZ|^xC9hU@LvT;Akf2uN+-WWcv_}*a%pHs%_Z4zd@>Z? z=0-${iz9ArO{`D!9iXOs;@17mwj^N_hl|M%o(#&;VDKup4SQyT)ra@_#v(Yl0J2`o z8;p*O)dVJ2G(r*_|0dDWzP%+5&-3(r?@pV%_LU5tSESAuM*(2a!O0_B#`1QmD#qc4 zfDbGKGwSRab2Z8aWZvFfHs8>NNfriJ({RCsZF} zulGS-SFIBj+L5tEwFw2_(GeA{;NZn>C>mj@p?)2k`7hR`Mqs97Mu3M%z&e^AoKD&> z;dkAb{ZQYqeuD{q8m~a)V32k_V+q0P>Vo|7#wK7W*91g#KOM*c0W8sya7A zNIxWuDXY2~vZuiATzIge3)K4nd-}s3a;ycM3y&kg?s#+|9X1x#T7Yp3#YgXZf)5{F z4Ln{$P8QO+d~Urv_hN|q2Bq-uBbhV@iWPy^R9oxcvj89(a-`w((t+S~Uri)z;OQ9= zgT8sjy0tBTY<$1GpE}&IV(^ZVfj3>iqs5<`mX<=0iV;a&or9B|yQn4O$y}^ffwJk9@xLc&F>)^1?5@V+1^})gWw8XTY&g?+RoqvR`CCm%I}u)TlvZUt{%=yDFl$ydOtKe z#6EK3;^ImrQSkmnokzRtk%IfBZ&p+oKxla8X7nijFXabh^ZC?+9p`pW?#uH`rO?rB)RlECC8+QSi zIV@ZoeO@FBU`$R%Q<-lL#5C{_5j}ly@g#Hkk$X=T4-TnAXq5AbVvT%BgkiGI1s! z&9!>ON8#Jd11Xn`%<~~(EEWHl1reQ!_O;2j^dS4+I**m@Q?x)#VJZPqT3YFtd}j*- zgORZ(tC^n({(smw`+Ean3S+50?lWUiS=>{AsJ#3F-uu2-`_nthH0tEFf$pJ(EeHok245lu>Ba5taZRfiuASY@ zuH37#oxI6REZ5VhTymE^EaK4!Y&^V+Wk-t>!_}lCAtA@3gNsG0&#S=j(^HNJJPMz~ zd^+1_-c3{*@#O_*thG3?7*)oV7uN6T{`$|HgH6>kuWBkriWNcrIrr;U4_|&bSWMHk3Tt`0{3U?{J#ljKlM_ClG@ykd zlGhuIf~F3(S6jTSylwypW3yz@D&QLdjep+)ETPfyo2?QTg8x(Fv}sKLi{XNqCj z!vm2m?SS4Tr4kc>#urnKB9lPgHK;A{KVssL5H=s40_mx45zX?HOb-{C^81{e!=rj9 zT5s=#Wn64A$u}=A0Ez5eZ#$km7C|W7?DxpA+Kx-E=*%%cFDZR>kXVkIJeHDv>XVQ+ z`Ecp`S7>{f(}VT*ovMZ;RQQTr@35)kGr61*1tBXI8SLgThHUibw~#Qk8VX`!Jp8gk z@iG=q-N|z8eHbw+DzNvS|5y#EK133H{Q0XymA0>6Q?0P@*2q5h;_h@{n9~y7%M0io ziXyBBzze{9{9D`o^%g}2|NDq>c?>!t24q{BL22iH9R;m_3{_b<45PqQ;_jT0I~5vW zc|1S;NoQKFh9^(6wC8L!BQr5`v{3eBX|U5LhGHU#eqmu_Z|M0k>W`{{fs7o}ZWjHi z`ggxOt;&r_at6h|z97f$B3sRsRiKgZ>h)rKx_mkjN62Qs&GHXC)U?KF(vy860%=i% z#6;KQuvSoDppH(hCwnZ(RF_cqA88$;rzdpM;@Kejs+*zTVa3G|NBG$)nK0~X7ht#6 zyAF;UEYNO`Ih|-umm8dD<m5o;FTm+690km;7=`lgxlk8DI11 z@bF|&LKGpHQN1FKV=S#PM(tjVl?eb!cPG?bDfjCo%9O&7ZSMA8~ZmSA%IJp#lysen6-K( zZ+*_l`$5SRKwqkEJ@f&~j0a8@F7>x7+7ow38^)G4dB}f0__?OhnyqSgjva^_Q^Pk ziK987>X~X{R#Lh-m3QZnlF}&6pO&MWQ#o{QXVI z>wtwNYC_dydpQLr1Bv^0b<}7vl=%w&mRH4A%mVt3fq^Y;5EIcawObf0$G<8{=*nhG zKUwwcj?dP>OI1(Sl{N5u?txwiK+|PM|AV-;%nE8esqpN8UoGtX`~dB4hIDxen0>is wM)vg-7~s9D^qekfE-wp9DjH;DiC-}PaBRmaW|5@ncFUOl_-zK&E;0%M?(pduh3V93fyssYyt1cd+IAio0sy-{Mk11^XVd9WnH-+#aS z&XQyV1S$ksNihx2oYPew1Ni>m;Y%=M5zT%mHX3{GZUULO%UB3V0b7@A!gRz->H3!3 zEDi+Enz)R%&uEbQp2L(lVe>B3w$xSFxLd^6pEKJ`*zaBIS@Y^jo5PV`=g^E>=lVJP zciS4jI5J&X%3*ms!eJGa3qx5DEVB@m!zzhsBuBPL899@)j0>f=Qa49{(S;#3>%kKh zwZ#ipS()7HuL2YP;2@VxP&ksYZ(wjR@ZRUQZ+-8G{r#UG87ciozDZW~tcch4m;{##ig*0#)wq30MeYuV0uu_vPD&E=>SHU7Cc0C=d z=~nCHuhMTYeVr?yUWEGe6yR5r!&~%A+W;1Zk&*H9`&%QU#?PZIPUz%vx%`y|kwx^} zw$DQ5Bfv`bUS8&w5c}A4!UoID1DWIbO5^wj&b&N@j0+fL5-8bdxYLKraq?_c&{H&? zf{gELCb9ietrP9pnMUP92Q>M*_{P@Rj~b%!dhGWySo_j@p8?OP^S%qwY5(|UxD4Gw|b|heMCXoToV!$ z%mD){qaKL9a+Aw zmx1A8LwL2}l;5e1%4GKROtoSEOmeXzF&FZuPX-1=0$S|aFIQ;Q)%3{399Gk~;#jy6 zMRH^UL$hTp#&LNRP`@E<k#mV4c%w+(%#^e?volHZe0QCuPaqpPej&Q<+*? zzHA`m@^^05?Rqlwwz}M$$Y%5SKC|cLH9AZz)B%d=^v)4h9FB8b3+`C+ZO6yMB92VO zx0<{dBz%Lobue-;RjDhXhErC?$M?R766Dym>V94v5I{qNXD9uRVqiAK{WKz`P?wYb zj@ISw2fuU3TQt5eU#TS`;ux5sY-Sc(lNWTRr>%dAwswwsU7sfBDM`L@cQ->D#_V#(v)GoZ zS%Hi(I368M2=a)NO+1%UE8-%iggb^{vh>mMD-_wk6MczZAx-NI)(rzVENVP&zpHTZdHpiDi6 zs5cUKVBlgm{rNl~MZSU_7KUFR>9mX?tP zG0Csj+ws&Qz{gKa>f7vpc)-HGoXtx7CIRwF8cWqQNQCL?a=9^q<8iP9<1wu!vB)Q4 zh(E7SrZQ(_q@48T@zS|y{Ww`ugwS+)n_7j(W6l(tIx2_1tJE9p4fgabtzgY;sHYLg zZsdw1GaW!y%JsIL7%7w`}{!FIF(Ucc?bKYO@vh6T+>n^`1rKBnl5sD|Ng~E)x(bp>N4vfD@#XbV$$<)xzY^}!+=4R zKeJ@>Bqjyr<%NZygYs;edxKluV}aQ_T3jPt_A}T5H%$D0V+aYk5#Hlva-MRTzM3oF zJdVyKUt0r$Q!crX_r(P7N}E(N!%_7))O@mW;_*5oktpOCJ+-X>d5Q9sx5F&cdD2k)wpaIAX z@!h*d`|&JpbE}G%g2G=kF2xw{$or;~Mr3^bpn9BY-(J<##SncvdoohmQ)t-TFQ`$z zKPxQ!az!T*j)O0yfj3j)a?AAlzM{QLo8G0kH>77S)u{8~!R+MZ;@0mfFR@2d6xZRV znzYfzm}xA%J)+5uMjc;anM3d2n=Ek&KZf8k5(#C^ zl(aepcln`U4E7+re!c4;nGfNx%Gw;lU}3qq*jN*yp}oA?y0VzevsmFP*LeILoz$2D z%S7~iR%@;^yS(h3eD~>7v10#Zoc|x4MwyTCy3Dz-Og#&$>%$UQMsFr3;7gd4TW8fe zoN5J#w?}2|lDi2Yb?EheUEMb@CWW9UU`YWl62XWMPvz~xML0=%g+-BasRQ4oXxLR} zOQ{)@3F0XtpKb>mZH}rdHGmkttEPT=L&uhY%lOi2S?F%R=0}K&>y}>X>nzk}3q+zW zq0mrIFKmiQz;wNx&&bq^6H-G{Q`?T2xsNDR))^ur`vxRg44KZ>@aM`S4`-xo%WG?~ z&(vI>p`<2rTnFG{|){J_k*S5cE8 zl-(ze_|ANpCyrblmda_RR&9{k>T(Hj7GzeGlJfMdb%cJmf%IK$o~+2K;jH`ik0h3_ z)PXz4`Z_Hqib{sJ2KfYDFDznX_a4n4{w{X5{M{854h~uQyj#)yMgHgYL-~VjVpu_XnF5A`y|LMrwgle^dy9fomvy?qVGw*!G=`=)X9^=W8k z4IwC_IW`%n_y>#01CnH95AXnFPuK4<6JCW~8JdqFb*5FoaDVuQhbeKNAW z{lPy~oShHWa{I$=mNeSWyhrxoTp6(#>8z?%B=hqzNSJ_Eop;I4l>-w=?R1pUmuu}VaYsd2FC?fIeEHHdPaqZiKvDgkb4h7cIh0x$LbGWlmQx6Pr*x>xWciDW!X$jcIa6F(WMj$q?V~UuViuns0 zwmTnSd3(3C);Ur#Fq|y(P8Vf;@uPCl(t3D;SdTnEE-YR3BC+TO<&xVk*E`eK)kQV= z9nk{g$YNsu;WAtt*8urF<-^J9_+T_FYfxDP@TjLJTe1c7$+0y3=9U2HjVr&$UeAB% z7>5gqoj&ZG{qXn*WH&>y(ty3RlrkfsEM7+T#5yyZRT4@{U*9iogTqK*Fgm(UV?@v^ zZoJ}ZB$gtz<}cq$^|b}P>7?Tcn(U%yHP{_;N_Eu*J*jYTH4UP3c*m>1(`;?Gx*d=1 zmQ*medjJqMm)~jg6$WW}CBeT$?(IEWqgOyV&c^(~tEHKqMsMQ`y-=Wn`=i z2spfDfy37r5D{|MKm;}n3ZJhUJCcjD!r9p|u^Rp^HCrl{ z&GUIZF7)l>xs^T3x~&yFXqAT1*y}paeoGSKHMa7yx+h z#fd@kvmAdtAijxPyJouC5haevg+VAhn{=+c&WTn@Nk_NN0_~%oN;7M_dt#dO?NN;z zTPEirNKFl)>m@6nYHLfUD`&1EGTLmF|A##->siwzV049qPrHOSH*CBmZg&39i9@kA zQ$Zi~YwH0=1d0W84C7rk0Ae#|aD0i$Jzhvy0)eYtX@jV z;DtDgEs0+dSPdZ)BwCeJta0aEW|xqyEv&6|pDaMd8?{*U@s z{g_<#a@TuNphhV);Xf&@E+33vY8=x+%=&6-EzWPPtkOOWujS>C?M?0uppfwHjp4&! ze10U%%tda5l<=Wgg-r4BG>!6*Cho+<908=Cg(#}30aA*2P@58F?S*dWczR@X|1eU% zm2%q0?G+HeYko^ct^f*3??T3i%+*zGErRuWp2s@u+8P9*|a!G+9_i#%bBH(a?ZA>tGlaEi2R0 z_v+Ip_fyE4AitY&UrAS`jFrEkC$Mr zYC5W~iL@x_g$AtwWCn3oOU0!T|GjSUNq>tL5w|x<&ZMETb8=@tmR{n0%c$t*Cp9Z5 z_^?MhnX|bgdo*99%c)hPr6d#=_jy4yofVx-#`-;@QbNMTdAzU%fOywBXUhjyT3yc+ zOsPR2jfy)uov-cfkm%rHPVFyj!opnEU!&20f+t6zLQ6+?^K>GX)KO!!)2H!sWZ8%P z$;3RR2Fruv>t#pyn$owMv=iAP8b<%l}UD|+NQw2PT*n>9vL9P)Y zZ-Ro@c#0KC2hWeXPaHWvL^^hvK72vMv^+QBaUA-o!cLIZGfZh_*8k@>ixI3hxKgKA z;9T%NTb{y7_O{xXFfXrfL}s?~L$NX;uVdF8Hia-AE9=&(hm>pM!#3trOP%$s3?5;$ z+ws6=|JIQvJ0#>iD}l>i#Od;2C|ciyqVN4`17?#W6d47ZkTs%0I}{3ixP}wDG6SGL zDr(^AmWEriurQ)WbaR8s67GK*42TjC;B=lB5rH*V5nZhKHUbG#GMyDNhKG$!ExNPE zl$DtHDx|Ki#d()FyuO*RxcC*`UwX#we0?wSd?AN5^CJ!0UzX3FWaN=?tfOj1w6t2) zJ1}B?ck>KZ zK;2_%IkejTc}2#V!+v>d|9%VHWi&9I6pE(X7!iuL`8PNCufmK@Cpd%t4^K=QD zG&&hq8{@cGK-fof&t7bnvm1j`A?`5K|f&_|bIdNuVj{d88tkqL`mtiV=b8A+5A zOIdK?0)5`WsOtc9llX2vFC1RpcVrt6PM<$#@TUg7y17Bd++TLgS*q8IemNBW-e;S938z>D|SHAcAoAdhLshQX5VVA<%Ch!^I?-R9evZmx-p9$ zT~hL30T^idnN86E)dMA^?XRJAWBfmpnf-NUI(iTXB{|f`$Jt5%5%294mL%u?+3^}8 zGZ>)qIahwXqVJw&$qag>1TEHW=oV4C(=(ssTI&zjDC;|%@x3Qs zZZ?C6`#z70K&FB8KvH7{K3nM>4yTr2Il^S+-_I!y1j{Dis3QPq8%2#e*zUzILGcqM5 zF1xV0x^j`%DomN2v3SIzj8K)5ci7l~VOCV!l)q{e+2$37Y^IHMq#9 z%_O>5YL{ZK>6uo~MEhmWn+Qt(jrMcTzkc@cOu)JXH#b|_U!xQC)S5QhN;%bOL360# za4ywkhL!f=dW+{5fhzs$-Sj024geWDu^RTRV4x>m0&CoqQwzRw4vx2^E+E%;0V=f@*wex z!wzeOMnX;a1sebMKpnURVbUt}^%~SNw+Iy!nV|~=aHFi)f0>yG685Pynd~q7|7w`9G1h&Ef1ktTr4a~Ob5I30OV{{`B_#9U`)v^?F|8cllRs-Zw|h7 z*`~+>x9Av?Q>AvtQkcUdBikxe8NB?9W!=x{SYoyygUe7xr9v00{}a3rBE_UFt(}gD zfxx7x<{>6W3)Eg$7u4|-mj~F7kLKn-YfTqDAJ88=!Yp-Lu;k^*$N}fZ6gC+ra3d__ zau%GSD=RB3R;#1g9kV%nQHRq4Djbc(jUwDEETVn`P{NRqHaoR*z$cKpQK-OiWhr{Iq6=0!BsZ!1y z3=ApEB^jdQsQ;d@`}J@h@E-@qdzOJwSs&iQKS=+UFfSw;I+~XBFn- zKzV_m8|yav-ri~!DEt%U@o}X!I1zhyT)hrLyufhq>7Tyn zLzP9|;vFBAYgsJw{5v-1wOKkuM2+g0Z`4CW08R--Jz|xy0gO>LWMfb9>UwmHhBNs) z4ZpjFhvFDD6iw|1Okwctb}T7!Zjdor<;hYAB8rA6TP8)9}{xL8BkWH(cQ)Z5EqpkvA7B$fy5{PB1# zD+f7LLq&~R&kelJrSbd(D^A3Yi&MzR_xy&Nkg3b# z%m9ZQDLSz;YyE8J<>7(l0O2Dc136$ks(z@UTl`T+DbDt{i!mZ|^xC9hU@LvT;Akf2uN+-WWcv_}*a%pHs%_Z4zd@>Z? z=0-${iz9ArO{`D!9iXOs;@17mwj^N_hl|M%o(#&;VDKup4SQyT)ra@_#v(Yl0J2`o z8;p*O)dVJ2G(r*_|0dDWzP%+5&-3(r?@pV%_LU5tSESAuM*(2a!O0_B#`1QmD#qc4 zfDbGKGwSRab2Z8aWZvFfHs8>NNfriJ({RCsZF} zulGS-SFIBj+L5tEwFw2_(GeA{;NZn>C>mj@p?)2k`7hR`Mqs97Mu3M%z&e^AoKD&> z;dkAb{ZQYqeuD{q8m~a)V32k_V+q0P>Vo|7#wK7W*91g#KOM*c0W8sya7A zNIxWuDXY2~vZuiATzIge3)K4nd-}s3a;ycM3y&kg?s#+|9X1x#T7Yp3#YgXZf)5{F z4Ln{$P8QO+d~Urv_hN|q2Bq-uBbhV@iWPy^R9oxcvj89(a-`w((t+S~Uri)z;OQ9= zgT8sjy0tBTY<$1GpE}&IV(^ZVfj3>iqs5<`mX<=0iV;a&or9B|yQn4O$y}^ffwJk9@xLc&F>)^1?5@V+1^})gWw8XTY&g?+RoqvR`CCm%I}u)TlvZUt{%=yDFl$ydOtKe z#6EK3;^ImrQSkmnokzRtk%IfBZ&p+oKxla8X7nijFXabh^ZC?+9p`pW?#uH`rO?rB)RlECC8+QSi zIV@ZoeO@FBU`$R%Q<-lL#5C{_5j}ly@g#Hkk$X=T4-TnAXq5AbVvT%BgkiGI1s! z&9!>ON8#Jd11Xn`%<~~(EEWHl1reQ!_O;2j^dS4+I**m@Q?x)#VJZPqT3YFtd}j*- zgORZ(tC^n({(smw`+Ean3S+50?lWUiS=>{AsJ#3F-uu2-`_nthH0tEFf$pJ(EeHok245lu>Ba5taZRfiuASY@ zuH37#oxI6REZ5VhTymE^EaK4!Y&^V+Wk-t>!_}lCAtA@3gNsG0&#S=j(^HNJJPMz~ zd^+1_-c3{*@#O_*thG3?7*)oV7uN6T{`$|HgH6>kuWBkriWNcrIrr;U4_|&bSWMHk3Tt`0{3U?{J#ljKlM_ClG@ykd zlGhuIf~F3(S6jTSylwypW3yz@D&QLdjep+)ETPfyo2?QTg8x(Fv}sKLi{XNqCj z!vm2m?SS4Tr4kc>#urnKB9lPgHK;A{KVssL5H=s40_mx45zX?HOb-{C^81{e!=rj9 zT5s=#Wn64A$u}=A0Ez5eZ#$km7C|W7?DxpA+Kx-E=*%%cFDZR>kXVkIJeHDv>XVQ+ z`Ecp`S7>{f(}VT*ovMZ;RQQTr@35)kGr61*1tBXI8SLgThHUibw~#Qk8VX`!Jp8gk z@iG=q-N|z8eHbw+DzNvS|5y#EK133H{Q0XymA0>6Q?0P@*2q5h;_h@{n9~y7%M0io ziXyBBzze{9{9D`o^%g}2|NDq>c?>!t24q{BL22iH9R;m_3{_b<45PqQ;_jT0I~5vW zc|1S;NoQKFh9^(6wC8L!BQr5`v{3eBX|U5LhGHU#eqmu_Z|M0k>W`{{fs7o}ZWjHi z`ggxOt;&r_at6h|z97f$B3sRsRiKgZ>h)rKx_mkjN62Qs&GHXC)U?KF(vy860%=i% z#6;KQuvSoDppH(hCwnZ(RF_cqA88$;rzdpM;@Kejs+*zTVa3G|NBG$)nK0~X7ht#6 zyAF;UEYNO`Ih|-umm8dD<m5o;FTm+690km;7=`lgxlk8DI11 z@bF|&LKGpHQN1FKV=S#PM(tjVl?eb!cPG?bDfjCo%9O&7ZSMA8~ZmSA%IJp#lysen6-K( zZ+*_l`$5SRKwqkEJ@f&~j0a8@F7>x7+7ow38^)G4dB}f0__?OhnyqSgjva^_Q^Pk ziK987>X~X{R#Lh-m3QZnlF}&6pO&MWQ#o{QXVI z>wtwNYC_dydpQLr1Bv^0b<}7vl=%w&mRH4A%mVt3fq^Y;5EIcawObf0$G<8{=*nhG zKUwwcj?dP>OI1(Sl{N5u?txwiK+|PM|AV-;%nE8esqpN8UoGtX`~dB4hIDxen0>is wM)vg-7~s9D^qekfE-wp9DjH;DiC-}PaBRmaW|5@4m1k85Q#)W z5Dif%6n=s;#g{QMks0?s&CSWpb8_C70sw>%08kW#@S#7?G)?=yllv^owrxw`BlzYx zj-n_46Z+>8n&x>v%QBMtKX4q!FicsNgg!z@lBBAthGBTS;4zi&`|G;C$^Y!n^Xz#Z zxeowM(*!~Aum3y$g(!-GAVg7w*WVpY)ABq|(-gbEi}O5f+wS`wJO9Nvj;3iY%R=Y_ zK$0YuWj%iVmH$GPWmQ#O*Tw7aj$s&eU58dMccNDqI6wH=mS6; j$ByG%BLx62D|qA!uEmc;jSIbX00000NkvXXu0mjfid2zM literal 0 HcmV?d00001 diff --git a/test/reference/leaky-polygon.egl.argb32.ref.png b/test/reference/leaky-polygon.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a06a3cc7953436b655893cb18b30e73522acb2 GIT binary patch literal 337 zcmV-X0j~auP)4m1k85Q#)W z5Dif%6n=s;#g{QMks0?s&CSWpb8_C70sw>%08kW#@S#7?G)?=yllv^owrxw`BlzYx zj-n_46Z+>8n&x>v%QBMtKX4q!FicsNgg!z@lBBAthGBTS;4zi&`|G;C$^Y!n^Xz#Z zxeowM(*!~Aum3y$g(!-GAVg7w*WVpY)ABq|(-gbEi}O5f+wS`wJO9Nvj;3iY%R=Y_ zK$0YuWj%iVmH$GPWmQ#O*Tw7aj$s&eU58dMccNDqI6wH=mS6; j$ByG%BLx62D|qA!uEmc;jSIbX00000NkvXXu0mjfid2zM literal 0 HcmV?d00001 diff --git a/test/reference/leaky-polygon.mask.argb32.ref.png b/test/reference/leaky-polygon.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a06a3cc7953436b655893cb18b30e73522acb2 GIT binary patch literal 337 zcmV-X0j~auP)4m1k85Q#)W z5Dif%6n=s;#g{QMks0?s&CSWpb8_C70sw>%08kW#@S#7?G)?=yllv^owrxw`BlzYx zj-n_46Z+>8n&x>v%QBMtKX4q!FicsNgg!z@lBBAthGBTS;4zi&`|G;C$^Y!n^Xz#Z zxeowM(*!~Aum3y$g(!-GAVg7w*WVpY)ABq|(-gbEi}O5f+wS`wJO9Nvj;3iY%R=Y_ zK$0YuWj%iVmH$GPWmQ#O*Tw7aj$s&eU58dMccNDqI6wH=mS6; j$ByG%BLx62D|qA!uEmc;jSIbX00000NkvXXu0mjfid2zM literal 0 HcmV?d00001 diff --git a/test/reference/leaky-polygon.mask.rgb24.ref.png b/test/reference/leaky-polygon.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a06a3cc7953436b655893cb18b30e73522acb2 GIT binary patch literal 337 zcmV-X0j~auP)4m1k85Q#)W z5Dif%6n=s;#g{QMks0?s&CSWpb8_C70sw>%08kW#@S#7?G)?=yllv^owrxw`BlzYx zj-n_46Z+>8n&x>v%QBMtKX4q!FicsNgg!z@lBBAthGBTS;4zi&`|G;C$^Y!n^Xz#Z zxeowM(*!~Aum3y$g(!-GAVg7w*WVpY)ABq|(-gbEi}O5f+wS`wJO9Nvj;3iY%R=Y_ zK$0YuWj%iVmH$GPWmQ#O*Tw7aj$s&eU58dMccNDqI6wH=mS6; j$ByG%BLx62D|qA!uEmc;jSIbX00000NkvXXu0mjfid2zM literal 0 HcmV?d00001 diff --git a/test/reference/leaky-polygon.rgb24.ref.png b/test/reference/leaky-polygon.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a06a3cc7953436b655893cb18b30e73522acb2 GIT binary patch literal 337 zcmV-X0j~auP)4m1k85Q#)W z5Dif%6n=s;#g{QMks0?s&CSWpb8_C70sw>%08kW#@S#7?G)?=yllv^owrxw`BlzYx zj-n_46Z+>8n&x>v%QBMtKX4q!FicsNgg!z@lBBAthGBTS;4zi&`|G;C$^Y!n^Xz#Z zxeowM(*!~Aum3y$g(!-GAVg7w*WVpY)ABq|(-gbEi}O5f+wS`wJO9Nvj;3iY%R=Y_ zK$0YuWj%iVmH$GPWmQ#O*Tw7aj$s&eU58dMccNDqI6wH=mS6; j$ByG%BLx62D|qA!uEmc;jSIbX00000NkvXXu0mjfid2zM literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.base.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e6cdcc2f7578eb5e364aa8b9603146340c46bccf GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^DImL3ftfl8njf>}QzyI+=^>4=bAe{gj zz=CUXR=QU<9hfP5`Ir6F>UkG*Z`Pk?^4@pTd<)#R3-w|dkqaVd0UxmK;Njn|xxFY0 P7)T7Bu6{1-oD!M<{=t2Z literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e6cdcc2f7578eb5e364aa8b9603146340c46bccf GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^DImL3ftfl8njf>}QzyI+=^>4=bAe{gj zz=CUXR=QU<9hfP5`Ir6F>UkG*Z`Pk?^4@pTd<)#R3-w|dkqaVd0UxmK;Njn|xxFY0 P7)T7Bu6{1-oD!M<{=t2Z literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.egl.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..12379ac03f2314330368fe6499bc3f8104a5e6d1 GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^DImd{PWT%gX7FV8-GiH8_BC1m+uXKcjRQ^K1ID8NeEW~Y S74HBB6N9I#pUXO@geCwaJ&CCR literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd4d31e151e72f619b9943153c20cd772e2e7a8 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^DIm|r#^2_gyO7fO{j&Iv*VV0gC;pg6CY+c(ci~B*J>Uq-H3z8aX0r_jD Wa33vpst^N)6oaR$pUXO@geCxrfOPu+ literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd4d31e151e72f619b9943153c20cd772e2e7a8 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^DIm|r#^2_gyO7fO{j&Iv*VV0gC;pg6CY+c(ci~B*J>Uq-H3z8aX0r_jD Wa33vpst^N)6oaR$pUXO@geCxrfOPu+ literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.ref.png b/test/reference/line-width-large-overlap-dashed.ref.png index e6cdcc2f7578eb5e364aa8b9603146340c46bccf..12379ac03f2314330368fe6499bc3f8104a5e6d1 100644 GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^DImd{PWT%gX7FV8-GiH8_BC1m+uXKcjRQ^K1ID8NeEW~Y S74HBB6N9I#pUXO@geCwaJ&CCR literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^DImL3ftfl8njf>}QzyI+=^>4=bAe{gj zz=CUXR=QU<9hfP5`Ir6F>UkG*Z`Pk?^4@pTd<)#R3-w|dkqaVd0UxmK;Njn|xxFY0 P7)T7Bu6{1-oD!M<{=t2Z diff --git a/test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png b/test/reference/line-width-large-overlap-dashed.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd4d31e151e72f619b9943153c20cd772e2e7a8 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^DIm|r#^2_gyO7fO{j&Iv*VV0gC;pg6CY+c(ci~B*J>Uq-H3z8aX0r_jD Wa33vpst^N)6oaR$pUXO@geCxrfOPu+ literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-dashed.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd4d31e151e72f619b9943153c20cd772e2e7a8 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^DIm|r#^2_gyO7fO{j&Iv*VV0gC;pg6CY+c(ci~B*J>Uq-H3z8aX0r_jD Wa33vpst^N)6oaR$pUXO@geCxrfOPu+ literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-flipped.argb32.ref.png b/test/reference/line-width-large-overlap-flipped.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3464bed87bd0bf7cf0cbcf601f2a77fbaeb8e5 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.base.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..87fe7523b9435720667135d207eb2831f56dc0e9 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^DIm2C3ipImdKI;Vst0N`7b*8l(j literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..87fe7523b9435720667135d207eb2831f56dc0e9 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^DIm2C3ipImdKI;Vst0N`7b*8l(j literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.egl.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5275cb6b569cbb45cf16dd1aa5dc2da875934caa GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^DImkv+ZO69;70WjyFHE{2{~<)X$Zua(TKCz>>u=;up7wCf zwwI?~oc%w4UCP$EJEY}oZSSwUa`E-Yr{WP_b3X^Y>bZXSHOsW1#c}Gtmx_D{;;Oj& zDV*uku6pm6US8d?YdBk174JV_sw(E8Ga*7@qeD{T5vER7A#RnyDi9Jq^S9`_CF_>0 zGr#ycX>H10&r6%`JPmmMpZVncxqp>T$6oqWy5Ra1nOEDd2zsx-`19sUxoL5GEw9|! zJ74ar+{M?$-?|&G2zakI+Z7xfVgAl^U$AcGPlnTP9*Rxa^nML6Rv0{8{an^LB{Ts5 DNu;>i literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35dca5cf13b7b36a0e1ae8cf26e7b90bcd7202bb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35dca5cf13b7b36a0e1ae8cf26e7b90bcd7202bb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35dca5cf13b7b36a0e1ae8cf26e7b90bcd7202bb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35dca5cf13b7b36a0e1ae8cf26e7b90bcd7202bb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..35dca5cf13b7b36a0e1ae8cf26e7b90bcd7202bb GIT binary patch literal 427 zcmeAS@N?(olHy`uVBq!ia0vp^DIm>%Lwu>SjsP7luqDlJADGNy7;B8+{7aj8xBFNbW_3ya@6ck-!ZcNqpqulG z-ktv6_~iV#o$1wHTJyR0K3l36QFYe4_UNT-ovoGs_x<|V88(sfB|?_>w9 b`owtp<3q8homu~Zq0ivy>gTe~DWM4fCxxY! literal 0 HcmV?d00001 diff --git a/test/reference/line-width-large-overlap.argb32.ref.png b/test/reference/line-width-large-overlap.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3464bed87bd0bf7cf0cbcf601f2a77fbaeb8e5 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^DImA=+QYtrXgKfk|O>|zQ|HzWHcG^zLTZ`D8Z`}QBv+PDqfaT`wMJ=HadTo8c^K47j7 Vl|Oz&E)x{=44$rjF6*2UngE2xuQ31s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-dashed.mask.argb32.ref.png b/test/reference/line-width-overlap-dashed.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0de187d4093bdf93476f53c1eba7867968dc441f GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^DIm z_@e9PQ)V3B<~-=6-O*Nwq9QyO=EU*rDs*Yyj2FZGTx9c3y`UYmUC z@zvQoH?nDoX%K`PzPIh>Kbn94W9^*^i`dDmU1%_8`Iq_Gn;bUcf(N)8lqAkFH)dP{ PhB1SutDnm{r-UW|it?)y literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-dashed.mask.rgb24.ref.png b/test/reference/line-width-overlap-dashed.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0de187d4093bdf93476f53c1eba7867968dc441f GIT binary patch literal 401 zcmeAS@N?(olHy`uVBq!ia0vp^DIm z_@e9PQ)V3B<~-=6-O*Nwq9QyO=EU*rDs*Yyj2FZGTx9c3y`UYmUC z@zvQoH?nDoX%K`PzPIh>Kbn94W9^*^i`dDmU1%_8`Iq_Gn;bUcf(N)8lqAkFH)dP{ PhB1SutDnm{r-UW|it?)y literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-dashed.ref.png b/test/reference/line-width-overlap-dashed.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..065d699587812bcb30c9a17134c2f394eb591b92 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^DImA=+QYtrXgKfk|O>|zQ|HzWHcG^zLTZ`D8Z`}QBv+PDqfaT`wMJ=HadTo8c^K47j7 Vl|Oz&E)x{=44$rjF6*2UngE2xuQ31s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-flipped.argb32.ref.png b/test/reference/line-width-overlap-flipped.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13d70c8fecb7873d28e1aff4a7b6c0f39361b4dd GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^DImsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLsfQP|RJLUh>xuQj`295ipS}Q_!eq6Kn)1}g?Mte;$4IFSsX4QH3Y#HNE rPFGVKlLiTVdAR@kE}a0J@B>5N7M9}=WUOR>fxzJD>gTe~DWM4fzLKC*>mr}1W%rquw_9F&zWVo{-G3uuoda|R15DsodADEnhe*ky#rFfhmGU}nbifJ^ Za7vu!KCKxg=L`%k22WQ%mvv4FO#oRzcQ^n5 literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.egl.argb32.ref.png b/test/reference/line-width-overlap-offset.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eafa50b1f9cbc436bd99e11591bc88d554f9a383 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^DImKC*>mr}1W%rquw_9F&zWVo{-G3uuoda|R15DsodADEnhe*ky#rFfhmGU}nbifJ^ Za7vu!KCKxg=L`%k22WQ%mvv4FO#oRzcQ^n5 literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.mask.argb32.ref.png b/test/reference/line-width-overlap-offset.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eafa50b1f9cbc436bd99e11591bc88d554f9a383 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^DImKC*>mr}1W%rquw_9F&zWVo{-G3uuoda|R15DsodADEnhe*ky#rFfhmGU}nbifJ^ Za7vu!KCKxg=L`%k22WQ%mvv4FO#oRzcQ^n5 literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.mask.rgb24.ref.png b/test/reference/line-width-overlap-offset.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eafa50b1f9cbc436bd99e11591bc88d554f9a383 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^DImKC*>mr}1W%rquw_9F&zWVo{-G3uuoda|R15DsodADEnhe*ky#rFfhmGU}nbifJ^ Za7vu!KCKxg=L`%k22WQ%mvv4FO#oRzcQ^n5 literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.rgb24.ref.png b/test/reference/line-width-overlap-offset.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eafa50b1f9cbc436bd99e11591bc88d554f9a383 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^DImKC*>mr}1W%rquw_9F&zWVo{-G3uuoda|R15DsodADEnhe*ky#rFfhmGU}nbifJ^ Za7vu!KCKxg=L`%k22WQ%mvv4FO#oRzcQ^n5 literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.traps.argb32.ref.png b/test/reference/line-width-overlap-offset.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13a138b9a155d3d5f5d9dc3820b8f85a4ba7106a GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^DImBwm;5Y~OoaEc@QEzXzN5-OO%^uyqd584S?iV!QljGrjZuxt52_ m`k$x1-+1&_F>c3wU<*j*KW=tmkrgof7(8A5T-G@yGywo93VK2S literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-offset.traps.rgb24.ref.png b/test/reference/line-width-overlap-offset.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..13a138b9a155d3d5f5d9dc3820b8f85a4ba7106a GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^DImBwm;5Y~OoaEc@QEzXzN5-OO%^uyqd584S?iV!QljGrjZuxt52_ m`k$x1-+1&_F>c3wU<*j*KW=tmkrgof7(8A5T-G@yGywo93VK2S literal 0 HcmV?d00001 diff --git a/test/reference/line-width-overlap-rotated.argb32.ref.png b/test/reference/line-width-overlap-rotated.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..619a5938cfc7497c5df399b2dd353a1bd48f7783 GIT binary patch literal 828 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 X@vMmfyJk-TTEyV#>gTe~DWM4fV{|}s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-tolerance.egl.argb32.ref.png b/test/reference/line-width-tolerance.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4d4398709b7bbfe18d5c69eb70913977d1e43c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_!o-U3d z5v^};Ze(Oo;AuJF|84$Fiw3ihr~=^&!IQ5%G5>4z;GE7O65yicmtL11eR%ljOcm+n X@vMmfyJk-TTEyV#>gTe~DWM4fV{|}s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-tolerance.mask.argb32.ref.png b/test/reference/line-width-tolerance.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4d4398709b7bbfe18d5c69eb70913977d1e43c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_!o-U3d z5v^};Ze(Oo;AuJF|84$Fiw3ihr~=^&!IQ5%G5>4z;GE7O65yicmtL11eR%ljOcm+n X@vMmfyJk-TTEyV#>gTe~DWM4fV{|}s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-tolerance.mask.rgb24.ref.png b/test/reference/line-width-tolerance.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4d4398709b7bbfe18d5c69eb70913977d1e43c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_!o-U3d z5v^};Ze(Oo;AuJF|84$Fiw3ihr~=^&!IQ5%G5>4z;GE7O65yicmtL11eR%ljOcm+n X@vMmfyJk-TTEyV#>gTe~DWM4fV{|}s literal 0 HcmV?d00001 diff --git a/test/reference/line-width-tolerance.rgb24.ref.png b/test/reference/line-width-tolerance.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4d4398709b7bbfe18d5c69eb70913977d1e43c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_!o-U3d z5v^};Ze(Oo;AuJF|84$Fiw3ihr~=^&!IQ5%G5>4z;GE7O65yicmtL11eR%ljOcm+n X@vMmfyJk-TTEyV#>gTe~DWM4fV{|}s literal 0 HcmV?d00001 diff --git a/test/reference/line-width.argb32.ref.png b/test/reference/line-width.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a788285f2acae64fabf509f0e899205a043038d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT>7Fi* zAr`&KfByfsXa35--IA4&abPjWejTyL9gICaJrya6`%;#4rgv_fIfJ2bSD!||z`{1x zna%Q7u3r}pIqb2=y@N62n~w0rYeJk065V}v2r#>a>{?tDazQQ4y_i)pp+MSv$7dae YH_TD&EuxAafL1biy85}Sb4q9e029$ZKL7v# literal 0 HcmV?d00001 diff --git a/test/reference/line-width.egl.argb32.ref.png b/test/reference/line-width.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a788285f2acae64fabf509f0e899205a043038d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT>7Fi* zAr`&KfByfsXa35--IA4&abPjWejTyL9gICaJrya6`%;#4rgv_fIfJ2bSD!||z`{1x zna%Q7u3r}pIqb2=y@N62n~w0rYeJk065V}v2r#>a>{?tDazQQ4y_i)pp+MSv$7dae YH_TD&EuxAafL1biy85}Sb4q9e029$ZKL7v# literal 0 HcmV?d00001 diff --git a/test/reference/line-width.mask.argb32.ref.png b/test/reference/line-width.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a788285f2acae64fabf509f0e899205a043038d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT>7Fi* zAr`&KfByfsXa35--IA4&abPjWejTyL9gICaJrya6`%;#4rgv_fIfJ2bSD!||z`{1x zna%Q7u3r}pIqb2=y@N62n~w0rYeJk065V}v2r#>a>{?tDazQQ4y_i)pp+MSv$7dae YH_TD&EuxAafL1biy85}Sb4q9e029$ZKL7v# literal 0 HcmV?d00001 diff --git a/test/reference/line-width.mask.rgb24.ref.png b/test/reference/line-width.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a788285f2acae64fabf509f0e899205a043038d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT>7Fi* zAr`&KfByfsXa35--IA4&abPjWejTyL9gICaJrya6`%;#4rgv_fIfJ2bSD!||z`{1x zna%Q7u3r}pIqb2=y@N62n~w0rYeJk065V}v2r#>a>{?tDazQQ4y_i)pp+MSv$7dae YH_TD&EuxAafL1biy85}Sb4q9e029$ZKL7v# literal 0 HcmV?d00001 diff --git a/test/reference/line-width.rgb24.ref.png b/test/reference/line-width.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2a788285f2acae64fabf509f0e899205a043038d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)h!2~3;A5={OQfx`y?k)`fL2$v|<&%LT>7Fi* zAr`&KfByfsXa35--IA4&abPjWejTyL9gICaJrya6`%;#4rgv_fIfJ2bSD!||z`{1x zna%Q7u3r}pIqb2=y@N62n~w0rYeJk065V}v2r#>a>{?tDazQQ4y_i)pp+MSv$7dae YH_TD&EuxAafL1biy85}Sb4q9e029$ZKL7v# literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-extend.argb32.ref.png b/test/reference/linear-gradient-extend.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..79ce747db9fcc8fcabdc52c82bf9b64b161840c2 GIT binary patch literal 371 zcmV-(0gV2MP)ll&6KaN*pPS;_cHWQP4`7d-Hv2u$Qt>FW8aux54 zS9efCt|gF;eFEz_S{tfi^)CO zc7YWwR-gRI`PS)sWPh|UPi6YA`;|3|(3p%B?FUTek%^862V&ybG!qf=hwu{~;w~H^%xBhPy*&i*kNSXdCJF;dGTHRtr`v(Sg$l0ye Rgy;YO002ovPDHLkV1m}!s5t-t literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-extend.egl.argb32.ref.png b/test/reference/linear-gradient-extend.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..79ce747db9fcc8fcabdc52c82bf9b64b161840c2 GIT binary patch literal 371 zcmV-(0gV2MP)ll&6KaN*pPS;_cHWQP4`7d-Hv2u$Qt>FW8aux54 zS9efCt|gF;eFEz_S{tfi^)CO zc7YWwR-gRI`PS)sWPh|UPi6YA`;|3|(3p%B?FUTek%^862V&ybG!qf=hwu{~;w~H^%xBhPy*&i*kNSXdCJF;dGTHRtr`v(Sg$l0ye Rgy;YO002ovPDHLkV1m}!s5t-t literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-extend.mask.argb32.ref.png b/test/reference/linear-gradient-extend.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..79ce747db9fcc8fcabdc52c82bf9b64b161840c2 GIT binary patch literal 371 zcmV-(0gV2MP)ll&6KaN*pPS;_cHWQP4`7d-Hv2u$Qt>FW8aux54 zS9efCt|gF;eFEz_S{tfi^)CO zc7YWwR-gRI`PS)sWPh|UPi6YA`;|3|(3p%B?FUTek%^862V&ybG!qf=hwu{~;w~H^%xBhPy*&i*kNSXdCJF;dGTHRtr`v(Sg$l0ye Rgy;YO002ovPDHLkV1m}!s5t-t literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-extend.mask.rgb24.ref.png b/test/reference/linear-gradient-extend.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..79ce747db9fcc8fcabdc52c82bf9b64b161840c2 GIT binary patch literal 371 zcmV-(0gV2MP)ll&6KaN*pPS;_cHWQP4`7d-Hv2u$Qt>FW8aux54 zS9efCt|gF;eFEz_S{tfi^)CO zc7YWwR-gRI`PS)sWPh|UPi6YA`;|3|(3p%B?FUTek%^862V&ybG!qf=hwu{~;w~H^%xBhPy*&i*kNSXdCJF;dGTHRtr`v(Sg$l0ye Rgy;YO002ovPDHLkV1m}!s5t-t literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-extend.rgb24.ref.png b/test/reference/linear-gradient-extend.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..79ce747db9fcc8fcabdc52c82bf9b64b161840c2 GIT binary patch literal 371 zcmV-(0gV2MP)ll&6KaN*pPS;_cHWQP4`7d-Hv2u$Qt>FW8aux54 zS9efCt|gF;eFEz_S{tfi^)CO zc7YWwR-gRI`PS)sWPh|UPi6YA`;|3|(3p%B?FUTek%^862V&ybG!qf=hwu{~;w~H^%xBhPy*&i*kNSXdCJF;dGTHRtr`v(Sg$l0ye Rgy;YO002ovPDHLkV1m}!s5t-t literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-large.argb32.ref.png b/test/reference/linear-gradient-large.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f1f37ab474b796cfb5422ef1dc910b8bb9061adb GIT binary patch literal 4076 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 literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-reflect.mask.argb32.ref.png b/test/reference/linear-gradient-reflect.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b68dccb5eb16fb7df9158c72ff08489d7d9cef03 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt_6o-U3d z5v^~}E#y65z{7fR{v|(w_x7`m9oRi0e>8fre!pP8q2%$o;FmK)UmBmY++@Ag$h!2H mW%)7p{o!>dbq8fre!pP8q2%$o;FmK)UmBmY++@Ag$h!2H mW%)7p{o!>dbq8fre!pP8q2%$o;FmK)UmBmY++@Ag$h!2H mW%)7p{o!>dbqdh#D*9)&e`IQmw^#cm%@`N?tSK*H}{^C_p)NKi2sZ? zB|Zfse6_v3t!Y{+mC|*cF(x2@SS+UN`rh7N5b~(k>i{C}pOM#ZY-|XkY1$_wM14FS z7ciAdiS^;(;S`B*J%?jy5pkq?z0Ordi2DaabZSUuIaEba6h-+0^e>{S>gwuhEEa3G z+gDdtK?p#Sq}$tD4mUS9HBIaFdIHK@TU*_3cWrHLWo5-MjDv%Nr>CdI#l?q*hjco< zw6vrs%KG~H%+;xw*N1zprUpgm*~HZ+Ur{H%wL4WHKp95&+Nh zuCK58apLi~EXx3h=;r2TctgW5I-Sm7Fxc7I5pZ{RcQ6>d2|JyRVHhL5Xf~TiM@K|d ztJOrOtJP{W8l422%_b)^9qO0i(5ZrQ^8h$MKX0{KyyF>s62OMKg*&1 z0)Bo8`WMLnCje!$(SHBz>}&)AQQ+*gCX>mW%+HhS3K#*f4^#ljG-2BdzhC&s_jSFJ z$?&(c;(6rj?k_A;ykT7_VY8gXWB?v}`NLW<0FWF9j4{iy zK*U_vmpBFb_xC@{zpe`)4b*^QqjB13^nnY&hsk7-=i2s#=i%<|t_BpvP^;A{5CsSr zzO=wZ=(~4l_g?0E3 zP}tcb!&p3x#;sthiNC-`#+X=Wv)F0%-Xm13A?tiw+~G37Bj&xgdD$C6E+^;vIN!PV zT&h$mM8wSh`Ww}16;rEHsZ4{jm~mzXu(h?7&1UoYd@h$GA|jF?fTg9STrOu>mSU=U z&+~{VF4+@HvQ>R9mjfV~*=#o2f|=ur9bJ;G>J7tCee?NzbhKAgMC(;wsVK?}Rd}A~ zd7d&%vMtM+?mO|9L`2nU^}n1bGmp+s*Y!jqp@x*3L?WTUSCnd|H8nM|hB=@8M=(-SktHa0dM9v;%^v|$*gX_iW*UavPl zKi}!7x!$x$pZI z7Z=yp*JDYY&R-OiU1p^zJ}Z9!mY0{KWwSCJpOrtkF$_cPUr{lgziIG)NosWcqmvd= z7z13Z9Ud~kO0)dI#UclR8i6C9F)!p;6J7v7u?WZcv`4BhYPAvHw#VO2W{kERt#33& zed}aL=CEIR!K3x6uWe5inYMEN1A%N8kkD z-Cgb5x3jY|sW}7z4LBQ4_pwkonVVzRm0;*a0XPOku?WX`^C}$Q5I}wfm@Vo1>x)%b#?ymITb)|9il~x*Jk0?fj7k>FF{1h_~b6p5Qb;luqTsKs4 z3iP|(-%8()jsScBTFjNJtJABiKJXa`!MAU#z$wsoob#6#`s>d>T0lkJi)OP4XaEDF zmlhZUhc~DRXh%m3e8I1o)bacQ;2_{qNrA)Z`0$XqR+~zy${&DoS+e(Rs@LlP&}c-w z7+a%^jOVW`*^UEda_V(3!*ySIJE!v}H;o2}sO~s$-B~I`B!B9oG!sCMLo%|8Y1>5Q fG7VMygrxoe$D;pzGfU^D00000NkvXXu0mjfKeN%x literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient-subset.mask.argb32.ref.png b/test/reference/linear-gradient-subset.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3d30d0ab6e07f66b0e7140d8ee43b6ff242247a2 GIT binary patch literal 820 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 literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient.egl.argb32.ref.png b/test/reference/linear-gradient.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c28345d4ee77ebb1569b67c1715cf8ec17cd59ed GIT binary patch literal 1077 zcmV-51j_q~P)J&q zLjOd;O|tCLUl2t*u?qwD`jOEVnpi>?S#)7sxKNB}g0@8vK{xH3yLcz>#L3Mq_ugLU zA%r(4&pGqVdCoHoOC%DEF(Ufc-$*8tXoy52(U@$8v=b44`T6uq`@MUN?CdXh{xlNeO)e>1<8`hAdjZd@+c?d|Qt!h+N3bUK}ZK;ZiNdT?;CtE+2q zaZ!>a##ncE_tn)^AP}%K##&oj`Q*J`Z(m1VGpI-Q8WrSbKZB zEXyLvk;WYcgTZ`0e|mZviA2OKrlzLO&(AL|E+!@>#4I9_NV#0j=kvi}@WCvK#p2S^ zQcFuqCX*5RZEbCJbaW8W&d!cdI+Mvb9FF_@`(m+Z?Bp-zREz%rsH$2nm(R}5s@3ZD z_BKaeUS5_;rBbPMczF20sg0WtpufMr{^wu%$n;2~{{Z-WzWTEIr-8uyfCV?GsQdwo zM*jieD`ctppPgDC|43;Y=S+%1xm+$sibCdn0u&C@>(`{4ijbm+&x2W5!kAn*j93h@ zxSBR+fqH^tW2PdOFwnL7blU8j$5RXPZ&}ppvstsRWlD8V@cn&^jagVQ8?&GR?C)E* z0EjAh!}Gm9j#qm z8OYhWmC!R%RfndniCN47%g>+NVll+x+MA}%ICknj!K0w#y&ImK6`3|1mHV;|IAkWMAfR4PQzwn(P)(E zIy*QpSgc-L+-+`7(af7S(6lI!AxgY`yZY(V-Q&k;A{-q>zkJC&d6EQHHSLZ_{q~J* z{_%UJQb~xt*x1!$*F$=4-qbyK2Yvs00000NkvXXu0mjf61W%m literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient.mask.argb32.ref.png b/test/reference/linear-gradient.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3f78c52effe1ff15863889e5c8663f4c52c574f1 GIT binary patch literal 974 zcmV;<12O!GP)&_yW`N)cfQMoohY5wbJ4iy3Yvnbh$5`oeq2 z;_}P6&zy75JeMJfL<0XZI!gQ_*ki0#R#pT-2!%p|Ab30;1IA)8uh$z01OkD8EXypD z?cdng0MPS5fyREG=XsuIP!NQ+w1*^&{YDiGhC-poNcjE!?o}9FwFT?n8tkN4kf$7~ z&*vK%8L>m3&({V=M@OyDY-DI?NEAh$=MN4Jj*gC4>dedxfWyPX^Ye29PESvZqNwY- zrfC-!7XY5k&d#2lokgS3U@#aA2IuGJZ*OniZui~Y-SYCX$K!Fk-4hcNH#aw9V`DCt zYjt&%5JCtU92~4xtK;M2Jpi0er*ZN;&kqj|_x1GwaJgK9AaEQ9pwVb(ng*c1zn|xM z2Axi4v%{&WsY0Qk>-xgN0)w$wtXwXa%jLPbIR+OO7j<1P6bh4*lPza)e0;pVzTVs0 zn@*?MNoO*dfq?-^>HhvcgQ--?;c(RJ^^=nmgFNX_9}SyMWt6?CilXScuIu{M)m0{w zG2r#}b*WT3Jv}XzN-a*czxe>H27Mq*3A_IQSPj};qGJ_SgLap&`wsvi#18*sr#>2T z#)^i+G@sAsX*f*T-xQ$HDBani)B?j{_A|&s7ayWg$TB2JRa>6hT)%$ZO~Tl}OBAKa z3Ycxn>LQ`4P!wddor`FZAjP6ll{GpJwODM2Pde21z&o$E1GHy)y;f*8vIK03B9$b^ zmoMAf+a`3oH($J+OAejxU{qxiBLsxXqu7N10W70MUjigA%S#NWJ0 ze*9=$lgUPduB`#^`{R*Fl9M?Qk_4!xnG&4e4@ol4UsX}55CFf4w}>!@X8;VSHGkG;LUbfuDDLrtYp-@Z96FDcNxervTyq)Adt%C96x^0%S#jf@0{A| zKLC_cy0b&0QEJ%}4%2*|(tO_LRGa?*s467(iIL0wtq)Ve?mqyAK~0se5*^Q!8B~&G w#N%Bg?EV7)kZcy&EUX_)#Ug35^b-vA4?%K`9WdWk2LJ#707*qoM6N<$f>syE=>Px# literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient.mask.rgb24.ref.png b/test/reference/linear-gradient.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3f78c52effe1ff15863889e5c8663f4c52c574f1 GIT binary patch literal 974 zcmV;<12O!GP)&_yW`N)cfQMoohY5wbJ4iy3Yvnbh$5`oeq2 z;_}P6&zy75JeMJfL<0XZI!gQ_*ki0#R#pT-2!%p|Ab30;1IA)8uh$z01OkD8EXypD z?cdng0MPS5fyREG=XsuIP!NQ+w1*^&{YDiGhC-poNcjE!?o}9FwFT?n8tkN4kf$7~ z&*vK%8L>m3&({V=M@OyDY-DI?NEAh$=MN4Jj*gC4>dedxfWyPX^Ye29PESvZqNwY- zrfC-!7XY5k&d#2lokgS3U@#aA2IuGJZ*OniZui~Y-SYCX$K!Fk-4hcNH#aw9V`DCt zYjt&%5JCtU92~4xtK;M2Jpi0er*ZN;&kqj|_x1GwaJgK9AaEQ9pwVb(ng*c1zn|xM z2Axi4v%{&WsY0Qk>-xgN0)w$wtXwXa%jLPbIR+OO7j<1P6bh4*lPza)e0;pVzTVs0 zn@*?MNoO*dfq?-^>HhvcgQ--?;c(RJ^^=nmgFNX_9}SyMWt6?CilXScuIu{M)m0{w zG2r#}b*WT3Jv}XzN-a*czxe>H27Mq*3A_IQSPj};qGJ_SgLap&`wsvi#18*sr#>2T z#)^i+G@sAsX*f*T-xQ$HDBani)B?j{_A|&s7ayWg$TB2JRa>6hT)%$ZO~Tl}OBAKa z3Ycxn>LQ`4P!wddor`FZAjP6ll{GpJwODM2Pde21z&o$E1GHy)y;f*8vIK03B9$b^ zmoMAf+a`3oH($J+OAejxU{qxiBLsxXqu7N10W70MUjigA%S#NWJ0 ze*9=$lgUPduB`#^`{R*Fl9M?Qk_4!xnG&4e4@ol4UsX}55CFf4w}>!@X8;VSHGkG;LUbfuDDLrtYp-@Z96FDcNxervTyq)Adt%C96x^0%S#jf@0{A| zKLC_cy0b&0QEJ%}4%2*|(tO_LRGa?*s467(iIL0wtq)Ve?mqyAK~0se5*^Q!8B~&G w#N%Bg?EV7)kZcy&EUX_)#Ug35^b-vA4?%K`9WdWk2LJ#707*qoM6N<$f>syE=>Px# literal 0 HcmV?d00001 diff --git a/test/reference/linear-gradient.rgb24.ref.png b/test/reference/linear-gradient.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3f78c52effe1ff15863889e5c8663f4c52c574f1 GIT binary patch literal 974 zcmV;<12O!GP)&_yW`N)cfQMoohY5wbJ4iy3Yvnbh$5`oeq2 z;_}P6&zy75JeMJfL<0XZI!gQ_*ki0#R#pT-2!%p|Ab30;1IA)8uh$z01OkD8EXypD z?cdng0MPS5fyREG=XsuIP!NQ+w1*^&{YDiGhC-poNcjE!?o}9FwFT?n8tkN4kf$7~ z&*vK%8L>m3&({V=M@OyDY-DI?NEAh$=MN4Jj*gC4>dedxfWyPX^Ye29PESvZqNwY- zrfC-!7XY5k&d#2lokgS3U@#aA2IuGJZ*OniZui~Y-SYCX$K!Fk-4hcNH#aw9V`DCt zYjt&%5JCtU92~4xtK;M2Jpi0er*ZN;&kqj|_x1GwaJgK9AaEQ9pwVb(ng*c1zn|xM z2Axi4v%{&WsY0Qk>-xgN0)w$wtXwXa%jLPbIR+OO7j<1P6bh4*lPza)e0;pVzTVs0 zn@*?MNoO*dfq?-^>HhvcgQ--?;c(RJ^^=nmgFNX_9}SyMWt6?CilXScuIu{M)m0{w zG2r#}b*WT3Jv}XzN-a*czxe>H27Mq*3A_IQSPj};qGJ_SgLap&`wsvi#18*sr#>2T z#)^i+G@sAsX*f*T-xQ$HDBani)B?j{_A|&s7ayWg$TB2JRa>6hT)%$ZO~Tl}OBAKa z3Ycxn>LQ`4P!wddor`FZAjP6ll{GpJwODM2Pde21z&o$E1GHy)y;f*8vIK03B9$b^ zmoMAf+a`3oH($J+OAejxU{qxiBLsxXqu7N10W70MUjigA%S#NWJ0 ze*9=$lgUPduB`#^`{R*Fl9M?Qk_4!xnG&4e4@ol4UsX}55CFf4w}>!@X8;VSHGkG;LUbfuDDLrtYp-@Z96FDcNxervTyq)Adt%C96x^0%S#jf@0{A| zKLC_cy0b&0QEJ%}4%2*|(tO_LRGa?*s467(iIL0wtq)Ve?mqyAK~0se5*^Q!8B~&G w#N%Bg?EV7)kZcy&EUX_)#Ug35^b-vA4?%K`9WdWk2LJ#707*qoM6N<$f>syE=>Px# literal 0 HcmV?d00001 diff --git a/test/reference/linear-step-function.egl.argb32.ref.png b/test/reference/linear-step-function.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..542c94414fa071b3c26292588553e2c88fe6d0f1 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_cvPZ!6K zh}O5~HwrQ+@Gu*;A2qI;!K5*PYx_Qb1_q0@Rf`_g7Ae6E{B(61|*|$Aw Rxe?F+22WQ%mvv4FO#rGfC@=s3 literal 0 HcmV?d00001 diff --git a/test/reference/linear-uniform.egl.argb32.ref.png b/test/reference/linear-uniform.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..10f4fbf0dda241b15ed0d8c1d35b3a72d95e31d1 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_cjPZ!6K zh}O5~H}WzlFfch56uKRkH7N6U{B5be@ow1f`_g7Ae6E{B(61|*|$Aw Rxe?F+22WQ%mvv4FO#rGfC@=s3 literal 0 HcmV?d00001 diff --git a/test/reference/linear-uniform.mask.rgb24.ref.png b/test/reference/linear-uniform.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..94ca33615acc156523088686b0427ba1c23a318b GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_cPPZ!6K zh}O4fH}Wzl2rwHad`u}RtFU_V+W%he^(`uozxSL!ejvd>f`_g7Ae6E{B(61|*|$Aw Rxe?F+22WQ%mvv4FO#rGfC@=s3 literal 0 HcmV?d00001 diff --git a/test/reference/linear-uniform.rgb24.ref.png b/test/reference/linear-uniform.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..94ca33615acc156523088686b0427ba1c23a318b GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v_cPPZ!6K zh}O4fH}Wzl2rwHad`u}RtFU_V+W%he^(`uozxSL!ejvd>f`_g7Ae6E{B(61|*|$Aw Rxe?F+22WQ%mvv4FO#rGfC@=s3 literal 0 HcmV?d00001 diff --git a/test/reference/long-dashed-lines.argb32.ref.png b/test/reference/long-dashed-lines.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7208c18bddd8f94401f80e41c3bd3b287c4612 GIT binary patch literal 2548 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 KMNUMnLSTa4zqAto literal 0 HcmV?d00001 diff --git a/test/reference/long-dashed-lines.egl.argb32.ref.png b/test/reference/long-dashed-lines.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..30be27085540af8cb8a122d8e9482e654742bd08 GIT binary patch literal 2564 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 KMNUMnLSTa4zqAto literal 0 HcmV?d00001 diff --git a/test/reference/long-dashed-lines.mask.rgb24.ref.png b/test/reference/long-dashed-lines.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7208c18bddd8f94401f80e41c3bd3b287c4612 GIT binary patch literal 2548 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 KMNUMnLSTa4zqAto literal 0 HcmV?d00001 diff --git a/test/reference/long-dashed-lines.rgb24.ref.png b/test/reference/long-dashed-lines.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7208c18bddd8f94401f80e41c3bd3b287c4612 GIT binary patch literal 2548 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 KMNUMnLSTa4zqAto literal 0 HcmV?d00001 diff --git a/test/reference/long-lines.egl.argb32.ref.png b/test/reference/long-lines.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fe91163124061f36b71cc789b06f12f3dc70c1b3 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1SJ3YlwJl>Y)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(GY)RhkE)4%caKYZ?lYt_2o-U3d z8I5nxZ{$5-z{6sw`TPAFAA#j+1vyLg^UhlqZ?wM8Z(aTDch&53XU?To@BBM={%L{G uNefgQJ)0)6sB(G4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-image.mask.argb32.ref.png b/test/reference/map-all-to-image.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-image.mask.rgb24.ref.png b/test/reference/map-all-to-image.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-image.rgb24.ref.png b/test/reference/map-all-to-image.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-xlib-fallback.rgb24.ref.png b/test/reference/map-all-to-xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-xlib-window.rgb24.ref.png b/test/reference/map-all-to-xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-xlib.argb32.ref.png b/test/reference/map-all-to-xlib.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-all-to-xlib.rgb24.ref.png b/test/reference/map-all-to-xlib.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c56d9698da771542f87a41c497590618bcf8486d GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt`Ko-U3d f95a&>4zM#Y$T2X!`&OU`6lU;r^>bP0l+XkK1ymHv literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-image.argb32.ref.png b/test/reference/map-bit-to-image.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-image.mask.argb32.ref.png b/test/reference/map-bit-to-image.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-image.mask.rgb24.ref.png b/test/reference/map-bit-to-image.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-image.rgb24.ref.png b/test/reference/map-bit-to-image.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-xlib-fallback.rgb24.ref.png b/test/reference/map-bit-to-xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-xlib-window.rgb24.ref.png b/test/reference/map-bit-to-xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-xlib.argb32.ref.png b/test/reference/map-bit-to-xlib.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-bit-to-xlib.rgb24.ref.png b/test/reference/map-bit-to-xlib.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b42dcb62a85853b2d3cfdebe03a79db365770161 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95ZcCY-D6G;5n>t<$rzIHls^s4;DK8=gZM&WBRm5jUA|t!PC{xWt~$(695dp9hv|D literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.argb32.ref.png b/test/reference/map-to-image-fill.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.egl.argb32.ref.png b/test/reference/map-to-image-fill.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.mask.argb32.ref.png b/test/reference/map-to-image-fill.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.mask.rgb24.ref.png b/test/reference/map-to-image-fill.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.rgb24.ref.png b/test/reference/map-to-image-fill.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.xlib-fallback.rgb24.ref.png b/test/reference/map-to-image-fill.xlib-fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/map-to-image-fill.xlib-window.rgb24.ref.png b/test/reference/map-to-image-fill.xlib-window.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c2893e0de3d7616703c1efcd8da9246dbd57c50f GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1SD^IDZKzvY)RhkE)4%caKYZ?lYt^Ko-U3d x95YRiZDeFH;5n>t=YM_JGNX-L6&wDF^2J)PGG{K$cnnm>;OXk;vd$@?2>|xs9SZ;e literal 0 HcmV?d00001 diff --git a/test/reference/mask-alpha.argb32.ref.png b/test/reference/mask-alpha.argb32.ref.png index 203b8d1cec2d0b9db746836aae61ab5b33b8424c..20f0663400e5c6d0e68805e3598831bd631b102f 100644 GIT binary patch delta 589 zcmV-T0k)-mrN%2 zoO4fqIdgLEEjSzwhr@B5$r%Jbwk22)9uN(zHY!{TR#x&w&vZw_$Nxw|6v%F&m>HWP%kX;9-Qf4h)~K zHkYB;)x`}H)lMmpR=7!YzgK!zGH(_Q+7Ml`Dg&(KR z>Yc*YYyWMTc)^NE!u_e|NNb(h@hjcSp-@*O(Sj8Nz<;bD$6lmoea-J_Nvx2#3O@ku z2y(Q5j@DD``cuQFgMWZzLN8d62O7d0C%{MGr`GGw<{v>!=BCzMqjro3#nptQd9+0DcMjeYoO9fmPvsF z1%;884h%17V=F9bR$7uy8mv?jIBCHnTLMcG1q_VLVJY%}<0f(L?7PdY(yDusf$z?L zo<2MO9XK2ghr@B7Su=j};OZ?s9|mPxD(5Pz){Sb1*+b@2Z6ARbh}P{Pe?!WsCM-)AqSrp7 zJcM^=YHJP17EVuB%=;7Ye~M819%Ln+7$AE88YXWqHGx53k_@hDD zMMMcd2Oh3mIf2xRxY~JQCTy|=o3TIbLPpFd r{IAoE$sz&!cl28hhr{7;{Ac_Hn4Mo7;_Dy500000NkvXXu0mjfXny@q diff --git a/test/reference/mask-alpha.egl.argb32.ref.png b/test/reference/mask-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..84ae08511b8d4ec7317ea36c34dd7dca639d5cd5 GIT binary patch literal 690 zcmV;j0!{siP)xP-$rxQFIK|m2 zocIRIPf}J=lU!Kf0>$olVHIXSrl_RGB;g5QSXOAlt9#(KQj=1VOjxiFDC{~u`@v6o z4@mZv5X=KJp>sQ)%jEhD8~JJA5Fmgbz$c&vG-Fh>z7qNg3p`*dV%Edkxy{PM%fL}! zKQIW40at-rz>xO66eMYh0^y&*0pKPu%C(9^sRI6!6UZlc47eU~eIoRP1tY+jh}j}= zxc$3DdBI_5TXe@#ew3(oN`P*{^F;UiL|`sMep9f#B*(o;N41nT@xp>JU|exVE+FM6 zd%r9wuF0{S&-LL7#0d)=;DSb--k!}i9bViOxGg7iz7OIO9tV!ZoYO!iDSNiK1`k$) zJq)mAD%v4hSdanEYt*O_?BQUNPnR;}H-gE2F%|8gO87KzP@~3YpiXa+zNEJ;C_n0q zw}7g-s!zDEAWLwAqvkj82KbIlQub`A0;NhFcunkT7f<+0ASeLm64r8oY5WBy*REX$ zYHS{_GWoTo-Z$$l&AWvKgTM_Sn^0KI$|5X2Q>hs5B?_c13#sj!dlME6=+FK1%@7Mlw>mL@s+T%M(zAP1c6Q%Hxo_Ey!1V46CML>gp)i+gl0i^XEGSpG5o Y0E9PwTH=qI^8f$<07*qoM6N<$f<XG@4LM)6x>d&K-sgD|N|6 zT|t5mz=8)b23F`3xRQ-q-vH8v$ODKAEkqY3u7K-eMwr?=GiUDHkU;L2OeXi7b5DOc zb8_x2I2;a#!*QL-8Si}Z9Qr=6V@@fZ8$hkkUf=aA zeF>zS5{f1|!2rhvkE#7C2NPAG6j*-)Euak~d;-~&kXKky03JnnixiHR*jSkd#(Teo*Kh%p!=BCz(AaEJ2BxzlxDcl(1NSoulF$gQsz!vXDLEu;FbK?D(r-B&4u`{W#rO*>U}BwE SNt*2d0000<@-00006VoOIv0RI60 z0RN!9r;`8x0s=`yK~z|U?Uu_*8&Md5zc>@Ixrk!0ri&81f*RBk>#da1MOLND3SHEP zaOXzcxbp?v`2;T9xfDT>cx!|%)P*95nj(b=C2bNHA#|o^=H$#I=;nN@Gyl1Lb1pvz zG#ZUYqej3(+gG13|8n`-*F>w5x+c{@0x-41yKRDhd`ZYqmgs?wpG5McGS4Joz<9Mh zd_pYu91?>Nt(F62-fs~oKdnSFjM*cx9K$CKlrU>I8G#ldIFaG%Gxr~$9e{f{f@3K8 zkT7c0N8qEdUQzf~B5APk6-+Q83VqNEXHak&XkRi(t?hUtES3qg@DkFSq&Mw#T`;S( zx*jCjVZceNvszwSB>Z5n?i5Z?of6|t8Fk1~j$bpsB5hHpL>DBS;xYT@+#1QOv_(A< zlWGGPMV1#Zie4vHkVsfI{y)TQnanb`X8FErghUg(b?=dN3eK+(zm~S}D$x&Z?mdp+ zRtSb4SXu<&7LL722+7KXGz8syl;9K+5V6O5&N+;8u?N4My2+B2ATi={DXbLWJLDk@ zAt=KQY{RczesoiE%)&AWdv<#PqqPhw6yX34?7>i;REC`?wITjtKNDlpjZneYYr~Qe zTj7g`rH^`mpkH?_55e5}f!rf7lkYpzx1Yx?N18OuH bji$mQdkb0l0$Nv-00000NkvXXu0mjfU}gRR literal 0 HcmV?d00001 diff --git a/test/reference/mask-alpha.rgb24.ref.png b/test/reference/mask-alpha.rgb24.ref.png index 070ddf85f42b8606aad4c35c5584e3a02a7b2304..df7a0c190e9156f414054c2f62d000d867d875cc 100644 GIT binary patch delta 547 zcmV+;0^I$g1kD7HHGcvENklE@rF5I~kL6LZCgf7&DB8ZwIg$N~W5*HzKrf25l%p~aMe5*76 zxqWjkKL<1#jYgwJz(d{Mc(puyLM-Tny_aC4g zfO|NCV<`EMFly9C;G?i!QTSFOX|VAXOfVq|eb5VMP;eS(UouIp?RX9)Bd-VZceNvszwSB>Z5n?i5Z?of6|t8Fk1~j$bpsB5hHpL>DBS;xYT@ z+#1QOv_(A^a?HXq343;X0i(4HDiq-W4(!2Do>YdNDYYT~VLuaN z(v48T*K5O)5nJJlho_b+IamiT?+wfT%|J)p20#c3PB+M%>W{~uw-E*vQo`L)l8|I4 l9|U2#p&SEhG#ZVj!XtYNS@{B5SCaq$002ovPDHLkV1kxY^{M~> delta 503 zcmV@4TL2ytMQ4~6K5GmS0aZv;-792wKVy>4T4R*P2y1u)6`TBZ& zInZb{8ci?~A=Zv8@{;1MH`0Ul6>}XylNc~}%u*5KGm?agz<&}J7@zdMVcoV#!T`$| z=dVe56voc*@DC@{OJqbunGf^D|0r@Lq?bzge2UBl~A4u6HHHV z#rXw*-7WfF-G9?lkX7XjEioYr4h!SV1M3IM6)j3g%iv{mk6hUu8jnfBfZ1RPl6AIs z+@X3*5|-yYDwsZF<%*2{dqtR$IHs4)VQwodu=kEXj002ovPDHLkV1o0`-~a#s diff --git a/test/reference/mask-ctm.argb32.ref.png b/test/reference/mask-ctm.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-ctm.egl.argb32.ref.png b/test/reference/mask-ctm.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-ctm.mask.argb32.ref.png b/test/reference/mask-ctm.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-ctm.mask.rgb24.ref.png b/test/reference/mask-ctm.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..de3fa097faeb9e969bf3478304b37ca4532499e8 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhbP0l+XkK2(KKP literal 0 HcmV?d00001 diff --git a/test/reference/mask-ctm.rgb24.ref.png b/test/reference/mask-ctm.rgb24.ref.png index 266cb0d1208ccb1fff86b7c5de1a798f0c0e0b15..de3fa097faeb9e969bf3478304b37ca4532499e8 100644 GIT binary patch delta 7 Ocmb=)oM1N5(-;5@0Rp)I delta 24 fcmd0-nP4WsUgGKN%6^SekWZI6?{rrCL}N1mS_B7U diff --git a/test/reference/mask-surface-ctm.argb32.ref.png b/test/reference/mask-surface-ctm.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-surface-ctm.egl.argb32.ref.png b/test/reference/mask-surface-ctm.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-surface-ctm.mask.argb32.ref.png b/test/reference/mask-surface-ctm.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..07d903d157f27da49746ca44fd6347e0d1518397 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx8d%8G= zNK8#mSRnc1{DBJ}<~J^6oNgn0)mQDlON?4@p3+SQhR^k!jOR0U=m3>7c)I$ztaD0e F0suVdA*=uZ literal 0 HcmV?d00001 diff --git a/test/reference/mask-surface-ctm.mask.rgb24.ref.png b/test/reference/mask-surface-ctm.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..de3fa097faeb9e969bf3478304b37ca4532499e8 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#IhbP0l+XkK2(KKP literal 0 HcmV?d00001 diff --git a/test/reference/mask-surface-ctm.rgb24.ref.png b/test/reference/mask-surface-ctm.rgb24.ref.png index a2bdc6111074dbde3c61ceb247501327439893e5..de3fa097faeb9e969bf3478304b37ca4532499e8 100644 GIT binary patch delta 7 Ocmb=)oM1N5(-;5@0Rp)I delta 24 fcmd0-nP4WsUgGKN%6^SekWZK8!}|X!6OGLPUQY-7 diff --git a/test/reference/mask-transformed-image.argb32.ref.png b/test/reference/mask-transformed-image.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..af84b39d35fbec691def3625967ee73f62f875b8 GIT binary patch literal 3812 zcmV__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU 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 ovuDqqJ$v@-*|TTQo;{X5v literal 0 HcmV?d00001 diff --git a/test/reference/mask-transformed-image.mask.argb32.ref.png b/test/reference/mask-transformed-image.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..af84b39d35fbec691def3625967ee73f62f875b8 GIT binary patch literal 3812 zcmV__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU zNJSG8wX>!MxpjMIGY)2;D64MN3`~3j!bDhA*t8HF)(sJ>iC&)c=igY{HjBI5>>E1; zWummG=P`B{>z+N=93-kU27&LUU7lS`(7n27Ye=Tf`;0P-+xI z<%WH;T-LX4-!Dn4yJ!sDSYS9jXl^DC6N7i4$>OL(w0Yguj=Ocq2~&z~v(M1PY@+4- zbaYfV9;{^N$dR8)2G*GSb{>{HJ6hDuTeVWOq^OgL4=`^GfIPHD?*xhybBDbpyb zH!-F~1C6%6j7Yp(>;-g}uZEP^RfMHD1h7JmrC3uDS`sslj@biqU=hwL{q=}2SADaK-EH}-95iqh20yqyhWTn$r-87q)N#59|` z#jGL)B(7SoDkUp1n?cHxl4aG}$-3L*Vq+|ewgN3GETYaMqbnr2?#{Yc<*M4*DLI!6 z3N%XA8@aRqpsuURQyQZcMUdGnRG}KC$jn+w8L_UYshXH3Q_H!;l$be5;)>AIR4j{# zK`atVV0J3GX`v{oC=s+x#VsH1Ev6L9MCedxUAVnU>yMdQ&iNRou2#KfLJ!AO~~s_V9rtBaM80R&HO zXEs~Rvhz11j3x%)ipCCHK-JLMS zM2HON=PpZPAOHkoCM$UYqH#5nKr?RzWpy=XEr$n31RJ!QNK0sjK)K{ta`3Qd7M0hl zO{AcqB7sq~&IKL%-I}Y~6}3=RNdb{ss+nQRxvu=)?qbTDDpY2|0;)Jk5}}d_BDT#; z^9Trgv)S&>d|ap0-_XRPh#2TJ_0IVac++?5_22>nA~_!r5ka&NGm$UKT5P@uNm4S) zoQ6T4o~-O1*DZbbFhXkUc5^kpJnhkW2N=MQ!xZzBbv#<`JpSrAk?;B>9=y3|YKRgYBOr}^ zxi~%50$mq9^IjVOOw^|`?(gm~v7!xQ%+VA28xS4`dGdHAT5^(H1QArR6v>W;ZY$W5;1o% z=2ZI2FpTNiVZY9gY3^WIg+QtX2BPAFV}$ zOcW4-9jclcs2UpQEP#dp%p@xM`wMLv?BZgYrt5czTefW3vSrJbEnBv1*|KHJmMvTU axcNVt>;h__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU zNJSG8wX>!MxpjMIGY)2;D64MN3`~3j!bDhA*t8HF)(sJ>iC&)c=igY{HjBI5>>E1; zWummG=P`B{>z+N=93-kU27&LUU7lS`(7n27Ye=Tf`;0P-+xI z<%WH;T-LX4-!Dn4yJ!sDSYS9jXl^DC6N7i4$>OL(w0Yguj=Ocq2~&z~v(M1PY@+4- zbaYfV9;{^N$dR8)2G*GSb{>{HJ6hDuTeVWOq^OgL4=`^GfIPHD?*xhybBDbpyb zH!-F~1C6%6j7Yp(>;-g}uZEP^RfMHD1h7JmrC3uDS`sslj@biqU=hwL{q=}2SADaK-EH}-95iqh20yqyhWTn$r-87q)N#59|` z#jGL)B(7SoDkUp1n?cHxl4aG}$-3L*Vq+|ewgN3GETYaMqbnr2?#{Yc<*M4*DLI!6 z3N%XA8@aRqpsuURQyQZcMUdGnRG}KC$jn+w8L_UYshXH3Q_H!;l$be5;)>AIR4j{# zK`atVV0J3GX`v{oC=s+x#VsH1Ev6L9MCedxUAVnU>yMdQ&iNRou2#KfLJ!AO~~s_V9rtBaM80R&HO zXEs~Rvhz11j3x%)ipCCHK-JLMS zM2HON=PpZPAOHkoCM$UYqH#5nKr?RzWpy=XEr$n31RJ!QNK0sjK)K{ta`3Qd7M0hl zO{AcqB7sq~&IKL%-I}Y~6}3=RNdb{ss+nQRxvu=)?qbTDDpY2|0;)Jk5}}d_BDT#; z^9Trgv)S&>d|ap0-_XRPh#2TJ_0IVac++?5_22>nA~_!r5ka&NGm$UKT5P@uNm4S) zoQ6T4o~-O1*DZbbFhXkUc5^kpJnhkW2N=MQ!xZzBbv#<`JpSrAk?;B>9=y3|YKRgYBOr}^ zxi~%50$mq9^IjVOOw^|`?(gm~v7!xQ%+VA28xS4`dGdHAT5^(H1QArR6v>W;ZY$W5;1o% z=2ZI2FpTNiVZY9gY3^WIg+QtX2BPAFV}$ zOcW4-9jclcs2UpQEP#dp%p@xM`wMLv?BZgYrt5czTefW3vSrJbEnBv1*|KHJmMvTU axcNVt>;h__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU zNJSG8wX>!MxpjMIGY)2;D64MN3`~3j!bDhA*t8HF)(sJ>iC&)c=igY{HjBI5>>E1; zWummG=P`B{>z+N=93-kU27&LUU7lS`(7n27Ye=Tf`;0P-+xI z<%WH;T-LX4-!Dn4yJ!sDSYS9jXl^DC6N7i4$>OL(w0Yguj=Ocq2~&z~v(M1PY@+4- zbaYfV9;{^N$dR8)2G*GSb{>{HJ6hDuTeVWOq^OgL4=`^GfIPHD?*xhybBDbpyb zH!-F~1C6%6j7Yp(>;-g}uZEP^RfMHD1h7JmrC3uDS`sslj@biqU=hwL{q=}2SADaK-EH}-95iqh20yqyhWTn$r-87q)N#59|` z#jGL)B(7SoDkUp1n?cHxl4aG}$-3L*Vq+|ewgN3GETYaMqbnr2?#{Yc<*M4*DLI!6 z3N%XA8@aRqpsuURQyQZcMUdGnRG}KC$jn+w8L_UYshXH3Q_H!;l$be5;)>AIR4j{# zK`atVV0J3GX`v{oC=s+x#VsH1Ev6L9MCedxUAVnU>yMdQ&iNRou2#KfLJ!AO~~s_V9rtBaM80R&HO zXEs~Rvhz11j3x%)ipCCHK-JLMS zM2HON=PpZPAOHkoCM$UYqH#5nKr?RzWpy=XEr$n31RJ!QNK0sjK)K{ta`3Qd7M0hl zO{AcqB7sq~&IKL%-I}Y~6}3=RNdb{ss+nQRxvu=)?qbTDDpY2|0;)Jk5}}d_BDT#; z^9Trgv)S&>d|ap0-_XRPh#2TJ_0IVac++?5_22>nA~_!r5ka&NGm$UKT5P@uNm4S) zoQ6T4o~-O1*DZbbFhXkUc5^kpJnhkW2N=MQ!xZzBbv#<`JpSrAk?;B>9=y3|YKRgYBOr}^ zxi~%50$mq9^IjVOOw^|`?(gm~v7!xQ%+VA28xS4`dGdHAT5^(H1QArR6v>W;ZY$W5;1o% z=2ZI2FpTNiVZY9gY3^WIg+QtX2BPAFV}$ zOcW4-9jclcs2UpQEP#dp%p@xM`wMLv?BZgYrt5czTefW3vSrJbEnBv1*|KHJmMvTU axcNVt>;h__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU 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 literal 0 HcmV?d00001 diff --git a/test/reference/mask-transformed-similar.mask.argb32.ref.png b/test/reference/mask-transformed-similar.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..af84b39d35fbec691def3625967ee73f62f875b8 GIT binary patch literal 3812 zcmV__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU zNJSG8wX>!MxpjMIGY)2;D64MN3`~3j!bDhA*t8HF)(sJ>iC&)c=igY{HjBI5>>E1; zWummG=P`B{>z+N=93-kU27&LUU7lS`(7n27Ye=Tf`;0P-+xI z<%WH;T-LX4-!Dn4yJ!sDSYS9jXl^DC6N7i4$>OL(w0Yguj=Ocq2~&z~v(M1PY@+4- zbaYfV9;{^N$dR8)2G*GSb{>{HJ6hDuTeVWOq^OgL4=`^GfIPHD?*xhybBDbpyb zH!-F~1C6%6j7Yp(>;-g}uZEP^RfMHD1h7JmrC3uDS`sslj@biqU=hwL{q=}2SADaK-EH}-95iqh20yqyhWTn$r-87q)N#59|` z#jGL)B(7SoDkUp1n?cHxl4aG}$-3L*Vq+|ewgN3GETYaMqbnr2?#{Yc<*M4*DLI!6 z3N%XA8@aRqpsuURQyQZcMUdGnRG}KC$jn+w8L_UYshXH3Q_H!;l$be5;)>AIR4j{# zK`atVV0J3GX`v{oC=s+x#VsH1Ev6L9MCedxUAVnU>yMdQ&iNRou2#KfLJ!AO~~s_V9rtBaM80R&HO zXEs~Rvhz11j3x%)ipCCHK-JLMS zM2HON=PpZPAOHkoCM$UYqH#5nKr?RzWpy=XEr$n31RJ!QNK0sjK)K{ta`3Qd7M0hl zO{AcqB7sq~&IKL%-I}Y~6}3=RNdb{ss+nQRxvu=)?qbTDDpY2|0;)Jk5}}d_BDT#; z^9Trgv)S&>d|ap0-_XRPh#2TJ_0IVac++?5_22>nA~_!r5ka&NGm$UKT5P@uNm4S) zoQ6T4o~-O1*DZbbFhXkUc5^kpJnhkW2N=MQ!xZzBbv#<`JpSrAk?;B>9=y3|YKRgYBOr}^ zxi~%50$mq9^IjVOOw^|`?(gm~v7!xQ%+VA28xS4`dGdHAT5^(H1QArR6v>W;ZY$W5;1o% z=2ZI2FpTNiVZY9gY3^WIg+QtX2BPAFV}$ zOcW4-9jclcs2UpQEP#dp%p@xM`wMLv?BZgYrt5czTefW3vSrJbEnBv1*|KHJmMvTU axcNVt>;h__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU zNJSG8wX>!MxpjMIGY)2;D64MN3`~3j!bDhA*t8HF)(sJ>iC&)c=igY{HjBI5>>E1; zWummG=P`B{>z+N=93-kU27&LUU7lS`(7n27Ye=Tf`;0P-+xI z<%WH;T-LX4-!Dn4yJ!sDSYS9jXl^DC6N7i4$>OL(w0Yguj=Ocq2~&z~v(M1PY@+4- zbaYfV9;{^N$dR8)2G*GSb{>{HJ6hDuTeVWOq^OgL4=`^GfIPHD?*xhybBDbpyb zH!-F~1C6%6j7Yp(>;-g}uZEP^RfMHD1h7JmrC3uDS`sslj@biqU=hwL{q=}2SADaK-EH}-95iqh20yqyhWTn$r-87q)N#59|` z#jGL)B(7SoDkUp1n?cHxl4aG}$-3L*Vq+|ewgN3GETYaMqbnr2?#{Yc<*M4*DLI!6 z3N%XA8@aRqpsuURQyQZcMUdGnRG}KC$jn+w8L_UYshXH3Q_H!;l$be5;)>AIR4j{# zK`atVV0J3GX`v{oC=s+x#VsH1Ev6L9MCedxUAVnU>yMdQ&iNRou2#KfLJ!AO~~s_V9rtBaM80R&HO zXEs~Rvhz11j3x%)ipCCHK-JLMS zM2HON=PpZPAOHkoCM$UYqH#5nKr?RzWpy=XEr$n31RJ!QNK0sjK)K{ta`3Qd7M0hl zO{AcqB7sq~&IKL%-I}Y~6}3=RNdb{ss+nQRxvu=)?qbTDDpY2|0;)Jk5}}d_BDT#; z^9Trgv)S&>d|ap0-_XRPh#2TJ_0IVac++?5_22>nA~_!r5ka&NGm$UKT5P@uNm4S) zoQ6T4o~-O1*DZbbFhXkUc5^kpJnhkW2N=MQ!xZzBbv#<`JpSrAk?;B>9=y3|YKRgYBOr}^ zxi~%50$mq9^IjVOOw^|`?(gm~v7!xQ%+VA28xS4`dGdHAT5^(H1QArR6v>W;ZY$W5;1o% z=2ZI2FpTNiVZY9gY3^WIg+QtX2BPAFV}$ zOcW4-9jclcs2UpQEP#dp%p@xM`wMLv?BZgYrt5czTefW3vSrJbEnBv1*|KHJmMvTU axcNVt>;hWLb5<@iW|e-w+WQIoDhb4L#7MHU$P7$(9$`8}kiV zTYLw94)6R?5L?SaG6;(z^@ABPqVHKig(h&<-hjUzJDO=zmBs)#Aq!6A|f zseyq2fP$%*nHs2B=~q<7x%0ez1=;)`v1<`_!Sn(yB~d-_j5 z`RD)l%?87L8NPfIt+0oEjo%fvl!xB2r96P1RuRb-tW8^AO9nkL9b+hukmz>dDvdo}awj z{9!#jS5N>Jh<7k%m!tRbfvSx&z3;Ny4hJh*>8zgT~IvHrAA@2vg>cza8wRIg-q=1o`BXq^0LNZ8Z84=VhCM_kaN-C~V3YE!=0rW-=nFz+n*{CIh^Je=}2 zrU*a^?3fL+>7*cNO2{$gIH{>9S&V9e0y@NqYM!a&l8ZP3$ApATg@JPq)$HD^eYXmJ z*#h8jojxycO<=&rF7GV3uHCA;6fKAxxT?HY$SL&-8O=-~W*JgJ1y$*Xl#3V;fUy|> zmaJgr7#tHjM~)cGm6@aajeEpI^On!gW^Y!P;I;&X35X?Bw;B0%!P{vAO2po=V@IiU zsf;QG*|KOU5L3=YwMZ^S0RX_n$V|k{kP(o9*%2X{kpSbYp@%rTvuN7mBc9KAwSIZs zeF-!Ih<9X${u|xyd^-<3(TW>AWX7?|WNjvO-}A|ewK z12_f;PU6Y@UDVn9E5=+id z)D+A>K%@wY5HmUkcFs9MHYN~(Ze8Yl5Ai_Vl}P{K^!u}Vv6;5Lt@e=7_&C?%z?}MNI^q0E{2F0R2l{m(+n2F{ba~`u8WB`)_XsVc_5-|Wc=E^fL zASoj_bY-GemcFXnWmKsC;_;K#9bK%tm+L=$e)+r2N`CS4S2rse2KnLNefuB&_B*py z=at-MrX;zDN-;?yfC@&Ii>ewTaPXD$j){rHSUi(Qqyn)o-XHtJmR*|i z@XZGwo*lh&aj|}J@%nAQx_F^)-t;${{L%aG{^Jk7clW#^*b3xV+v}YL_tREYM2m=& zY*w%o5d{S`1vO?PM-}^u9VlcZU^EBD0+2cQ^LpMEdOL61ubqGQ8}~n2ulk#HFY3E( z)olY=^^+g}=>5m1wU5QFUS3^wQ}5jFp3)*xN->jCup|%xRS?sn>VVBC7E;eOsiHEO zb4WnWAa#o=S2YS^SC zhJv=c_i)Mu)YLF#lR`y{suEB@jv13+a8%dkoOssYAb2WSV<(8bIIkW*d~^^F&zBF* z4<5dHef9g#KF^xJeDm_**~$06_3--U#p>RJ|a?zX> zfB+ehr);9Mm~$Pls?4!@haRkET5Zberrf{x=;QaE9xcv~7Ds)T|L~{h-8dedEWpx- zUw>+_?WUJwdZ924lc=Zwn$-ZZ-Q3I;_0EEaF~%ZUNs0kbAn%xwfW3Lofx!o@f+sE& zAx!Y*tGLH#h&&$4dk)H~~U8Wn^g{Lf8K}A%wuG+u>K!KpC&@*@sp`yxJAl%-R?Q1R4o}HgRdH>16*T4Pplbilm zCyNK~J^XNtD>VAz)u-#>MOz2&c<86?dh7=6$8kP$s@A&7J8*$34m%50C8t2luBrgR zAUnq3C?`y)wAL1Ql5VN{&$`{jb;7I|N7aa$pA#JK708y?;K&CN}A1Q zahSSw*>>q_I}+i%@$+VZB7h}JW^?Rzw;yKkC^RMcJTP!!{v!PI)$o9j`?!xFE_*KaqGFtQ8h=PYUoBJLZB&YF?D1p z3`P{Kh<3S~A6E0D6Ys1FeoE8Mf}0wA0Co^6_TDNFP3=}M(z8#doa~(kcbhqfD%T5F z*A~Y#Y39oA-<{34-Q0}9vu8*#0Xn3ro}UfVi`>SWxw$0)`H%G=!L76Bm>UoUa^`>XfH3y06j6vZ4PP;t2 zn4o)m-PVvyo%b1K9Ah`cYUba5Ia<+fO!bW3|JtcW-Cc0Q-a{44IaznZxGhfVqmxC` zqMOAbPu|s#CAdHgYS>f_GqZ>TEP<2&jhrI@?bg?UgKy9rlBaGM`;^)9^ULeSycsqT zSY7cq-9~kXhjfo1BYkNTS@NQ)@0^FCR@l6Aec!)bZP_;`C-t4X4@=VOJ{kiz78rux-IrGIpvmH>L$rC_ z){eVP$q7@6ZF9uX#B8GF>SA&L$WK8?5s+Po*P`C8rpR<6F&qyZ!K3n!1^{ zvtf+uVM;M$1yYEZW^=cgRiuE#RqIuyWF=-ZNO@AStXezSblY5PjAhYQphbm6)Olod zg(TPAWf!YlRR;$p=aNBz`m(!2ymr<&urx+1iXgLDs6sVNk(srWGGbj(Q#CP7rj~Pw zDKT@B#1)~ZsaO^fgIFY#!0c3V(?U^FQ6gxYid#NCTudpJiO`|Y;COfchaCV4fEWoZ znpPA<4FEUmfsy>8gy73Gb>q+vkqihC0@p1e+Yl2X9V{A;jzN+n6eTA11PVsVgjHR) zmE2sfg$y8gatE`Szuk-YmIv{M~g};xaC2ZVj@Ha^mCUbF%STPF_V=%0nxY~NuZgxg0j9DvzF82GnKTnU_#0z$C87G zMYE{9-fSZU4HXHDqIE9l&@XGQYFE@kRV4*PYN=+1Dd)QKhs(v3w^gXjgauS_k|aVU z6GUvAndT7?4rjCF!F=2#E4$kdE9f-!&iN2{+jpDI-~t08IUf)aL9`GvkuSYr?jZF zO{+z^ZAm4~npw8|`eKs=P7fCctskNklfH|0P7aPwgYzKKoI(hWy*z$r(bNznIz~Vm z`*MA8p#{1wdgjA60GOyxWjtCQGO?l!V{F`PXTc>EbQWWdxe(zdjwu%(`07n}e6olF zSF0h4+`B(Jyu*kB#NgPY%TfS!c@P4#nn;n=RUG?xd|ubVEi`ZrnmHHEZY3~XuSf3P z&6whtc{abz%zJx#dwY9(dwY9(dwY9(dwY9-ZvGd>a}NYXS0au80000__ z1NeaikA5XU1O^$)Rv2p}&1f_|Gu=JiT~&9><($KV@E_=jaEBx6d(Ru^i<_Bexffu| zmMvShY}vA9%a$!$wrtt5Wy>EqcdfTDYBs`)}=h@ZpiDWxyePKdyj*4O`&`r}Y<+`FaxLFkzjZ@5kKoo$S z8X{)@|J=ZC zKv)%qaU4?<8mcSr3D{xX5F;YA3MirgYG`0m@@NVGP)d$bW6Cj_8iMDnL)=Il>D~7q z9PYJWpZ%gwoq{#wG$YIMoqHd>dF$TYxW0Y7 zySF>Xle0%J*1wHe0RrOnlgssmO|AA}e?FVFbsbcsfRULabj6}VGDv0_5!5UuEhVc; zDyqgDLe5z=IpShqr~n<25iy!n?40e?=}u_xw9QWC>FoS`T^?`J6``w`32$Ocd*;2J z+1;btQ{KcB0Z4%zvtc%!6a-BPIi?&ZH5Da`QB6=lhZs@KGnHI&5l7&dkdUb`aPFa+ z-I=v-SHbVL061KvuM1od7_gBma3jLbaR_|borxAi4qR2QD$f^1o|6o@J3qFN-E^4&#aVq_*_X2=N0!0d<+%}9W8*3f;N-C8v5 z!9LGte7QQg=$-(L0OB2)VeDBF-Gs0y6k-nSSTM!BAwba#29h=9l2XYkDkh?4P>PBe znB**u95WyyA`=n=I0gq!;&Q%xpBZ=NM4;V9`trhjPbL7m*~t1bUz`t{&3FUC02o3= z3~D2wIrODuH3Ee(B`rm)Xi+JUMRLiiM1}@L#6XCM?6C5Tq)3t{9#+ln?twx+XxrV& zUcNe=>>R=+c^o==@p3r5$VTzolXX9o8xTe!g$x#%Pz_U-n3JliXf8Qt$w`Zf0jek{ zf|@7-5|JU3bIc6H2!K$Wm6oeTScrG02lF@TFl!f>%BAR(#`fE9x_|xTF*u>WL7WM)26q}eu`sPe(|4=Kl}W&@6)WF{q0|UyqMSj{4f80?Vw-d4TFI~ zk&sFp<5>?|K0~j`){6}uAZH~c-3E? zKGT;k`>S>S@V&SH{%3!7`?w<52;^78Nh~+fJgDlJ##p>)5s{M33YH?GprEFp#%$!M zVqdWXg^UD@=D=70G6#QL&)Y(;=571E;~&3s_ruj?f3@mGeYdH)O(3iO=^y{$y$6T2 zkHyYU&dEfQ8vPq$$MO6tXAjgbJFgU7fb51;Ka1cC|tg#bBUL02s?!U1U_KtV&9q-(K{^I<% zUwxf5KY4j_|7iJ>AKbsVdUpBhXSA<+rQ89KVMSow#{9%Ow02HKH%q17iSpf); z5qZicN{czy0jtU!n|J8JYNpF|xx6ZO@4WHRyC3f_j`tV)eV2dt<N>^ub#n z8*IAiWK7Q#reP8l6+p8ZKsM_u10cGgZYid`8Kcv5x)qd6v-Pq6S1sbz!(lExU^u464 z%iVxPIROHZr*0aXmX(mh^;@Oa5=KNq2Z%`KSkYM(xCzu$=sh&S$G-gP(~HMn49i

    KcM0XY|FdR$o3^EoM6p-rn0?y8T0_n&g?;^lWBU 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 JPDHLkV1geK&aVIf literal 8218 zcmV+#Am!hQP)84-d+pjXONM#tfUI86cVHer?4pkA`o^eC6^r~*fN!s zAISEwR^+uFJ3Ei=`@8p^bAI`wXL@>`JJYj-(K6qvuI|2l`!~P)ncq40cTS(*y|AMl zT}YY5m-kO>&D5c0_xbpNt=YNhL4Z6jCqzm_0wPu4^J?1`UI#=5-CAS z4p`W30R@zl`n|BLyxL~k3M7%TXGhWAYYSK$D5!S9bRP+b^Ur;atdH6@j;O&QiG-e= zlmLxg9H!fxz+gizm$O-1G*A)E`lpZYq$p zn+DkVz)|Kq?F95SLooAa#%{;Hplu#egF))=%r(aD3v1@{^X^&BV7if`w%hEi&Tj?G z%J|vF5j8lZqF4kKREY{PDa3B%sLn?Wpd>&S5-yAd=U!5v28Xny>1jeW_UGFe)9tI` zYJXUjloHn3C2+PmsKFpD$)o0PzOCtom+SURX@TG}S=UXx zthFm(?Py0APW>~SIUp+^Dq!cI*V}gJXxGktw}S>S0n+^Q^4IHqe$xa%o|m~uCEZ7u ze=hspmm(4+&nqd4O7c8NQIwMBK}3Rl@Pj{j6yS6J`zyIIh{cFCMyxf0A{ZmaS}`Ej zSTP2%&WKSX)*{9jvDV6~Uwze4SlUNz0g}q1nXN!dy^`4csY!wMilRctb1 zy^)jdf=sk*wB`-McOo z=Zpk3Vhy4xNTpV+4T4&+s6Y~>3(2J?nWWT^WUZtWq)1Df-ZD^wLRzmg-wY(z1GN=MMX}iQtW)u-Vyuyf3K%J4CI9Jn zepm92$jGP@Z=Dzu#n>PzA<=j-P9;V^XlK3_q|^s$E0BB-)K(z%C!8@=;!P$Im1GdB zh%qX&MUdb6FaK3udCeYq_4sS#iYu=WQz4ij#;Mq-V%?&hzKGfiq}nQ-`5=%weGxS{ zq_XUb@MI*R(r{j`-gB8ao5ZLSgUX!b^3>DckuRM3vZN}=P~A(-d9lumb(xg0wi>9d zKw7KmZ5C3kFQNvA)Nao$9-yi?O;T2sNSRBfMx3q58(#ey8On@!O>*WtQ}XFQ_+u%{ zTpEo`Y(&Z^;<8P3<{N>uTGJZ@((_9qYEVd3)mUtLRT8TzjwEw49SI}2zAaCEgt!vU!HzOQpkj)GNU4&|DS&*m+Ud}^yyj2UWYezf!E7E-@ z;Q09Fzju7R``rco`cK1&-J7>_Vt4nuUFCUsVrnYiv_BvE&>xN;Ir4iwe-7Q!I&tG| ztxemx@wU6if8mb1dv^NzD086ucwhqJ(S<45wROA+?g(gee#60eJNrQP!SP980&bc- zkDYO#2{JxEGyQ1*k?Md*b>N%de11YC9DUvEu3XojyYK$vrbsvF9kQZmnzQ#@jyBRNN8ov>9XS*;(c1Ds6&ot_`do(7He8i~|SO2DSi* z@zuWExAveZQZ+yKxo=E}6i0vPhhDeDpX0|*Hbr6&(86OuH4CL$G}27QH{bJ1ADz%x z9KH9$cPz1U<860#kIQH?RwXrSaCUL&;yStk~Q>1yrt#?g~jATa%0aTBmwpm2*#$s)t z3K3IV^k)MwG&+n4#FQwiNC*%^AjQboNJi!=8ZKd9 zI_t~_gVf(g8COuI8kw;SWsYD2!6dA6#2CA4rjj8fMU!KuEr4UVHiT4p&(1anH5jC& zeUw2pl2EMkSfgmHFq&a-WLAkJoHf*~QUyrSmZ{mZi+27xAZ$cifz%HQqoi12o#_t6eVtlX zC#66c175+K`IU)QvBr>`onImJl36}I7^Hqsh6E85gPMfT6k`p^+U}>ZTN9&ns~o(K zIHQEp;C$AzvyrpjB$$KU2a|&zx}F2~>Fz_%op0}TAWarUb+9O^gCf=BS|EFW)dgI= zMyIMss)VW}YDr3FvhLkMV>u{=OoF9KmMSPQr7q0Av~it?G83x|VIEv%jCVdw0u%7A z$-Zq*o_`3l0>DI3R7dZ>|6eWfr`h~ivww`YyfaU>q+a(VH6)FcAx(If9sR_w+`h!l zyWiVt4%PjUP!vt)YrQ3m3t9!#s(|`*(?s{c&kJmlbqB>aP0|HF&MLtAqGO^c%A>#b zYd^E9KNAzTP5=|HeeLbd{xRQzQc9#Gj5ORtUX@4h{qV~g(p(te77!!6maS=7+j-5qe8UA^pcs6x&T$`jhxg@ zBnu@%Z772ZVg>30KFv2n11Ty>!nqQx#hI4`s0&l2?k^EW>jr5<%4>*L1QcUDE+(u` z^OufLtQts4R6}M0*lmkvM?2clj&?MNwrytq@WW3`Y~<`FvU;)Opa1y>ngGB0z)cg; z7^crb5Rlx`DFfCgh&9T5J~hyY#SwfU^PUXPTq*pAd+uw(w$984htyxCe#OvhVD55K zr%oA_U`t#r&?y5!yT9=zmr!E}))Ip!bUb+{VQY)&!8QhUVXD->{>*7KSga1=!w`h- zWshp!K~y?rpbQCDPt<%Ms|B=PqAvBVdf)b-wqB(^#~jbMU!*=V#1)raNyF^ItH(Pf zxsu_UBb1i8nS`o^5~vdRK!2tS!59(&s|oK{sm|Wfj&}6_Qx|=e`r+2k79N}R1rEz6`+h?GHvWW_iu8jva` zDGMYSBr^z#R0MhCp8xnaqe?v#QM|LFsxn(v;_~^TYa7HkD+$TG$Ckz0PJW-JKE8XUh?YC%pcxb0rrhw>e{*QpKh%H z`|ufn-~R0<9^Og;_7}hSfiD5P_ai^^aMD6l8X`p$4W$I9GBnf>Z&iwfc;_XQNLd6i zIFYgv?;2uUDZlxV|NJHR8&IXLsTA*OQokgVTH8r`M#Us69+d>5F^F+V>cdtt=cFT* z3^kl|ic*Sd)r9lntWvK#BkfKpZdj#0qEa97l6Rs=6~(){4AqQeUM0jJeke(nIVpk{ z=L)H7Tn*I4S*2d4Txtz3MHQroDkd2j8LmkRQAX-cVihDrC)OnK!HKV{RB=XZ!^^0t zZzeN;X;-OhXb7efOB81^!C9%al!h@f>G#kzw zY3Eh5F;wG|M}N=2-+(IhOGga23@NH+-cHS1Ke&HFlOFwe>(fi@{9@}TnzQY2q?4CT zJCspHgXX=H@Wo%HUaMOS%5ZIzc6|m-saX~@Z*Be9gmdob3)6v&>_{;in+@lwc_<4o z>X+Oi<)W`rj|6P$W_6=}m}E;DwSY4tO>1b@Yk}Ez#ate{SI|ibXS(-<(f<3P>}W?j z+R=_)`dTI798@b3&H>d;I3Ira30;0B+e`uWm%j7?1MuOG{|hbkMM6qcMWQiO!-v7U?U6qN0oY~jMN($Lv>Hy&cXVL5UQiC_y4ygcJ93M`lf4`BT1_!MyVOgkXyX& z!9`!CzH65!1~4H^>>3?9dh5-r4~p-&f(4N1WAWW_NC&v!fmTHEW&W z@dNunuLrIJM&~!4f%G_}2jTGC#{R^yz2L8fcn!VF>zO&w({S07@XyNizu(oVQ_t+H zs`%DC57&uQqusUT@l2jqkDom|_t4?PKeQo#TEFt+`%*G*RV}Wo`^IQU0@j`})<3S& zd8pNzSk=xdppK1#zl|=SwKNBMFWmUp+PgejgBPy@u338@EkU1v!%wfZ$Ej1#jT)2Q zR}|%Si;M7=F1{Bj=kh!pyXBT2UDKad>+PdaXWs|rI_E4gme}M-R>`sqVf=)u(J%*u~BfJ0CVly2iGrqFWm5{mD?Y!!3)=e*|RY_<_Wm*spVTwoqBH6xo~%$ zhilh?)K|R_j&d&VsQ}_m)KW(vsd=ocG6WxZ%VS zJIfMI_sbiH1d!eh_pcIpXMcF(kO1_JaQ}+Pb1vPvQAi>cd0rje9kJwwBZ(Opmp zyJ@|<8;J`#b}i`M&709Tb|bN?uYBd%>+`(aw^2w7+w#0P{Pwpm`g7mE-+z5@v->JD zg`{&N*Cx3RqSKVAP4peKQGyeUD`?c}3}p>6S37*{*xP${`aqcjn?E=J_JZr9?*@Sl z=qNnjiz<=ubDM=E5-5tW*ZW0(hU?kS)oYfl?y1#=!3^Vdh~exqYIYPYhq2`dHZ({@ zjgT6Q3|&E^wrB6~@JP>2f72Tv3KnGgKkO(8w7cFWTE$^|b}kSobLIlsSv)G#PikunKos<7T*fskU)PX9u(CkH(10s45~ z!JZlHtOt-zFT5&>>PeBXZ}X5U@;rWa!H$ID$z<(5ts;T$9i6@Nq>u=qBAOfnl(E9w zL`;xH52|PgJv;rK`8rwlx;g`~4^&(;%U)k*4zB2d%Jc9?gFq6g&cwLrPnql=5kP_x zLP-&XPE}CGk}{QOEI=zfkb5N9r8J0_FRXl@3fhn zDM%qf5HzJ@t;37szGaztyd88C5n=CzLyxcAzUNOt&#v6Q9;8F3mv5b(_IHR>Pj3{G zNO|mQU;C96{=Asa+#zN0bVmX)D$)t$?MVAv4Walf|LG|PblC-#X{Z|!u#bwv?I7tU@)5g)Ir_)vdyTTk!0^?UclnBHog zz0P?Z)nG8nnP~KJGcx+nudgx9vZEbcSgq6aj=vGi+rYdDjGtd`ej4<%U_J$hIve{F z$FG9)8gPHBds_?>fa$I+^AsGa&SwGOt6%;08}qz;Tb_qEiBx{RBJ^}ol%JiRcAq+Q z=zBKg&o6!C2i{1<+Yy>BYxFcmKU=HXpK7)KY*jm}fVyW4>URNeUb{ZVOhI}C zZhB&Em+q-U?MHxX)+w9Kf&T+H{ol2${Ka3qI2J;Amq__$S)*)Lq?*d}_{c4{{K%UA zwC?$_F;nJuDe2878OdytXb{!9IBUe&B$za1jCtgJKmVsI>?{Ly&luDn0>(F1L}Wh$ zH++6|NZEccyEj%_oP7mucxE+7F;)-dc`?2gr2d+jvaCMSYW>s-f9|>G$Hr26NBv*52+P1f9LBA``EX$)BpWHYk1mX|E{eOEUsO-l#4#@;4 z$Kh93%!r0iesZIbx}S$1e9wCxS>ey_m!(f$atY(RMx5;4mB}T$>vGwiQQ19O6YrDk z8nH4wg6!I5Wo$Ib$e8)T`yct?C3gBiJ+L424Fg>7;QRV#CgIrYz`T6(Rq7*G!K1yK zMLqS@v-?HLH*6HrLd{H3gztO%+ZX-0_kr)=^*E(W@PI5>F;Z`Uf;9RKYQ?w0ZaKan7#`5<~;jV@4yCNcmb41wP%p)9h7C1s#^5t+_|YektohJ#QPzc z%ac@9CB_U(mSy6+%C22jYBrOE5sZpMMMUJ>x!EgL0kxHTshh^4ok1bl09DVQK_Ru< zg%m~T`7`8(#E^+qC#5C{L1lPoRIpaiAf!sjle9rPQixY4v*$#NtBLoQ_Uv4sd#Stj zQc#25CR}?t)mHAMUR9yzPrylI#EKsZ;*5x+5>r&-Vv^7)#ZnhiLu{2~Y`7t_of+|U z6&i(PLyLAU)V8IzI5E-~uG)oRi%XXJ%^MwBGR zWimG>BC#Xwydy3cx#s0p%FFlcky`T7p6c}M^mpc80DaY9wZ-m*K2YBVy>zhJ;?T>A zMXE0pMfIvdYKz=gCB!p7hxkx3s1Vx7GR$jK}Qu)j0 z&WQKBWo&pzMuvxE%-4E$`azup`-;s&vNP~Z-%>;OO-Q>o4~YV97Ptj~PNzIs6!8_C zg;bVt=F};A{>)D2C%^T=*;g2?iwSe`+Sd$AEQ0LXH7p%XGEyIrQrlvjk(XVvOU_J9 z%bCucn39?3Ki{*nEHl6VFmUz8A*n$8`pPMn<8K5V+gxq&6=#=Ex!isCpB&Ef>gvtZ z7MErE`tm84fBDYuI{Xj*{wuG(a_=6=JF_x3Gb3KDXs{9jl2VYes3gmr)UvurY>PQcZ3YQV5;XtIbRO==Z3&G7L=<$#X^ppl zUbQx))CT)4I5fTT`wMD$c*UzAjjatSE8#mc(2}*RyyrcCP`7sGEk#jXwHBmKr)+~)G`uZ0LO4emMk)){DR@M@mNM!{YJX1IHML>s#0|BW{M>p3tRT2Xr7 zz=^%>cD$x6)(T=vYj*Y_czqf(?_OAc=qcu4GvW@+{wRP&$bE8i^b>_VOeDtFy z*Y&4$?DeC+cKl7}wR7ym_pWMZS!aG?H&E@|VATQkIqJcY&>4rCtF@Sb&u(SVN2S3-d(+BE-1E43^ye6Uc-EeR|-G5*o#GhXG8>>ps!O(qh zPyoLCJlsZMOR{A|AZ>boC&uX8^qhI~dyiDW!QsXaRv3edBV~#2~I+94bSgCrUKuum4GmDOG0TLpi=g;WS5U!S}Df7_;n21_O z%_ScCI*94Q50p* zpJdAkO_3@^ylpTxvWL1GB1*;VtUxkUWyPG7ND*F>-R8t~{QA?wRq z+#t&v=|)r559*;oAc<6y=gy^`KO@7tA4pkf z(wbH3d0yT;Ioayj|2IGT*n>gCL={UqMb31dGb;so8761j<-ty#A52t}&MPice5Sa} z(+S*sa6X5E6@65;|2#vO2Ui)wEX&FP8jq|T!mL-Nu8%Fx$^oXQXZNexlig+18>&*j z`D?`TIm`fJhu17q&kWbtIJf&c&j M07*qoM6N<$f}q_QU;qFB diff --git a/test/reference/mask.base.argb32.ref.png b/test/reference/mask.base.argb32.ref.png index 3286ce6b73bb0b837527a1f5f45fe89d77eee761..7ee6b4536eee383f9f565b0feca9c6b612ad0070 100644 GIT binary patch delta 8438 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 PI}1`%(o*~+ZxjAM0h0Q> delta 8450 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 diff --git a/test/reference/mask.base.rgb24.ref.png b/test/reference/mask.base.rgb24.ref.png index edcabaf916f9694887b52e39909cc667273ebe65..b0ceb3522909a5ac1227ac7fdf0795f908b17bb9 100644 GIT binary patch literal 7044 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 Qa7hxNte_!ZBWD)+f4r_|Z2$lO literal 0 HcmV?d00001 diff --git a/test/reference/mask.mask.argb32.ref.png b/test/reference/mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2d740d41b75897dcf781a5497b57c5e0d9b4e9b2 GIT binary patch literal 8565 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 N002ovPDHLkV1nuv2IT+% literal 7007 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 diff --git a/test/reference/mesh-pattern-accuracy.argb32.ref.png b/test/reference/mesh-pattern-accuracy.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc19ff4f9dd5566a8f5694d790fdcee7f8a9d65 GIT binary patch literal 8086 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%0Ad? z4yu1{JsR-l{2%<1?*MtDW{SIr2=1S*O#Vjw}&+xo%@A=J|{$<+|0hUlz?@PgHZ zUI%<4G#jJyqML;DhfKa7t1OKxj6+#-c3s5vYdrgVq`_*ZmbHL;B zUJ{sMxLtA;4k|HjvDWmOZ1Y;VAZxPq)^dK?F@B* z*09l2#qM3ND85;-h5n5~(ANkGFx~$~Dqi{@!XE|VS;j)2A^jeLZ*fsN0_AJ|2Huw5bK z+xzZ)=Z&``Wga-<-;VB|T7V~Zy_Vjd1ChS-y^7H~mdcnT@#V?W5R=5-W%nd$Uj$Gi zm-J5Q;flW42!YlTR0)T2&1Sz|FQNbF68L0R1>j8Gjq>C|G%-2k9T(*6tbKat_fk6emlOMs;_Ifn3CKGKMr-+xF5~F4coIYT?(lBMEU%8y|pZb&Mgbg zTM|Y9;!WZHLS~O*&4Acj`l&KLvXFf27xnwUab|O_)LQW#d6Q;uzbf$Jk;+EI+X@ky z8PJOZFa;cDrt(JJfXOh%K;lVh5ofji_&O{6!l-(P8TmAG!!9~%D7xoaCNd50X(Eap zKrcg!sE#e4`@Us0s3Q_omLU~ZE|Yjhr9o2A---F#BpQgNAr_x6wtqxU5tby;!}KH) zdZ^TrDHaLx6XjKck!ku|sC7@XvJ_R&E&Fqln>S9N$@BNwicu2%*;Ah^iTqW4*vPN? zjX7l#leEwoK674CG#J6ZXM?mIsYyxsPwm(ix$(JJe7e1dkz!raKc1UI;PTeZ@?6SK zk%RlGMQr`ciodS&@)o$pEcf1rp~0TB)Y_F5O0G)^~BPJEsr! zxpJP&TC2pabL*V*wGyp!_KypGh6-fB+_Ni%nD(1XhLvhQ3#}aj)5n2x+5khNiG~vK zsZ5NpRkpc1`EL=}%#%DzKWL7xROMuqkXdDpIk=YohtFfSE};Vys;De3#nW62fQ>QX zFY~#$+b(D1p)!G_&v(flL>iZs#W!s)eq<~s{T}urc*kYeFLXy@LZM7tjmzLgzDlxr z8DH7Vquhwpr}@wnPxn%*cCt>zvezT90i&>B7qmOYVlg6A1M?W6&RAh;1Au8o%ISi) zeIzH#zydF}2#?`--$I-G7+2a$|DIj0NTB z5}Y2SW>Ch5?nKoszW%Yf}t#O5=ZWr1FUrBhAWe z)EO43lFha`oLza`GVnM+Ki=y-W#7soQRO+Plj+O>h=M23q_{|=2@4!Wy8MGtcY6y@F95_NUCNvmFdMg@g5_3FX1p@n?1G zX+*2A!khO`3~c{oG={gGStk~MjQ(Qzi%&}5OaFO`?l$q$e%orsE17(ZX!TcDr-*5% zY&Wl%B*fRh{Id&nkXfRT&q*;~eEv`R`w(!u5Lb-yb8Dx>;Ya-m%tdD&zDYJL>T2`+ z^Ld<~j&Gx6ZRZ`0Zw2^7wi<<6-qg2}AJlA|M+q6FwN1iA4!ccDjeB+DXFKIa6AZlUSSBUB=Tw%NvnCSDvAihY@(PF?~6@ a8xTqNnxVE+mj7+g4lvM#>C`>2kNRJ@pGw;R literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-accuracy.egl.argb32.ref.png b/test/reference/mesh-pattern-accuracy.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4b0a8461048ecca665f660bfdbe91dad884ad450 GIT binary patch literal 11042 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 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-accuracy.mask.argb32.ref.png b/test/reference/mesh-pattern-accuracy.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc19ff4f9dd5566a8f5694d790fdcee7f8a9d65 GIT binary patch literal 8086 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%0Ad? z4yu1{JsR-l{2%<1?*MtDW{SIr2=1S*O#Vjw}&+xo%@A=J|{$<+|0hUlz?@PgHZ zUI%<4G#jJyqML;DhfKa7t1OKxj6+#-c3s5vYdrgVq`_*ZmbHL;B zUJ{sMxLtA;4k|HjvDWmOZ1Y;VAZxPq)^dK?F@B* z*09l2#qM3ND85;-h5n5~(ANkGFx~$~Dqi{@!XE|VS;j)2A^jeLZ*fsN0_AJ|2Huw5bK z+xzZ)=Z&``Wga-<-;VB|T7V~Zy_Vjd1ChS-y^7H~mdcnT@#V?W5R=5-W%nd$Uj$Gi zm-J5Q;flW42!YlTR0)T2&1Sz|FQNbF68L0R1>j8Gjq>C|G%-2k9T(*6tbKat_fk6emlOMs;_Ifn3CKGKMr-+xF5~F4coIYT?(lBMEU%8y|pZb&Mgbg zTM|Y9;!WZHLS~O*&4Acj`l&KLvXFf27xnwUab|O_)LQW#d6Q;uzbf$Jk;+EI+X@ky z8PJOZFa;cDrt(JJfXOh%K;lVh5ofji_&O{6!l-(P8TmAG!!9~%D7xoaCNd50X(Eap zKrcg!sE#e4`@Us0s3Q_omLU~ZE|Yjhr9o2A---F#BpQgNAr_x6wtqxU5tby;!}KH) zdZ^TrDHaLx6XjKck!ku|sC7@XvJ_R&E&Fqln>S9N$@BNwicu2%*;Ah^iTqW4*vPN? zjX7l#leEwoK674CG#J6ZXM?mIsYyxsPwm(ix$(JJe7e1dkz!raKc1UI;PTeZ@?6SK zk%RlGMQr`ciodS&@)o$pEcf1rp~0TB)Y_F5O0G)^~BPJEsr! zxpJP&TC2pabL*V*wGyp!_KypGh6-fB+_Ni%nD(1XhLvhQ3#}aj)5n2x+5khNiG~vK zsZ5NpRkpc1`EL=}%#%DzKWL7xROMuqkXdDpIk=YohtFfSE};Vys;De3#nW62fQ>QX zFY~#$+b(D1p)!G_&v(flL>iZs#W!s)eq<~s{T}urc*kYeFLXy@LZM7tjmzLgzDlxr z8DH7Vquhwpr}@wnPxn%*cCt>zvezT90i&>B7qmOYVlg6A1M?W6&RAh;1Au8o%ISi) zeIzH#zydF}2#?`--$I-G7+2a$|DIj0NTB z5}Y2SW>Ch5?nKoszW%Yf}t#O5=ZWr1FUrBhAWe z)EO43lFha`oLza`GVnM+Ki=y-W#7soQRO+Plj+O>h=M23q_{|=2@4!Wy8MGtcY6y@F95_NUCNvmFdMg@g5_3FX1p@n?1G zX+*2A!khO`3~c{oG={gGStk~MjQ(Qzi%&}5OaFO`?l$q$e%orsE17(ZX!TcDr-*5% zY&Wl%B*fRh{Id&nkXfRT&q*;~eEv`R`w(!u5Lb-yb8Dx>;Ya-m%tdD&zDYJL>T2`+ z^Ld<~j&Gx6ZRZ`0Zw2^7wi<<6-qg2}AJlA|M+q6FwN1iA4!ccDjeB+DXFKIa6AZlUSSBUB=Tw%NvnCSDvAihY@(PF?~6@ a8xTqNnxVE+mj7+g4lvM#>C`>2kNRJ@pGw;R literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png b/test/reference/mesh-pattern-accuracy.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc19ff4f9dd5566a8f5694d790fdcee7f8a9d65 GIT binary patch literal 8086 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%0Ad? z4yu1{JsR-l{2%<1?*MtDW{SIr2=1S*O#Vjw}&+xo%@A=J|{$<+|0hUlz?@PgHZ zUI%<4G#jJyqML;DhfKa7t1OKxj6+#-c3s5vYdrgVq`_*ZmbHL;B zUJ{sMxLtA;4k|HjvDWmOZ1Y;VAZxPq)^dK?F@B* z*09l2#qM3ND85;-h5n5~(ANkGFx~$~Dqi{@!XE|VS;j)2A^jeLZ*fsN0_AJ|2Huw5bK z+xzZ)=Z&``Wga-<-;VB|T7V~Zy_Vjd1ChS-y^7H~mdcnT@#V?W5R=5-W%nd$Uj$Gi zm-J5Q;flW42!YlTR0)T2&1Sz|FQNbF68L0R1>j8Gjq>C|G%-2k9T(*6tbKat_fk6emlOMs;_Ifn3CKGKMr-+xF5~F4coIYT?(lBMEU%8y|pZb&Mgbg zTM|Y9;!WZHLS~O*&4Acj`l&KLvXFf27xnwUab|O_)LQW#d6Q;uzbf$Jk;+EI+X@ky z8PJOZFa;cDrt(JJfXOh%K;lVh5ofji_&O{6!l-(P8TmAG!!9~%D7xoaCNd50X(Eap zKrcg!sE#e4`@Us0s3Q_omLU~ZE|Yjhr9o2A---F#BpQgNAr_x6wtqxU5tby;!}KH) zdZ^TrDHaLx6XjKck!ku|sC7@XvJ_R&E&Fqln>S9N$@BNwicu2%*;Ah^iTqW4*vPN? zjX7l#leEwoK674CG#J6ZXM?mIsYyxsPwm(ix$(JJe7e1dkz!raKc1UI;PTeZ@?6SK zk%RlGMQr`ciodS&@)o$pEcf1rp~0TB)Y_F5O0G)^~BPJEsr! zxpJP&TC2pabL*V*wGyp!_KypGh6-fB+_Ni%nD(1XhLvhQ3#}aj)5n2x+5khNiG~vK zsZ5NpRkpc1`EL=}%#%DzKWL7xROMuqkXdDpIk=YohtFfSE};Vys;De3#nW62fQ>QX zFY~#$+b(D1p)!G_&v(flL>iZs#W!s)eq<~s{T}urc*kYeFLXy@LZM7tjmzLgzDlxr z8DH7Vquhwpr}@wnPxn%*cCt>zvezT90i&>B7qmOYVlg6A1M?W6&RAh;1Au8o%ISi) zeIzH#zydF}2#?`--$I-G7+2a$|DIj0NTB z5}Y2SW>Ch5?nKoszW%Yf}t#O5=ZWr1FUrBhAWe z)EO43lFha`oLza`GVnM+Ki=y-W#7soQRO+Plj+O>h=M23q_{|=2@4!Wy8MGtcY6y@F95_NUCNvmFdMg@g5_3FX1p@n?1G zX+*2A!khO`3~c{oG={gGStk~MjQ(Qzi%&}5OaFO`?l$q$e%orsE17(ZX!TcDr-*5% zY&Wl%B*fRh{Id&nkXfRT&q*;~eEv`R`w(!u5Lb-yb8Dx>;Ya-m%tdD&zDYJL>T2`+ z^Ld<~j&Gx6ZRZ`0Zw2^7wi<<6-qg2}AJlA|M+q6FwN1iA4!ccDjeB+DXFKIa6AZlUSSBUB=Tw%NvnCSDvAihY@(PF?~6@ a8xTqNnxVE+mj7+g4lvM#>C`>2kNRJ@pGw;R literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-accuracy.rgb24.ref.png b/test/reference/mesh-pattern-accuracy.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc19ff4f9dd5566a8f5694d790fdcee7f8a9d65 GIT binary patch literal 8086 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%0Ad? z4yu1{JsR-l{2%<1?*MtDW{SIr2=1S*O#Vjw}&+xo%@A=J|{$<+|0hUlz?@PgHZ zUI%<4G#jJyqML;DhfKa7t1OKxj6+#-c3s5vYdrgVq`_*ZmbHL;B zUJ{sMxLtA;4k|HjvDWmOZ1Y;VAZxPq)^dK?F@B* z*09l2#qM3ND85;-h5n5~(ANkGFx~$~Dqi{@!XE|VS;j)2A^jeLZ*fsN0_AJ|2Huw5bK z+xzZ)=Z&``Wga-<-;VB|T7V~Zy_Vjd1ChS-y^7H~mdcnT@#V?W5R=5-W%nd$Uj$Gi zm-J5Q;flW42!YlTR0)T2&1Sz|FQNbF68L0R1>j8Gjq>C|G%-2k9T(*6tbKat_fk6emlOMs;_Ifn3CKGKMr-+xF5~F4coIYT?(lBMEU%8y|pZb&Mgbg zTM|Y9;!WZHLS~O*&4Acj`l&KLvXFf27xnwUab|O_)LQW#d6Q;uzbf$Jk;+EI+X@ky z8PJOZFa;cDrt(JJfXOh%K;lVh5ofji_&O{6!l-(P8TmAG!!9~%D7xoaCNd50X(Eap zKrcg!sE#e4`@Us0s3Q_omLU~ZE|Yjhr9o2A---F#BpQgNAr_x6wtqxU5tby;!}KH) zdZ^TrDHaLx6XjKck!ku|sC7@XvJ_R&E&Fqln>S9N$@BNwicu2%*;Ah^iTqW4*vPN? zjX7l#leEwoK674CG#J6ZXM?mIsYyxsPwm(ix$(JJe7e1dkz!raKc1UI;PTeZ@?6SK zk%RlGMQr`ciodS&@)o$pEcf1rp~0TB)Y_F5O0G)^~BPJEsr! zxpJP&TC2pabL*V*wGyp!_KypGh6-fB+_Ni%nD(1XhLvhQ3#}aj)5n2x+5khNiG~vK zsZ5NpRkpc1`EL=}%#%DzKWL7xROMuqkXdDpIk=YohtFfSE};Vys;De3#nW62fQ>QX zFY~#$+b(D1p)!G_&v(flL>iZs#W!s)eq<~s{T}urc*kYeFLXy@LZM7tjmzLgzDlxr z8DH7Vquhwpr}@wnPxn%*cCt>zvezT90i&>B7qmOYVlg6A1M?W6&RAh;1Au8o%ISi) zeIzH#zydF}2#?`--$I-G7+2a$|DIj0NTB z5}Y2SW>Ch5?nKoszW%Yf}t#O5=ZWr1FUrBhAWe z)EO43lFha`oLza`GVnM+Ki=y-W#7soQRO+Plj+O>h=M23q_{|=2@4!Wy8MGtcY6y@F95_NUCNvmFdMg@g5_3FX1p@n?1G zX+*2A!khO`3~c{oG={gGStk~MjQ(Qzi%&}5OaFO`?l$q$e%orsE17(ZX!TcDr-*5% zY&Wl%B*fRh{Id&nkXfRT&q*;~eEv`R`w(!u5Lb-yb8Dx>;Ya-m%tdD&zDYJL>T2`+ z^Ld<~j&Gx6ZRZ`0Zw2^7wi<<6-qg2}AJlA|M+q6FwN1iA4!ccDjeB+DXFKIa6AZlUSSBUB=Tw%NvnCSDvAihY@(PF?~6@ a8xTqNnxVE+mj7+g4lvM#>C`>2kNRJ@pGw;R literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-conical.argb32.ref.png b/test/reference/mesh-pattern-conical.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dc21dc899cd85da87164fe6af949a36aa74043 GIT binary patch literal 8655 zcmV;=Au!&FP)2~4T=qUuq6o^NJ9cP5qz*jLlUCI zeh5)eR7hwaB6dhOM2HW;ZV3304;2l0v56*;2;Ct84N>%^u>)x^w2*)gX)%y)NI*%z zs=9lvIp&yo7<0@u_c`ZQ-Kx4(Wgv^qy6fzZbN2e}|M;G3-_%;;|8H-8llS@!{J*;8 z_x8^xJ`Wl0;O@aere?07aOL4a`?mM;oxca*62CO)2u~nE71Hg&{mmX6q+dHxw(oy; z-ut<|d*Bj3>%4>~P=!qpsF32G6*4Gfnb?{3*Hf_s39AqX&N2N$5d1su(&@b8;1Zu4 zyaWRis<1(ope9sUfm^wy^Iyl5oHG{eEP-JXKSKJ)-Im*rzq9A{4uVU3Jdo{z2quUi zx9pteFw%NYZhmOBA9r?w31)FnVZn}mY!y?|kAl*E@|`-ncLZGGhaf}FG-#OxEVG2- zL|7(jF0>rh`oO{Y9d4Bg1Un!FGQ$?^fQB{HU_o~fR7pP!SK2>+@#px0!6m*M?u1QP zge;h_2u)ZXD6VTw5J;grpgv5I+_m{r%-LBOX$r+9%#Z~u$bub6!wjpW?*pZM=0%?A ziv*YWF37@>$-)t^`YqGo5G2CFA*>!BZml&x8dcqe;SzIp2{UNef)%VmLmif3tt-(M z^ol9zJ8A#ng`Mn+0hf3=gw`@yXnxCNVTqdv7h!=Sh_DK6n5U2;KE$t_etW0pyZ{R$ z9nP-xW0^Rrb%+9LSR(xeP}*<4fKz?};1b{D?kr#pWNxZ0ZYCTdHxo)6JGCVK%Q`X@ z7Tie3-Kl%Tt~lvjXjsA;=J;Bdn}C6~E=Ip!mGoiS7vJt#zb$ZyZwR50;TD{eY8g09 zwMm!T6Jd>5(Q_2A$Wdy4WA(hb#IW#gHYv`jS(vKZtaVau%LANKP9FlL{kQi5T;hY_ z(bkFAI^k0xXGFUChIbqI?kR4_EzR-4(xkXF#RuuUIu62AXNd(eNt5(IJ!Sbi+W&ZW z!6iNbS&$rB%aqI}l*|S#(=r)aMujXCVTrvX+k_TT)qwjq$8k0xsQ8i88%}#1okc2g$!zJYAiX-kZBR!!#edoa?5-b9lEhB*}1+rnJ>twCV zZERhH1ym5>PP)*%Zasu8m`$4_8xSWPzYRN_*cs0`99x80tykKx&N4kTCXjfQn6hSg;M&yhP z>jT|YA;*E=)Z=O3y9>p&s2^^(=z@@LvbGUP=dds&Hbgg&sgXgAP0)%O(s=*2qY8>D zrXNgS`EvW(7Y6Q6lQIa>kR0F)Nu=B#@_R+7nVNYLp<__fC|X^B>Uo@Sp&PP9PPfs4 z0O8u4T8o}idtj<^x;gh^16g-!6%n+;)N5IC-Ao%bp=OGxn0`b0-7mGTe=*=Pq=3_K zCQ?IpnTwDzbs|{Z3^O=N3B`>-0X6p?$=#fhL`Yry-1?R}!F&E*TYt#x3r4bGZpQ*lA|F4G|h9Jnoqd)^#Tm z`AWoxCZVp=S{)fdO>T@-IOR5M^VC{H6KdpWa{^Sf@zQpn71T`Eyn})!3TRUOru3hG ztNr=61@2qJwKZf#8e$W>6-h`XCoGes6SUlOw35l0ClfWd(|UVLL2Y>?qyi~&w=~uB zBm3n%K7*+vYvhW6rp_xHB({8@+N2_N?F4HxMQRdFqL{v%{^RG{x4d<585VLQw=OPM zRaa6yA-e9CjAan^jAWh&DPvQVFrh~MzeQWAC&To%a08X@>BJjtEO11Kln3cs3#}RA zRVpwm&bqHT8h&}sxpgBs~K<3u!a$AKg5Y&ACpz885O~#JiSvuwBfTiQpMy88v#A5$Z8<$)~Yt9EK zRI_^DPN~hh?!GJi`(J5)^-Y8O9?~6HP)lSGj|}Zp+-$8*wr<=Bmb>wKs7;|b?{SXe zvQD*^1T}8TRXr16Q}C(66hqDWUK=@e!}Ps{w{xvM$put6npUJDb;$>DoZNC{FVd3K zBsH0ScltM0>KiL|coTkno6?&ES#*~nN%V&dh!b$5J2abv(b%?Y*lFM9*- z-rhQRrAJ=zG$k6pG}c_2)=NH`)=Rz?YdIItW?gPb&2lK#wI(%5-EtAtA4;G8x%ScL z1viY;Zba9ub#itBlE}4F>yorSvZ}dj?Z_-b%hYgu=je-*-8NBEAwyKDc1G1cooOA) z7&6fM(-gAzGC|-;E{W2pLTS`RYt9v|iyY*xwPpo5wdQh5Qa9PFJzo7k0`3!}3=LU2 zxKng#!Z*TeBR8bo7_2|Xb(e(Zx*Ow&NP}|>z{bFEjgl+g*ffehYx|MJEnQ!J(6!cj z#^+jFtW>L8zBVdoHCyu`9BMYSM%KYA%OP^8Sdt=A6ZY}+(?9iKg}@`=GHj=jX2%!c z&iIhR!4aXu5DyWCG_sH@CX~#Q&(2*7mp6~WJjgn=yQzMdy1o+KB$-Tg?r6F)V%8;< zyQ~QnEiKoihE$Q#a$U3_bYE!U~6wp~7+w97Z>3Oq~fM9rJ{sMgz!M zSKGY~6^<4$K{$#v#1<(@>Y6okb;C?jpX94y*pZ}EsUk;`QmLOzpZetOqKf!gOC>cScLIIZ=zQRvqJ0F%Vl9axmPD7l zH?_;eE{R?8J}@OIS&E6Ra)=z3E!i&ls8&UepG|-JW9?@i2X_Z4LP0`W^xzEWDjVSL zMTv)^yV(a;ugOwIy=NDVlNuem6;!xH=T~}advDm>dY4TS>dTqv{Wb69LQT{}UCb7G z3=My;mt52wTv??S65JX3LZ-6xChCxWNV&V|=KgPkB| zBQG~1J$q0aciz7fM7U;N5^8i!OxQpLU^zSH^PoQF^SSn-N?Nbpdkvt9sMnj9T!h0+ zx2&Qn-AMIG2yKy)ge=8GlawSTqN_YLu_RT*4DEaLad5v#%E*RP7<&(|v-$?65aV!y zXX8Ys3}&zkRc;NArdrpD1+y=!gRGW%S3 zCfv7 zJFJduM1~ZpiF6Z@22+Qw!?nnq+vFD4D9a3i4Qi(4UVimC8Nses5u;`p3*x*h8S@9_ ztllG=9ipq7Tx)LCs)#mG5nbdsghkY-o9s!{s9B2dS1CyxSzG04p>6Wo0h?2k-OL^V z=ZQ#)Tx0~tncY2q=dzLqqLV3}+=dIO_j>`ocar-O#3iituD`9Z(AO8cwVs`O1AWaU zX(4OVx=3BKCQ2l@YGQ9v z4HYSdIw@yYXbZZ?{`vH+FSp-3!TIM~VMPY71UBv4&7L$-8w3a0dj805>UUPP0daI% z`s$`pKQOA)SmxI2Dz6RHq8_kI-cgGXdCckSMRt+HL`8~XcXDk~FR~ZfMXrUmawO44 zab8WTbb@trl}Wt>yGFZFoc|N;Tt9H<+qIS^YIZ-Q_QF<>8tk?cXl@g!k@3xKsB{iz zdl3dj*yftyoR;={ttK>4SDuc9cIi&)NReKcsL0WzitJ75CPxxAG)Y}VMKpWZrHW{y zu2P&}qYQ$L(!?(Ew9rO;m=)JeHM)phcZA{wL7R?S9Q(_+)4I>3WX@wo>Ni>Im@%%o z2Z!eM1BlNV#?Vjae2pR;&GarGpw((Vy}LWLy-IcKTl&5@8}Pd!{ODZ}Vck;P0f;WV30aHt#c{6T8{E?`1Ie620I!Vgy`pn^iAkF~Z62o)xc=Ij6qp;Pj6Y1c&b%#fhC^w`3%DYpvA9BZEf+pS?#{qb9M0 zJ9}L`7sI;Sk`f-Oz9f604Qh>Y31taaC#BfNp_p(q%EI0#o9N)R$l*_0*dH;~fhnI0 zhB|^2#%S@hfGG5KF%J2@I<4N`8ZaD2i_7p8$tr^@n2mb!@i}Ilf0sHBYd{<{ISop)HUN znhP?n^2>2B5HqQ70S(H--rdFuev4u=lsi0ZZ)g+XPEgUBT`V&GX{U#kpS;e7r_1$CSFQ0Giyk`Qp zydJnWc=YwR+tDQU*c2#gKS@u zjNQ0{WT;WChwcS-ctRh1`5#J#(68b08qed`6F7`YPuP9->c7Di?*u%Md7xavXM5Nm ziTDZ5pQqD{T@l<<&4i$arYsa!r`P&^4Ndt=1Pop=vg->Cmsn@_Y|M6YWUSo-o zzOv}oZc0(IfzjYFE^sw2)_Do+asI`)#4o=Zcc6w}H8M`hA0j@0YZzATeQ+c`gTuTf z!`}@h2th#g*kJ@H7mw8BNJTHIh+O^Pf1tqOU!rzyKxE8F@mJAL9q_q;yCpSJ-Z~m z-E$vYdWK|}QZ@IajsCGaFMo^UB@)jc)OZa=)|+p41wKfLC3ATx(7E}@G2p+G^{(Ua)@SNx(4Xw#*g2cYMpG* zMsaZKrzCjU5Hp= zSYm+cw-hQCqr_!}3+&-}U6{a~P0l)~jbo298fr~pm4n(-H~B|Rbq(bH2kh1oAMzST z;d|m$jz(MsMzikqs|Nuk3q{9r1rjxXvnmEEsPyHm3jVJBreNeREU$etN>iF*%4Yp| zoidDKh_M;X*g{{vzf7K*TPd_KjxFTok9q*Pi@^PesqV%)4MJQ&gW&iBYNx|mjTSB@ z2d_D|Xv!jJfOEy|>Z`JRtNB~pqa8-ceTj!B_0Wt0NxNK8+UFMiHiwm!q+P#h0++1& z0gTbLcD}xU5+Qz{q+rGc)M#|)Fumt{raG}30cC(s!Kj^|A4h~p2VIP1 zikKD$Ev)jYtg#|68LFE9qUY(wyWoZizHm~(C}D)|$%<#Ozn1l{xT*RhXlLh+!nquw zufw>ro{)~uxJ?eu={&mk&rYmg_j4cI%Z=YiNU+<2T?>L`Qr6I#I~Sc?{t()(WWkI> z$$}bJb#-y{P(Z`-M~e1*tq6x;(j&v(v!Km*mF~a?Zk&et= z+iE=~G~;lgY4>HGcBrxlRZISB21OW(tFTK~oc5@yuvpJrt078K#Ar(T%&OnB7-)Yp zPBn%4hE*QM7Qw_b90%Is>kcgLw>Z-y_Lnd&&jjvARkzk*aSOaMa=-X>?&FupE%a7# z7Vo1>uB}Z*it$uQK<0Yb_JdVX`c?Rcag8+)yPRb=@%O?7G-Fk+PS9BXrCfh-HJY+& z4@4FoZ2+>#16rieO!3!$lz6M|A{Y7-nvo-segxb#GLqroH|ts0t5alLqHJ_$y@c1d z*rSMacB81EPsR{IwdRkOgCpblN3nBp@Bu}58ac4hU@@N3*@?!2E(N6;%cqy)qa(I% zisyPoS%TWC9o#@8ljT~ND%L~u5}t93*y1UnJqqr78$X}!XJ;cna{F(QyKnLFFA*!B zhEp4wpXGMuYe(IFLHGxAR^ zuYJNhKZ~8leJEKwvN>NtxrEVhYslj>_UK%L;BD*Z7M$0fHc~LS#=!^+%OtcGNtt_n z7t%F?X1{P8{JVh?HUDT-pcF$h7FkG%cskhWna3$uyU7y(EuM>Jk@-Jr3?;jenGSM{JS4Z-#lUAIONxe3Vem?wHiq z>?8=7X#V?^j^?2Et<55R3wFN7*;~}HHfV)rtj24`5jPDIT}ui|`|+%w>S?lP$Pr$X zaVW`~eSs_)bt*YL7CWhA?8;(n+Oz0?(w+^@t#zN%*YKcuavU0|tP5?hv&^9wtimx> zRG|4M+^ZDr$UMKT6SWeNp@i;`2+;fw=bpa? zvcs@^W2d8LC`@yalUj*PIN4c*rQy9iH&*yW)}Qn?w-`lx5_^ow%mcEc?Cq@X#JABh znT&M5$>5#=?vstbmwKnrqWo+jA2-jYz$rJ3T}fcM=ek~+G`G;7DM8J%T(99>W!2cD zV5q_lCH6W3o~S0{qRK^p9SIO{+2oR4sJs|!$jGTfpP8ReQ26z#E?z;_3K z_ddA?;JWB;3nq^YnJzk}CK@0@i3&7@TC371`O{_;WlW76oD;M_<_Gr_7vP4SF0oHj zQ)zRZPv9KGY8)S3k53oH)8mnp?D2G)YK&9I!_y6Xdb{}db-?{p<8P(2U>e@-m@20c z$h}RJa)=I6=1{7X{0jypimG0uWs3BJ11xjE9;;Zd!S1%?Vxra+=lv3>8q!l#DN#{0 zr}F)){-QHcG0s4bBLlW+LQmm(fddrd*nK}$H3vko^Wu-WT)*`YoqpDWdi5b z`)6Eh17qM)b-tZF%PKwpsG&PO6_=w^;l-WHz~@~O2J3~y68iD+L~rDMj~t&_ z!eBS;uEwj6!Rv&mr?vW@xTkl7XTRK5S(>V4mgM#|=4 z^e|K?xqnm85qqU~eO3BbOCQk0ORiCMnQ=rzV~G)iXk54IWkKk!xfqr7kyU?L?2NEy zeRkVSmhlyb1ETT$&wbft-#onTA-7d{ZOY4hn@9YHSMPQE^{SL;AbB-v(G%|lmh~*8 zO0VtriQV|}z2RG;V)fd~rucBS5VWTi1CLAZP@1v)<>mV8n{gqpL2GXFr7`$R}UXB8clcb9nU29 zY;eG@H2zXLYv3|Pmj)?Ab#g6IY@fO~#^UgK$%d^~DN34<5aMZ(d&cg0pjfHy3BFyXK-Z#Q64S>+KD|5vd91 zb)a2$1jiWZ*Zjrfpk@wkIv=BPG>mE@bcOhH>E{Nz6AdP&db}^gZ4b&KHvDJFjyk4@$cGmF zonfu*=(_W+)YE8Te&ZXEdn0hbZ#DjGItK;k3)S23b^E90!Ktxzcf@NNJ?~Kw^u#SQ=@LE_Rv|QRe9srZW|#Z8u;LO zkAow6=o2{KmWU5SaX!R#QytySC8#kCu*ZH?4r4voqr+?OTmJCX)5pPAJ)hp*1UTUL z8!sha4yC#HjLOps&(110`ynM?LtY~3o$+;NciS=Fqc|HrF6svfcI%`#x6>nR)&qt2 z%k%Jex9xK$=#96uW-b1wUV2_?ZxS5vN+WqW7v~mJ(X;144CM1^r^CmM+fba>_G8V1 zhMPNX6er^f-zh$nu-ws7uR(3-u07D*2oWh#l9nEv>^3;u-1LkX z_q5jM6(Dbc+FJw%d{yJisV~yF&Skl<+f9kuCOhq4#K#T9k;L?o{;lZfr{@cHHK>(X z)8VeoqMR6OShDgo20A*Hx@h-qj?XXZ`JZo%z*__de6aDQgjyerc7qj4rcSw=`5N)u zBk63gHdXaQXfwWB#kDD$YvJ97;=JSJLqG-7(^^w>h}xvV4Xp9s-}33db#TBpG=Seu z6bpk5WEQgO9VF}B$`Tf;@#ATy!tRS$V~SX#p%gcXr3DfT42p3C!9Au`bAvPKjm^4> zrSV_i&WXQWaK3$GOK7tOh+Pe zc6|fcy{M|AwvWgV4dxah)yEDJvzr!c*xXt-f|8vV+<&)ej>w_~QB8_}O>j1bK(R`S$S! z@W~V_HiOYV`M42Y@3AX4igP#DN2~O;`16SRRGcAjf!6p3@7$>Y>0SG;kUyUK|0-(| zy`wP+l=J?5x~BqvxZC-^(fY9(uh3`QSK}$D@8R0`*t>H&?;g0Z{XjZN++#N%bZ~oz zIl&qSPse}n+xXsh`7GW8aP#)<>2?0EW13*~(MPVJjhElUcm5uOd;RS#{O3jQ+V+f< h5q~tcKeE(-{|nBljT@_Coy7nE002ovPDHLkV1iEZ1SbFh literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-conical.egl.argb32.ref.png b/test/reference/mesh-pattern-conical.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8db45c01c62f6c2ee69ef5eee06ce8e7d80d7e3a GIT binary patch literal 8963 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 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-conical.mask.argb32.ref.png b/test/reference/mesh-pattern-conical.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dc21dc899cd85da87164fe6af949a36aa74043 GIT binary patch literal 8655 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 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-conical.mask.rgb24.ref.png b/test/reference/mesh-pattern-conical.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dc21dc899cd85da87164fe6af949a36aa74043 GIT binary patch literal 8655 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 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-conical.rgb24.ref.png b/test/reference/mesh-pattern-conical.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dc21dc899cd85da87164fe6af949a36aa74043 GIT binary patch literal 8655 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 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-control-points.argb32.ref.png b/test/reference/mesh-pattern-control-points.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..841fc3ef9e49adb7c87f3e39761cf4670ba64772 GIT binary patch literal 10665 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 P00000NkvXXu0mjfhJ8Lw literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-control-points.egl.argb32.ref.png b/test/reference/mesh-pattern-control-points.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9533e90635a232b6f59d8edfe8a11e5e935d82e3 GIT binary patch literal 11771 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 P00000NkvXXu0mjfhJ8Lw literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-control-points.mask.rgb24.ref.png b/test/reference/mesh-pattern-control-points.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..841fc3ef9e49adb7c87f3e39761cf4670ba64772 GIT binary patch literal 10665 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 P00000NkvXXu0mjfhJ8Lw literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-control-points.rgb24.ref.png b/test/reference/mesh-pattern-control-points.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..841fc3ef9e49adb7c87f3e39761cf4670ba64772 GIT binary patch literal 10665 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 P00000NkvXXu0mjfhJ8Lw literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-fold.argb32.ref.png b/test/reference/mesh-pattern-fold.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6275b82d813575ddb9bcdf0f383eb1708e76597b GIT binary patch literal 52980 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 Eg3^B~RsaA1 literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-overlap.mask.argb32.ref.png b/test/reference/mesh-pattern-overlap.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1394c9ec5afd310d543e57a6a5abf58641ae7259 GIT binary patch literal 9129 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 R#)JR>002ovPDHLkV1m{8J=*{P literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-transformed.egl.argb32.ref.png b/test/reference/mesh-pattern-transformed.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b4dcde2c597cfe639eb242529388d4674673f8a5 GIT binary patch literal 14785 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 b7PjP{OG}6VH)1`|00000NkvXXu0mjfXIylm literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-transformed.mask.argb32.ref.png b/test/reference/mesh-pattern-transformed.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa482f529fefe4df70a8ef2c0e16ee842345135 GIT binary patch literal 14463 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 R#)JR>002ovPDHLkV1m{8J=*{P literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-transformed.mask.rgb24.ref.png b/test/reference/mesh-pattern-transformed.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa482f529fefe4df70a8ef2c0e16ee842345135 GIT binary patch literal 14463 zcmV-_IDp5AP)F_P%4x_3d+HY>1671!M3PAzQL6-z{0%GB((5 zaRNBtq9MG#?s0q3@QU~Cp3Wyqe9i9uXE9D9Hq?SR z!C2TAgdrA2gB-CyUUJG1jnOK+WRTUHUb7nwS3hs>Smts;j#cgnI?wovySG1xv0
    e&YgeJ{5#_o5Q;P*1g*w#QlrdH|z`ghJ9gg>>GARUl`6lJS=B#2(MEv zroG&kL&a0_sexjtXf>43H$HOjbgcTXxn%dx+Rp8E0;b)UJoRqhb7AE8NA7;XiU&YD zK!X-&bBfk+Y9WZBdqBt`r>vrJ*f#?=(M(oii6yJ>3S)SMSGZ(|RzG&zwGaA^8ZQ0* z5A5FM9=`FByS?%DWpjHy@b)+X)9yHy20GV&c(0$NcBl=p5Ke6fJ36MV z;~b_j2)W4yj4%P@TMabeVuu$MX3;8^qxZ-a-}Cxt=o@@n`_kU5FYGw6k9NCu`r3fD z`*n{${-<+6?m_MbI@*DDpaoi>HgR+4kjn`YMvyYfA)^ccM8t#+#1bJwJi?8Du$l)k z&fO?ecZ9K%0e0Aawf$-l7PUle(Bils%mukOxjX2bz|=Pj;eZiN_$gY)P4neYIol=7 z2n@tE+rcRGh-_*{L44UasvaE7D1ceikMwr(EujwNV&fBH}E za?_tWUdGuPx#qvz%{CSAP|VwJ9R#SxdHjQKc+~Ev!aaY&g4KWx&;Tcvao#RiN6VJs zP~{lGdB^||pa>KNph|$iqeoDsqC{Cq6d_UNG2i2o$sBZH0eon+&uqEsTX)w7BFF)q ziJOU`I(&4P0K$*ow)d?M**)KP{fW>SxM^GTIAEA&%{YSq473Rvo6rG)@zcXU_COC% zgdihS5|I$8aV`p!Q{gHiOy+P-+Tn6+KDAQXyFeQ)gj{kD6) z?*Ef$9Rm#Jum-aMBRe&;GvHw$NCORK6EOx5RVdp+2PlI8aGtUKgd#w2;$~jZ0mlO5 z1TRh;|6@50$sL3-z=<9(h<>Pe00G^ALTr7GL*0Wa6;Orq7q$2V=nTXxWo`Q2Fn~0J z8O<>-%*+f%yVHV2D_WV=q3$WjLBa}hRct5+b8^gTY7^#@!7REjtE_!zay)TMd!q}Yw4|v}ww2bSh z7Dkor{`hUD-r=W?XLM#GSO3uNP&N}iTLAS#BoVRou!2yHpvH)hl~5=MLKO>LMBDp@FF5umbFQQoXhAI0!q}FwgtIr(s8ned&S(~+ zT47XRHk*|T%Q!}<9s3UY4!`k{d&fVKyZb^Ltd+6MY6Nkndv)rW+@1-tks69;;)YWL z!G_{7jH4M~a06Sq9P`a^Lm7Nv4og{%>t^LfQ+#Q+5gjItoLwUoDh z);7`uh!re>K@EEuFtNtkC7vI}b2rer_M^MkKW5K-gmS92(!kK+aVPX_{Vc)`bq~#o z4IZQwO+KMRGr_7Iy>oy@&FT<3%}`cuCSpYC(XiEqZEN%EBqG)-ZIY z(Q}mM6D68ZqK3PUB2aVLI(GRa-{zrsmfEgaw8Q9*!H!tv2xAx+V;NcGoe^#E>DXcQ3IOEEqvBe${A+i zK9;a?Y^yH4H}(a+aTHt(OqD=V>Jc==T?F*T!^n!$G8^y_=i`SQEH;ZF-uW0a|=V#vZwqhx^FC5+fQ zSzB{wtXWng;w&mmA_0gd3fM+g!M9wu`-~Uw9ouw1so%>6Lmi<9TdR4#`~(b5Yi1y6 zE?e^gw6az%^0B}85o@9sT(A;TR3ZyiR!PB8EI7*Q8{YEDa{T0Ff63$q`?R)rZg~3M znxC$ zYD;Zh^g8sp+PI$DsG70S8jo~O8_rZ&E3@JwfBARXBKI;E4Fe^GfgvSRRC$$SdsKP- z#6|D@UmkditKeliNl5eMfJm6h z81Ausc?2N0aEAL}rwk1B1$`M-GyB5VylMB?CUsALi5s84ch&2jr(N+3Ssh-( ziUy34t>U3z0{^N%wRB)6I?9Rz5aX>VmCCju_QqnBp&APXV_GFEtZE!#u=1&$>!>gQ&0y zqpZRPxi&?DCKJFr)hrx~+&vHL@cQ}}yspFNQHK{T%;w8#9UioC(aU3?`=}rI#CtxSksDw2*0Q|eZNGM(e(Q`!Ui*R@yS%6OuwEWzJ!c7aui<1_hjq*h zXa_qve5-B@H`}=l6Q?K;v{|4*r&wco(yR|F5oIPTS*e*^Wfq1shUc&S z;dczS7w|dvJdq*q``_O1XFHoa>;w+lHDB{|-1W(v6S?6l_SSI4P%0)d(!y;h9>Ip& zH7w;B8yqT!qm*Z;nF?c=!XZ+oXaWX@sW6@+YpZ^aL+%AS*Z!N`>%a1KU z9l@xfw8c;Zv|X?oDRFU)0CSlN<11323I&2T;X+a@n2D8EAVsDzDfyv;S7ny2Gz%(- zG|CWO4}9r6w5e<*L;u;Q-enel`#<~YgQfoHCl79~&)PpY0ne+y{<3rSNbf4SHCdue zK38ywQ6^HN$S4Dj(4)g5WgBdynl8FA3?ibH%w>`ba5WvG$BrwqeD78#TUnJAnn`7< zlFABW&yA!c8H5^|oB<`%eCq)zug5dv%<+qj*QQwHm8k_05kth9^7ZhOgaQ z!$&MfjS(Z9V^jUWWp}c50u~rlq>+3;SZ(QSniMu4xS@=)k|(%;0oJJ7{MnD}{?#wq zJJ(aYcj#RE3%jrVOE;PZfF_JAkI;jnd2P{yiKl{rPMH^+u!5tgg1{=&%-tQ@cE%#$ z6ai3BvdUOw(S{LSbXlb-&58_G5&aHNe6oxR#7_ElC2Dm(D$uA40<5{y# z%h$C{S;}Nq10rR%MbCJNse4c`(u6_KaxZQ@u3`Zr5IR)OwghpKD=@z_fPgXsG%X_z z09DNxycaBxf(Mc2feN^YB!aa939Pj_01kxJOzD}PcNh)N`SwSi(+7I0-0;`-*42X^ zG&!g4F;iK<U;nadWQa znm^hN+DwCU8$Kq3GsGvefCpXXqK#;2&@~SeU9g}F9yGzjOz>a}j+mkM#@^T)g3By8 zXg-dM{?6;p=>$(VIBPp)Uc-+xm04LFB}5^b&rmWna-txHlQbNtu?m%p#UeSpDi9usjg!#I2?w;c(N;OIY z5JY3FJ`qzEbeTyu&QarHdhdrNU|Z^A9R&%i0t)8Ha0wNo@Dx-FVA0^sdBNPM_V@SV zdw0*#1Wy+_+>}{in`<+l*S5eCmIVPrsf<@P1#bjg$ijl((F7WZ4p_>5x*HBJ?F@tmKlJWtWjd98XS?39rFPUqOy}l zw3$zrvs$H74Y?o}W-~2}X1QarvDo-}g6qP*aBUD7&b}O*)=7E{>%=IUoBwx!cJ(r%Xt3|b*t!vZ6_h0qf^pU@Sj7dD}sw)#E zR+2#^@S8WiHOdFQ^r=q?B8ddTxI(wQ_dTm29Z95HxE}L_FJ7HNt%f94=LbLX z+u;_5SdisGKK#+2pK1w9hgoX9~zhdJAy|Khsty$QGx zEINraj_6Nqtr{936lpxH6az+JW3FIDYVf@ZISQi}%QAPC2t$h5V8w6~(@5H;Uv$v2 zs#V%fc*5-9KjB<5E3SFSZti=ePyQinDiX8E;VU(ng?w5$WmECUMz4>6Zxay~z-$`= zXv9)$7&;0_@<0Z15V({c9$}%{NUlt^RJpu^4c_4f_uGH^^%BpE8JFvFyu#Co}K!e=wXd-WZ;X^O~ zwLiN55AINI__@70xHdlCRE%=LqFiRdS&ct^D_GPPF7TO%fC-MNfwq=%QFW+(My0`F zhZLx!DwU~H>ERhAWhp81u+&;%rYu!OTO}7u6|z8;EWi`L`SWjk;pWTD;<~s0#u-oi zzARV`lA!@2maW!loNHDPHu%B@am%}cnLr~^EFy~_;AVy5wxMN_#kojXp$sFuW26Bi z4KXzrNYcvzS60EyunDvDf|*b-0}9@9VOb(uEyiYL-W{~k{mt*(aKjz~bwC8PZ1 zu9?dm#}++DaPh5kzWvc*9u$82D?j?@U-A;Ms_v+&!OL4(juu5v_>~Wi-UM%X>BUG1 z7>m^e5GAJQqQX*9VHssg50=)Fq!QR6?SB1Zad#&0eU;PQ59|7$eO;_AR_}coN2vAQ zdMx9JY(18qe^P>GODge=b>uqmKnuw$&nY7EUxMBqZOftbFZ@T5yB$EtU zf?;;alP>LqXh91gX}7%lJz)%^U@MWZ$9>7g2@7YIbwcp>zW;++HXN=jOYm`zzc^_s z7wUg}^p&4%ruRB>-F0t46aqRh2wJHFi+$HhrNzF->Pq&57OO{EghyCkTgW0U(x-nf9aF@lHt``4Ogo#l2+dmP zr&m>g25nR`Qb?Osf;2!R3xn9R776+&5Gtc!vNC#k866ADlm+;vOf*ZYG7ke;Zjia0 z*qN6Lw46FM**P^)RBWTP5Rw19;?%4LjUBad7a59x?alQ`^GA3U+phbQ0*w2hk& z#AK~?N_#XATnbgs`&YOA+E+bUD4=Ai0GNWprEpQIicLl~K|t)?{)6{t%6BWL<#F8b zOM7xV6+JS8Lq4-~Fv{At;TN~@s|MOH@L^yWWhVF00t17F?lW>&!}&4-DBF7Mqm_n} zP8$xF59_GFqRXueX(L?UvQb=eX@i(7_dYHRVmmNPYq_|5$!2Na{r+3d_>o1l-Zwoq z{a}ex1zWi11klG05NG-I47UdFJ6dPsJx=}Vn+x_p)Ni6i=f8V>_e`b&DeeZikkDb15`nri~QAfI`=W=)sv``ByL(Lp%rfN~G zzxv;SDP$oF60-*Lb>zKUl^48{DJZE#CKZgDKSeDCudjafo3SoZQ?_x&x+vSwI_C~I zxL2)HPK}ZP-bw33wr%od1SCcpWr?sLfU%|q89vu2 z%pP5H=Ud8&8phBe3#_K|<#2#5b2!Qt_zEoWfO&Y4Rpui$By*X;6Ba;%KwHoBsSU-W z)lj7{1r^j0FWBaJ8`tUCqAY48J3U_g0W*lItx+?2beR#^oiSv4%>?O&__ zR8>J*u)12w5`|a_U9k~DpLpkIQSK#&_1f3IA-XFpdW*G1Z~b72we@wJH@z=?-Sl&`gu_Y-~H?C+o4Ke%ZB;ABLTY;SMxe|X}1FMiTxQMO`)HZ5Q`zw12#6Gu6>McJ2J zdfB*04sCBY-}>%=Y5oeM?1`6Mo})7jtl$BA$1U#)QnDOvj>@0-x5~BR}yI|3NEJrS%Xx6F{-rI7hg|2#fGYpER2EtN-5z zXW0!m-dHxY4Mb+ul~-S_Sshmb3b^r&ZY)gL$3)$h~Nt=Rg0d>#loC$U|)&SfV^?8Ie=b154EANbzX1-#;tV zRQ{URyy@_x%wcHh|g&dz?1nKL%^%F@CFHB1UO$ zT7j+x%r-v)F_yVv2_9A?U{?MkZ~y3bT=9AL{1EO|B3fj_2;=4vZj_94(!7r*QiKjgdK{={YJt*vbd_cD`NEluulhdJEP z+KBFmtih`p3HCOUSR4t_Z2@!{i^IHTaWE%F-@;)>v#hCE(P0e@q7{9$fgUCr+{*vw zxBSO5dv@RXofi%C?DrEr2Xs#K-0b(0TMR98JT_6A(DH)Y9VVfQ#m4fj`8GC&!rZs8 z2FIQyALwBXGMZs<@56Gn43n(Nr{YmA$fj5jZSQe^<;*5^`f?wz`Jtrvmv8_87$`|Z zK~xX@i{Jg-pONg&#Yb+YANi3#{oK#})<-Wm~M!V3wrV;KPUWaw~6gOAckXMGsx(b-yBn-}PN4 z*?zxhzn|RiC-?h_{eH6N&N%m+3Mpzc&Skl!?+qY>&hl+t-&~$55Bno?5=iC_hmK&z z=;~z^mSL$@^7@8beqOOC7W57J=8R`_`f{Ipj(qf^KZQG)O9J|7{_d@h`hh3@{@+bO zNETV}RwYzHf@(yQYgQwpPy%hFw@5T{-8MrV9#*48*+||G+>Gz6!A1{5l`Uui@-VV2 zmP{;@ZL+0N#sBrqfBH?&e$ah=6hprEd*i#m`@j3x$9}B$4QiS`Kq(nv(l*``_LchB zpaT~Q5PZ91#;6}95>?|27ApZYOGvY}g~d_WQYsY-sAAD&j}FllC1#XuYdiU(x^feA9MSg z@Bd7{@f#o6`$jS)wEde8+(>-fEw75QRg7X5pYrr)CYWHt5=`LDZ++{;5E&=|S3Lb` zVvW*Dm5R9O=9`KDN`psRddgESA58_n`D0J(4!L$;`^Izk7d*T^?oLOo&9;dpRst3r zE0Q$S1_^J>oV8E1ElXljwSXG_*GyB4;Is|8tmt%=Nn{y7iZ%%RXrzJb@!3w%Cj}c zSG?kVPkPczuejnRecjnVc)Uc^^+@P#g8(qC!W6y#%8))UsW}NkzKI>U8yy~jwN3?H# z*qi8}k1{xpB+Jku2@Rt-F{=;;d0u8^gDqNt8rwQ25sqxkhV+sl8`7BDZk0dwsMqd2 z@0xqRv$G-R0Xmx>Lo>0jWWkJYGhJty+K=UrV)8R>wLQz6b?=4He*ekWYEDwo?} zAYm4$m6aTuXK-%3(I`W==$5N%HLafKXcnI+=b@`39mrZvszTNx)vU=%1yJ(wWlChy zeYAGvWQ&R%8{UvvMqqs7lT)VPVXgl>tSlhLvNJbu>tyMxkW0WekipJ6R2`Ct-ls&#y{HB|44Kct3qZoxtuec&Xfh$Tt8g9DfmV`#vH=$(pC6|4P zP-!75v4VL22j5!|M)P)xtiSexUpniv_{5R()JxXIDlqBAn#`Kkpe*;&psx>$x90vy zfT3W<%x!0$GJ;j3ScA}r*iUW-(X3oG+l2!x*>GJ-BS->=t0sfz+_h0-1F8~&n-aw; zv#hybP5*AXiVzPWfSmP#L(L!^MFyCr8gFw?L>e{sFDnu}u3c)*&t^e`7j7QQ25lqX z)Up8$bQY^nwCOJwFgW8N&9|-FnM1W1 zcRnYN;s>64t2o+7&t&J!fzQOr^r}QFqs%bcR&0B=i&kWkBUGN-_EQ0@UIC;r8s@fR zjp>L5uleY4?00#7v`)LIt6Q!cTgv8+#l_Kx(aXjbb2$^}gN?p*&yVt+80_>i!fV8A ziY14rG*mNMRhuy$wqX=-+Z+`Hr{0>)TF%K-y(p?i8UJWl1_`4^TcdhuY#;`(c=#lfxW|GIm#PYYtE{R44QQEdR3Ru$X&Gj-1=t8HdlhTe z?{19&VGx!NOAybx{P2rzK3JQKl8vRR#F3xdvdw|fl!>glt?+CPf-MPK)EE~KPz;7B zl^E$Q8v!hM$%|efyH98CoXTkG!e(cKhwi{{HgWf9~OZ-Sl-Qa?^83wcq}o ze?R+ags;(hwl8}06GBVmGR~>xmRmm%(blk(_ueA>iYuP2TBHVesi~Ihe`8O@OiHu) z*Na~CVqjtgWEEcds$antIzT<*L9ai%Grjb-|MsA7A~$O;?|$Ehv%Ck_^e)Td6E1mj z7NfQ`lVvx*^PQ(`9?K*yx%AR?bcm)_DyesU=sju5rZVM{@Oso^zCbMtQtJhY{iA>Q zdxO??$G?2)x%dkXIS&g~HOk>TWjnJ!@*w%sQFFskOsz9oao6mGRpnqSw9!kps%5q+ z&umpoX@Od4Q`MlBLB-4*Dp4Y4k3-*D$A+4%z&MzdXH_o$lm9y5+ul_L<7ldwpS+@#UH>}OpW@}??tbM~x_kN>i zD(7LrD(9qQxxovXv9PKt7M&%7+0eg(*hN~^EDtJpl}j#JMvHYgRtu^D3#*}g1e9k< z)#RbTX2&NOS)h-;Vm0gPAO1OKvwzVQxBtzK69FbIz%s~eJ1+`WHoFmw%&)e+J#woT z=WYjM|CNyj(^1CmWV6XzJBzcrvm7^cuKO3Szx~g4&jwBD_>pqwz3p8H$}>iX-Cpz!gJUtJpE z=h2>dt757!e6F)?86>SH)fF&gnm`R6ni&LbTjZ$>+_oa8aX49kw!Q5}JHdjDua+?S z@u9}H2}Hosl-1O-P%=jIZL`X0j=QDlDTBISlg(BamRC>^MHH!e;@FG8v$H>^_Sjw<7acEQ^!^u zHJd~|^uc#6aJfJ7^1pRc;!y!hTGDb<-1{iBu)(=5GjWVCM>m~ouD)`86y zo@FL6szo`SC7*5J>7k}tRF+y&O?e`7XI)#SlXcr|Z{2?Ui%#nvuKts8@y0hkST$=^ z>#T-ff9BiX+7G-O8D7RrD;wozHj4Oj;3kk5+lx#FTGcRdkTcR_g%Ru-y$VK4-(mL6 zj?^>aoJ%&WR92I7W$ia3mue^$mnz3U`0SVc<3D-DS)3-0Gl%tWfBnYFW!*oq_D%Gi zST_gzJGb3-$3b8Efgki`91nfiBl~)C&CME{%*`5`_kZAb_YanXgH2yI2L~{NC^V$F=+ZL0eZl=q==5@Te!O z*;cvWYkHQy`#m4%Vu}F^F^U&I@zR9NtQL^qJKpuKnDshHLpmON$>YOn^;{Y0S}i~H zdmqkCmSf$lwMZ==`pD1C7VC0Qwyw)Qtp4=R{s=8U|L;EibY^jyBgf}q6)m)Aw5c$P zEVmllw9rQQt7xI7?fxWLOV-k3v&LqPMWVYt{NY>gf}1mwhdktsS6=xsv$JDIKKo%W zea3@d7Vu;fJrfzwr?2Cglbkjj-cPjxzu2x;ZDclb5M;S*6=G`eH5>fQ{TAs0vpiun$f<#x7B&*8Y8^ILEIIRIbu zMSm-*m08vjwTy*H@HID~6RB2Z?(y)4zZd|pcg#0=&l1(LL&1J~QzB_mi_k)z<%yQ` zq-Qb9VU{sT^@0n?v0=(YnAPZ&ShFkTs2>`%B4CvEZ?~Q!swzj+YFpY~#gr>3N}I|O zI!ilMp32qNgdy5mJBqO*z{*;${Km(eYPIZMvwH^5;r!&VKJt;D1n}^Of2X$Fm8h)X zW_rK_{_=UbrPG&#gH|iGa+Q^^rZ;PST~wpvhecVIB|K>{{3-Y-)>pN$DrI>NZto19!+FSIeY%gl>Q%QOEZ2rGtu6N3f4c4C(Jj06gO*_j`}VmHd1Pvdbu_qW zsrLR4{BFwDw3PLgS@zh+Um|#F+C76`mW706jp{*Ma_N%;2x0{i739tDxiuXlguZ&I z;ZYYqdiq?R-6Om{^6!5~UePLcq*iiW_c`Bx)}O}tDZ2QymWWM{ozT+P6QM<15-rhs zZr1eu)f1lZkSASenl|@%t2Qts z`0&FAbf$4bQ~6k`1h289(I~hbTRj4j)#Ms)yTobB*fT?vK+B~VAR$#I;gzk{5(WCx ze)`}XJ%xz8eb#DX-ftrCTn)dH5q9#gM`Hp0*@P4v{zL&F>Q0l%KX;uD_-~PiAdmqi=5b0m| zg^yFsO@a%I^mo1c{W;qqGm0r(@}#F^jq03XP2+9vxFw1)iz_JNNl$so3MCMR&Rh-e zeBZ5ezc8;@7)_6Q{9|PLkw?7noIZ^U3)UIR_k7Ri9Q5V(J9Z9YS#uNG3ALV^(9W96 zs-@?$YLoJD&T6Wrxt1N(lcYS#t4!5KBaW(;)n>X%qg%9>8f21HnvMFCa;wGEDjUO* zt>o2B;Z(Cc=j+J@=$yIy;18bc>t_F8Cv>9cPLGqJot{f*r^mA9lGRo%AzyVEZf;qg zwHW{!^(0j`u>vnF1uxkE2jCir5vN-|dMe9UZQEYZN{(cOql~M2EI;)5&p+4GzW|;4 zB|rY-7SRsYlRf4!aTCkIx~#c`TIABBg*J(nwWyX zPSbdxM;h$J#%f5S8Z{TnN*@Q(y_RE``vvISUwQe9J%jp-pO&T2zaw2`$o7HWGFkzPfyNX;-Uq)le`#B7r5R9B7cS8o8Jns*OUPN@Lo9 z4$fKEj#K4=hjkX@qKm!`z-_m^GP6kyg@biRVh%or5Mhx!qgGi1C_?0-LgsdBPqC_v z)K$S$07i$>nf@HT;wqg4P)w8+it-oxy8dWfaBFz2BQjT(kiRSWtJdR4jpNYpEd<2`;KG>OUZK;eX)Pe@N>e zAlg+zT5DUyMO<~!Wfm%e1d_>o=eW3UN-2W+NZvf~{#L_X4DT_AJMVqpch74!=th^Fv!>$%Mi%n1qof+7H9i zG~yb8m<27Q_;CLGb!b_XU_y;?!r4igHyFi>71@RmJPUpo zW0Y7iQmrbm#GtxZKfn5FZ}*aWSc|MIFTY0`z(~#AoJ_)4h;7ONc6N4X;(TC_z{cig z%%7i_Do{;3-```Tph9o_`lz?N$gZR>XEY2~`X!|^6q;sN^Ta)C zLxqc~Y38h;+Ke@@SRB%zK?PP&4b_p-`9HI@H8m7Nk=(5@6jqRkmLnRgJBnE;Xgspl z6xn=;P^Lb~J*>f14i6`>`Uk_!k3JM61I2i;`sTZD71`A=Ix6)32ir8>-WdJkH=k}L zACm_M8Eb$hlUrdd{=m!xQEW3MWX38KH`?t<9|v?^Apfui$GLO6;(Sd|W>%m!zR6G& z>7cRN1G9=xCyV(JQ#u1h1O+pX*lw5`io;v4)p=IH>*X}vGyfAQoguQavI{_zgF%F6D|$)Ah9 zs+L^W87}Sy(cD*0)e-!($gVS7Zru27b@l!*b%T^n(wW@D%1XydcAcanDV?MvDV?Mv zDV?MvDV?MvxrddNj+N{>Nk>vTNk>vTNk>vTNk>vTNk?)ID=Qr<*>#eR`~^+`<86yg R#)JR>002ovPDHLkV1m{8J=*{P literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern-transformed.rgb24.ref.png b/test/reference/mesh-pattern-transformed.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa482f529fefe4df70a8ef2c0e16ee842345135 GIT binary patch literal 14463 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 R#)JR>002ovPDHLkV1m{8J=*{P literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern.argb32.ref.png b/test/reference/mesh-pattern.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1f76639f0baee24aeba15227834036dbec86163c GIT binary patch literal 19566 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 kAU-}9WdHyG07*qoM6N<$f@p4ing9R* literal 0 HcmV?d00001 diff --git a/test/reference/mesh-pattern.mask.argb32.ref.png b/test/reference/mesh-pattern.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1f76639f0baee24aeba15227834036dbec86163c GIT binary patch literal 19566 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 uLn`LHJ!r@X|gW!U_%O?Xx@;qG} uLn`LHJ!r@X|gW!U_%O?Xx@;qG} uLn`LHJ!r@X|gW!U_%O?Xx@;qG} uLn`LHJ!r@X|gW!U_%O?Xx@;qG} uLn`LHJ!r@XfjDYhhUcNd2LAh=-f^2rPg%)32Z z978JRyq$a2?^S?E>*=$;GMPC%F0Av~8zt1IxbOtuYh_P(5YVQ=Bk=Kgsm}!mju#g? z?>J6AreIrd8=F4=-rwHN*yqI;w`its-*PvPS*`xx4!#fj4=i%rkRhNW)#6gp$#yoa z*lvDu&y%BJ9j{9qcgD!|x;>f@=MYu0`f8Mpn1o=Zb4W>I*PIX6r+P824a+u=2+^9l zg+Iqk+Gmmh&)UDbAO9b`m3W2Y@P~Kr_<}cnt-AZR?DC{JbLaZ133sYYmlq7_|JzA8HMk5E2+N`x0UPn z_wy^!jgO7pyMKRj(eI!qEq@m+zr1oSp>{)gBrHq{1x8HvsKTdwxK69@|=f7XStSl@TmS`GyEt>h}!~4aM zh-B$zI|z+ag3Q(*iaUW3Ezx%P;e@DFGrGIGf7Yz~QOta4(d9Dz-M*p{Z-1(4MePv^ zUzxN>!)QjgbKsT|>3x$!9Jif)y~Ra)9m^aowZ|fCPK$u?b^qSIDNe~7jl|nqGVZQd zQ48%^Td4HTReBA}1g#CWen(Cp)Y!SKYvaDqOEX{S#Gm{V#JV%L{iIc+n%kbq>Fftu zR+ade-$^M@-4Y zt~Uke*Si3d>6!3knY64^giux`*VgE5tuP?@AuG0I0 z+FIZJCpae^)OcG~Z6LAYzKqhxY&|~z1&jyx_Y)P=f0+5(Tf~m5rH24BHiM_DpUXO@ GgeCwqOWK?O literal 0 HcmV?d00001 diff --git a/test/reference/miter-precision.egl.argb32.ref.png b/test/reference/miter-precision.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1a76dfd0e7e186edb76d4cb3fe7b4e35ef961e43 GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQA!2~1^2_>fjDYhhUcNd2LAh=-f^2rPgEL@&0 zjv*Cu-p)Pi_bNc7m3wEW@fN8LF1vnaQ>z8OM+|b~kBTQe5NKE76RD3s&eGeSs#$bQK3t2nWcS^J2^X@q zeyU3_o1Hl6$G-fx<(>ceuIVjqd;k0JLxJFpFH3H{|NeQ>o40T8-n$pIM@I3YqkxKM z(#Lx&J#LHlg!}A`>tFQZ_wU>9L_Is))}8R2#Ns$%`jZC_9z1=zwCD9MabCTm%{OBt z7l*ArT9~u=s7J=D0Zq6ci0n)zVywKYA3y( zELt7+q-^)!4<8yll^j%dy{dj<(s^4c{YjUZ-lxBRZPlt&yXI_+`f~Q{*>mUm);+y^ z`SSPg7^PtNdE|u5z$;k=wc#=g*(Nd-pDv zsN}YjhR$1F@7TS2ad67Pt~>9)C(f2hR{8xRZvFO}RE_$&prtI1 z2?pZri!xps)~K)Clhl4avomjNlvX*D-&CQt#EF_bEiUut%-OSduV(A9q*OgV&WpSB zJ$+V*L_c=9(`~jx*g@<3H;aj0d~TYipLoO!kPq1ZlKU12$P|?bB zk^ztC`3r) zdmKccKg#G>_F2^=bWZnTtyxYJ|1T{nE_||x@xQy-<3E4y{N#x(RcQ`9WFW)C_KLsV zW0k3RyZVKO2j|_J6D}%5m~e>kHo4+v{$sjr)Z+i{sNExAIlgTe~DWM4fw50{- literal 0 HcmV?d00001 diff --git a/test/reference/miter-precision.mask.argb32.ref.png b/test/reference/miter-precision.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8e2292d395ddd763a8ab139caa8941005fc5bb GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQA!2~1^2_>fjDYhhUcNd2LAh=-f^2rPg%)32Z z978JRyq$a2?^S?E>*=$;GMPC%F0Av~8zt1IxbOtuYh_P(5YVQ=Bk=Kgsm}!mju#g? z?>J6AreIrd8=F4=-rwHN*yqI;w`its-*PvPS*`xx4!#fj4=i%rkRhNW)#6gp$#yoa z*lvDu&y%BJ9j{9qcgD!|x;>f@=MYu0`f8Mpn1o=Zb4W>I*PIX6r+P824a+u=2+^9l zg+Iqk+Gmmh&)UDbAO9b`m3W2Y@P~Kr_<}cnt-AZR?DC{JbLaZ133sYYmlq7_|JzA8HMk5E2+N`x0UPn z_wy^!jgO7pyMKRj(eI!qEq@m+zr1oSp>{)gBrHq{1x8HvsKTdwxK69@|=f7XStSl@TmS`GyEt>h}!~4aM zh-B$zI|z+ag3Q(*iaUW3Ezx%P;e@DFGrGIGf7Yz~QOta4(d9Dz-M*p{Z-1(4MePv^ zUzxN>!)QjgbKsT|>3x$!9Jif)y~Ra)9m^aowZ|fCPK$u?b^qSIDNe~7jl|nqGVZQd zQ48%^Td4HTReBA}1g#CWen(Cp)Y!SKYvaDqOEX{S#Gm{V#JV%L{iIc+n%kbq>Fftu zR+ade-$^M@-4Y zt~Uke*Si3d>6!3knY64^giux`*VgE5tuP?@AuG0I0 z+FIZJCpae^)OcG~Z6LAYzKqhxY&|~z1&jyx_Y)P=f0+5(Tf~m5rH24BHiM_DpUXO@ GgeCwqOWK?O literal 0 HcmV?d00001 diff --git a/test/reference/miter-precision.mask.rgb24.ref.png b/test/reference/miter-precision.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8e2292d395ddd763a8ab139caa8941005fc5bb GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQA!2~1^2_>fjDYhhUcNd2LAh=-f^2rPg%)32Z z978JRyq$a2?^S?E>*=$;GMPC%F0Av~8zt1IxbOtuYh_P(5YVQ=Bk=Kgsm}!mju#g? z?>J6AreIrd8=F4=-rwHN*yqI;w`its-*PvPS*`xx4!#fj4=i%rkRhNW)#6gp$#yoa z*lvDu&y%BJ9j{9qcgD!|x;>f@=MYu0`f8Mpn1o=Zb4W>I*PIX6r+P824a+u=2+^9l zg+Iqk+Gmmh&)UDbAO9b`m3W2Y@P~Kr_<}cnt-AZR?DC{JbLaZ133sYYmlq7_|JzA8HMk5E2+N`x0UPn z_wy^!jgO7pyMKRj(eI!qEq@m+zr1oSp>{)gBrHq{1x8HvsKTdwxK69@|=f7XStSl@TmS`GyEt>h}!~4aM zh-B$zI|z+ag3Q(*iaUW3Ezx%P;e@DFGrGIGf7Yz~QOta4(d9Dz-M*p{Z-1(4MePv^ zUzxN>!)QjgbKsT|>3x$!9Jif)y~Ra)9m^aowZ|fCPK$u?b^qSIDNe~7jl|nqGVZQd zQ48%^Td4HTReBA}1g#CWen(Cp)Y!SKYvaDqOEX{S#Gm{V#JV%L{iIc+n%kbq>Fftu zR+ade-$^M@-4Y zt~Uke*Si3d>6!3knY64^giux`*VgE5tuP?@AuG0I0 z+FIZJCpae^)OcG~Z6LAYzKqhxY&|~z1&jyx_Y)P=f0+5(Tf~m5rH24BHiM_DpUXO@ GgeCwqOWK?O literal 0 HcmV?d00001 diff --git a/test/reference/miter-precision.rgb24.ref.png b/test/reference/miter-precision.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8e2292d395ddd763a8ab139caa8941005fc5bb GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQA!2~1^2_>fjDYhhUcNd2LAh=-f^2rPg%)32Z z978JRyq$a2?^S?E>*=$;GMPC%F0Av~8zt1IxbOtuYh_P(5YVQ=Bk=Kgsm}!mju#g? z?>J6AreIrd8=F4=-rwHN*yqI;w`its-*PvPS*`xx4!#fj4=i%rkRhNW)#6gp$#yoa z*lvDu&y%BJ9j{9qcgD!|x;>f@=MYu0`f8Mpn1o=Zb4W>I*PIX6r+P824a+u=2+^9l zg+Iqk+Gmmh&)UDbAO9b`m3W2Y@P~Kr_<}cnt-AZR?DC{JbLaZ133sYYmlq7_|JzA8HMk5E2+N`x0UPn z_wy^!jgO7pyMKRj(eI!qEq@m+zr1oSp>{)gBrHq{1x8HvsKTdwxK69@|=f7XStSl@TmS`GyEt>h}!~4aM zh-B$zI|z+ag3Q(*iaUW3Ezx%P;e@DFGrGIGf7Yz~QOta4(d9Dz-M*p{Z-1(4MePv^ zUzxN>!)QjgbKsT|>3x$!9Jif)y~Ra)9m^aowZ|fCPK$u?b^qSIDNe~7jl|nqGVZQd zQ48%^Td4HTReBA}1g#CWen(Cp)Y!SKYvaDqOEX{S#Gm{V#JV%L{iIc+n%kbq>Fftu zR+ade-$^M@-4Y zt~Uke*Si3d>6!3knY64^giux`*VgE5tuP?@AuG0I0 z+FIZJCpae^)OcG~Z6LAYzKqhxY&|~z1&jyx_Y)P=f0+5(Tf~m5rH24BHiM_DpUXO@ GgeCwqOWK?O literal 0 HcmV?d00001 diff --git a/test/reference/move-to-show-surface.argb32.ref.png b/test/reference/move-to-show-surface.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/move-to-show-surface.egl.argb32.ref.png b/test/reference/move-to-show-surface.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ec936089f895887c7717d48b5a85b910e82bafe0 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14RTqT^vI= kW+o>jB>Xtfp!$!Qf&U-VKl|gVB0xz7Pgg&ebxsLQ0Ogw*9smFU literal 0 HcmV?d00001 diff --git a/test/reference/move-to-show-surface.mask.argb32.ref.png b/test/reference/move-to-show-surface.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/move-to-show-surface.mask.rgb24.ref.png b/test/reference/move-to-show-surface.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/move-to-show-surface.rgb24.ref.png b/test/reference/move-to-show-surface.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a145d918a9f3d0744df4ff366aa0bd361253a7c GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScxqlDyqr82*Fcg1yTp14TqVT^vI= nX0je+WCZdW1pfPruTn5EzQy`G=&wpRP>8|P)z4*}Q$iB}73LWD literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.argb32.ref.png b/test/reference/negative-stride-image.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.base.argb32.ref.png b/test/reference/negative-stride-image.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.base.rgb24.ref.png b/test/reference/negative-stride-image.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.egl.argb32.ref.png b/test/reference/negative-stride-image.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f9a437bff47a1e5cccb2fbd3edd65cec623a7c GIT binary patch literal 288 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.mask.rgb24.ref.png b/test/reference/negative-stride-image.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 zcmV)AK*Ya^P)zzO24$)XfMq9up4gmaK?UOv#ogPT~j=6G4KQfj8WDZ+BIlv-g)DPF3H2 z504}WLJE+jv#{{)?OR=4UA4z=e|sPK^r!#A%tXYJsG34VO(Cifg{lceRa7Vt5d#1b z5l{dCWI#v}LI46}ILQDgAwpFUCITYp0z?D=0L~!W=cx)sR76yjq=*36|12UTRkeKr zNL3Y8k`WaEpdu;)5dt6?0g~-v0RRDj6ri2Cy@=)f^QW|f+hw#103Z_WasX8!gaU}F zKtx0os$yoUI9&TPw2R;Wyj;%@ux|b$f4knumE3)iErBu=1_DNiKp3H_AVL6z(p7{3 z&JUwKT8bbDfkH?UM6mq@h@ik{VG%6PlB9_cLI40Eq!a3DDFwKY3FVY-a^BhgR7C!?BMNFE|Mb3>2h_pjlT)L_kEL3|bN>04gM+1u!8Jq__*9O^oN@YyKnvf|v#OCXu76 z2H1SeZ1~$%H6;?A1F6G%B#>Faq^WT8P*j+i>4E0lBHy=ogC9ovo7|IhuMvc3PS#Es z5q}#U-Leji!uJk4Q&ff0Nos^bDb!F=5KUNUbP=T}OeH83oulG_01|MK<`_Vd(L~k( zDolf%rLBcM+N=}>i~t})0cM$M>H`D`1t`sqs?J)`UIs1b1Q%H)*@R$;Rbq~g1PYPa zT}6mM#Dt(kNF>N|e-2`dgZs6-D1bDLZC5KI3R6=xsG@1X5=}{Ss_n`TrT-So{rXl7 z4kNk_x!rNV%)a+q-jL6IYb`Dd-|zmUQYT9WI3S>qiIfm%P*tHYK%mi{y)MDR97!iA zfM!$YyWHe=e%^2wA)q3ls9Jjv(&BnGB}oJ+v-SYZX14%It%j$VO*oDn3)O(zLtYu`)YE(Kj+~iz|Hwsnu;fb5HuA@G#9E6Mw@+ld-4#`mew}e zZO)ew&7=olsv1FU7I(%RXH13+5d+)n5YhIP0Z;;@2qNaxG8P4kW}z7oYbeWj_K3faK)3tTd@c{%I5drZA)iy*nTcnGuPD zloTNlhnbNI0V2>cfdvF@islSEkGhp4V!okG(1H#z0KrgEmH8y10tU&17V)FOGJ9Q* z77GQ?a8)#vN%#J2Nr-QH088BiDoCQ1%u)kA&x0l0Y{vHTu~&n`0}i2~H`eC;&96O< z+;yU=J!70=JEu zRD{A=lY5sFh*ZbQ5F}>0s;VYcwlG&j027f`&N5d3q7)NQ#NZxPT_tJVKTbI>_b?a~ z5mB+ZsNgMZfV9x4i7x?0I73trgtbr`(v&0uB7#7mRic~}QI$XlTXYvK^npTJrYoca zL`z}7R*55S@_?6Fv08Z_(9+ z_1sEA`;3$@PTUsBj85GaV4!7L9?g5BZ`Rk6LIFT#Q+0@F$?K|qkP#83cy$KV#~Kl$ zs=}!2xfsO5_xsn6qk2epC)AyhR%t#kQDP(|A}rK*Xj zsx4+!1cbwoM3o-N5YggtYgiHkoU6m)!8t?%GeZMV0R^PAQg0xZdO-*kjFwR^(Uu-K zmL}Pp!As%$XfOK+tI;Ff>ty0yLqE()fS~7)*K%9P_<~2YNK{A=OXuzPVi3|}~GSj5m zgiBQo0#iiL%wQmBBC1BZ2t^cBLaKX2m?{MX)DappwgjCusRa~5qYwxIgGmIsRAtd% zQ=8Actmc|Xwrkqo-^Ek$JP=xPq3?G5TV=Ix zbX#;qAf{rSb~zooTWm|Dt7RXa;_?MRiRB?&@B zyWFWIGs|YKqAC%T5Evjzts)9h)er=rD&j(KMKys*gJ+t3Cztv_s~QNXP=Tl@s1bxx zTY+vaik&;q`Bs9W=TZADPhs{ufVGf*F5Cfg>al44EWizi#bGr6>gT$LgXHEs;nmOn zt+-y32b0@K{B4dB*-JkbX_kZaJ>I*3QC_Qiz@5#s2j|k}VmRjy3R2iAn|$fH=YQp2 z{_Ax0`sr#_PIj71`(*2`ODXkT*X6ET<+=CA2@vd@YXd06z7W(h>*$8bqGsTFrTM^P4jxy)lJ{^xkkWw zZM!|WF|5<-^isKe`9jxo%D!2Ji4dWIDyoW5F%t?BZU6Po>%2ff$vFmV7P!$B7T9MN z^f(N3mT%r*S_l|~=uF?itp@njOQc2oY;ht02~apwN9PB?J)3nOx$bLchY#uh2eN+K z)xKBG`LFd;4iThV(&FYKmVh4~4AO}RHrQu*bTQ*N1R)G~6A= zO4<%nuhk=@>nHejocf$nHWll0>N-_0K}xBUM*w{`MM+&MHB2$Nhe$4ydz@{j-82nT zosxTa%ChF#qMsByAaz-isK5vdV*uJ%$ee?8k>*Gm`%@ayDoPOwNLb?zX-kHot-!Dl zErLO)3Up805yT9;3L9Ou-HcWi`);u~7noFtxkSB}evpW0tkRpnoLh(wZec!Kn3jq2W&&eg!m4&q1UfZX|dj)X!2!_Ln7V{8bBcoxVWD3xrznL0|<`tfQ z`aA#Yul{dWc4y7f*^m9?M}Opjw-0sNjRlbKaAyFi>6z0DtNY}28VZAq@Q{Gi>R?2z zUP>vYOye|qbvMF5s!+)qwbtqm4^VVrR5Ir88Xiu1#LT7$2Eky(9PX2td2%Xf^#l~k0L;kEVZ_-Ce*<`$D{OdMW2K^@q%&hkm+%KO@G0Eiz&SZyAg$)9_Rs7vSNlO9 z`I}*h$S{@D9RV@D4SC@Z!oq8IYy3efyG@|ogL4-L4*m3DVlW$hcXzt81e}OyqR$BI z+4Y!X>qP-(hBD7iPX3o){TEkG&MG{-hDQS9o_j8S^Z93!WdLS6mSRkkM@P8R$)okE zmO6|j)Oy(3#H$3b8z&VVhDlR0K>?iTR6%+v*H3Po>bBP|t@5hN7mqi0-*KVuJGHE$ zX$Ih%OsSbp=2Sl) ze7A$!k#pQmX<6O;+*;Ltq36zu81O(egdU6;ItLb)tq>C|al{-9JHt!)t>5^KCtr90 zHHe~;D|QKtKmYvKRHW-6B5L9kFQp2tUwK5IvUQqaM}e_cr4~Aho7qqU5-Q+0nNlsO z2m&5L^Pra)la98Nl=JDZI~%u`E*y6`C(%A<$w|#rELl$3jHxA=q79dkFi}RLh`@m) zN=o~iLn3NIR&7EpDs22~EEz?+30w-z4FPB@Qvd`j8gE-vAeg&tNHW-3=AcO`j+`+@K~ObSk1nah5u_v&Q6oaA$O?@JU;@f%Y=`ms=~*%b zZL?afSN)|+7rK;l7hpyTq!gr@Z|LPN-KRg?K4 z$#NH4wjg`Twgd&Bwm)G8jGIg}mhOgfVOmXb{ar~D=8ETW?ldQ z1|{}ZNfrQm{)@D3RfU8j_WiRUD*xRl{_W?#^p_EZQ7xoaA8Yj8CYdG6R=iLJfwLQ1 zTV*6kkm^1ariATOIvNF%ty7!oI97P;tPRf)1hS?iR!BD@*mc=OlpM-LLNv6KvHI!R zs0tH1S`C*jT?F*P@dk7vI_W!U@rM_P%@qK*Fc>sYC6rVO1q4G>=%S)?6PZYhkxUpt zMe`*yF|H*Zb2=mq=TV>)-YDFQE=eJwx~RZ;k?io8TWs4~x2)^IT5GtpIt`!^p{AQ& zBB;W#(y5i|MaL2o7e+9+PI1(=lZ02MtROvTDrOcQY^~&~;5mAR^S*GphkFBW=4Z19 z?Pkzz1}wN#`x$#kZ-#v4Qs%yT6J#{h8k7KluYB&ypa0S$)iFg4p{SG~Rff7t5oMK= zQZ(f$Tp$WoV$-DvQRAxb&Zgo~MVKY+-~?;5pi!OdQ?4j#sVQ%DM=}rBoWhyaiq|f2 ztP{a-=9FE0TgH0*`t=)Un^phzyY4u?5ZDMs0(}CMA(j}D)QGwGV6D-np`Y4-7g0hG zy1<=OiH7$C7u9IR+t%sUcy)8XCPiWniR3(F#GFmbBKl2%WOm25;?r;G)uN4B5h5l? ziexZTRTIM9i*uFOCyv#(E@jRWT7sk{>W#5wm}E%yhPBBmHMGnCbO~k(V$aT>p(h}s zVfnL&bEdf?4oDN&o0~a0I(WTZ$ztgD@c6f%L_u}*!bFJX zoRXj<2-K>PVkIIQR9B~UD(;({;2i1z$-^*K#)aYN?z?d3r9M!r)CgJUuA9rSirJ5a zi<*#>jH7gJ7w?t&&wukc`JFlcV@-LIe?nLPY}904E0k73?Zn z$5fXkC&d!#$WoqfL033Q_}u6rExRBYLU5*~DB1xx^%c&+J&1-Hq2+(TIq6~P8izjj z+;gA$^dC8EC4(|~45dVPmo2NL?Y3OLBi5Ha)r+f~#t}L7l6Ygg3ujQz#@gj1YK}-L zg>coaFK#aW@-O{^`yRMZIbON)!B76-r@!;!jnXHH$PymKLjWXGNqVGOO9|4YLL*6n zN^uuxHl2c3uAQE3$8oBvniCabq3gWv`i+{a(u1Unq~-w)r~*LDm)YN_59vUuvUl3`NEmRQ{0;&x{Ytvcwun%HRv0{E3&>-q_TMjs>SF@B9 zA~k%Pd~z~uE|i2;pb!org+URj)=d^uQ9(8l$;InbsETYbGmy9B)}oSgUO-HEi#!1| z5PHdQ(bBzuO8{as{R|$!f#Ypa|5ET;r~@+`#Ae8vTfg$$^Z(O7`=7VF-B4@N1OcWZ zs9m>C3}>WasMA)D?(&cm^R(HdY?+?Z@n)LJ`tqiDoQ-2CrYnOYf>n8AxcbMR{rz{m z__nv-byLOrM!CJ?QavQ*LNo`zWj0obGN$V!X0W-=Rqaz6opi6?Ep>sktiw%6%*YT ztuVK>>}OSoG%~6{&%>lwb5|HK^Xd+B;dX}e6TPK$Ac7IToqTWuA!1U{StMa)jMb9j zXr(DB5Dd7-uCP=I5fyAY9IxiNG+4sME~PFV@K2x(29~Ei6EDjDT=7X5=xcnw?FYa*UrwM&}F<1A;N5Go!T(%l9|wfl2)A+ z?+li#yzAW$Xj*;l3y(lY7xc+;(#oiX*{oANIzE2t+b7qqrq7he&bHT8dXbd?mGr5s zll7gcM&G4riZXep3S|^m)fnn_Dp{={YD7+!Oc`EAp2(SR(Wh>e^v3D-p1Uq}N9Bp9 zo}UUNpmsw7m+!dS)BsSL@fJiVq-toWf}x;@Fx*Uxe!^7Oj+GbBlfUz$E z17Le<4D$L*C(k^0r4~qrh)iP*SBxG^tO-x;(NdJ)koY{yQx^tX6g|l>Y$pM zh^aa~NChiBn=0v04=6-Z&t1Q_Y(5f?&032_lX6tETu&6>$(y#c$=Bxlw)=`1#0r zSjst5dL{@hZ#?g#f3xWT$q4R->1+ZCTP7QrG_*`ST8thl=nR{_O=7x9vPC4Dq>L`B z>Z{!34{|Z?j25IQbZ++BqyBT@QUqq!auPB;_SKsi-46;W&G0t_pA-p71AkiGlX&r& z=l(>)DuXN+Vs@+Ge+L&cFx)j;01P^%;xGE^v?xr>DR1iT~rplWVF{rm03XGtePb z4Nw{pliNcdeP}FGP8}SH{W!`vWYg}(*;GrMUcdGeANlb6KKP#JUVQfA`rg0yv7hleGj%TsgTesvbca+yDtWg4KPf^@(qO`_4-j@4M%&1`aekEkaq? z)m$Qb?1!NMPRibhw5q{EG+G!Fix-yVAL=r+s7+tg1^C}P>)Q+cn@0!sE~?9xRLo37 zbGDo{o0`PYD)rgyZ;Hv+uEyr25O{>n;|rhywevok2DQ~1u{^t&%fJBPOYpfM6$r2m zX}Es%%CG&_uYdD9-^Lsc)izJZl6kF;C?%o-q4v?A|9N17t71(i27JQN(Xp2)=RP=n z=b5J-ef%*&&bB$en4Wy{SyO%T+fSX{@QQTz@#TN|Km6ifJ^jU3t_(93gJLF5b}1>r zs8Dn{m8i8!GEE{~&i#5-!rjqHf+H$nuq3rIsfZxJq#EHV!BGVk!dCCA;5WbZ+>d?m zeXBk*gyN(DCJK^O#31Ckt#)mNX$hUn=8Ac|qkuAl+A~#eU;X7=DrlWMrqaej+!Xm7 zCIE*a(3?jA+FELPd+ikwF_n~lSfl=Z*S=`@>OV!e&trJ@O_gFMEi;&z{*+R^O}LzC zZJ^KSHe@07&W=Gu11~)D%)j`xU%hhmMs+4jNyXh&m69ZwOoKGFb-#kZe(vXfKJ_j( zo=s<6mo!rA`K4G+3Wh|8*wt6AUsxag^v`^xPZ!?(jt_k310Oi*S6Pnkd)qx%PoMkR z*PjyYvL=El3B*l}5h*7$We`PZnI?B0A0MszbhJ(i7uvht{`Rxs%)Rs}HA5Z&OUgiH zQDvzfL{2m5Xa3rVZ#??ghu{C;#S48YB!dgu1BFnbGe)V9h8VYizttw$@VEJvE@j7A zNcQnQfH}mP2LjErv6n*+m_qxtSAaL04%~LV{&4=guO{){NSjN|3%4^0`}Apf}C|jJp^*!@ZY}wF|KBrfIX0uD3e5*D-gves<%|JI-L&8xaN~H&@^5C7wK3Wa$oLEnvIID=9nAmPI}lmcQLON6hw&OY`J9#Zig2Y048 zszdHpGNrALa+EF}ZC1g$?)$#C$xoks{@FY4ymaTCm)igpz(sj3wI&=)ZKgceZ%es;k7Vl>pD9SAO^3{nqEc^q1op zeL8}(>(a^fv*MNRohhqthjAPkm9=1UM@reme(vKxG2&$OVt&-?afu?LN9(l^KFLtG zrr{B0+I9N;%U8bo$fIBT`d?+s_uhMtB{NAtJn`Ju|LuSH8|LXC_ASMZPhoJ_q-#EQ~WfxUbN`1D`qYW*pQB6US z-B|jhDq15ffu*Rfe(e44y>{&t2F`}ziKm|W;CtV*?z6Lct!)&CEd)>H4B05ys1MQ1 ze!G3dewMVTsL3)5ZowvGKZRG%1Ehn;d=BAMGf|@>~Jj>`kcUX81)@~wO8MS zW#-bWjK_?JdIZZ|DU@;h%d*6RM9Fjxy6JtO(Sr^%rW1-74E= z(~Y&9ZOf{=5ROt}D$`?6K6&+(m)`r}gO>Esr@!`Fzx#*7X+I8nb~?}iZchLJAOJ~3 zK~&b7bHC~(YqAm)*92LmM2X$*^sYNDJpG+#Omibi(^#zWuKI?%(ZRe(cF_z2p9OBb2RPEDaB8k1YUe z!(rMD)b`X`{JBh(nDI}{g?bTPME|DP=9d4rMe>%332zAnaQ9kE%Rc>JwTQg6TmgIa zm`T)!-}<#z10&*WyW0(QH`MA8pnD9J#aU}KKMb031i_b;#79BqDN3 zlTVZx1Wp+yFd={>b~X(6-+$NjYu6kAwFY0gdgW|)3KE2bJH*m8kbMBFIZkZdva zz`m^&gi-`l!52UKncw}rPdcDxq8z4^sg$Xr)+jzvVvI5u$RKTE6~x!8jzTe}Jt+sRVItcQV!f_y6Pnb9OddzVPyo z{`gP6>pgEz`mSI4MF0#27&pdizw*!jrJqLD6hIr1`0~pyAa<3CY*7lsdxg1I>rSU3 zDaKk%a}qVxK6ND`lw{Nq)_Ish5-L}z3rA^`6xOJC{-sx*e+854mmYom*()zxxpMXL z#f!i2&`;la*WDyrFH;2@OI!g6t5N}_DVd-_LRBK#v@IwYdq9QhfWQ8>Kt$}_v+`r}VN^5oNx{PCy%`1xnA zf?YFk!^3MQZI@ShjsjNmDWrq?B?tGgXtWOF1VqYhO7f zODXM@xv|`qp_C0UfQL`x6cMG=aV)!`Oa;YRXC0sbr8T(+xby+1gruTEZ8LEg@R{2p zXdS{-6)}{v@ppgcw?Fk?{)EgVlW{8BaV(`sgb?l#N#KlHN~3rYMKj2?CYs1x>`6=k=%FqQGzjS5QcJmuly`r?i4*-30`l=a%K zZ^x&eefgOe|5QTiRQhh^bqCZn9qeGqZyrHhx3H{X2v8A%yNkaM}v+oX3b)8M3P+D`GufBuDC z8GiBuAB1&aM0gY4wj+*FL^%(du(<_c#!Y2Oo&n(8kOOm@<=(ot*L4|5eHa|$<~(69 zD0m}G_z$_{<|)=9vY++Y)-AzaLo?-Ijwj~)!COz4li92|$EgA{Ow(o+mNvnveU>&V zT(l@ll*YCTgmBqwYbLEX!zM^3Nri$eqQIyA^B;ckk*`c1Nxko4n6{OeB1O0gr)fg4 zD2s<`7Q<$h+J<)sEp-^`R$Q}e>|-B)NG-Y*1QJrr*ssG8lwxU8;pv&D72U5LUzETE zrb`zt48wIny6cXMFTZpeZg*Thy6fV_TB@l5=2I?pHxX1S0s=;fF_NV&=RTXM^-0~` zavBT!oINIpb`lI3r*Yk974hmhiC9!7^Gw^u7mIU2E__Qd2-p)sm^1X)^6nN~SqkYK#<9H8mAWshLT(zN3RU z80VGan{534*YlVfz|sx4kD&0n)Zn{^+OOw43o*fNk^VjCi3JR8Y4L)J!ackqoV7;r z7@gIlOm!??A=T*>#ba`o8pWfMZGd5M)IhjK%$0dlwbrx*5;2!ALqya>x;*dI+e$#c z|9ijpNB{LthEhS~zDA8<HvY3S|g&<^=_>8 zkAL~$Y4UDWRbpj*AtehmW;|WIH)t=Cz4}SNV(Mj;kMFoEO|es|N1Sbab(E6f&I`xG z7Iz-K_kaAS|KyIl;<;y^_cFBv{^Errc&z(Ax2d}c$30Bze;O3vA=1w?yxMZ+V`1N~P=JA2zH%W&}hVTawZ zdmT8e9R2W;{o0q@yxNPk)>29vvEM|${l<9!8_{O1ISN@LoD4?<7_5{MQX{;wc$8T^ zP&_lUabs>T2)xRUOc|I?z{E6zj*P&$?lZIFr0av+Vt^K!yf*n4HXs36o6peNgHGVM3{IAogAAA!?EE0O+8J4#Q59 ze`hn!*&>^3M8*mD@*adOZL%!_<=DBY2h(dpQfk<(-wvm;nqXC zI*oKk!bPZ^o{d+po=T40u!}0km(B8ca&71~eZV8e&wl=Mpa1+c}SXZR8HzSqYD*^PDPbgYXq8X;KBGMkJGDYy@akX>sN}iXLrC!-n+h zT$T}JvuqGVsc^@C{?wm-`O$AA)84o%yR)Hqc=4*LeM)7lYz3uNCfRqrK~9I$>(^h| zZqJH`z*ID-WpX6Tn(XKP;fEm*im`V_xU!@GDxK!jE2V~Y))}Lsnx@@U=yez-rv!b~ z)pr^4Okif9I2*Je^LDj$|sk?JySiGQ!jn z;1Lm?QsnHap(3UFP=+jCqs&aQI<62XUJLx*8IGAsoOvkJBYLlk2V}*K3DUG#S>gv+l z#t1V@4b~M=Lm+b31%2F=K6lxy1WE5xCZjTj>fzF5CWt$uf>hB;O7UQ*2}R_>Q6`5r zG7sW~Zpaa|oaTLC0gr0gNM1c1zV_%7myWyp?!F5`NSO&h3)#U^+T(qiyjC7)09%SbUrz&+5VPj9%_{A_o}&FGJRXm@apwOMseQIC zc`4J*+0x(6B4nJR%cARSRcn<{vo>G=AvMUbld}P^O}8G(E~JL1623_*27626RG^lU zw%}A%&bHIP|AWtb>5*@U)a$3iW^ETYM|WSo^y44?-~;!)Lt6FlK&ozuVa_SldHe#AHc=51C=N$Q%y9B3WR^TOi2qE!?v35#A6l(N3}l_(=kZq?y%Pr-?q3 zGH01i&9tkwILS$=u$g|SK}_z&LntXJBD~$spf`sTa1hQ|ZuA5I2!x0jj0*Ai!WX`* z#RGn0C=8TJCxxUl;3cMRWu}${Lmfgx0iT@UCig0xgfeQ0+9fE|rKYah!+-yS468Lr z1yHJYNZIVzBSLkK39d}4k;ZsP`2ryjSMX?#ZNXLq@?$#IjO)1!( zj$R{W>5fRaNOYDFvDs+f_a)p35jZ^xlR-tzY^;$DX%(dR+Cv!(<$?m3h_bSnDA}Tx zFhg(V4mG)WeDvY>-S_+pFG0HEY@0P%vIwGvd!?W^HHgzacw<|hzq%dAI6LzfuME#U zclz~5o_yk4-xMi#-Eqg#Y=lFJa?x2s#P8XgQQF`3CatyF~wmFSYGS*=9~Cwzo6x|}6I z=QR1**;Wv05n7RUn!-Nv3qS5*JD;YBmNm#=6}8Jp7mXO|HXIi(8Ev%WMsCN#%-p5U zWSBVYENL=}xm8PoMavYY*SB|Fx`QI4a~LBfNIx1at3;Y8LEV~73INu1R=xH)WwUJA z+Gros&@k&%A?|7`r%<%ZeM-618bnsrltjc7ZA;3i9H-s$uUr*f!DQWcLJtw4o8ZBB zzx(AY*C~L~OcbbWbD$t@ViJMA&-A#l9lr6{bB{gw_@xV*%NH;28)gm>&%?EUMHVW= zEzl}Zm0|@lZXiCc|O7F-m>RL%UE`aVD<9pPk-tU{^&mq)z#8C z>@4L{3dOtJLs)zZORVrHfgl2KLl&35TPL-l3@){J4Xr6db43oZDgyhNkAEntsiz^z zjX_G$F54+5kvKj|6n*|Xm35OcHH&qU+@>L_W0lf{O>Z6Qj!AmT0HbJk?B$?Q-rCmGG!8Q{>4qyG^mAnXO|Todr_`oL-2qKB78QCZ~#(QbgKhH&Zng zPT}*et&LS82C;yO7$_07Gj*Q`cnxPDrl0uWgU`J5N*gY$rX&SYt25J7TU%*mi*e<2 zTc3F9>6c%5;oT2B(301sPmhN`?8RkIoNQcQ%tHg`5#F~%{I`hmp?b6z<5in(97aS3 z9~%4lvWJ1$cT<~JOaH!U>lUqUcxYQ~gn!fP<^&?x`i;0y^Mx}}rvVr`@4qPxI!5DA zEgO?qn-~g^EFKZFk)ek(L|X3>#@+4{pZJZx_{%S;8iPZboD{X83~CZmchexyELlY? zX!xo{Nu6G?oEn60g zEHc&t1(J)>`qA@_LWQ}z5bLh%yKWqd2UGR|+W<0io!WMK=yFOTrkJ-&g|;mL)kFpH z|1$QjJ+@`nb=Z8Zwf8wyb>H31CYw!CO-8n4#&&|xv|%Z-WIHwxz(79a_v9DkFT@{= z#4upMfGrs^5qmJz$>P(ElM)$YDM{9tRCv2pM3aF}*cdgIjELIJs@U zO9YSX9+~I}8b~N^O+RtGy#Am5@jw32yFcBPskfeqqqi1qKh3Q<2vzMw$AeU(MWFjJ znx~3J_RQwl5@f<$I+b*RnhI0&o)G=sum56FbjjVsY_uFYs{q*5QYTH|{@DW&&NSuy z@enczgdyeFqRdPJKSqi3TJ7P3^K3ZVS(&M8t5#a%O>4E-uAD;_=t{=KloD&Eii(jK z*P7GL$re=SbSgS-j}8O7>7&`EhRDm_U-_Qkcy6vkckWH_3A%*>+N-YZbtjv+3Bd{lUn%p zEZ)`|HnW<|wC}V8<#vYVKd}K`EUQLQ^kVCL`%1UHH4%---hou!eser?Xx(lLvlr{J z7x%zz<1x;8AHhCbaLf30HbbpZuWw`*hIW5kbI72GaUCFX)B0e`ECLVTW*{RnvPJJX zl1;~MA`wv$B}OI*Kl|e2fAUZNmk&PvY*(kuK;{6w=Tg04vP#JcbB8diaZ=Nw>)M%8 zjm1z6Ess4rDQY1SSG8fNj7Wl5uzvSf|59`=g4Uds&hDs{Yza8;X5C#xDO0rRqYp1F zb*^^sg(U7hV5aV!*jS6iB3R}OP)^sEerI>a*4v6*tv!z2mkhAT+Pw8vCaaY^IyiZR z!6Y$psanm+f;cc}6gBUGWEDw{s>YN9F@s37Au5EaCa6vZ?`Fm%!V)>W5;GE0-DRc_ zCsM?&F0a4!`pcg@e#)A{!Yq+gl$mbx<~37Hv`0^*n24Zv`soK>y!qBUZ@%@TAHVzV z&Ee|)-McC>T)4-wqye7)`E~#BBIOs)>_2w{+?GkVyXE%#w|nEo^L{9EUR>h0720jp z@}-~t{ADt>%Gk6KnHjyOzd(d}WCUd*Xk&uM2a$ujO8BS%^JMeM!%>(i^CTWeMs|d| z_skd$RoJrQRir3yR2bn0fBbL%`M>%XPcN@`bBXAljR`G|!l*onfK|h@nzq(UC9@#P zY;Z?0upu-At%cKsQb*XKRAZt@LS#fR)}8*+fBDNdErv&xV2;FGB_exDkL;@_uaNxY zqvumOgHV~gBR$fDY7s^RJJ(=6f;d~>?R4$Oiyd2058BP*SdZb6Fj#bMEd@5o4sDEQ ziRC1#nec96n^TxPLJW;pWp z&iQ_i;o31S?rnT~@MJ?-%H!YLzV?<0{);Yw+x7jWD(J;dmrs_5C(U)T*kXFG&y} zwZ@}YYs6A5r(!16ggwFo#xss`Jg&RFx*l!P$;33CTrD&2RaEyeO{IBIphuhP)FXQk z3#v@fpoNv8Lv_zu3&b*k){`iRz_4^NR4PR2k$%aAbgzf+!E3Z@>NiJlVsC z_wy7TupRa%noC4a54KhNA`A8xZGhXa7fUNT$un=id8=0&wF+&@WWQ}#Z>M;Fe)Zqh zIjwmF2J<_b+eo-m1i~>!SllxM3>j&gnLJ|Z(la7Qt%<#YBx`_}we?7r*x%qgu60T7U$pR`S+&R*9g6C8dXkP&${| zF=bWo6lqP3nlG&d3$Y@SiO|EXitI9@)tN8u+Tli2%De}2YY|W>TG+)1WL$(rq^f17 zG7;5oHFriurHa6|K-h2p!t397{k3=AdtVf!AYma*aa91x1|vn1NfZ-`P*#xCqVD}{ zDx7OXBT<5QjL88Iq!t#UOzh2sq?Xbnz(f}A$x0*Y$1{o4*sAK5mXR z&`kg_6csc&fnn?Ro4@(5KYaX&2$)f=9+yj!T)RXtAkia&m`E%dtwPS$QacGmf+&W| zcMCvyuA*h=S|G}v9KE0wxN-`>R+yQhxc-&zewQs-y0Vzo*xEiqriwABPF&^@P~(GE z^~|DPtB_|; z!**pRY158(%9B{BN)#VI`Q)9C-)FXA^rOnGQJ7LXYqB~xJ&1{e8Z#BsM-T3{cI~tx zA_>95B*G~KfJ`kiL^zQu+!IwLF|;d5B(1?@)3RiyCsde}&i7L-w)RHss=T&nM4vx- z@{L!&vfs~q8kM9|V)qLTXMX80&KKz37Ym-z*ZPZC%nSA;!{C45Ed%o55t;^0kdK89 z8lqJs4~w-(M9^k1nBIYi!WmTqFk4$=h>#rbkjzCfzxn;|8> zB$0?xT4^I>RoIYR%^qItm)5TjeJT?VtdI5MPe1#te07iyaS&jJ4ed4Mk+>M!n! zvFLA$`xl=B&rueDQC2ismyxUPLE#veLk>Z|CvJ16!I2xk zMcBNDx2K)f{`hYl z=^J53qQCkp-@lk2%(xI#V)un6xl@KuZS<+^&iM@K(@u(VTRTAzaPBG-)~S|V=yGfh zvH-lZs3yD`2gsD9bWtPcYUb$~Oq5y(h>0({11!sRYTJn$k)(#sSbfnds?@_HhJ@AOB}>yl!f=4cu>@ z68ITBO1A*%IPP!Zn%lPXR>>;vgyED#fmt>YVqikRjVO_ zW9tEsbs&{zwm_;M)f*t1plPQWk=&g+O)JlB^<0)nrl8P5% z*rfzAiFDHQB6B<3{FPt&wsJgv`Xs4GG?x^1L@d#ml~uzTAX8-cn2IcF0tRtp7Kk?| zk!T>~G*3%k)w1_K;<1jcKYsG*%a0yRbvI5*{yAoVNN`GgON=>kywINhOmc9lc96(1 zisd-~?C2oRv4Y2}5PJ@r9Yjzj`IufwIJQGNKpRmN@J&BEW*CREhaBk`>=njVasZAX zcoGF##;GV`0%WL9WX#WPn`&#riNT1V2=a^;>4C@uhy#({f;@7$zWTrZ_y6^WKm1|$ ztZGQ=y_$(-rk`n+~Q7yvEX39jNL|Dy_8Y@AJ#I(7q4IoZ zesDhR?p)-{FQ26zMPu68*}m*d*P~CBsv!}^dVY3J;?o{UOD*thXFFA8Eh&nK@NhK} zNh6jLrnVgAc$1N6YetMF{47>-G@3#Skj$;N>_FQ>)NJU%noGR}!IPRDj2a-5173o~OgNQ)o`^*~1S z$nJ>X$Wb1UCw0#;gBv-J$qdl&R?Bf6Y>n)gQv{G(iJzk**dm4o*fVaB6H$eX%z$T( zDr<9d81yjFskFi7qDAl#TNI#-j0{iTZkLS&_Cx?rK6&rA|MkE4$@?EhfK7@jr7UsX z{9r_x2=6VsmR_bH2`49U(?LR{h>${6g)8?m{Dg!!y85w3vkW3*;Uw;v98pNXKrK@- zDMrGaApIME?^|W(f%VS${oY#d$2!d_w92JUBzlzUvsI-!mnqiO;d9v&Y4mn}CdXKl z^2Y~P*Q{iQ8J8xlmx(%U|QPJ{KjhKl=nXU^w8FT zsu**C(;z}+?No}Il5qBDB0%Pd1W;0C4tP=oWhqlqu&BEmOCW3Ej7|he2E$!H`sDMk zz53GGe$FvCzhxnAn_+W91~RaX*hYG!N9F+FPfSxLMW*{;qjGG9NDMwT$8wJx$H^#% zKpR7g92(=%)nWsUPG12G*2`n4o3K#_C*)@!r4i%W8DLOS0<;aNJA-cPEo6ZD@QH|w zNcVJ)$We3=XAT}F5{drF`|tkC-}=p`HwRIvA{hx zH{BA!l*L3y#lpBv#-Q549*uL+=tM}#TxoS6n2>60Lc~UpXgGj;&110Z-~aEvU1~~Q z8y!S#k;^N7FYD!swG_QLo6hd=lbfefrt@;9h{JNYTyMHAR@fu7(($kmS+X#6m6Fk@Xt~X&kp7)k{~U$t&l>!hp1%c2OoX>+E-rL&C{k1 z9yI@L13(qe*@Gj=GaMO#%ngh5;K=NW7KzBn?6Ija2jCNl4h)WV$dX3Cki4n= zu*Jx2g8LlqR6fKD5r%3=4meP;;%xPsN3eJYI54)S3ATY$42cA2A zUlN9iVXe|E8KqKE($R92)>k8mMCTq9g|$ji2x~yRp);ctNs6KR(7*K$-T+aZrIfiS z7oL-ncL$lW)Ko*ZN`~i4Tj)5Ki;MZWO)E_*oZO!Z6Scpx!gOJggMVCdE z1BZSt~0wYwpmNJVi-D}kx>Ex`d=X)Q2_?>UPK24K| z5R=FtTghWn$x&|MojFL@KqmPx8VL-fB{s+<1|888ed`joDnE&kV=QIhPNGA03L=Il zWsGWvBC|z!aLdd{PqabwM)naR7o*}rM79X`$n6?Ij0AQH4@BQc2#*NQ9(}BKA2NrC z6H~XfKDXHKd++@4cYgP`KKSs9!lfv$*{VsFo6wt}PCcV%sMmc+MXnO5kW50M5%QeI zVq!`Yw@JLDWSPCg`%%5;v9G4$$)s7Bm{hG22Wxmn^Tte((R;4F`;zP0_51(Lw*Yvj zQr4+v1Y#}oG|SW@V=A0Wy?UPRSiN8OMeA;&d0#ZbrAUe@s~R#Lg2-%ZuJGR5#op$r zc+Xl(KN#PXs{4w2lyudu$*5|Di+iw8a2}cysMfOLc<&L-CK5&GJbxHx_qk z-qT0zm~6~!<%p$ZE_Gge8%zj6l{F&Q7U}IfZ+wGK_PPUAFQ!w` zsxmAv#&pzJyNQiz{TZ7Z1EG(=V5x?9c+^qsfN#3YO^P%4>;cY1rswFM)0282eUwCF ztw%(7^xo4mJUkrX=^ib@-O1B)RA!OsJ>VYQeH2bPIII|b!x#e?LZLAhnd2`M1Og)c zPk-=xKlsDne|~vjW>5#HT9`nH-i6YM&0K%wAAUPsnZzRlK3~w2s~hVN z;!sTu0++*j$aUplPNHYmS6uX>-Z?90s~?kdjU=#&46d;C>?;%7v1fLFbnz%X=5sH( zE38kJXLsu>hH~sTo=cr9o2eGb>1?Vkj%%Z{$wb`deC6Rce(9Tk`S}+gUEGcNJPitx zV_%L7dlSu~EEx!QE8&O{0K7C%uSM(Xo{_2&MCnYP0dhculDeuzDHSMPXsG z&C!vEgkkiu<8hwA(@|C>ktgCr?)uO{WG2vaY%@^85uWK_PGBQ(X&9OiQGf>*as=v)}uZKmD_agt|%>?OdI9$JG}!p;Zs4%pdymEZ9 zdO9f%OBj<0QX1D4NN>qZz7n3sxK}AfN1jGE}@ssB_ zH&@^M`d3wKd=#TD7zD5|5#?}4V@@Vwh6#^$T$oH)g^SW`Jed@sqHHR&>a0>scP2$- zFPngEmp9h~2$FFuhGn*@636E-7~)BQ1^no)=iLJ*uhP+MgT>)?&npl$d)(#MD| zFg#k(aAFhzL45J~JAd@2zy0GMznu&_Z@URnTx*0Zy}RX(Rz2piOk5Pqlup4E1Wl5{ zqD8XwV@6|66|k^_f|y$CnbZTM1F@1>b|LAKtZsryC8C8>^N8%8JtaY5mO8Ojl>+^{ zfA9OI<;n9SFs&=y9O!ruCt&!NE&NCySZ`CyY-=Rk>aag2Vv=5v&?dDzvHE~)l+fy#gpsn zNKRSE;`WYXuqlI^Jk~plvJgsX;B@m}*BvV)K7^(G+<{;zZ!D0+K^@Yqr255_s z+sc!cI+g$YFa5Q{&GD*T20D^h0|e8_xB#F45t}76IS2Hupqx!T(@YsmL}M^t$t#Nq zM>?@wUfq23>4y&=J(%i_PkrPqGcbVoP1-O@=ac5%W2-U(o4$HTe}uNwUfnb`M0A?X zJte{`NC+w{LLvbg18>`G+9paGD><2-g_EW~V40psB1m4DO3qT;J zAt?&pR1op$r$2i0t$+9aM~{PYcSc&Eb5{)nMblhr_Ug7$ZKfpP2=+{6Aq`?C2(9J^ zRTS3BU?ztJ5`FPZY7qh}DXgXwk%dbX?ZQ}l^z7byYw(`YQ5KZ$`&DORs@jMF~AxQ)t?cmpkmf!yBFO(dBV3_e_iA^2e ziy5W5!*uu-k!a|wwdnQn`DMSF%Wg+^B6-CPY47abW8(9RdCwM({^z#a+& zIB$;q&9{CcSRX!oz`Xg4=a7pLyJrOT+>YM}^hC>y+=A_eSqJ4r!oIrOh<4{3u@sYOjZ$tc1xyQTX=`5-K^JFH&=eBhnw~6jw*?> z2f7f?lQKh%S*R~bLEsdw-XNu4+_55YXgALE=4)w~qNPzZ1`QbZ_ZlS)T- zEG_-b|L0AnTyGi)nk?Oez`~tbl!VP;shS|S0;n@bh8Ja0my!Zfv#Cn!Eg8(DDoChk zkTdHCpFV!~!w+8n+E-2MNfr?RdiSA78)t_jGr%lLEFwC*x(FCReho@^Y_i;LoK2%aW9g3aC%5oSF!K=UfJb5`Z(+(qKm{5I=+FAyp}zA(#4xEx z0`A9m-uZ(!-~9Ji*Ne@p8V~N;ZlBBA`pUi_dJpdVyH->{l+idf!jiHoQ7WyLiy=)^ ziGqwHU6l}lU;&8~6IM;KKp7;8w@lY6gI0xO&Q>{s^`11J0ljF%5D-fLLfIGQOb^LGeGR*gd}p0DpGk%Lse!dvTJ6ljZ`*j z8CT1}NRbsthf{{4bUN;=2H?D!@ldggCL3Vc1C&hCOA!jHRw9x{5;{6SJz`RHgt9Kj z_~4^YzVZ5N$}*B$Ge;y8wrS6S2Qdkq^aYzk*U%J`F!5-hM@K56Oghs2Zu8bfHiJ6m z&8><__*Sh9qS$8ig_TuK(`!N_qC%KPLy1#P(h$52m}(meLk>7-h_HwBBQ7uBd;h~f z{P?4{)nGMdmAm&NxIMdU{g6ahmL3}O&I&V85E3MTcdYnlT-H&VY zOd(=n5n_l(>7hN+Tlm^iHqRe679ycwN?7IjLhj!Y+lf^z%0s-w3=`L1{+q8&(;gg* zG?TNbQYMj1Dw#3ORb`+YIhm=7QnHEnwXm^CiW{q^uQ;-rh?BTyYaYE*>nS8d^&o{* z5RFJ|_0C+H)1ilHDHU0c*Xxs|EkwppplRWCZAP_~lO(wdYAtjVxaj5LFS!!t5PEQWXWvc`KK{IvP;&e>koJcv$) zfdFSx1Vv`|3?R1&$>E=gOwP;(MDUQ;oHY64h8`Lq@*IuE*5qa;k!-~e4HO5aT#YBy zQb!;TjnjVg&_pA};?yaO_`uE6>I8mnLW%)|rpMvg^EW^L_}@Q$^2N~s`2Blww(qUA zo9m2DJ=)E|Yn8KVMvPPdp4q!fs;0zIxz)Az;R~AFNj$kNc>@TN6>O?3>KbVa!80Q} zT6eL5C76(MFf+=|c6a5`UES@-3d~Hz=h=(uk}jHMPW?Oo@QvQq0GnxRM^#~EW`Gbu zqSe@0h(+evmStg{m{?Q}?Kqdoj3<*Gd3h6)8AzvUvZ2^^eG|)?O1wmP$22J+)*~Xd z$Sg!AmWWJQTFg^D-@$2J*DgGXi7~Hh9((g1>9n!;99PF@S2xe4q)0K- zC0uLFW$Jwk!tSo#dAT7*HIYUw0VXBERMINcxFxpeV1SaGNGX+NXLB3Dl>tY5^Xsp_ z@zrmB@aad<86Xx;%7749S-si1K$Ns3p@|kGWkN-l7Q|oyD~zQr@!1zofBg2_;qlT- zkBFHmg~gObMNNdp0=21VH7UX-B0?j)RY(Zr*hKuCatci+1`+{c5!M$RQ^qaOB7zd> zNpymMC^LGxN1iCG(@vso7%XTrcNnC=n2zSH#~IB6_x|kd_y3P4&)(_nz~cAL^W{g9 zc|0!b7nj*q92*V|MP*+U#O?`6W%5HoF9ObP;>HkFV=drLx^^^XlB^U(NQgyLx-P7d z4?chTY;}T*GO=(ZMEPQOzO;1zcn86}r5KV+t%#2GRW64AW1?3jmL}{X?L*+eSo!okWq0R>j zlE6$df+3ruIYrP`>-^DI{NhvT@wv%MnzRgNj0Izmg}IashdHN5L4pL z(-M*biHz_lMdn$@K!6CF@qQmHardrVoRbi#WaJ7)GO6mk!`*W`-)U77sQwp!`xjD) zkbRX%uz`_cc5IzM3^uLI!i?@tB5D+^n{txxs~uZkS3jS0U2jC|5Nw*VskwI(D8Y(F zLWD^rTs($8oEPtFYb1p-5Kx+$$GT=Xi%MUcyKq|X=n*ZXH^~gjqFh(^9w8txI!)Oi z1kAw}u(flebYo8I(~j070;)BOu(uH?j|97?Q1w7DnkVwigoF^7l_Uc_f`w-_0(%c- z`{LP?r%#_vV#?%^4k2Py0%AW;5*))I%?ZRp5`*fd4&v@H8chHLUd$d>2Y>sWk3aa} zeN(zPKdV+nrI-{GA}*%2n3-6SQnVJWg^AdE2T?I4K$S;GSJA>7=L1Iqp~OXmgaLK{ zgj%c=Hr;~HM7S{NhI+;*_GysEOi839LscP+qPDNaSgNQQ&nCNyCy#&l-bcUZahs(nAN+X8U>eF4W%5Q?NvZ}b5!9F{TE}rsz>>1XiWGMWACB^QXjmI( zCnk`JN9ze@V+|lZazrb$a&!Vwa4>~hQ8H6DF|KW;mBGU1BM&W=h&^JSHQXgt274qU zL7tsfF}izpZ&?mVa%PjtIk)xJ|A&eiz^~kSz$a_l9w}5zORVe8!*+|R@&=y!) ztSwT62|-|nF|$%72C9##d{Z(bE935G0#AFbXYIj5J>MH)Iorv+W7W)zI`eME{rl4^ z4|aF=)r@Zr%hh3N9qz3E?SKEvaEsBaRS-@#r2$abeXXmB3)l6^%&1D|a6kGw%wRb;wzX4#XHm0V@SX)mJgv3Nl zm>8bSoSd>aL7163phW}$N)>{Xt0mt5^y!;F{z;K|`Qd%05mq27l8NrQF3meu_aSZ@ zYHB}?Oh$$XW;13wul3HZG8ljo1N{8@=Ht)4c=w}EfBNw!nMst-ZVpecj!&--H|y#V zgfufI6qQTxpQV`bJ>*&m&5URb?8?&=^blx zaOMBufBZ)*`q5_#sENVXVBvWxb2S13!os`#w647))CwgbMHmFKqP=@`lv+$Pnbx)S z6cug9RZ1zfRHe1Ggs7&mnb^&>FD-5qGMuph03ZNKL_t(m+U+y}Ws2-XB&oGjR#H|j z0?I-hlq`b4Va?@8)hbC+M5KjFEg~GpzG=xAL}DD-DZ^<;(nubZU_H?pN zLLFo#4ECPFbzPa2i$TZG2WS{KA;H9==H!*jB(|Bk3JZsn8BWRw9+{JTR?olo;MFHj zpFdk~fZR`KyJ8^jh{N$(#9GguGEHp4V#!Pat)-ml-a9Rss--A@_l=i-{a600baeNt z!}8hV>!szf_q9hc*_U#wkW&#x-a9`#-_I&pOoc>u1&o6Hlk@DUrPdfZ;r>~Os9k`ge>j5%S3Pr>m911Kp7% zK0a>)0v)xxY7nOq5BR_T+dpDU$7N~Vzj=I$`SN~M-2evN-)PV+$%RmW&4Lg;7$O|@%x8qtej;%PCNxJ=VDgkRxus$#Zh>wX08G>e z0RTD#Fj0g-&_2(h#GpU~NCX6d;4M&)h0z1uX{JO(rV-$X>=8gt!~j6ThkW?-{>?AG zdDpy8dCDY*dGYYAkKxVS*A56Y6(-(e9E1vjvdoJcjUWURgdcqG{PykJch720zws-d zZEOAZvVHaOW)94e5F%m(fP*?9+LG|I*M~{4ZF+6}-Q)H9Uwrob^wd<>2CvVjxg>Y3 z_44)OEr1^Gj<@Gp-2i}@rnyW>m}&HWf1H2i?W@e$IlyB|vK0Eo*MITV<6r*gKl_ty zd%C;hY1YT5+vC&dst{DGud9KjaOguran}R4F$~X?TaCRW)NlvGt%>Yr|7>O8!m@t*%05%2=MKcdH zbeELe#`$hxwAwAvZnRWl00Z8`1xN(KgzgrAA~a3NNL|$&K`Fr`Kt?a|V^z}u5u`(z z_o^0RkcDdm1DRO_ID$EnF#v$mPP8{L!q}}#<}nZh*#Lsbz}<9CdCBuoivUVgTRTsu zb*M)-(9B@Nk&w|M&@Gstj%d9L$v!Y>-EONrt?L%4D}20MzIwWJjoLeScN=cndi9~E zCS({U!tX!ce){dxQyb4$(}?3ze&dH4}C4G`TPPV#%d`&YmI z_WjzsyVb7Ob!=N*4##WNAOGyb&)>gG!VvWC`RPYL`P2XBKmK2T_Om}Z9s1kX(zff* zzj?Y`v{v7)Q*Z_B$4w` z5Jx2_SaiXK!7<`hW)a|#dLyw<(bgc>F&J_3==JrM()s;J`rU02F#@2k+8PfZbNZ5Re&z0E1!=SCRlx z!k1O?{c?VLe7$bt!}_#Lg*YhkaDCdY;0)o0k%bJ=G)f{sbVVXK9i}NCOrv%qr2B_E z$@5S{0CgCBPhI~qg^U(nC|;e;ZM53^G9OL*+t+6yM2HVhkAR}u%d~v;?y0JWqLUJU z69@t`o9zla#0X6B-+l4P7oWVn-A2`Zs~493?){Jc@@IeYaF3@$v~~UVu|8d!I`+ z^X^K7(-b*7W5S6~XQZ&h!p8;Qf80L#^lqBGtvyM8{J2V4N{KNlB88c1vGA*l5C36Y9*LV`yN%1uHV|P47CIer zNC5k`_EvFTG7C((ZElL&!pJ%D&$&fg@Q|$u)yMj3h5C$QFst4~!arCeV*dcNRfaL1X z8z3^F5k@&A0CmN>5h7Sm(~Rx|oHby_q%bm*yYDh40swMxqFszau-9SsOEdY)HH0V# zAc*;Hnt%O^AAI}uv+k%GK*RCe)=)zCW*z{U84%qfXAA%vm=Yh4Q%PJ$Y#R`!<+xCu z0|ElWcWGCMU|^sFIy(B@@$mWUGlYKi{_*M75m1D{)E%mZhUt!b4NpcSqb{bkF5?g3~hQ{l^|OHh1-bBwY6b~IUnxR?RnfD zM+6`xG;{{0U;#yCGXw0y(7dUc1q(7pDx3ffHF)QFsd+F+NkJt_%F_gh_U>`JKhM(? z53kEI+vR!VG^;{yS_-b~l|_I=5SD_9IEIg|xn%L&dH_s-T5_iX=z;&+zy1e8Nk~p* zne${px2NsH<*98-Hhuc(+a*aL|K!WRP#=eBX3%^`Tc|MHZZ;g3g3Dnpl1&>YR)gEE zFOyt1&xM4+JuWv}w{8GT7>dg>_r9^@K3Yb~g*nlyV=@guaDc~aPh3jj+O#%3ERzi# z=3R}D3#ag~-HQw`g0$lPhk^JVp*xs~!6HOMiFlunXN*8ztB=i7p}7P~aI!>r&s7GGK&QFu~nv?ru5=ASKCVJ`a?=7|TJ-Bm%$s>HQaK(@D1p9?PT)l4HF&^%ZCF|3(KYbh+%mggtVZcU!y}JWMpxTQSPR%IcJQD$h z8KA30AQ7Uw6Eia`M=GMD!Rf9@Hg_Do-oGmIjD3vfC%x3F#`DC7S?-U-2(^a}*ac-% zNoIgXz2Z23#O3B@Y6aVJldbmFnBwSm4_xxC9KF{YLy#3-hpLpW;*Pmb7<-h-x z-}+mByND^!F?e^#;C}Pq zeWb3AL_m!0t`5A1+&(HO-WTFv0)~ zA$F!vAxVtxBRsag{`Bi_e(~<(^ET=ju){b*-CfNBeYgb%V;}{9IrwmJL~?)tLO31f zp)DZL!HnF@ylMY-z5S;w--NB9`t*2vx{cmqTYZF&u+~F09I)Q>cIl4e)x+V{IU&O1 zdwaeb10f=bBRi5KK&@Jb(q26?CGtE;%8<~8nYxL^WAZ}J1)KJwc6b@zd65sb3UuxFvT~Y!x)g3#$4{R-h7%(tgG0;Wycpw&5_3cVcF&w5$ z(?kK`gmv3f@gay22owawM5cfwj2;j>`kZi&bFzPT89?+zdG`qr3t=!21R@C&oDS2Q zyNC5U6#RL6>fx^BzQ4GO00}`DA`WLknM(#l*%gfWh`A&xX4>mOLLo*rc=<54)ol`AJX0F{_gPR&D|%{ zVLm^U090T##c<)g%ta8b0fgj)z%ho3cuFXO;m(Z1tq<_O?Yn5ynjfb)aO=-f2DQEs`zxRdUbeM%XMyF=uc*oc4 zTAL5(x9c{#Pm>B+-CFlSP$dNifA;##_usyG^LkOQh|rp~X06(^%&$-LG!p`~cFTzq zW)C2tOpy~Z3&eiVW8rAk1He(o(BrA})*&1%+VG}2Jf;l7mL;v5GJ7dLADJkIns5@K zi70$X!jhPn5^F+2fodZRk|2U-qL&W?7}B0X^z|DIv5fWkih`j+v;Eu8VCf5`DItJ=jH<$VXN!b+o4Q{RQ3(t zBzQk>;cf13bgA@2LZ|bHn9Cs3fP%sBYBt*v`#2w@> z00@zo2@uK7hxC)5{pi2^*Z+I?k0ZVf*UNKn9X>u*)6_Och>`#adNpm{)xz;%Ih;?a zOc2qx+Hb3Mchi^qgu4L*SP(gcO9I45WF--qgDM0WxUl3*%N>;oMSwX@$MotBU*FRt zd|YNk+bZTlr!z(}0GmoC#IcfX34;yl&wsI9TI5MuRkE~Jh=9=(Kq6%(8tQoHbPps#LC7gaRKQ?KK#_#hw030#hj7Hb z+XE0?H3D~B4-+DihKJXj@qC2S%n{I9zyJp4@=_&c3Ik9;CRPOlD~SzVAtF%0nL!L0 z!oREP?qT^|?!C9N{H3l18vfi?qWIxwp9|yr>oXzElIl)zjbFY<1OyRbFa=r+4Gaf< zaXvZAu9e-Ph!Frxkwua5MNPI3H!&cB0VEI+U!AAhw)MVVE!*!foqYAGfXB08(H=3+!W<8n|1S5sGl26Yob$FhFF; z8Pru0V(LV3I3NK^^23pr1A#b1Jm1>$%}(chIw46D;$D>@T{k!Mt@d}%x2<{YeJS}^ zWUKnP+UYO>#(GK2ouRH zkc8Z<_L!ELKu<@S3np-3B*4Rok?hr7E}|uaFhF4MESSO#z%w%w2Ph*f6Fl5Up7HK* zN)V}(p+gw*PTfHS@ZmK2P(@QjU}Q%Mq!0kwgEE7WK*%I>W(af(C{r8{!il>=ZN`Lv zA$w1XVCTFuagm%7%!LB?zIX&WQZff(U~<`8TLIx9dueNDg){FYpf<+0AHSV*`oSlk zzkB+y`IZWa00yaoh6|u!5IO~_lEofS5nv=TrWXX&UUN?r%qEP07zk!B0cZbZFb>hs zyN-|7C$(?D|4iuXk`#y4p|ztM-fr4FgmDLHl~T;(TH7$og-gaf;Wl*L+E%pNJ{24Iidt*~kiFNX%^vVJyPJ zDKndDt^9b4ES%T@f)G=t(_wPU*KI2^p(R2FqeRqIlN7Y!ftOXcR&O^Q7Ofdc0;K25 zrZ)KZ|HmKHttXPtzgS8hw^}o&`+QG63CiI}jN>%tl)Sb2{@vwtkYheUPuE&=2EZ^Q zKptaNYnQRMYwb4$%wl|4mQvWE7a=k)8S<3LVxj5okcr0eZeb+^m~xsEofpYsxc~zd zVdkjSi4&l%wL8+#-3T9Ak(qnf(E#1&9LovN;O?{tS{($|?@pzN=R~38NZ&y)4UHI$ zc+a$=Fes>biV=a}PF#orYVWz=@erpYs=5z%L^o$)Mkhc30nl<_+*^?V;XzdPlA=P; zj`rJq(E$#)KMf!_EGS~%Sfj&byM4So9S(<~HiiN~%H#%ayX`pk+5<9%6Mz%BWQG@m zBS1Lf-c!RwAs7&03T`hlI)5Rnhnbmo?H{cFe?ngp_S*YUy#b=u=stvZ-Xdt#?kW>OIAux++_g8{wgKQ}!IX%Za)#r9U!91F zRHIC3KR+&KoF-%Opdez`oC`fXBns`-SZJ-*s;3kW_mftej#vsTB^N%dYo8Z-x>n*m zr-B~0Zr#Azu;5zNyZ5bCRRO$SR}?u+sbsl3ANe2s;SY}|c{nXry{%*#L&wLbD|-I? z)n9pi{M-yBLv$@k?jG{(x=xv5j6O61+fZS0AA|(RN+=}3ysqk_-|B`N3eG}=Ob%?O z#F}IP+Hp$Iv{%SkVy_|~W@e@c9T7o}n|gpGVL)Tdl6;v2LQ6>`j^SoN$aU+X0i+5} z$wmBpEaC3xNOU?+ObUo&m3krU*nL#_U9XTxc$Vj)ByN znK^R^LIid-Mid0Vol|9mV}~h#gE=5tB2W9y3}RR~ydXPaN2CK{K+{;;AO=D1Y8H?Z zluYVqx|2?vXlLCax@E?|oijibD1;0Uh7dFq$B2m7F>nCjfMMa*tbeQhPs4uUwgLot zY;Ck2Yd1#V1Rf^LnWPA_LkU~_ z5^}lT+tp9m1(hJWbeZCnTAI zBizuDw%P%utLbp;gn@0eZHr;Sg{LAIBf`ss^F%@s?qhg_xI3U>-Wdn12E@)7;J_k# z-xY~tw>*+3@seOEh%c%Y0|2$K9*h$17LkBESO$WfQH>N%>ga%pk=c0{A~}55^W6(* z2oU5EW)1wiMuB^HW(+WMfWYvV-*^Wwhb#=id-->Sn}u3**ug?E!feOOdZ;Prhps;g z|FYgbmJH0OLjzGluD2#gT`j^(qLSt@i~+MyN`VOOwl=NJ9mv^8R5Bnt6K&fDVObDx zsJRDmG^))q zrJQfix(;2ASh8kJ%TxgQQd@wGrUWTb+N!o1>)OnLAj%{PotQ7z+u^X>9p}t=+qR`- zx9)+&RGaf}{q9?@vaaKkhoz)0kyO3)ZZ#*4Tf2O?{k*piuMXe;^!!`*$M2bqr>6^g zfWS6d+w^pr1A9})kO($VWFPKYBTEr+6bRJ7ZZI5&xoIb~gn{P3*+tBuO>-R2d7dT6 z(M1(+ReL2t0_%wYP)9Sy96`@d8$cRiItBw6L~ZKI-K{r6qj?e{3&%nv0q5h)XnEq2 zS(qS9&B_8(CWsLBIcrJ5Ob$T|-86l&(2Z=HyNc*?0PcwCB5^wCXytL>)V72Rzr7!=(#40^NS4Gh^s-4R^7lAB~of)RRt z&97fC!r$~&E>m^V8@LC@3%V9xg*A9Vx9Yc6u5YToT*Hs^%%pgT@ znS>b}xHU*A-)`CmWg*a^fKp5ZfWkv_q2qieAVCyj4Acfb5HNBkAwHBz1P_N)IB6*V z@gM&#P_$^hH7*p`fV?c6C#Ml;*1NTyD)e`c@4k8b`s>FpHMaZt?f2jO)n#6sd+n8+ z9lgh>J|xjGv!H1}8@e1~G)@;vUH}XKql(MCSfB}qih9WTuOcNqU+tt$q#1s+X zx<}@iAqe0F&W4PU#8`mX83-dxK@bCV7tZl_W&sZ501E>NqCgMx7ia?lDuUtex7#r& z7SV=&>;2C&zaQfnF%FZ6a8m_{r>AFCUaw<}2%^I|9ZxwI4!2gl)jl-Fz^-100Y;E| zXoL#^s@sU(hpLY;b~&Pf7m}&WrKIT)^9dH=ZR>}b-W)TAKi&F=_v2O_sY&kN``%n8 zBQ!+cy5%H6emqE`^v#!bYY9LQhJigkdFC88mPy=zMTnAi8VwLq*B0Vte!aDI({&pk zKd!>F5QO>|`0o8>c%&kC_s2f$a?#!agK9+!Sl8ao@c;Nf|7nV8jJRFp>3Et1;3yBDz5e`oJO$`u{mT#avBIPIK*vmZk>&E-0#aVO zT68lZ@0%=h?%I2gDJQ1@2kMZ73=DyHD+zccF2JOuFHACbAweLf>DHgaxi`=lK=9#N z6BGy|CPx?!W{9jUEe-Mj03ZNKL_t&T=8+i1VBP zdez9K+`5hm!=Vp9WEvyfxp^#^0fz;e=F^-}lmXmBQrK`}AwWc8G@XY#n{T+slL$hI z1l6b&5sDhIM{TiZX@4kMyRE%v?I6@l)hcS$YVA#pqP17e+Iv*3s=bbLo$LG!&-Fa- z{odd4;W*h0ofx-sGk__}6L_?NSQuD-H;A?qVAI)_2rr7enp)1b2jXxF7m~k-FjH_M z)MM0qiBP;@dhC6!R48Y~ttyk>=hm2mJSRShmLk zJ-1`UJP#*Dd$=`}lnS3cT$ia&e&VlC5gP-7y43>KRcQ(|!!Y;m98s}MzSc&S9~JY# z-n6{4jxzLjR0CS>fwtKkhn|VuUn)@KkW(>s^59lsLGoas-Tb9#Q09McjJl>$ z>WPmZZ}{#C4DmhS?U z?dGq%ZkbQJA6J}QBe^^$zphAM9&27=#FB7FEx)8Os5$U*RN%k-v)ewt_A1M2foJ21 zjE02aM1n=`Diq9I<2#s06J7j@Gd+Za_Fp{2t(xbKVDT~JFFfSQ&o3h&(5#7N5`nN` z-}PEXtBBUK+{Oma{GamyX`nt4Pc15nVPp@p&l~N#MWb6l^&S`)k;lHg$hxRI5W)2(*QXj7M*)G zMNQKaOoYA%5f>fl1*v+T=pd#cm@+~_Kn>FXjx~ojM$90XDqNmyFT@_dn>n^ze!E|o zduML}c7LumoP~eFE)Q*7^?E(xq7&jzVKW$s@t%7&r@SW+p3ev&5*X`$6n)?3_v(aj zbOaEPC!y`d1=-lvcV`EyGR|7Pg(Hjt$;^)+sNIhr` zB84AkJ@*&(4fsl(`+z%@o(RN0bX4m}xhQ*?+v*6dne><`Em=2eIpL7~nigEXYVWU_ zHg;}KothOBL(TNApNpwa&p3vnSuMJJDy{bL_8dune9!gR47D&d*aHvR*p!Y+_!Tx< zQfvDS{x~0gos>WrIk=X6;GXXOt1sKpYzC#6=o1cVeQEYG2V zCY6Q8?#x6esi8v0B?68!_352|XKfP3y;h(QIh+6d-Pz0isc)MOHtk9HQf#E+vD%_T zm;pv}$t)@cNt`KlR$*`$smp^mo_-6z4eI(H^?0VFu;E9qw&JPNNWrDs`_48L{|L?! zi%&2@R7^py9P9e(O{Qxpoyl3+g3TludEK!r`NgH-vC&dvWeykf1reWyeU|r{d-|*j z6uF71Xu@m>@mvCM4d>qeddA@|8%n-=HV2o&nVH6e{rdlwk_!&5J4#kxV-0GkST2O` z;k_H90WZ{9gFNiwbhg)SiC~l3%X%;n>@e|;;I^~dBfh`x4%XZf-+g!X7RrDSvxea} zd86$mjsGb;;Pjnw+-OR@NtQi-^tDc@zpwi6o!RGyS-f3>Yk#*ouC`Z3Tr@SyV!JNb z7?kabo7sY1w>sz$sT|e#__Z|GZJM+0!+_D^W05}pdfW69CW_JKu5c@knpjOqPd3z| z;~sPn)eIF|2BYEy>mR1PsxPK9qOJ&o`+(ElMKD3P-l%plEvBTOe)r8(&A%l0q7}iL zij%fbq+y#UjJu;H-TIH@4*&pqGDqTNf))y=!anHi(1S_cNquyCm)P~?`akK4|JfQ{ zT4h|ewup(3#>(7VCL@XdYF6$N)CDl;OctS2wzss??I_>*@3ByiuHI_(o!w8LjiS?e zdcI%&b#Jm|vR;0@9$h{jAkGJ&%ZEG9{2ujSU$hgUvbO{y2#Vs=j>g6x97M*x7%6!| zJ_zc!#rn0>2u$z(Fr&SnEgxj>B$IIAwp;Rv(b__Rhj6Pl^i_Wbe=!Q9B{XYZ_@XO^ z16-UQ-qEosbi}$F*F{_yuw*jNxfqFm6*_cDqu%h?3AO?lJ8ch?d1zfcl6c&sFZM36 z?mrroh5P7AQMC--`%6^thx5dDszDtNRr$d{_9|uG)H{~h^f%+JXZ}Eo{xW9fd`+$Q zH117gxt~FiW~t;whY?)~siGlGoc+gq%g8V7vTkGp3 z0t8k&YK)-1b6k4X)3wABOVl*m_1=OVN|NuF*4(Y2&D|;LK9sSfTflTX-@{Xda^Cy6 zA^`d7{@A(^+iH>_V{dVq%3Mq#=q+gin~gbzYNx3phUS)<8Tz$b2Exh-C%#S8?TNgx zQYTAkBT}6jlPdSp7B@OnZPt8Eq0uiHt@L|%>9MPgFlofS1{AIe%?Pi58O{jje0<-W zv4<(dEW!dK36{eqaH@qZ&5hQGy!gQV;|y6!q=2?gLQF^YG>r?`3NZ}N#T}v%XnAU2 zh0LTVASA8P4-I7MRr~rOEaJOk76lGf6kAvWzwOQ(Ok9qq4@%Nn(Plvq!PVPAQUeZuS1LKq3j19z<3Jr0mO z5@nIoiHs(Q2*9}DgEX(II|Ou;3fisPN74E}thE)Y?HHZ5p#r2xX&$b}L!@F)4RpZP z%RbuRZdiyF(KnZ}&)8u>EmdX#b#t`layN7n(#!a}w-5pU-R_dMEF9DSK4)&?XgjXX z!QEo$ZDQ)jOoN24JVo+%?vzi}9v}GZFg15<39J2mefxCDYn3<_hi{MDZy*$)k z_XcU{NuMRPLZ|bcNur>t{hCtSM#f`(Ye|-^db9#*$2R+PzNwZe6KEKp>rDQy@yNKO zG<$q{+)+$ABVTINv26NBnpI?*^P|ipOdO(f^>>YYd}i#O+zkohkXr3TcJ^zQ>+21C z3MNh<+*s|wxUZ3ucowVy=<}>867BWzCGZOi%SSGYRCNZ=KpFmsUs+AI2L z_~+~PR(8fB&w41bdHyh$KC#pE5nw5iw>RHE~=ki z&C^=_k4VAr$oS{t;)~%WX3=&BqjiIVPAQ~?_L^@KeCY|gJKT?&j{HPU9j1O0Qz*7o zM78c&yFi3Q$eWvsFSQG@&_*GPE`GB7j{xAjZ=j@5lgF0E?P=4pgcrPVJK zC0Y$8=6K*=F!lYJ-Jk@y*o2a>j^9V=6GpeMdxuz6mUPxyrqrW@g7v+lvU5>k85*R!#Ytese1GL;ow7W2z&IcAAqT6YIFP;nQ0LbC`Mdoy7Q1MUc)E|e!oFAoQ!A^A- zh_SmJF8`J&R5QaE9UA!Oq%E*=Gm>m!2s-||{5of^!*z7dJ{S0Aj&@yn`ra~IceSqv z#Ps2`7CCa%q{_$GFyOiEWS8%Y1J@oM9f>>j=R;*z*=D5;d3!A~U(?@`u17+J>Pq9y zjh8*&eq1=Z5=~NJ$Y#XG!i$@S^xso-DXODYzw%8uyqfyiHTr3t7Cd#=SB%BG$?@a@ z(s^-rURK#DBSc)>T7q#+9Ed1=JHOj|vp94kYGHbzg2nWff6sbANBz3EV=T0`3liEQ zvX@e5W`;CO!BA`~bq??qJm6dG)Ep;*#k|6WiJmaa(Gw%(cuoBI?PzujNSZ8ID zSRg-f(1Wl4ohrB9OUXfJ8P{UfsUiN+C*>!x6o`YBjSI^d78x-)B#|*(5g|{GkR+uJ zD#z<;_t$Sf4uO0~!@xN~m>m3_y#e6-0okso&x*Zp3ISyzel%=KehVvDNkVWaKjjox;_1)QPjZMz}-H# zLOh4X=1)ltDI3v{yJXv1kWSYVJ9W*1)D80OS6p}1&p*gYT<+G9f~TW+sj=0COcI3tmX@ua72 z8M4d+!qpG6Tz;T_T1cI%N9rj!Fhz^TptZyIoEQ{d&xPxy>Ty|-&)m;^quoO}U)rbp zN^vNe?B?vnwHQR^iCd}Mk__bM`~plZKdlNG6iUU$l!i+k8KE&xYBvHfveGj=dxhow zF6~PtvM{|U=jIkI2O$Nqwq-NHl&iL!3q?}wIis1uJ#sxhOq7f?56r%U{T>KJ;$|AT z0H6Bd+KFKeymo3nf&FtzG%XwH@UUL2PkbZg5>I=whPie~G`fTVe)Lr0)}CJD(15N2 z2C*wK*ltFjtvI}S<1KN(s_|)c1YmW#h_hZd_icA7Q9AT125dGsi;utAtgR+t)4WSF zk(Mtw(sdQJ7@0!M$^)3CP<*!Fewt6d8@$_Q=SD;^38BCXy1@Swo1b~7ER?<2jWgyY z{cffPRyBi}%eBi{MQMGse>o(I(wal_#pC>GztvPf4J*WVV^a-^#*PMKA z{;K)Z+1;9ZZ?fi5qRDz1%*v>%azHFxvB)fp}rD^Dl;xiq=8L2M>zh5FACpt{U^t4ypiad`Hci_OU713P_j{9>+c4r~$BV=b{dAG1sKP`~M$0zf!`Rbq8!i~zE?xI4PDE4Rp zDe-*nR5SM%;mv{ez(TD_zdMlm$k9I~bx+jv03#L46W$&VX+HKYowHe=^&;l{t#q$M zBVMp5YBgeL4~=hDBQN?=ir_`c+;|6G=MU1;=#)4)2wNfUzjXvx6s^c!-Mg9d_XD&w zZ~)Mx5ts)67##`LRlh%VWIO~L<;SJ~BB6~bjg>?_pl)Ar*PDIan6;>{4)iq@75k@a z1K7Ce0RL)N)BON+CUB-UJ(5h)Y~QaC?c`a7LF94Suuu7E*0<_QQmOP1A&aA z<-hU_o8Er^Q+^Q2Lf*@Z3eB1PtoZ#FPeyXH$a>=Q7Z*F~f#(G;jL-F4WhRoJaWB@_ zeIz2Wba@~`FauZXE|`uj$+XkTouKUN^@C_oISe=@RB^gNJ3d;Fr5knd)YE1|EVbbICSB6lLRC||*D z;rZZ4nfcNe{{HS>O!XxWg}H@XQgmL`B}W*|Pt5C*KZ?a$8W~F`Nx>PhT(DXdeGL{T zqWXUmuDt_q{Ox(%P0!6U2ddZY*SBkZI=6Jg*k|o}SSDxQta`+F#B}sa2p~)20(^X* zT@?3n1`oRp!kk;3B*+9nx73FFvC0^oH<`T?mo2>5Kect9u$ze1Q=uMVEnQ-?=ZYw0 z3}EK27XG!^502~!5;L=)M`3Igc#N($1r;CQUW|j0N?M`G|`7`KlEj@&c=HH0l zXrk3egBe|t{Uuv0qhl7+Pz94ym5i7>I{r>d^ie!1OEzn7pU z){WI=QB|-_5-PKk?SF}XE>SVO`QP@pp7W>M|D<$Yyl0Gp)$^^WECPeth!{l}6Xk}# zbtsyBoD=}e1sTFXJw!CVB+ha3k8m_7Rc(M_-~J>K5pDLx50n@+Z^eYoQ$W zp-0xVV}5&|r8NgwF@GmQ;Vix)&x%iTjVR0)M?8X#ck!!u^WzKI7U_)j6Mo~;(XNZ% zr4j~^jn2aG2KXJzpbwA&5c^@lhGoh9D6}@9^z`i9#YZA$>5pc^&815#<3~3r=-k`X zt;BT6AbG+6=CGCOkKQ*aq@LlJLUY{EUW{{TYG!7+6%xm_u_wEb_VauSW0rzR?#ith zAK-mj&$xXx5>iN2rYX4APV2t|pCRddLN#7N+6=aq#i7s@33O(|tjbkfJ*@$`H7-ZSF?m4~%FI zjMUjhOao?4(0BP!JNJ#g2wCJ=pf`JaNLzO2LHmNm` zmXktc5ZRpYd3ko$I)I)c3^|*}0m9sY=YSI_dpsc+coUIeF+&axNGg6Gi|YTTpQJWU z7Ou!oz~0KxpKvn{KEzaFf7Y#Z1^1$~4TRVn`dM@Oa(q|`2xymE07Mk$Q6ob4qXg!ELAw{LZ&*GGJpO+E`f zu)!S7msqv%&xub=e6-DowdZC23|cv9ZT)0|TJ~zadRoWd5!3EA*nZ|2SjY|dT1KKi z6!GuxYm4L3X|bEY>jAse_4!92Qat^j{`o<{iKD0Ya#<#n`paNl*E8`|L-#__m+EzX zfdPEcvwj!Hu0~?UIpZjHeW%dJqB{|($=l~EGfDaZlF1&Xu3UXTyEj|XI^-U(bT&AL zZ_pgq>ZvPc$nk`ukB7~=&6%@TOMeivyS`eWCQF5jSJH$*Nn;cTm7zd8hW|>J;muUb22*~@aD8X!iRko&Z@VCY5fUBQ#wj86zy=xV7^dP(jcBY(0WlhLZ_K&*a1VDm=0uM=2A<6q15xiHyV&2k50 z>=*y93+IzB{Ev<&XvoM4jd}sm$z{+EKTv=AH+fEN9W}pu&UjchwECz*w2^Ui&D|oK z!kmcA($p6Qzc`3@uTEI}t5?IIoKDqM8XI2Ml~NG;*i?p&^drY-vWPo*RqtF+%Ts>i z0uP3+?cAT#aKA2{ode*<9=9>k+|yo^fyDzNNcHuYI?H4D(hC&tf6gJMp+_PGEg48+ zHJ5F$e?QJq0z0X{dx5q0rL;zQIxZ0Z+^@N-`j37d!4K+7>&E|yTUI^B1u0UJl~~cg zO^>U&h*GtjLNIRz(+2O}3Mav4Hc(~2QnczK6vEfm@rJV;M^ExfoMwmH^d&1~83uqr zP*yG^Q5me&hvTSYVu4#pbziOx(2vU(Akk1K8x^G`3o~KrmqNP36cln)7WfLr?0F+; zI^Kwv?EuXt21xFEtEa-oo{0xB==7(nm(p7C&L`cz?oKbBPx?899?uV+Z%SCJ52`lk zEl-8A`w$dAwLhwu%+wy&db*W;l3eiCOpgJc>9%XBQrW9P0ZTNfvY)W- z(0hTFUR=)mcVv6E^0Vutn-5}xKKodpYvp{UzKYyd*LQz9W%kHdfQz+~~k+njgC~B^RZ~KK*bTJFg@QPXoHJ>~?5qf0#BerYoFo z`wom1@e7@Cup92f8hJZt(9Qckt9?&R_*>a%*NwI=Chk^on(OJ{(>a`|i`&*aTqS!_ zcZGh!PQXQjXyIKZc-4s4e|WI)+kl^kGBkFrB15NZmy-uIl_rzHQTyk4!P)-S+Nq15 z@dQ7SJGZ<4)peuenqmGkH}&5Yb1Z#xdVF3~JH~X(<{`MwvNAicax{;Ue@8PP6p91k z(f5JeZHtAqsgx?(a!c%a&Jt#W6m*V0+uUE{%CS7S)Nhn`DewZrljG{z^1Xbp@XD@F z<$2&mdau_aWH~;XXb4@o_9I#5jCfswU(~@9pGMQk#^Ix@i0xPX1L2`9vVrQOsc5+F zKcxW%whuXtHKMg2BP4hfJaanRMfE;QpMNe|`fI`#YVW0nBW<~C zw6it{O6YZi2}fh|n@I_Vaf+uJiw1qD1*H=)yP z6wtF*6{_0iBmcd}DvT4^$uPcDIl3ni7|@#Bak+MVA((PG&-#4f&jr5~EbN#6swR1W z%qP(_k?GoO`Mid>c>|rFVG@bW5)+b*)F6TIC0$A@HL@Pc$P8N6{uHT~gJ*IC@V7UL z3T9|X)nfmme?4orby`7hr#UkePhC7PCUWU{i$)(WaN=jjr$&clm?&De{%g9AfQiH8 zz3UYq#PzJy<^VPXf0<0}y&t1Pdp9F%nQr|Xe_d;xtah0gyJu^R7A&5QCX{-`AlFQxpAHFA<@l6epbsRcZWNAoOC)w#1q z;zZsV#FhTc*YDNW+xGu{a?*8JaJVI0rtzY7!a*e)w2si&?f|k+HOAB$ebduvu=_>Bo~d}>B~N>0pm!1jyhb)%#1lB?zJe%tBprIFNYDB}nSiz5F6tAx^c zi46saZLEJa0@@vJsjk#9F;O>ALWSy$sE0HMM%z@(InW1)4-U~ZU34a-8+*lM)9JrQ z>IoXq5EB22y?ji0sdBTj@F)`#`ER7wM#MUZuPr&bZ+oUWzhkEBYVt+k;hfhHAi~6T zGOqRfbKpf?z+qFt#>&z4@ma)nS>VNZmxsjAiw)bGtqa){wg-pK*~6u{*>DDn7t?Qe zey17Y3cWN4Pv(dq!D``(bR2Td&Z@uJ^uya65CW)Q6Sc@*!c(@5_R5ZdEXbn}WE4zb zBVAgOfYIos{jK@j)>?Z`bTlHO(bzd<$C^st3-DJimQ#OT1c_%{hsI)yqf`l)HaI58 zWKKbvG2W9qp2%AM*9UHh)}!qBjkUhZorAs0-5DpAZC~TEy_Li5tGJ`Qj+w^Pa$J;= zcN+puG-hwVQc=Cc1Z-0DdPvB5s2gxqKj8LkI;wj#5j)0|IkX_1@wfSgc3o!_*vzWu zlm_+jpVc``cRk(=x}`kG**tS9d0QcuKW)6%@h(rMy6r&r@<`_|SetjUoiDNdq_oHS zxyn7PY4)JUYnH^rD@zln6=(5Mhn}$1uOhD2*lr_ccs23QP!!sNv_==o z+W$MwLD&ohSejD-*&?YSK-yO1uV<-;3)1fwP{SoJ0t2pE*_y4%EcAc0N9Jj+MQb}E zzBShbp6uQ16eK&z-uzpKZ8ti?*CD0gtoy|>S)}H4DZe`ljbNa-WCeij5(y}g01Am9 zA~%2k#eqkz5Z?bvCaLMOg1mi)G~@93{>(Un%Kvb~shJrsOkJg^iZf;icO*(OcJm4| zoRLdxIopBq2u{BE+8Ou3kpa-Yr3Mv=gRT#P!2b-#!t%lGJ>O`CU+w(WOBkVT^0djx zvfdg@1jMQ&po^<{wudVW_TXk;q+y{JuSS;ou@nS_M@}|0PnasSpz9lzT`+Ugf&MU$E2+=fi>6gwX!G^elbP zej9Om*>#Ro-;0f}F}g>mPesbLv`P^YKhZS5s};ejFd3@~tNv}nkioanN4(ChH9i1h z7h;fgbE z#K6AckL1ajtu0-43KR79ZJ|(h4dxF2TaJVkdLDFSbZxtgawCyB3~=fQWnPCRR8^bf z6EOnt0>;(pMi^Y#KtFVT=~9?9`n3!-4N*OnjZK#Gg;IlK76}5uxmfGRLuNu5Jo;KD zPG(kY*$M&qfh7ULu;03kT>rETRunni4}w90mzqXsd&WO7sK*D>P^0w9e?b(GR#Pjb zwz(SAbTNxEPpHHE5HyFPn&5{-0(S~pj`f64D3W*oNV~W^7kFruu(zx(d{)eWK!_*S9I(f5 zs|1odz0I)}+}fS1P3xV$k5Z31WPdpQ>bVfx$abv?GUJlw0 z_Tblc&N7T0_sLpKySj2;<}2QHckfF4K1bwG?Ao%5Vgyv-Eg^@_??W~z=3xV)b9gICAQf-IC z;yV$s3V(uBLx6I#lr#oa))9^&b_QaHIC~QGZRtX!GiCHu1WJv0!kHz32*@+ci5v!v z2uNvy0?j`K)8vw%Hnp9UAE1u_)C+Jsfxt(l()3eKO1k=o?iF8lifa>W~0KU>?RRPC6ExqBUMzoDktK0NGt1l&8-xV zgh8_GNP{r%Q+OHaVaWE$i7_HpWh#AI0;GHbP^4|~sE*>UP*_vLTxnfdO9S|ozQYF{ zk&S-iz3mBr$y1#T0xoQQ`^u57yZX!aG2-Kb7?V-FlUMWndm(9Qt;kLBkqt4*st&G< z0uTt*i7s&h;?;kzI1lP8?|5EJfpi6pvmpOUB`oj$vE?a@>Ofa8h)WuoF=#clwt5BE zOX-;MzBe&^{=&(P>%+`M*Ot`xwz^5b@`WS;TIwI}>PFZMax@rRF=1T4(t5dY!wBg{ zu~(Xfr?;DurQ_jYqC4&B)Uz`-nL?=@m`R_sx)#dAZI6qYRv-G2P^OUD@ng;_{@?mp ziB*1VorKgBdI+A7Cps3fQQ7*12t+v!xIahS1ANt5COI@(^u0H6cECdpLjZVB?yR%~ z_)3uCbX|4d%C{jB^#9W*z9*Lhj%J2K=@h$2poEiIC|h||NRtu{$O=TY0lN10F>+8< zO=Ucyhsnfz&ffUXN+TncQr8axdP7fRZN*0h1R{`A=hPaefE5`ViQRV`^X1!@F=OMi zyovE#$JRn&7Z{Zl6GS&mh-5Q`xa(T0NSx#mQ_><4Tl2SUK$aUTu3`hTJCYt_> zIPtqY=sMcbn!FqPGN6T)N|NPwpEWeAme(c$ud<02Srh&m%yCk2-`t7~_! zOAGMkK3d<&FHqDD3$`x&0Rf^=RAzK?Vkgc}1q=1=4u=#$)*XXuq!%sR%T1q6XfH^Y z(0DyS9OxYzCm7``-sKpQgQl(H-;Zd09ydC=_V*qrZzdn2RHZHrT?UT^f~dW^thB=C4&6SN75MsgN8%rwsdJvIOW`jdkI z)ut#4AS_-A+>!6=ysapP6cb~>oC`lGuvNGZ!H0A&(eA?Tqc1)UupufHQ<^~3ZRfAt zdOFN^DBF>k$*IPztfIuSxR2|;e}_w?TW&7d;s?S?;^O??oV_w#%H}0A&HSBcl}X4$ zC)R9R&h$$cB)Zt1*l#^2Ul!+}j!uC_RCNBVyYTj#x)oyGIQH z&gbX1HBV0Nay`$ax*ra3s1bEGmVBCKlcu2zd^KhKS^s&`ns+*0PfolrWE{2P;1Jc& z-x3_$DqDIwbn}X03EE%^&UTxA88fc}c-2dA`XV9hFH#%Vi^%k{S$o zLW(q|K(XdzODDFmtxfw|g_sLG!?>!uroVk$C|Wn6HSRKZKI7q5AbGG-QA<3StfBRc zS|F0h(EGg={5KZZ)|pO5ZUI2ld$M%mVC(DVyR4i+n{YgR8KiXV|J% zQ7A$8l%`yoJnSLJXy?A|JsOHITz z$b>am>h#n(%vrEvS#j}@>HpZlb<_WCa5PMeT*>Sii#n-ZrOmBzf9b4Rd_%nrOg-p zOe#_!wo|They}SNf*1iYv0)g;W`Ud z&+)#|NOlTk{a3so3E+E8+eZDP$x^(oD+)yF)rqqTT0-)`FSP04S-)TuajNNUbDBn; zj_-+f0XD2iDiw^fm)vYjE;D>}sdN#n*p#KI76QS;W*HgV<^+P4Tc=nPQh?1DI}@^w z+ZR+Z)d7byP61bQPObjeyBHS0a@o!L%|m_mty`xI`6S%Re(r&5{~5FmjWZS*lFOMG58v}^j5PbX|xlS#flzxGSM3{ycIf1Jk%o#epl zO!aSVt(VC+a-MoJq*Z%2x}9j0DiSDowM**bGInG8r@KlEuSl^y-l>Aw?&oi+gzk{^!ZPy@;ctDuAogaXkSS3qkp=Jxb3j?T9&?zGkLBZrv@?hG{ zB|x;AxI$RNOzdFT@KT{>B#heCPBfgxyoYPn;O)%MANyPyTHZ5HEUk(nUk!4Rm6Z^0 z$|<$gdbA0L&z04B^tq|`6Nw_%~q>}%UT%{XpJ3tig2ESRkto9O z96$*!G-PY)jErrYY9(H8U8Mqm-p}Pa$*1N^WK-E3v^D?uML9h3B&_fQ$^~#=*$^g9 zfRW--Ka;Y-+>kJuGzR!?>1!)!+;O>{jFM(+CiALs?hT2? zp@O62I&+pF!3glzK)v=X+mf&!0EWoEee*?%ZgF_`&m;#5tn%~^gyp`jRs&?Lwj@~c zeIhsf$4+kR+<;WRC7mv+M-{L4fGaHEbOmJ?GT}3rFEgOO-CP%I53l4|IovqfPj5LZ z_I>#_n)YO7Wyj&R(z{rMY@^Hn9Y_gXIsp-5GdQc0D`nRYH&AFjrua50b;> zlVIhSC%T-EoT(}^T7b;-T;U9WVA9>M>=24|xzG&W4j`O4q%d1GvEla=3YPWR80OQgk z!3=a*T0EE!Nx~cq_Vb*<{R+Y%%uafVA7dWmZ7vC|y~uo=5hR}Q;n%e$`62?H4p|E@ z{(GD17nT{9z1k_e{%oRSEXIm<_IfZpIdicWc=~zf*kEXg9q~g_j}FVC4gOP#H**C1 zafDgH*X1G51W%x?IF13A+8_a=5~BX9Isb}5M9 zcgaEp@7y7Km#U2Tn|TtNp2FIHH-TPac&^{Po|LG`QjTJB<{YNlfqKb0Egk${}~0V<{$SrM46@^-mQzRhi~DdtGk8C z+95`jl$F$$!93^ya>}%BkX3dfZ>XFyo`l*oO?Y#d^^u_~X>?49vklg2_V4E*i6%q4 z0SWT^7w7jF2da`M?z?^cE`)t+&R6mx0eL@Z+jp7{mR}J~^D~zL=qqu;d3+_Nkst8) ztm4;C;>miC-=44IbZvf`3Ep`upHk<3K6LZ8^;r$7D3p40hB~QlI+9%oUq5jW z{-=fa1?nr_Q_O~vh?9_0sEj+RKU#U$-r;yI%&Er7v}-<(S4iYdP3YX3Gd^+A%g4LB zIjcv+)#&2BMSB;1c}=#v3tuh8J_f^6J9o8pEn?;JCWC|aZ}Y;Ox%ZM7Hfe)iaz3VB z3eUQ;JAosPMyC6 zsLKDe(N*Nc@LAuX!8{NpaF|QcFr>PB(Q$oF=!dy`m19!(j0Z|SCw40B%=Lh-VP+Eb z1S?(<_ULEk{(#dxFTZ0K;t^y-1$1(IZRxB1j57O2mUV}!@s+cy%&B5qbfXGlG;L0> zCpKx9hsATMfuEMBB6rWi`8kKvld6F4HXl)@xsw#*mC_WSmU!^3CUCd= zFzj_WYIqa>l&2lze9zk4^b!xV%cmg*`8?b+XfaAM7OZioD=pu=m+bYQ4X+b^qu*64 zbHci(N3VTIpC$Ko{M6Rsiz^VK36Hw`<_`2mua#T@0W=?!S}DErmNo~t=uzm5bf)W2 zi)6J<)p{dC`>(CT5BxUKaioOZa`oq%$MROXIkX-TVekS!be===ucKWI`O|z0 z>1Q1`S2th%-?%0q)Neu;E)M3ZY#V}80A6+b9(QC9sz3h5ZF`1wiSInK%aT(UpDX=~ z$8Tn&hQ6JhZ?*rW^rp$vZGJDjB6dUL9F58}k_6JI{az6lj`vcPGK(KSkbhhG~lk^mMgpam75LM*+VYi>WP4lLVpt`w%Aq z?X=gs!Cx|)%b4Xa{GZ-;8p!5B1K>ie>U#0iz$b-h3U$p<3@TVv6_t?bIp=Lu2_5?o z;~~!YBZDqy;PXq#g>Z3gjz+lq+wzExZ1vs8)w=ZT4br7jf2fYwj5sPDKaoAli1Six ze)K2yP)f(-VQawYddJ#}uf8Yi7CPVjjd|OkL*X6T&xDtkGj5~G03UY^6ekY@-t?|~ zrp5JX$eb~5k>&3)WHzn$qxQzriM{U5p4SuqB=r!%bM(z;{on1bxPc2?gM9a ztuw1hav;s}DvP5hMB^KCRJphlVuF~rsfw}ghwmeCMv(QFPcg=rh_cjXdZ1WxWXU?1 z+4eDa|FitcA*R`sF6-~Lzb4D(3DbRXZA)HFicULA=2e)xB#?xXt_Ugvp^X17{v7J; zklV=2325c<+ZCVY7K=*NEx(UCCsf7PGbhGg|yb%hUqP%k!1ilR7T8 z(Kh?5{QOZZrw6lW1PRY&Z3L}Fq}=xNzIg2J2czu)RiY@06L;#PnqWKZ?9b}hC$K~w zyxLK%BY8!&hg}WDA+j?;Ghz2zA~xF7l*uG&cAYv~GspOAv~!io{4qy=PjHqTx=JCW z4NuYL^w5KF8f*h}rsmAZ(u}n7ZpRy?5PeH0PVan5W(6PQifXh!v$$T~5*a^xcXf5x zo(9XAoxJ?_{rdXXmG0>U)xy_+%fr#X0fz<8_Pqln8Fz>JxKVRW`a{riSGu}?-Ohv2 z^`A6fZPrqMD#ogKwMslmRnMzJt&n<_`%OGfeT*Ma;3P<~IT>%sKRDc#Ym_ff4RZr7 zgjeq-C8qyEMLCm%-QM{#!yl{r?s*Hk&0*h{Ea~S;@MshW#okZRy({goT>|;4RMg2W zMx+K~O$=-UBvr4!h9`hoiMiU+XW7Jm<~mJuNg^$(ti<1)L?8VDN5-T*c&N%vH2kD{+nThC_5 z8?CK~#jJ)L8rO~g@aDY4!Hf;p9dP{=I_4Zl7#%7QQO+N%&2yz-3NiM<`tMfsR$}P| zfTb4pS$!H5lL= zriLlMxJDI&RAGXe;i-vmmQ?a8F??X6!0lr!%wnD%BJb|!pw+Ns?1h>^ESKRb9M zVX7bcqlnS7=1lOlKn{{iVYkA8S285GnA~M#dC_hgudLqVKl}c5m!7}aZqfwCubZD|(WQf}JfCLE z9sgY)Xl#Adc+qq+nLRf2T!!U`ujxnamjO4<*LP&4Z|yXbchs1;A?8a@BiqEr^x`P& z$bZLLS2;d0yz4Vx`>(&d*7vDHq}~&~$?=58N+D$F`?OE#Vzb5ptF{GH1zkR}{g#xg z;-4)TU7sZl2*yT4Uhm4D<}yTK9~+)kmZW}ri~y61Jv6C)Vx>PD_3;s$;a$xjV^)Z! z1;=>Wx4UHbbe+M(LMrjB5YT0Lfhx8NpVvQwd+(S;oI3oZ4Wx@&H}U(7(hPNuPsyXc zhtk2JA27gaPU$QfGD0G2k|v(jzb!B4tbDhS0<_sV&aT=QUI);8Oxk&))z~@84(%E$ zIJ3@hKYC!TncE`m-|A3sONagS_Ml7l>eOrC&rXMa5$XQf(%+2-fddNk{xcL(C^Z~) z!U!tbi0Kv-K$gLMC*pO{I`7vPweug2cV)*kVYqLJPta`fGO96nx>SHvVrM(kCUki* z5AZ;ohb=l~AR!@))XFdolSm{NkA~G+`%>qT2grGn>QkRaD5Z{pyz3!%dZsJOMktuP zkA8RX2W-4u@phhC8GRH#VgA+Lsi3$WW{w2;%>Ai*(R_7TwIW58Fu0fyfo_@m1tN=b zT%YiD{npJxL2R|Pfwk5Px@aVSwGEXQ|Dxjb5VEyyeoz)pnPXPGQDr(IN~_jxh;Ug6 zSLvhRHX+b_k%&E9>G*U@>L9!;J9UupOVPpRzC%u4SRLHy)k_!5$d)=+F>q__6OB}ny#4zX|L^s$RVe5 z+oRT6kK7iPmx{DbI`kK0E>s__H^(-*LLBw2}!)w{fdTSl(dYIYMLoSF#b63%c zdJR!5&s!!5v>VJk`7OMg?8$!WDCtXjuz!BEoy@;W^l!gBHjKK&|6bF{|9b&6qul?C z!;FXga}Y{$mE^sc3qS~FqyW}hJWiF{EVSN}3srpiO!YK%w9R;-anwbYdjmt)AWdYh zotdCWF9rG4#5=$fic+ttm!(_7J)W0o3GQV_8Ps_=a9S61Rh#Ww&+s+-MH7F?>-*j$ z_Foi6A)Z#lf=a!-ZG=l-RZ1}1Zkw!jo+ckl56!YhhlX`rtyOKXFwe`F)D$Zj3S>mM`_?R4S9g?wl(|rlCMk!T5JXr+&As(3V;z+OK_Evc zMHOMtt$zFcyQgU$NXUDDl_@BoB)uDvWI^A0>mF&Vbzd;i@cK9HdeZf3Z=N0w&&Ks+ zm$PNYvzPmB?QnPe;?pmt-Q)xQjo<&n=hJMK`$PTJuYUQvKl{bfHsAWEAN^RVJbd`@ z=G~=-acP(Qt?R4hbVeC6;k^YVQ(<9Y55js`l6YNlJ>zaa`lic9(>{ynP{!9EPH$gb zp5Gle-(KFo{Ig&E`gojo^ZfnW_rwQc4sQ^W49a!cjA(pzsLi(f{ej4PPjj2+7p3IZ zuaS9OE?V`nK9;ITS#7Ju_v3KA_OSBF%TLmCv31_fr}N|CFneyo5E0c%nZn$W5iJ82 zYs0mw4x-2);*2B^lEDS!o;^_*%A};$-IxV_^Q~B*Wv<&Qbr^bcvsLt#jkBHzyYXf{ zlK{;e$V+b>xA{9jlyPIXI)D^mV)F1La%dO?!sPH^1_?#d*6qA@>#jungTBMpwHwUb ziVQ=Y#)0n-y9fug`8w9!Z-4cUYYw}~x=ll&zyA;aS|XGP#0d~V1w{wEtXM>1Nm>RgpOiy1XS`?k<-_ z2*KPO+m`2bn|HE5$WOogz2E!EFZ$*``TQqF{?Gp9Ke=q@f9)^)LS0zj^l2{q_7b%CMi0$K&n>dkOT* z<4TphQ++)jIcPm$h~DA_y^N zRwe+H7<3?1PY0l^ENs33`gmE2jH=GOcyx~xiQHcHzS6WZ1&2m*k1HdYiBrv~+YdzO zOinju5OKFa20~g-PKW|P&%CYqNZ36I+_Qtc7P`qj)_YI52Z%GdU;VPW15AwQ%>3;B zZa2@_@zrlW><+`UD|0<8=cZ$srh2)YNJ0PLfB0*jpL-WZ4ude zOBHJ|j8sUN>T+E@JTiu<-b&zP;2(f*iMilro1CX<-4-Gpv?{T6V+N~&q?vKvZm6o2 zOOX~m6HFRzyLl9#TYG$XGJC zx21|4_Tz4pFTZ@T#r65i`tqsLUR+^sA^O zLW%(3kc>`Dx7Sy8+?*zt1y##5iFNO{;W;BnRY2qxmO|D-g>8!fT6)WzDvhHQK}0ZD z0u>&aB`8~4DVdm)Hg7H1m5T*DuP}_GE=#=r29f&dms4WdT31%+X1x({Q792mEK&vL zd9$qt2!ZTsNg4o^h+v8>f+07hJEDsODMP^Ns@%<51SM(m4X2!u*4fe`(&4T3*0j*{ z`DY(Jyj`Bomw6m4AcM|R&1myD^tRI9`QtyVD$GpG>(V0P{dt?GN|DnzF*wrPLr0ye z2(vH~r6V%5@ZfGBC!{iW0^G)7ym8NwK8zF6ILXtP6afa4uxgp-ab2%{2@-g8;xdfd zY$Hdh0}G34tZvu7a?22QqEsf?A{XvTvhG!eaE$Zr#r$?gZLDF|(YvR!iiamhC1uEV8HaM%;;{@+iPk-$LRL#-j!YvkpkuAw zyBYfG05fN|9xjoQWi;%<#N_Tvz&5#bTaJWsQCWhi8QdR)f+xICSg z3*EguY|C~ShsE-EybE+(q?wQNO$W67UJu=KZ@Z%xt;a9n&I-E#11eW|q#X?zbihU%G2XTI(KM?@B!+(Kyf3P^01riaJtZ+`uTYyI-`Pwo$gn*)3l z-uk(_2^9;&zj~8LBufEj>m7vj4l;^NO1KiS^&XVdsOb?&&1qZPdi7`bFO?Uj+?tD2 zP6ZH==GMH8y8#&%V2QC5;?lc?hgsJ_dTY!|0wo5rhXr^yP&z%G>9FUbX4aOKu2&gH zj5Uqi)5y}mV=XK}6s@7T7M%%;yA!jADFukbVPTORNt6*zGf#qH+j6z+-446CwZ5*K zyIJ(LZY0#*g=?mDH;-W9p>Ppo0?w3k&kGB~Rq}ba<*=Kt{hDS1JU*P32Izrx`SJS?-@ShQA&@`$@{6&=ci+ESPyF)Zx$YB0vko1NiH8}#{>`hy z{j+&2_lKQ8D#_`5wy+ORA6nq!;|nw2S_jVK z;yO=l>7%>nF#G=f1Jm^J^Or$cwd{ud+gBe> zPx0*8{>6TZz8&w6Byri=VgLN})b8)@@Ase9@mPnwYVqjX<@&VrcTa6;6cMG2ndt5O z#miC9=Q;p}gk&z;>DTZ7?A!J2FMso^Z@+v0<&U4ee|NUF{rGpDfA-l60dLmFT8T5l z3ZwM~$-;IlV7)Gu z)y?WWALjj7q7;OuxkdWBho@wO$XtwSA)01@%+>kr5MydTG5ke~$9tv*17tY>t*{^o&L z=G{JHyIdC4ayaa)H?wH#VxYP5{rv2=-+!m|{x}aFkr`60mNE|0WxHHX*T=`$&o7lO z`@`I96C_hc=hOK*?MJ76e|T005TdP7s#;`Q`aI68xGd}SWMmi=o0)PkI7qGcGVyLd zjiXlColbt7Kl|~gKiyBe>y=(TZp8X{^`Q=ZTg}0Ro{i;L+tbtgpZw@^)e^nG|M2>s zfA!1nPTyX*ef-(+*T4DGKlwj@`yc$xKlt6B&+oo(|MdU+W^M5YzyHbeXZMlTy=9=P z0#1zUb#p|e$|Nm$C@N)Ortlttp)gTcH0uEeu~r#tEiHPLsoSMUB^p|6EW}Bf(cLZ1 zt@%716&AS>QKTm%5ahvvjs_-2fJn&*C|ccNZh6yol8Gp@S&MNuS!~fgQ^TSR<$9^@ z+UC3D5(*@`hxaCgQU~h25tWD?i4GdX9WK_~ycex;GlzJ5c<8=GlGRE|l1QzRX>T6R z=hgP(N6U4)E`B(S$$59275w4d_3>h-r)$7}=O-U+Z6)Epg#6XN{snuQId!UKH_TJ1 z>e)!dbMuzHn@6{{Zf!kXuf#kIIq!xbuai7Gj?=&_ov4Gs0#FdLM{^5N&ae#k%`+sE z+&xJ^67a}w;T1fMN)*8va6&%5U)D=ba|M>KzJK#CfAe65D*UT&-k#3<_~CqixA(2> z=ZO;c`-7+#se|Ox>3qJdms7i58%&S$?AsC%l&pk7qcTNUhDk(8IiJ_cLuFB-^}H<) z>w58JSrK+Vozvv>bh$pY%XzCZw%)9DB_`49by>F#PLec=6{^8+t_iUnKrIdAb(Zb}+j!ZCH`fk6kr3^Z#%5E&8RRusWVUz>`Xpyd} z!qaY^Kw)8n&Z<)DC@S8Um{^~;dweQ`*BC2V;y(%^!=MR z!3xrGDC^n?OsMj={>IM)%p}CDO61^VI3X;0Z>#w=yE{TyMzBYKSZ@>F?8otQjNFw5h*bjx_b(C=&idH6U35X0*_ru(` z_05NOo0*1>Mem*+#$ovJ=bucoY9%Q;*2yD?$S9L3BMMI*VelR)#7ZClNkl?a20cWW zd5`QMO?YNRE)i?d34x@owKdQ)>AbXY+AC!bynlb$dcU?a7pMe?+|+wj)}m!BMY*(1 zo7YSfEgWz+>jqEK=(aF(Bnel_7|K2=LtHAx9gy2~y-?DJ)A`l6r{&titX;x4Pilv` z%%ci5rGf|*?8XBq!Q7*zVcpK2jR~GD$%tCYwWt!LE&BR>2a0e#?&nFx1M9^;Je)zb zBp>gNZMn|lbUJ&B+#T-ezxq4>J^-e?DGikA-YA2MGF66X+20>0^Yyx|o43fIh^m^2 z?$*!+l*C;^LA!wfbHrFG1qWg%CBuUdK-KEeMQ#dczfnz3OPfovprKG=tAi97C~j$W zT6?ojL#aBFZ5{?jw#~o&{sR&OALqK$VJf?Z^?Y6S`{{bQ!1&qy4hbR(WF`p}cb})~ z0oHQ4Uc%#iy&eyDH;*5ih#uzSM<1U4lsVd#Orvo2c8ZYY+Q)G?uTM%&X?V1FaJX~bq{yn4>XVE{y5&>9nKFA3hP0n z!je_AP(GYa|J$GZ@Bha?{zrfD=bwCZH#Vj7<>@c|rQczf25YtqqNE~$#jdOZ#4W!a z87y2efh@CI1Peu^P_^d7oQT$Atb~M?!`7Ba2s;QOV|XJZh(xLNt^4_OS@(xon7orG zR7=qrNg`)vZY>}lslBCE0Fk!FFd=OVP3L@$h`NyFcuY^El5# z9cvxOoq6}Ix%*hONFnyswk^^rp(TQLQ>`3R9p+jH>_&a{t#$Y8J)85g+1BFxbUt0y zo@Cy)X6D|u7GY-QLFPt*9%$=oflO*!3lC2-_YV)(@86s+Ps_5jS8uP|iO7>h-k(k` zd_FJNW&Q0p@1=~-cGEbF>ze1&_5Jzje7UZxU9T4wPA&-}gw{xkw;w)~dGzde`~92O z?_R$K*UNs0A(FxYHt;H_<=NR^7< zBBg3c=Zpc2Zq40=Ny{(}wJ3w!!`z~>s!SAWOO5S_Bw_Lh5L9%zw)YRGho^_T`6%tM zo)5G9?CY=kKmXNtPJI~jxF4b$ny+hkOCcG?I?nR!*&SsZU(6HJdfIU6$?byJecjySXlHiNs;t4TQrq9(HrvIwMW@b$VpJIXdiZte%hjXvs3Qz(W9xK&;f$-Kl|}VAKMDI>2!HKFK>kC!fg>yLgnbGvR$r~qiuJ-YWTGXfpr zn=MQZN+LMYQ@VFIUpLQA1dY5^RYj076SH-IG6N5-e0KKsMd*|kgo0;Q2W zE$wjk%mUkTd48N{rE%mn*pNx`kN)ZZ^-q5N|DLwfZqm!OyDP{(`}qFZzOGv=s|kma z7uJk2X!XFd=5ESbx0v5BM?Zgz1LbEPLHQ$9VQH;6{e(SVJf<9SgtWo zg^R8Il7vXNXn}}`6dx*ktTOR9YY|cvl_B~N!Qr{JWQ@vV#%dnZsDdm^(S7Y4QN52D zvMgqsX(TnSIpvyIrC-uI%#3WAb(qKTvyYBH`s7&0Oc~c`FOG+*ZQQ9=lo~pdj3_0D zJ<^LtsXop;Ou;O_diAF4^f*-pPRq3@dtzI+>4;}9%XztS(fw}!@Zo9LA0p!Z?oPn; z$A9;aB*Pq;O$R1!YwsWuCI%}{2^3bPN~F!3=m5%V+syoja7*?;0AS|IS_=h8Sf$+Z zR!oU`KVO!I0s+g@dMR3&l0~AC8>Cox66cz|NJ=IpkpR?h_M{%s-I|4vN?~PDFvEhg za8a;Rh>#nu&42mNU#~0e??>+Ov(G;jc%As%uf1a^Wp|g4r0v5|T`f|V zZM$B!ZS5aU+ok8oa(+7f!SDa{xSt-+=cW1M<*7)iQeN&3Pp9``Y+F0*#*;7CZsu6m zOqb^$?;X5epMUxCuLKumC6Ka%`2H|kTRq~iKaN8@Jv=b$-L4kl*YCgoAOF|?rQG*F z{5L;Cgisb4`j%UxYingJ`&otCv;A(f>v^>@RFybi+HTtI_qw)?pl)WZP4nKd!UG^u zSnEAwoS0MB4M`?qNWg|>39?~ARlbGniXwv)+}bvbd%iK4dUx(yr?$>qOXgMwtJR4J z5zET!I#!n6*J&<;VzKLu;+P@Z5(A4;?dD8isvccH)=TA=$50|GOefq*r zTO$p3}AO7pdwrwo~0x-IBLd_|nddjjj>%9eCT5J89 zX=|(>&Zo6)-J81w^~lDQ$}|)eqQh=h3FaQz5}U_0DSAJVhY&#B)5CL6WNfRi!JD!Z zI=IgYVTWWHE7)0xg^N-tTv?`Cl!=ps_~!atz4de^1VwLlzFdF%^}DOt=RdjoDfxAthgGH_thPM*>1dTsc`70nEBnclF~weR$1ND20=umvbr*aTtX>H3Mw4S2&yO| zfea{QLF-JqxT=uK%p7BiL1Gl|M{5vuQHoRYf?#Z&BZ3eWBBKeCR@O(o@AoXZX&Yui z%b;0V6Ecgotk8Cqb?$J!G@1btV;WQHL)!KEy5FbFT7j`(^#4DHCos3`em-9|wjF!E zed}MoS>JDVMa2(3yf`_Wq43?-ADx{KQwRy#ssUsGyz9pTYCfB*fAv>S66?YOqQ)tu zj5#qEBG4=f&=RV^f}{kelyk`rppX)+lftA-E-?`bDuGf2e32oGkCMg|eaaw|c_Ljh zrVKu?FTf(Duzwd^0W3zN)+%vKB}IO>x=)cqOg#DIbD3g^Q9{UBSQ`QmFxon*jB2g1 zMgb{-Qa9D=aQ5(YHS4TW%GnAeDWWNd$cY@7%KEYNQ#_c@N_=da z&nnx^ZQJ0**@?#T>h=1?bssolrMEY`%z<@U9(Hw8XW-lIv>Qra{BFukV~$Un-IU+H zHV;p}cQBuq{4RA*O?72_2nO4o;_%ej_Y?m zXI)WLT#HA zCaqX9D5VS}rC{M&B9a*jAOJIB zL4}2Fo~+fiGMp1xRSB>%+6NCxiex~loKwy71~F#1FxtE!qCqX0?-3R&+b4$%UDF=8zOawq`^NdXaPWYP=-sNcCu#F7+}A+5Cr zN`-S~EX>SEfYyjo#c5DlWywM!A}JSVl~VLh$5#p)6Da@yAOJ~3K~zZA)Py9ENQ5X6 zWIjF+aLYW!_8(_o7w8%sI5Cv&8%*$$xT!B z{bY>Il0~>}Y9d5LYtf+OJgoi8o9&CLbKAJC=Y}P}dVOM<_^0byI1>$T>hZwXPiI5`mzptgTGjE;V#cH!Pv9Ol7qu%?yA# z=7LH&TO~l|Tw7{tXj`R-SlC*vkU*3stFCFSmeCdl5?hLnle~U)d$-#)U8j-O_v79D zaCg6pA(t%kZmAhbYio=uIb|pu88ul;9AYkFwbF~S~pW1a-2#L&_x5j`~FX)Ya*rb z-Kzy@K@mk-h)X6QB7jt)QJfPa5g{|Nk9z?@G72mMvIuY%kufD7qqT;J{`61IbCT_} z2KL5Ohs$mnLlVUb$~$#Iawt>LFnX@qYId+#9L<^|mt%Z&{hE|Bg$`CNX>hKpsBNp| z>zi*!tI>_qh~gymXtW@3gv}6V^OgkSkd@TF zWLr^)p_{d_L^Odc4rA|3ZJix_0Lpbub*-&Nf>DD+zp;&l6tj@kw$b+bX1Ct0-~aS{ z3V|gX(j|dWRmw#ff-G7(4IDgAoHfc=G5}ALaMGxybz&-=a!Q`BUSAHqzS*bqiv#xl z>#x?EF|@C4&d+94cgM>n<~aIsds~31?@PDPF_p@g7q9MOlpIRiI@1JW*6P3b%SR-| zhge%jP`G4^7#qlS4e?5kQgR?la4KCimERzi7#Fy>cx_g7c;)% zvo?f*#Xf(&|K{m#y$h)1;%t>e1n{$CDl!^FF^;4;K?w%1)%SD?A3%j-)tpLZAvrk_m&+RQVWu$WEzO&+lGd^|6$y#)DOTygF2+esjIO-49jW zm8gb3Y^VN{j~?Yd-(7ES?uOtCV4f{)<5bF^OCAd_kO^rb0;EKy#Ka2RJI7rqgv>EQ zViP!mBtq)CX0>b!_yom}Xr+n7$DB)K$Vgz2oS`vpHDYTjwxS_N@V2rndj*~g<&u0X z3`n3EEE7VpgjBM(TGdtqO+_XV5YZ@fJHE(VP>QZa2y!Txv}#X%ibx9bh%_=~lu~JD zwJil$iXze~=PbGa5*uAmNnr?#gtoS>CWElw#h87lJ8NAH0{`qsA2PC!Q;6AfDO=IX zvaqdO%03NDx+Vql%CYeWtE1cd@oK&P^yA0x9aM4B56*%!Ln$x3=iBM^!?Qo0!CA>N zU(GS682U{1dq4Ozl)P&73=UWGIV$@6iywdd* zaX>AF^JY7_%4#JB2@>u0!8#OHo4oECr;vuQ+pcrz5o=w|(OE)7%w6wUm?VFHES2IU`w3$~cy6l!M57?}MZg zO^8wioTivbAr5f@h1zIwx(9lQXK-&1Un-2M#O1m6Vbp00Ie6R>D|>Voap5kVYURl~{-rARQmf zXSEdGA}CW*%wYn_B`d92u(qysl~!4V(AHD%LkcAn$V^&oL!ViE(PXW$Rh$?zgHVjI zZE7^KT9|fTiDo zlp;zYAk&mXUF*tV;>jo%LRsIhji#nC7Tn%P)6#rC+ursTqO~+ck5)Ns5OhI66hJAG zGmxo`Z777q5lQJdam2iog`HP z|M0Ua0Z$*4-H9E1g`+G$cLXXPnF(K-XNArfvawX0Ptkb&6;+1$m(sj5|7 z*C9-q%f^fNE@YF4YiH{QS>;q{H_1LlMP^>NPP0UtNe#Q0N^rF%6hA6stkPn%&e7&P z*%VooN;hp)HLcP`a{*;j>p)QyWry6G4rg2`tTHF7DCWQtDxB(`1yf|1i zx<1%;`}^VM&2}h-oYew`NrhCY!P>Z}R5C3(1xKnz zz>+zkDj>^)>hQw8^QhN1>E=~`ZqCO0XmRG+%FeSh^=7^I%w1=LA4ACy%3{8p=~);O zgX9Prp`-wmjJBHFt2gV*yjeC!CubM;<2nNG$G6EJ9W6eIqq+{)q$y^xt~xwi+^w(9 z&yRe_XOEuz=IbxV)PL~a2M;dJ4-Qs;_w)bt!FlWKVtCYKK7IB2zHOU+BL?LCM<>RZ zaT6+6U9VqtdAXR?v(^xSBE8-1HoI6`TNxu@`$`wWz??9P5-F*~-dm?KguqE_4Tw-+ z>OBG{pNDPmecIgi<0#wR&IdpAQW8#m?#CoLdvx*x9al>0rfwcT z{wOp0R5Y11jz_cEeu!J2gOA_;=)I+L2aDBj|M10^&wl;n{l{at?;6J?wsrNZUp$?6 z%f$ItU%qMe+F_C)QjD^7Rk|iG=3H0BSk@Lo=|kMr2B$GU zf4=$Y&)>#kbD6H!z0vi4>y>g^DU$RqPBW{V6$`9$POj0GoFCJE@`9SE5=e%OG3p&% zJOthj>Ft%gczU0TBw-|a`t7s6_wW9_T3tJ=Z?5{ry1O_1t`DZDlEf-Kw|cSY?uX6g z+y3?{?Z=pMiGfSP^|o)UEfJo*x(X?VG$OK6g8%k^{^!JHDx3=FVx6(dC?Wz8z+6g6 z5h`np(Wub-VK%Ep2vDUQjn*ve{iF#|r^>qEGl2M-aS)-|`lp>`pTLDy11OSVWvWk-=s}%wy;oc{F z7oTD1`a#1rL^cLIK^_KJL7~J3U{VA0HJ$ zTNxksprmA+?%>Uhi^&DN)?TPzmyJdNwkE~KIAHdkYBuc20C6{fBpLM_sgT^^7{T~Kl$$T z_+oism#5t?fA*!db0Tb9{P2U-;=oju2}255j0GYE?`Fx2(HAdClxWO6s=xoq<@tl7 z_dja-ewcT2AwRF0Y3-*eo}Hh*db!>Aaj|mF;`49&oXN*TpV(^pipFUVU zC^_HWUAD7X-8B^^1!cdRuCK>uZ}%Daev|y32$XA-Hp&^(&Ryr+-R)*S1=HA4M##!1 z#{cQx{)sRE7_GIB9t9KI`t3AZbcbi{*_mw{s|XTj zt*xl@r(Zn(-Ql6@r|Cz3e0nfPCESmN#C-Go&2PTAS>NUl z-aEWFYhBw^wY|A~tF?RiYMVq8;>E@6)0K-v$K<*{N$_Cvy)xF{wJS( z@^^pxyKyH!_|ZWa;j7R0KBuN~$Pf#FE1PkOyM5Kk`;U&DapQiU5m};AU=7w9bAk{G0#Qb0 zMpYxABfFiv2pO9zi;-h2Jnk8b?z&neUA|tAPP^LFT2-mqyxq-Ks%Y5m;^x}-J~QQh z&neTGWf*c8qDDoija7A{4-OW2iuYqbTRO5u$PeqZ?Th;JKR+gPTyo5b0F1UVNeqz` zF>?Y)BB~GzPE#tVC&{QRXdGe$q@1{L@zD=s8NDdNem{(ZH?G+aV@{~a#t>CWR24Ku z7<>#dG9i{CT##8TAxZ`XMiCKNQxl*^aG4H-hC(P$Qx(U{sAW5HS?g$$w%HMLWukO+X$sQIBQ7=~S0EmyZUH-NYsCZ8iP z<^r2dZ;bo=iFnX-`NtoxE*{Mm%Z@T09xfg~I5|C;|Jk2?HlNQ~V%M2ZzkmLN z_rJ#?`+mxi-n@x__#)hG#*>E^|M5RQH@4kwbH9UFxT+ly-R~!DRACMQuCKR3UZuW!4$vyCeXr_?u{ z9y8|zaq<9iyj&WKT#80YDT@FIqjG?v6*^7YkPlI7qZP4~l4Anl%!tU0?+SL>DE*GT z#e$@@Ha?Dp6QYPAA`OTnl$o8?8nV`UOxX9ib!u*K-c<~e3WGvPxiI^bQvr<@1w&4L z25%rO!XbDMPG^WC@wt=9bzLwNH31p)l- zx3|~d(I?+qK6-L-w|_Oo9y2n+(c-}`fBluR)2E+&@a6BHopz_LHtnGbWuujS_4@kp zd#8u{ zPru!4?|ju(DMlt*9oW<3xuDms0MV0&k6*uf_3>wqbjZe3sD0}&u$p!wCvcUj8)I15 zGg0++eP1wk#u#)FvUA#0KpKLlVY49B8Z}`VESn-INO?-n-`sxlV)yED*iW&tMhOA~ zh-5?|c&Fs2R8p3z)ocr?cl&xVMuq5Yt!53VPd~78<0|Jgs@*s!rvV{EP6?(I?5xsC zW^>EHrg5a;^7{V8cYZNjY&Ih)N{nw`Z?@|pc`C#&FV{Jw<5leprk&SFR`aY-TlbP?6%W1cm$mG**Rp6t!qf62s7e(w@x{~ezAS_Vq2tM%^vUH=uaR1 zlRCAts;Xw%!|i5TfBEc}ec0Zu-`Iw%Srw-L=coS{D*zW!kYJIsPO<#>*FXO8=l{@8 zBP+mcc<27rpZ)c+TAeH|jt?#_Z?8^|A8oeV`~8*+Au2NR{`-%9`01a_=11-9@c#A| z5n>c)Ox>CYVY8i{JbW~-D(CEKwb%^X)nR*kv%TAnmFtYd#;R$1Zw+XWH*cTb?p_I& zG4AHg;(U1yQ9k|X`|mw^{7--IM~@z#t`^;km-km!djVN=X5MxEIL_wncE4#lJUu+x zY)8TH;P~S5@`gnzCySXI`w(*m6w*;4CI;38toU5CQ*~2;65AMK4UuSa#8_((Ns_CX zcKxs}TC_?M{5RiS{_^YFyL}Qa^SLvMlv1P5f}}MT7Rl%*j!|+cNlLxct|D!ypVAnj zZI#hjlTv^6uOBleQ=2}HjD?ABH@(v)OS*V`p-5C>Qm*N2&V7xrI+|-ojj^kPgSx3> z4%?j{w$OI7H*fC=+|fyQuxuLD930KH1q4Wi@B3l&p{WcJ<&d=oV{y^Bsy4=Gr%@5s z&M+__b1Avd7*k3GijGmHp+HucREY(}SeZjikkL`4Q5nqy2?%llA2SG9bO_kiO{JVs zVibjxS)i_KrNNLQ#CO>O1Z7<%z+7_StO*oi*EU!TVKs$GLARgwS)y*$e(dL~*>2dO zR#Q$=jG{4#XQ}S)_b=b}Z?4C#eUNwE&0F_g_rrhr7yo)SKhy2;;nBrUzxdhn^|PP+ z>R0=IoXs0lNjQA+@Pj{m_to3|)3b+-Pxsvd&JQlaX7`W(@b7=|^{)tFe$W++A3yrc zhwJZm)>Va$0OVpzaR92WXQna*eGx9AL_`2Y3L&AXj04*Zkzyhq%B~XVNBr$~ zH=Y4C)D^wUxdRl?1`%?R!oUm&N?U0cs&WvaYItku$mwqj5r5 z3MbK};JntU?1iJQ$QWdiMYpW0+SRtIZNJasm`%;Oi~zD3!#B^?y@!*t=KMkHIu_#E zn4B}97z0PM!$s2yh|yR(<%HrRc5JIi}iHb)|BKeheuJC@ccRfCAbo<|GQV z(m8X1WGf|zQ%SFH?uz2|{<@m0UGUd$!_?FM&M&$qP$;5f4$f97>s>EHfbA|RXshb% zkN^1JeE7kiF3-+KZ-4*QH_30D;r)2|(=UF_Mb))d3Pe~$j#k~@|NQ@@CIb#iD~yt+ zAUVFgd`4ZR6#?+a?|=H_@O{br^5ygOZJ4H=@ILtQ`OE97=?v+%S!}k$YJR+ryTrZs z>wUj|b@ei1X**uby34EAhsSjBpaqnDKe}3rkakW)4i6XoZc=22ac?Upg%hXq^G8o# zy%JS~V6)wC$4%Q+mfW{5zk0d;_U-nmxG_uk^y3H1&RySaePL@1k&2U_&t}iwT;J{X z(~u?WH?KC<=vg-#xA@KPZm;jQ^R{Y@c1rjAahRrQ7~fv)kXU8v307d%W`JhnQ9L3{g3A-r}O!2e!M(zR*WGOAtWMDhAU;9Q;Q>99=u~_85NL` z%nU^cn3FC63#0nlnnr`nlmsi(l z%5te6FBd-aN2k@%h3$^b;*1VX&A~y_I7^uKaT9YAK@<}cM=k{DtRroVGKxr(LQ+z) zpF%9;OGZSEWHfP!q?{pAn2au{g;7eN##kyUjvPbC@5*@v_Jb$ww6SfaoMvay7$IUq zR8K~7X~`xKwPd0W?dIjfYDS2s^H%g=xF zWnhjzhhX}#^dV%=dmrkqnRl}ir?bOVj{D7U`^C4~!7-UAa3Pv-lz%F%rI{<6r_Pw{#)ef7=F z=yTW3Y6IF9fy5~}s}8yl-Wh58+u0R)U17YADXi@$h8NWM=_;mLXHT3p|b<4&ro znJ?V&^4yVYD#v;p%9yjyA@LY2zBF1fh^NH04mV z89e`|AAj-vKlZd6u@l#>@FMj|4AOJ~3K~!c|EGlP|QjpYkyR%MfWBX~kx!(ap zS5>n`L&5}db$dTee&~0%n=K0{Kn0mh?#Jov^{y0Y=g#2bx1WE@tQU*!U4*b{98#%k z23etuwl&Pq(z z&WZHx`b}Lcr*!SQ%3{o6b}+A;XjQc0g3&YxC~->GRkf>`v9ncYD{EBcuyM9)X0y7n zN{R3;40|6SsTfMmlmku^`%&khBxvpnf+qXoL z3r3@kgEY3PoK>Ji7zJ_)AxTUngTy35C{w}`=FZy2mexR1TLIHLEX8XoqdOoo<{}7V zNht=SD1W^TLLDOq%l`Sl;Z{PxY|YI!nq-CzFMUw{Acr@r4N%r9VD|`f3={(P90A@1Ndn*QPaHTMfgG zBBn5%KA6oKtu3XJnbq~SFQq6TGU!7fV_l6Umsxk@`w}^4#@6B4ap#=AzTK_w*57>d zwjVtd46(RM6KZ4BIE`O_bGaW%H=E7ptNCnUj9g#dBj7NMN2japey0^#tNc`&hMUg4 zy}B)#84)p7m1^te;^f2AgC~pbiBSg-ToyIY78?#DDv zaDT`9sI;kl&l;QkW*>ayLgOe!kPIxES*5$Svmbr1eE48-c2u7pwqWu|epGRiY&#++ zRjs>PKRTT`0)E$>5LCwxbw5VHa`tFmH(EeOUv_1!sxpPKo?B(7FkKlPPmT_hR>}~P zk61)YU27H$F*67vRa(`~bxoyIAz=b*v>wK-RvLjNmnrp$!Kpq(X*wjwYh0>To9?9g%cA&n`g zA*LuCxa0^Zc2-r+0x9%;?031usj3uXn98=4(2&-OYNz{Q9DRO$xxK&Ft?eEjE?Vti z#M;vPrw5;XaNnBFJt0;e>Yz?T!wj7BR7p*)~5dXFMjgNuYU5) z%Qqo`bA}taXdL(ZZ~6Q#!Bz@yGIWW(!|}Yd2sxmMqSnJXmNUa^kGw^Iv~>{;+%S-hv<+qDtA* zlltJ;ot-TXR?DO1L1mP6u7Cud&=`bbyV_`MtSyBV*;25s49DPi)0%|{`{+_Q=pi*t1sTZ-u~|M*OzxWV%d%9`fmE@$zS~6|KYbM%m4iF=;M=< z_s-8Aef;Fftd*Pl?^20Fl)80QQ;3y{)#+jP=?9;_efz9g)N_kIOnfDwvmaEy&tE^k+Du+)s*E{Wwr9r+O?sU2;bK1Y zJoZSsVl?~PO$jNcDM5}AK%i+X7Z^tmrkDnrs(bVHPLM*7QiL2zh5{;=7-MJ~TM1p9 zoz#t)hOw#|rBpYYDFi6`?mi6r;;QQAZhdgH&}vd>zx(<=XHr^C(^NSt1@@b1@_f8} z$ihz^JbZHgUIG8;^!%hdJM7K{sQ|_h=UoSawmNF-b8Suqn%n!n4<<8Z=7MOOYD#_G zY640b+SWWiI}CpEA;gq+dmkfn(YswdK5S>s2#T(p)|F&&&eXO`UK&tyQ@wX|bTW5! z4U0uP@3giO3J(#7v8ez4zx&SwG=eTbf<`$g$!kDF1QJx7GZSVX6N-&F>?eVUARq!H zl2b4mV+>X0Y~_3o2-=qdMh$5Kk>q1yOi6-g_GaZS#(m%WRX3Z>0`H=* zkWN0&tEOpH-Dps0IiGnS$kG^!4<+WQ6h1pWoz)gn?x!+@P!z3q(~DO(CnpC~Acmw_ zN#Ut@vaWKAS#uhKpmJgIQ|y<=jp&Kly?wnKVqxa(e)2K3^Dg;_V%w@6`mnj5?$_fq zMn8IGrJK9s<3r4Pz20rcy=&^qn&blj7gn21{PyYFo6UZHu)5m}$EQaphs(kYqHpi+ zK?5pD1y4?9`;7;&wUg`Z{XX3fVQZ>%uxu|*&)&R!b-p@lY-P2UQV>8Z%2duz9v82s zt@+>n_V2&^=GEj=KW>)`qloHi_U6_7^UK{dg|Hnz|Lu3{T^@$C*~M*0v%}`_M71ke zcGa+*CLi}1TwU$%?|s(ayt>~;@2VOmiam!&uCi8>Gs+mXJgAmk#mMT1|E$`DehT9_ zCZCcYy#Um@?do}@ttRvTk#y%un`YU0p7+}Ge#dY4$IPs(svgkY1eydfh=3##poBmO zHVwKu4w>>LOO6glK|=;3LkSj z0YZUF&XJPxW404``EhQDkTXM)atbjyztWtj4T&I+f#k$O$m2AxzStEBFy}!~6@oLy zluSu3A3r`EPRnpS_D!|8B>^~}LoUbD`1*KpwmiHZ&*PF4=2A|>`1E`pW*05V7BTTs zQVG$AG|XujGR-=SxzbxqWP0^6=(N^$hPokFH?ZCEwx*1irq(xa+p8Pa?N|ao&1sqa z{at^&sCQTY^6&rM-)bSgy8G&1{Nj)QumAL$%h7)M#V>yL^IuA-qYGN9?e@lba(Dfu zpw-RQwySxiRV*2@Nl93rpNHYNzFy`T5mQN=ssuUaP|2oHdb*4ZYTz6o8ded4$MMv5 zJ;@veIUO!Pe7cNb{@E{X$9cI7;lA%Ra3Bmg1x9Isj}HeZ+o?P>-n6z5Dv#1P_T7+lP$kdRBtND1xqhI3|&qBO6wO>2={y6AjN zQdA5CVDULzmURyB@_g}Q-k7Z>GOamTMvKf5DF7v0)^#qflCa-2fVeCU32G$;6&z#= zfgv%b3NeyG+D3|swx)S=w`+UNIITOg*%;FZqqJ12BqRY?meymjtOUXda>ncu&rj2Q zDbqrEkuD_D(CB7XSP2NoBsV~%mcpop3o5zj>iT+Tx<+136=OFklad0J%+0GY^q0T> z^9*EKrmhuXnK(5*^15vv&cB)CcoT(uI81HBr_mS6D$|5eHWfIBl*qSlufBM*-*ocvVX{m5>iXxpHlX6< z$Cu{?NW++3)@hzy-*)w;ZR-8uFaW6IWgd=cS(9^x6s(P|Dy@{h+FxZrrMs@fW;2W<+SO=Xav){poSlzzElr`wg;<=wOmo#JtppNolv0eAly=vx5F}!%P0blQ4VVAs zufE*u`LZM*!n=1j4D~P%mvQ*%7eD#Q+xI2s`|UjgnbC7Z#({#Al-YH#>$2u>6IaHn8UhTZStj>~*EHe&@{Rr6+#{P%Dd(V}$sW=-r=;ZUVS|xc& zVbixwT}vQX5~rLaa#{qT#Iq1GrL0ywLpDY!DRL|fU`Z|}kgP>4eb;qOO^{hfxU8DW z)S7cqnB+`=5Hxvjs49uf!RJhJ&O$PvOlrv}1H{X+&a2176jPamNB}9#B{f=MNrGdi zbSjuj=8C24gM+%!DFn@FyH|5w8Dohcl`52!kO3m5oCBq)ii=1=Mn{~b$D^GuczX2F zA`+w@|33M@q29~MNYC;lCRF{ zMgt9BUhP^{`Fxt<q#W@=qhEn0;xD5_ZP^d)3&qT&A&vJTB|qn=4Gn3x7U7y#MO$Fr5fVM#z$B zLP-U7b-UYcqMeJ2&YrsK>gDx#)9b$HZA}y;qp5;Y35l2q3AH9AIzqwP<@Uxf8gnYI z$7#Fmc6(iES_;@@CV!@Ku)<6#=+P%>H9sjk$Y{OlK;<4@oGQwzb%X4kZOJD%6q!!(X-O2x+5_0{Qo`S5t;U<8rlFs4%M6urx) zs}V|7*X-ASy*ti}0H(M~J}{QsMw1kb)FCA(F(#K{F1Z9!d`>p{L~_a4XhQ%AD+CHj zR8W&sk)jgJNDv0Jlm-EfQB9)-j{-uX!KV^Za-m2Dr% zR!;~|WIj$m++1x-vW4bUW~g9VX7Ai)YfkRup}ek7zy0w0)jG~0##pObvl_vhnm;|A zlFx!skpnJ+rT~Q~L34?dU01ta@2(l6ij}u_o3~eLSBcZh`TIXyhSSE-PR3O0*f#8T z+wM0NW&C(L8)ecwl(OEprlqhkN+~uimz%3<*LK%kyF5Sf>>DL2jyJ8Uq);Mjj+_$C zScy5hyo~NN4x$hYu~B*3&{k>y)@`~@@%x)ra%m5{a$H)9?uo8jFeb% z%D$8oGbNk@O}nnwR4Pz{m6V7pu~4M6OqZE4<4ShH69ma+&5e>W1P=srj+#Qr7+E<^ zQ8JUEK;b$2O6rvTU<0Q-*sQB2Sl^I}8gAXZzpY+}lVUXkpqw&-CC8FWE+mr-L~vfD zq@1W_^#!1=TZH68E-}Vj7?Yf0!B{d4K2e~8bHQm!!AHlbbS@dDyi1~m+v|!;Y_?5^ zZXLrv|K^37#*yVG?|Y+Jp;wpJoBd{Uz1w~F@sKk`fk?pnCvT5`|8M{1KmX?cei~na zFz+wdx7S*?fSHrr3Y|#~+@LJEV16cW<^ek{=Spuio7Vm3)j{r2=AbivR*b ztk&m**H`z2EFouSOIX6^&o8%MY`x8xc|t;YFq(2n00|d5`+Pauw!eD#{PErH_WkYq zr{fP3F2Dqr%t+0E3Ms-8Qc4AqRMf7n>pH=ecQGMy#hR*H*O*9=LP?=mL1dss)0pn% z^)Rio;#k;Sr zo104aZoN$5Qb_rH`4}Mw?{f;voE2x3GC+V_3L`@4UAs9yA0nh~vp*fjkKcc?&c1!K zh5z&a_y-_)bv|P$h&HZDFv@Anks>9f$chQVx~k7<0p!`Hm@otLSTglWNLo-EMkyh3pM6v>KgR5GtILA;jDN4#z^65Cam98FTZKUKBIL5>XK8?mmzrqj221=v2oQxm-wTO2u7=Q z^n!uWRmPbRTp|?2oFgF57%JTY79}CEz-1~l_q%PTcGtaW_;rfS9DQ&hCEQ=Xn}+dx z`tm`dho-ga`>-QAc?d{i_?fw7z?SESR55Q#(F-1>{WFiU5GWbjg zBa|dmRh2O)!D324BtaC$U{09I8sidT1*#~zj!P+wNRcyn`FyNAA^!25zHR9yW4RY3kA+OBF>kYaWQ*a7T-1f z_05$Fv8!67Fb@M`VEycp&j@wZJik8g_d8m6a2_*myOsbTp^&j)n!=1sNKOkPP=YxT zQUo)#tV+yGip8xlhgwS^)f7W;ZXRZ!u&!>JmcFj)x}l8af{{m{G<*2R|L;2=%Fo~4 z!2kBY|Fxl2$d(xuLQEmo(r`&iNFk;|kpcn*_TvX7@~){1Bm{K9%L)id7&4_ilOmZY z7-=B_xbq*#HARjYW6tyB3PRWP2+#=p5d@0943m$UF-=Pe zwSZo005Um?K!Hk5v9I(rI&ay$EJ6v&IOW;7B1Dxj5b6O7X0A*f!bF*%$Vn-T%H+ek zrmoo}7eaA`BIiX520(nVyiz5X#%z3^2YcZ{aUpJYS0#)mLid;1SNvyD3M@7>touqQVT(l9xf*eTrgCk$_rtIb$zdD`tbUg z8F){aQ(sotVFv)ceq=YOKR~0jLO&JR*Dn^gPFrA&EYJc5f zpoE2$xIE|Ric8LgWL@buRa2?pQ-MNRTtY~(P$GnuJmreFUAs*_Eq<))S~GQXef{z2 zQ!LSkKm`K8c$s3L5V7r)^F*meAw6D>yZarl8E`@fzr37`)?KrSVWvzE=TX&Eh{Sn4 zUsj;$_UdMumduD<{rNETyUiS?x@|?K7$RXja~$SZX;fZuIQhD6*x&!%8=&A*@Xn`@ z0WpQ(b6nRl`Rp>J#A%{HNQy{`;FKk_q4+tj(=rzVgfgF3AS{KPVu_(xhx1(KB~Amb zjtpb6vv_@8-CX8Nh$~1TQqJSB*fkg>>#EBIr)4gZj=>f}eJPGmB$+eD2_qmpCS%ym z7dKbih9^Q2Tby$VL-tH)hc+Tm$}-8EvJxZ40>HSS040W`xx`o$RVkxjTubWgBn_vC zf=MV`u@17Lg~N{}OoEJJCA0)iFok)*fXT;Y9mi>6N-;>&d|KCugoTLdboj$Kzs!Dm zo=*i52TBR|NZc9`Qp7M#Q;r1+TUYO#XF!)V0tG}bCDo<|s!~FsX_Cy@b)C~yb9=d5 z1g(}eWQ$Y8Qlrmb!lwwY%l9`si-dykQ4AocNwpg?_r3Dx3kK-~NLr&oB!YLD|ChP1HI2e(I z;&t#@D`O1H(E|mdsA+VJfo7OrCoalv)6{|@guZE&(F;0PV%v4d3NvzDeZcHW;DT4e zeERsJwUU%Egi>-QQS(Y>WYS*4cS>40U6A!+R1$wtRf_>m|Fn*r_bDm}a&N%MCWO-ukL!U@%!GtRR^#WgEXqCm%t=qc5@ss*F9YNVhAosvp`U_9rP zoS&qiMXg1L9D}N=Zo5g*#Sn9ZxQ3MdX1mMiQXYvYb6&ptbol3QM(RxtMKYOE6ik#7 zLrhgALs&J}vvrrjoz5=je7vmdfZj)&;$eANnM*w6;?^}VikU95Wy5*R5shI&0uq)9 z&ThOo&o~8SmFU8fl~Igg5zz(z@;X!9)J@G8(M?qVUM|DrU2D2Z^ush$!R%zmW%kiK z>zBo9Ri`C~kcZX1p2jd|z+6}c%BOiLxdlUa84_xvyaLcBxJgrcipyXv}}~DSi8|&B-IG2sA`myj1$<@8=qFf<@56;AyJ}# z{`3&6M<}|I0dtA*hu?pG8Rot=q@eT8`uKV|S~ruN1joyATI{^elk;wxS7&FMiKf!j zN|`#(_)q`%;rSSL`x{2+>+8Un{`tH2l@^{__CNmJmxLiw=$gvZLK)Pi(v*>uDnnmC@2b#Bf(7Vl$hi`M2ege zg%P}8QKtRv9@KI^4o#y08&2BQ&X4CO-6>i`a4AQam%tduSeTTm-Syks0+CX1s|7Bk z##k;Pt(m7Oo#u7e)D5t*F3a>9vt=p76x}qQ3ns)Iv*m=B;7LM8v(NT4xP8;y?pwv! z{ml&&-c_}zAt4c*H%3bVM3R(~5&{q#)k7?seuKH>j2u)cDNL?d)-=`bs;}rau3`1L zgj5oaLr8(pLTM!1suP(n>$+ISkYHq~2o;p;N^Ca30 zx?Ze?DhE0Z77=pF-r?~u%`5l>so>!}CdSqj>dNffUKrMFSlf%b(v7MZgF*{%%8{Cy z6Hd5N2?zro(}W}!mr5qdr@RJM00XjIpb*Nq5OqP|6n)4_RcK3EAqQ$N5i%5-wJS}wC=N;PU*sZMYzYf3PHv>`q({t?+pC}-ng_Rob{ zA_8M6M7z#Q!mv6En1!Jja&Tc<)?7$|D7hS#6%@-Xhms3Yg1OPM(>)T`^?ZNT5alyQ z7hEb1v8-;TlKK$1l$1i%7$S1LQ5mAHYqO!0qG=n`_QT@l)nATwSjQL>3B@LBw)*8f zUZ!EO!7VwuTu3G)rI=kTDF-EK^wzE3`b;?N`u%h~Jv=;6Dpwl?Agj0~HuFRUmg4Ka zK`OWsToB+v2}%&OQi734-05;AD2~r(5jj&b6ga$0o3`IqmF8jzc3M_q_3_1ph`ney z6>0S?-`QnY+(-%EY?}7~030ewL_t)f9220RDmj9sP?l=be*Es(RM+4B_T$U*dE0i| zy4h5Xi|+OODhZQ>Ssy7^b8(_mZ?3;Sp2k1>^)Jbq|M0`{?*8r5)A=;`XRaS0_xt<5sU&kysyyHcFn;LpRPrTUkD^ed890@O%hvrE};WW#~4KC?gj zvp0;f7;#xs@<<94!lyt+yHd(?lrh3|S%qjaK_)2!Sv7TkRhg~0d$-%}syAP6Zg2JV zPT%eu$=S`Ox$YFBscv*gF&ETQmY69wm{0(#gium|Us)m=BsdgVF^9YmP6Y-ek>(6B z5Kb6zC3(tA%?bmk+Re>&b00C_*3z9{{bD1j_x#%rzn|>7_~5K3%zpFvcfa}FcW>Y9 zONrKv?XF$QvDq@SFM*$Y88TfnPtn=hZGvS5YjLmV)ck`P6R|veERhU7hHvq zFtTsH`3!_fLaM3}C_a98JuZR$Pk;55qHG)@AlYs<1POtHq|~(`JW-B971>tXtNMDU zv|?SST0!nw)o8+r8&lfggi5r?Zu`sj>n^Q zwvyuXcu5W^!C|$eNSbw{H?y;};8ow{7&1~qnXV+V2sm-&3WgzkzWBqsH~>WM9-kh< z#P0V^LE1OfoRR*2XzfPX)5z7p)YLg;Y7G5@K4N z^8utVT2?ug93_{Ps#^jqlo*8%A!1|<*+y?L63Q{#BDgk^lgzJg_wBYG?C4|et6hna z0)~vd(CET;w}rx+suCPXN%J~mVs0TNNJ!E~%cZRA&ie#Jblt}LRfu}=7gCCy?J~{; zDKo?<{j)beRg_A>+m81wxw+nNcGsaS0;)pvvM$bzr)d;5y}D_P;us6&A}Fo2mYRoX zIj4-1#o8F1F`|%+F`+J$K&3h=1P%Cp_qJ2b@o<>emB=#3={!y`Vclv~8KUUTUH|U- z`o7zBy3tyc1TV+Yg{Vc-icUjK3L&X9OyBLVHR#2!g2=9d&DNZ)`~An4wdBXsVOdtm zxOIM=R*xZtFkGgX>AbANvbuQ@3ff-3d3#%Fae97bntbu)yAK~ecYQrymLHy`^JL$= z+5YPNmo&?#*OTP%`+xrUbeP}W-*_K5*FfNEvsIdZ{^7x;wD0@d-R^Q8i>2&e|EpUU zQL-jQM2t#7W4NZMgb)fUVRFWNHOEY4b+OQ7S~6W~4vMLQohyhg%^);rT|fR%oyss^+aUw-u!uQRXG zar~aMrI2&sKaK7cbZYm?WX=;Mu=DPaor`;EKX17(HhN@x6 zk_%Y~oJJ3s9u2N;$|?ZM5Q&DJZ}h@3)n%aIu5pj8vtm>PFNh=a{qg zc3z?j8H-?y5uQfB_>f*7rbhKCUJTt(YA_m-0e1! zFhWQ!VVSLUeqLu*lU#BJs)TudITuE$08WLd)FsT?Y>m>u!Nrm|9!@Wnp><;jxR~dr zmThCG01zr60v1}h=BDc#22?1PDK6_w8EH%n0kx<}q@3}>IcJhFD4flH3Vx+BOGR#X z+b{0+jh0%=Ec38>cSaHDR`v76zC52oB$7cbWeIq**=b(==AXVRNmFE3ZF9ZpzWd?x z?EGb%T=GSbZEx?d?5DVs^7=#9=xU&2F!DvEWkj`DEQClt@3k zTv8D~yL-d3FAR>C`T2FVj?FWk&&z-QFF$;Kb${`vzrNnL^|t-|_;`GpUkn86<2VmF2axdl-#@Uw_&1xjtvJt3V>l2>AVzc{f@0Rk!Vx4ow;oOt7KkZwrJRf2 zQluIPtTxXx!H6M*lG!x4=wb=k4qhp-PEKldxty>11~@WCnvH&5Ut$hlfAN(zdG#;* z{ib9q*vg~_aLf1vFRWtOr&Uk<~0@xhbGDL{&3xGbWoy-NT9 zgkfPN7ZRymqGoEH*Ci#c7$8qMr--BgEj)!-vHoxzn9NGk?R7;sS4>Qkt(z@SsBkl# zhvahzA(6D8=aN&BAQziv!Nlq&9};Nx_T9dCVqLtw-%CxdzPutOHMNO3$cyuesyjhNWpPj z6bQhGGG4}~y57w52`El!%sE=OX7n+J%QUJgr83%i49Vx15HJ;YnQXn?wS9}u4YPNH zxXfNPZ1uAXY0kdsIH53I658l}d3sL6WOF33FjH4Cr`O}fMvn}T7Q-aQsA*kmW4LU3 zGh1sN&I?9|o10Byv0x??B=8i|5`9Tx35gJ_8>JZ{0fsV1CltLbYgqEK`a;Pv#o^$; zeO#{J?J}j$ud@*xc{&}3sxyTo)yjv*%kBL=l#-L9#1HR7?`N zo*e^TtNQSCGN!t}{dycGUOV2<`GO&q)8+i;%iZt3`P6h(qqoayfB0}AlyH^=XE}0; zY+2Sy7;o+5CWgc=HWp|qvu}GNTcg>g-8dhb+Qi^a3lk8MdmheI3V=A+$@&;Z76$mEuiqY)m&rNBD?-`BONZMra+kp5dY|BUpFdV?{!_omv66s`O`1Hdi!QB ztB+Hwn=h`f33Xq+|7sc!t37pX|HbVa$;_r{KR-WM5`TDI-oDw+emXeEHBC7K<==jo z#!HdF*x&x;o|fQ72gNX|xkMp}+A&#c#?a$j3ia!Hwb#L~-Uc8%B-?EHd3feDb~{OmLRt5*&>usyd}B{p~l;egsX8Et!ryt%#C8kmxgpH2!Y!s&8J{dKQ)O4UYk+SW!GFk7>b`1?;!?qW3o z?*e6oaawD`I7lUcQ6IuMJHupWDwlGJxNT}yz#=Lsgyx6AZoBs8eml%FP5AhHxVydL zGB*2`f;ykWY4JDr+s9$LxoQN36id?^Whh~6ax)V8^zlr+z$j#E7^4j7-U_()pg&_)<$mH?#^6};L zbeMayy)m29%d6)6n?Ia>`(ZjxmWe<^G*L<+j)x0j*th0*xcH2HbM^Vd%kRE<5wh~h znwr1=>g#vcI|5_1fvOh-qeR9jxqH*I3O`*2_SgTq|MWbZhb7@!(lU=zPDum|iyMby z)i5d(AhEMsh8a^KIZ%?O(+CJaeP!C$!;B0+y?l5*t-~Qjk2#S_cATz1yt9Ca ziMSY2UNffP10+H+mJpO=kcm+0JYIBN)jiwqd)+Wu5!G^{=x)DPjkql1;blTV5+S%K z3>T7*^I#W}9GuRJ;u}m%=n9KrOxc2`)p3eOgI(A2WevF?;eFNRly2_&?n-LSxY94L z2Lyche0=&mS4|@Y@$(W>gp%7z6D+%{9)T^(ikO{?ug7&6bM}~X(ja3DArmEABQ`=a z+IrLEw(77D%4lUa*Z0?#@!1jNx<=|R>u5G+TIc+ zb|Gup)~X-uKowV#-)?&Wj2AHuAtw=5Ka7W%Gh(TwIX^FcB$%)OQJRG{gpeo`MuIZ* zroZWok%Vwyg<#3#I5_8nTf%WVglKEUuj(BsDZmVj4YTX2>dUJy5ZUM_N}zazA_*Yp zkW*GtGT>6AM3dmW1TRotE^|pJ7;P$jyV-5KrqU`#6r7OaX~g^8eGK_@oFTKE!_)CR zg;@Xy&5)N`isQ==9rjEhBOeZj$uFZ_fb!$u#*j{njnPrg4(D-QB1hvA(n30;gY(a) zqv|`#X(8@*Yck|D428$8t|Td3g3yX7YF#;x2?)8pHSE9p>%Q(yEHun9Wm3020Tz6q zf*O*f)L_@KuR0&QOXqB|H>u%cOvzC?K3eeQ9 zXh(1kw*BsTc%7$lS9SAZH`_ku7>Vb`xHV<&D#IC(F-1ZIV=NbCSX+XZlJ|Y1Djrw2 zZ7Li914}d+sTs>2a>OW<5)y<=RQTPl@0!Zm<>D{Os9oLM-fq9Re)sX=WzFuozNP_H zCAcy|3o4NbJ}rX)rK!H(-PO_r?;O~h+uLQ-hwvmR`qZ1-%@Qd?(2Qs>>Bme`!`rt z_HX~@-UnwYQq@&eNx*VGj9OPpKuFQZhGwd3nO#aD94A{qG@Hs)Jcs=9{BoM7dG(|) z8j6&eF()fY87(=66r9goNI|jNNUk%LNf@dd<7eD$@0T!4vyUMjF4OC)ONlLOBq4>I zMjOU49zL(=(E6mL0tlRwr{luvY7QwPp@ncxOHTW)uML$Pul8o!7{M{86$r^8CYz?g z4d+}?XvS#@1oEd(=Xt`oV6+(+nddb)oY!P+*fq^Ehr_|nr!0wld-X;&YH(9X!PF{e zqJ^%b3)RxS^=Wp z=t5x)QOkx2GP@~bdO40acU^R=1ZrRX^lIGmpmzsXs)iBo#s-4SSA~M+Hbd7ib~1*yZvOB zhvVd84#7X34oJ)6>x8U)cpWd3|MIpKH3vl#hN78BY+W)G?N_T2cBZlGB`del&9W?1 z2`XR+%jsfoyZsk8S6$UGAvl9+o(soz!!ZQRp>331lj8F2_0{{EJ5eC#)G#G|?v&p3 z-TVC;H`?dJv2J@CZN%9p%l_NHd^;^}8H;zh5Hb&5HacX>DTXCl=WR?F%sh`&P}!K< zH@%=Rj1%FAgp-WQ7;o1l&P#|n(^^%Om1SM1SDo4_Fq!ZrE`otpm1y+5%#@bXa$a*@ zti8Fpm0UHo;sRP-wVT~=aaY^U^y2m4DzTxA)eY;m&C5K0`*G}Bv%9J1dGaZhPz8pN&$nHjVy2kP2JGUF&!hD~ zC|TF>GFd4NGGvlvL2bEg`;FApNFq22$xY3@x0C?`iWGA~Ap{eYF**;ko6)FtbJY|d zSfCXuAVju;vRF6$bef`zlDASZ$qD5ocqCZ}+D@nV;lt^)hL_iK%#>-qyD^Lj=W<)M zkXQ&&!Dc+ICA!K8%_Sl*T_wzn2ud{oL7(Pn{ptG~z)}d>xPXG)mrY34IR}YP=UK=I z7^ReJ2r+s{NuXTEg;OzJoVT#X1r#)0pOdGQP+*uz4C#kIoSdbH;nK8*7kYd?_nY?9 z^XGy{3yA@2UZ?5Qn#w44na=xNYcx-5zJ0S1Jl}7c+9;2a(42kht6FKH1>}Iwucyb? z`Efjdc4z2NZ@4j<3IGWN!50sr_$Ba)Enyzr!e}<8$%NQ4am^Tqab3Rq^z!M`7*aVN z4}MLbzIn}*c_gRvKr{LF+wYfkO%W+2jpD%pP|kk+>nliQb&&wQx!KhXUj~0Uxp{Cx z@g-s@owJjRF(e`>K74vkv1C$6hNkS9RNp^5UY1a6(P&*Yg3@Arc|NQHHDf}xT((43 zlr#A{%-!9lsnmAUv>VxI_Wp~z-Bxb)l4-ns(}isNUCmocCCM4??zhNdcU2t@r*W_e znNngnt(0j_aKGJ>94IuwIUg56o8sfm-NxFn?e(s`&R*HYH5*pf94T$L{pg45wtf3% zAF_XbIfqy(-sCCO#8gTdp`M>E@4xz@<^*UdrPK{y{aGqWGKA5mxex$K!1_fAjaYml z#LLCSaq_+T{|kb%-Z*Xp0KmM5OA%_upDF*`qxc_D3CHH~=t=634MS9dq|JW4D%mCC0(W-aUNWlNuFO z*2{uqtgG7Slw(?yA4j9Ti=K^xI`)SpIiqYaF*)>l8dkj4y(4TjT;{{sO+DVNuQ9-F z**=DBFFrpU{`1TD+v@^ZoXr$MK!6>O<9PN3Ev*avq=k@}V4qO1k&%3N zchd;rfdc^4L}Gwv6L3MQlJ+MZax8(U$`y=ovug^8ws-Zn@4rDVtVR9x)qQjerQrJN zD%h}UDg*#X8D&%vQ8tb9i!4b~P!=P~Ng!HE=~Frm6U5kIc)IA%kNwmB;*mo*KK;7i zU(#t*ug6OckRyUJz(4)9$}X&%t`c>0x+t2(Lz@!iQq7Jax!zo#=0TZ7R>--)C^I3` zLi(Hob^-dXCF_pCj1XZ>TSwqPh+SQB0WtTqhNDte+u7rP{OikiA8xFjhh8&JD&E8t z%C5j1nP81|p1|mVl&o$g76@a2VRGIL+KkE{FH5jwo};mzVC-Bd%i`11BgA2UIYSz$ z0EFTt$C!X%8vrpxz(?m7XjPH~Z#QjS2{$E>NL_MC5GQg{VVXl%Rg!XmJ%b6jRAPFw z?G~+)PX#Wf<7`bRSm$Hbi&5Si1?FjC1wjavv@AKB&Fq&@7Nw|!4bCii<>~41FS!0GP4t<9 ze9+Tq(_|uHY=0PzgIz3yh%U~3e7Y1>i~sgx2PtF(NCZ;`qg8^it|X$&M1-26?QY8p zAHy8IM;Z7KjP~mlTeXEvp2CD+wjnXf5XM$5Q@6F^4!Vold{ps`R!-qFHL?$85 zP;%ZDU5Ylu*jDA$wxcK^5@(~NEJ`7*NoqtWduO%awK3lN05Zaqz%`JZ{ zL@Rc;ckk}M`{w-*fBOFKU%mVDAK(AwU^Un|e{N*FT z@znQ^U-sT1HF^hgDR3z`$Y2?4fcWaF+w8ht4T;%OHjF^Ygj?L_=NCr#FfILM-fpg) z^=H#lf?xL+QJ1_dGDOxG0|KSlD6On3Sdp|1A)h8YO#?!SQ*K6kI8IJ`PEc7BF4-S$ z-)>gTZ%@x5=4kUgS%w&6jAP`Tr8Jiv+wM49p|avRWaGTgmJurDs-I2Wb}B>w(&csh Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.ps.ref.png b/test/reference/negative-stride-image.ps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..953c9a18eaaed0a01a05f951eb738dda8dd2025a GIT binary patch literal 77159 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.rgb24.ref.png b/test/reference/negative-stride-image.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.traps.argb32.ref.png b/test/reference/negative-stride-image.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/negative-stride-image.traps.rgb24.ref.png b/test/reference/negative-stride-image.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..44284566ee195b481fe5f9e0d1206330b81e106d GIT binary patch literal 81121 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 Y9q`wjS(wFYh5!Hn07*qoM6N<$f}1@@7ytkO literal 0 HcmV?d00001 diff --git a/test/reference/new-sub-path.argb32.ref.png b/test/reference/new-sub-path.argb32.ref.png index aec47e3ca85b2d5e5549bb37ebf4b484b127ee47..87a6c91c540a07487f9a1a2712b468a0f9f5f56b 100644 GIT binary patch delta 363 zcmV-x0hIpB0+<7kHh)b?L_t(&f$f*iE(Adkhd=Qr#O!i%kce>PEv$VASEuC>>?U5u z8@RX&5jG+Y9I-c7E8P4Xwqz%Z(WL1$sV}KZ*RQL)YI=HVz;PVMaU92S948FTfSRB- z=-I3d+5uI6V?p(-3}_W}+t2Bp-GEkNFFGUz)F@~Xv<#a2!GHV;sAKsYfoh;Jvo#wN z=&q-YxADXUR2{SrdK@?{m!J*MNMM|n%{u{2eBd7k9h#;YGl4_}R0i7173>9c4Y~q7 z<;D*{vjOogOut^Bshj3JULM~n;HP)XfCa^Bn7#|z1}@Fc$yf6&_~3{D@3}PEFH_xo}wu zm~Uf_?X*>`jj4go%-1Pd8xxZxjda=g^Iti~aU92S9LI6;yaGKxFCfr62F(Bf002ov JPDHLkV1i%dq|5*S delta 286 zcmV+(0pb3b1Iq%CHh%y~L_t(&f$f)T5rZ%ggjYf&R00x^Pzgw=1RPWX5|DrdBvb+t zwm)*Tlu`(tP#)cHCIb^LcgfCO5&$8D5JCtcgb0HUU=FYbNNW|qY^i`2WSKffB=idQ~;(E03pWMmaFsLcnv(qcB%#W%FVv9_s+uU0A4yJnZ{WM(*??S zEdc@Bo5nIG2`}Ry0TZ*UgQplL@E+Jj32&LdJ49mhc8$rbzrUXz?HUu4$%}M3Ug84y k{jZ!5LI@#*5Er7$9Y`V}LS2!bzW@LL07*qoM6N<$f+H?;TL1t6 diff --git a/test/reference/new-sub-path.egl.argb32.ref.png b/test/reference/new-sub-path.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6efe8c1a2cbcbab898de7cb2f8bc97140e254b GIT binary patch literal 407 zcmV;I0cie-P)~eCDh;ZaBtbGVqr{xjsCSJxHxVQ@u zHX;rju{T#M-25E2WG9Q!r0F%OFR4q{udBOidU|TWaU92S9LI4SCk)MinxHo5*{luP z0abrvLG`Q*XcctZ&*`1rfL3BJIwS?uC}?0!`L`XwgW02gc%Gyu!oGmmiTS(5Y!!F&8dN0rPFlv7NT6 zwJ|l&nfW>;Yhz-Pq>(NgfBq}yIF92uj^j8^o>wbiFCWVD#}EJj002ovPDHLkV1h~eCDh;ZaBtbGVqr{xjsCSJxHxVQ@u zHX;rju{T#M-25E2WG9Q!r0F%OFR4q{udBOidU|TWaU92S9LI4SCk)MinxHo5*{luP z0abrvLG`Q*XcctZ&*`1rfL3BJIwS?uC}zhJ7ihBnLyJc0J1`di;uRidzWj(xflf`+in(xE3Yc$Wj_tHn zt&ORH&dk>-SsN3RB#m_0`14;m$8j9TaU92S^1K2)KQAEAI|j`F0000+JK~_KGf9XDD~p z4vAw%zxI!CNTOLdq4El@vX{kw@u5mj3)9F zebMcwHO>i%ox-69v*6Ed>4-X$R9NMd#Qh*|ONEtn@EByJ94$i#A%qZm=pDMUe8foe RN_7AL002ovPDHLkV1g+lq@Dl( literal 0 HcmV?d00001 diff --git a/test/reference/new-sub-path.rgb24.ref.png b/test/reference/new-sub-path.rgb24.ref.png index cdc270ce03a76f39b5b68e9d309cfc23f92ed887..eb297beee104264f51bf66efd07e7cfffec3d69e 100644 GIT binary patch delta 327 zcmV-N0l5CJ0`mfpHGcspNkl z1{%Gb2qL1O^rzDzbVea7C+?Q4TX)6x%TzNv-+tfj&dv}*2qAOWgk{c$j$>nfcxIHSS5YSfxUR6@OYJ?x+<`rR;+1?DO3A ziY{4aD0kKliDO2;_K$E#qFFeh@(Ql9m&JeMnk!zio&%=4&%GeA)@i6t;=FKLKNkFb z6}7h<4H8f6GMjadvB3k0M)$c-B&wZ;Y9tZ*fr(B-)$BPI zG?;(setyz@(Ln8|HO>i%ox-69v*6Ed>4-X$R9NMd#Qh*|ONEtn@EByJ94$i#A%qZm Z=pDMUe8foeN_7AL002ovPDHLkV1nYToYw#V delta 258 zcmV+d0sa2-0lm3*@*L(9`+Xq4jA%qYjfq@!&2oRtHUmkRdbwezSv%Gi=U`pct z%y0z`s>44|Zrgc@0Y7KEE75VbVF%qRMUT{~1_IQp?*;}4V0*I#ooCoAtq#lS>wv0{ zrCURQCRL7yk^lez07*qo IM6N<$f(B@CZU6uP diff --git a/test/reference/nil-surface.argb32.ref.png b/test/reference/nil-surface.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..50e35a246613fe7a2bd03e2f7c0844d43d66147d GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7l!{JxM1({$v_caPZ!4! ej+w~`Kmg>jGBCC;^t%FNF?hQAxvXjGBCC;^t%FNF?hQAxvXjGBCC;^t%FNF?hQAxvX5)yzs76!(}T%wPGECx?kKbLh*2~7Y6EED1Y literal 0 HcmV?d00001 diff --git a/test/reference/nil-surface.rgb24.ref.png b/test/reference/nil-surface.rgb24.ref.png index 97b2cfaa54aa76ee01b6b3921d5d4671efe35d3f..7d5589c1d75ce04efe231a08cabdc9732bcddcb0 100644 GIT binary patch delta 7 Ocmc}_pI|o8QxO0Q1pPA*LL&zw0#9 z*+R{6NeR^?#gM3(=F$kQz5m{~N%emA`ECEt_B_AmdA{H8^Zb6h;Edd_q@bk$fk2cT z4%i-rK$e+;&k{Kq@ZD6@0tG)-cslO4g-E`J-y znw#=csE-xzmgUvQ`wU-^$1J^wobEy8I62Gyr(LwKF?-1I{IZiwuuGU%|u?w@4 zrRzVNmT}F0_+gHzQ$=Le{8j`8;*;$E%YkLo-it|pTf?IOg;z8nixuU>4JdNw4Rv$K z$@YheCr3s`tSXI3*w*Ti+uDVY4&7>1J=r|MPBlYwz786vnJb>n2WHI_Kj9^Ng}jPb zJD-0})J1KVow`!$p~|NaREE7z7J`WE1y?+3+@3RRle&uEBalQ`U?i$``-y|_Le*&T zya?KgK&E6 zvVkkA>O5a}W_o1(B}I`tE^%N5MtNZYvIt8nd}t1d$qzI3aa$1HmYlS}6#Pjfzl%EU zWvrq_uMOf^s(*Af$qteCm=c# z%wyiFQf9w!Rjq*<<`!3c5a&V~ra_SE`g;glxJ5t^qVV z)67jz`IX^C*``tG$7rBQ6N9@gv2zkd?#cg!v;Ppo_;P6CF+so^B|@GNh9q9ic{fgoh4Cn~Y*Jh3G!Y{9x7mf^P_*g;6S&&@Y^EdokfE z6CeJC)t&?tJVIccekhcBEKjXwe#Jtmkb3NR2q;#CVRQ@f@)YLNx^|j^{Ipf>O)7Bj z27&&%)ICZfTwVjV64*}3ItXrdSZ1@g1QrP6Rp0-t`IsL1YMTbt{K3J$S8JO)9IU_& zn`6WQk-uVGK`Smw{j+12@a)$H;jGFdJTIIE2^rnPV7z^6a`z461Dc(FMho-={dhPg zB7*5Rua#8cq%nu& zHbi$}1496g5@6|8>Hc;(?W-^Z_h|FI*%cJ8@i<3V*JM86)DF`YEM(E|fzPHzmqYl+ z)^o!zUu`7mZZwg>+ z+yxR9P}Nr4W~pdJ{#Gpif30T4V92Gwbn~+F36qCotX&4tske}J^(c5hQ{=7-HMKh( zvtARoVrlM( z0#zZ=pc=t?tN)!-fq?r-Qpu_C@@8fS=vaTG!9&&3xv5u@?bNNlL|H%eBcdr5xcQbs zz<$DY(+%XOZV;Xxp)yk%{H!pt^KP-<#ay*s^m}Fwx;nwaWaYb{BUe1#>odJ^?^W}md4+$H-tpAce?c`k_SLRsi$ zY)nA;|2fQi#ybwq56jbY$eK4LD60r2SoTfo{N(GFEAih-Cm7=_xO8<)zjc;1yt$>; zO09moSo6FX!>Sr8c}jnZPR$2a^1<^>5;uP{XgOre`pdcJ;G4~&xgIQk z=SMmQEAbufYos~mUeX#LR(xuE*OWMga}wJE*(e5!*)ZAq7xzGvqQ=*GV8J#% ziE8dY@3-qR1Ro8v|2kv`e?x|+k?{32G@Tsx{OTlUl|CoJNP6sW&LP9~=QzVy(mr&< z_U`l3Cl9%kU`q|=k>T*E=Lkp?4_pGv!+t-sNCyirfj;ZWYR#x7a07N*_ zXX-Y@C>LnJ63mit7Z!DK8zs`hF|weMbQ9!+<`_|bCEj)2BC!HACbRBB(dLt@Dg7?| z-Ygxw99wNM6>lnFb9`H7v*BLY3|r+~)n?U2Vj=*bLE-L&VQW|S2jE>QMD@qSvij&0 zuesY!@yt7NN&13=Nm4Oiy8!^>*v_N3TD-kgf83LKB0}u)u+dNSQ@9iEsc_;K4S;lf zpCiA$fLoc?{%GBgl{wTYqCX@z>%Q*=b@ROsz_%B}a4{%}nKHT#g!#b1F z6Tx3{7l9-@DkALOECjbcIahT;rCU+jzx%pEWa7hYq>W^s>1|^Qp4s+mI7|%<8L8Er z1^4wNLY7D*qJrb%tYkAXGEf8LLZZ&Ub}A;@7j7EmCdqQ z5nlV(aCWF=uaKtmg4U)F?JK8Wf029R^a7c9>8izMeR*B(l*mzTqDyro&0HA|M-Pv4cw`TWB(^4Ozde& zsc={H2(?IJVdK3AL88-3Ye<+B9 M9n!YK=J&Jz0YCyvi~s-t literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha-alpha.egl.argb32.ref.png b/test/reference/operator-alpha-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bae6bc148de29fe2adf5adb2e1f563ba1103f0bd GIT binary patch literal 13159 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 M9n!YK=J&Jz0YCyvi~s-t literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha-alpha.mask.rgb24.ref.png b/test/reference/operator-alpha-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..695d0d01261ae3e6d69019965f6a314b78ea8838 GIT binary patch literal 3441 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 M9n!YK=J&Jz0YCyvi~s-t literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha-alpha.rgb24.ref.png b/test/reference/operator-alpha-alpha.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..695d0d01261ae3e6d69019965f6a314b78ea8838 GIT binary patch literal 3441 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 M9n!YK=J&Jz0YCyvi~s-t literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha.argb32.ref.png b/test/reference/operator-alpha.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f3b71f0c6dabfd6405155b4337917b4088b944 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^JAqh$gAGV}?Ymb6q}Y|gW!U_%O?Xx&U(5y zhGaCpy>XGR$$+Qzq48toSHXv@&)r_TY3(!?&(HPceN(3`J;=t%!0_Oj*YCw%rJFX& ztc@2fo|=)pP)mu84vmlbDEj>~bItS2<*g5Q&i?xKv&I$nYlU+6o_O@DxmN+rd7bv@hRnUA zHx8Z>+`KdCjI7_e2a~PKxBk2|$KE_XSM6Ttotx)dQvV#yo1|WJZJ%AolZU>2Uowh- cUU{(JZn>-Zjrk&?^ME`CPgg&ebxsLQ0K}qyEdT%j literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha.egl.argb32.ref.png b/test/reference/operator-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22f618a26ab10c90ca127aa93839044fc1d6a095 GIT binary patch literal 452 zcmV;#0XzPQP)HHB-Y~!5l{j+ zj^j9v<19@`-w;3-hC%v#md`AnwgxNbndS3Qa&Vld;G5ieJfEcpJy%%(y-s%!fS82a zB%d7-gn;mK3vKcA54)U+USQW&$?gh@=WE%2f6G7hb)@MctxwiQ=h^~52!Oc08AmKa zV}IXyj(#3}s`LjNk6*7RD+j<=wLgMd(dVv{JfEA2a})X0000|gW!U_%O?Xx&U(5y zhGaCpy>XGR$$+Qzq48toSHXv@&)r_TY3(!?&(HPceN(3`J;=t%!0_Oj*YCw%rJFX& ztc@2fo|=)pP)mu84vmlbDEj>~bItS2<*g5Q&i?xKv&I$nYlU+6o_O@DxmN+rd7bv@hRnUA zHx8Z>+`KdCjI7_e2a~PKxBk2|$KE_XSM6Ttotx)dQvV#yo1|WJZJ%AolZU>2Uowh- cUU{(JZn>-Zjrk&?^ME`CPgg&ebxsLQ0K}qyEdT%j literal 0 HcmV?d00001 diff --git a/test/reference/operator-alpha.mask.rgb24.ref.png b/test/reference/operator-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7be3aeb6d7d4ccd3b42402fdccc132f4309b89 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^JAqh$g9%6;z2m71q}Y|gW!U_%O?Xxnmk<` zLoyoQUi0Q_P~dUBm=v?MBV@Z delta 195 zcmV;!06hQA0p$UZ83+ad002t9-g=QC6@QvZL_t(&f$iGS3Vsc{b)b3#AbFyOS^Ltd$E zL_TG1dt>*gtd7T6C}vzNw;b=xda{XRoORC3cSFPoU9l+Ipk5~kmtq^S`bGkhdhcL@-B&I7dQ1p1@Qm?002ovPDHLkV1j7pSvmj! diff --git a/test/reference/operator-clear.argb32.ref.png b/test/reference/operator-clear.argb32.ref.png index 26297404f0725cbbd6063e0ef361c7646b06d616..41f63bdb80634ccb582760d06d5606f42c413703 100644 GIT binary patch delta 1032 zcmV+j1o!*62(Ji`Hh<(vL_t(&f$iDNYaLY>$MMg}OVbx`)Rv+mR4R&Cskjium#82@ z?Lq^B{sX#oq3%Vug5XNJ5!|_R>Bd!{6$Et=5wTi9Tv(8)8 zoFS}_flc8B95vco**G&J{=#}n1*7SR$M6JBs_m_OoSMLHfZ|*Mn3ERYW5sbuV^8Jd zGz3ObE2Oz@Lz-hc2DE+7n7}rnEh+09Tn5g*HCvm4t$#c3qhKfIG%46NYk=nC^bKqr zGz+I3*b07FsoN6l9 z@f$8kDSw#7BRE(r%D2@#tZG>}b%9M`x`53|wX$0HY?R(|2_H!15OQ;>sf<#g-fWor z@Y?FSP$C;$(%}AeJcN7oH%4t)u zO+$Jh$>a^~+P@cPU%~DfD=*^rNV4O!Zp!luyo=8YRLIGxnJ(fTI_MJKCtN7} z9X#;nFukkVAn~GmUV7WP?;8VoYW3D%CQSK0@v*iMA<#gCtZnbOe zE`O7AS|->|)?+`TowKI{%eB-@vQ~Do|EkC0QA`sqcLC<&j0r3rmOfZ-mn88Tejxl( zacoItKTbnnaTZ7LPw9pM9wR=4ZwZ%*_Ax!ypEGU`cAU6-wg7)QKCu3rz6zG4(O4BkSFn4=TC`7GGNL@gp&Gw9UPn#NX@8qwcVt%YVr_x#$U4}?c5RRS9|DUDM!sai zo1?eX74nwrSvb{=yDrxD_E|W6{($JR2fJ-fpTOGuvT$}oD#I!+7e`?e6>?Tit_e1K zFXo!ZvJZ${fn^^MyET<{%CoMJ`^f7)oPBGye*x;eG7aG$dT{^%002ovPDHLkU;%=D C`u?5( delta 1041 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 literal 0 HcmV?d00001 diff --git a/test/reference/operator-clear.mask.rgb24.ref.png b/test/reference/operator-clear.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3d58ab341f3cb64b94eacf74aec0a70eb829f240 GIT binary patch literal 947 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 diff --git a/test/reference/operator-clear.traps.argb32.ref.png b/test/reference/operator-clear.traps.argb32.ref.png index 235db6b436814a65d14bc550ed19a9917107cd10..c49b4a8d62c977bf20437aaeaad57485364bb041 100644 GIT binary patch delta 1032 zcmV+j1o!){2(Ji`Hh<(vL_t(&f$iB#iycK6#_?ax#gnLKR3<@Gh@wb{sJIaC(UmX; z(cnVAfNotx_mY)vUCDqSz`a|+FrXkJ;sqJ;wonkFh>pf&oMFmE_2l&Q>DxI|gJzf) z8v1m<{qLu%-mZGO4hJz=gwbw%4GS0++XB|{8?MIPxD$sOP=6sOXRdVQ&(i+4co(aL zSllq+A-sXdTOKwSXFK9c#52Tah%+sDbHrt0+_~lEj1pfcV4>z@9dxBZSSHRW=@juu zH|%o$!^Ddr*%%D*QAf(v%Oh1ob| zVgF3ViUCKlR)0B>g;N&x7jd4j(UW)r^Tt~&3#TM3tS4Zfh_iUscxz?j%l8Hqh8o`8W;2 zC~Ac?)@?~+Oiw|(=d=jB4DIN$-r_QF4x%}_9BkeGG=C0uVosBT?TQ9yKF+kl+MroD zWnpXhPWo`TN*ZSdIEJMnC*nPPBDsiL@d%#E&8fE7R|W7EX=2?5ui+wI#t+i`cDy+L zDwcC|%Ef;YtGEGA7%$j&iW@E$PrrTqT6{owGAF0nm79{Es`FSYc(J&qT1SuN=2W|K z6X)@v)PDu@cmRirN%_W_n^hwVr%u=mW((Lrs+IL3XRGv-D|k~Xhmf07?aC+>>UBna zU%u&2xW3pwA=SzEgtNIhRR=pG)j_rIhr|Wx^*%N_W>^R)MIKJo!EO=jfN-x=Gee^_ zhlp>+Q+Lm4_>7MO^>f@Bz99TTyapSR={rq$D}N`a$-y@Hrv)q}KW|R@?7FGASyoP$ zgKc`HhmuX+((V1H;v6{GeG}zL{5G7zefl}ib2y9l3slI-sTnTf9XO5q8=#-!b;7wK zKkgKkhtskg8IR+6X(4xrukkkFqe@JxVhMd>7NU$gr6&k z9bGvcr$Jbpmp(va>4L%v#|!w3@MCejrNyS_w5`FmnY$(8@A$Y~*z}xf9W3ed>p8n~ zu#KDp2fJ^g!~4V)W6m=iuE~q-K5BAK*M9)JC!>0w=n}Rk^I)I2Vq5J0AS|9V_9YWu z8NZ~ikawKV!l^FY^@*;h&%&AJ4~RZ%u)F3=BdjYg3+GDc%CL@Kimix=3OOq$*8rQn z6?2Va*D7}g_+N-;lL$f((TK{5dQu3+7i42%)~s6|swUIh({D3di)Pse z8fLnm{?4zfo~rtF4LdPi6yuNKO)O%Vjzz5EcU*`2a2Kv^Kz|iEIrF76=S!cz#|K!Z z2VZ;^*UyY%8IprGobvj@X@TFMnmvVE;qw?Z(KybmvQJ9TW z7WVgatWe+pR(~oNvT(}6{v<3=T<%G{2MZ=!EDNV3tXPe}J`r}|Ig_oGjWfUTYjHWw zEyY?3Y!1(2zsc6h#+jeUSFDYnxY`}z03OF7wXKzpQzL8y3IoDE48+BEUpfXFTPh!? zK^Uo4h;!Y#ILGu9w0Ta8uq)7xF6%8W17|0iqszh8eSe1wV){4%dkD%m4>*q?GqDzQ)hE9gpFe+?;BQeUpH@9 zjkql(j~?Ks1UxS~&n3K0aWOZi>R{)@+Nk#Zkgyk@i3OX^8HyvW6nQvR2fI$F1HuD1 znINM*hk)-UQ#a3Pc#RJO^=sTJzA)aoxh$H#<9`(I<>WLu*e3rp#8U|dHz(jQH>bTlgrUikzI9=_1^T<9M(E`Z?aFIFa(h zMqzn4E!&adZoD9FT-mhJA|aj83H zdVfyG1lucS*w5(ZY-?e;mYQkS%3kqbwOH7PT@>f~0CRC#goWL>B^|@~&xK`*vz5e- zuAGh2AS^84deQQZZb()*T)-KMAJh4k7Mq>Zwg=nP5x@E*liOX-Y1+g;XI4oHF=@kM@`S^ntx!oWLEDJUBb3x9qbcVZHxUMgoVQ<-eii` zCU2=Lvv6kl1ES9!?4~)h20KYz=M990y@@lU_f$(SBSCyg<}CfN>)hrGeB~a;pScqf0M#CxjYH{z;4NLijkX5pu^6?} z>kFjPlIVjvJ8Vu9o0-a#9PxQ>ELIJmZcEFn3MLvQtAbKgx+=)CG#^Nnm(1itsIg>^ zAL+A?Hf@$z2172g#!VjJXw^^w|jl<^@>)g$A z$td`UE3B{--8smoJReNO9XntvwH>bV8qMTmd$tM{ckF_vYu65NblQ zPJ|RILZPz%uAf$VihW071Y^EdVdrS zYb-^V9e?)4282+J*w9gRJH9jW!vbq;)1}Ff%Y0RZO4s)7RJQE#4S#SK+bnXP4}z)m zewp6$=2@mmlP>qssY2yd1?l+iFvm{*3saW5Qx)uyjU)C!&hS{_{(gxId=djgsEL>4 zDCc=R#ed1WTte(LAdt%Z=03(NoTS6|e8}gq-hZ@Y6)IsTcr@#N#wU1XYKn!y!}N!H zdE1;mq>#!>1qD{}6D61WZ%BrvwCOpv!1i#Ji!``8qvUidQ}O^uI6{XF*7+sYo9EcF zR9dpdL59(w4yU=nWqzKRZy1$%R*<>VF7rEISZv$IR z?tSkElD)$muoRW|EUTuN0?U)Enn(jAZ^0`63CUB*;_R*Du!*=(g^HgQ1WZ4KDtXjY za8@ugRZ=pqH-x&Cj_q@eYtiM@xCp1hQbDCfhrO4TqA5(WQZ)UG96PbUPsByZTBIa( aTiV|ieUT~!A3^v400000KYziC97Pnz@z2goXUt-+iL;9_;vxwm2?`!Wqmp=0h(R~OgZ=}0 z4(L^oob>8R7W^+HH^I1q5Q3NuDl6#8LoiX1jWIjB@b8?!vlquf&hhET2K=06W2cxeCkOT{x3X{;wPVjrA~C}^2_H@k z-@z{x;67Kl!A2cwn6ZCWfN?XGrGeB?aaRITr(|5y=78rbC-qI>~k3 zzd$N4i7sfc&Bi3Lsi{KA0bdrz@u~sT9cg7%!N^6$s-O~;uL{a6&j(V~B@6iwYACtR zk965Xn>LG_Oj^I-TYlzYp5x^@RNBk$=<*Oz@)zrLd4HExPIHK>oMpKVHB6u5tg)XL zvRQDRi!8I4JZbYeOTkn+ust@j-|{x+d6QQ5wY^k_N(Z*bHNGSw;%V-q#{=baN(eO~ z*`P^8n=Zd5qaF-)g%6oYy^av7nZSRsO`8MU&jM{Cu5g%r-~g|3luzqW>8hZ?W;XgU z`}vB+%N$42=FQSM$Gqo%*9k|UVpLxwdt#ZQR;40uuE39fURWL z_kF$D)_w_Ci7I=Sb*GpyRwh|@A`Otd4PO2elE<^f**n>8BYB|?l|Cy77=8#<@u+Fc zS;5p)Mai<(5bAaYw##*{C$|&xBAg1F3TinW_FdM>rZCA`+4L_8?8y2)k{1L_t(|ob8->cvR)R$3O4vGhwn!76>4U5F`i)1ru-qMX`tq zwpFXGS}WpG+$xGi?FD*Wt^~AhRiw1m*5d8uiYOKfh&vJx!LS9wq7ats$xOCc-}}dz znVdOuW-^I*ed?3n^URZzGw*!n_kQQR+wc9I13lJbC(}g7p?{nQqyx_ID}5k`vd>^| zb`Yau4~5oB`lkW51SpY+WjJa#oLckBbVEaesh=z*`_f`cg% zVeM4*5q}f>6ZtSmv~5R!!Kq(z)|n$IOG}0GM{emqlchh`rS4( zRgVK~0Z}8fvn880!QjF1j#N~@xN(U3x(UEqEhl>AT*V4oKF15=3Ho+EADjDev;}Ba zpC8NT{*jb9QsvytpDHtGs?u`8{tP4qkpRyfynnRILF-X12dD#41Hgg>`XT`o6u|uX z0H2`rWigznP(S7k7co~@auY~~voq2pqR=V4E4#um5TY-~j%hhp@@6K`ObQ|a9s|Lq zOd1bpIY4dnX!`Wz&P<;U2np=aa-yT2i~817E2pYt3$gtixzu!r(@N~vMV81sIdKha9=X4sd2?7UivNrc?Nh+37y0F*KEXjeEP3{=t|9nKD* ziPS}EZY0y8B$na`85Apb+c5J1jcvU^flYf~$END4Eb9m^7RjZOaqr5*1rKQDiRLw?s z>&ST!@OM_ZAjaS$Jo=f&=_uzA1J?t=&Nx0SJi?=Ci8x2;_X5fcI;lvFWH$eiTgE2h z5a~1L&4c~>^_{7xAUOX&gTR$~oS6QlFULM<#c?|%o&bd~1Q&7ts?}V6P~&ja&VQop zP%SzC1QJZ{Ab?5EV42*>@b*NU!5rAxK-LnJCa5b?3u&Go@WpU9>1l~LAbcQA)YSzj zE`~*mVAn42`INtl77;2QA6!&_^D4ll$I%^~YRI`T9e0TZU(Bqzn!J6F^2o~PxT~6u zbyIi^C9czQDi}Pd4<|0^MRQCqx_^hl)_ZuSWgU~PsdDnDJ~th=RV~u%Tmdj#W%=c!M8%RiI9-fc*zR z{^@pJ${)mm{2Fo{>zFLIG1}4%PUVkzBR7xg%p;s)-As|ahTLqFA6q-pC4VsC2Wbrp zV?|jMXNO<*WE@?g!cgyB$bG;GVprZ>G~s;-c^qi@rkppBH7F~8CrbB_@_bFr2@lE! zl&&Gt^pjc=p`uWC@-itq_dVqFSdVqrl14Za9Cs(8_;1hAjc}%5383F!PIrY$2K`=g z)IzzR9PRJJV)0?I`hPK7_fY6x% zeH%+0{i*bMvATU&ygn?R3JN^$a9O_yXAE196tTJ9i6?ZJ0a;~?JY_e-3Z#xd?br-$ z*hL$5${6Wi%1lp$b1t9OjOFusE8f=q40dd1RR04E8m_JvZ~*Ww=YP82`Fdqp{g+;8 z-D4Z&U;NiRrCtKAHm`I{^sSe(c;N=%RNx%oQazzOSMuiB4q9_7C^+KBZ1!WeG}Fru zxLwqn)^f?n!R$|4!Bwq086I>|Z(GFurrTJ8D$?Vb!Ln0a)Ehoyyx)ffFIL$?ngHAm zT0^gJ(--5|)bbSf4S(9jnb}!1_!l#K?RG|O{f)*SJ8kLZ3_Z|}E!c)VR7*}P5OCsQ zIoBN?&9=IQ%*orv=yV5d&GVW6%12DdSgPUxy8-WM84YRvmlm1*dHpQSJMi;Y+%6ZU zwQCtUSd2_tG2w$&S~w#t?)@k+bd(<@YV!P}^!xo$`c)ONd4DCE4)1NIO&Y`J`9*9l ztE9gza$X>v7xA8LJ(DAy=lR{}V#5?bH4GUohN9KjaS z0*~=w+F6>qSNk>*r5C_+{5*%7$e7c!ase#|8$Y!(8W$%LV_luqjvCsYt)lbiHI zZP=~t*nh08IO+#**a}cbc73Gqojjjk!UH2DLP&&AZMk^tv;_i~ytU*swUB0QA*KX296B&4LHs?^A1_a%t+ff#` z3}N4%x4GiK8^~%o%z)-=;)OD}zpg*j)+^82-hYm@wUzn-1C-C!)luJ3oR5HKP`agP z*Q9NF!A3H-7gPEos>#@8yaT{!wi&lGsuAF?+^~Nwmo!XbL*Ey&OrJ*IG4aDCI#Q)SD_} z4S%_2fCCK58^Mlyt$4q7lfFRBL0JV`iZ9QLt=DBrfzhKeZr@I0xO^c>Cw>q_loJ!- zG~*B0X^ZTvMB_g1aM}JQGHPb9tT1xEiHyd545_ZirMdKlH;tA+CXI2NoeZx(!YP3n zEQ|DCo_1_4wdAzBNe^f_7JQyGTHIPrIe$YN%Ng4IBUT=boDX7b_hB)#VHZM)Fhn_Y z^ii?(dWZc@P1MYoL80or53qz^QHzOi8VQCRwCe84zRHcSj_0$Y63BSPoO}7b?;#$qoPW%^ zG82Jl>^^{Lua*rL zPJM>EOX|rwE+OQhm&c36UrE1)-|)m|8qW0+rX=Fr%92~Y;?##F%&Q`Ao`+rwwlV6_ z>Ad-phI5aED-&_X@cCu0^V8uHa({ouYgr&IAoD@qk)VdU9FXUM%m|lB)8ixwd`T+_ z7LeolY(O5>xfK+M-3&7*=f$mE<($S>S(!9CPtYgr1bv*{A565wO zBAh+eW8baqVpzqsEdM*mmq9KE`3}gBKyCwh0Aw}DHjome9M49%hAA@ge}uD!Df5dc zU6?9oAP0{;&Aorqa=PlzQ1;X;<(4&C4#>eE?@E;eawEtoT26G-li|*^f`VhuaLJ>%HHZP!W5JX^tR9;LILnx0HdXhNZ5y_*&>9CY? zIQ9MMWM-a{b#*%^RZe$BO6*VSIh=9+oQx|Qzyp?aX6135D|D+_03HH}K!c z@8Ovb3)!>fEPuY-bs6t`^#K>?b+$>H-ZA>_zMYreAHj}YDfs8{bXB*@`Z&0AL2kXw>R^&WJBTX*vO zs9*7iX@%?=rU2wpRJo3-dDOlNhHM(bUXLDUGV5~gXMa)FC9E}tIej&pF&y=%w+WahU@g=@cpFG- z&vWPY=ehIX92SoK6@QpY{I6FDyf5GY>`Ta5$7I$q**A^1vgY!HLx=Mvuu{NY*qe}Z zfsxLmpC2;N`zC}9|^loIjNV!sb_j4 zNV0s%u5h|zdYsf|<=@bs&VmDw%b2Le&=hofgnIo%PevvS`ir)#0#ljzU?SJOLLobSHr zNkm*QO&}+bdIulj%+-1SJsnP*bKwp?!dXXr$Ni>;(@!GaL?fO+u2WIHC~>3cvsr`~ z9AB?}6^mo{^&mWhj}{&O*EsNlO@!*(V?c=acf2TR{Z%cn_g#}l$)ML zq;JKas8ITA9Dz0xsMo=xN_Z8zNgBGGxDFmwXhncdC|8$Lq{Hb(!fX5tzH?5G^?z7* zt>-TF6gldhVvj`JClNCx;#!HA`b+*Cd0vSd@XX=`zeEsu9VcIp?2!nML>!Zdy%MqI zJU%(1=3LDBO%kyn^4h_OxJj&@KfmBFRyF76ymmw){wWc!OT^MW6fV)@C|geAR%J6& zTn4NscCdIs5hU`8uUOKxo{2ykF@HUOAo2?&GY^`{q?ThOs2!yean#l>kRDVcoK$WG zijIr{OnQ%D(i;KWH0L|@C+0bv+BYruTGft(E8LmIaZChaI7Wh9tzOr~;%wr^lkTL6{>iVaLk_hL1Bv07S4OZ%Er$7(q!P0jw;w9=oppH*z1IFaGm+2jNQm;wPz z<>j<**g#ug_dfgbtwY{JxugAZHAgMfS!hOt-3+@olC=V`nkx=m!GBwO(H%7+`(p8& zfAPcKk*pPfh0Mu#kSB+9l~YRbc|~ltgs%qALgpB{!`Z!?dkYKcsMl%^TyX_S>(yCj z9*F(lA9stsj>T~-__EdCW$q>?+($)6z7PgucQ_`^LyS!(I`t>1P-grZp#pxra-BJ5 z#T&!1;OiF0NYF#a^M4CGVWGOrF`IRTO3G0;J?mix-08t-_29I5aN1qe4>S?T^kTL6 zF`KK&^Y3S{*N@ri$82jP)ABUGcB5RPqa&OxoISpl9BVx;TLW44-c)5+@Y&k1TfA7! zmGrk%P+*I2+@z8tI8#6I85K>S0 z5?U4wNjWA0i8wLyBs*;}|NF4SOcg$6LQ?{cV&Mp9#(#S&WBqymU9TpGGtQr+@u&bs7ZAp*Du&pfwZa^6rciGf#3VxAsRx4qytZ%e>9ymIR#e_k<&y zfBsP)Aew!D)9X{7xrv4wR7KbQD#-$3K>t31oq+B;85x-Sz(H zu1B{Yj;Ww1KN<%p1L2)W{(pd&4r~KPs&SHJM=URJ+u&#- z0i@F+?BwUV44R!0idgRCX>T-<01Byc?qT#MBaW6x9GO3=A_10M>YBdbvbUmffCC`B zBZ4Rv6^Y{7wW7FlXZyBrp(r9WHJRz6jG(Vkdt;LbUeFs9pPNU zf!1sq&L}xUDaj{JkpS!Ed{$|utwPBG8iRY|$47T&&Ky9f0*)y;!Ka=PyQ?D=1UN^R z7QiDvmWs8*92+Jlp-(50al|c>wC_UiQF4Iz{V6Jv_5>v-ct<%%J`gt$I7?T1BU#Nd zhkpTRC8fF}oFfb}*f2SioHon{=zvJ?F*(VN&ZFc2-ngBqr~pJMWC`H}g({{0M&YITO~a&EoF+1bA}aE% zq^7HJT1dM#4a*#2h;)QOj*Izbwiiu~8V5uz2p+MhNaWx_^$vZ@7VOhzI8E4|2lA90 zc^riq+e7gnXgM_OZy@{qXdDY^;+1^jvy$2tiIa|HYkxBt z&qWidjNY~}d^y^S#vO?Rf(Jw`6%{aS7(Dr8pqT+BC2-eWIH&#EK9h|b@Hf>kj%rZY zO#1W`TGwdshCB(squ0LMS@-tGT;-yD+!Po?2{$V_l@t!nq5f(E&Q$sF&lzjIg_qin z)6dia&KLtupIoHXEb=XmG=IVQ7-Dt6 ziSNbPfLMn=wvj}RI!ubh@oRzx|Bj8QI`}O{0l^8PC3=~-o%;!LI<3Xd- z6#wlxsu|8WECTeW%SlwIXwaV|M=q4*Y3>|ZKy{%Dz21f1;6`US#sK#k?l~tFx`B6% zquA>$pxRqSq2^1*@FCavAAh(3&h4x-6;kDLVz9W-J6-6lC+K7Sfa?pSLPI!Ia}oct zbfd;mO+m&XhIBv5z&@giKMs=*?*Mh-E={UWypD?fsLjRQH_l0&_voSw!Kh8C95 z`yzS0fHJ`O8aJ_!J8?x3i8ZGR}O~ch96L=_@XE zyU^prAhux^0E+>q?=Reacrx!b|Ao7IpX9>K0;=1df^EFIV5O1*}UlHcP7sq-9H!qDNz7~s8`*MICv&SF+MXYp$5IChU{ zAw5evuEA>>#F6SlT-;CMR8hFoAl#t5qbyoH9s^Dnp=k;XIFn|usc$jM z_g7Ka6aWF>LVwSDOqLh77;t(_*xX8v77xoQw$5Nv*A~)4l677*9Ab!kM#iGWW7XkS zrcKb|VKJ+$H}jfV$?=gyEqRy7Irx){;q@|*G-C#Ri;LM`RYgd>0yeSzH`~ps!|mx! z*^pxlFuKs|+~{9PkS4T{j+NBbEE>&#*Fu^Re-oiE-yVC9$^UbXE^Vjj(Rx$3P)QaG<#sy; zhXaGnMpID{{(3di)Lxv=fT!?xOTn&5+4Q{4WPg;5V()Xvg0aCIwgC*|pr(YO%>aLA z_Q`EreQp9fx;@A5`pY>6oZc!5>t?X2RL;rgj1MsPq}*CffdH_Zappdp7(9eSo=>>) zh@7Lt-P%NEf)N1O<(E*gvJ9jXL7aDM$vXHi1&cQ$U)sGrQXuSsG zuYcDtG$kc82g(n?--&+*LXaa%+zCz{Zckv6AtX6=n87uTWYx@P{Q&8B3+c_@(zmXO zOvSA)IL)+qGH4FtoFTutjNb0~te5&PtApgW2C^L%(mYCz9+%Zjn?=c~CAZ}u!&;}Y zxmr5zMdNUxPqJea1aQhZwD(b=^*T&VV}Bzx^XD@_cH9N%16$BSGMpN`J`*+x7y|t( zcdWmZuSUMfjU)4@bpX~ReAZzc44cE#;r3mNEK=8?g3a!_l&aS`ojk`nY6*zw)oPQHA z5w?o(WFWbf17a@_FZMrT#a}F8WpN!jl|BTYl@zNJy}OEnrX{TWO2L^W!nKh&Q`j=E zlztC*Nm^D*Zn2e=jbQe;1*K zsvHon1To7$2_c%*I8hQ`qHN+IbbkQZm9yDHDJeX_CBAxclKsbp+d9fgr8T`fr_)Z; zBc+v;)I>S>GnD}OK-LeziJIYzl-xQ?SGIDkls8w#9&vN5q;QmhBH#o0D5ztcfTiKj ze#QtF6617cI6JM=eiRFK=AU!f!Mj+ye;*@6;>ZLRQ9&`wna2hRB>-$-?tij}SYfWD zdwM*aE}Uzg&-zcF;NB^6PDlO8rLOJwJhy)t#aGBVAPxnt2QG+*15^OZL8_Ra6BJ4e zbf(AYSNSjxezTF8t!mH->_~r*hxOyx6;N90gZ)4emH~XsRhkERIAaf^v(-3#`S#pB ztoiCTUZ@CgiWQu={P`LG>wmeA$B*5_>t%pdK)gFts9+6y15<(F5yUzOtOQ|Kpu8AW zD9Mg6=*$WpI`%p@Ie^sb`5^xR9x1q#uZ;3?k%W@$pZvm5%<|m*4DSl0Uc|qgi&=GY zHh-^Ga8!ko>|b1Ts+i@aZ}UqpkUEatrlqX3UdM;hLJlin5fGQD3x5@?X+Pj5V01vB z{XPDPbkT@a&5T>t!@(U7pk3)C6r`OvM}9^PPd5F4G}oegbFTCe3Kh19VB~a z@v3~OP%zpS5ZA~#auY$Ms0bD;V5@6FxyLK$CSBTC$UE=&*CPNzP?HV{70cokDh^I0 zp<=G#l9s={fvxYls0`xA37aNyiHelCKkaKc!~8iPLY=RnfRdAlNS5#AkF>Z< z#h>%l^v;J^N=_moSyedg7T+39Rexd%Wy4h4N=ki{B5~dBjelf0Ysrh2z*llq1*j*d zsfxlD<#E}5WPj$(gJyrm*Jh)(wUzdIZQ0`ABKQ+gs5Z=dH!!AQz$3e}Y52S=XAe&2jZ^y=p|)yR$q5mlj@%QASp8`(btT=YJaZXe zcsDV_i+a;j_kX9Ng0`WT?cMaBTW>L&nVy=;+-1K#yW;dMD~>a5T2z13;;3CsWImcj zV+kr_qD8D8@mrps+Kcac`vKyM$ksZ_;;4%6==DW!%9_%djempx9lmcss0@@1;mCz52bK%) za^Og`OkmnG+%aJ$8?Viz>2Js~fg&sfb_xD><6?4dXIysK1A%5Vx5guQAfHFY6E z$n@_Zlw73m*Yu>f)Vru~Hg85{7!$ORHJm7dE`JeWP51@j9V(D4n;uf*guNuB*1^ZY znM!!aJ)*-Lk??v6M6FlILb5O!)h*WDp~g{rn<^1bq|{1BIcgS_lgNVnc-BlRtw7~i zA{;f565*&>R8As7#VYqhauP}Xo)>@qznb3p;{5ncPecftxeyR9C;kpz;w)7;|A`7G z%zwE+2QP896W(!eQE&=Gge@q<6A-t{s7|0BsF&vT1R*25UYob937yx2Km;EuR0R7m zJNS4f4iq90_EnCcNpGoB9?nq@4T7BW6-WIL9ekvmxEfn7Qbd0Q5CStTy;RRd@#lOA z^+R;1@pjxwk$w<=e$1v9ixYR#Q;76~_g6t>wHT+PL6!0*eW92Eh5}1BK%rJ_{BUn7?E|Vf8bfS zh=8=6AzzJb6%ni=LXC)UTtwJ6md`8YoU8bFkBG2b+72@~EQnR}XAZ9zT%iRjsz+k%fdKX zJRuwn-i~slx4GnN3#=kSNciAE+kYC3BYlVS4`aW%QqH;Ol3lY!|4c%}<(VN(PkB;@ zTTui(>*vS`fqpw)WNYD?+w*uez52d&YA)_>GWit$6P zGoZ*Q-oZ0HB#sNc@#pMJ&gYEIjZW)Er!8S<$`@Rg>qTSqkz}%COg+M&0ZPtu{BDAU zG@X@HeJd%t%lRxXlO~NFqsxxby`SO24kn~IG3cBa^lg~Ur?_Cal7qjg86UZ&{68G| zJ&jjf!9`hFWP3blJsz~BrGGef?7;5Xx!d?!)woaaztKKP&XEgsF^VU`Q3fs?z_Ec+ ziT9aYHko&iqx#g4=EcG}A8}3I)ocs)hpSkeejktb?I>q2qsETpYklBuu&!cpQX-tA zM_D*v0PXd9pR&o5iCV8%ow+CUZ+F-$`YIO2(c{XJ|CTO6PN0tpK7aXqBxw@iXtkl= z4%KRj=}%Olbhs5ldE)s@TG)95&Jd0sS3(>OUMub2FR%uL>M%#AQxz&IN8a=dr|I!W zE2#!6smWGSjhQs{)Z)o-V$i$M>FUUJpX5TP8=b+8F1eWu{aWs_;J-zONt}I*xU_+6 zLlc?F=jdY0qc&ZSD}ULJQSZc{tD;bUfJ;W+pwgS~8qY z^lmr0x;oq^PvUfMc-3(K(OLhEf3evOa!$xVSowI|$jqg)cz^W}fp)u&+b7<}3&Af` zpQDQ-lcpU3;N>#TGCAjd9zC>@rP83Cxo4#q&iBx^T{hf9apZF#|!Nw0I(MLgFMNb_=p^|GLnJ1f09M zT#V{ZAj6q{)sr@u(q6B(UURZ-hP-5$KQV-Aw#zRtVh;%v194Q$Bv>{LAsiF74E(ou zEKW$Al3L_t(|ob8-@cogNm$3K(3WjAcH$tK)_T*LsuNI@hT5JX$W zOI5Jd9<5MMQMA>gt=FnY0$6WYP;7fDDyNE8TlEoIwN|i-*FeyMArK&mAcRXot~<$Q z@9+6zb~dxKvztxC<5Qpfo@XB>Gw*)(_kNl8_M6|lFkl0AJbz8tD0Kv8cTv*wJf9$d~VL+<1LX(dz_NC@TUkf@+6cssudR8VF$hQ@PF z%eZ1l!_rF;0)klU{*4S_Kvy^aIWOmS+}t2;tV1gMqdbF<_4Y&u3@1?hf@Cs zuLGPv<$s;4xn438GW=m5nHh6<`}_}>H7ylK<4+)3X@42;sK)`U@+JJO|{jAsA7WE_n@h9UtTD*?}6xpd{5@O{_A$IH#qN_{!cf|@J zT)Dv@mVZUSheikm{33BF9pQiVW~|*a0)xrCJ}>P#GCYmlR<<+ z4jtBWF6R|D&`BC10dfZ6j$GR6^&Fr%b~JBZYG>xoCECeX={d1c&qaG@x|Qqsa;S^= zet!-(EnR)(mx|}!ozM~zNU(dOR2lx5N+)A2v z)!jUl6Tm9zIY1`}Wh%37U2136uLmdwEP9Tn*+~8la_)c>V|vuWn8M{OtF5C$$a;(x^T zFM~Pukr&6$Ng-B*jPNRMd1F0u)s9ntt22Q;`&w|nMGCP(n8nZd1KXMGOU4<=!RmHg zPop$JLy@}3lBcotWDnWSWE_x!Ak4J1geWbA#~y>~YVdlMe^;&~QhG*sRm;_H0Qp87 z!_ldUf-`gIc*IJeOjAZ2VOY&l%76d5n(LeCSvN)3P|}rp&Tht!8P4JFIgy8JIaN&Z z-oh&HCT82x;nXl;^l%Q($i}1XgXCwqCU_^yM;)V}Fda^;2_gk`=L>)tz=_E?W(;gF z$36ma&MIyx8cTgi3vS0c=C!V8Za@R-)h4iKABeR#@Z_+u)DJsGfny`*N`Kp!V(km3 znBDt99J!3w3I@~UI>-sON=og=D9DQz(T{XVObUXqfp7yhltr;S`mv?r7z!1I`fowh z0*%D4y!&X9|4GCVlp*&kab80lLs|JdQM!k;=WAL{bWqMf=^E6gpVCqY6@z+Gmr2{X zZy{&E2CTo9GQyeUxIYoae}8+9VT3acO9K7&a{4P&D(JV8qZP{Y1UHu!a%e;Vt2Kbt z7Q|w!p*XmL+uA@0tz6D4jAb}S+EuXUdR99|&=Bxr^8~Q^16bu+ zisU!Bs8Hoh<+FpORJJ;iBL^6nTg9Xkb}_L?82IBOGou^3)Qz1gCVvH=<~mvB%;4i= zr}1g44ZpXJlN{TbJffblCE9wS#FzXpapkgr!(|Ize3`8#^VHyq=iExYB)HtN&T&@Y z9dRSSpAU=zrUMrk2_?^E{WJ&Of?A3W2C-OzSgf543Id)yTFo0cZ_-KBWxdJ|z15V2 z^JvZd4Y!-GXEm2kKw`t>o6RJ2}~% zOIvUSw{6(Y0dM(c^5L`&a@<0oJbUxXr=lq@< zEwkAqPv?_~T7M2OD4*t?%@j;iIlyip7dR`SUaxb`)Ts>uV zOekc-A0R$Vftwb~`MfozoTXbE7||L9DQ+O~4&T!j_t@}<9C(9zP8MC<%oCkg@#2sU za@5dDjI)RF!*%}17J~Y)2~K2bA#1pjmmGQyKr{LJrhgYgiA%-T%Z=sy^BGfK&enzo z;_4N(Gu4B*re`4-8cY488j9@!td<}a%cI;;DIqe=gfg~pdIO+aP$rn1i7#{pn+I*+ zJd=-1i;qmxa_;nI5Ro$Rv5Scjz0*bP5X+;FQYlGfn$2Wv*+Q@NN)RfHsl!9|zHaO`ADK2Uj@FSJ zumQB-ZdD84#P5bZ${nW&BuOAiSsIR=?obG`znT1wF0yQ0WZ42(#bBBMvN{>$Re$?j zHnzUZ75gG&NCHX9*9jHE+}TY2mmadE4swujc7Nv6oCSnEWZO{|vy5YJ&FftJmo{>{ z4luIwibSC@Jp0@Bb!QK;`Fz;CURpM}x6WARFB13329izYkP|w)Gr?BG} zHvC_D$X=@Dpsa$er(ZH8zFrq81*S~Fw0%46(elM8o%k0Z#W-;hP7A@1oo@BXN-Xa4 zCKuIpkaKJyYl_wL9ptp{Wn5D$dAeI)@_%R16>`y@z^SIB^&lsN7P3a|zhoboUCreC zJYTmw&xt-p zH?G&iN7j~YeysG>te?c{6}_G$W()}Uhk(bU!L0%iCxZBnGQ^4tS8?;Bt>hjN5Rn-q z`>_TaC~W%`4^`+mR|_~l8D|lzuYcXosCxyJH!`?fX3)}YO#bzytbbC+xkbR-WSpsd zdeNWxQHg+ptN2qc2rGzTAbyslhK3vvXM)IymdP^WqzHTo8%Y+BWmJqDOjAKEMba)N zW+>;SMSbOrW`C}WcIQ!sW*udyv%ee@VM`d33FR@NvT`fRfiCuM{)S$}Y=g0cfZ zyXFT{SaQyOMgxSSpI)8?Cg+4PIRQIL#Il#^Ldu|>6D2&Hz!`{e4%mQwv$mI_eb?~E zmq9!Q;w2Dog7^T$HW2k7nm}}e5Fo^C-V^UJTd04locEZ$WCkBCPnT1~-hHcC^sJuK zSAQn)dE*QG_;o!8#ApydPk)yK;ynyQMpZh-l6F=_6V01W#cXRIJ ze(P*DMFA>H37HC50`LysGu_AiuFag0Z^RkL-nQFVQL%`p_D4D8I!;>toXWpKckxKg z6}(&z$P(gKEk`5RSYR%2nh^)s20R4Prf7Mg|P!y zETbYWNi3OAs{Ne{ZRIQ-{3)jmMOnu9?__!1e4cOAaSVl0t(uZA%UQbnH7*MS&Y67Z zxSNOM3wY}&nu(-@SYj+xtfu3ED^L<#oxmR88IW`dDrpL(S{0L;!kA1`*yc96-kVUW z{f$c;VN9lZtTPPF_J1OjI%AeADLop%>OYf@x-rN{kPs`h9IXiuxLmM!F;$~3ZVC?{ zVVW|i&dr7maR2?#-i{R0q>n=NX6Xu*1}B+NF_B0k{YOGPrR8WXy&TRKL!pvp|MtQ3 zIg`he(*JtwIsFwW zxj*UWa3=V3Jnkri#I57P>5oXBl>VfZ!)ff#@oIXe?M(KjD5B>W3h+7KX{?~EU4LG4oZKHx4rgN{I}RVFr(U(S z%Jn4vBo(TQtbZ*pa@Dm%IeKFuhwfOyl4S=NX%Ib3-SnCm+;}e!e0VZDE2prn`f^_R zax2sP21Qdgy(R|N-oc~qPiFhh>3ni@1|NrCU_X}LTSBaI2 zr?i}S6BfW_#6igj{2Zi%(Xw$Itx)d)OC_Rulb0>NvLn>m?;`pjQq`AaN`3Us{fVSpDMkk^|W*RC6rd_HE`2 zL^ua*z`hYn89k5?AEIlw0x2OQO^F~Rj~+;fa|}3-7?dkd7LQ8dPr{2uO7JdOJPMQu zr@lXu3|__*!YGH+$c*MAsq!WJ!s(A0anhTWe}6@PdK1d%M+^G;BS|=YHD3~r(G2~# z`_rF0sz3HsIognm5nF#(8JZg5l-hYZ;hM`O;v<~#_U|B+R-~`i^xST!sDN<>oXScl zE7LDyViuRfiEh#*kX9sqA+bXRGBpYCMx2C~gp4})G&pnh!bpf|edY)f>m`x0UU7+J z34bygTW@!V5y$9ls{U}2g;x5?F|w4L{v_n5lQXHe!sEm-5~)8NBTLEYk5Ijp`#L#& z3;iBPfBwIk-tppm^G#16B|N#15VJ_XgI76s8(jaV0Vlz^Xa}!yHj>zJuh(%31=4zS z;z@{&8mb>S1{_nL>q$~kV!ig(u84oG2Y=BSe7sOe?3?W1lRY>vVrxVqAwfT8EiF)5 z3bZA1N=u==U4J&lIbQRqucL!c785sOYeh=xj|5UwjD!uor1o~BiDry*yoCBXI@EMK zZoNofi$C9F)9a0scGJ^|^tJdC6UumvBcYE38g=l|kNS-zX>t-ecr>9ENr{=K!+$9? z;PfNmHE{;tJ7>TKtiLw!mU@~T?UQ0zAl)jEt`kWAA&@Ryz*;++PW5J<2ni(A&zFoc zBFh3v7D$H$(jI}dbvmCkXgPCud$T}Vs(vadeLM*#&Y$@_Z_{!Xu=b!p`ny2-vp{KCKSg>Qz$LRhq8o;n=%NbxamU(v(f%~F^&KsTrP3L^r~~ToIB6n`hTCo@3X0Bzy1zsHXZtQj+nf6op*Z3SdazmKSAbJ zJY-us8Dx=hny0WWKO2v!8+*WuBfNuCqzcNid}Lbu*eo(mM?GWD&~s3_5Bp>DK3L!@ zon=4uRL1AzkQ)kN4u!DP)e+dTg+Qokm;H}hCcXjW0hehxTA{v!Zhu7B#l&A0Q&X&# zSkK(Ld92%u;i#cL7fa;4&72|Uu_4wUKFB?;dwHO!ubeHMKC_fcb)!D{LGCg2hqG%J zzbr1Mr(Wx+n>UY?_3EuN59$6+cqQJz5;#@@ZtZVb3G|DTLBxad3abowB4n8Q!?9T6 z_wch=5?}S#TS}qKgnvT1zk^2QdUMQ%UoUvSI3~g}iclUvjtbRhj#;Btl}0KbXoNH8{lCT6>)p3}x*W~~e^SPyT(qkbMF8w{8_j=u4T9y!!mSbPY zAkrDY+HR$8GZMh6Uka$!t^H#NO`XJZx;q&Zj*uZm$dJ0o3Mb(-(IZ4>4jmn6_E3>= zMm}bS?;XzdFQHtbXOG|BOr3D576f61*ft{xoPiw9G&ut~oC7vs--!JmtU@tsN**uf P00000NkvXXu0mjfOTFC9 delta 5626 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 UCes#Y-v9sr07*qoM6N<$g0m9VIRF3v diff --git a/test/reference/operator-source.base.rgb24.ref.png b/test/reference/operator-source.base.rgb24.ref.png index 32a6a401b3ccda05e57e98b1e90f37fb30c0ef2d..4736d5852498abd3515e240c239ca20cf433461d 100644 GIT binary patch delta 3953 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 delta 3953 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∋evkIfVpzOqSC|MhZb$L-^;kZsm$_+`Q^q$*E&@ zH-(_wPj~~Z3oIznz&GR^W%gAHL2(nFO{<+Na^o~afBz>xDEno>!;PIGP}V%M=;tex ztslL~;Gj`UviAwRj-!EG7}HK_L@B4Vl;uC;^j13b;w2g5D;!+{)s6B2rE^%mp3@5q zl;-Uu{2oWQKn7-4R?J=_yb7NK zM2y$00i~QxPqDn3uSK{U{s8S3R2RwzY${>-Mw$8!K7tDtR1hV|CRmP431LEkf*ED? zPMB%7FK)baM^JaO^}BJ~hIz(dqfTtfD%tW;)ih(MmZ@r)s@AF0T6JWLBgacRWr#ZY zX3Lh3s!40>Nio%l<)kUYylhHZR`w=$*WNT0G*E_l*_5>YKWi_Tn0ZNGAQ@}F=I>aX{0&3jXG_kTBfR#dm4$V)~Px|KKi`+?`&R@ zsr9@hx((?Rx|a5w(`MTsm9X`B;W;Ph)Z~WsDP3Sgby*JU<{7Q_COmVbovT+1*?NMS z+^{~SyWi}2k@OXUHxn%zFfagaX{Y2ZK~2uyl>W;|!TmlhcaXGtAbc zTsWzxi65#?NmW}=hDQq$6|$fVk(8~cN!^V*DE?&LgjW;q-ci9TwLGqE@8G=}s}4-MYNrFZA94>w->+(lXkpKt%|| z2aFL5N(Hr`pnUPXIJINVBWixW>H2xxp6RvGcyWC+=}RV0#k2LOKt%|~`4KBEEn9zJ zRzhpp0wG(Ms6@72P5`nY2eO~y`yxiQckIql{1q#;LqYPtV5^uxFBGT;_};BkeH35O zsVMpFGWAykqGU(OiIV*TzRzRSk3E3>GR3W|)DDHoza~=@7S?s>(=?P5?*but?dK_{yd4Y>RQC#(3-Bu+%n2f zG=9GYZ?#sM_R^f!PKF8)74FwttQEiaTsvaF1ImKz62{yBPH^<$?xavVp z3)DfDT+pc%Tq@V85!`!Z>Qi9=sbNX0PR->~5l6H`!?^opDppR9hsMT=e|@*MwmDY9 z9Z%F$E!VSkHv(mq5Q+bJK^!zwya0R?l$a2S{~JOc)-ANOY`w5Fq1Akf)jRcUJ*}6G z1Hwt-0IjCXBh#hCj5aDz;;qyn1YIkMy1TZ1 h6LI@fcjFF<{{zC6N0iUDOpO2l002ovPDHLkV1l!3o7MmT literal 0 HcmV?d00001 diff --git a/test/reference/operator-source.rgb24.ref.png b/test/reference/operator-source.rgb24.ref.png index c876aba87fadaeaad14845624358f65feac7cda9..2f9efeae0c940c7265aff56232ad31a7ef15d64f 100644 GIT binary patch delta 3959 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 R#8UtO002ovPDHLkV1hDMlJEck delta 3860 zcmV+v59{!UAEX|THGdA-NklqP;?QySGY@6IsNHN%o38E8PxxOUNbm=E+P1t@u%Q$AMfz#oFElFn)) zDoRNcr}|7NMJozvZ^}j=CH0)@GNGUoBP}R_Q|PF)y%%=TcbL;gWXj<}+5^niO1@A@ zU$r?ErQ{&(Q5~gd>Afi%{gnKZ5e0p4ItjSl?Ab$QWq<1U2On_oV1SZR+R;)4%BIB7 z0nVDW5|9|KqYk3t&SHi(=A?=l_UI@@%gkF4;ta3RQ80v}<#yB7#w)Mj@udD7IKc7a z62s`IlsykU67d`j1*$m#L6LXUQ#=v1OhDJE{_P1z{ZQP6{;b@(unq-$I?)z#>z zl)Xv@bAPuIaMSJPE0HhDgOcc$wA4ck=JpnZB;5`zMOw?_F;;rtzpKE@{WHo)wJ zmSRFJzhBKO87eh6y~u$~7B!A$9u?XE;75*5M1Nh0Z)26{8|YFY1Rt~%LMW_{lmsbyF< zGA;?!CFY%EePAN$NyaV0rP#&1Zq_GqQecH~?WH&m)?-9vfAP)4o3XnoabpLkk68gq zA*uZqv*Qx+OV}k!B<$eqV^%b8Y8oZQ*nbl^N0~L22L*AkLkZZy39~S#49Au12S0_7 zgs{mu22=n7w@-y2bo&%Q9+cSuS(}vejJuz@7vG>TuGV!Mc~;PO9hF_Jn}?qN22lCi zGvx1fDs6A%`*bcw1{>JH-bwi}HY&&dnlo#;Siz0!EI7-$580GdsfXz-6{uU3e}Ar0 zi#fA^izVC$vY?A~mjz1EN??m&m$7$Jep00#D#in!%p%dhN*pOzk zdVS}Z;H$j1l8y&C(oeZ^9ou+w1E=A?($p1Zp43uL@qbdKWX9S^RZ)laRO zY2HMoGJ_Km5EJi}MU2;S;$>dyrzk!2W6;90Ij920*Kp#$c_}1NW6&;85fZYF`YTQx z(^BIwlvAsysGzp?ftO$Ytbf0M2wY_1S$*#%o}vE`XTb{AcUT>!#7^QIv(4uRK}am3 zf167EiPdpRib(Y4q{1Xt(*O6Ijbe>p{gBmBO2Q<%C(?rcLx+BlYT-M73Wp2r_QG@L zx-og=qp=sD;4+0^1$zj227^F=apmiLf!2TLZLomlK7oo-Fr-p(WPb;PKvbn3qIH`} z{j*>%Ou-cjV_0SE5#(Y9gAh@vnY5Pi_9&JhmYW)T1(z>>t)#I~XlTZaSwJ8#q`GKD z)ylFr0?E&?y-tZbf-Scw0xIb4LIPS?zKq5vxpIsKk-CoU_X6dl2q>X@7zt=+`8zb0 zbLD#i6(QMy?R|lAP=6Ez2i+kgV36gvXe{IkS}m}>{`xP|ck^4f!azkuVON(@;4X(o z1S(z5%Ie6@)Rs4iU8Hme=afBRV%^woViP*wfC>}qr}Pn(iW3{b7S>V`5>YJ`A=X7{ znM#clOJIv*lXGg_ym|fN#p^qEELZo$z=ohDRt)1RoQWS(`F|0oui^R`Rij`bxr{%f z2?OdwDtB;t7}qCM#lS-Hek~PdT-H&aQn{SdvvA#{Y8)Uro`=?tcfbA7+SoNdRayv1 z1S(UlpM*>B3ihlS-IK`g;Cq;%0h})4erCKu^$~ulP&?ozoYYa}$lt*?o1qX+JMjQB zeoyszmD&SWp?_INO+zllCo?pRGe#U{Ks73*Mm7a9_+SW}XeqsYA=sx@gCahc+G9P;pq(B0YgNSR#f<#|7Az~!dh z!y&go>3{7haf+q?$n*cp8gQ+m{RIwH@Jafye1m~KC6>bTum)Vv4u=r5Ca|YO6HkG4 z7awQsH?yaNkEg&|siO?-rPrU2@>CS-lYE@D@*ybv$ag^`EmG}X3|j8F%!TMn26Fl>A`WGX(oeHr=_l~`~5fk zet-4Fx#nh?oAp`-gVT$nfw^Ahg3Cjsj!PbTh2zFu=f~k?uChk$CgS0e+k_GgT)^=^ z%xMmQU$0ZBB6AVtj-@E+LhWj4yUJirH^Z1H7chvJAKR49U*z-aIRxkHKQaQBLPc;z*a+9qQbHI|;KGPX*;}YN)woh@qP&R};-Q0iP(I3iTIwJ2pnsqo zEv1cose9G>y|`<`xMHx-D%QeD9NMEv!-}C^OVw+sdX>tp)rv#BbL>?qU1%t@TBwxS zwKvs?<)kUyylhHZX7;8!vCK2FUiHLaUN$AI|Iglw8kGgQd0BQS)w;zW%-(4n+<&y;_2Pr4ByVX?%DRq=RZv6KYpMGDs8-(6=90Xq zWb$7$Ewr35q{QXR9AVZKcYxA$*PYbL^R=BE>)lhObh+eCYUOFq?C2e!@_qm@8LhvJ z!I?ycf%LD&EZLc6ugF+vRW|CiRDE`)(NOg&)ruTsU_||0+g>fTp1q=5S%0NawUTZ( zZC;C|O4GvQ>xJi>pi+~&txxF-)^(TZZQZz{Ro;ZBM6+}Ic0;Yn-PWgc^&34e(tL#A z%|Oe7@=$D1_D&uwyJvJo{ot&}}o=W1%?)l#C?7WSV|scjtj5kFB9&vnY`wUqF7Ag~{mf+MI}P=-L6%{e2&9&IMm z#8jy$Bm^pkoKC8`j5!&tbUB-qYQjSHj+i%eN|aL3CIl)@Bz?meHGiR!kaWAZu2`6+ zY93yaG+94S+cW%b6kc2(&H9kZQ|W3wAy9FmX@1m9OR3fu&BMih z3ZfPv9o2AQ3s;l_y+|!QB4jGD$41%(>M<@npi)7kc5~{4KzX>Zj4Mh{UPbCKr<6R| za`sE;uBlnGWlL(>+1uOM(sC8%!qP0tEVU$rZNn9rJ4S^`q<^os=$+Qe(_WtQ+R0E6 z62kR*hqcnzp1mgZJD_54EMZInuz_^|=_+N)p)k@>wt)*)Db!;E^)1GVRVs`WP^mc5 z1ueA=TMT=g;y8}!j9DOxEs8aOG)$RtNJbjfQpzutYPNijxr>)9Stvz7gQ;G>ILc;E811+F}~iaQlm&e z)lw&f8%QH7I#jBhuPfA7uZEEZwN$E|ZZ~ah+jhRu(sCiy!kT9rH(AwcT|%JD3Zk&d zO>;cwWISI=EQk^UrM<12XerhDw1+ZUfAI3|zZzI!fzNoRq~;wX!I)|IotlO?q)dSCrnB)V;O!dvVvs{{a}+ WG?Nh3Dh*!%00003L_t(|ob8-@cogNm$3K(3WjAcH$tK)_T*LsuNI@hT5JX$W zOI5Jd9<5MMQMA>gt=FnY0$6WYP;7fDDyNE8TlEoIwN|i-*FeyMArK&mAcRXot~<$Q z@9+6zb~dxKvztxC<5Qpfo@XB>Gw*)(_kNl8_M6|lFkl0AJbz8tD0Kv8cTv*wJf9$d~VL+<1LX(dz_NC@TUkf@+6cssudR8VF$hQ@PF z%eZ1l!_rF;0)klU{*4S_Kvy^aIWOmS+}t2;tV1gMqdbF<_4Y&u3@1?hf@Cs zuLGPv<$s;4xn438GW=m5nHh6<`}_}>H7ylK<4+)3X@42;sK)`U@+JJO|{jAsA7WE_n@h9UtTD*?}6xpd{5@O{_A$IH#qN_{!cf|@J zT)Dv@mVZUSheikm{33BF9pQiVW~|*a0)xrCJ}>P#GCYmlR<<+ z4jtBWF6R|D&`BC10dfZ6j$GR6^&Fr%b~JBZYG>xoCECeX={d1c&qaG@x|Qqsa;S^= zet!-(EnR)(mx|}!ozM~zNU(dOR2lx5N+)A2v z)!jUl6Tm9zIY1`}Wh%37U2136uLmdwEP9Tn*+~8la_)c>V|vuWn8M{OtF5C$$a;(x^T zFM~Pukr&6$Ng-B*jPNRMd1F0u)s9ntt22Q;`&w|nMGCP(n8nZd1KXMGOU4<=!RmHg zPop$JLy@}3lBcotWDnWSWE_x!Ak4J1geWbA#~y>~YVdlMe^;&~QhG*sRm;_H0Qp87 z!_ldUf-`gIc*IJeOjAZ2VOY&l%76d5n(LeCSvN)3P|}rp&Tht!8P4JFIgy8JIaN&Z z-oh&HCT82x;nXl;^l%Q($i}1XgXCwqCU_^yM;)V}Fda^;2_gk`=L>)tz=_E?W(;gF z$36ma&MIyx8cTgi3vS0c=C!V8Za@R-)h4iKABeR#@Z_+u)DJsGfny`*N`Kp!V(km3 znBDt99J!3w3I@~UI>-sON=og=D9DQz(T{XVObUXqfp7yhltr;S`mv?r7z!1I`fowh z0*%D4y!&X9|4GCVlp*&kab80lLs|JdQM!k;=WAL{bWqMf=^E6gpVCqY6@z+Gmr2{X zZy{&E2CTo9GQyeUxIYoae}8+9VT3acO9K7&a{4P&D(JV8qZP{Y1UHu!a%e;Vt2Kbt z7Q|w!p*XmL+uA@0tz6D4jAb}S+EuXUdR99|&=Bxr^8~Q^16bu+ zisU!Bs8Hoh<+FpORJJ;iBL^6nTg9Xkb}_L?82IBOGou^3)Qz1gCVvH=<~mvB%;4i= zr}1g44ZpXJlN{TbJffblCE9wS#FzXpapkgr!(|Ize3`8#^VHyq=iExYB)HtN&T&@Y z9dRSSpAU=zrUMrk2_?^E{WJ&Of?A3W2C-OzSgf543Id)yTFo0cZ_-KBWxdJ|z15V2 z^JvZd4Y!-GXEm2kKw`t>o6RJ2}~% zOIvUSw{6(Y0dM(c^5L`&a@<0oJbUxXr=lq@< zEwkAqPv?_~T7M2OD4*t?%@j;iIlyip7dR`SUaxb`)Ts>uV zOekc-A0R$Vftwb~`MfozoTXbE7||L9DQ+O~4&T!j_t@}<9C(9zP8MC<%oCkg@#2sU za@5dDjI)RF!*%}17J~Y)2~K2bA#1pjmmGQyKr{LJrhgYgiA%-T%Z=sy^BGfK&enzo z;_4N(Gu4B*re`4-8cY488j9@!td<}a%cI;;DIqe=gfg~pdIO+aP$rn1i7#{pn+I*+ zJd=-1i;qmxa_;nI5Ro$Rv5Scjz0*bP5X+;FQYlGfn$2Wv*+Q@NN)RfHsl!9|zHaO`ADK2Uj@FSJ zumQB-ZdD84#P5bZ${nW&BuOAiSsIR=?obG`znT1wF0yQ0WZ42(#bBBMvN{>$Re$?j zHnzUZ75gG&NCHX9*9jHE+}TY2mmadE4swujc7Nv6oCSnEWZO{|vy5YJ&FftJmo{>{ z4luIwibSC@Jp0@Bb!QK;`Fz;CURpM}x6WARFB13329izYkP|w)Gr?BG} zHvC_D$X=@Dpsa$er(ZH8zFrq81*S~Fw0%46(elM8o%k0Z#W-;hP7A@1oo@BXN-Xa4 zCKuIpkaKJyYl_wL9ptp{Wn5D$dAeI)@_%R16>`y@z^SIB^&lsN7P3a|zhoboUCreC zJYTmw&xt-p zH?G&iN7j~YeysG>te?c{6}_G$W()}Uhk(bU!L0%iCxZBnGQ^4tS8?;Bt>hjN5Rn-q z`>_TaC~W%`4^`+mR|_~l8D|lzuYcXosCxyJH!`?fX3)}YO#bzytbbC+xkbR-WSpsd zdeNWxQHg+ptN2qc2rGzTAbyslhK3vvXM)IymdP^WqzHTo8%Y+BWmJqDOjAKEMba)N zW+>;SMSbOrW`C}WcIQ!sW*udyv%ee@VM`d33FR@NvT`fRfiCuM{)S$}Y=g0cfZ zyXFT{SaQyOMgxSSpI)8?Cg+4PIRQIL#Il#^Ldu|>6D2&Hz!`{e4%mQwv$mI_eb?~E zmq9!Q;w2Dog7^T$HW2k7nm}}e5Fo^C-V^UJTd04locEZ$WCkBCPnT1~-hHcC^sJuK zSAQn)dE*QG_;o!8#ApydPk)yK;ynyQMpZh-l6F=_6V01W#cXRIJ ze(P*DMFA>H37HC50`LysGu_AiuFag0Z^RkL-nQFVQL%`p_D4D8I!;>toXWpKckxKg z6}(&z$P(gKEk`5RSYR%2nh^)s20R4Prf7Mg|P!y zETbYWNi3OAs{Ne{ZRIQ-{3)jmMOnu9?__!1e4cOAaSVl0t(uZA%UQbnH7*MS&Y67Z zxSNOM3wY}&nu(-@SYj+xtfu3ED^L<#oxmR88IW`dDrpL(S{0L;!kA1`*yc96-kVUW z{f$c;VN9lZtTPPF_J1OjI%AeADLop%>OYf@x-rN{kPs`h9IXiuxLmM!F;$~3ZVC?{ zVVW|i&dr7maR2?#-i{R0q>n=NX6Xu*1}B+NF_B0k{YOGPrR8WXy&TRKL!pvp|MtQ3 zIg`he(*JtwIsFwW zxj*UWa3=V3Jnkri#I57P>5oXBl>VfZ!)ff#@oIXe?M(KjD5B>W3h+7KX{?~EU4LG4oZKHx4rgN{I}RVFr(U(S z%Jn4vBo(TQtbZ*pa@Dm%IeKFuhwfOyl4S=NX%Ib3-SnCm+;}e!e0VZDE2prn`f^_R zax2sP21Qdgy(R|N-oc~qPiFhh>3ni@1|NrCU_X}LTSBaI2 zr?i}S6BfW_#6igj{2Zi%(Xw$Itx)d)OC_Rulb0>NvLn>m?;`pjQq`AaN`3Us{fVSpDMkk^|W*RC6rd_HE`2 zL^ua*z`hYn89k5?AEIlw0x2OQO^F~Rj~+;fa|}3-7?dkd7LQ8dPr{2uO7JdOJPMQu zr@lXu3|__*!YGH+$c*MAsq!WJ!s(A0anhTWe}6@PdK1d%M+^G;BS|=YHD3~r(G2~# z`_rF0sz3HsIognm5nF#(8JZg5l-hYZ;hM`O;v<~#_U|B+R-~`i^xST!sDN<>oXScl zE7LDyViuRfiEh#*kX9sqA+bXRGBpYCMx2C~gp4})G&pnh!bpf|edY)f>m`x0UU7+J z34bygTW@!V5y$9ls{U}2g;x5?F|w4L{v_n5lQXHe!sEm-5~)8NBTLEYk5Ijp`#L#& z3;iBPfBwIk-tppm^G#16B|N#15VJ_XgI76s8(jaV0Vlz^Xa}!yHj>zJuh(%31=4zS z;z@{&8mb>S1{_nL>q$~kV!ig(u84oG2Y=BSe7sOe?3?W1lRY>vVrxVqAwfT8EiF)5 z3bZA1N=u==U4J&lIbQRqucL!c785sOYeh=xj|5UwjD!uor1o~BiDry*yoCBXI@EMK zZoNofi$C9F)9a0scGJ^|^tJdC6UumvBcYE38g=l|kNS-zX>t-ecr>9ENr{=K!+$9? z;PfNmHE{;tJ7>TKtiLw!mU@~T?UQ0zAl)jEt`kWAA&@Ryz*;++PW5J<2ni(A&zFoc zBFh3v7D$H$(jI}dbvmCkXgPCud$T}Vs(vadeLM*#&Y$@_Z_{!Xu=b!p`ny2-vp{KCKSg>Qz$LRhq8o;n=%NbxamU(v(f%~F^&KsTrP3L^r~~ToIB6n`hTCo@3X0Bzy1zsHXZtQj+nf6op*Z3SdazmKSAbJ zJY-us8Dx=hny0WWKO2v!8+*WuBfNuCqzcNid}Lbu*eo(mM?GWD&~s3_5Bp>DK3L!@ zon=4uRL1AzkQ)kN4u!DP)e+dTg+Qokm;H}hCcXjW0hehxTA{v!Zhu7B#l&A0Q&X&# zSkK(Ld92%u;i#cL7fa;4&72|Uu_4wUKFB?;dwHO!ubeHMKC_fcb)!D{LGCg2hqG%J zzbr1Mr(Wx+n>UY?_3EuN59$6+cqQJz5;#@@ZtZVb3G|DTLBxad3abowB4n8Q!?9T6 z_wch=5?}S#TS}qKgnvT1zk^2QdUMQ%UoUvSI3~g}iclUvjtbRhj#;Btl}0KbXoNH8{lCT6>)p3}x*W~~e^SPyT(qkbMF8w{8_j=u4T9y!!mSbPY zAkrDY+HR$8GZMh6Uka$!t^H#NO`XJZx;q&Zj*uZm$dJ0o3Mb(-(IZ4>4jmn6_E3>= zMm}bS?;XzdFQHtbXOG|BOr3D576f61*ft{xoPiw9G&ut~oC7vs--!JmtU@tsN**uf P00000NkvXXu0mjfOTFC9 delta 5626 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 UCes#Y-v9sr07*qoM6N<$g0m9VIRF3v diff --git a/test/reference/operator-source.traps.rgb24.ref.png b/test/reference/operator-source.traps.rgb24.ref.png index 32a6a401b3ccda05e57e98b1e90f37fb30c0ef2d..4736d5852498abd3515e240c239ca20cf433461d 100644 GIT binary patch delta 3953 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 delta 3953 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 literal 0 HcmV?d00001 diff --git a/test/reference/operator.egl.argb32.ref.png b/test/reference/operator.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..34fce987b2fd57c6909556007ca86e25acd84f73 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^JAqh$gAGV}?Ymb6q}Y|gW!U_%O?Xx7JIrl zhGaCpz2?o=V8G!TXz;H7w8h%L?GiaBY>l`2uQC%8WMF7moLQNmWG1;{@8`go8aMA9 zJXyNP=(+|&%0VUfs_!qF(zP#_scZUWe6O3=(-FGx;tt8;GrFrLN1b1LZ(I4k>Cb0x zD?N4iV)g3RYvwP%+?taz%ftNee3_RUPfV2SmU&rwC*|7SPphw_)$g7Bv18TaiMe^{ ksXrzw+lpBN9r$5A`-&nfIl&74FF+oHr>mdKI;Vst0G7~Yx&QzG literal 0 HcmV?d00001 diff --git a/test/reference/operator.mask.argb32.ref.png b/test/reference/operator.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..34fce987b2fd57c6909556007ca86e25acd84f73 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^JAqh$gAGV}?Ymb6q}Y|gW!U_%O?Xx7JIrl zhGaCpz2?o=V8G!TXz;H7w8h%L?GiaBY>l`2uQC%8WMF7moLQNmWG1;{@8`go8aMA9 zJXyNP=(+|&%0VUfs_!qF(zP#_scZUWe6O3=(-FGx;tt8;GrFrLN1b1LZ(I4k>Cb0x zD?N4iV)g3RYvwP%+?taz%ftNee3_RUPfV2SmU&rwC*|7SPphw_)$g7Bv18TaiMe^{ ksXrzw+lpBN9r$5A`-&nfIl&74FF+oHr>mdKI;Vst0G7~Yx&QzG literal 0 HcmV?d00001 diff --git a/test/reference/operator.mask.rgb24.ref.png b/test/reference/operator.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..aa6103df83155e5df1d3c617e169654472c5f0ac GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^JAqh$g9%6;z2m71q}Y|gW!U_%O?XxiacE$ zLoyoQUcboY;2^*n@Z^8}O!c6y=r+;kHkswOZeBIXxz6Yy{r8uNtp9!Cu-9kZGd4x# z-YD3l8L>h%=y9D!PEYN%U57T@Qj=9*yT!M1g618Uw^^#|!{Zf~hIy`@Yv=G<<^4z!)Y)78&qol`;+08bD{Y5)KL literal 0 HcmV?d00001 diff --git a/test/reference/operator.rgb24.ref.png b/test/reference/operator.rgb24.ref.png index 3a6309c6be5410156b9cec914881754967bf86cf..aa6103df83155e5df1d3c617e169654472c5f0ac 100644 GIT binary patch delta 155 zcmV;M0A&B!0lfi`83+OZ0070@NiC5f6@PL`L_t(&f$i7P3P3;*1yJPwf0-vzid%*i z=R9e5+S%1KY}Wxm8~yq;9Z%mAR_o12XtG*u*l@BbSf~|J<9;Y?jD6O+!m!#V9Ve}{ zO?i+h+(hkaC9hXsA*EJGsTERJKH>klqJDt?6&|Ek0D!lf0gNIR8ws~I2LJ#700>D% JPDHLkV1fp_K!E@N delta 183 zcmV;o07(D60oehN83+ad002t9-g=QC6@QLNL_t(&f$iDR3V<*Og<*}o|0~yR1dBLq zCWrsKtB}bOCzTO#24L*?I{{!fiX8UF{o-wI$;thym@002(0QGz7&+N!#6ZU%EW-Dl-bEXcH~w2KSpMsNpL6O(T- zFS8eEI}!g~nCZ|P83s!eN4c$XTw z{>Ik_k9;mD^_8W{?{H_HeJ=M!i2;6M)AqfmRvIs?7nDoMGKd#PrX}}DXD+y)^Xi@) zZQGmJw0(Zn*5wa=+J%=P)7 z7kNA@TND|f2lx!M0CmA9x4=1&2Y%u4V0x4}SkVKF15JPmc1F!>U_#(iDa{xtWI$-|+`(}U*ui+Gm>dJ$m zoA?JzXJ&(4senzf;p|ES+-eD{fVMQi4VJK8uq#nA0x&w5nMH=;zE^ukX#r|9_HB8P z16jj=+N!#6ZU%EW-Dl-bEXcH~w2KSpMsNpL6O(T- zFS8eEI}!g~nCZ|P83s!eN4c$XTw z{>Ik_k9;mD^_8W{?{H_HeJ=M!i2;6M)AqfmRvIs?7nDoMGKd#PrX}}DXD+y)^Xi@) zZQGmJw0(Zn*5wa=+<@-00006VoOIv0RI60 z0RN!9r;`8x0ftFLK~z|U?bgpq0#Ovl@$ab6L>3tarAB`sG<$$nfwai!t$L@HCI|-g z1Ui8PEy57OMVl6tt%T9Mdd}@mLCkMAbIzIh%y5~xkR(ZxBuSF!;@J#kpbAH@1wH_8 z(1#E@@cs*kDxAZ*p*n;Hbaa;dBnM@;2)oDzWr%_;V%s4iYl~PFb;(xF+|QYV6(ee zAVz#ZLrEC1-^BY|ED$4r5ZVgEZkznQNPzAy`UpOhrcdvEYb@Py(8P=U%I64_h!ON) z0L6(dMHJx=DPOU3s}Nwny{o_>6d=bL_(Rs7*yxcDNlk9=77A<;lesjPBmxu*Qy-xq zMuc1t7eXb71)&wVM_33PBkTk&5!M1{h@S}Dr1rPB|5y0}W8_bR2q6-z00000NkvXX Hu0mjf{Henv literal 0 HcmV?d00001 diff --git a/test/reference/over-above-source.rgb24.ref.png b/test/reference/over-above-source.rgb24.ref.png index ec37387e128e41d79828587449b6da99ec4b25c0..240de27e0152c0cb56e8abd5901c1dfea0025a90 100644 GIT binary patch delta 421 zcmV;W0b2g01JMJJHh+dmL_t(oh3(eQN&-<7$MNr|&_os)2Bk)SAT)b`R)Mt0>8*OF zmL>=W^#nSB1TDf4!bO`Fm92!)yn4>H}vjjf$ zoFghwm-Ye_;Tc{;y(v*w1_F%$@F0MULqx^A66YibWw!{s$OdJIf-Pd(AtGywSQT~2 zR?ghi%%wD(nyWW(4M^X_tHKn`l6kN-7KjmjOGMT%*n(E%P=*LC5&2nzQvxxfEB*FG zvoc__yI3Gbe1AYgNf@!;#QR(<5F>yP+6u#NoBX{XZN3TzRRxips~ z0u&2VAE6*dgj^68LM4a=p%u7CSO^>=>;x_m)&ggUpB@O@r1rPB|5y0}W8_bR2q6-z P00000NkvXXu0mjfOgXw$ delta 376 zcmV-;0f+w41Em9yHh)@4L_t(oh3(d%Qo}GD$MG*PF)sI25M5POh4 z5Mly>tgNg+AP^N3JVHeU0=Vn8ru+Z11n#)}RIm9b{j^E0fs~Y#l#~=*Zan*~AqU&L zQ$qzGzkrxR4mnI61r1d2rW^H6CwPPvOx!gFR?xyB2ExD==6|x{B>;_d>|1GJ0Y+N; zU2iWIsSpO%8o^f{!Xi8bK;~Y*K8V~4A?_$c$X;k5SwMt$WNUe3%S%(Zn`SK=cWVv% zP>7LCT4z%U<S zz%#rn1owMp$8l#1mq3H);7NLBS-xOvsQ}%1qJvlHz#eVwtXE)IgyX#XlzrA|87ZZ)qj=QwZY0 zyLS&F_$f4KgNI%O7xW@X=qZXw8e1uaR8v|sOAR|7R*R(B&AzjfRAirHc78KYW{2JP zUC7AD$jHd}pHYcNYVKQH_YI1dCc(T#iKKWaJkzihVaJC`6&9bv>B?!ePq!({>74imtVh8sG~ zx~9R0cj5M9qv$olJG){MHu|Rv%f_;QxT@j2Nl+~8_~GuRL=heh@f{WmFDxfJvk7o9 z*k!SBxh74-azPpp3txFBO~i6q8W0OlZ%GreoRS7c_G(^w!u+r?y*xb@IgwzxgW5y9 z!<$8EBATDa*iSIb`@2vQ3)f51L^QjT> zs3AQnVdL)kD1=kB`r{T({as?5!l`9pe8N^_VLZatWMTBeR%J(v9^N8l{EPeo>AaHs TFEx2Y00000NkvXXu0mjfbp9nM literal 0 HcmV?d00001 diff --git a/test/reference/over-around-source.egl.argb32.ref.png b/test/reference/over-around-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..448643e50e4274ce1dacfe2174f72260f3076758 GIT binary patch literal 683 zcmV;c0#yBpP)DL6G0eK|JY6@nqGg2mKQY z>cO+#Jy@ZCf?jOI=GKE?q6i*(@Dvp_Db}LcMnPhmNV~5G(^6})nc1C9q3rMS=I}E6 zeHfIfLH*h3MUJ$8s26LY_qMc?7v1ZmmhJmRo`+49vA2|7;p9LVQu*HUMqv1U#%rsG#Dqp z_Ml`vhhHDF`q{N#t!!n%05-Q4!rJhY^X?4K_VUdJ))rU*l}Y2x^-wj0Zfba83zg!2 z$~LgJzzUG11kZcs$Qr=<8ZHb{@^r(qi0={9)^Hw0PQhE?g#mO!!=-*^O8v~+!rB6_ zAM6?Mss;3aW@q*>J2gZx2rSs_!|Mi9e<3CXJ^`nJ9StB>&DN4E76vJP7-+cAjBg?~ ze;iG|2L*w5z)@fT=mokxja0k%^>aIwFT0ta?&JGXg5@x<_2)$tvsLi-Fmfra)Mb_NU48+HmCZG=-BjSweD{s7lTgBRcz R7=Qo(002ovPDHLkV1fnKHaP$Q literal 0 HcmV?d00001 diff --git a/test/reference/over-around-source.mask.argb32.ref.png b/test/reference/over-around-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..38df9b7386f0a36f27dbff635c564d525f6971d0 GIT binary patch literal 633 zcmV-<0*3vGP))IgyX#XlzrA|87ZZ)qj=QwZY0 zyLS&F_$f4KgNI%O7xW@X=qZXw8e1uaR8v|sOAR|7R*R(B&AzjfRAirHc78KYW{2JP zUC7AD$jHd}pHYcNYVKQH_YI1dCc(T#iKKWaJkzihVaJC`6&9bv>B?!ePq!({>74imtVh8sG~ zx~9R0cj5M9qv$olJG){MHu|Rv%f_;QxT@j2Nl+~8_~GuRL=heh@f{WmFDxfJvk7o9 z*k!SBxh74-azPpp3txFBO~i6q8W0OlZ%GreoRS7c_G(^w!u+r?y*xb@IgwzxgW5y9 z!<$8EBATDa*iSIb`@2vQ3)f51L^QjT> zs3AQnVdL)kD1=kB`r{T({as?5!l`9pe8N^_VLZatWMTBeR%J(v9^N8l{EPeo>AaHs TFEx2Y00000NkvXXu0mjfbp9nM literal 0 HcmV?d00001 diff --git a/test/reference/over-around-source.mask.rgb24.ref.png b/test/reference/over-around-source.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65fd8e80611d81f83fe22945633f8401c4370f57 GIT binary patch literal 499 zcmV<@-00006VoOIv0RI60 z0RN!9r;`8x0jNntK~z|U?bg9d!eAK3@vr7#MM2)Ox<=FP*3nb$&+^X_?J&?won;P* zvXG3>3ape^+NBt@IiL4!BZ&P@+n#6dKHFaQ4$`DalO~NUnHBY#?!aw0llJCxFA^CW zY=w3mM9!n+Q0%gEk1+$784L@!CQb>jttLR@b(9=V8*D#^w?7#)XEhOj{$_TL zRj1ncy8F+at&J(E0$CV>Ym-2IwoN1D1H& zix8%}bS6e5FMb$OgkH=T5xaMqh(e5r%@<9?maHv?&$eA#TJoaL{9a!~Phujxqd?vx zYPP?^i4a5KyA5O#A+Y^D5yBPD@<2ucffUg#GTu-YyoMqI0x9C7Me|Kfun1kl!UQse z4K^;cR1mi?mI+wBl;fXy0|x8|>ix>kBLlb=3j~P1zqx=*cz``HmLR6kgMo?wjgOTB zJuu+_b|DXQn8E}eVFYtUfer%jpaUIAt3ZI#pOtcCf+P`QL1G9MK{5zMK>`SMLEH!} pL97T}L41f`2x3a*Z!iC!@(DP8bpRO$g9QKp002ovPDHLkV1g-l(+2rrHh-u|L_t(oh3(eCOTu6n$MLV`VMRgSvbsjo?$*&$?$7ei674Y1 zOPys7iL#K4&NPTQVm?>^gJ_72jdNs}gxESVMcn(n}DIFt6~ zbT1Ma8*GJk9YoHfCQUxF${sudOCP<8_oAPJbJ0KZmzJ88l}&Y6jL; z)GPjGc8*o2+W5Nr(5!nLfdN;r5F@hUPOLh|=c3LNsLIEcBTSd_g~GUHIE)vO^RVg) z0w4pHc-o5)rn__|MkFtO7*d2@%oq{7cbbSojEKz_O~jV0Er!pwU0Yi6qR;$ZUqnx0 zBD|wO-Xm(ZzkkAs5JTa+4P+7_u>Cy|!WGW)Kt=+A6wxg*-cT02h9Uw2DdM9=^G!{# z2wlU%1TusTHZHVO5VtUv30S?9`SMLEH!}L97T}L41f`2x3a*Z!iC!@(DP8bpRO$g9QKp002ovPDHLkV1neK%AEiJ delta 410 zcmV;L0cHO41I7c8Hh+6bL_t(oh3(ZVa>Fnbh2g&sU}$LQB^Vk8W*J#Zmy!h(6ciK+ z3K|py1Q-Ma6c`i;7!+$PeRhrIpe2^!)l0Qc;*s^8ImMyZ}th7J)4qU;LwD#Wj zC5tg&6y=_XqN229*Z!BPz?NJywE*pOB#zQjS`s&1UZ>cGlYh>j`6m*`;W+sEaq@;7 zUckmcqz#87X(KA$L!z0JTVdVKNCjW@kcCC04Mn98d}bdO;UNHWNCF~C)iV3pF(6`Y zL#`$di11D-D+_RJn}^w^_vN15{SxQy=+Z8co_tPz~XTVqBbKy*D@c!b4kyw7=DIWGY2 zR>rIQ#};0pg>1O9>s|lc=mluc3D*r+KsmguuW*?>oz?_u#CIwX-K+uuaqkY9ASOaA zh=$Mz;vkfQ2nf9(G{Q>|6yYlfhxmmcPLX()i9up>nfdw1T9?PmVc-na94R zv5@?#U8)|OUEnQF2adeKrDRdFTpXMo;T>KTPJYEl$)CuwN0Fg*Gv!!#ZS_Gz#lYDF z)99j@%FZK$<>1u~Hj6BFuY}q9Tt!8$@Wk*9Hl{PmuW}UJs^W7+z|R9Sn|f9{5CNYA zW;XStbfEk>oV~}R!Nc18hTioh@rl?KzHLewZhnU)2EJ~H8ET%G-+v(jUbe9e_8*oQ z_&a`7bGG*&mIyfcjmt{Vwl-pk?j@2Xu7aR#ZN*ZzTlJ#C@gLN zB2DnZ>ZkiGr_npH(O6o6A1L!-#9>8P>b}FZ6=OLZIE3Xe;4qf`gR8LY7hH{Hf8Zuq p_5*H)W%uBw*qxSnb7(^^(qF$tMXNa2NSgov002ovPDHLkV1kF8(5L_a literal 0 HcmV?d00001 diff --git a/test/reference/over-below-source.egl.argb32.ref.png b/test/reference/over-below-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4354755d0442ad8447b9b6cb381b411dd5d32ecd GIT binary patch literal 440 zcmV;p0Z0CcP)>C8?R+=dUER^r($dn>($W%7DzZxU0B3lPBka$f z{KXBX_%8X^w^e^|c7`{2ggjewS^bRv?MG8qCJ19#{tu4`lC;4Yu=ttOVpJ$yIa2mBZh7ZDrY!)sy7fIIX^_j`1V zr#Q^XZfR^e@RDTSD~zSz9$uB=Shfo;j%An$hq2V3a4#%%C)^uLy$Kh=QfI=&uxx+A iMX_5==6q;FOC-1DgbBeWa3$3M0000LX()i9up>nfdw1T9?PmVc-na94R zv5@?#U8)|OUEnQF2adeKrDRdFTpXMo;T>KTPJYEl$)CuwN0Fg*Gv!!#ZS_Gz#lYDF z)99j@%FZK$<>1u~Hj6BFuY}q9Tt!8$@Wk*9Hl{PmuW}UJs^W7+z|R9Sn|f9{5CNYA zW;XStbfEk>oV~}R!Nc18hTioh@rl?KzHLewZhnU)2EJ~H8ET%G-+v(jUbe9e_8*oQ z_&a`7bGG*&mIyfcjmt{Vwl-pk?j@2Xu7aR#ZN*ZzTlJ#C@gLN zB2DnZ>ZkiGr_npH(O6o6A1L!-#9>8P>b}FZ6=OLZIE3Xe;4qf`gR8LY7hH{Hf8Zuq p_5*H)W%uBw*qxSnb7(^^(qF$tMXNa2NSgov002ovPDHLkV1kF8(5L_a literal 0 HcmV?d00001 diff --git a/test/reference/over-below-source.mask.rgb24.ref.png b/test/reference/over-below-source.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddde0e244c862c365895aed58d42aa95aad106a GIT binary patch literal 385 zcmV-{0e=38P)<@-00006VoOIv0RI60 z0RN!9r;`8x0X9iQK~z|U?bN+41W_1(;b+-mB_wn#tyt>OL$q@dD+Lkrxrl|(RBY!=tl!UEc*+r?Z{jiYHWM0t z2*QY)@`B-~!x&;*p&*R7i2nOB1YyJrgQ^5!1jd|HB1l2tn6vVNM8qqH9Pm(5Am?W_ z;*t*Qv{{-~kcGfA=bZmM7!gSO9Ek-56(Zt-st`$nN)V}n@`wyUVMLywBqCc-3^9$M fOgn#j`+wCt7F$1{0eD1H00000NkvXXu0mjfp6{r9 literal 0 HcmV?d00001 diff --git a/test/reference/over-below-source.rgb24.ref.png b/test/reference/over-below-source.rgb24.ref.png index 74176fa177692f6d1712489213a9723a31a80320..9ddde0e244c862c365895aed58d42aa95aad106a 100644 GIT binary patch delta 340 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 diff --git a/test/reference/overlapping-boxes.egl.argb32.ref.png b/test/reference/overlapping-boxes.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1c684381f284a471f68ff71993b92b83e17697ba GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VTavfC3&Vd9T(EcfWS~ffr;B5V zMep0m2e}R?@HkI?*#7Jg#3wxqRqtH=-lF{G-yx2?*E~CRz4^Z}@Jg#3wxqRqtH=-lF{G-yx2?*E~CRz4^Z}@SeEukL927AYiaJbQ}fwO5~In5HLgte<_vt}*xho;wDmYvmZ#+pbQU6B8n9xTUp2 Q0caJ2r>mdKI;Vst0N9B`g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/overlapping-dash-caps.argb32.ref.png b/test/reference/overlapping-dash-caps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..367d683575b434a32036ab643f6c233888fa8bee GIT binary patch literal 3986 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 N002ovPDHLkV1j+d6VCtu literal 0 HcmV?d00001 diff --git a/test/reference/overlapping-dash-caps.mask.argb32.ref.png b/test/reference/overlapping-dash-caps.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..367d683575b434a32036ab643f6c233888fa8bee GIT binary patch literal 3986 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 sOe8%$Rv*qWh-ZMT9}fQi;Z=b$ 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 DdQ&<6 diff --git a/test/reference/overlapping-glyphs.base.argb32.ref.png b/test/reference/overlapping-glyphs.base.argb32.ref.png index 0dc6fdb1d820ad8f5c05a3015f2b05332f9dae2c..11bf4e1111fe5ff4e591413b3aa8e8b36f644529 100644 GIT binary patch delta 2688 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 Y7xcW*CS%;w4FCWD07*qoM6N<$f@8onzW@LL delta 1612 zcmV-S2DAD74DSq(Hh&~ZL_t(&f$f;jPZL`d$4{BgOrf3rVhSxH6$_M>SW#0-G}Okp zFfNQFg=ipggLS7$vNNLIrp5S5JeI89}0!yPrL9RwESrY4u2AdV(o$7BUZ6k62T76~$DKQOj%C@InHh(}q0{L;e*Adm%o(*> zy|lFCbUI6=QY;p;TCHZYd31DCuh+}Cbr4@enx<)*9v&X1X*!?JyId{+KoA4~ve~TD z>GXI!EXyt}EtN_ojYb0iot>S>j~@qsa5#*jsKsI#9Df}A{{6csikq98ZEbB2A3kIl zrum`$eq_YT=kpkbwYIi47Lq*}3>FH7Xf#@{*Uz3k3jn!XjvxrVUOzA}kjZ2K!0Yvn zjg8&7aYLum)oQh=sVS98<#0IkdVM$?ZgybJKqkSf)#_TU#&MiRqv1HNUau>aN&qk# zjlp1$Wq;XlI6N>g005245{X1sS62bRZnp!#{QUg;_wNB96bgx=$S_QAZ*MM_Yid+Y zLgr?XB#B|z#>Pf_dpnAv-@bio*g1~Fas1k~YZDU_03hYQot>S9g@x7Ba6P z0EnU(3WWlJ0D>UJVo@@hOeQHY;W%!$+gDarE?&GS2*UjQJOCJtMw+HclDu{6)|)qP zB7c#{?u_pBdM{kKAmi4)d=2HrYQQjzD2fC@l*?tF=Lv$S)oK8MzcMSoE@ zZ{A#9Ubfk6gM)+cZ-@Ny(hU%#d(%4jqymC9r?+1J;XOeX8~ zdRJFhDwQgi%NC2JR4NS(4PCl)>Hi4scOxTKI-OQ16lSwIl}g!cHp$5Ie63cyeEG6k zt;TVDWo6~nt5+<``u+YpckcN8{(sfg)$Q$Vf*|~UKZ>Fp$KAbqx3{;qv$NCd^*(s; z;MlQalI{l!8L@btZ)s_1X=xDz0Yy>CxVgFc;>8PT>d@ccpUq}@p3i2pJv}`D5Dtf9 zu~=JM+wkx(hG7&%Q503JRymGKr_-&itwTdY@p$|oiX~Gz7z~Dby%^isCr_;lqc;#YKa`KoEr8Zs#}-0B{_a zy2S&Bj94a<$!sN}= z08p#dqS5H*&!45uPoF;JI4+mVt*@_h9LI5-*=!DlLStiNI-PELdD&z#&CShiZEan> zdbR11HGyB6Iz>dX!-pr_&jUL`8O=ayp#^L45l3 zDVnAzK76#gLK2{7#_oUMN)^)iua|bm*2QOyRy!ByNc%|9ceA^+6L7W z;cv;xVT-yl&m{2pcim@`ITBkFb0AMscI~}_nH$8#H%Q*S5q9kMMz-e#dw#4FIQjZV z=iMNy|Hqd7x4di7e|$&d;TZ?2zdRDMdnloHG5A`1vhFo*)w7G@Rf>eHPc2{ngO}^7 z@85F|SJnU9JxzCaE7!YDhHnpMxqV3g=%JAkab$(ksTOYQiU9SwAw3T-J{*cgTyH@azqs`&9N&Zv5o|X{WyGrv` zprWzTjo8!};nX!bo)^`W;stVXHZ=0REw`uJof2X_q?4SP*dzihsJ^Ok~Pj{R_ zz_IiK27lLNdzB`;Hhw8C$wPX*M%$yD1urj3x$07+eRTi&H@8LJR`IWVG-buxxpg^5 zT$Jxw=GSd}9vZl-O8iEC$eqYZYA-~zUJ6}Ja=2ss>Ptop?={i=M_2qV@7V2IuFXFi g7%Q0QPw+lw6`z6t(_?=7fa!$6)78&qol`;+0BNrfZ2$lO literal 0 HcmV?d00001 diff --git a/test/reference/overlapping-glyphs.mask.argb32.ref.png b/test/reference/overlapping-glyphs.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec4ee541620cddf307d4e7d6ed1e250a6610df7 GIT binary patch literal 2717 zcmV;O3S#w%P)Q`Z^CKR59k!7q7nV&m|Z2waRIFc{%gfik3y!KmmE zDrvV$>jauARoh?EYSL7Jx=L%eG9fxNpe2)NMk5R?G`uVc28NOh;=DMC!S;2W*s;AI zo@*y*r|B96HJkF4qI+`BIoHoU-}5}@Ip1@YTrQX6{{V`jDBraWbAgiY+JFVj#sVSp z3@?F6YgPc2e zjy-$!kjZ5D^2;x&s;a_lHq+ePOehp05D0Me=uxazEB*cbR99DHHk)UaU&xCTx2XGo z!@w0}w*LSa115n_fm&cEGVm&}6d2L!XO`z2x;-S5$?(M&U-0tFFVooA$b0X-$Nv5M z*}8Qr*=&}Q5{Z6QRaIQLZ~>>&NjjZo=gyr(A`w3P@I!n)9}b6u8#ivSVZ#P277KUo z+`;en6OYGv^ym>QR;an^Os{de*N~y1A>#2k8#iubaBvV+RcUBw zkcVhwjE;`t^ZD4dYZn0R?d`UY zl`rS96L0`80gHgV5mi7One7jOYVH0-gwWq3Ub7fD1;h|i9|N298mBvCnayTWsTApS z8nf9e(&BrIy*Z7Sh{p60IjX9w6(PX zaOKJsCMPFRRh1=6mM}Iprq{e;FbSBDFf^%M4ZxIEA3;bdLk9Apc7Nt9Ukj|)%Kh4P zFVLiw_W)+C&mcmkF6j0UkH>?-V4$a`2am@?X=y3Fy}gBcr_+g|C|IplUVr^{nwy&e z$ma~to;~C0)vFvkb_}c4N=ZoxBO@bpbae2>8*gB<*=TNV#$+;)%jHNWlUOVkz2+5z z0c7y&wQ>fin^8ZCWL7HhCuETa2}1zoz%Jml)+UR1%Vyw@h!=f|c%FiI*@Rx>bQ5AW zo7u5r2Q4ivJbn6<9Xob#>Cz>F!61P^px`~(tc2n2?(Rb0e0scR&mP=vcj102l|oSz zYHMrB<#L=odzN@Sj;gA3b#<|N^=iH56@y9O8t_9T-Mt3vM>4OSOnXm$Z2U9&=F{UV z$by}R2_Z3rkZ=SEjaFbC@K3$Q6_xhpayi=C+PHrGIwq5eSS(hktFEpttPc){1CPf; zFc@UtzI|k~Sz23L0SRr9NCcXHtc!C#cVc9G#bTVFtB*> zVxrL~xm>QWI4g>R&1Td6yjUz&2zSwF6sy%*Setae$n%MdCCCCk1thex!t~;tLqd>V z*qIJ@4(&SiUweE5&qc_5#DdzpfER)VLgpD32$^SCAY`7QX!#vrczBqhp`k)1G%+zj zd3iatwY7!KTwh-w{r&v~UF-ADKWF>)?NnA)&XMVJ0vDof&AznQw>r6hf$7 zYd3`miAMct|W3qr1DCx8Hu7+qZACYSk)yJ|6&nzo-irE?giMixCV485$bG zct5y~2(&;p+sC$9eVD zSLyBT<-mahbar;q+uMuHX5-y=-^FM&l1`_2|NZx=tEpFdABnWVI|6tCAyI2bnu*bP=LE?X9S&Ae~P0?AbFaDk_LXrjv}i zx;jprIDx@nz-TnGe*OA_2c^^LLc9C-@6+7ejKN^QVzCei1h{eI1`dYn*f5 znM_Pf6cv8;;wds<aYnl}h{QgH4Ej#wI5&!T)x#O>Q%Dk_ z3%UuZuCB)Ic60UWRo1OrM^{%D@wn)2kw}DaIE<>QSS%Lm>+7kgnEsGsczBpZBEg|U zhi0X{Jv}{a-MW=cn>L}U>a4F=LZJ}V)z!QJj3DuS7tn>s<9Q{t5}DanWT1Nx((-U2 z>%w_vr@i&anfxuS@64}QYPH|g1>GS_Q50T#?KM9B_+ygEBxbXjlP6EIV#NwZM@Lz^ zb}b-h91kBpS!~{O3@67a?DYxDk>j z5KoCAXB-}6?dU^heHW6Qee-v^k%hfc>ocr9YZ*dLJ4HzN3-bFs!-AGI&#*wqJj1^M X&Z@>-Qe66b00000NkvXXu0mjf*S``8 literal 0 HcmV?d00001 diff --git a/test/reference/overlapping-glyphs.mask.rgb24.ref.png b/test/reference/overlapping-glyphs.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5217c1577b1f029397a01c3c13687da8678d33c1 GIT binary patch literal 1663 zcmV-_27vjAP)Imp3c# zqT5S9R}ZHr<(x0)IXTZ0NS0-=^?)GgPlxai=>Bv7+ljhZHLy8iaU3T}(%%>VOW=(- zEiNv8{`@(aOs=e~C>ENgX_|JqTu!GGf}kf)o(v8SG7Pi6&@$#f2Bg~HL!r>CSFif} z`z1;G`0-<7V99*-v$i}`%M!NEZs$D`4x#bQBGbbaw(!`hM!UZt`mNqYD0-N}9o`7JaOU#0AONbg6DZ0#{mFVtF^to9RM&rJ#Dw!8HU-rcW*o%mt{E;i8M4cJbLs< z5CqLL(*PB*c%DZPWXFyjf*>dh#qRU@a=G06{Cu%kJbd^t03ege5CmZ~8XXSD^71kO z;M}=$E|=@ZjT;n2<@5Plw{DRn>2x|SQM6L2h@yz1s3?kSYilqJ z0|3lsv(M)%6bgR7-{Eio0M?6Tc6K%p2mk3d7_2F<>vC}jSK@g7PSFT*~csu|A5LuRs#Uh4bS|_FjDq^81+S}Xf^?FxUR(gAT-@kt! z3Wa<=pHgnsY83zw305F@)*=&}k={tAs zym;{<7K^Pv2mo-q-2(#yDq(HO(Lr4-g=)2$%jIAg-nnyUE|-&KS!vr41Q7)B@6U1^ zr|j8WE{Ef|()Cor+SX$IX11nS^@DT`)WxcSx>z+(7pn#~bVUOING6ksL_&Fyl}aU} z(P+2ZmDw^9iA1AO<&gOH?b~C=j+xD7?IQkzsEbu9m0rGlnM$SB*47Gz0*>Pl1T{4^ zC6h_F+kNE75lNCNm5SnAE|<6F>vdC5A038uk-@L8Y=djtd5Z zH*emYoSf|F=x{on005R{0RY3p!yLzjLZL(=!7$AA>({+rZy*q`TCE6zL?RJ~!x4=} ztJSL2YE7rp`F!4Hv*q)7mSs<$KK(nA+iX1_wQFKP83Du*SWblkH-VUFot11pKpA8oT4a_BpnWi;)5VasZ`Q3DXmZu z%VM$EY__qnv97MJnVA`$=K%oOY&Mlj34(xOSbKZB$z)QTlgVU0pFe;8{QBsyu&~h6 z({t$1AwdwX) zCgSn9)oR5s?ANbf6h(D+cdOp&Y|YW3ennFQ^|N6O)WxcSzX0{H*S~2e28sXx002ov JPDHLkV1in@AO8RV literal 0 HcmV?d00001 diff --git a/test/reference/overlapping-glyphs.rgb24.ref.png b/test/reference/overlapping-glyphs.rgb24.ref.png index eea57b21f4533c6ddbfd4240deea97fcb2210730..5217c1577b1f029397a01c3c13687da8678d33c1 100644 GIT binary patch delta 1629 zcmV-j2BP`y3jYj{HGc*)Nkl9o`7JaOU#0AONbg6DZ0#{mFVtF^to9e)5YJw0u=+Zl%0yLWFq9+zb~ z5{Wc4G(39rNDu_gGt&SSv3Q7f3xd$x+?>f|G|fsQR4R*M7#M~Z78V$W(d+f$a9FX^Gz~!zj^kIZT=953008Ah zvAViCHa2$k>Qx-abvoVh^0MFWzjo~!K@c8~2Y*2jS(b~%B8FjFC#D4|VxcJ7+uQ5) zdRJCfdV71{zkeSJg?v7rQf}316#x(n1{G&zu;}max7loprBbOt5M;O8Wmz5?8sd3g z5QLeTna<8mEtAp;_0d6=<gD0J%7scN-4GBN@H zFn^oP*=&}k={tAsym;{<7K^Pv2mo-q-2(#yDq(HO(Lr4-g=)2$%jIAg-nnyUE|-&K zS!vr41Q7)B@6U1^r|j8WE{Ef|()Cor+SX$IX11nS^@DT`)WxcSx>z+(7pn#~bVUOI zNG6ksL_&Fyl}aU}(P+2ZmDw^9iA1AO<$sX)_U+qa$BvoJX6+*WgQ$yDDwSToe3?q6 z*4EYvg#wP_5Ck$Pr1BDwT@jTrQWl=IeD+P#+zJhK4wf8yFaP_Uzf^ z%a=PlJLl);S(X(9AruPj-o2Y32!p|ZAV|4fR%Uty1VIXg0>^O%g8_zNk|eX)EPqLo z8#(K2&Cx-nvN(1_wQFKP83Du*SWblkH-VUFot11pKpA8oT4a_ zBpnWi;)5VasZ`Q3DXmZu%VM$EY__qnv97MJnVA`$=K%oOY&Mlj34(xOSbKZB$z)QT zlgVU0pFe;8{QBsyu&~h6(|>d5&>=w(*1rtJVlj)wqFF{7qOuJk2)cCX($l9;i^U>} zq7NTFY;A2#r_=lP?E?T*DwQ8UeoRkKE6&fKKNm$Y7K`Qcc~KNAm5R+~`}*~(+wG<( z>ihTaO-)T7K73eOTDo}gqUM=tz=m!eipAp8)KnsofFKCNFrMd0l2)W?Iv$TplC)>f z9zhVgy1IhF;NSm^Wm$qCCMG80@wnA$#W3vGuU`~Jb$55G-s)`4(V>1tQv>z0VGY#9 bs)4@%^|05!X(tAX00000NkvXXu0mjf;Q<|8 delta 1354 zcmV-Q1-1JB4DJe$HGc&oNklcmADl#-!E z9ZDBjwot|5qVoZ|aM_R0rJxJjg=FEvPoSfzyGu~=j^j^}xv=i~8sEEeA-_z402!f(07-N^PZsTca7=~dOvMd{hQ7V<<@i+kZ{eA%W z{{4G@e}5v8s8lNJ>+7edr{QoI0J^%m9zA*l0J&U_<+cqJjt*!0T zr%&Z_+56OfKQ3aGN~K^hc<0U?XTavy*4B=XkN5WWE-o&fK79%RM@L7INCact+uK_# z76D**cz9@N=*C@f z5C{N3M}J4h+S*#BQpx3Vy}i8v;Fx7+XJ>0`3jq51`T$^MW##kd&j7Hov0>YGxmN7Hz^hlU>h-#9+oe(oA%Em`VqV}PRxlVG85vn#UN#IvRn?`X zrS0wQOeVu|9P6iS+jjO;sZ;_0RaFH+U^5)Y`ThO}4<3Xh=1{$_fB+WfBg6X0Ks7J`1m*+4zsG~64q@O>%XKq#cF*>H$Y3Q255=Z04=c^;96HS06+-Q zbzKkyN+|$fj73pokMj9E0LZco0I5_;(|o7YzD@hW@IGs*2*HB7DQKXa>3I*1zV~jDzgpjK*3W8voCUYVHI8MA)SWVeF zxHv1H&r?cORsHbcgQ}|R9*X@=O-+fSSSS<-A*!mXs+vxx2_Z}rHqdpQ*^ueTB!5;E zMNt&56Y~O>0#7Mr-Z4$n`QoFL5<)ahOD2<=rm3o$&1M0B`A*X`rlurG@87?loSaN1 zlL#SE6eUU0G%cM@o2Kb$RvvNP0)G`kNIsuut`S9%5aN_G07$3PY?&;}rfCvFn3R-K zN-4%z5CmP<8`_mkf_v-W6dh+E%YU+}s>~g-EVCM~>pFW{C=_14d!SV}IhPsq4Dy9ei`*vJElDnx>^v zDM^xaU7wnoLYDvl)3Hz}u*IoV3ILdu;PTMSX0yywtW8^9UPcHx0aLWpVSh>H+n^DbdEW$VzoqG^EEw_yXc#A<-Q0jH9Kg?LFGCIA2c M07*qoM6N<$g1n8PTmS$7 diff --git a/test/reference/overlapping-glyphs.traps.argb32.ref.png b/test/reference/overlapping-glyphs.traps.argb32.ref.png index 0dc6fdb1d820ad8f5c05a3015f2b05332f9dae2c..11bf4e1111fe5ff4e591413b3aa8e8b36f644529 100644 GIT binary patch delta 2688 zcmV-`3V-$d6q^;0Hh)k_L_t(&f$f_8Z&TM9$3HiIxgqhj^I{XnNeK`jn2bQn2rN*P zGJXKmbs&YP4Q!Pr#3uCzw7&%L!=x6WN^8e9K_uvypg&NCG92C-##>_2CO{cZV&@IN z#EI?L-VcxMICQG65vbXeuVmemdwg!5d%ov+&U3zxm2^6t=70YHilQh#whgZWML)Iy zi8GF4-rkPO<(k)CAXo;p098PF-uX&?Sz23LNq;7jeD&2=R904^swy2F9r%1cJRT42?d@1B7M?wOhQr}NRn>Xz*YYBT zZR&1dKX3(E?LP;`ff(>-pa$56Ond~W1x7Rd`R!K@-5!!mCb@9o0`I)@4$aNY96NT5 zJ$v@BWy=;)sT4&;68$PGD>;AuJa)UCL?XeqZQGcbn1A5p$&16BHt(29Oy^eP_0DFOd05^f(0~diCNC;15zBdm1 z0`V3T-~lRt!-(eufvvz@Ukj^%|#p4;dL5Ash~~apOjYhlhzo zA~ZEM$$vvKWQ>iC;dZ;(zI{6YH*ek~91df#SOBQ1s$%8Jl>pqmdzYG;8eA?HYuB!2 zXlRIZI?akK*h9btD8O#us+j%mbvZ(c4XSEfSMUIjF71dx_>>y<#J&(8hP~S5iXYtgTcV#$B%RUcDo%# zQLtDny#N0DbaZq8kj)vMKYz~Et5^BpgAcG+EEE+LF*-U*PfrgA4<1C*G&(vuFq_S! z(`lxsrztKj)@xoN7(yn0Wu~13R^;`MA(>SK_$#u>gM=Y~GGIIKm&|ukh_`G4PJba@ z^k>BL6vWGB^cts|5LH!aX=&lhFTZ4Ra*~#o7A{`Ah}Y}I_IZG zZOnO3c5WK;#%9ywE69eOg&85yhkuaJhJ;27@Dt!$y~Y)k_NLQmy1Kf!cI_HwvzbsR zlg%a;KOZ4(m{*zI;c`sgE0pFWMx=bQH|fE_z_ zuyf~5y`~kK_9{qt`5Cg3t$BT;%hkH3s|vXh+iJ{C{TwbOD!j z8}>5dVk(s)7z|=G8YwL;B^V5nPN#F5v!WS$tgac51-FRb8|BQmo8nRxw#pu^~J34M}-rS z-xJ6Iu@sR!e9XxyHJQ)N%-_2*?fH57D?&kp%*@Pi=FAxafdHvgifA-SX=y12g8_%b z!SL`ft*xzW-n^N3JU&l02?m1;sX$c>8~~OgQKAG%dy~jHq#8N=-G4$3efhG9jn`P9 zDk$weefl)fXq490RzCmya}FFhz^YZN7#tj=p`n3DB*Mdo52>xKMbk7)CKG0}nOH2A zJHcmRHk+B5nIRMkVK5jl8jWb0#^mHAnx@SYE_J;~VQFtWLc$f`SHKxy0H_E05dzjC zI#n3)pg5vWy%^@>2!Fv=gwWZ{nDWeZngXEPLqeetUayzKhYxf6_HF9x>sh;YEdUJ- z4FH@wcaCT@ir4GK=krlpTg#zChd6)!JYKJtii!%1Mk6C5Bdl7rijk2KW@l${xm@`D zex|0TsIIOi91hdi*vRhPy9;?2y|5xD?~}k=z#t-)!mrN#!$K&kXyO+|^ zQdCvt-o1N#@x>QJqfy%0+BkOX7;SBB+`oUH;o)I4O{1-?4U@@4B9Y+u@#Cymv4X0q zDt7GH!N(te%zyIb%X6f^LM%m2(<8{_4d(S3kPvkN31Kmy3HT*KP$yE*>O|DuYQzgV z5ic?UM}fyk&7=$X9q@!X(ti*IRSb)YiYO{7B9%&EGMRFHPo6xXv$HcN&97d)nz6Al zlF1}vV`D5^whVxto*o7U1}G^hVdKV)n9XLqUN2s+mw#9+Mk0|Q5D2hj$r2hH8yOrN zd>w=s5QR2{gr7uS-*QA4%u4g$BE>30=K3`Ay-i3}Fp3nq;)v(Ck+5b$h@VD0q#m7w z=uUgf%gdRaoh29yQdU;R#Kc6dufD#XqeqWYTwILFWa7;?-^|rRW@hG;=ic644jnp# z$z(!RRe!p>ySaAl8s+8XXqrYtLj#F~%#W(7#A2_dY(0rAL>p3Us>tgb1dbzec>?$s zbM=t?T0kQb!V(B^Er?J#iFiyuLJFCF-9IGIO^Czc!0B}2@pxFjemxH!Jjf}u!C;U; zAV4G%K~+`i>gp&jpZg()-|r_Hjq=`m?@>`P_kaF_gM)0@vV{#BHZV0cHIHPU&xhS^ z*K1xO7)8R>HsC%Yk7sjn8?v%3$V7gJOmY@gNa*?-vX5j@kJRMvBKt=^$u)=~tP8qB zmZB)^-@l*FKKqPtI81SIF`s<$33YXKJb(Tix7!U!jibN6pRd3EIyd&zsZ%5p3C73A z>3{9*C6P#wNF;DNo!q*0i?`o?8=K9>?c29;I2>HMbcvy%A@=Rtr`NnfkOs~IzeYCQ z8Q{0b3`#HVF6|D9~qfzeM zxijxz7>!1;TCG%6RN(XZP!xqX-gtvZBzeNRb?fNs>-*kw)~#EIrfJ-`af3i0z|y5l zQB{?pp&>L)WAo@XrsYUu;d-dG&JnV=f@snJ#f*&H-wTtk2l$N;|v&H&@j^-=71fzoq}uVKKYQN~hBtKYpCn)>hiv+j;-}_t~*y2kq_c zq*5uYRx2YTBlvtio;`bp+wDfzb$0FAg{EnoIB^26*ME!4<>JPT8*Jac9f!lgty{Nf zYHA`HjWRkqN?lzY9*>6|J9bc7T5A47%-0~iG2KpQX&s0iUtfC=N>GiJZTw1`Jmjm?ig(u;t?QZ0JxFKy@`;}hD>zUpaAgD=x+yf#M>SK zb%@8U12o__fYYpTrU?m$!`N&#R;^mKq@P89e}6xbNQ9A*5t7LyJ9q8`V0wBQRaGf1 zEoIZDO-xQs0?^UX!S3C=dFP#XaJgJ05(#>GdMGL?!t3=?T3X8B;GkLa@V9 z&tezgLcF99xMtk10HVlh{}RbN09Sy&1Ajui#)gEwImDA@5YkM+bW(RX93&D6bX~{k zbbq4jI>}^`!a{jPd3ibg{rzZ~#^B%}n>K9%ShC88hlja)_bvd9jg0_YzI>T0SFQjs zFfc$SlOYz1QD0xr^zhW<3V#$u;nAZpCG%hB=A>cZY_ux&Y3mNG$A&djek9R z_HgmyMM9wvot>S0_St9LyLXSizCIL1$(=JYnaq-K6Ap&~=sIavVTA(dSGCHzP>)JRx7i!v$?U#%F0}Ru-ol4Ha0Re zG{nAr`$(tLT)uo6kkA$ig>bvw9654?3l}ahJUskD0`KVPVDH|&W=+di%d#M0We+lu zC5y%;S;!CbNJwe{E+GpzYg7m!bP6~Q96&Z!;0Fwf>(kSLY5g;2w7%WA!L~$Z}}ZyVq$_oAdovp#N%;FN=jJ0dUZ}t z@%#Pw{eIfo+5ot8=@M;iZGV)Mlzi8#|J(2&@_Y6i;Q(dGW@l&d`Fy3x6AgwXX_uiwctBbpL z@ACBNQ&d%@tE&q|QP6drW5W3+#vVU@%(-*ta%%6!jT@Ponj)1-F*P;C+O=x|DN2owj#6A)%+{@2vDs|+ zd_H_WAM^9`=(JjaWKH3cF58R8)gm?XsXwzsUTjASxNBod*tw3JXNlpAYkXyEA4qZAbt zp(qM(yzxe^9x^w#pgiBdf1lpoUKB;aZntyo+BL3UzfM_M8LFz%*w~1!%lz2w_MFD` zk`YE0qJIl19+fW|8v~9Za=8xtgN1s?;#xp662f$ZxSfdn9!5N71R(`u+_bP~nvlxM zN<1D9{r&xH*|LRu_wMD?-bf@uFc>5ji($9hsjI7_tgI~eY#f8yc3yw|b>i{(5|aIXKW?|%tapIiZ)7-y*A6?hcbsdk#!@$4*yLa!#<#KWR_H8OFE4g&( z5`W|4;~YGA(5!j+AcGW;euX66IpiM~o*>01pYb~zQpWx9qGx-Mm0y8)iDFz6h@Ag- zq>Q@_A$}iF3!FD=T;6K0rfJ-{b7#rHP}4L@N=hg%FURlqW3gCx?X}m4#bPuyH8DIq z{K9*hnwn5mm76zj5)1~Zs;a_nw=+IIj#{d!w6?aQs;X(bzK7ad3~XiT!LS%P@P&|- zodN!Zc+4z-Y~V$BO*Eys)BWEif#<+3epF-TJF)lQ2kVFlMxGN*`kuC5P zMLmA}I2a7p>-Co}U$(Tg;5Z%*hiRIQL?Xk(!+O2``}glQn+?bD&BcFpYg-n0narx! z>(8D&J9g|?Ab$`T9UVP&>eRr%K%>!6sZ;>a($X?9F=4e@1wlA`_;5a-zkBzt*XuPJ zjc?w(>Fw>+YPIw8^FE)CW!aUL6_?9px7!aLI%G1Leo1sc8JU`uN~Ktq?d$7HCX*b; z`Tc$Xkd(@1vtF_1b|#FM-YU` zWa{ebT3cHKfHP;#`2GGXSFRY1#!{(t?b#bSv>B0SGWqtULeE&$j}mZhbog@pwGa5|j;Ff}zbJv|KouU@^X zR4N?DwY9b7aydn#QV5yMB1uxC(R}&xg(OL}TK)CwSIKU*S`h@%>-85eUJQrB03iJ+ z*4NixzkYq`(j~oKuTrVj*4CoY=;h0o34#cR!+#itiK4i%v7yy!l@3e^WW>U8d~k5^ z#fuk(LSb-l@cHxS6h%cM5h>jojRpY3Vlip6)K~5(MXacMNubCoMdCnEM~n4~*`8wUJfye4j#yh@N31QdBi0u9p%D!L zq*AGLI*p>JTCFaXN(O_$;c!T=ADX6Vntu)i0st^MIT;893m5S8UOJEpQE|-hNqFSxiXfy;t6bc1`Ab&Pr zeacqIk(&0-Q5iU9*+kAo;-QN^E^dSG)+65&XJLkiHQk{ zqAV7RMx#lkQXL%~sZ^>~tC1v`PNz$yQd?Ua%d$S7@8rpozaqGwjf_~COa?&^yWO5n zr`>M1WUSZg)oS(h>C-x$4#)9NpMO3*efpH=`A{e{IyxE(g%%bTlF1}N5TQ^AMNvTz zZr;4PckkZT*4Ck+p?^wZ``<{)oM``J#gTFG|wuR%hK0aEH*MSf}$vn<1;fev$L~i zvzZ_WkH;ej0s!DRUa3@+3`!|v#Io6JcDp?iiR|CMe{pe98XhnVlgVT_j>B=><#L(L zW@&Reo#uJ|?Afyxi$$`;RIAnH<>e0_K1iD%K71$$LN1q!#bSaW2!dd@+uy%`fAr{4 zqtQ4wH)pfiCMPEoiNv{c=M;}j0e)!e!1Mh4{QPE9%JaOzV6a#$G*e9@2(o+kZjR%6 zdU}?Ymi~UKr>BP?h_`RwW-^&wyLRC?o=7AJg6Qw>m!0Zt&(>jQM6(5U-iBLXN31RI Y7xcW*CS%;w4FCWD07*qoM6N<$f@8onzW@LL delta 1612 zcmV-S2DAD74DSq(Hh&~ZL_t(&f$f;jPZL`d$4{BgOrf3rVhSxH6$_M>SW#0-G}Okp zFfNQFg=ipggLS7$vNNLIrp5S5JeI89}0!yPrL9RwESrY4u2AdV(o$7BUZ6k62T76~$DKQOj%C@InHh(}q0{L;e*Adm%o(*> zy|lFCbUI6=QY;p;TCHZYd31DCuh+}Cbr4@enx<)*9v&X1X*!?JyId{+KoA4~ve~TD z>GXI!EXyt}EtN_ojYb0iot>S>j~@qsa5#*jsKsI#9Df}A{{6csikq98ZEbB2A3kIl zrum`$eq_YT=kpkbwYIi47Lq*}3>FH7Xf#@{*Uz3k3jn!XjvxrVUOzA}kjZ2K!0Yvn zjg8&7aYLum)oQh=sVS98<#0IkdVM$?ZgybJKqkSf)#_TU#&MiRqv1HNUau>aN&qk# zjlp1$Wq;XlI6N>g005245{X1sS62bRZnp!#{QUg;_wNB96bgx=$S_QAZ*MM_Yid+Y zLgr?XB#B|z#>Pf_dpnAv-@bio*g1~Fas1k~YZDU_03hYQot>S9g@x7Ba6P z0EnU(3WWlJ0D>UJVo@@hOeQHY;W%!$+gDarE?&GS2*UjQJOCJtMw+HclDu{6)|)qP zB7c#{?u_pBdM{kKAmi4)d=2HrYQQjzD2fC@l*?tF=Lv$S)oK8MzcMSoE@ zZ{A#9Ubfk6gM)+cZ-@Ny(hU%#d(%4jqymC9r?+1J;XOeX8~ zdRJFhDwQgi%NC2JR4NS(4PCl)>Hi4scOxTKI-OQ16lSwIl}g!cHp$5Ie63cyeEG6k zt;TVDWo6~nt5+<``u+YpckcN8{(sfg)$Q$Vf*|~UKZ>Fp$KAbqx3{;qv$NCd^*(s; z;MlQalI{l!8L@btZ)s_1X=xDz0Yy>CxVgFc;>8PT>d@ccpUq}@p3i2pJv}`D5Dtf9 zu~=JM+wkx(hG7&%Q503JRymGKr_-&itwTdY@p$|oiX~Gz7z~Dby%^isCr_;lqc;#YKa`KoEr8Zs#}-0B{_a zy2S&Bj94a<$!sN}= z08p#dqS5H*&!45uPoF;JI4+mVt*@_h9LI5-*=!DlLStiNI-PELdD&z#&CShiZEan> zdbR11HGyB6Iz>dX!-pr_&jUL`8O=ayp#^L45l3 zDV@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-aa.egl.argb32.ref.png b/test/reference/paint-clip-fill-aa.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-aa.mask.argb32.ref.png b/test/reference/paint-clip-fill-aa.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-aa.mask.rgb24.ref.png b/test/reference/paint-clip-fill-aa.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-aa.rgb24.ref.png b/test/reference/paint-clip-fill-aa.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-mono.argb32.ref.png b/test/reference/paint-clip-fill-mono.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-mono.egl.argb32.ref.png b/test/reference/paint-clip-fill-mono.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-mono.mask.argb32.ref.png b/test/reference/paint-clip-fill-mono.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-mono.mask.rgb24.ref.png b/test/reference/paint-clip-fill-mono.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-clip-fill-mono.rgb24.ref.png b/test/reference/paint-clip-fill-mono.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..768322a3932b32d0a1627e8d230e62307ee5a29d GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@a(^D4Dm`~3It(+&R)64%M9hV ue0ZL)nQ0^aVbj)V6Z_q&`9xXXB%HX0{rJv9%l8Arfx*+&&t;ucLK6T%b8sX8 literal 0 HcmV?d00001 diff --git a/test/reference/paint-repeat.argb32.ref.png b/test/reference/paint-repeat.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8cdd9b4bec99cfdfcf80e24fa85200b41c53d3e1 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_c(PZ!4! zj+txE8gelxh#bBU{_$VcsW@`Pdt0JF|O&U>>snDTJ`!Io>P51B4?f@ Qg3M&_boFyt=akR{0HQ=C!TcsW@`Pdt0JF|O&U>>snDTJ`!Io>P51B4?f@ Qg3M&_boFyt=akR{0HQ=C!TcsW@`Pdt0JF|O&U>>snDTJ`!Io>P51B4?f@ Qg3M&_boFyt=akR{0HQ=C!TcsW@`Pdt0JF|O&U>>snDTJ`!Io>P51B4?f@ Qg3M&_boFyt=akR{0HQ=C!TcsW@`Pdt0JF|O&U>>snDTJ`!Io>P51B4?f@ Qg3M&_boFyt=akR{0HQ=C!TW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-source-alpha.egl.argb32.ref.png b/test/reference/paint-source-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1155cefe1c5fcabd6db71fcbc969d55d98b32045 GIT binary patch literal 308 zcmV-40n7f0P))TNU`f0Q!2yS30X4aqon&b=2z0JPo%P}Q`@GBX2` zsv4uDF`v8SZ8?xOs^cU_klbr{HnuVPi^aW*p8 zW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-source-alpha.mask.rgb24.ref.png b/test/reference/paint-source-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65d9c179bf961267d88a745c2a9a9de1f688f688 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Mdb&7< zcyzuEJILE$z+uzdY{0d+WQufapv2L@KcUg8zb;5jy4US+TD4$rNm2P0g`Y`j$Bs*| z{1^6Fb!+LQl^LB}NW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-source-alpha.rgb24.ref.png b/test/reference/paint-source-alpha.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65d9c179bf961267d88a745c2a9a9de1f688f688 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Mdb&7< zcyzuEJILE$z+uzdY{0d+WQufapv2L@KcUg8zb;5jy4US+TD4$rNm2P0g`Y`j$Bs*| z{1^6Fb!+LQl^LB}NW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip-mask.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..50546727a120d4883d8facaa2bdf339e988f6bba GIT binary patch literal 340 zcmV-a0jvIrP)`81IY~*uauZT<+3?6<7&u1-7uI;N2MPzzzT_ z@Ss5;%r5a0LgJj@&Fp*3@^-R8p6BRBmStZ=7Wi@e1*R7Wk|gOtGjq{$Op#JbYyEsN z2Ef|dDvoQVyled(5Ydahjh{|b6rTzZQ5c3&HY^IShD*TBK2jr)W>I_JJ5DnOKyTG~ zwb~sHgFIpfgZnPUrYxn@{73aKSM1ebu9+)Gf#)Z?HN5P8frkcN=sk8g mX3@8h`HzaffH&rUFS-MMfozP(Ya=)S0000-~j?!)o}$ys1klPwsR*Zms6XR62>7SD`s~1a{LK?Ptb%ACaI07XuqV%Ip@8< zFGK(wV(h&ioHO^@6A;l8{UzG2qntk_AR;1Ct2vt-HG(?&LVu1%^P<;tA1O@)z+_j~ zw#V~%7Dt_6_T1IxzSm0If63}Q5Xj>@AdD(NLYnkP1?P8O6c6!{8EHlY6I}rSE|=3R zjyi!GY#VqsyFn}IGVMJVUV_eCynjokT-fAbF3hFUU|e#Y!$h|UZXA?n9BBzUDqgf! jX8Tt0Cop6C{}x48wcuoak6@-DbsUoEME7<0qK!=qngn%?e$KGWfISbAoCRfU|sJ;9ot2^$3?u~MXcP( zVAf9nos7DA1JGnN)!Tq4gJNMK^{AsVi;l{SKPvu!W{m$|^Z-y&YyWpwci#X2002ov JPDHLkV1mG5cuW8Q diff --git a/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png index 201bd0d550a8544adee82b3346b792a1dad9cc4b..95746ffcbeba2153a4211fa0b89206ba3ff3624c 100644 GIT binary patch delta 285 zcmV+&0pk9#0?GoAHh=#~L_t(YiS1Uw4Z<)Cydnm0H(-HCma;&0U;#$)2CR@#vOuMb zzy?h>-~j?!)o}$ys1klPwsR*Zms6XR62>7SD`s~1a{LK?Ptb%ACaI07XuqV%Ip@8< zFGK(wV(h&ioHO^@6A;l8{UzG2qntk_AR;1Ct2vt-HG(?&LVu1%^P<;tA1O@)z+_j~ zw#V~%7Dt_6_T1IxzSm0If63}Q5Xj>@AdD(NLYnkP1?P8O6c6!{8EHlY6I}rSE|=3R zjyi!GY#VqsyFn}IGVMJVUV_eCynjokT-fAbF3hFUU|e#Y!$h|UZXA?n9BBzUDqgf! jX8Tt0Cop6C{}x48wcuoak6@-DbsUoEME7<0qK!=qngn%?e$KGWfISbAoCRfU|sJ;9ot2^$3?u~MXcP( zVAf9nos7DA1JGnN)!Tq4gJNMK^{AsVi;l{SKPvu!W{m$|^Z-y&YyWpwci#X2002ov JPDHLkV1mG5cuW8Q diff --git a/test/reference/paint-with-alpha-clip-mask.egl.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..607fdaa17bb3999b714ed9c3c3a0e49e16863255 GIT binary patch literal 423 zcmV;Y0a*TtP)zR0;QtAbrs*hkV^j2a$)+F( zq9`IF09q*`TIYEa$88WSo?Ujp%m$r^wAN+;fR9J6s%r_DnVAiuO#;wb0}xfU$l)Up zLI@#@YOCF@FXVvhE$Y`jNfN7CD+Qn^3X?HMPOH`Pem{%jbTF#>H+s)a-_uiFyKsCZ znyvdZ??G4~=+Dg5$7qi$ocAE3%%UIkq3eNu1yInS2LRrG;GnP3-vf^i=UbGobE|qV zGuhjCuCxYlKEKT3I2~+1w|>2SPn%8S!f}sj9m!UbduFV5Dcd-968IiF*+?R)M0ZiA za}|cQl&uG3p~bU)X(HH1C^F#ES R({%s<002ovPDHLkV1jsKytDuS literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..95746ffcbeba2153a4211fa0b89206ba3ff3624c GIT binary patch literal 330 zcmV-Q0k!^#P)o#tdLQ%K&6bp22D5M z0RmdpaRo)F5`Hzdb0;U4Q=60$#vvjrW_I{;{0V+f(1Z{ssg0>N^m~<2xXXDnLS-^hX8fcU}|^@sSy6Mg$XG0RS$S(=3iUfg5Za zcs9F1E9o-rJr`br&Ro2IOQu}dlxG}i2|6lXv{q*OR`Dk= cWBdO_SGC}54U6SPrvLx|07*qoM6N<$f;<$3^Z)<= literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..95746ffcbeba2153a4211fa0b89206ba3ff3624c GIT binary patch literal 330 zcmV-Q0k!^#P)o#tdLQ%K&6bp22D5M z0RmdpaRo)F5`Hzdb0;U4Q=60$#vvjrW_I{;{0V+f(1Z{ssg0>N^m~<2xXXDnLS-^hX8fcU}|^@sSy6Mg$XG0RS$S(=3iUfg5Za zcs9F1E9o-rJr`br&Ro2IOQu}dlxG}i2|6lXv{q*OR`Dk= cWBdO_SGC}54U6SPrvLx|07*qoM6N<$f;<$3^Z)<= literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..50546727a120d4883d8facaa2bdf339e988f6bba GIT binary patch literal 340 zcmV-a0jvIrP)`81IY~*uauZT<+3?6<7&u1-7uI;N2MPzzzT_ z@Ss5;%r5a0LgJj@&Fp*3@^-R8p6BRBmStZ=7Wi@e1*R7Wk|gOtGjq{$Op#JbYyEsN z2Ef|dDvoQVyled(5Ydahjh{|b6rTzZQ5c3&HY^IShD*TBK2jr)W>I_JJ5DnOKyTG~ zwb~sHgFIpfgZnPUrYxn@{73aKSM1ebu9+)Gf#)Z?HN5P8frkcN=sk8g mX3@8h`HzaffH&rUFS-MMfozP(Ya=)S0000j3b=N7PH?DyJiUXx zL%wC!9Aod&*zf)4q|L)vZR9R&$*oSjDsory!@fEhCl19KH*cPj6!^YUYn5xMu)?t! zK~~X+8IH&^q`huPs}-La>6JNg%RY9$*u@>)0l`}w!`tSZWIjCa@0r_-GtaLSa64F^ zZTsrt?h{9Ce<@}D<+CWASvym<;;Bfil5FS!W(a4(QY%L_Sm?U12s z2FZhnlXi0`G}a-4wThB|yDwb+;eL)QoO77VTKh(_!OF@8-!~|XF%KxG=)(rv^mA2J zbzO@{L|q3!c|TUyrn&5PuN#zQNkq&X(cu7qLYP3>ph)i`W_lKpS<4d-N?@19QhL00%b~grMLPKYV)^1qxpIS<p5&vC?{2WS|GF2Tg$@q5y#ToNk=7ev0y4lnoZ^_wS+`o$6qs%zm=t00000NkvXX Hu0mjf^96IN diff --git a/test/reference/paint-with-alpha-clip.base.rgb24.ref.png b/test/reference/paint-with-alpha-clip.base.rgb24.ref.png index 704c70a7f76a6b545be5198f2c4be338184f5c53..c1da67e013c0098ffa2bf951f8ed9e91e5820813 100644 GIT binary patch delta 223 zcmV<503iRb0*wNYHh;oNL_t(YiS3rL4Fe$zMgK)9C|!DtKLVq9Bt~Eak3vbA;v{k; z5?5RW(a4(QY%L_Sm?U12s z2FZhnlXi0`G}a-4wThB|yDwb+;eL)QoO77VTKh(_!OF@8-!~|XF%KxG=)(rv^mA2J zbzO@{L|q3!c|TUyrn&5PuN#zQNkq&X(cu7qLYP3>ph)i`W_lKpS<4d-N?@19QhL00%b~grMLPKYV)^1qxpIS<p5&vC?{2WS|GF2Tg$@q5y#ToNk=7ev0y4lnoZ^_wS+`o$6qs%zm=t00000NkvXX Hu0mjf^96IN diff --git a/test/reference/paint-with-alpha-clip.egl.argb32.ref.png b/test/reference/paint-with-alpha-clip.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..728224e75f2d74ec07a63b7555a9cdc0f7db6e82 GIT binary patch literal 350 zcmV-k0iphhP)YJw?9^cr9Nx#u#H%b+)_* zAR*+l(c014DnQdTZQIV)@d%&^0RYL*l*#~>*CJI_)voJErj$q~=SU92kew(JL{O8W zlu|zCCoY}Uxtjo4Qw4dvan@GA^4+KLMy)j2!=HFMr}Nx{^iFcXtp|cA2vrqS_F!c# z3KF8kDKh|Y_#ipuO7%w0rRA`9L*O(4FCWD07*qoM6N<$f+j+kqyPW_ literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip.mask.argb32.ref.png b/test/reference/paint-with-alpha-clip.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c1da67e013c0098ffa2bf951f8ed9e91e5820813 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&(edAc}; zcyzv;z|{_1eSg$&zX-@id2NcWAv80{5dB-GyF&L#wT+w zo<3vu;!eRPwFgxPgpzAErgiP(+0ozc%%R9K$zMC2;nBXZ(5X1GkRPxelF{r5}E)=DQD&Y literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip.mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c1da67e013c0098ffa2bf951f8ed9e91e5820813 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&(edAc}; zcyzv;z|{_1eSg$&zX-@id2NcWAv80{5dB-GyF&L#wT+w zo<3vu;!eRPwFgxPgpzAErgiP(+0ozc%%R9K$zMC2;nBXZ(5X1GkRPxelF{r5}E)=DQD&Y literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-clip.rgb24.ref.png b/test/reference/paint-with-alpha-clip.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4bad4e8ca5b9e129da13a94f38bc22bc53488516 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Ud%8G= zcyzvj3b=N7PH?DyJiUXx zL%wC!9Aod&*zf)4q|L)vZR9R&$*oSjDsory!@fEhCl19KH*cPj6!^YUYn5xMu)?t! zK~~X+8IH&^q`huPs}-La>6JNg%RY9$*u@>)0l`}w!`tSZWIjCa@0r_-GtaLSa64F^ zZTsrt?h{9Ce<@}D<+CWASvym<;;Bfil5FS!7pSg?pgn7NmcyX8^E$EL?exjAk>ILvP1$|SD0pi>~^v$GS^U8Wse zt0F!eJiu^hL8ZXOJ4|lu?Cfl8Y|Z@g5B9ZnC@`Oy;udh0m9epbQ&^(SS)ez{LBPN% zDgMDB)(SsG<+BN^ekLRYY)E82T)?p?kej3F;--u%Os5WJM4B+^G;DiQ=izbSc9OWk s?Lq@h3xySI_exTZ_$WHBDdlDOxGZPl91W&mpu-tFUHx3vIVCg!00OvHtN;K2 literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png b/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png index 2cd2df21cb7332ceb43910be40e7b474227037b5..59d226d1a4c976c4977ecc5913c440dbc6cde036 100644 GIT binary patch delta 177 zcmV;i08amk0{8)tHUX`XHywZD#R~}A;KK(rMFJNtpotJv^Fu-c-2%7@s#x&BzyQLa zc@WXu0!9Z12L=WPgAX6zzJ`b(1I(00P|XDafq)4U7=}X-jaonuFhXKq;KBuXP9Y=B zV5<3GU{J7O1H*6#qEQP7g3+>Q)B?)EXjwD@EP%G`en?2b+hP|m+i@i@DL5dg2HtdJ f#7rSWtaS|l@uqB%oG1cQ00000NkvXXu0mjfuz*8T delta 195 zcmV;!06hQr0g3{UHUYnpHywZT=~D>X`2Bk{MS^F~qKObx^Fu-c#RB%%ulX-uhOl)% zenis@mx2Rg)Ib2ugNWu9FgiFmFfcIae*6dzR)`2Pz)Wcb)m-N1_nkPAVK@ZQs09Q8 zBP90uFJFddMKaP1rkansy7`+oGYp3y8nu8R7%huNEub8XmPI4L0%$kO?uUfLdt+k= x`|QPwXo~b}%}-HL2!jzbg$%LQH2^bZYff%gU}XRR002ovPDHLkV1gfkQgHwP diff --git a/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png b/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png index 2cd2df21cb7332ceb43910be40e7b474227037b5..59d226d1a4c976c4977ecc5913c440dbc6cde036 100644 GIT binary patch delta 177 zcmV;i08amk0{8)tHUX`XHywZD#R~}A;KK(rMFJNtpotJv^Fu-c-2%7@s#x&BzyQLa zc@WXu0!9Z12L=WPgAX6zzJ`b(1I(00P|XDafq)4U7=}X-jaonuFhXKq;KBuXP9Y=B zV5<3GU{J7O1H*6#qEQP7g3+>Q)B?)EXjwD@EP%G`en?2b+hP|m+i@i@DL5dg2HtdJ f#7rSWtaS|l@uqB%oG1cQ00000NkvXXu0mjfuz*8T delta 195 zcmV;!06hQr0g3{UHUYnpHywZT=~D>X`2Bk{MS^F~qKObx^Fu-c#RB%%ulX-uhOl)% zenis@mx2Rg)Ib2ugNWu9FgiFmFfcIae*6dzR)`2Pz)Wcb)m-N1_nkPAVK@ZQs09Q8 zBP90uFJFddMKaP1rkansy7`+oGYp3y8nu8R7%huNEub8XmPI4L0%$kO?uUfLdt+k= x`|QPwXo~b}%}-HL2!jzbg$%LQH2^bZYff%gU}XRR002ovPDHLkV1gfkQgHwP diff --git a/test/reference/paint-with-alpha-solid-clip.egl.argb32.ref.png b/test/reference/paint-with-alpha-solid-clip.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e841b2d7205db35a8214fcbd99f47dc3e367523c GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&(ud%8G= zcyzuEJIH%jfyX3N{^wNn=p)io1g*T>PjE=80$Fo(e@y-NsaU=*!%J%Es!1Lp9}g?M zJ|Od8^3-C!duvy%VpV33xY=hUa!>r;X&Gk^hglk(XOgUvFR`dAu^wQMU}8QIvq#NK zY4eQg$W!OmYfCK>|KPQhbJ`u*hMB*MqqCp-DZk#lmGjrL7@?U*w?xIis&Zw!c&)0L zpRVUW%6|UY6#=yfA{WR=hhjkDKIe@ uZ-4A2IC19VS@{MVOW$nG$e3Ar-T%V2)02!o%*+CMm%-E3&t;ucLK6TnPJb)_ literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png b/test/reference/paint-with-alpha-solid-clip.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd2df21cb7332ceb43910be40e7b474227037b5 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&+Hd%8G= zcyuP)6g*&H*2>7pSg?pgn7NmcyX8^E$EMFOgE?;h_*-q_+LV5NQKvx2XJ;p-qfFnf zum7nZ-?pLDzRu+`&-5ndq$>^#XPY~oi5XZ~SQr=>yr}!b!5`MaVRXPJljUm6v*+LE zT1-r|V7a)0m4#7R7pSg?pgn7NmcyX8^E$EMFOgE?;h_*-q_+LV5NQKvx2XJ;p-qfFnf zum7nZ-?pLDzRu+`&-5ndq$>^#XPY~oi5XZ~SQr=>yr}!b!5`MaVRXPJljUm6v*+LE zT1-r|V7a)0m4#7R7pSg?pgn7NmcyX8^E$EL?exjAk>ILvP1$|SD0pi>~^v$GS^U8Wse zt0F!eJiu^hL8ZXOJ4|lu?Cfl8Y|Z@g5B9ZnC@`Oy;udh0m9epbQ&^(SS)ez{LBPN% zDgMDB)(SsG<+BN^ekLRYY)E82T)?p?kej3F;--u%Os5WJM4B+^G;DiQ=izbSc9OWk s?Lq@h3xySI_exTZ_$WHBDdlDOxGZPl91W&mpu-tFUHx3vIVCg!00OvHtN;K2 literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha.argb32.ref.png b/test/reference/paint-with-alpha.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65d9c179bf961267d88a745c2a9a9de1f688f688 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Mdb&7< zcyzuEJILE$z+uzdY{0d+WQufapv2L@KcUg8zb;5jy4US+TD4$rNm2P0g`Y`j$Bs*| z{1^6Fb!+LQl^LB}NW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha.egl.argb32.ref.png b/test/reference/paint-with-alpha.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ed8da7d4f79c60929acd5955568963d128c12024 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&)}db&7< zcyzv1h`C4F+vqkj`w9=ZieyH5Pj-s-UD@d1SetG4i_ z{YyUI?ANDPu$LjoEA;x=RWDxhwg@oHkZeel@VY(2QN+a|#YMIHp;bgj=)EFuJDm&5 zn0uB(VOaWvQ0?C79+NMhPq^M#&3|JDgWBvcZ`sZTQ?x}bUoF@x_$_xq z@5g&eoI%U7udyCg77Xf|ddz13>^YZZe=z0klv%y_UBdpZU;9^Z|B?CrU%Zy#W*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha.mask.rgb24.ref.png b/test/reference/paint-with-alpha.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65d9c179bf961267d88a745c2a9a9de1f688f688 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Mdb&7< zcyzuEJILE$z+uzdY{0d+WQufapv2L@KcUg8zb;5jy4US+TD4$rNm2P0g`Y`j$Bs*| z{1^6Fb!+LQl^LB}NW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint-with-alpha.rgb24.ref.png b/test/reference/paint-with-alpha.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..65d9c179bf961267d88a745c2a9a9de1f688f688 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*Mdb&7< zcyzuEJILE$z+uzdY{0d+WQufapv2L@KcUg8zb;5jy4US+TD4$rNm2P0g`Y`j$Bs*| z{1^6Fb!+LQl^LB}NW*7wA9+Pgg&ebxsLQ08OM=F#rGn literal 0 HcmV?d00001 diff --git a/test/reference/paint.argb32.ref.png b/test/reference/paint.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22cc7a1ae59eeec4699b40d93d3dde518a93fdc6 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Ns*!JQR>$BE)dkk&*vu`>fSKSq4v6KbLh*2~7aQ78uR| literal 0 HcmV?d00001 diff --git a/test/reference/paint.egl.argb32.ref.png b/test/reference/paint.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22cc7a1ae59eeec4699b40d93d3dde518a93fdc6 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Ns*!JQR>$BE)dkk&*vu`>fSKSq4v6KbLh*2~7aQ78uR| literal 0 HcmV?d00001 diff --git a/test/reference/paint.mask.argb32.ref.png b/test/reference/paint.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22cc7a1ae59eeec4699b40d93d3dde518a93fdc6 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Ns*!JQR>$BE)dkk&*vu`>fSKSq4v6KbLh*2~7aQ78uR| literal 0 HcmV?d00001 diff --git a/test/reference/paint.mask.rgb24.ref.png b/test/reference/paint.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22cc7a1ae59eeec4699b40d93d3dde518a93fdc6 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Ns*!JQR>$BE)dkk&*vu`>fSKSq4v6KbLh*2~7aQ78uR| literal 0 HcmV?d00001 diff --git a/test/reference/paint.rgb24.ref.png b/test/reference/paint.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..22cc7a1ae59eeec4699b40d93d3dde518a93fdc6 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_byPZ!4! mj+x1S&Ns*!JQR>$BE)dkk&*vu`>fSKSq4v6KbLh*2~7aQ78uR| literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-bottom.argb32.ref.png b/test/reference/partial-clip-text-bottom.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6a299d48cc5c96e13b82db228138f0e0feae2005 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvU7jwE zAr`&K2@gu{Sa#i;?M~)on2F=m^L=w}F|#B;27?ywB$k&=(Azu6{1-oD!M< DHo9a6 literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-bottom.base.argb32.ref.png b/test/reference/partial-clip-text-bottom.base.argb32.ref.png index 7a03fad79008ad25a81d36f846b557ab8f0f6814..6a299d48cc5c96e13b82db228138f0e0feae2005 100644 GIT binary patch delta 155 zcmV;M0A&Az0)+yQHUYYkH$Z<~UH$(3`)q7%tgNgzZ{GCu^n{3KWo7N%yO)67T3TAC zPMtb+>eQY+d(NLfZ))nWz)hULqbXJlkBFfeFpY92p+eBZu( zM~)oXv15m%q$E*Z=i=fL6B8p!DPF+O&(F=xO}RP44gdf)(LcC9-B}IA00000NkvXX Hu0mjfH2X;I diff --git a/test/reference/partial-clip-text-bottom.base.rgb24.ref.png b/test/reference/partial-clip-text-bottom.base.rgb24.ref.png index 7a03fad79008ad25a81d36f846b557ab8f0f6814..6a299d48cc5c96e13b82db228138f0e0feae2005 100644 GIT binary patch delta 155 zcmV;M0A&Az0)+yQHUYYkH$Z<~UH$(3`)q7%tgNgzZ{GCu^n{3KWo7N%yO)67T3TAC zPMtb+>eQY+d(NLfZ))nWz)hULqbXJlkBFfeFpY92p+eBZu( zM~)oXv15m%q$E*Z=i=fL6B8p!DPF+O&(F=xO}RP44gdf)(LcC9-B}IA00000NkvXX Hu0mjfH2X;I diff --git a/test/reference/partial-clip-text-bottom.egl.argb32.ref.png b/test/reference/partial-clip-text-bottom.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f282c07f16a21ec7bdad40bd83a35082cf9024 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvwVp1H zAr`&K2@{+w8!VA8gu{Sa#i;?M~)on2F=m^L=w}F|#B;27?ywB$k&=(Azu6{1-oD!M< DHo9a6 literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-bottom.mask.rgb24.ref.png b/test/reference/partial-clip-text-bottom.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6a299d48cc5c96e13b82db228138f0e0feae2005 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvU7jwE zAr`&K2@gu{Sa#i;?M~)on2F=m^L=w}F|#B;27?ywB$k&=(Azu6{1-oD!M< DHo9a6 literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-bottom.rgb24.ref.png b/test/reference/partial-clip-text-bottom.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6a299d48cc5c96e13b82db228138f0e0feae2005 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvU7jwE zAr`&K2@gu{Sa#i;?M~)on2F=m^L=w}F|#B;27?ywB$k&=(Azu6{1-oD!M< DHo9a6 literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-bottom.traps.argb32.ref.png b/test/reference/partial-clip-text-bottom.traps.argb32.ref.png index 7a03fad79008ad25a81d36f846b557ab8f0f6814..6a299d48cc5c96e13b82db228138f0e0feae2005 100644 GIT binary patch delta 155 zcmV;M0A&Az0)+yQHUYYkH$Z<~UH$(3`)q7%tgNgzZ{GCu^n{3KWo7N%yO)67T3TAC zPMtb+>eQY+d(NLfZ))nWz)hULqbXJlkBFfeFpY92p+eBZu( zM~)oXv15m%q$E*Z=i=fL6B8p!DPF+O&(F=xO}RP44gdf)(LcC9-B}IA00000NkvXX Hu0mjfH2X;I diff --git a/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png b/test/reference/partial-clip-text-bottom.traps.rgb24.ref.png index 7a03fad79008ad25a81d36f846b557ab8f0f6814..6a299d48cc5c96e13b82db228138f0e0feae2005 100644 GIT binary patch delta 155 zcmV;M0A&Az0)+yQHUYYkH$Z<~UH$(3`)q7%tgNgzZ{GCu^n{3KWo7N%yO)67T3TAC zPMtb+>eQY+d(NLfZ))nWz)hULqbXJlkBFfeFpY92p+eBZu( zM~)oXv15m%q$E*Z=i=fL6B8p!DPF+O&(F=xO}RP44gdf)(LcC9-B}IA00000NkvXX Hu0mjfH2X;I diff --git a/test/reference/partial-clip-text-left.argb32.ref.png b/test/reference/partial-clip-text-left.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a1a85862148989510bae698a48ac20e913f5ba GIT binary patch literal 301 zcmV+|0n+}7P)sr^9ggnom=SfM-06-K) zZQJU)t|&^L=Sh-~UzTN*tN;L#BrVILY1*9#fvR~v0C09teiXD#300000NkvXXu0mjfjGKVO literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-left.base.argb32.ref.png b/test/reference/partial-clip-text-left.base.argb32.ref.png index 95c07f48ebd4c4506fc1f7cbfb405dd3130bbf90..54a1a85862148989510bae698a48ac20e913f5ba 100644 GIT binary patch delta 255 zcmV|op8bh`19>N$WT=^2m;eIuj^XZm4rOcpXW(Q z%m6?XMQz*ax~?cnp65xDkYAQ%l&k;%k|Zt5qG{Tl2!cSCad;f*c^SuXhGCfJ`Hqg` z007&zw{4>+MhM-dzLKVCQ55vV;CWuxb#EcZar?ekRYg(Evg|ZXVHlEA6h+Ij;y5nL z^0jy>7>0o{#uztE)AzmWx^-RqzE9VBBg-;E=tHt!&}skx002ovPDHLkV1l%yaLWJy diff --git a/test/reference/partial-clip-text-left.base.rgb24.ref.png b/test/reference/partial-clip-text-left.base.rgb24.ref.png index 95c07f48ebd4c4506fc1f7cbfb405dd3130bbf90..54a1a85862148989510bae698a48ac20e913f5ba 100644 GIT binary patch delta 255 zcmV|op8bh`19>N$WT=^2m;eIuj^XZm4rOcpXW(Q z%m6?XMQz*ax~?cnp65xDkYAQ%l&k;%k|Zt5qG{Tl2!cSCad;f*c^SuXhGCfJ`Hqg` z007&zw{4>+MhM-dzLKVCQ55vV;CWuxb#EcZar?ekRYg(Evg|ZXVHlEA6h+Ij;y5nL z^0jy>7>0o{#uztE)AzmWx^-RqzE9VBBg-;E=tHt!&}skx002ovPDHLkV1l%yaLWJy diff --git a/test/reference/partial-clip-text-left.egl.argb32.ref.png b/test/reference/partial-clip-text-left.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f695ece14b1c594d8bbc5d0ec3338a3ef2b7307d GIT binary patch literal 320 zcmV-G0l)rGv!jfd77b%yUFhG)+^Iq5yu#B z+g4T8vMgQKA%vcPnx+(0!!VBHux%Rv7>23qI?FNu;5cqwSBh{LhGkj4QxF72Q2+pA z+_o(}_e)jPX`0?m2qA<3fa|(>p3{RN2!f_*-sw0_k|dg@UDq{^BSl!2<$d2h&jSEm z*T->;q9~5zq9{~Vr3eFnWm&^8EX#6T*XQ$LS+?(c-}mXNZwMhl5Pk^zi+uyxJYI+- SgkI+W0000sr^9ggnom=SfM-06-K) zZQJU)t|&^L=Sh-~UzTN*tN;L#BrVILY1*9#fvR~v0C09teiXD#300000NkvXXu0mjfjGKVO literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-left.mask.rgb24.ref.png b/test/reference/partial-clip-text-left.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a1a85862148989510bae698a48ac20e913f5ba GIT binary patch literal 301 zcmV+|0n+}7P)sr^9ggnom=SfM-06-K) zZQJU)t|&^L=Sh-~UzTN*tN;L#BrVILY1*9#fvR~v0C09teiXD#300000NkvXXu0mjfjGKVO literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-left.rgb24.ref.png b/test/reference/partial-clip-text-left.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..54a1a85862148989510bae698a48ac20e913f5ba GIT binary patch literal 301 zcmV+|0n+}7P)sr^9ggnom=SfM-06-K) zZQJU)t|&^L=Sh-~UzTN*tN;L#BrVILY1*9#fvR~v0C09teiXD#300000NkvXXu0mjfjGKVO literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-left.traps.argb32.ref.png b/test/reference/partial-clip-text-left.traps.argb32.ref.png index 95c07f48ebd4c4506fc1f7cbfb405dd3130bbf90..54a1a85862148989510bae698a48ac20e913f5ba 100644 GIT binary patch delta 255 zcmV|op8bh`19>N$WT=^2m;eIuj^XZm4rOcpXW(Q z%m6?XMQz*ax~?cnp65xDkYAQ%l&k;%k|Zt5qG{Tl2!cSCad;f*c^SuXhGCfJ`Hqg` z007&zw{4>+MhM-dzLKVCQ55vV;CWuxb#EcZar?ekRYg(Evg|ZXVHlEA6h+Ij;y5nL z^0jy>7>0o{#uztE)AzmWx^-RqzE9VBBg-;E=tHt!&}skx002ovPDHLkV1l%yaLWJy diff --git a/test/reference/partial-clip-text-left.traps.rgb24.ref.png b/test/reference/partial-clip-text-left.traps.rgb24.ref.png index 95c07f48ebd4c4506fc1f7cbfb405dd3130bbf90..54a1a85862148989510bae698a48ac20e913f5ba 100644 GIT binary patch delta 255 zcmV|op8bh`19>N$WT=^2m;eIuj^XZm4rOcpXW(Q z%m6?XMQz*ax~?cnp65xDkYAQ%l&k;%k|Zt5qG{Tl2!cSCad;f*c^SuXhGCfJ`Hqg` z007&zw{4>+MhM-dzLKVCQ55vV;CWuxb#EcZar?ekRYg(Evg|ZXVHlEA6h+Ij;y5nL z^0jy>7>0o{#uztE)AzmWx^-RqzE9VBBg-;E=tHt!&}skx002ovPDHLkV1l%yaLWJy diff --git a/test/reference/partial-clip-text-right.argb32.ref.png b/test/reference/partial-clip-text-right.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbdca0382d0b8b6683cc0db31700ac094227d7a GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDv08bak z5R2aA1PRu~2`?Da)1NnP{Bdt@bxuysj+B`h=^xj}?>8|uWk2x9JpW!tXXnLpHFF-^ z+?;;u)G6kKk3fa&2g2Cc*diluHg2pCS-`}g7R*0Mc%{MtpxF$bu6{1-oD!M<)Ic}{ literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-right.base.argb32.ref.png b/test/reference/partial-clip-text-right.base.argb32.ref.png index 3e69ca9e07eb72354d85aa82f8a58d9430953c87..2fbdca0382d0b8b6683cc0db31700ac094227d7a 100644 GIT binary patch delta 93 zcmbQuIGb^TYgl^v^Tv%o?(MD4$;sJ~GBYFnAT8`6mglR5-u@1fH&bF6*2UngEe$Dp&vj delta 93 zcmbQuIGb^TYZyCwd*j9*_x4ujzopr0Ks)EP5=M^ diff --git a/test/reference/partial-clip-text-right.base.rgb24.ref.png b/test/reference/partial-clip-text-right.base.rgb24.ref.png index 3e69ca9e07eb72354d85aa82f8a58d9430953c87..2fbdca0382d0b8b6683cc0db31700ac094227d7a 100644 GIT binary patch delta 93 zcmbQuIGb^TYgl^v^Tv%o?(MD4$;sJ~GBYFnAT8`6mglR5-u@1fH&bF6*2UngEe$Dp&vj delta 93 zcmbQuIGb^TYZyCwd*j9*_x4ujzopr0Ks)EP5=M^ diff --git a/test/reference/partial-clip-text-right.egl.argb32.ref.png b/test/reference/partial-clip-text-right.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..30c34b67b84a637ffacdddc0af75650b2df1a325 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tCE4^J1z z5R2ZoXAQXyBycoeybyUL^257(2Y+Wice4K1(sW8|uWk2x9JpW!tXXnLpHFF-^ z+?;;u)G6kKk3fa&2g2Cc*diluHg2pCS-`}g7R*0Mc%{MtpxF$bu6{1-oD!M<)Ic}{ literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-right.mask.rgb24.ref.png b/test/reference/partial-clip-text-right.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbdca0382d0b8b6683cc0db31700ac094227d7a GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDv08bak z5R2aA1PRu~2`?Da)1NnP{Bdt@bxuysj+B`h=^xj}?>8|uWk2x9JpW!tXXnLpHFF-^ z+?;;u)G6kKk3fa&2g2Cc*diluHg2pCS-`}g7R*0Mc%{MtpxF$bu6{1-oD!M<)Ic}{ literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-right.rgb24.ref.png b/test/reference/partial-clip-text-right.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbdca0382d0b8b6683cc0db31700ac094227d7a GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDv08bak z5R2aA1PRu~2`?Da)1NnP{Bdt@bxuysj+B`h=^xj}?>8|uWk2x9JpW!tXXnLpHFF-^ z+?;;u)G6kKk3fa&2g2Cc*diluHg2pCS-`}g7R*0Mc%{MtpxF$bu6{1-oD!M<)Ic}{ literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-right.traps.argb32.ref.png b/test/reference/partial-clip-text-right.traps.argb32.ref.png index 3e69ca9e07eb72354d85aa82f8a58d9430953c87..2fbdca0382d0b8b6683cc0db31700ac094227d7a 100644 GIT binary patch delta 93 zcmbQuIGb^TYgl^v^Tv%o?(MD4$;sJ~GBYFnAT8`6mglR5-u@1fH&bF6*2UngEe$Dp&vj delta 93 zcmbQuIGb^TYZyCwd*j9*_x4ujzopr0Ks)EP5=M^ diff --git a/test/reference/partial-clip-text-right.traps.ref.png b/test/reference/partial-clip-text-right.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2fbdca0382d0b8b6683cc0db31700ac094227d7a GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDv08bak z5R2aA1PRu~2`?Da)1NnP{Bdt@bxuysj+B`h=^xj}?>8|uWk2x9JpW!tXXnLpHFF-^ z+?;;u)G6kKk3fa&2g2Cc*diluHg2pCS-`}g7R*0Mc%{MtpxF$bu6{1-oD!M<)Ic}{ literal 0 HcmV?d00001 diff --git a/test/reference/partial-clip-text-right.traps.rgb24.ref.png b/test/reference/partial-clip-text-right.traps.rgb24.ref.png index 3e69ca9e07eb72354d85aa82f8a58d9430953c87..2fbdca0382d0b8b6683cc0db31700ac094227d7a 100644 GIT binary patch delta 93 zcmbQuIGb^TYgl^v^Tv%o?(MD4$;sJ~GBYFnAT8`6mglR5-u@1fH&bF6*2UngEe$Dp&vj delta 93 zcmbQuIGb^TYZyCwd*j9*_x4ujzopr0Ks)EP5=M^ diff --git a/test/reference/partial-clip-text-top.argb32.ref.png b/test/reference/partial-clip-text-top.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d18475be3bfce39a2266d6ccaef764fbdd59862a GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvEKe85 z5R2Zo=M}ja6a`o>NN%fU5X=$lZr{M6RPq0y-VK-TgS?0CC7A1cKGiO7SHtkF{5q#* zs@F-&?bou_&JE&txL1Gao4t$-g3cT+Eggn#$vr`5N_%frwUUT(&U4Ol4gerxYi*2yh`o1aCL$5B)x;QUt<0>d gYpw79IOp7pE`Hu0=b^9YmH+?%07*qoM6N<$f^KU#WB>pF diff --git a/test/reference/partial-clip-text-top.base.rgb24.ref.png b/test/reference/partial-clip-text-top.base.rgb24.ref.png index afe2d3efeec025e43bd9c2676c391b7175355a71..d18475be3bfce39a2266d6ccaef764fbdd59862a 100644 GIT binary patch delta 134 zcmV;10D1qd0kr{;Hh*eKL_t(IjqT4N3IHJx1<)C`djJt^7K?|l2qJj@!7kWDi@^=T z-e5N@^U8-GK70W7ch?CiWlG68x7KQ{ol*$ly)UKgy#W9bLkL8Kh%rWEj8dxiKIeSq owAMLiYi+G{jPd;+#u$6i4VW4rQ+bS}y8r+H07*qoM6N<$g1bpL5N_%frwUUT(&U4Ol4gerxYi*2yh`o1aCL$5B)x;QUt<0>d gYpw79IOp7pE`Hu0=b^9YmH+?%07*qoM6N<$f^KU#WB>pF diff --git a/test/reference/partial-clip-text-top.egl.argb32.ref.png b/test/reference/partial-clip-text-top.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e8563c389dc0ffa064ef39f789d8e132556b6ad1 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvNKY5X z5R2ZoXAHR-6ggNQJcyU#I(RT}m+QU%W=NN%fU5X=$lZr{M6RPq0y-VK-TgS?0CC7A1cKGiO7SHtkF{5q#* zs@F-&?bou_&JE&txL1Gao4t$-g3cT+Eggn#$vr`NN%fU5X=$lZr{M6RPq0y-VK-TgS?0CC7A1cKGiO7SHtkF{5q#* zs@F-&?bou_&JE&txL1Gao4t$-g3cT+Eggn#$vr`NN%fU5X=$lZr{M6RPq0y-VK-TgS?0CC7A1cKGiO7SHtkF{5q#* zs@F-&?bou_&JE&txL1Gao4t$-g3cT+Eggn#$vr`5N_%frwUUT(&U4Ol4gerxYi*2yh`o1aCL$5B)x;QUt<0>d gYpw79IOp7pE`Hu0=b^9YmH+?%07*qoM6N<$f^KU#WB>pF diff --git a/test/reference/partial-clip-text-top.traps.ref.png b/test/reference/partial-clip-text-top.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d18475be3bfce39a2266d6ccaef764fbdd59862a GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj?!2~2FO{KN~DYhhUcNd2LAh=-f^2tDvEKe85 z5R2Zo=M}ja6a`o>NN%fU5X=$lZr{M6RPq0y-VK-TgS?0CC7A1cKGiO7SHtkF{5q#* zs@F-&?bou_&JE&txL1Gao4t$-g3cT+Eggn#$vr`5N_%frwUUT(&U4Ol4gerxYi*2yh`o1aCL$5B)x;QUt<0>d gYpw79IOp7pE`Hu0=b^9YmH+?%07*qoM6N<$f^KU#WB>pF diff --git a/test/reference/partial-coverage-half-reference.argb32.ref.png b/test/reference/partial-coverage-half-reference.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..17f4ff06b367b25be02a7140335f88f322ee4048 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}}JPZ!6K zjK;U;Hwqqb;5oeE#`oXn=LkmZWM-eh_gU85c>C|&)zt+&6%2w7ECGxz45E}#S4|(V Ydm1sDN|l^q0ou;s>FVdQ&MBb@0D8kOT>t<8 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-half-reference.egl.argb32.ref.png b/test/reference/partial-coverage-half-reference.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2245b7c2244a7832659e6adaea0ad5d0cb78c002 GIT binary patch literal 637 zcmV-@0)qXCP)00006VoOIv0RI60 z0RN!9r;`8x0y0TNK~!jg?V7=k!ypVqONyeZs`~$bn>}n4SpfzcJkYAyLu6^I2RvtL z4h=W*UkKqSwr!I&c>aG()eSs@An#_#wvFOf>D4#1HGb4)8?eKOPT~oBmy@ zGVpvpO*>$mt%o08uUASj5$E$&$=7{}pIr+bAnPe5Dn0S|jTx|d z;_=%vaMUF?c;8^=nD|kinB*StWzEWftQi^TbB}*b|R$&OnhsaAp>*oq?M}#@YJ6H7k)gQjO2;OuXo@B zGa&0?1~hI;Gr`NfX6E!}KpGobV&-PEM}@Xr}g&V|V5YVC4PLmv74e zb^|=|_~s1g-Hf@DUKyC(hoKoT^+7Xp3>g43A$4P#301zVQ+_4`ot_5Yi!vGbu6xlR XL2w@_vB0SQ00000NkvXXu0mjf#oROF literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-half-reference.mask.argb32.ref.png b/test/reference/partial-coverage-half-reference.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..17f4ff06b367b25be02a7140335f88f322ee4048 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}}JPZ!6K zjK;U;Hwqqb;5oeE#`oXn=LkmZWM-eh_gU85c>C|&)zt+&6%2w7ECGxz45E}#S4|(V Ydm1sDN|l^q0ou;s>FVdQ&MBb@0D8kOT>t<8 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-half-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-half-reference.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..17f4ff06b367b25be02a7140335f88f322ee4048 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}}JPZ!6K zjK;U;Hwqqb;5oeE#`oXn=LkmZWM-eh_gU85c>C|&)zt+&6%2w7ECGxz45E}#S4|(V Ydm1sDN|l^q0ou;s>FVdQ&MBb@0D8kOT>t<8 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-half-reference.rgb24.ref.png b/test/reference/partial-coverage-half-reference.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..17f4ff06b367b25be02a7140335f88f322ee4048 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}}JPZ!6K zjK;U;Hwqqb;5oeE#`oXn=LkmZWM-eh_gU85c>C|&)zt+&6%2w7ECGxz45E}#S4|(V Ydm1sDN|l^q0ou;s>FVdQ&MBb@0D8kOT>t<8 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-reference.argb32.ref.png b/test/reference/partial-coverage-reference.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a6fe42be7b780e92a471be50536b645886d6e GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~MPZ!6K zjK;U;H*y|v5MXiC&G{!d|D)jv3om}#vV#{s@40iP=Jfk_cbiYwaUa;n@Rs`mHHiOq g3Fj=!`SpIwJ7jW-7zAz)0Xl`j)78&qol`;+0AWs1+yDRo literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-reference.egl.argb32.ref.png b/test/reference/partial-coverage-reference.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb82497fe9d0a9e1c839b1a02361ed375b58229 GIT binary patch literal 419 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lNlHoBRpLk zLn`LHo#V*YY{0`JZ1BIn$Rfn4t07^wNcGaEPWq2SZoUm!E0U$TbgFpx+O5@hqjvAf zPOm-N-7%v*^PUJ-{Z7UX&#Ird*)rNvy)KLKt*TyF7UWNYUjJ4GwtZJxP8S8 zo6he2bFrbmj!pOTzGv;c4nPN8W-Mtq#5nEf#R{;2FB(KVTdWnVIyL_Nu#}nWBBHNk zRQmkltb$+8ET*3N^;ryFMVl+E9;{=`@Vvz62l0p%gVD}N8(9bT3ye0#DRR>cJ@xI6 z0?pj~(Z<*XBxwFZZkpoB)W~^#|F3_lb~*60mfh-Vc-{&(;TynEXYh3Ob6Mw<&;$Sk C`mLq_ literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-reference.mask.argb32.ref.png b/test/reference/partial-coverage-reference.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a6fe42be7b780e92a471be50536b645886d6e GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~MPZ!6K zjK;U;H*y|v5MXiC&G{!d|D)jv3om}#vV#{s@40iP=Jfk_cbiYwaUa;n@Rs`mHHiOq g3Fj=!`SpIwJ7jW-7zAz)0Xl`j)78&qol`;+0AWs1+yDRo literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-reference.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a6fe42be7b780e92a471be50536b645886d6e GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~MPZ!6K zjK;U;H*y|v5MXiC&G{!d|D)jv3om}#vV#{s@40iP=Jfk_cbiYwaUa;n@Rs`mHHiOq g3Fj=!`SpIwJ7jW-7zAz)0Xl`j)78&qol`;+0AWs1+yDRo literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-reference.rgb24.ref.png b/test/reference/partial-coverage-reference.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a6fe42be7b780e92a471be50536b645886d6e GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~MPZ!6K zjK;U;H*y|v5MXiC&G{!d|D)jv3om}#vV#{s@40iP=Jfk_cbiYwaUa;n@Rs`mHHiOq g3Fj=!`SpIwJ7jW-7zAz)0Xl`j)78&qol`;+0AWs1+yDRo literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-three-quarter-reference.argb32.ref.png b/test/reference/partial-coverage-three-quarter-reference.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ea16dc4bb1dcce4a74e9986435bdb4906ee70f24 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~OPZ!6K zjK;U;H*zu<3a}W;fB$>^k897tPBZz4vnOZIoc{COw10=1r_}@10*zq@QyR5kZosd9 zAnt-Me;I+4!^_{yK&s)=cd(+R@A*NJUiale)RcYpK+@wUzn%!oCU1+74v?UytDnm{ Hr-UW|xs*29 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-three-quarter-reference.egl.argb32.ref.png b/test/reference/partial-coverage-three-quarter-reference.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2edd4424080134e65f10db45c9350eedf956bd GIT binary patch literal 544 zcmV+*0^j|KP)00006VoOIv0RI60 z0RN!9r;`8x0o6%FK~!jg?O4%{!ypVh3jhDhy@yuqN?Dv>Ag#tdOp`hrJC2!l;g9|c zA%qatbroLqR92o4W2|Fj)bLIYo|GA2X4y4|?a`elH(*ufg*{$R11|HkD!xNN0%P{L znx|lZ?|{IwJ!+eSX9pk;oJgSq!l$8DrQ)_&wgcq+dUZfR!t>y%&+0&vJ!Wz!8yLLD zdbf8-iZR0ZF`6I`gZ-L-QhoKQ4RbgRyflYi9T0e+R+9$M0VN}ktoq@iU8T<)=69e_O0vr@xTIskdT-Of@6gj1nbrDBMM8uAXf>~XISz*C`T zrE><`vIEt7%;bO*=sG`$6?nEsPwaq6!=8Ze9z)LpPu>BSJ*GOaEQ|XdGj3B#$^9;$ z9q`^`E6?X!8D0GmJVyv0000^k897tPBZz4vnOZIoc{COw10=1r_}@10*zq@QyR5kZosd9 zAnt-Me;I+4!^_{yK&s)=cd(+R@A*NJUiale)RcYpK+@wUzn%!oCU1+74v?UytDnm{ Hr-UW|xs*29 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png b/test/reference/partial-coverage-three-quarter-reference.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ea16dc4bb1dcce4a74e9986435bdb4906ee70f24 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~OPZ!6K zjK;U;H*zu<3a}W;fB$>^k897tPBZz4vnOZIoc{COw10=1r_}@10*zq@QyR5kZosd9 zAnt-Me;I+4!^_{yK&s)=cd(+R@A*NJUiale)RcYpK+@wUzn%!oCU1+74v?UytDnm{ Hr-UW|xs*29 literal 0 HcmV?d00001 diff --git a/test/reference/partial-coverage-three-quarter-reference.rgb24.ref.png b/test/reference/partial-coverage-three-quarter-reference.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ea16dc4bb1dcce4a74e9986435bdb4906ee70f24 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~OPZ!6K zjK;U;H*zu<3a}W;fB$>^k897tPBZz4vnOZIoc{COw10=1r_}@10*zq@QyR5kZosd9 zAnt-Me;I+4!^_{yK&s)=cd(+R@A*NJUiale)RcYpK+@wUzn%!oCU1+74v?UytDnm{ Hr-UW|xs*29 literal 0 HcmV?d00001 diff --git a/test/reference/pass-through.argb32.ref.png b/test/reference/pass-through.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..058a1920fd184740a743e73970a579f225cb1556 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3><7g)~=v$en5&X$=lt9;Xep2*t>i(P-K#) zi(^Q|oVVu<`Ir@XSPp!B`S1S|3s(n+bzM`6GA>9Nx1EZz{q{@s{@qy5qS)|BPfS0* zc~zJw%JxC?PVkylixZ`TKh@SxwJv^+gNG~LEuzSUe`SoO9% RQ}`8-L7uLDF6*2UngHTfJ!Jp@ literal 0 HcmV?d00001 diff --git a/test/reference/pass-through.base.argb32.ref.png b/test/reference/pass-through.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..058a1920fd184740a743e73970a579f225cb1556 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3><7g)~=v$en5&X$=lt9;Xep2*t>i(P-K#) zi(^Q|oVVu<`Ir@XSPp!B`S1S|3s(n+bzM`6GA>9Nx1EZz{q{@s{@qy5qS)|BPfS0* zc~zJw%JxC?PVkylixZ`TKh@SxwJv^+gNG~LEuzSUe`SoO9% RQ}`8-L7uLDF6*2UngHTfJ!Jp@ literal 0 HcmV?d00001 diff --git a/test/reference/pass-through.base.rgb24.ref.png b/test/reference/pass-through.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1be631aad7fa15dbe54036ac4ac779d1db47b0b5 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3>-{AmZ?FaB#>fD@^*J&_z!{$_AZ|c6bbfp zaSX|5e0z2y7lQ(agJbKz|I>4~EKt4mXim+c#3N5r(#k@=?wWI5B0u4GEgw(=A@Gk) Yc<7g)~=v$en5&X$=lt9;Xep2*t>i(P~?TD zi(^Q|oVQmG3NrB%ZrW0k0cho%{}-@a{2oz-6vc<7g)~=v$en5&X$=lt9;Xep2*t>i(P-K#) zi(^Q|oVVu<`Ir@XSPp!B`S1S|3s(n+bzM`6GA>9Nx1EZz{q{@s{@qy5qS)|BPfS0* zc~zJw%JxC?PVkylixZ`TKh@SxwJv^+gNG~LEuzSUe`SoO9% RQ}`8-L7uLDF6*2UngHTfJ!Jp@ literal 0 HcmV?d00001 diff --git a/test/reference/pass-through.mask.rgb24.ref.png b/test/reference/pass-through.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1be631aad7fa15dbe54036ac4ac779d1db47b0b5 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3>-{AmZ?FaB#>fD@^*J&_z!{$_AZ|c6bbfp zaSX|5e0z2y7lQ(agJbKz|I>4~EKt4mXim+c#3N5r(#k@=?wWI5B0u4GEgw(=A@Gk) YcGVHuGj6)sarL_t(&f$hz)3IHGoKtYB6|CepFpe5Sk yoP5Gz#N}jWc2)JdoYxp{VEcUzk#Qpz{st43;1KPQi#A#S0000vssuEc!PC{xWt~$( F69Az@C{X|a diff --git a/test/reference/pass-through.traps.argb32.ref.png b/test/reference/pass-through.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..058a1920fd184740a743e73970a579f225cb1556 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3><7g)~=v$en5&X$=lt9;Xep2*t>i(P-K#) zi(^Q|oVVu<`Ir@XSPp!B`S1S|3s(n+bzM`6GA>9Nx1EZz{q{@s{@qy5qS)|BPfS0* zc~zJw%JxC?PVkylixZ`TKh@SxwJv^+gNG~LEuzSUe`SoO9% RQ}`8-L7uLDF6*2UngHTfJ!Jp@ literal 0 HcmV?d00001 diff --git a/test/reference/pass-through.traps.rgb24.ref.png b/test/reference/pass-through.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1be631aad7fa15dbe54036ac4ac779d1db47b0b5 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^0t^g{3>-{AmZ?FaB#>fD@^*J&_z!{$_AZ|c6bbfp zaSX|5e0z2y7lQ(agJbKz|I>4~EKt4mXim+c#3N5r(#k@=?wWI5B0u4GEgw(=A@Gk) YceeI$6`~4n4Hg)`eu~VEORKKh~zY5 zj+N8KNRAt`$6<<*jj^15_xk=7zt``1?RCHQdfoSRf3ElSzOK*vx<2=lD|Q$5OC6H} zfk69hE}pvv0*PK1USLt+j_w}FQ{YeH_N5EwK)b?UK~qUO2qaf)bI!^kl)#zrt;DTG zu~#4k9pUNT$t$YFvj;?9wb8+49mAQh>3v9InH@6u&R{av5?gUsWckSX^E$&djV7|* zg<~*?UVX}~TAN!>f~953G+sS^MaZ^Id-28wO}6>%VKszs^Hr;Ewa^5RQPM)}+5ywF!1IOx}sTgHo^XO6FLOI?HUX7d;u<44@ z1yWFtvgqvv`JgL1Yi`V)_4P?p%-l@8bk#zIZ?d@X)xV7<>mN#~hOr(}b945}R(aaM z{Lqn_v1ibU9KmO8J)LJUn?#T3(F}DGf1FAf>#_ySj)Ljc?rlE~*;WPn+QCoiBRz*o zCjlfW*vga4-RJ`dV<;?ns-)ggs$UG&o<+?us*>ucy%w8SDO1OKnH0D>F!nr#SCJ_i z^yFY2Ydu-pu zgz9~F&?pM}m*5BL*AqNE5}V-yTsm5UkRNvV!iDqqU-{O6PA%?u|ujvxRO)n`4L z!Oo+!TDpe69XRWvA$|l1PF?!2flJ#73xN%?x996y60ff~RbpNi)^5G;z}!><@8^PV z-_%X@)+}J<0Kx2OCmkS0G#*>I?pQ(n(7DtvIn+P_c<2RtEa%=ovm?l-EB>PpS^k^S zlY@MQO9=LRYCg$PDnl)?spjrqDaOC2ntkERf5gL1kGSBbQ~e_j#2&8K9K2-2WJn&e z4cy%(aq8-lK;B8%N|bBZNlAqaRNmc)lmq1DsH5^!Nkl(i9(1}=hEH{B89#o=Ru7dT zCF(T>j+h=p>FYehx%mOMkuxe`-0rQubT6twlKg1@UxE=Qr_|0kC$z#^q-D2sHg{(A?|v!1W1V zh)BPl@?xERj0putG(RWVkGF$m^JWs5^%M}|u#N6?XanR{zBTC{yA7p|Dq5d<^ z&T?nceQ5)6>twZs;o0fq!if1};70a>+j6RuDtz7f(4NqAY~>}_aCI@Uuq9F*d%ks( zncvp7*c3v?fRd$P?OKBGPMd}CHb|PIRV;B7+{i*%P!jiUuc+fwqYdm4-yqZCp--`u z(29mqi&NR2JCTR>j1sW-lgwAnAq3sz6>B;sXzH;FcPioN!frHZCt+80sgk0#006jA zX(=u;*3UGe?>D!`SJ?J+%B^X z_m1Sd0P9zU&v357vI*Q?I|bI!gt9I&BK+;lK5 zD{3Df4awI2NIlr~p0IQ*$?L zDo&V;(GNG8Op+9ZK}WTg4Wvv2-x6jSk1AENOhPB-0y`~Tjs2~J4q$8KWR>LgBq6>6 z#@lVyqxh4TehLY)a1$3XQA<<^UHMGSXYvm!2tFeO%b5Hq1dV78wqzb`KM*;q5!P(+ zC9ta=8Yl~^^tm`kQnrD4H zu<+Erd#k08`&Lq~CR4kckdc1aYd{A6YV0N85qm#JtGQmdihTw19liR$=3--=v3egZ00kUt70 z&iJ@3Je5)v@T5cD#M=xbIqGmPYvjA0Qmy^s{r2d@oFc`Ae-(?h8&qS^k>?sd@poT{#Kw zgDUc$sr&GL_L+y(`xIF!z}lI?pASU=QiF4uDEsxo|3F#D;dkAvr1j4wo{o034@~-S ziD!fN&0-haLJDo=vb;pUF<>*-#{nSY8!KN*sgf+#nOXE>Ci@Bi6^bFEZy>4O5sy2Sep#+fQ^8 zn=^;X=!&mYh>^+*s)iwq3*6_@7!M3v#GtQiV5W9N@9wqejgP|gXf&eQe{QYD&e?5+ zH}7-`rsw*^ya`wx(zoK~H|}Xrt$Q``Npt0J?TgTT=M%X2L3{h?C%s34dxpeL-TYqgXP$f8hnQldo;`&k?!iq*b2)?~qKGTPxTngw6P zbVeB*Z&H#o2vKbPT+vI~ul~(|l;U%hJ}SO9S5n91>m=BS80dwh_5DX8CZ`={xNBA0 zLSyb)?G%uBAnPQ6l(}Mi8h4g7ow9FVjrpHx)cg@|ag^sHDN(~QFq5@5f}xzo8)?%J z^kH!7ae_VK1$O$Fi66S7qNnsNe!M>nRQLq@Lm_w)&L*U{wHuL10p&rT1K`nNcS^iQ78|q{5Lu~)AtzeBZ>unhJKkr)08G3e!Ua_-qOX`s~y&(A12*2qN3Q&RRtGllT{>q8PG+~7@yHc&8>7+ zhX(NJ?-yu0lxp5rE0>t>j#%1;_Ut7g52wNm8=73B;YJe~J{8@Uv>(idX*U~*C4@yY zE6m=h#H6FKYrjZlJ6$@)gl8F6hgTa4Pj^wyqRTfC_=DTDOB1j<&Y0qEn? zbqv0x;>AEV6;Nd4>Aq?O=BXx6tHR?BrusmKXuX9_bg5K^s-n1qVd1A%&r!h6F9z+ zSN2ck3e7YGJ#`w{o)fPL%?7*Qn$gkaK_9gM!68;R^%jvF{yPMmjV2tor+#A280GF} z5GyiwXgprg?m*+f0h5E93L{#M{f|&p7BEe~F!21K zUr9tD&4pCPQ8x(;v_mMX)tHO7{xLf=&j&K03!iH<8|5o~gyI4qY>)gjk|u}@C@N5)JYzl^c(Yy8a|#aMpxY9zFH-dGCIPo6?&A$yaYVv zVDEcIXS(h8oMH>Y=n4D$TNa6kg>`D4FGN(Q6qqWISN|(qX_p)hx?hL2%WPbYHqe!I z>n-zz=#ls0D`7q%eSJdfalm@&Kh6Vkz`lA=0ZeFiqhQloRi6ViRunLyeZ%iGMbb(< zK_(t5i(eU3q0ZmPes~JpudKY-Ri(KZ+&sbmO#zR`=l20KglK_(sG$k@@>q~(igWIe z&{=NP;EQ+o3>&~%zY);hHyxXY0B78Xkyhd&)}O46lSjDYuWf$U9Hk#FF96^h%tP({Iv+r)H+F#d3{*B z?~RP}zjSz34vlSjzd{lVSvODHxP0AmG!30I{#<2C&Idi`gx zb*Qm;^J=!cghe)_4j7_hs%89!;^6lK4!`eyF&KE0UX5-$Pr4{B5=_8Ws%TUP1|w7R zm_<_w_dpZ3RTjHeZQb%_LuOLq0BOCHMx~e?+A}W&Wp$DBM*O=^^YoU-%;>}WB-v9J zc=PqiK0ct>5P;6EMM5sE8=i0!y>j#05b374NW*9A`t6$}$8hJATY0ls1<4;3YKf-z zT!woo)pMZHHq6yp#(G`79hMNpcq_$14n~? zh-=1E3H{NhNy~)XB zaSXRSa6Nym5w)&mC*GQaPBbS@kNo+*>kt4)1vmrxcGiAT$8#?#uBaasj$p8RrWKi5 zU7`R}3Q!MI6S8CYZM!YMX8NcDNPMqHPTh9x7u}K{$l zbiGpqF@&O4F?xJFN$8u!yivVX{_*bs9l%Ujoc5Qh>d zknSjn*&w~Lq(lu`t&P8vUpVGDFPdFowT%YUnd0(IF{r-HHc=?irjFgfT z2n3R`ymtb!_QZ`$CxQ}QvOpQ)fjw|isU^-*6=#CZ zNy8fu9)xkwyZ#`XkEW{$^z4dRYa)eR?q2(?p@vMt)tGXE zeBI<^LTHC1^%-u(R9kHJKZpG~IXlq;UVhV3&U!0qWo9Nczb{_W<-U@c<=N2&PBgqY zpD`e=it#FM9!9?b6>7u}jFAvz)t9Gy8+VwgI1{VqUYo0ns6*fV2guNY&6llnmSP$7 zsE8DlDLOwFozL!B5n&Yh#mkI+{_E~|Em@WK1vT)^ai&cai26!TGRslzlgBVz7s?cy>p z?+{&WA+RT$j4nujfCBTg@sM|cP6aWJ;D zP*6>q`KW;#|1J(#KqnrT$n@4&NS?{3w3)eL-Uw}D!OXeh730<~fOmGKJh$uA$f|`{ z#tG-Qac17I4%O@RIu@!_fju<_>A@$el! zg2${&nC&t}@? zUp*5uD$#W3OObNewY=y?VN59zUhJ{RjZS}x$R|^X$9g1xo`0qNh@x{r94N3-KD_6V z%%Owbdv$A&7UB&4qO`2f4xg4M>TWHZb8H<`1IiAaBDIUuV?HW_+QDdDT1YMRGTmr5 z;n$#&6u;ZRIszJgmI&Uur)yVSI}`JsDiJ}ovz?B>!C%5^0jEW_lyhKj($1F1hOOXb zLm!LsJK36xVj_$V^9J9=CSBoq$mIsVQflK$OzIp|>P7~ zPeQn6vg2rh!qtcw<^8)ybs&?s{ps0-DZK_1Vfb9Sf$s?GoZ4NiY)n^@^wx7PHHJTZM6!<*lw_B9FW^loPR>fjh;u$n$8^Ux|_HP5xk!PvY^Fp6AXX z=3bj@xYI)Kxo>ZnY~D^W1Cv`nq*U39|{g4%x_Q zZA=wvC}d!o_k=H4XIi_aYgVwn)saPJMWd60j8HsFE!)A?9V{(Wnv;-#{+WT{qXN<~ zI0g!}g36-UbjLf)>^k_xFTRtw+}i?#$aCbQ#WJ=HQMtL)FHrvr4mI$7ZP(En^mk-6 ziavSuqdjzovk}Q`mu7$0!l%wmSyg*ID1saBGgGUSU;O$ei+e#VBl6d#ii2LyIB{!3 z85cen4U1Z4Yn$1{2ay+vMIem}#p&{)qf zQ^B_X9Jm%qUV_rG!SSb0Vt>kV#ndTB)=&Q?XS@KS1%XoKXUHSrbEj#;c9^rWHNB;SE>Of z#FhQ<=IIfe{xn;!sYN7aLqNp^umFX4+h)E&JD{`hL`sXd{H?jfJ$=oI1FV#QOgapg z0jkFZpfB}dGC7=u<9MCZ$Bw#W&0iXLXQRC5lM!IU8kh%`;_Dk;Noir!!I8!j0ke8B zT~vvk&hZE|s~=#Z?!TQ7Qz@(ztRv%8cKbRLIiMo>Ngd*m?$!4^a?Z*h{5j30$$Ky? zInM|lYA<&mqR?@qr@rNxg_=M1aSDBzT9!LR4_50IZ+WU~7@=x5MN+bH#h$b)Vp^c? z0>JPeaIBrP@>PcDiEfmUofEiWItG+Xkk^8be^uOX9nz_p?65Se92GF=zi1Kz%bbwF z@%p5tz4)7TGY1(I@Zg6qjCVfk()QLie-6=1Tmg+;j@EFleys}}%1>SRjdnc#U7VR% zE&Qxv3A=40314K6^|!aKzFZvGQzsdMwIGf;uY0U9lM+yR;V`3*4{??)Zt zDtB%PdJxksK>iktDwr=S2MmumVuqCpjL&joDDJ02P2ET>pA~ew#g0pSy%MHDnlImO zSF1suw-8WpeYn$yGy^_yt^txL1t-}cMrhPUyAB1s3|gA zKJI$Dq2 zAd|xm?|X9)#ESNbqDs2~x3^p{F9FrB28&Q_8@-IxppPXTaw0+_=xMRBbrzQC+KPrz zuU<&)Izp%X@xDCRbeVxv;9Y77;t! z(z10MPIKF(FG}6hLqh;P@dk9_XENo_K%yoD4hv^R6*Ip+OU`|cB+QJJ@h_Wx1#t3A zOb#k$Y?Q55k(IW}?%j6&qFCaRz1LpuZNK?wmAR>QGdlyZLPH`a>y@91?lEX^5QAE&>~-PNR08$91V!3uQI6m{27ejmjJdH|;; z7y*s09}nkaMsQW1rBt(~273?#K;{lqi6#&B*oo^;Zw9KYiAINC1TKEX`r;4k&Ib6p zz%{x;cm&5G9&l@X`gEV;1a2y-IB8jAuOjS5yDd}UxWv*Ph(`oKaj$b$-BojH{|oM% z9@{RzO=sy|!y2Zl<`zOugWdfI^5JBEBD>ur+v{VQbrh74#p0#39&h%$Qm9xGrIml> zObi?d<@*{b`h3cL7$txYU&m-F(lh%idRmP6C98Q~mfc!MXus;}9Jvp)C?s8u5W=bf z^HH(B>V=a4H};x3LE(18K2#pH=3&L330>1ezF1SnuuksUbrq!-Np-vg#oBfX+41(dWrQj!~L!RE$_gS#CNZYo?W+{~o0s6_wh5 zlTM>Dek?ne0}Y9X23-@?W2@yoREnux$zNun-|Wo)6Dh!P18V9|n(Y?Y^r{2pF`Rse+P6?~vn-7F!#QX^t!k;63hxBZ-E z5YlC_^0}@UGz)P}mJPJ3Q_h-F9Viq=HeOA8QHD=H<`3TW2@c5pR@1hNFl+RR)BfED z0io1$?en#RPFwJ<&>l($au%9(=4E>h3(ai-^M+&aH9**%)2*(_xxe;{H(u%64pA4K zC$zB7JcupwYYH=Q8_cqobKeJ8GtZuikpkW|>c2VqfOneI zuB4RYpe+aVnk2%*s;&mvy>w}?XMMUw7`-E`gWYr@3)qp2-d-cNu#bT@v*iNFF2s4Y zmDK;u)DrRT_qbyrP2a$PGdS*Vt51@|FWpu}9=E6k8YDG>d;pnEj0!%G%11Hyq@3b7 zP*b;g!#T<{Q9I=001;yc^tOHB3ooO@4K^60dZ4H_UnU17$PT=+BHXhX&Ur={%kwtY z>CptvdfqQy#p#)SC=|W0ts|ybB69CZa;1g=)YIF6k!HLH`iXnOvRZxbHMs(9zjzIT zJ|wW`!bD!xTKh2x0vNmLj)M;p ze>BTy?hNAXJQ$@r^G@Atgermk@r)E=7tp9R;@ADC++-;iGvmGo+#l3OU5bmbeaFo93Ei@co{G^awzL9LEuB( z7O_*h0J+#szv~RS-ef02VpAo^e;>kELA5#EDx!xjLX8PPL?W;b{h4p12c7}j_e`UL zWCO4VV(L+ccNZ8|n2Y>jBk}L^F9!eCz`r%{f4c_QJEGvL3ZIZY8%e-l{vgW>m(G`; Hb&vaRdTkA` literal 0 HcmV?d00001 diff --git a/test/reference/path-append.mask.argb32.ref.png b/test/reference/path-append.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f097af032b07894d0297ebbccef7fc73989fa8ac GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/test/reference/path-stroke-twice.egl.argb32.ref.png b/test/reference/path-stroke-twice.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..743c6ce52974e48b2cb84cc11caa57ca0773537c GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}~%o-U3d z5v^~pdvhI85NLV$&eF$0!2F_cg-fxkc;E%)D>|Fz+02np{IXx~$F-vj87}h`R~=yD z{!=w$=FCclJEo1SVm}-$p8qjfGet@1eXY3kes4|573PKXuA^vG=IlNeVLw|l@fm(&Hx?E;OXk;vd$@?2>|+~U{?SD literal 0 HcmV?d00001 diff --git a/test/reference/path-stroke-twice.mask.argb32.ref.png b/test/reference/path-stroke-twice.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..743c6ce52974e48b2cb84cc11caa57ca0773537c GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}~%o-U3d z5v^~pdvhI85NLV$&eF$0!2F_cg-fxkc;E%)D>|Fz+02np{IXx~$F-vj87}h`R~=yD z{!=w$=FCclJEo1SVm}-$p8qjfGet@1eXY3kes4|573PKXuA^vG=IlNeVLw|l@fm(&Hx?E;OXk;vd$@?2>|+~U{?SD literal 0 HcmV?d00001 diff --git a/test/reference/path-stroke-twice.mask.rgb24.ref.png b/test/reference/path-stroke-twice.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..743c6ce52974e48b2cb84cc11caa57ca0773537c GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}~%o-U3d z5v^~pdvhI85NLV$&eF$0!2F_cg-fxkc;E%)D>|Fz+02np{IXx~$F-vj87}h`R~=yD z{!=w$=FCclJEo1SVm}-$p8qjfGet@1eXY3kes4|573PKXuA^vG=IlNeVLw|l@fm(&Hx?E;OXk;vd$@?2>|+~U{?SD literal 0 HcmV?d00001 diff --git a/test/reference/path-stroke-twice.rgb24.ref.png b/test/reference/path-stroke-twice.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..743c6ce52974e48b2cb84cc11caa57ca0773537c GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1SFZ~=vx6Pwj^(N7l!{JxM1({$v}~%o-U3d z5v^~pdvhI85NLV$&eF$0!2F_cg-fxkc;E%)D>|Fz+02np{IXx~$F-vj87}h`R~=yD z{!=w$=FCclJEo1SVm}-$p8qjfGet@1eXY3kes4|573PKXuA^vG=IlNeVLw|l@fm(&Hx?E;OXk;vd$@?2>|+~U{?SD literal 0 HcmV?d00001 diff --git a/test/reference/pattern-getters.argb32.ref.png b/test/reference/pattern-getters.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc39a8bedc4aa27424e3f96f8aec974eccf9cae GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryY)RhkE)4%caKYZ?lYt^Uo-U3d g95a&>ew=4uU}9oq&=Xm64k*sx>FVdQ&MBb@03F{I00000 literal 0 HcmV?d00001 diff --git a/test/reference/pattern-getters.egl.argb32.ref.png b/test/reference/pattern-getters.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc39a8bedc4aa27424e3f96f8aec974eccf9cae GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryY)RhkE)4%caKYZ?lYt^Uo-U3d g95a&>ew=4uU}9oq&=Xm64k*sx>FVdQ&MBb@03F{I00000 literal 0 HcmV?d00001 diff --git a/test/reference/pattern-getters.mask.argb32.ref.png b/test/reference/pattern-getters.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc39a8bedc4aa27424e3f96f8aec974eccf9cae GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryY)RhkE)4%caKYZ?lYt^Uo-U3d g95a&>ew=4uU}9oq&=Xm64k*sx>FVdQ&MBb@03F{I00000 literal 0 HcmV?d00001 diff --git a/test/reference/pattern-getters.mask.rgb24.ref.png b/test/reference/pattern-getters.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc39a8bedc4aa27424e3f96f8aec974eccf9cae GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryY)RhkE)4%caKYZ?lYt^Uo-U3d g95a&>ew=4uU}9oq&=Xm64k*sx>FVdQ&MBb@03F{I00000 literal 0 HcmV?d00001 diff --git a/test/reference/pattern-getters.rgb24.ref.png b/test/reference/pattern-getters.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc39a8bedc4aa27424e3f96f8aec974eccf9cae GIT binary patch literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryY)RhkE)4%caKYZ?lYt^Uo-U3d g95a&>ew=4uU}9oq&=Xm64k*sx>FVdQ&MBb@03F{I00000 literal 0 HcmV?d00001 diff --git a/test/reference/pdf-isolated-group.base.argb32.ref.png b/test/reference/pdf-isolated-group.base.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8522ccc133eccb72acfedd3d6f355677ddf99f GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*lHO6P!4B5ThS=V|X=#oO#GnO&TB_11s38c&m{8Cn-Z z7Oiv%?p&tT`EKP`iR6jOO85G`F8TrK&;D+fdBT&?fph$AOLKV5>DBjl?( f%gZFx^9%F+Xil-eQ*%^+E@SX?^>bP0l+XkKX=PO1 literal 0 HcmV?d00001 diff --git a/test/reference/pdf-isolated-group.base.rgb24.ref.png b/test/reference/pdf-isolated-group.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8522ccc133eccb72acfedd3d6f355677ddf99f GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*lHO6P!4B5ThS=V|X=#oO#GnO&TB_11s38c&m{8Cn-Z z7Oiv%?p&tT`EKP`iR6jOO85G`F8TrK&;D+fdBT&?fph$AOLKV5>DBjl?( f%gZFx^9%F+Xil-eQ*%^+E@SX?^>bP0l+XkKX=PO1 literal 0 HcmV?d00001 diff --git a/test/reference/pdf-isolated-group.egl.argb32.ref.png b/test/reference/pdf-isolated-group.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2b38bccd63d0d7f34062d7e1ba734449fa6199e8 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*>uKf#(QQ($u`e0kU1DR*vlpr9&EyO!WBnIIc1xEa?5+MHBtG*EDS5S`wD(z{W&p9E&h+Ve$9K}1k{9zOH-C@X-3elHO6P!4B5ThS=V|X=#oO#GnO&TB_11s38c&m{8Cn-Z z7Oiv%?p&tT`EKP`iR6jOO85G`F8TrK&;D+fdBT&?fph$AOLKV5>DBjl?( f%gZFx^9%F+Xil-eQ*%^+E@SX?^>bP0l+XkKX=PO1 literal 0 HcmV?d00001 diff --git a/test/reference/pdf-surface-source.egl.argb32.ref.png b/test/reference/pdf-surface-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..018297208e7e69c63dc671094b4659d2f64f26b6 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHo^*mi1 zLn`LHz3Z5D#6W<-(f7pu>3i-}Ht{#FI9zr&S8|pm$LWf5mghM?FP49BTa-bYA&g-S zLj>anrUcdlTn#7!`)^Cz@Yl^XNS+=acb^4C{zjGjhqPyZVq+hCGJ7)f^UliuYIu#p zFq`$jwdYOGp0@n?yPo~sx({{#>c6)-2&3AMMH89}i?^|7e~CZQW`E$-D>Mgu``xg{ hgb};PU3i-}Ht{#FI9zr&S8|pm$LWf5mghM?FP49BTa-bYA&g-S zLj>anrUcdlTn#7!`)^Cz@Yl^XNS+=acb^4C{zjGjhqPyZVq+hCGJ7)f^UliuYIu#p zFq`$jwdYOGp0@n?yPo~sx({{#>c6)-2&3AMMH89}i?^|7e~CZQW`E$-D>Mgu``xg{ hgb};PUrej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlHgTe~DWM4f_{CVn literal 0 HcmV?d00001 diff --git a/test/reference/pixman-rotate.egl.argb32.ref.png b/test/reference/pixman-rotate.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7ba428db48f2390eb99cdc3e6747cb9cd85c40 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHoZ9QEa zLn`LHy?MH@*+GEy!1gJ|1u^H2c3Mate<~3npK?-$r!_=uvsP*Rwr5Hgcs~440U84X z2Nq{vwVtpYZ7ZwT>tyczxiY`f^O&SV{F=81 zcHPln&gkAMA2D4zl|gj+e8o0{Qw%8%8<(GLP|S1QT)Jf6GiBZ2XJ33WU(Q^=YX7Hw zAAdh}vts_27v#O$q+5gsD_a7Uu46yn5XiQn?tWd~ ztCh3Xt+Qo+qr}{GvLVT6!3-V^HFT!`Y{tj+{5R_6zwf?bztg?=`dhxr^xA7K8?=5vQ}h42>J%^+bgTe~DWM4f_{CVn literal 0 HcmV?d00001 diff --git a/test/reference/pixman-rotate.mask.rgb24.ref.png b/test/reference/pixman-rotate.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..397acbe7e0449c4466707f7f0b2eba0f20f7f568 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt`BJY5_^ zD(1Ysv61(Xfq=ushKO$7O+1rRX68&d`eMa|eL)stkM`dB6dAuRFA}I60{&fj+a&qg z>eaJa`O?qFYk#!Js|N^ZaEP#QF|{6FbMSWIyFafjpUEEO=VD@QY;tg1pa7FbaD8sG mpS|^d&Qo@{5C_cohWGcTonv{YwP(dykdUXVpUXO@geCwWGf(9J literal 0 HcmV?d00001 diff --git a/test/reference/pixman-rotate.rgb24.ref.png b/test/reference/pixman-rotate.rgb24.ref.png index 60d9b1c38b902e76979076dc38275804cc7a2df1..397acbe7e0449c4466707f7f0b2eba0f20f7f568 100644 GIT binary patch delta 9 Qcmeyu_>gge*+kFP02OKkBLDyZ delta 26 icmaFJ_=RzTnE-o`sfH8x&xZl*-8(!Udp*8u=;$_Qrw diff --git a/test/reference/ps-surface-source.egl.argb32.ref.png b/test/reference/ps-surface-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..018297208e7e69c63dc671094b4659d2f64f26b6 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlHo^*mi1 zLn`LHz3Z5D#6W<-(f7pu>3i-}Ht{#FI9zr&S8|pm$LWf5mghM?FP49BTa-bYA&g-S zLj>anrUcdlTn#7!`)^Cz@Yl^XNS+=acb^4C{zjGjhqPyZVq+hCGJ7)f^UliuYIu#p zFq`$jwdYOGp0@n?yPo~sx({{#>c6)-2&3AMMH89}i?^|7e~CZQW`E$-D>Mgu``xg{ hgb};PU3i-}Ht{#FI9zr&S8|pm$LWf5mghM?FP49BTa-bYA&g-S zLj>anrUcdlTn#7!`)^Cz@Yl^XNS+=acb^4C{zjGjhqPyZVq+hCGJ7)f^UliuYIu#p zFq`$jwdYOGp0@n?yPo~sx({{#>c6)-2&3AMMH89}i?^|7e~CZQW`E$-D>Mgu``xg{ hgb};PUrej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH|H*Yfq{9h zr;B4q#hka-4FwN5h`3(#7g1CUny_ioga(l%0V*j44u$7e>dE>(d%t__R<>2!X5Osd z$GA4QwwO`l_P@XE59Ze}EV;>Gb=Qm`bDqPJp9~(G8B2EMGF-B0^!Us;A&vP($!&%u zl}r<#F)N&9yYO-wqsM0!rL*h~vv?O=&SjqPjMHTne}jp%!}8l~3TK5oOyn6d%^Li+ z^E%8@7s#|@xO9%Uz_xRX-&SsiS%N;ZfFw}gTPC2v6P|&{7bUwv_Al89afKdGH$x_f z1eyU->_EJh=WG$bt?IJpzRFGeR=M}tlG0T`Z{&c`+&rlJfKCMa0qnz}CzU&U=J(%~ zf3I0x1x6JGaRLsJ1`~gUOL!x{EU)3UComXe87}oCT#A8&q&P6L8%#hXFv?kh;i+&I zL|%AV#t2M09>pNCWEW5iFn9-|H*Yfq_NM z)5S5QV$R#U8*^_vFtlB?w%U8#V=kwN@1#Ht|0RNtOoKQj4@xRbciJ|AH{(I|*~8_l zZU|h7zkBCTQS@86|E0+P7+F+@j>b$$p=4`+H z_507Kb=Rz}e%C*+UH&!5{|mRlvJ^0xUwBC)-Z%MEb6xkc&ARvvScWioy85}Sb4q9e E07ez@zW@LL literal 0 HcmV?d00001 diff --git a/test/reference/pthread-same-source.mask.argb32.ref.png b/test/reference/pthread-same-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb519d354e001c343b0b9669989e8738a0ee3bb GIT binary patch literal 1000 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm|H*Yfq{9h zr;B4q#hka-4FwN5h`3(#7g1CUny_ioga(l%0V*j44u$7e>dE>(d%t__R<>2!X5Osd z$GA4QwwO`l_P@XE59Ze}EV;>Gb=Qm`bDqPJp9~(G8B2EMGF-B0^!Us;A&vP($!&%u zl}r<#F)N&9yYO-wqsM0!rL*h~vv?O=&SjqPjMHTne}jp%!}8l~3TK5oOyn6d%^Li+ z^E%8@7s#|@xO9%Uz_xRX-&SsiS%N;ZfFw}gTPC2v6P|&{7bUwv_Al89afKdGH$x_f z1eyU->_EJh=WG$bt?IJpzRFGeR=M}tlG0T`Z{&c`+&rlJfKCMa0qnz}CzU&U=J(%~ zf3I0x1x6JGaRLsJ1`~gUOL!x{EU)3UComXe87}oCT#A8&q&P6L8%#hXFv?kh;i+&I zL|%AV#t2M09>pNCWEW5iFn9-|H*Yfq{9h zr;B4q#hka-4FwN5h`3(#7g1CUny_ioga(l%0V*j44u$7e>dE>(d%t__R<>2!X5Osd z$GA4QwwO`l_P@XE59Ze}EV;>Gb=Qm`bDqPJp9~(G8B2EMGF-B0^!Us;A&vP($!&%u zl}r<#F)N&9yYO-wqsM0!rL*h~vv?O=&SjqPjMHTne}jp%!}8l~3TK5oOyn6d%^Li+ z^E%8@7s#|@xO9%Uz_xRX-&SsiS%N;ZfFw}gTPC2v6P|&{7bUwv_Al89afKdGH$x_f z1eyU->_EJh=WG$bt?IJpzRFGeR=M}tlG0T`Z{&c`+&rlJfKCMa0qnz}CzU&U=J(%~ zf3I0x1x6JGaRLsJ1`~gUOL!x{EU)3UComXe87}oCT#A8&q&P6L8%#hXFv?kh;i+&I zL|%AV#t2M09>pNCWEW5iFn9-|H*Yfq{9h zr;B4q#hka-4FwN5h`3(#7g1CUny_ioga(l%0V*j44u$7e>dE>(d%t__R<>2!X5Osd z$GA4QwwO`l_P@XE59Ze}EV;>Gb=Qm`bDqPJp9~(G8B2EMGF-B0^!Us;A&vP($!&%u zl}r<#F)N&9yYO-wqsM0!rL*h~vv?O=&SjqPjMHTne}jp%!}8l~3TK5oOyn6d%^Li+ z^E%8@7s#|@xO9%Uz_xRX-&SsiS%N;ZfFw}gTPC2v6P|&{7bUwv_Al89afKdGH$x_f z1eyU->_EJh=WG$bt?IJpzRFGeR=M}tlG0T`Z{&c`+&rlJfKCMa0qnz}CzU&U=J(%~ zf3I0x1x6JGaRLsJ1`~gUOL!x{EU)3UComXe87}oCT#A8&q&P6L8%#hXFv?kh;i+&I zL|%AV#t2M09>pNCWEW5iFn9-#f`%=|aA?&U&1w{qQA{Njx7aqv_{S&k5o3J*aL!dvpvstAJi9R63q zMTd9j_#3(4H*8}?Icek+^u?#ovZ7a)SM^lw<0177tpDSnPXP48y;qNC)ui=86vM)R)&wjhPTN=+i&Cq z#<2MFidFNE__3%Fz{gcd-XvWxyO|S6R@KZ+z#t!$O%_UK(Ntr)McRTz+vyx^lu*=o z;xS%o%D}*2Ss`-$`gLC3vWA9}#@$u3FEYN{wl?<2C9eTh=SkCn`pWC*B>`y_6%__v zTWuu|+C4ly*Ih+*-ghvMsFQ~+l(f^GBe(;{`{nt)erf&ql<@_Ng}oNjTixz9mDiXn zHXGA+ate1h)(O52zJ5LbbZ0jziX^|xVO|!ImzOs*x3;u=;TTz7S!w&ZoaO4(4~E># zu?hjr#r9uXCMPFHM$}n)$E+*6yKm?0F;*8?3ru9lggy6!cpp-EVCd4B+qil6v&?^d3BTP*70N(b3_h z^R?3BaJ{OeMULM4ebmNuy-w!9li|6m3?plU4z|X4ZzY@Mzl&^qGf}Pa_dMjQ<|}o! zw=YghyU59@Tr|oSt5B~`f8m0LiVC-o5c6ob@5w>?=;(!UOFO$I`8%(!KNTCV_Y{=- zJTvosexCQihi6~D7`fIATZV^+%T$w|J7;BS`RmuOHCImq0|O-`C1c}Dq#RnM(%fc7 zVGRupOv=fIVVt_}n(WA>bdHbrX5P8}TZEL}O`+%6RCd=Vs+^?1 z*Zm~o^lA$|PxBB)Fk)h2Vn3Mbd-5pe3KLU^ovouI4-*p(i;1b}*7@Q#4Fm7{p{IeB ztel)529J)sn%Ayexx#07*A_PtUo$f^bGb4yJY3A@=v|MQm5oi$$B&2~7C!m*_V&jL z=Bov7-rNW)f&mIAIyE)rT3cURTU%bvCnQ9H)Ya8}{gBVqctkp0b9!Sr1hE-`pDb+ zdC2VUgdIH}+3JUQv<0KvAI1W@T$p zq8X!b1va(Fv-6@cf zA_L!cS~vSF5)zV+lbf5|=7~4WM)I}b*hmxi?fdu7D;E_OV*7>A`%pxxHJqM!vcqJc zrKcBsd0SFaa&3@^RwPjTeS7=4XT~feON;_PV|!!SG&Yx-nr=v@`1$!!m-Em%2q!9w z(b(mTJql?x5=eSrY<%?lWo&F58WuJ_kMEkNT`&@F;6vGCI_BfZsiUnOqhKl})$;Z0 zoJB%fA7@2g|AC9d#Kk#=4z4)MzZ4t$>a_FiewGo8_uH{SYBo(?MV^U zh?9|Iq3e3mhE9XE?ID(a$qN>O{+8&-$UDBi5>DPYD%q+GI_c@@Z@%6PA-YDu%fmAV z!+L%Fc+|kxAyk$5#CwxGL_qRGdwW!(YHp0G8#?CkOI~wh7IQQrUSZ*mjc=sk)3}8% zqhnWP^O~Q%Ql?Fnbw zVL;fN7W6ez;)Eh+(rv~Y+5A9lHyb17xto=fli6oseXsIoy%ujCGB+&Oy1UukQ|AZ0?ZejVI{Jx8&t-JnHJ|q6|Jb`q_te zk%NQq)@XrFNS4JsvC`xD`T2u|+j%79o^##bC7!^}vMYFHU^#pi_2ed<6wh*|d~;I$ z_U#)vm%i8B`!jjNp+ukV-@h-+zr8(l2crqj_X+1fODEjvHm@6ORCn**UH;Mil6QGA zS(oXG50P*2wZiCu~e&e8mloja&3mZYyY< z9lD!0%&cdv){PbBKbR!gVyu}ro12?U&@793}!15i|?nY-Gns~v0vys?>s&_ii1>5xh5qLyVmLzjbhwTQ#;qn{pisnSW%3O zjP_R>-M2FIi`vsMr)rWP1j5j4qBc%*WlDAV5O0izPrTT66dw^&c=2^WuRjKI$i7dg zO%^l9&wgS|*|NaT9&A)oQ`7&!Um^S3#)d2}>^S0=VI4^2w<2e)OHXf}nMp0nellME z@SG|eE9<3%iE1Y%RmL?^h3(|DKA$zS)sX`K@y3Hi>d{M2y55;7t8-Ri<#%>=HZ?U7 zQVR%G;7J*>m|I~Z{{H@B!9uPi7KDSgRhf$0%(+tO7vDV=cm+$9#I5|$7@_x;a4#ao@VlluT;~eQCfpgr8Ax$9)Az36!TPX@@#r>uQ5GxtZXbS zEM|wFi#`6;KYsjp-ctL$fofzKil2i9!r4NR(67)}0I_=w>^hKzp@1SXv#AufyE zlo9t(PX(4`_ZB)55{7ph5g%TdWWxS>=l1PS7JQ2Fob}EtFQnU(McDIJJ3FsbOv2EC z{lm+c0(s@}jfJbo*I*YGRB7q=FbD<$=9P~bvzDDjdT+?GGajmL;D#9`JZO(V^J_NT zU&%>*Cd=sLjax8mDJLh_+S(dPCl(qz;G9-n{ZbFzqwc1?0<&2RV^3!%x?gB0UWB%u z-jp-0CLtjqb4ry&r$P*cgS#*77F_ zDFs#4!N(XlStce1oqDZO(z3GXH#9ZJm{Ps`Rr~KasH=~N?M=3hK)lsN{WVh%9lmn1u{j-Ni7vuU3KxEK@Y9;*Gv#~Lk{!8VBZwzoTv2?U z*kSTEH+SXx_o|8YB1NJ~o#!O;aS{qDZLy`3Ey&;GAc zN5{t{{<4`-%L!^B*`s%DIR^;Y%f^!v5|-!Z&rwlX3M3t%g{4FpB|Q4Mc>HU%sPXiq zRxQs9%eB+4@z`}K#q9)6Sv{{JCugakYFa@-fwcQ$gEd5gYowMH+AW+68O6nC5i&fi z&zoixi$ixLWY#yEap;Tr2THJG74EC62S@P7#K-5|d%MsT?<7$9alJP_E;bgXyV$|k zXd4?Fh?&aDctu4IALG!SWyf*h(xO#V(73q#45F^RNhgFG7VfuiS?}$&h7jjuWx0EL z&SzV(WIsM@jrF4}@W|l}d;fr!;d*&-bK}{8fq}1%)&e@}>f~Q+2(3m77o^!Fm86ms zH7YgPg%lj!w+G}3)boa<#zG90u106Qj#(?Pa=HA~Sfxoy@hwd@dVs?sJYX0ZRT_?c{`a*i4^nMg{n1s^0fx8@FuKNfH(K5}&Ykyq59aO>7J3If(x zRz5yHF|lJ)#q~uk zDM%{Q|4Jqylx8N2e2mSG7c_UR-%sX0azYGp)Ia~7NYY{amkjiO_f2iS>j?aNLtNkY zVP6_aKUC=6fCKPM&CYZ?&Y)ePAhHd=aBBed0lFcyIOC58SCVk`K4PH`HALt&r0`O3 zDvR_rhx0%RD#!i%6O_-es9~CWI9lbSslBFvT-7!p_;P1YFuZRYa73&;cslb`iX;F# zUx%EFLAO8swmC)c0Zfy44jpn*(hT)HSoPqEKoE0k)o4q;?R&<~;s0S;+I|x9?N3s= z(BfOKs(ZsDsdjH7N;Sq)6r;L4cg5Yf-rK|kbJcqC9SK58N;*cFl$e+`$+(=F3b85y zc7SRw9|Zya1Tu&GqLfU9m3-Scb9hlvSMQPByrvZ#8Gt+osB_dRA#8XBWxW13c0R*-MakXIK> z`yATjZw|=OJ7m?meIK#lGp=}d>j{6Yb8=FGzoiQIU~NRL$jg|**=cbl&Tw{G8X9(H z<|kocL#sOq*{VgO?QL!6$;b$Zh&o;7A)DKR1+EfuYvI9YraQ)WT)$8EMD6bF9q#XU zCtQ2r?w*ihTcHih;oZXb@82gTCPExgJ2gEzs-dP9osjTES}~5DwuDJ8~wlt&N1AhG8Tm63bwX|MB1P9Ol9;=H; zN{7kk3M;tI1pI80tn=s3YZs6Q_FGoO#>T!6#Va;$!;A4g++C*`5dB^kfNxM@j3uY7 zuTO+fQc@;wFQxj@nL@t)B`GO6xx1r75>HD@%L~hTYgoe|c1|L_0FsUpJ_!i}ZqHk{ z&Jb$GP`AvZk3gthvkuo4NiShrHm{5qb-Pn*KQ}s9M0m+}x_B zY`<@8a6&*zM1+lSadA~&TkYa%l&;)pJoSlS77?NHgh33u_xNB4od>QvV^LfjIp4Xu z!;RYZ_I50eh{(tpmr*@rc746aps$7ebbp?h<>Z|9kF9q4_Q7AjJet?qBk6O{tZKMT zXC8Z!I3G4W#(-;rJgKjbi-)JQxVZm|{q1PK3d>w(3)VJq?Wu%5p!s!ex2wrmug! z?c&1E6fc!NJ0=yjjTj0fosos5@VU0FZK38A2YDFT=@|}Tw+&tP^^FbkZrc(~+j_r+ zYfHsKa)ClS+q$rcsj8}Odw4&1klALOo1brOYpY-HQ87VyhOYV&ecjulqM2GZE~IXI zP;spT@({0uSPdi%(w54~-4EVuEG(3Cbl847tD`dx?X)xxrKK@>1g~H3e!2MkCBK!r zswyeMO`vxFe$Y@}ULM-)mk|07^D*BWPw5n4GQeF`x~it4a<;Y{QlNC=t*tH0OwG`p zgC{*+*-j839|?1FtEeztyf}+pa9d6{;a72C`0+m8r>H@bt1(Up{}%4arhvY+T%8p`Bdk1&-GN^NUf8azYtp=6#n2 zpgLfp1u=8%+J_Ia&AO1QO5!;IE&D#nh^^e=+=9j&xPF*@&F~d{=KcOX4U5NZpvrWoXSv9b73x#rdOZIz5;<} zj&h2EqT-MRA658O4vzItxoXPZh#$SrKH8Ox``r*cWp+UdR!r+8MAH?|m3r-g?4w5q z{iv4;Og4pV?P|v>Ikjo*Frc9p0h=FcFVi45fGwIF*;nLkJo*uaS~(Wa4?(U-q|oTG z!z#xoA`&X?wA34m%Dvlpj7tzXw0iwJZ*Ws#At>McIzK-≫L#gLW_X-bZx{3ue}X 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≫L#gLW_X-bZx{3ue}X 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 ULaU3l&gAabTYMFC~RwB>(^b diff --git a/test/reference/pthread-show-text.base.rgb24.ref.png b/test/reference/pthread-show-text.base.rgb24.ref.png index efa5fe9afc26e578d5350d3681319510cd6dc191..90d0af349a3c9e68303f24f17fe2572752ea9913 100644 GIT binary patch literal 30199 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≫L#gLW_X-bZx{3ue}X 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 ULaU3l&gAabTYMFC~RwB>(^b diff --git a/test/reference/pthread-show-text.mask.argb32.ref.png b/test/reference/pthread-show-text.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..90d0af349a3c9e68303f24f17fe2572752ea9913 GIT binary patch literal 30199 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≫L#gLW_X-bZx{3ue}X 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≫L#gLW_X-bZx{3ue}X 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≫L#gLW_X-bZx{3ue}X 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≫L#gLW_X-bZx{3ue}X z{`8v!t3O;{YLJ{k7V1l1*OspId~3@g>-9a>>`y6(r0-()OU+I#zt-Ez z%B8h6(wTz(sJy3Uz|y{3zNAxQHfwFF*6rlzKp~sw`t`bZ?=)|Rdyfwcqz_v{K?zn$ zczv(mn})Ofp>dPjg5dxPJs(*1rrhX}x~&h?LZ*GM#8y^TmU*=k3>7JZJ9>Jskjjwm z9rC6t#6(1-pK+9Y$GX^_JbsMk=EB3GCwUvkF8SQ%&!5q7vETT}&t~|k!S48`)|QjZTYSt+R6=g!CuV$8bO)wsn2CXeEbI#i%*$eA$}>M zZa=yty%9wD)%9E4A(5}3qWGNgg(vU1?eW?`7Z(@*@rlo$b;B-l&ZDyI*LqC~w{Ktf z++}a5b6yz?AQoT#q#`emi|AH6V(IPf?4UK-R83u744ASVUEM+YKYe=7eOq5&-`3Vv zQ75h0{Zg@v5uC26X;HMO+^&x(qQh;P9PLgtufxNFyN@Sy^Cjt5oz=(0h}D=p>W=C*GQ zCR8r)Kdad}o`~iLv0o)agdV1LK>5V_GO3utTNP$p+qCc;SgIiZ>wYCxo1JY6NhMNj z)>01{|udcX)pC`@kf{Tcw@DeSFh;)9#%`^=BY9(A;k2q@iLMRB_+`m zChH!R85TlpnuV%bD(qnfq*mWlMB8UN`#5+BDK>0IM>NYVq6`_J`c~R&lp^dD%ovM$ zDjekauZrcQrEv>uGfOUyFGIoR+_`i7R6S53;L@wP{I7KF7Ka-Q9oR=xDX{%=UU_tO zt9rAS&vhJU8IhK3+5y86wV7z#`5 z(+pJ9)CYo%YETzxZk8+`DjKkWDx{E>u6Rh$c*z5t!@~W|R^stN*wah0MP1jOlpa0v*Y!GK3V@P2T5THlp3R)JqYAXxdj$WG+*7cnu;vrT9$l;iP^ zqs3>VqN0$q#m3JwX3sJS9~P`c2b(dLLuLi>pG#X*d_O@kE4tzAf7boAk8x4d1(pN{=>s{S5HU@ zY-|cTOr$R5^pPq!C*}9~>fDr*Ylox+R*|1Se|md+576;dpM`&zpEh7|S!D5((TYn< zlA<$4m$d+dTfg@A1A~JTd(3>AjLl6b%%-;M@uQtkjNRf zTwhsvv|3R0;>8P0-cqg!hy-f`wF}~k6`wG(vtvT4@K~S@3UW|FyDRDiIjOahbG~G@ zDuia~4+x>?3AN6H9}CIh9FDa=v!V70)BTS4fr*Yz62wevYu&xQKC_Q;FuNqD6xG{b z44%gofv5{^HVp!`x16_c@rI8#zqCSqdwP1>eMMX0;YCcH$4Bf8zBH`(&V2Nmq8!$n zT++_YeAP5bJ&^Lsxa+h+uqZsBpc37`I2a2vBH{%No%c4B?zo)Ga>a91 zoAyjK1zB>cpfZH8nM;6u=AqAUq@}3H#c4Jgh^?Q5fE_3fU^moBJg5_Cm1g zKr#pkY2L7GX33j3PiPB1awtEiyY3Eggz&|SO{1fNmo8o6;<{sf(_{Wa_{qr$shp;& z$m91Bj*zx?cXz{H4aXZ=$;ilXbaWi^WK>m%HpZ_nU=R=xU}lz2SHZ->YWwhEacQYb zd*_15M5WEgxi}7;{lPx*LxNjXHWOE~`L@N`GY8%bt&rgbDd+G~g(nHvyx13KceLtK zeU+Si^ewLl!Zyfq6teLM36<{LIfWGnSEi&aRn(1BTzq9XR1(Y$e2A~-oTI}0uMAjC zs*|kw<*P|5tEL#1U~Kl#i8O|%j%Dd;QlS$UPXnU2Pu((9-lw6h#P0P86Bl5=DMGG67^$P}G z4r^m2u;SEC^^!aAgjU4189!PpX~%3Gf;!O2wCDGd({v9!D&3K%tQVZBHw}u&E(^IV_HchKEkUdr(42OUl@PnN zB?#Zi$?3|;&$1q~uI_GU4~Z8Oon~bm+U2+`&}6n5D^9PkpE4_RadmBgoD?s}82Wr0 z>x#-GR<0{Tg4eKy(+soRXn*fY&Gp`ix}QHyN*M29h#CfkgkbnZM)pBZOWB#KIA47g zpR2BkuDW<@cel5L@P2XLLCPm4-fii+aC4MkX+q? zpc(440RaJyQ~Qw3d3k$B6+mtsvHi6pdMp}ZK&LF2dyp~nnsrmq(V6Aw6pTPl90TR? zlGm?a7Zvr{o-MLr|HA@QLD6pb)2GWt04WpkdF&~AonUX*%> z`A|kCNIegWp)bvV82710`3A*V_gSV*McCYC7*%pm_&E}}M_;`#Pva;Ar$58i^ z(}Kyozj&32$;r|2xfGPu4A6AEc7`>wp(~jO2?%>nU*CmpeN|N{4DyBG&3AtM5O&)h z!jeDV9ywuMIWjWx>=^-~S!^hI=T4+ zU0sT{-M^s06jgBey)l(BG$P`|D;UrN19vO8(?jUcr$6RpXJhqXes4J3fPh>w3|cF0 zQ!W<}s0#iZEh}!5IN84m&D=PzqpkLm@`eU|?!&G5_J>W0oVUl_X7w?r#O-HqI69U> z&h+zV*t2Ks?Cj1$G((pS3$!cn5ZlJ%-Sl*ZWQ(ea%!~{K+TjrrlnxArgaia>CHHUK zxFIKp!=$LAL#-VFRo&9XVDd1T+I#!tudz=oJ;iGP0_FfVOWihdM*wA8P z$m;cH#>Su{%gV-3k!=k z1qJmEGmzZ|hlHRR9{<{Ln{>dDqaq=B+)YSK?DSgL#H=SVHYNrWA!xmK|NfWlZ{I8t z_x&#+TS5zPzuN~P)`7bk-2v6Z_nhmH4lUpG^19y49B1q;Zp>@2f(n*>i3kYDKApkE zeJ9B_L=vC5@~L&pH8jOdh{mi;7|4h|)Qjut)z|OdC5SZ`R=pjz^gdXKAJ7e6XId)F z&W0Oy_3~v@;$#EqWcBJq)DM}kmDzWXzJ4T$ScaaFd^uDKv{3Q$mD-Y$yWFFYw?3EB z)un-MV!tKX(f2JZGPMRMBtT?$DOWiMvPSt|9~mQ&8xJ3{!nZ*+mw=d0grhsdvI^oo{2kuG^(eM7iGd47A`n%!S zOud8&ope;uK_nb2ka;!+wu+dly1Hbegg%K=8U!A|bLXiV7x_?ulYTPbAYK{tmQxv( zF!dgt1W-^?8u_aIY5aDHRbhS^%oS(KE-bX&nrj1|q*%LP`G(&8`>|>_??@c;AxCh& z%cLCn`TF(R-8khLB@|Ua{w1fzN_Qp#EU?Y(7q1c zueVpZq^4|2R`y^C%Pu+Tnw30&Tj*%*^$V7}@LnY*c5>f_yP!*~PtdwH z(@1}-wWWn3_|e=`Cd6>5H|5Atg&y&P+9YZBm&_cfE`ELTb-EkVdzaHlPcOxAx3W^; zPlvJa;e}%0W?+eOKgH@Qg*4 z*@ckeKL43CXw&Pr&T+*t=<2r`Q@qa0!?$67bMNiOhArPb)Ut05LRm_y%q+cynu-cK zNWway2}(%<3>C1B`By{keTlz?GhMpx%&)a}TgW0=6OI9Ha`@8#cGPKlo1YJ0(qyqw zfLh)~%s9tNGvp#vb8VhHxbS%7BA{6{(vdG%$?*KCE#@D>QU$pnl%{MSJ{+%m#Eax> zl>z=$pi@<-Q$@s<>DP8}%!JAAIJK2M7E_#))Bg9cdbB%ke)rdx){rTvduXeu_>l_Q zO|vJkad8o|pemSyV$HMW8~v)t$rX1g+@%PRW@IPm-O@ zDX>$W`+9p972#S~8iXKfAPv$z=o% z?){^Ki5csd%p9mFr#>-jrLu8?I!WXXG^e;CO&qYe6}ij$Vb(@ zDOo9hqKYfBY(!R|-gR)`0>!{M4h%o2^lQb*Tw@Vmp`)SE)zgvy#k^X^!YXSnUu!;cq1+-c@juPklnHhREs8v3V5O&e@pj}ubooeDq>UsL~ zDa3J512!vrNnbohNg4bS1{;bfgsoGwqEo{#=Ll-1Zqtt-5IlKUq3!A6G3~Jm{L;R=z9T+9GGbOW0rkVOvNC%2S+r(HmAx0kC4i;)_d?VKHya0W zTI|k!`&Po;C;fD}yxQ3mW<=)Y5FiLY0es03=#4vK!gI?~p<}v6T~3M<8;iX>tMhJ+ z>w03dp-SE`cEA_NR3TIMxp4#WRCp5Ouwp@o&p}{B(tKA+0S<3sk_Foh5s}a0OY^Y} zBYvO4#l^)>pYB01z}NQ_{?NOv^c-@LAgN}b4=(ohKnk&t;a&H6FGLdos}3ZFkepgp z3|O$UvKq^=Ifk9f!Xc)EID!ZlcXMYa{K=D#U0vrUo=?AX$ZTwEd`}V=qkOR>lLk^) z=+D7kovpg!TmzFTIhkg6`bo@S)|ix?)sygWLOeWGW-?&JN=ix&4h~AykFmxpZKzA% znRbykY?t+k-yDPn>Ma(+dg3k%J|MK9vpKZ#Om_aYQqtuH;;_ljr7=uQOpU+3Jqf}3r4_aM>aor zbtOxMne4xrcK&yJsVYaKL~vB%;7z$YiW4>?-LAizp(j1;d$cP4UuH+#qsV^uU0uc; zp3^d?G(7DO`n#*zBv=shXh@0G=(E&?DHasL`&Tx+9P^w<#{M-^)dwnW(@^N~&Iwq^ zXG~hd`*Q*xPiHS5pQbRAUHk8XyppH!o8&k+7h5iH$h7N`Pg!*_o)yJ~uGS%-tu&&p z`Bhb;wpC>^$G)oR+f%ihmmtg;Xzf1TEN=E&aP_QIwd6qs<5x6(#I;S;yn*vsJ&0r6X{jDEy>SJ zv7-0au4HeQdNp2ve=l>s|BB{SdP=Wt{$j|G8+Nv z@jS@GuW@ttTMM|kxWK|%QCSK3)=!(LiErywGavBiy|+o^YCQLBp_Z;5mK3O2rr2Kn zl;sUJ7GwSDyS(UID|j30Lth6!Ldmijpd{$2)$14CW8Lxa*45ROlx&`zP16+wih~{& zIFr2kdRTq|1k$eG4<@o@btge<#tV8etWlUK8 zcmoUFeBO;ufguXldQbe}k~8=ieBwvYY88 zssGt4`fl?)o4S1#)asDuQBlpepzgPHHx4FnLp8J*;rFcPv9WC$P2>jNJNKb0`T6a; zcNB_HX~ZgvkBNa&Of|!GPD2Q_GbY3Z1a|kg<^_@pDk}IH88HxYcFq2wA;!^+gz}6G zbdHALz`z(NrnohoZ?U&>%}sGBPtum@F$ioSkDh zyqD8M`~-hkK71(2+YESwrA0MBVsGaYOCV->peo*oBwy?lu z`n|o6ugCirsaSzJ13-YVe+l=qB#xjpV2jq)0 z-|3(QAC&uV_TJObaB_t8G=igCo*02G%&`2;8{FK5#l_I!DdQ6Pt4vSAauaz&`L-I9R)f^E7Iwp3g?H{bC-J35RmLYeagbgX%@*f zRsiUYfzN>{U%b&_N453Chj7EroH+x@lC{pmhYvS?xn_9{7>fwm(g`~TGKxUYh!m;= z3MjNyzr)trnylLea@DM}7cR)X!KE*!!aDWzLTifwTxu7hIr+CkD>OtnFT{U*WJFZ7 zwL4i9a)ua8cMYTa;EqMXZaE8ifHS5yJv}}9d0mI47;b*Su;19^H@~*M+rdTe{an6% z$_0oV64C(+7>LR#A`72z5J=SNRW50_UHAUQS2I~=PCRi9s4}mEAC$aiKv)5)3on># zx%b{e}5WtTMMv7qxm)R{R9F4wQ@YvzXlDO#kB1_jUq>B zXiduVLD&3u?#<3fj&D!azq$iWVOR)m;@^Sj2WnZ}JG3`q6@sjTf`c<&5Yvjh=kEUa z@d$inssPCV^Y%7%UQydSC~3;b{hiir`gF^Lft@0*XAky-DxbO zF2HVoMh3K*a_4ltCs2y8Zo#++3kz%eG!_pqfOdg^h)4~rlx1ZpAsr_Ox~c#?c|HW3w#`}Y?< z^#c<}h`{+W)=1;C!JQ`miB@1CEhCfO#cST1mgEGd?(P~F6H{(CBfdRu!H15Re;S#b zBtQTnr71$v%F5L8H>|6o?w%a@LDA3cuZ}NpY?;m_O4ly1<0;rp1D09fpY!@P4*}c- zqS1g0t=xxu-{l62i@Af1Ub)YmLB;@cZKQ!=Gz+y!OsDnOd)?siDD? zP+w5c^QXgT^%*N4Qew!-=DHyN5!;^)P$q=(GSUQNtKZbXfF7B2ov<+$A6s{=*C$3m z=Rwf=6;|rS#o(ZzFGZ(Nne?cq3n6u0b&Mb(A|yn!d-C{miq{CGK`0jc^@IyQ4MaeF zl0YPaPlT+M%?esTn|`!-Kg<+2eiTxsm2cmqsPS22-`3Vr_drAb*K=ntFE0T8-)sg4 zV?)T;8+XZU=(UnOC@`KF+Cq#aA6^U~q?5n+VM!8Xj(BFL05|=s0X#`w43#ukCC`SR~FJL!KfLM*> z8&RO(VEEPA$!zH0b9x3XOxMkeMc~TX%F15?p7+kLymz%?eD*hu+@RJ$PDYmY9tdFk z#m=s-n|M&QEOfrZz5i0QoXpP`oy5YO2*D?3NBm^M$j^{N^^J9vW(1f3Ayw2w}Y9XMMfN~QQB{FQ{S__b?yGY8nALI6$Ef2V7o9AU>S9JbtgYJ|9d%gw2)JMkXJ zXyt}<7BvWnBSfK(m@%{>gh5&IY)!Em>K8_k9bzL8wCAMy0F2nZ!%(iC2lEZ;gc2Y` zP?sHgytruQdS-cxsF@`_;cf&U8yh~t%E~Ha2|LRWgCRd3Uz&689BoEPNtEwT(F$f} z;I*VhkEz067Zij?w=FnnCeVty7Jm;VmNI2lZYNZ~t1NqG$r>&-jaT;dGuoXPK$Q~f z3|R|c*gcP2#0A9st1IZ5QpGvk^U+QP97`K_KU+aHklX7y$BRZXe{~A0OD3 zOHI3wSxE5WOz++fy;B1Xf%v#M{RXdb+bR%KROjb+FGO!7z)o87Jrq<;W!V}tKxlzO=YFG@=2N|i3p-$C;OvUB>g zXPaJ;UNY4c(QcK(zo{v0AM;!lE{c*e_Z}-0EK?sXQdW9uhNtFLR}1s=4?`nyW=4Xa zKbF_~Tvk<;M!HIIssjvfAcgRP&?D)u5rt&FdGpbN4{F=M3iD9`d^R=^Iyr~A0(>sS z5g6#`&zjHYRUdcWuzs3w{E41eb2np}!-V;gTgh>Uew0gly z*?cUO{S#Ei4;}>g`;+0xsHmt|TU-11H00m+m8`Ux2xhkhDGt~1T3O$7XK0|RD%||u z3X@kP1$35x=w}YRdpLCU>G#%4Rh8@u5Fi&d{9?UwrOl8VDtl0t2FV(%KoKfrqKDN^ zOLOz{u$?Pi9SXv~ko8GVeO>nrBLi$3+u@lgCFo{?`5A~8gZ|%RyZ@a66D#)&~GOZ6|ypfXJdT2~qq9EBXaOU?{`cU3o)*i5ILqZJY= z`(@nzgC-Wal69LTd8MPE1pD?&W9ad|Bcyu4EJzLSza#u1A$051mkCdXfU4M5t1i%9 zGK2?kjYXIy`jysNAT87`AR;F2>+a4kDmpDXuF>j0y;9fKjP_(xMsdI)US{v}58U@e z{?N(t0kjo#2_RRhm{_+aVan9h(PEElr}MnceZ3yVDb(-L9n!zeNozJudE9K|^kK-FMuAf*NxY63|5ZM^^fetQ1;>|Hw-Jzb-2ce6S$? zhXwdYV)~E7^dE`oKN8b_B&PpJO#hLX{v$E{M`HSq#PlDD=|2+Fen(4MCCkI2CpJ=x)qHW z0svjg9(rr*)*fi#fIbp++Yn0Wg|C|IQghCvPq zTy@S6z_#jIS`Sgo@cO@*;r{+vdm-EDIxSF!Q&2qFP3s5(TsS{%*z$_V;>dp}TEVRd z6B83mr2egF9V<41mb?VGN$ULeSOTX~*=H0EKfc}qKbFbKI_vRLKw(k9FnACEFsz&d z&SaP1e2_oDFiIu<*$AW(f6H05*vXyq)62_&Z&iB96I50rW9!!N$+%?y;Gid2xU8_S zcf}brm;h`+%U}IJdb1$=1c3(zax<8Kg^NqhMZ#fD+QXx!u~Fjxm=*@~inHCeYU%6O zv(qEoV8!t-S{OX*fEHdE%9*ehs0u13Zicq@EhUz5oj#N`P?}#*+&y6hc;?&`1eO(_ z4Y{woZyNR_@&mH?zi3$j76ugew{?OSurbzq#Z(d+;0Yot8;k;?_@Hl_ypjYSdmI33 z96z)2^sEKUh?&g&=!rwMZd+TMZ022*lGQSEKvP$@J3{>{Ig>n~N?@o+PD4Wj&+Hu7 zuBw1kz8)-bfU5k{m<=JK?d9HxQ$vs$(oo*^_P+r#7cjZtU&kyOo&plPT7K@!qpR{WQCQ3 zk{6o=rW}XvyJC=M*;WB531$R2pkxL9a(Z3S7Nul;Cpdufmy*>E1#vakf|6Bx=5Hmd zjGP<>NDP|*q_oeN@G~tNpZ4C<+x-|6-q`31&NfrFOrATyzyX8>MlcgqcA_*9V3(4U zoxO!(g#lD=#RCG5U#`YxLIC_+)x+9XH#s6Z3-G8&f(|@tTySuyh^VEU71SJUY zn#IM%Sy@@|PDNE!m&-hG{2=p_t^}!}@E~w35AFbe@F5CF53r3Tpx_23Ejk6ctCxY0!UO0DC16fz1MKFqQ!V;lJ#aK(|&n1;TkSI{Y|F zDQKIVuerJGZWe)^e-ajnoeu`F9nnl+6afNOm^(Z#fxcR^7rM?IesQYIJW@FagTYxu z59kdLu-;A)Id5uE@4+v(4TQ^l3mDCGMuF)fdJ`~i!Ye2n;LaEE@$G`66B9}C@gZa= zH7nlO9Ech&g9uZ{27I&>fw#pfvjegMo4u3qixXNN5NA`n06c?}3H15Fn(x*1M?AL5`62{f=k)*A? z{lT42mcSJY>Y$XZ7w&rB`&UtNAFL`))U~=qkZ(l!LD??_#fA9M*4ol!a(>@3y zM?5nLU{DD)kAuVyiR!}ACQ!Nu@Y7jw{!6qVBO}8ZpO=c64;(1c1hnDQz`)~kApQl- zBm&&-784^KWUqGSWEg_!hD~zBq5&wAV3Ydz z5{9AU|3nM}T%EhHv=lZxWm%zsB8I`hs15A0uQsoNp0)#DQ~VDxJOf&E4zO+k?g|u4 z;2xNtpARH2;CuRi+x~uoi3IyGrXRrLsbX4ctg+w+#DIV-6%@?kHFjX}v$D2^iLzS0 z{Lk4me%;t&;y>A zAj25XM)~b}%PT8irD#*l?~}7$WJ>|}vAI6r(fvhW`-!y3mY8$kTlW;2-Yxmb8IN+J zxO^Gh3gC6+@@24Ei~22N?J+w9SziBd8S4*#8x^u0TLRD2*VkL?ynOj``d`rSD-oAa z#u{)SBJD}IcJnW2xUjI0yc?iimaOM7G17lS!(t77#+|@gIse*zczJkrhch1k7K&p> zm|0l9kY$gqM)7zScPxPmr+kkgx4pEZorph5ToZ>^_|8dTIVq`)*QwNT$E9h`^J=Sx zaTCgu)y(YmZ6h5*0zc z*va8?5(R9iP%cYg_yA*NeR)|E-ca_ zI0Ja`%TyxHZ`i~9RjyO@erOuK%k1ojb&;Fc?(7Df^{KfL5D*fxXEHTr0-)^fCtI zno*Z5X2~yPmZiDCX0HlHIl>@v%2uVMrL70Ec9iq)&6@$>j2Ibd2k?}&wHHVRfCl{d zm-8>EH?VW+z(yU}1Ot`X81Oy?iCX#}=U)j4dX)3;X(hs04Rl<;xW%tleSOKvTDLx( zznpVXLRQdNpoFY7zlE%EXU<(ss{VmE2f-k`Bup5CfLo79Dfbt zhKV^W?$JwwjoD$+3ybZ$o88Izy3^HHaN})vgjv8~hYlbySSPIor~w<+*WVbSwj7p1 zkn>MaKO>-D$F3d=0jU`q3L!2t>mfxU#9$(w-USjpK#0ME0}$fGM3hYA4??W2ql1q? z_>Dq{K}Y>Bgcv@|v@o|Q`no$hhrgq% zD=2gV_P(_MM6SNa%9W~Mun|FK!E9l<6b8s|%h_x6$;##sOCz5?eS#^iqVha7l^ztk zjVDQhb|{!w#ot!1_gYIt1ko(vHI>@vK9PCF62BmvpT;MOawtDzN%LkjKX39Q60nlp zq9XS#A@~BnwQ>U%EBhNFhCHNaA4Ek_h zfF{uTCQU7FIrfUP$iNkkn0x6eXD4q^-vPGQeSh=IY;yqEN4;}iQAHBKsic(~L@o&c z^Qz0Dh5bCdgRA+q2Cj$2$jPa!3gv%z@%2v-5@v3nV^VhS0;%Wl+xyH8pwINL#>2yV z-U4zVhX2_K_|4r+#1L!`{eyHHytGDy^I=%nXF1xL`8Nz(ww>DrD~@ItH@>*b)b&2c z9-s+S&r1< zAsV8hsVQXhxf~`N`VDYNguNSlz~U;)%Zr@=2L=0efooMniba`|x*61(;Mf3h%f*Wqd3Xk`1%6_Xi^6Asqu4~F?(_W@CI%y;qfV}8TtsM%;?Lf_cMlT*I@ZRWm!J$V z)K5gf$v?2lct8j~xyB`F4+vq61jnV$7?!^sm&n7~`ugl31qGm7Ij5|oCGzbNci9Gxuhqs4NZx|dJf?Z>4up(yg25u$#ftJ*X&^_{H z3-MxC?Xg*dC*W-7C=5UG0GQg%%3v@xcF2fLyPDpU&8AbJPIE>0cB(iS%~b!Vpw;6) z1g-GQAO8`w0?Z4r`57W2vpZ*^csOYbjM9S`*e?kw$g{Aqg@uQM2QS2YAdxWpZMOtN z9jrKi`$%+r{5T5+z@R1q?^`ec26L)^831=Jz)zY0tM)$zz~G|tw*l~SKjiV{U@8oB zJ6PlS`=f&aFlYln9{rS&oh9Xlv7E5;vWly#D~M?U6aDQ!14hbg^&~9Ww@QMhN1nq( zr=kMaHwb+|Q4gW5X~8f2QpW`aaMk{?;I%SRpcCZ`5d9x^*rQ$_*x?-yV244s_lF$@ z=^C*6;08}k03OcgDJfsZ#=-x| zZ-fk{0y+%VAPIaARUrY;E{KST0P61mmZpE3Elq*h zQh^=HZ0Y;AZ!IDqOhxyDz@wNKOwZ-3<@zNgAZDc?z|K~E$W0*|NtXi7&s(XfV9Ms| zS~+nTHK`6O2kZ~>&HtmYdyj{5&*K38I7Qh+vlwMtji@tDcoUkdkF1k^3D5k4n zr;>D(kV6y>^3rix3{p9*5o|fT+fOcJ!E&dnk#P{-<&AW6uPwaM?4dRp4SN^Y#{|$gO7Hi85TRaKiVud8$UyF+N z-TEDvUQaHUkz?oNR2PYCjM~{8%)Q}x85!CP2Dijd3Sr$h9)Qz2+*-|320}X7m{?bTYr$kvWcON4aK#8JJEIMfxl(N zY8Xo+PTp&{$k=TatTSA`-0X%e*o~;lyfg2QTqx~W?=qLnh5%CMBO#8I(DG*MvAf6sV&IkHKK^+Jq)mbVqv9ig?t}ya zi@q7&aYG+`LHtk3Dk#jOka`0Gj9i4J5Hgl|IMc*LjUd4I72~FQQf>kS7@)|NxEIg_ z8j+FZWdnbQ1Sw4+cQxTf7mneGl|)7nH8F}-GxoC88waf7Qu0c77|hZ>FiTkPp%29- z4PI7ASQrXp+(mnT)#PF(nnMY&8NtI`0x}C-ot+dzODouP$y){&UY0^whJQc+&=K}` z=)-vA{-aG=l>S;ITQ^<%t#l!l9$h5V>Y9(6)P`Cht1(fVQ?|SDQ_Q_6z4)5Bso4Hm zX+uoDIe@X2Ku}AKJebi2`ueg*3hXnsIhMSOJIP7VFiY_IsDlyH8so--1?jhL3GFkm zc7&*phwFE@)$eKS=?>U~#ZxO%bJQK6dlCnjET^QB5oF29c_;R1$vM2)+4*atioAfi z*I@;N`;rKNOzoNr)yeAvu;iBV+aC*qHKEvZ(2+U~MRcG;dK?^3HX$vks#fXr zW82-k0ZR6awDi2_tjalgSy|d++c`rsR*h`hFZD zZ{A85+8s4$L2AdZ=Z}0-!x*d_ZNK?Rapjg?1f*K3s;h^e7HGT-r8nF=@g4&2QZY%R z@=*Vhg8<>%P2Zn7mCwC}wixw5gniA-$C95g$0XDeS!2QI)wto9iEnKM<{2HP!Xs3nA7CaEQ}_U9}CsHODGX=({s6XffOe4k!ZU46%`!`}ha5{|j` zgjzzVt=ApTMf{4rI*pgLcFD*sMu3($o?`L-Yz~SV@?09&tj&HK*3qzg(GUZ(nnf)!&~37vW&)#>*P+E=BqOr+!E>^l z28`m*-5QqRdU6dWxotm zaisj9QO-@{w-*~Dd*@@ZK#{List2KhDjB`>p#atrqHj~yQYYfGZIV8(Sot>g*Nc>t zG%-3nKFVTjlq%Q~tA}K(Ho9$k5GR-RL!Lx45d+9%vem}MrYEK$b1K;i^H-8=jqrB{ zY5cC1BwN$#tTAQ};X(*(#W}a>(GRzAR2KxnH_@iXu%{BQu;+ljj*eB}nQQ3i$nSH6 z6xNy$Fi)X8Hy2|a&g|4W)M8NVR3TP`q*Lw1X=w@yz=2cFg<(IwtDCpZd+gDdA$zKx zW)2wEiphE!?EK|QQAu>~?mcL_XuV>%fE+H>BODdQf0p%wll-eWl-tCoGyaC&!yd!E z;-!(#VzHL;u{9?svB2)XSWC4=Iv=gFxy!G}7il;>SN;H}jg&raE z7#tMT(Boa(f$5oA@Al}&NL5Q=y0+?i+J zUly#04`l@zQzY#z;DFHp zsdVVB*G|$07h!w(DZV`e`0?4Z-!}I(y5?hANnoiZmEI@GM4vqbL*x@YvZ)?V$RR%k z6zeWB?5ow2GwBn=$3KjzDvGQ8_{Lcl5kWSw567m!rOvWoBzRxXfJ+$FTpF&UL`#Lj zM+sFIU$gSAT?-`OlHpQ$k4|yMx$~ECHsQ3|R0;XGFengyjkF(78~pdB5)L>jYPEZ} zmGF8KU#5+*tcJ#}m|xjn8;R|o^$=&y#L@0UPC18ycc&}QE~x4AKtWB+Lw%QeP3l>} z@g!F0ft}!tA(vmh+Kn^bCha}GVqWV)wiT)!vaPQhGiPU8Tl%r?wI}vB?kOw z*oER1?Z8uF0lQ;Vq-j_rtUFVGBo~!ex(-5?zP=p^wiXu)5NvJegP?s8bkKCL6)&b! zzULs)|Aktjhf4qc&rEG??7w$i-_pV7N46yD=5tuSzP?E2-%L+GX_QEy5|Icm?38C! z)8K~yn?RLd4T@m*j@E4n>_~xNU~n+vzouHzJcm?kOFy=&NVS5AjF?Wfy5@H>EB9kz zVh~?*RQ=6{td&vLJ9ljweVR+&{4u#HE9}DS@tH%u1&6R$4sTI8xkt9Tx#|6zvxMyw zpMO)r`X!+nti||dd7T|V7_xG9zZa9X;fAJ5*v%UCMM~nfh4dz6tA%UzPaF7YsgjX ztS;|V^;#A!=7Cnl0GZi{ejL!zo4uFOMfr!dei z@2&g({l3pR&vVvU>pB0Nb-M0#@3dEYv#;xOy+7~Q`!$HvP*WhlrNTuZ5CpdrWwj6p zl*jPD1~w`@bA`W+3;w{gP*#vdoFV_qZ7EJfAm|XcWN&JFXKrQrs~C>|YNyRzF4BI( za!KAyHpLvXE?52t4U2T?vPEX)rI=_Y%Nt=bHax^xOa-^E5>jwwbgTBh(vjm;Am|g| zC8cnbXH;a#c)wEAhmOvO?{im=$oIm@Cf{2JHTx2WMbtKGtFP4=Q*DwZmuq{^Khwq00qsje+RwsOCjMvr0_fO^{tSG6BMkCpn z-84h2Z~A34|JaFOeP5e(v!P~n!`rXL-`AIFb8Dua2=OE_af7nCxw%X1s*H?`Z;OPe zs3;SYJZEap+qYJ>wwnjO)zj?Vl%?b8iHXa*KBP|9GX_#pQo=kuw?B?gOn7cil=Y=@ zk&~07wJXs2uY7D>xzK7u9&dTEPlEte-f!~04)evaOGY!rp~{BYYvEsgaFI;+DL0g@qm_=1YK7Ijc%hW1u{*xR*)h4bbl=f}^2N>eh_52$U#u*e9y$D~ak<;6 z72Tz!shKynvHMQ0cuYrITc4e*#Hqi(|LFLb!Emy|)K>9u*Ax zr(cEAi$6ROLWq6u=Z)Ea6HZjX-q_fvTbfK?YfuJXDdv@z$88hU9gQk;MedpAmPwrM z-)5h!cc!)V+~R-*&3wN(kY7+xPg{FsaWPM~bY^Cz_}R0E#~Z~fD^>_ab#+>5>O}hl z^^X%1VPvMKr>Agbe0_awY;551MQQ1(t1!ab+gmaAPO(~+bluYOGG%^4gV0uFPR{(+ z7Q6BBhui8X4lDe8d?7ZEIyyS={rk7J99>*)AXrFofB2HsO^uE+bO!{b^bZa7jDG%X zGq|N!ZbXmbP*mx7*k0?>G&?<=mYiJcxowcFRO|Eovt>`*-d&M`ZOYB|Q-X=h3YHB|D9F~}vSgKnl-Ldm| zAVbLC&JMdPDg25rwy-516=kCp&-B~3=q)v9ScG(|QBk-k1>uA=()PYB*%do*!7Wb6 z?QV(jVg%03nG9|P2L~UTw7X`w>Bn4^j`3~cVph*qQBkSUXEzNvJ!o%lfAF=%>-Wje zNz;JY)i9xWBOKb-JZUPl50B^(q-126=;#aXu$uKud@vA$nZnCYu1YGzUpZZlmqgHU zadC-=q|@t^j@!NPI6XcnP>7G>5}>0)h)XuKDk_X{pk zRaO1|{kuV#z>OP^O+MB-Ob&-19eJY^=tmt)hlGYkR$wsin}u|{J4(yQq}o|CF1hm= zKctxBZ2OKGe6w`?g*IEVQqj1*Y-_;T!&-ybP81m|Q$ix5zSVE=cE|Y} zOG_47T2D%M;+|3u6bG--Y&A}CwVgbY74_OlvP!reg{A-t-?se656{Bfu?=*#PRug- zjx)*D!1VgOyu9k_i?@=M7+W!hB!00Y{7&|IV)6wXrvj6Nhd9lKcL@*{78Vo?B}7?) z5_9SZM8?49%8*qb{Y+kF)=5{%?~X&)j@T$F`)%BGb#)cb4_)09sfv8T;pu8yO@`wy z-QS6WJK9~?nVD_JU+9dFk6%4MbaZrh(j0&N*v<@v`c*I@Bq8zpTOU{T^=PgUq1Eak z2}@GfA6s|yJb1VV`ic{uK8+ZKd!I7DxA)dHB^8zPPo|(F==5o!-&!Ce0aX+in^!;} zj8NUz$0yGqmqrSzK}iW~RQ|46acymK{_~BEyQZe5>gq#nzmKCeNez_H5IDin$H!eqIj60Z?nB-70ZuXSeGP$f>QP^welV!a4 zGYysx_Wb^WxJPIcySuwz#!Hu%mN3r`KB@uuYj}A0Pd}+&3h;S_R`+^nu>u9>ywQp& z@WWza@b@V>=0}T2<&u+<5Z6EDlC?7)9v5J~3v{f<^p(OVePWJ_Ma zF4AJ{Whnk&&VC^RmGGt^I>P1T=>C_%-v++EB2RXvtFdlHM@O?p9mDBEp<`u@G$xFD zaos#bPLju-Crzk2J|<@PYm#Dta)+?n6W7Mi2^SjNpARYCy?Zw@Huj#qefracYfde!(RlkRd3$BfvrT-!ruPN z##r%)?S~D@(hR0V97K%)$D8X23JQvaQqkFaHA>Qw0})Sia=gxWmm~K_j~;0pfBKYJ z%I>Q4bq+f^|9MlBNRrq0&jX}#)>c;SSqpNS+HP*VPvm7~HAsubHW0aWbt%S#Bq)>U zX=)A**R}cv2W=t>CHhg1_l-NF$+=u@dM=vi9WaIq*{W%kUm~y6($Z=@`~ASr=jXRo z=4|iIJo=iR{locyg1)LMZbU>>)YA73o9evcs^;d5{O53&Ru>jtV_-ntaTJDyotv9G zQ}2A$zp!6OUWlI`1HqOYwRmYao|M8Xl*^2Rle6hXV&n#{p9r;}lk5i6-SSuOSi7on zTUxSs$xYr^D4>LYdhK(u?3(X`2WLOma_qXpi#4GHcuOw6Prm;9_wN`EIedvGkM&`C z6gOJGT@tw;Yfmwx+6r z^I2L<+H8leynLxuf?U`iyZx9{IGqz4*4ie#EF;HZ_T5!fk^) zcOpsf@bHA)w&z-?S+#X_qYlx7P5o{vqa0noQ04#2^P2xkf&zjLHu~xd)ze$MmnUGa zMk5kKAaFw;i5nyx-@sd+aTM4;jXGHr+Zdc0SmEOq5_}l_ee=ey?uN%y->q-OYhm)3Aufaktub=@QuJA2{{I(I6_FW}7A^COkGL%s1B8S;Y0Eq}o4xNE)~IuuCqJQop6D zdb-p6^{rK*>F3qepd^0w5Q8$zz=(*5^mMAEN3BtKxVTpy9+@{WedM!pkDfGnK;TU_ z`;(ogu%Ms-PWJtmK~2?zot(w_`3!t~Nqetxu0Fetz5e?2#|(llwU6>mduV7VbU`TX z_45y}_cG+v)Ye{7{j}ohfZ_4eNSSlegLp4-+{ zrokdB@_E>N&m$>4+6!&-UBXpXR#p=e6LWKOg}BS+SnR&?Uk0)9XxiP@bEMuEDW~Qa z6a*YChEGpVx3;!IFZSt^(O}HJa!GRtHs8gBUMugJD_M!?CqT7;1HPc-Lg3Xm1lE+6UWY?WOzg%Dm*wu*udTm0=W)`ZWryxJ z;<9<<20DYNlAfNPiOH2FR;3~y0fD-Ph9jt%soLojhGfx2uU=^tkI5-0K)(U!{oYKS z@Sy_%KH(Ly2=*&NE`c1UD~all_ZK>XEtGgO2CS{E-6cIljPKk@dpG}v#OdCx_va1L z&RmOO!3cEpVWFW=?EMbL^-$$TzW+EpWM*Xi`RkWMtw918{;d~T7d=SJ*?)FvBH>!Y zKywH>YLFBvS&)>w>6W0(qVU%Y62YsSR)>wR2 z^(qOugm=fC`9FT3+tQsp9Z$1AQ9HDUScjprKkB2Sk94W0zb*Z!@4{~^=DoA8vUIyQ zQ76QsvB=fdFX#%%7gSYN-r(d^<4jeMm;b!70=MVsq}nXUyEBrxkX)O^=WBi-_1)Pp>n`%eU4U=dGT->E%`b z)Yi(*PO)Or*47qq<-65yPoF*oT+m{|^(`l-OxHn8E$+>lWnIgPx(` z40QOMrmaRsM)(L?|NR7qUr%I?(v8L9RM}r(JdF?IaEV@B8`y_&U!v zc`SB@hJ>KkaV*y56TMVYR;C<%@q#T>xtyO-=JE{lX@0Uf$)+&1gqJa#{4-8yg+jnL_s;(bLe<9>R^W zxAzm4|HcMvru_VuR!8ml2nYyTT3X;Hgh%+ADi$+R;NHi#l+~4TX(~SeAdJe<(9mqz z5ZjeP15shzOm=JX<(=xv%JzxKsHi8TcqwsipB38;8XNAmH+k;?v}}DoVh3Pa&~d5~ zHiz5AYQlQyfpGbe*rL7b_+WG9<45!t?Y$`+h8jPGUGWyEej z@6e4=B3g-Q(OZt^S$QRrN4f z$$YzwIsp|{Q!@ctRD&`nXXl*sbbyvQP%}{I#Krv`9aUb)N!&Fwq&Dz7I6QK)$SX&)x|MhCQJ?wUr5Kn z#KPj;=Z2>NWFm4kSf)1bOj#%^M^l_(81P6+(kf?UWC&NAHoAtQzfA6YHH$Xcx#0=R zPgi#W@RAPOIAFqf8qx0JjT*UPG%|x$0(^X!z`TvrExn{FSm!j$HV%EUMOAK9a(w&{ zAS{YIDoly>^@0dlIk{Wu)M{#KuhZ3F;_&~u}d}%d|R7{2ndkKoN=$86amega5WJj;oJk1zI%h_+;Q04 zUp87Z#e8_UxkoIj{7w%h0rGxrIh_0XeGQPNM=JG_m@A{-?t3d9f7sU$8v6Pa7cK;j z!D=?~S-pfn_BP6KCzr*2_v0mhBLZK)e!aeK7p7gNTTn7_usIojMVzg5DlibSZ+4q> zd}=CUELQ$1LhN*ZY^Ls>4C}n#cY+icGYt$4In;h^ZiOvglaz*78W)*sCG?|( zS9E3@?g#UxPCLruZn4nyPfbyXh;6K{hS~>tBA^byM201*GdOEvLN_Y^S#dG6qR>5@ z9dB~UYud3AAg21Z-Py_Tv=aMPExvFD2L28vl87kEydFs^2j$IIkNmDX>p5&G(hWA3 zkI|_^y}J6T(Jfy5$5ZJ%jneV`S(XJNeZX3!dKGce(bNE|C@6;Q_~5Tsu3Y*29c7yq zKJRi;4{g9@#GLmsL8iqG3LYMwVcQx%^IXFc>-(zEZNCve z@%#3Z>k7AVkh(&N_M@vwN=4VAGqu92r08&k(C-l=+V_@wN<@D-!0oQs1i;}M;GSnJ zU*Pni2Lf2~6c&0>9zslZ`tEtJ)l$C%507-)ZH8D*jB~(}t{}ZInkR9!sHlh$8i|sU zyA~EpCqKXA;NZl@#u5_1vbl&D%n}Xfgv|^&Rf!+Ms>vsYE{ikZ*R~*EH_SCmjf`X? zOG-+L)pO)?G>dItI;E>HA%^X1@hcE!W@dpEJMQ%(Y&fTUS1lesoIBrL7RGRJaiurh z+}x0etmVN~_NaV73L0|*8G^S-lM@n9ydIIuX$}kwC{hs<-_%S}D@F_a_|d>qSP|Xm zqLoNlS(ze-sAvZL6C`#S^TOdWdHpVpM%~+ZJoWNYrtqysU88oTTep6~_PV#a+LxN+ zy@V4UHhg7lKHw~tv!}ZoLC3}xHH4Kh5SHD&v*Q$%Kj-&-;K`FG5fRu8)vK_up)Yfq zZ;jng;8~_v{P2Mk@m!lNOs`#1%k0yo*1+0^hV>U}OwX?GZa98wATEM&K=XTsV$z;R zFtr&p@+OF;!MN=D{j+M#llATGQ<%x-Q_^P3LkU!H>rK7DI<3HxVWR62ZUv)OC4vd8gskbnfP1sLRxPlT08~vbkzfJWUH+|T3iNtmh=c7qG z%`b1*bDgWFhYzoR3;$jyYAKjF_I6>xOi3w9I!{qqd6{}Hswc0pXpO|s32sPPSy{L% z>oheq7FJi~W^pbXl-1?sE%vAJ5|+KXv<~g=6Yj^0eTr>KBAxjxFge8w&A=n)6gyro zAeDpjhSCnBdPz}HYD!8#Cy~jwwX_0j^#e`5E@YB?qqJ5$+?mBgUNHXWtNWQU2Bt=BZLOkh zB=f9X6UWPVK`E5n!om>xu5g=Byqh%C2`MQ|quk+y%3qqExbB4^5Z-H9UfBL23-(30;WP`*P{JKp%U`lhjIraFQ&x1 zHa6W>JRGZqqL}ym&7cw3(5m5$DDvBkKd*n<4hX1arha>JFs9qu+8Qs_V{B1o8NFxj z-(A7KvbJX0#A%ji)lQyES~o6>7FBzY#*%!$g;o33K87{r$ngK`4va z+1cbK-t^+)S=E`3A74OV6A)Y~C!fjRRV5y-ns)qk_%*fHN~vhn?8c{t`{R4`dH1;k(~|qYt3-S{Du4X?{}_FZU2Cp)J;ThMv5y3Gl#1N z_w8|O8ogHmYCn2}sx|=R#_L)(4Qz=$te1_C6hj==WN9#5HCfE^aD-*$DeS79n>TNdHwUfka1NbKD`N{H()Q&dwU#6=!TYHBvG5$vCqP)Ezl%U`~H z2~`1x>#@{=t$U1zK0fQuSd!mQO-(_s2sP7K>#l|4 z9rl#>@0GID$Z2ReQv2Y%*Wa7@{HcQfhLHCz-7D{fc9gpPM0JUqqrq52QLF=w0;$Q# zBc~rW+yP@U1Q01V)H1T3H%JXoOkk7W+@vNWOG!xB8`m?%A(b1NnV-)|N?Q5)wF0P! z)*IJKJk>sEHoRIPSHJ;$xFGPAgajKM^?x5u{-G=X!JzMcJ759)q`tbV@S5U>dZ$n- z9ul|eQf-Cb`Qj{fKP>pca(Ll6lpU0b58jvB*iFUGdWV60lj{U0!%=C1vqdDj>{cUL z|4oGkso>!Bpr$Hu zjv8I-fbj#bx1_5d2kDGHesdRVos$q3kM)3Rj)my$?cI-=ot?GFPJs5i#Uv*yi{|3R ztEqjK78b9ns}Foz-UU3YGbj@l7ADM5SgdrWU4M?CQ71`jf2Bl zvGm0YQd|sEjvW%e0nRHuOeuL(=rKp-%jdgvL!CNaDib@fT9+O$47PTW6j-*w*8%CFyI1!ph)iF?p~Q8msH=talrLWZV0ymN{LMs}p?a3cs?l9ksLn`ifkwVL zS>f#9aPc`Rvtga%&1v|VDDz)gC(|ALs|9$)V{`bitPHhold^qcIXpFal%2S2v?X)%TZx;Kl9pBr?J)p2^C}0yF_cuuh3K;6n)* zq2xRpBg-PxxBCf{or|k02{Qm|zS*fJk5X;uk%1}d)|HTufVF991%uPMxjDpzOP3h$ zItd92H`vVhPkfByW!4PPJt z3ZG4G{`?}r$A?7eDQ|giBcQQc?UxV|^8Sj!UN0QpCB*RddGRmTZ!5iT-^xaJeLI*m zCBnyleK_}EZ72r_%}HaYi0|)`cRQ{p_U^+ThbjdVRw*fj+Tq@w&uX$BVgdRbPT_BE z`|Bf;zmL!mFxr4oE2S22h|dgwR+seMe|}_vhKf2Itg5MPX?aymkSZ3j3j+h^nL2_Z zXkZ2PKYsYYCn*U96d>+Kk#Vypfqz7NJo$~NBK;gyef_6L1}@S>@^&gcOniLqk-EAJ zY6@ek;fvefM4fL?)EJa06#>#TDEk3}THB-Gs+n!r9ra4bSuWpj-(B6^tu*3{kB=|r zO6TO{WMX7&{IV0#IN~SbJ=c*PeF}7zVvXCH+AT8SA|V%dcXyZ1_Rh`0#^|RQ&2_sNU`@V&WNidI~V`2(}=6)Dw zefbm}Q912MsH~qI-i74DI1YJ-eyBXEc!bjDC}3-C4MQe4tgNkZ_St;Vvcw;dG3Hk| ziP3UX;N$nWy1MF?8R!@riv!Z);nC93VNC3;bDkf((_m5oXAeL#P_I1AuZ~D!Z%h2z z;+3Zdr0Rhrz+U@_L`Fukzz`slK0Py2HXp7k@{@UMdn|Vo48oL`lC`oR@P?(O<@#=6 zYAX2)jE^W#6SC9O^I33-JfYQNjY`kX{sDdI{{9Kj7!-1OMSKV|uKKYmeRf4v&eZ6V zW(4Xnk;D;Qifj2bEmF{IY#19Cjub5*Axw$^K^P^s?lf*p60m#XKc*~kL#4}f$Gi#x zCCvzkh$>84L^wH}0AiV$NfnH|G--jc{!_qb0oumKvA3@ToZLrvFUJbHM0J?K3|=Z{ zvlBV{pTR4@S1okLKt^omUQonM?1flcBKivJ^yVmCY)*VBFrbr7XPJ=D^3GjY2 z-Kaq<3m0nS5Qv_5+Txw9ilXA;s~Z3!9@jK9Jk5U&r;h{yz-elA;dv8@y#D^x0;a@B z-e2$DVV|l+@->m3gBOP@I6=zc$1%V?q(D;vr323G_q8FI_45e`i0~no4MNCk=W>&y zy*(;SSi~e~hoj`7<7ztDuAd*K5ET>iyMLdU5nh=s;ZNl+pOszJbeAU$Ayqog^BOfU zC3-$^xFPdOvKNhKIc14kUBF93wF`az(6CQv;Cb|V59&w$oL34o?%gbYa z!ZCqyx1iwFyRx$Aa+AQTXiDqtLV+RZFi373c3{!c@dp`8CuHNTPfku+Zj@HEzE3-S8+mb1?n3eT z9ETH6U%r5wg#`x7qBXciW~`PDm?Y5(xk0}e}N{FfhTL)}p<}2RO4kqrz%&Mqe1bqoGS-7DL92~LE-q){$ ze@@9(c5H?Z5``4Vz!MAAX5Ey|^o{)r*(xzYHME7u%H84n5?71w$Ub3n5zKa?a zv5@68=d;te=D9V6f&lfH1E`+rooG@38jiYQprfm(s@^Hn4ToZ~pY-9w2OyQyROFAX zfkRTf^G5plxIF?m%;zN~H(A$98*+0OV0(JzkgqBuU+=wLI~iy@k~PF2BO)U5LW6~( zhw8cLCi|8v8yg$2bd*CGH$WK{I5^|nMu2c_%;d&5($}AYjtJrRYrFml`?p($hK3_= zq1*v!m7(%1EsZjoI;}}cUBRR<8a!CPqVVNH#cFJ{C;3y zwIAjRP0A5cyu@iLVfEW1!nYPg24dp)0sqIskTNdriiDp&Q=<6U$@i@$>>7lj{S68b zwvCRB0ow{q5QyGPyca|F_uU6wL7ai0VB{Y5V0XjX!T-0KY|#?m5HRaMVfUXMv*1<1VZ>cUC21Sy|`1Epk0pe73` z%pYRxx=L7wKQAS(t*rs!EW{5Zm%WJ>QuIe}X)8bDG7y&|Nx64&d4Zu!EBHkKE|ZmD z#!;+Q0))fVZRx@oWd#R)J4)qC@Kt1T#M%V-Mx(7j`1MdoV5FGGD z=wUW706w0ynBQ@mZ{LR0*Vn5sy;)We!3?GcD8O=l2n(m}p;o#?<0&>bHNATEs`Jeo z=t6+6JpvT_Eh`t=chhQ{*muM!Pu1vN6}WqNtgf!+W#ntK!5#{OYp9uCw~8XGtgG}v znFpMtyL%1v8*y=Sb@wvd+9ui;fV6zK6oiH~HL5Q06a5y^6)~1)eAUxNy1Md*w~NQ1 zibS4>voB7h6hd{kv|NT_!cP@jQQ@qwuP-m(t!L`bs6i_391suy0<5;SHlQVbc0Mjd za=wf2pO{`|1bQ%d=C!gSh+F>$l=%4nAyfIkei7ZT3L1DVLNcxY z{6IX6*Vr${Z1lENVXElc07`AZCwYSHMGen4;4cQaker>Vp`+4XGn=jUc3BJ|G!F%t z9*9Li`~;!`s9wOh04Er*{bBae3D=@HA)yqipg~MrDSOjIiebCgg&JU!R(ca*CIFXT zAS0I3!fM5#6iPSn{-7ePl7q?d*S53P;%9)A}OMd>Ms;js(26XNhko zIfw?k-0d6NJM#Utzt1-@4Z=ypHD=~9UQaKtXdihfy!*cXpaoG;iGj-<8QD8HII(%a zaQ1T=D6*9mA-^l3Gw*Gx;X9dUK}QRB0I-Xj-&Xs&y1Ed%BMP*QbzH(B71LeIQ*U{+ zg9C}@J&b@UaL1VZad&YvW$owUgDdMO*LiqI5J27h{<%h*xqicJdiw{6Hee|Xe!GM# zXKb7`>qP$JMP=o1Pfs!Yv*zYs0LI8UjX)x2Hbdfc{kZ)_O-&Mg*^3uiETn$54a&Rx z&EA(Y^uz2g+*oRkJKv=jK1y&HrB?#OrLC>K?k*zcI8-Z7Aq4iD#!*gduz zd#0Mnjc1tDYXtz|s_}=Bkq#%apgL$EegOZL;69Mf4;R-l3wn-QRc0GPwsFAIMQ32X z1npHTC}gQ(0ayn>qYc_$agQ%aZbdkXP@Mr=5E;ERZEGznQ_aQAbew*LVGTc%ZN&Tc z?_CxFcA6{3(@GK|hQz+(Up?Jje8Zybz!|j=#G@1v>Alkn5iPH>*`EVwDyuF`~fBEs_2b8~@hsUhK!juRofH09SG+0Tj ztF6uJ(hCSUOHYT+IU7h!c>MCkzR`#f0jN~Va-!sR@#8X(QHHT_auPmRT3Zto6;)1^ zIQVe8oyrHO-n=w3(8bEo^1=}K@@0Ia!l@-Yl%uYuCIZP1g1D=yrm-=N_gC_DJs@~l z*=NLEI5M5QJUwl!t;>v?b&Is_&At8!BNV@MHA8n1v%J+A7?y#EG1IQrV8q=LHdieU zS0xTIJSxMVM@L4@p0NpCRy?3aLX*+4f_f5DWm zg}n09=gVZv5f=)wclvr0nSlc3AnOB3toV%^yK@h|W=RJ82BhiLNI!U0uM?|6g=q}- zHEaajqA*_;nuP&IvYrV_AoMm3EANIz3KY(cmWhxu!RWX+8%5v{)9ry)KV2UwSc)dV z#+D)ykkbV2M`+fL549bJ1TFVw1d_fD2+o_`y?uM^A?2}JcWXbwpf+=nsN1Rj zE9{6sqPnyXccelK>Dnj;Q-fB!CIA*N2Yk_d^|Soz> zjYq-fhZgwsDFrn2GR(QqBO}^Dt;25abA=4aht+->5}V=0X~o54ub$3KPQC>FCJD)t za}m{{gN`D+D`zw6rq{o4%`U~eCl&muN;_ujoC7LbsCgdTou>^smH7Nnsm zqlmzkPij3DRdoD~Mx4)fP_fq~j~0UU-#0!{)J&RnD)#b7kWYPd4qNQ`DQw>ATVKDS z1t;}z$}*mn6t~tubv_pLcObu**lXW|FEDlvLLMlw^40Ly#YJ<#WWO~%JowdoKy{3= z5Gy#>&I%2{)vIX!@_qI0ta6%+jEwELg3mErdO>Z8x*e=GzkhJR{prmRbI#ck@z|v! z_ar4oA?XrrCE)!$DDcqp17(KEP!N|TA7(aHx20rf#}xu_xH$>~@2LFNlW)ohMI|MR z)Zl_IN)+ZJ@i9Ox4sOBJe_xbwbY05@Nj#VPTtnxi`NFGZU|?WjX$eFn6BE;5j%3c` z$HP-o>%+tF2~ie+s$G9oQi6k=svP-AU8jOBYyBI@>|`vrU?ASrC6@%UGT-CehPw#jd0CltYOriO|IKG(A3sKYfRQRC zXtk>YCHzx&VHlV>y%#d6ENm8*b(rcZ(z5c#5v!@Hq68`xS$Jcd zT*c@%Uc}Rfmh0TsftoYe9ZRk03*!K!)b~ESowM^=f9Pc8lx90UAZ6L>kuW-g`7Cq# z-s0U4CnsWa>J6@|QEhFKmdeDz@lG@%?uzZ7uxR}PKcIW!$oX>Sf^a*&sG{|l&GyGd zW;G%5o0;9`T4r`L%Gho=Z7n8WhuK_$iekzr5!g^os4b@CU{Hv1?|`^P>C4(0^8%)U zOidiRc6ScweGjwjjK!|#7<+3PMOnwCo_4QJ1HbDPZD1rhRjlBGN1sUH4`=Ff3 zF(64hoqPUUFun{LHG6%P$Aup&aLKf1f zni{^=#WL^9>4v_XRjU(|lM1r39{^cXV_;ywjr$?1J#X9|MqWsR!Z4d*P&Tx?lxUQ# zNWmnM_HJrw(r9ROS?nx`mw@36Q2vNd&G{*V?;UFu0j%JuU z$c7PSHz+9VVPJZl-t6>vvtk_qB1H+&NvN#-507XJphmjs!!_HwL|Hs!ZoWIsBCDfw z$r!o1o3zakI);YP?kV1*#)UJT$KGh92qh&Y3N1f7-G&Pvs)%8p&p_k0URhXvot4}f z8xaW5a;%+ITZr^VEwIj++ zxseJS5}h>x9@t?}=olFCpFP7Y%B@%ets@e4l}8E?P|hyZPMV-)%XvveWbPHCYZ%VA;61Jm!=Wh5A?j`@H@s)M6rH<-d24n<5AJgM%(yVob3Ef)cvQad%?oD(X$#2TRl}n>As{9vXEurhDIe6NlMATwpyZpF;K{#K{7fn% zS}!{%hl_<};RCRZZw*UPLl-Uvw5MN>kZnMca&+XOsATDnd65EG&?SMOU8x9221|9E z1RhSBGV?rZI(8BlZ8{|Oq^Dm5o)K!zbxuzCYD5^7C`fdGK7l(34)}s}?twgjYfxVu zi=1igzJ9Uo6lO$~PfH9G8}pojtY**s%1Q+G<2Maj#Tz)3<20sRJ?chG1J zo*JM918K<+jYW9bOj+{h%EfEq-n+R^N5Lj@=MLqpI!F<9b(y{$R)!cFKH)iUkf4}M z*zrL}4=WOiy{Z2}vXtijYuNWdfCb(GpdwcAWS-aq=No!m`QiN}Bt7W#os&LDitc|O zPW}&S+2E}<&p>#4Zq$Ic(dK8@V*a&Nc07Dq^c$1ZR;WSnp<>jzrBZBPNRcRsFd%X` z(g^t`m80!MWlw#^jM>b)q{(KHOzS`I{VwTorOJ(G%!l1nH_X$(>bbz9sL1f?9z4Im z6LQvZ>*P$77~Ai0pvTZsN9aY7kV|nRb|4msiH-(Q0aPy-48ZMqR(snE?^|2Qp^y*) z=aU_`NcpRE14Ad2`J2PAOcR;aJv}^Pwule$?`SSns=F5Y3_{INf z0sa~>{~9s>8ZrMGG5;Dd{~9s>8ZrMGG5;Dd{~9s>8ZrMGG5;Dd{~9s>8ZrMGG5;Dd z{~9s>8ZrNWVZ=NR*v|6T&_+gtnyp&jp|q;u22AWtpSHo+_-&NdAW@rHpjhbU5}#!XZX z^IRaq5n_8h3Vw5H>Sl1#)fyOUXaw4z;PZQO7K}ViNg=y{JRXD3`1N7TjWiXK$PiHE zPE9=p{jn@V2PkqOZIqt=W}XIU6Tp@IFKN29rJ}A*go6V<^2K^NzWje!Y4gUVkO|R{bU@v;z(gLDl zP&umSNN^zKxF8ns^Lq_cxqJaJ$Z?Hp-E!kPlNrzDxSYX#{~^as{bSnXIp~6V_x9hk+7!99kFGe#v|0gyY)GrEt{$`Exx-HOhcN|366hKsh2%XM zC@lR!o3*opWK5-lXFT%XcNh_#OkD3kd0XG;_BHNle&!5ih_Yd3T+ieT#C}!{&b2&1 zL1x2cSCy73_w(`y2|XX%07(L5{(xE!B*OCYVUQH^vu_9%2PiTH&TXIi?BEpDw_O{| zf-D9vkfgY-D&4$^g7Et>Z9BNFEP%9qP6Fx*V zXlfG67-(wJC-xrM?>%1lUwlVC^O9*t&g<95>}$POAmp^~{d)*1XmJ8d1c)}TLUow6 zPy}mE)t|gt$lioVKBP|gJg;`#UR6m+x>1`AJY>d@MF}QQkW_$LSgA-lAC$aq$h=yH zgcC5~xobXnAbOrx3#Swrkva+*)4`#kY7Y>?Z%1Je#aSXVg_;`d+MC=rMja|zo@tf% z`TK)CvH9-UGi0WaE@TQ76Z?$BdNFu8ePYL$}W(J8poWW-a7!zi`fSJSi;qo&bQhb zgd+MdUc$8mtEHe|{qyI~AtMMK0dwU?+eWr{I3NVX(4ff6vl^b+)fqC)pG$A%N0+FWD zZ8FqJ20=nyM_j{CKqG+kEWS-Ug%HGRW*nEuwyy}0tJRB&h=A5bugsuGn+-yjT=v&B zB~-&XL@rkje=BQiJ3BfOQp?QBg2Y;g%bRvcxNR?xF){^C_DwijG3<~o2d)YP^2Dc8 zgAkL;unr%i8Im#=_8~Tp^fpo&v!Ws+gLXAlmVuI*x*!#)peY0+0h1Xr8ck8Pcx-Rn z-^E1(P9I04?K8yi*w~vie>1a%5j=fPH^S)qvJslYreL+5Y-p8 zqtKw}SE1PpYYEpEgY__j7ePjgfi$&AN=jz#tgaq>&TvL;hd`Sw*OfKM+Y30^!$N?O z2&7{-3L#||B5Ofr3}FcoToXe>M99cmFdZ%LhlODxyf=zc1)S$%v_MoN%6`w$F*74$ z%#IHPC;OvLpBjRGLqrepAG@cEOXYvtJwXbHQpPTKIqq3B(VLkrFO!N%2R!Xzv}9Tcb=zogbXo~1F$%-0vysMaY;R zFzYRmKe9dyq>> zoq>+CU28B|HY)$6?)8?^Xue}QA)CQ+BclH{e1bJn5+ay*(%2!Urj;54!U^r{?7E^Z zfiW9=D{XD2MOtP0RTg%35$A?a$N;?!IU^7weK_lNKgy&6nX(;Fuxi+pl>Z#AomnXL z2h@g@)>et2A2*AgAtH-%XK^iYC}8j0is#yR*^xfAZyQ9pwUkIvuIjlcSJX2GzFW$Z zCyxq|(#cT>wE$7>&(G8d@D$r3MY&q%qFl(^7~BE@_qixHc;TsVv#anLq}JAyKx!@I zCdS1%IXZ$Fve{)(+R@R`-@ipw1{Mw?5I$x>Uw5}W;@#jNBqWvD$toxm^ntaGCbmjO zS{kH48W5E{n#OB8JpX)*S67e#6Ab~5`!GGk@cjIco>$Y1U2@37bYgB$;lBKn#{-er zNfMA3#}1<0aHJ^r3(~OgHH?6oB}z$EHS|{pIQk$d_Zqkbidd9N$5Ev~(%gLc8frNX zPZo4og%C;6abfz`KgmMIO>dFOLRsUfj!Vc-#?cs<{PZd0lS?l3L6VOcxWNPn^2DFD zo&BaZj*E#wNO^k;)$J3cnjs0W8T^nX%oxw%mg zkZSWEskQ9vLZyFFYoP|nY=Ad+@K0)OSy}8qskIp(X2yclT3=r$1Y5`}NkIk!{YkLZN54m(&(Kiy4PVj6yii6p9^e6>&w@vCT1av>%hrBz?z^N(yLFpLzf&n*u z*oh!&K?w2Aisy&j$XxgxsdaYQbZBYW_?D1$;5B6vWd3wbP}lVF$be0X&4k3tuU z2PkyI|5515$zd4#e(t9{SLlL++x^OJVKdVBxQEGt%sb~PJQ{xKLjT`-$X?n#*p&kCrL^BZ-^u# zdKKG{`3nyqW(am1#04rU109`Et>LyM*w>4*eWU)7=z`7`^N&Qgq}K`}_+l&xKAd`x zc?v_Q%gviNW7bqDxQ%a0twCBE0#Ty~v@9k^z4bVWNehiXkFjGQ}hc|MX{70he zS4Pjwyau+fb)68%&xOV%OVsOQ490$a17yQ0_Be{Lx5oWIN_1b8l-yELff9{PNLXG{ z@+ZRfH!{MudIKVCArI^-0|Rtj0^;JcGcy?=UrkQ#N=tZn_v^Vr_ZkV#e=2k}HMzya z9C^|RX+*9iDAqYncm7GR1(Qc#ADF)(%*oQ#^;L881Gr%UcxJAmV`8F8X=prlX_+Dm zb&d**>#_jTTaGLPtSsM_-*A;+&)DAH=6b#RsJU6xq>1b{mCH>%m*eITcSwBD)buV6 zCHzeU(&^B?DuXh}XNrN4A?Wy_Q2kfP5Fl+>z-j{^K>t653`zY*$dHYVe2Mn)(Gi6C zfbsVK8Zwlg4weZpu9xeUf|YdmkN1<0YHV~A_56VR=MeCIG9}((NEn{KPeV=peSbem z@tXIEqC&+a*!Q8_hDs+qe%$VjqTkSkQ3#TC!0(X!2OSBV4`hf2#Mi>xKrNOdlB>Reot_O*a9A?%ld!2-g@X2!g ziUwL*4A1xqM)Zx0R1R;Kj+2p-N1t3tadDU_0^_H@|0!Ht&?VQ`d%>vTPwY8HRQ?)R zeWT;!4-XE;VJ|nOcvb32cpfkmT>!t6#M&jz3kL_%YtLn}|1Utye{kuwvsyHG`%vN| zdK3I#i8tc@gx3~9cx~O`d3f!}(PPr{RHOUnzZT`*!^q*FKib?6f3&$WZ05axw7LI+ zU8FWw5wyASNNsKcQk%;M+FUV5q&Al?BmlIzU;k)x58f?xhoXsuFseb-12kn&mZDSy zbqkt*0B)eoCBpmG91{PpHh1vVx{)C#Qk&b|-Hp`ddU}H6Cb~_5_-og$ z4fBHHH_}HQzyWxC0ccoR6>77A!@B?7yWtIYhJc?wusFc?`1w1_Ctb2=M(_x3ZhdO3 zuB|-)LofVh3sx2uL?EO>_BZ}z#(bbcNmyQXj@_7c)cIMy13wg7VY{_Pti34y%43AX31XmT(mPyZ7z z#KvZ!2qtlm?wfL4IS&~6pM6IrcK-7`WrH%Zc%vGFdl0ES?N~PnPH$HD9Vb?BHyGmI z_3{$@u>yGu=Z*)+%Slb0gw8=(z22Y+7mEMMsh-|imhO@lp#Q3XZRfricPMo?;-P|P7PXK1X~ktChbxRoBaGvqitWJD8j zaycVxTBMMZIh9y;a%mOM5J!u4oN7rd!dA*r&Axv>RP)C^d;aqH!}IX_{l35N=l%71 zz4`oUyk2*lc*KIAr=6ja4JH!K+m*L{1VL`ck5|#w*$m!})a&r~_3c=*PF;Pt1?2X< zZ0#>%n{76=#V8uR5R-=G2U2RHE>Pyuq zt0L=@K-1)0yf{5Nig*HA0|1b-kRV{~AZQFm$Gv;$P0$MAZiH5-zrU`svJy)vENqy` zp|akZCy|6Bm{QNFm^_-F0%!RbXN8*D5Oh z@X=q(X4?n=H|%1s=nP!;*EW#;S~Ih*Fl%@>>i`+R-P{8U7SNoH70dowra1>jarE!_y4__^x+@YmW#jZpqt==-3#JZ-sktDM_S7`wiMAz}6|j2@R(p=3cU zW*3PbJRk^|qI$6|dv?S=PDm>U5{f-01rT5Ke+0(lfev;R67*Wt34yGlqS}$w?qkg| znd1Xe($aP%dFAP?J*-&>Y~OaFEhLj(iaU@|PA{E@*iz#Iv)X$C(JR&v4;$v#lTN6{ zu6k*zsO&vrc^K6OSy{3F7+M=$I?tMEOtDj60N=_Dfu28R5&jg3x(ceUT~pWsBKLFn z^BNwUu`$|L^?v8Vn@#wQ5(F7&lwN^nSob6R2~hL&JyDuFO=sGONV*$Pd$8qSyG+j& z2u%6|$aa*;nXk=BNDaa(aKHFK=aB606kb9$Y&gE+!(jW0ZP!{0E(VwSYj1BDQ1L^o#W8Y@5mw{rT`%IZ1!&NRhkzi9J=#=6Zj}c90u|ex2Zp3EqY|5P$V7s)ZC3 zFj~Si1gR-LRbG|rOuXe46lUj>=CUAWi0p{&wp&GzVtV(UiPr$R$HJEswmv>GOA6cm zej`d@i{0|?6t-r(lx=8lISl=Y_0eRS>UG&ix6DNFFIU$5VS%{F3d+^2ZT z!0o4JW?tj->q5yJhlu#_E{-)gFd##K1>xA2tjmPKnKch>PwDm;%rCIBF-)Y8qo1l%=uKY&CYhjR{Ij?BR3Bni4c&O1pcM&Xv!{U1Yy`uye1Z79 z8~K~n7^q(d7mRSonG^S{BM%Z;(dCc*C|vGZLPkmH`O9X^Jr&4qG1X$w$zX{q`m z+;&4IJ=Gy{T4Yz2mAk%O#>mi+pk4KXE9nDQVz_2Tx;iygn#yI9{}hZhz_^Le?>>mj zVxtDFdE{uzai2+JW)32=k~~KQpXlCD`Q`15C3+APr;YrY*jTH1wdLu}&UL63FlN3W z&5y?g5tq7xI7JjVaTKS$sdS;jx}dA!m# zWN*MfW2PMBpd9&xf2yYs+&Z!0Jo>zZ#2N(42h)2(Zp0~~p6lOa1rQllYHxc)CIN>` z)n5I!ZoW0Hx45?OerN!bxe4BB!yE%6qn8TdcaI8xO(7k&q#Q3K1he%mZeiiX)2Dle zl(aN6FW1z(m>d*XQx02FkwZCbZ^V9&{v7CoO$1Rg)b*8YMW*Ksr3Omq$ z(}dzbm3F_IfueH=vpoUJSOXGj%$PptDjKWDDIK6H=vq%u{3onCiEp2-BKc1|Xv}U+ zHC?=A$Tko786mMffV6S}ZDu`IJ(o9^9wLiR?g+-Zg1MWm3S42AAq!G|CJRz<^k;0G zzFd&PfghRJl*d3p3WTW$8zk>Qz!c7d_8zI*h1-ZJVJ1y!CQ(##4egO7iS5djW1l3p z@E<{9>v7eKRKDYe#sZHYG{uH=85C>=B(@_Xet+Yvhr|{=Zlj~Opd>4#B(|=GD&s%8 zL1Nn@@@w4SV`XK9U;)cAB>DJyGRdjiWk~0nOOhw8->bOP_g z{PdFz9JW(K296~K={TkP=iFG4enfE)y402hx_)~2TS z=u?S^jcs36*t(MnTNcZ5QDOVrW}G=i*y7Zsq2a>pW~mHU!zwIJjwbGI$=2%pT|ia~ z3p=kCpp>xATUxH!2wH#xYtBSWXz|c%1O0aT zwmNjueDt4Op)nBBgoRCFVn=@t4u>vCoA(XWXV8xV)TdD&Xsl*L7A@cYai6|2;7=^v zh(wgnNCEyFdo9NCWh&I_#!xV5ER~}O1Qw9C>+82cV}eBsxaN~D_U!ld#Rizc)id2* zO#9Y(d~y=W27QMUS~{Ga)m2r0ZHyDv^tKJaOOK}?{cgIt4qNk3S`{X09IS=E7X3hb z)ZR=#?#|cVov5`BdbYOQAWKa!tK*5sZa%_sCYP#4`D^Z$A1e9$$2X5-oBp4g^K5H%RgmNgZBR$lNqD=^#I29(E<~lsk~mp~z2pv(L!SkLQKdzvuq{lgoEHFDsoE ULaU3l&gAabTYMFC~RwB>(^b diff --git a/test/reference/pthread-show-text.traps.ref.png b/test/reference/pthread-show-text.traps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..90d0af349a3c9e68303f24f17fe2572752ea9913 GIT binary patch literal 30199 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≫L#gLW_X-bZx{3ue}X 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≫L#gLW_X-bZx{3ue}X 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 ULaU3l&gAabTYMFC~RwB>(^b diff --git a/test/reference/pthread-similar.argb32.ref.png b/test/reference/pthread-similar.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a22210db81372a0e2d49f54b5ac28c0ee1c67c32 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$wj^(N7l!{JxM1({$v}~KPZ!6K zjK;U;895mY8IElDJ-`0^7#h1n&MM%lPZ`pWi2dRxxXhn&1dLI{l!kUn< zRkq*Bu|J}k`?PR%QKCL8Q>}ewNlBlv)a~O%JU13*)-lZc`#1L5b=&FFHQCR9{8)bM z@%-F*^B;a_Jo)5x%--J?*OgoTU6QGC*uO&m+<*01l}TS_eC^zLW-oKz$#v`V3*U(| zEWRkl@c5&wqKjAaLFUOP)%M1%I=;igNri=Z+Vh0DRdZ)w-5)*e{HxEEJqcmw`ekHe zpFjW3FlXMq;*u@Q4aL{`=FiP7F8s*auzGbqL&UEr(YdE5FPW<|$Z0>f9FZgX!T3~zvlB- zn^nRORc{2a+MuH4_6KAqlPyZ_|>r#(+| z|3}^XDLzB7#h1n&MM%lPZ`pWi2dRxx7#h1n&MM%lPZ`pWi2dRxx7#h1n&MM%lPZ`pWi2dRxx_quOy=iW<9CKHCFgmhXr;D@6jl!|ExrD7UFshDid{w9QI z(hjPk007Avx1yiSuh^!SrBSOW;s6t10ywQ(VlH!Z){T<;KSyh%IfzhlFLSgynu7%; z$H&pSXbuXLoG?c#qG|moxq&!Z3r#CW$%*4=6*R3GCC9>1dzw~@l4IwnF-8<#;d} zy$B)Gr)MbDBxzzpX=7ufZ1{$TElo{ZEdF0aaVOL8sHr znsv_7fnJoVM`cx&XLa>DIUdBTy4sTvGJE!Ub;3bSl$Dk1s;bsXt}a1URqF^LbLL!7 zC!9(rczOAn%E~p;>dH}N+_|5t5KE1tvaD=%Ma63I_OGC8I+|vnVKQzGN5^n< z0O-K*4h+AE$@Q3NgnbuY5$Ua>Vhth0$>|FTEoYL&QI?i^l$Q_uB8tBQ+P2>E#v zcTU2)29CeNU+L$vNZF!i8&1_@=1F*uL%Wb!aq)_hl2wBVWpVM!qN3$OPS)aL4IH=O z6oJBTnh8wXaHNT*h174&7-8KM&8bxXTomN#oG| zIo2d2O6YhmEL>Jpv_j0jFvV5)3Z9?ucI}!QZ_&?i?+dK{1qzuWN)v%85=ZBuWIfJ3 z!sz}6*RHt}LKZBztYA*I7{DR#4!s*$GaG znxF5MpYO_BYYZM} z90AiZe5pCC0k@^d6m2U=(+r)+?tlXl#aUt*z7lDvp;#K3C^j2b#8JsH{p6LHt@%MW z;8qGJ#u_{{Sx;~_j<4bSUg$I@HQ?3*n^(~xlO_{NHjaR44k|RqByw{^HG3tFf|Al# za^m~P=bDZt)+$;_Qd1Kt{iYB~P69^&6VW1}mL`(gR6&}&C^=~y0gS{GX%*GiC_I*0 zm7iw+&t#lrjsQmBJIQrbmb_n`2T^~NugVAjnV+_aP;G$%6Qs|nAp0x4IjH_8cr=hC z+5HoYlw4P3J;o>*wUdBov;Pw6D<#tWaiC1%?JFr)a49sKF-bx#O(eCc{2YP)x9l&8 zW4(!;g(^9>&8!7-VmY8z*;{n$dT>+?rTPz!QfQXK$@)6wBRTr zH0MRx4kJd4p||&SIt^JU4F<#Z?KcK&ggu(9_62YcY^LE~0~&7Me#2leFrj2lDe&>R zwPVLObTcFD&p?5>2P~n}*!nf5(QS6@_{PWQmKvFCzP`;nciy5~rXZrv`X1>X5R0+^hupx+?4296X1AD?DFzuRhOvhCW{;_G{x zVw`}3cQKa9zeUxC@k!KIvA({yckOD?Cco0(|64yl!Poi^@P;=|TFGhN3!AMt%{yA+ znf&}({QbXGFTb*Xim_hb=I`GsWd9|WA4Mcn2n*>jVzaPBsMO!TRj+T;IDuNH)9LkX zyLStYP)xwVf5M$9isJeQRvtuxQ0ea7ZF+qh@2)XLQD%fhK)@Zn{tj=IZrH8Eg~_vm}X z6i(rhx52^p_w2dHTelO#ypVAW`{aBk6e$zPQABRVX`$nB&z^h1!S@H;9j2hlPxufL z@_-QX@y9>yU(^k|aHQqJ`A^toxxo|d80U*mE%pV9)^WI61gKx(b=W~y?%Xw_f9V= zJ$+1iy5KD_00-2?;K&x7kv~yE4{S5wbr`XYc#C2d8u}M9 z^QQQA061}C^obL%(`_V7L-L|TPD279EbQN5VS=N{cr|(QWJ;+ll+DewR~WoHc5Kw~ z;{$)Zx9H?J0QT;Eyl)?KzSX2jv~T6IP`0#4Nu*0l8+q&)L)M0}Q#JwEx9>@KxRhk8 zi4!MMN@byJZ54dnrYkjdL|WPiX?0~PJp8-;`z7YrO_(r&Qfh`yrRnV=BcBpNQd55- zt-56G-~W9?#8Y)vXi{&cz^JGWLP$!=Ymz;%Dk9=(WMqeGD_yBN6=+OMr%tC!PL`Fz zDN<2U|A~s~1Qeb!nQQ{S4>Qo`YYIJGXr&8TsI-)@L@YeyuGN{*zVZaZcSDK)NEe#0|$BtAs>Fo)&RQV z;(FrZdbCHXjXWqcku&>J7$r{;CWOd2o8k(g*Ar0>unxo+d*`w|jN z+OF`a{mLdB2SQ8-4@!R@oRDBjOoa9;r81>oSyG(Tgep#}7R$Jil@({@95HxMVrcnbWyM)7M+`QU7(`30EBQ9TGUEFE!%AiTnQTas qrS)^`4@g5O71Iz(#WaLcG5r@o^Ph)x)=t0x0000421KEP)mU82V4*%LMQq2GJa`2{Ac-VGNOS~2B!D~=B|;wCKXB6v z-FtWM-Lt!Qnfsa9*__PT-}(K{chBzGvuDp0s;a8Q@f?cV4#bI$xNsgNE}Tb+3+GY% zdjCvJOl?Z``<1$c#g;1F0*V&*wu` z)n=y@MX@z~Nwnu=#tJ}9&1i%Wbm;ImN8@n_1J6-iJ<>M&)z!}-gy6vk z-?6O>HwY8H=IZ=Z9bY3$$sEJ6q#dgy(}%a%>Z&I!=m{552xFNronUIY=c zZ{IU0ibChkf43#R;Iy4M+TtoIMo?Kf+!ouBP+2(wAp{RU{DIr9M2)U+LI~++VnxLW zDk_Fab>0dU6~hri@W>f>9spdhdXv-m5 zQb$Yb0Dk(bC5LFsemYV^0vEX^s&dN9pGFALES}Yt=LEKOPD)D?DJvTsp)(EiV-vk8 zpa)y|1!eeYFm-GLeoE=eR(eoCZ}R9%gMN6rl$9kSgy7LfKZ?j_w+Jg-w3mzBy9cvp zk9pDB@dc^8MG~uNMQy}Ez$MWiXBUsNiwu@>jC)v35^s^pLGCwYqqKAgLI@sv?4Os# zqY+D&OWmgB^ZD@kd?JscyG#nh0%YLe){ z0aM5A*)y2Z(!{9a*PemxMprmRQKH&*?;b))$y0`f-pz4VlSCz*`3-+HeL0Klsv`m-Gig92Pe=iMF?@3BWBViC4<8C3z3I+2 z&Tw1Ed__fl5kktk3yP7qQ!zu&LBFDmM1C>p>DX3&>B=?>e)Kt5&(8HV{Z@j}&)-*0}j#tI?t zaoV*zc)x91AGU1iX=rpb>qzHK*}mG&bXGB(^@jPjZtcaEExkh4lM{q&altoSMN!zg zwKtnLKWS+2c22X3Y0@2a0)fgOc!^s%YnXS-mY&VxU0GjFU~1%K^X8ru7WOb@a2c~* zeNMAVD{5Ixrm4Jzg*_-Nd@^=MPJ+kYHgE1pK|yy@#=20(3;ac@gKjXMKhv2?Q+YM< zVyeXz6!ai3ubXLO*}R5AlQiet!bc<7ylOgse*P2W=XY-w&j~_~Rp#e+k4UrxY8c7} zX^y$g2tMEeJ~y2|FRvSUc~3Yd9I6ie`|nUejc8lJ^vDkIz_yH85g*pCUy<~Yb3Kjp z{~4jPEx4$j;7->oTJ~1U-KwAZXbuh7Eu55g-J1eW_asAcH^+IBEzumBD_guPks{mx z{w>2yOkyE6Tg8*s;;vRK#%7y%Le-hw63M8|^_=G%H(eEv0eUpz<3_&cN3OGCW&wym zvgkC;YcjMBuj zEZj|;li^29b2Hz`G$%zo%fj8r_f}2BJT{!1mc_IDy4H@lk;2HNK?W7MFEeeL|7oe4 zYPrRo<0h*nVxI4~S+>aqAm&;z5Esq_l7+MMOs8R4xFg(W)kMrAF-9q(fdt{IX)nW% zm_|~J(nNz89rB8$&dF6fT2bdp+Hv4C7tdB>0cijKQp)tpplaDH4`U(9b4bWg<4Hu(xh5aQoc4c z`Y{7p!W`+&+RZ|;D5RHRzKIi${hw&T_2mR%TU_vpIa)d`?Kr8a#%pfn@CyH-zjTM~ z;$IBn6><#orKZ+0X;N*-`f*)2?L+in=d`pL@#<;8FgCCib6>K$$tLu9mDtsJNdOO&dZ>PZj9tz!$nHd(oT?; zb|Peb1gD+A(#k@UC!ZoME&QrHXSj`C6!JdK|IUCB@9`|XDKPAey!6sZ($i0RV`U+; zi)v1tdKyJhc=OFWLKbp?YZ=2@zN8H^S>foad3vY_mXg7IertGnOi%xY$&*hZgx^$s zI7P@yrM3^g;f6|2oqC$|^l!ozR8I?L^E$&>@9J~j3GU))J|vUHhN4ZLe2OVkPDNZF zP7rowA)n88*@`*g(lcg!%akdn4GY}BQ10g-3&`aH*Gdm46c@Ob1>|x+2l)u&1-_?F zJ;U_rXHCZ+oOS};IVT4XM)q1Kn3XGU<&8H&FJ=}@C-yOqMU3Jd+g6Efz|T5Hvydzf z(81I()25we+O#uKm)WjeJKKNwPgl4@hYp!uuTpQnV#O`2T4g-?pwW&mn8cqL%Nl9x zGDowRHo)}h-!g658B6iEZQIrz;f@?JH>ezr<;!no<;q(kI>ycA>j7rWILC|`#>+t& z(WXrscZ557^r)pXPTMbAb|WiRL_Z7IsUM60m^t$tGiQD$CGOU(Te~A%ZEdY(=e7OP zr8lsAd2CNppEc`yX3aV$C0jaMd@ZY?77f=+1 zB}-aLw;c_0=G2jySqC`t{!BKu{I*W0bXL|ygb*xVY-vijWim5=WbWJx2;q|&pOeF0 zVSgjl4(89VM^OZe7CAR+63o1L7nwJ&9!w_WksjpLWfU~+R+6s3{Z zUbDBnmtSrqJG%+5Umk-A+v2o`N)0>Gxw$GrH1X=I_B{V&XE%|PqXLQ}@i^7ubVp8_ znwq4IoS5AQ0!SAxCr2eGr^(ScR8__A_uD>lqWeLC%t9kW4M_ZMBj8>fa?#Z&wuA#o z;sxA|K`tH<4lIfnaNB#?ct|*iQoMlMUfY4kgo6mh3%KpAU3gG9FezTZZ7=P_qr!oK zcmcP)vl|Z!2O-1@xb2k_cw9KRLcD<6-Z+JxM$XLMl!ge_quOy=iW<9CKHCFgmhXr;D@6jl!|ExrD7UFshDid{w9QI z(hjPk007Avx1yiSuh^!SrBSOW;s6t10ywQ(VlH!Z){T<;KSyh%IfzhlFLSgynu7%; z$H&pSXbuXLoG?c#qG|moxq&!Z3r#CW$%*4=6*R3GCC9>1dzw~@l4IwnF-8<#;d} zy$B)Gr)MbDBxzzpX=7ufZ1{$TElo{ZEdF0aaVOL8sHr znsv_7fnJoVM`cx&XLa>DIUdBTy4sTvGJE!Ub;3bSl$Dk1s;bsXt}a1URqF^LbLL!7 zC!9(rczOAn%E~p;>dH}N+_|5t5KE1tvaD=%Ma63I_OGC8I+|vnVKQzGN5^n< z0O-K*4h+AE$@Q3NgnbuY5$Ua>Vhth0$>|FTEoYL&QI?i^l$Q_uB8tBQ+P2>E#v zcTU2)29CeNU+L$vNZF!i8&1_@=1F*uL%Wb!aq)_hl2wBVWpVM!qN3$OPS)aL4IH=O z6oJBTnh8wXaHNT*h174&7-8KM&8bxXTomN#oG| zIo2d2O6YhmEL>Jpv_j0jFvV5)3Z9?ucI}!QZ_&?i?+dK{1qzuWN)v%85=ZBuWIfJ3 z!sz}6*RHt}LKZBztYA*I7{DR#4!s*$GaG znxF5MpYO_BYYZM} z90AiZe5pCC0k@^d6m2U=(+r)+?tlXl#aUt*z7lDvp;#K3C^j2b#8JsH{p6LHt@%MW z;8qGJ#u_{{Sx;~_j<4bSUg$I@HQ?3*n^(~xlO_{NHjaR44k|RqByw{^HG3tFf|Al# za^m~P=bDZt)+$;_Qd1Kt{iYB~P69^&6VW1}mL`(gR6&}&C^=~y0gS{GX%*GiC_I*0 zm7iw+&t#lrjsQmBJIQrbmb_n`2T^~NugVAjnV+_aP;G$%6Qs|nAp0x4IjH_8cr=hC z+5HoYlw4P3J;o>*wUdBov;Pw6D<#tWaiC1%?JFr)a49sKF-bx#O(eCc{2YP)x9l&8 zW4(!;g(^9>&8!7-VmY8z*;{n$dT>+?rTPz!QfQXK$@)6wBRTr zH0MRx4kJd4p||&SIt^JU4F<#Z?KcK&ggu(9_62YcY^LE~0~&7Me#2leFrj2lDe&>R zwPVLObTcFD&p?5>2P~n}*!nf5(QS6@_{PWQmKvFCzP`;nciy5~rXZrv`X1>X5R0+^hupx+?4296X1AD?DFzuRhOvhCW{;_G{x zVw`}3cQKa9zeUxC@k!KIvA({yckOD?Cco0(|64yl!Poi^@P;=|TFGhN3!AMt%{yA+ znf&}({QbXGFTb*Xim_hb=I`GsWd9|WA4Mcn2n*>jVzaPBsMO!TRj+T;IDuNH)9LkX zyLStYP)xwVf5M$9isJeQRvtuxQ0ea7ZF+qh@2)XLQD%fhK)@Zn{tj=IZrH8Eg~_vm}X z6i(rhx52^p_w2dHTelO#ypVAW`{aBk6e$zPQABRVX`$nB&z^h1!S@H;9j2hlPxufL z@_-QX@y9>yU(^k|aHQqJ`A^toxxo|d80U*mE%pV9)^WI61gKx(b=W~y?%Xw_f9V= zJ$+1iy5KD_00-2?;K&x7kv~yE4{S5wbr`XYc#C2d8u}M9 z^QQQA061}C^obL%(`_V7L-L|TPD279EbQN5VS=N{cr|(QWJ;+ll+DewR~WoHc5Kw~ z;{$)Zx9H?J0QT;Eyl)?KzSX2jv~T6IP`0#4Nu*0l8+q&)L)M0}Q#JwEx9>@KxRhk8 zi4!MMN@byJZ54dnrYkjdL|WPiX?0~PJp8-;`z7YrO_(r&Qfh`yrRnV=BcBpNQd55- zt-56G-~W9?#8Y)vXi{&cz^JGWLP$!=Ymz;%Dk9=(WMqeGD_yBN6=+OMr%tC!PL`Fz zDN<2U|A~s~1Qeb!nQQ{S4>Qo`YYIJGXr&8TsI-)@L@YeyuGN{*zVZaZcSDK)NEe#0|$BtAs>Fo)&RQV z;(FrZdbCHXjXWqcku&>J7$r{;CWOd2o8k(g*Ar0>unxo+d*`w|jN z+OF`a{mLdB2SQ8-4@!R@oRDBjOoa9;r81>oSyG(Tgep#}7R$Jil@({@95HxMVrcnbWyM)7M+`QU7(`30EBQ9TGUEFE!%AiTnQTas qrS)^`4@g5O71Iz(#WaLcG5r@o^Ph)x)=t0x0000_quOy=iW<9CKHCFgmhXr;D@6jl!|ExrD7UFshDid{w9QI z(hjPk007Avx1yiSuh^!SrBSOW;s6t10ywQ(VlH!Z){T<;KSyh%IfzhlFLSgynu7%; z$H&pSXbuXLoG?c#qG|moxq&!Z3r#CW$%*4=6*R3GCC9>1dzw~@l4IwnF-8<#;d} zy$B)Gr)MbDBxzzpX=7ufZ1{$TElo{ZEdF0aaVOL8sHr znsv_7fnJoVM`cx&XLa>DIUdBTy4sTvGJE!Ub;3bSl$Dk1s;bsXt}a1URqF^LbLL!7 zC!9(rczOAn%E~p;>dH}N+_|5t5KE1tvaD=%Ma63I_OGC8I+|vnVKQzGN5^n< z0O-K*4h+AE$@Q3NgnbuY5$Ua>Vhth0$>|FTEoYL&QI?i^l$Q_uB8tBQ+P2>E#v zcTU2)29CeNU+L$vNZF!i8&1_@=1F*uL%Wb!aq)_hl2wBVWpVM!qN3$OPS)aL4IH=O z6oJBTnh8wXaHNT*h174&7-8KM&8bxXTomN#oG| zIo2d2O6YhmEL>Jpv_j0jFvV5)3Z9?ucI}!QZ_&?i?+dK{1qzuWN)v%85=ZBuWIfJ3 z!sz}6*RHt}LKZBztYA*I7{DR#4!s*$GaG znxF5MpYO_BYYZM} z90AiZe5pCC0k@^d6m2U=(+r)+?tlXl#aUt*z7lDvp;#K3C^j2b#8JsH{p6LHt@%MW z;8qGJ#u_{{Sx;~_j<4bSUg$I@HQ?3*n^(~xlO_{NHjaR44k|RqByw{^HG3tFf|Al# za^m~P=bDZt)+$;_Qd1Kt{iYB~P69^&6VW1}mL`(gR6&}&C^=~y0gS{GX%*GiC_I*0 zm7iw+&t#lrjsQmBJIQrbmb_n`2T^~NugVAjnV+_aP;G$%6Qs|nAp0x4IjH_8cr=hC z+5HoYlw4P3J;o>*wUdBov;Pw6D<#tWaiC1%?JFr)a49sKF-bx#O(eCc{2YP)x9l&8 zW4(!;g(^9>&8!7-VmY8z*;{n$dT>+?rTPz!QfQXK$@)6wBRTr zH0MRx4kJd4p||&SIt^JU4F<#Z?KcK&ggu(9_62YcY^LE~0~&7Me#2leFrj2lDe&>R zwPVLObTcFD&p?5>2P~n}*!nf5(QS6@_{PWQmKvFCzP`;nciy5~rXZrv`X1>X5R0+^hupx+?4296X1AD?DFzuRhOvhCW{;_G{x zVw`}3cQKa9zeUxC@k!KIvA({yckOD?Cco0(|64yl!Poi^@P;=|TFGhN3!AMt%{yA+ znf&}({QbXGFTb*Xim_hb=I`GsWd9|WA4Mcn2n*>jVzaPBsMO!TRj+T;IDuNH)9LkX zyLStYP)xwVf5M$9isJeQRvtuxQ0ea7ZF+qh@2)XLQD%fhK)@Zn{tj=IZrH8Eg~_vm}X z6i(rhx52^p_w2dHTelO#ypVAW`{aBk6e$zPQABRVX`$nB&z^h1!S@H;9j2hlPxufL z@_-QX@y9>yU(^k|aHQqJ`A^toxxo|d80U*mE%pV9)^WI61gKx(b=W~y?%Xw_f9V= zJ$+1iy5KD_00-2?;K&x7kv~yE4{S5wbr`XYc#C2d8u}M9 z^QQQA061}C^obL%(`_V7L-L|TPD279EbQN5VS=N{cr|(QWJ;+ll+DewR~WoHc5Kw~ z;{$)Zx9H?J0QT;Eyl)?KzSX2jv~T6IP`0#4Nu*0l8+q&)L)M0}Q#JwEx9>@KxRhk8 zi4!MMN@byJZ54dnrYkjdL|WPiX?0~PJp8-;`z7YrO_(r&Qfh`yrRnV=BcBpNQd55- zt-56G-~W9?#8Y)vXi{&cz^JGWLP$!=Ymz;%Dk9=(WMqeGD_yBN6=+OMr%tC!PL`Fz zDN<2U|A~s~1Qeb!nQQ{S4>Qo`YYIJGXr&8TsI-)@L@YeyuGN{*zVZaZcSDK)NEe#0|$BtAs>Fo)&RQV z;(FrZdbCHXjXWqcku&>J7$r{;CWOd2o8k(g*Ar0>unxo+d*`w|jN z+OF`a{mLdB2SQ8-4@!R@oRDBjOoa9;r81>oSyG(Tgep#}7R$Jil@({@95HxMVrcnbWyM)7M+`QU7(`30EBQ9TGUEFE!%AiTnQTas qrS)^`4@g5O71Iz(#WaLcG5r@o^Ph)x)=t0x0000_quOy=iW<9CKHCFgmhXr;D@6jl!|ExrD7UFshDid{w9QI z(hjPk007Avx1yiSuh^!SrBSOW;s6t10ywQ(VlH!Z){T<;KSyh%IfzhlFLSgynu7%; z$H&pSXbuXLoG?c#qG|moxq&!Z3r#CW$%*4=6*R3GCC9>1dzw~@l4IwnF-8<#;d} zy$B)Gr)MbDBxzzpX=7ufZ1{$TElo{ZEdF0aaVOL8sHr znsv_7fnJoVM`cx&XLa>DIUdBTy4sTvGJE!Ub;3bSl$Dk1s;bsXt}a1URqF^LbLL!7 zC!9(rczOAn%E~p;>dH}N+_|5t5KE1tvaD=%Ma63I_OGC8I+|vnVKQzGN5^n< z0O-K*4h+AE$@Q3NgnbuY5$Ua>Vhth0$>|FTEoYL&QI?i^l$Q_uB8tBQ+P2>E#v zcTU2)29CeNU+L$vNZF!i8&1_@=1F*uL%Wb!aq)_hl2wBVWpVM!qN3$OPS)aL4IH=O z6oJBTnh8wXaHNT*h174&7-8KM&8bxXTomN#oG| zIo2d2O6YhmEL>Jpv_j0jFvV5)3Z9?ucI}!QZ_&?i?+dK{1qzuWN)v%85=ZBuWIfJ3 z!sz}6*RHt}LKZBztYA*I7{DR#4!s*$GaG znxF5MpYO_BYYZM} z90AiZe5pCC0k@^d6m2U=(+r)+?tlXl#aUt*z7lDvp;#K3C^j2b#8JsH{p6LHt@%MW z;8qGJ#u_{{Sx;~_j<4bSUg$I@HQ?3*n^(~xlO_{NHjaR44k|RqByw{^HG3tFf|Al# za^m~P=bDZt)+$;_Qd1Kt{iYB~P69^&6VW1}mL`(gR6&}&C^=~y0gS{GX%*GiC_I*0 zm7iw+&t#lrjsQmBJIQrbmb_n`2T^~NugVAjnV+_aP;G$%6Qs|nAp0x4IjH_8cr=hC z+5HoYlw4P3J;o>*wUdBov;Pw6D<#tWaiC1%?JFr)a49sKF-bx#O(eCc{2YP)x9l&8 zW4(!;g(^9>&8!7-VmY8z*;{n$dT>+?rTPz!QfQXK$@)6wBRTr zH0MRx4kJd4p||&SIt^JU4F<#Z?KcK&ggu(9_62YcY^LE~0~&7Me#2leFrj2lDe&>R zwPVLObTcFD&p?5>2P~n}*!nf5(QS6@_{PWQmKvFCzP`;nciy5~rXZrv`X1>X5R0+^hupx+?4296X1AD?DFzuRhOvhCW{;_G{x zVw`}3cQKa9zeUxC@k!KIvA({yckOD?Cco0(|64yl!Poi^@P;=|TFGhN3!AMt%{yA+ znf&}({QbXGFTb*Xim_hb=I`GsWd9|WA4Mcn2n*>jVzaPBsMO!TRj+T;IDuNH)9LkX zyLStYP)xwVf5M$9isJeQRvtuxQ0ea7ZF+qh@2)XLQD%fhK)@Zn{tj=IZrH8Eg~_vm}X z6i(rhx52^p_w2dHTelO#ypVAW`{aBk6e$zPQABRVX`$nB&z^h1!S@H;9j2hlPxufL z@_-QX@y9>yU(^k|aHQqJ`A^toxxo|d80U*mE%pV9)^WI61gKx(b=W~y?%Xw_f9V= zJ$+1iy5KD_00-2?;K&x7kv~yE4{S5wbr`XYc#C2d8u}M9 z^QQQA061}C^obL%(`_V7L-L|TPD279EbQN5VS=N{cr|(QWJ;+ll+DewR~WoHc5Kw~ z;{$)Zx9H?J0QT;Eyl)?KzSX2jv~T6IP`0#4Nu*0l8+q&)L)M0}Q#JwEx9>@KxRhk8 zi4!MMN@byJZ54dnrYkjdL|WPiX?0~PJp8-;`z7YrO_(r&Qfh`yrRnV=BcBpNQd55- zt-56G-~W9?#8Y)vXi{&cz^JGWLP$!=Ymz;%Dk9=(WMqeGD_yBN6=+OMr%tC!PL`Fz zDN<2U|A~s~1Qeb!nQQ{S4>Qo`YYIJGXr&8TsI-)@L@YeyuGN{*zVZaZcSDK)NEe#0|$BtAs>Fo)&RQV z;(FrZdbCHXjXWqcku&>J7$r{;CWOd2o8k(g*Ar0>unxo+d*`w|jN z+OF`a{mLdB2SQ8-4@!R@oRDBjOoa9;r81>oSyG(Tgep#}7R$Jil@({@95HxMVrcnbWyM)7M+`QU7(`30EBQ9TGUEFE!%AiTnQTas qrS)^`4@g5O71Iz(#WaLcG5r@o^Ph)x)=t0x0000HUQS>&{SuYhxyc1dHkI@Cr!B|-8=^??oc+bLPKa%4%az_0K&u%% MUHx3vIVCg!04M23z5oCK literal 0 HcmV?d00001 diff --git a/test/reference/push-group-path-offset.egl.argb32.ref.png b/test/reference/push-group-path-offset.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..662355327cf27d8b52fe4d3b474441412577c015 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-wj^(N7l!{JxM1({$v}}Eo-U3d z8I5meY~*V;;9>o{sID;GEaG;2nR--0$CYbAZ(ihe_H}w#vab2MahJ;N!t&KGd?)Sv z{W8%t|JgS&&#HUQS>&{SuYhxyc1dHkI@Cr!B|-8=^??oc+bLPKa%4%az_0K&u%% MUHx3vIVCg!04M23z5oCK literal 0 HcmV?d00001 diff --git a/test/reference/push-group-path-offset.mask.rgb24.ref.png b/test/reference/push-group-path-offset.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b836a9197faf36d6087aa8d453b0d56c3fa04b3c GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt`no-U3d z5v^~pDGD8O5O8&LdU_;cg7j?T;>HUQS>&{SuYhxyc1dHkI@Cr!B|-8=^??oc+bLPKa%4%az_0K&u%% MUHx3vIVCg!04M23z5oCK literal 0 HcmV?d00001 diff --git a/test/reference/push-group-path-offset.rgb24.ref.png b/test/reference/push-group-path-offset.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b836a9197faf36d6087aa8d453b0d56c3fa04b3c GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AY)RhkE)4%caKYZ?lYt`no-U3d z5v^~pDGD8O5O8&LdU_;cg7j?T;>HUQS>&{SuYhxyc1dHkI@Cr!B|-8=^??oc+bLPKa%4%az_0K&u%% MUHx3vIVCg!04M23z5oCK literal 0 HcmV?d00001 diff --git a/test/reference/push-group.argb32.ref.png b/test/reference/push-group.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..60f5eec1b1d5d04669f65ebc9e96d22d01bdcc4d GIT binary patch literal 3062 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 Ef`b>?{r~^~ literal 0 HcmV?d00001 diff --git a/test/reference/push-group.egl.argb32.ref.png b/test/reference/push-group.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4b3bdaa0badbfafbe249ad9fdf1b26bbac9832bc GIT binary patch literal 3934 zcmV-k525ghP)* zA)9#eWpi-(h#mq4F>M$I87^jPTuRCyQiX0s{w0Al4Gcy8S5Z=7#BCz2V#%u@;?j~< zk>phfakivY9C;N$oMX}|io7x>E^E>%hP*N+E@#pzg1j;%&NXRePhO_ViR}XXop;_T zc!gzg@jQ!*=Wx$iOz+=+kNx}a71$E^@WT(C6gg6Ik*RWGD~4g9wMHa%-F)K3#q%sJ zok1xTu}7hG7!ku2e*E|XN-3(Vzb>dfZp0OFrUMHj3k&C1SU3|gS|ehSpgh4#OD%{9 z2M&BwFq_`QFXRA`(C(K2K)K=ux)I7+GeMOBp!!TTZc{-V$Jqbh3xL~k35@|8gv<_n>48_KCbLPVT@Zmpr zX0sb9iFI5s*vz9xO*yaA3^Z@(Sq`d2_VJi1HZb%nL@Czsu|XA&^&S?~Ar^Uq5WcLg zZ{gY5(^2xudL8FQ{4g0JJIr<<6XYOw9m zr{#~lqyL@VvgT=oIngcpE=@AZzv&&*azKq=(d2d!IfYV+f^G<%@hAlR(Owp<|tDL;waI`x9;Z_$C%+)yvqx=r#*6dx+#G?JAaf##7#~%GBs77 zF?-z2GC${i4)F*}*)Ze)VL<(ItA&skw-+9NIUYHP=`b!FD#Dz#Bc+5SyUon&I7 zo=net>|l*w@Q)GF(j8S?eS{#t;2-!7FESoEIoZhMWTPYBxbnTLla-1t39P?(Y>}pv zfl`7}1|lS2L&ChPe#=3%h@ljSU?_zsRdTpSE%Mj$ulSUtwMWF97A*2I`KPGF`FuW< zQW%DjfTyNT5(v~q%SKk^AsPQb{SWnwp{&F}MTW@|#m#DrD_l)$kA){E8=07BNb4WB zb>6(paejXtfxrpdby|zur;E?b)SAL(jc#<0e8wd8Jdo2F?VFrz#4rr%>illpoKjpx zoE7%*dSaphzyCzE2d2|Io)nRs6(X{_LiQU zY{c(BfnoR%A*24DTxE~(5=8JBM%n4zvcmU`|FgAI#LTJ#f%;AUDjIPjf?*hl2!TL7 zyIOMEz9~bKKZiEq?!T$5sBfxq(7T zW|5t%_5nj&=QsS+(HVh2J%(Y>&@kb~?SKanH$HxXv9aSgT@mePiDn)YeO>02KFtH( zVA1gzV`H_9jnx+S?tmHo$Fh3vv5PzS5HwQsi1A8y@da18;`j`|zs~hg>4J7WlpJXy zWWDn2QU=*|8TYpWTw(=6 zq+;-4nWIWJ9Q(u6u@N^y-jGu^97bH~cdo6*n3vILEot!q<}oxND)K3a)@CK5LU6Ty z%$yu@p9NS*CJeO zk_>a43`Z_Llwhc&`es>GT-$iPDm4E{@AUZpLkRxf< z6|$6A$E6`!RX6`76@$&2sM-0097%(m?|_?;rEeSof67)T30Wlo=K?GV` zpOPzS;PNT2wzj8;2zT!~+pPc;UvQCLMgZ;L=+f6=gfD5&s$$aG`iu(~p62d&Ja{0s zy?q&_6kmS1FWNW}qE+x@yu<yl$Y*bVTiY_Ntmvibq2Bz`W0nuEmOfV=$=mRYo?X_@>G#4|J<$E_L$G?5j z-o8v*+f%IUiMVx3GJYh7xlLzmRU@T!C)+9hgf8YdWNWVoT)b%d$E&w>Jl!F-vvUQd z6kmL?7rU|k8kafGx9nu4B<8AY^)kD;&Sjk3@xFNRIc;srh$Q;Ujku1u__t3)gwDm*B8*D8i# zaOciz#P_`T{r*8SCe7TWkA7~TiM{b@_199xHyFfEedKO;diy#$R%vfv!EGXvO7ga| zP-o`~0H1%p2Z-I$u##vCU*j@|3DU$^icd=qkJ7|72IB8?q&%aeW0i{+pJVPoRAxI1 zz4g`_hGB5~wz(%(T;Gl2Fv4$mkDu{R)DcMfH2LV_;&B@J74JgieWP?|babrI(UG4> zvn22PRd#i)A|ffsi|Gxj_%(mSd%Vwariz|;q|#H=@-O^^FjYyUCF+ijRXRIY@gn8V zBnA0xo$l@z7>2=TpY4j?2{sQ=QT$SN@=N}XAL-w6miuNx0MR?m#l+uomJj5w2;oE0 zv|j`|JJ;ywSc}Yc>HXn$n1llE5c}3!YlsM+e!4SKNg!&xg+t=w1Aff1{4d>l1cay) ztrH53N9g7E@?Ao4w`@|izq50duC6umIXuQoLHA_t?tT$Ro(9Z{gXshlYvtpr{vH82 z!C&y7>{6?sH9E5BwNA)4elEND5B`#e>QqAelH02kbak!K*=cQ^;oKi?Bwftv44*~i z;lqbImu+o7{&)wUe!4Td@1yl~$=Ih~(kCPIaUCC_=zfw`|7#Z2lC!c&L?&~t^ z*IA;2JG5|@*Ld#mtjzj3uW^?a?$E(w_BlSYyZdEy-piaKUdPR5l3%90ITU(nm zajuh-Y=?(r+}F2($jdnL>{nJA%_yfBr3nxWHmGKiYUbI;Q+%vb#Rj0+po(>TJmGcb zBS(c$BvkLSSkd+LY|!2P3TvI_*8W_jBz~f$zdwXwtTQsQ9k72oDjA1$74uTVJclEn zTdBIF#1favXY+lRF0IqkvreH>{!CKzU;41bj6C7it!;5BH)t&-fqQz^>FL=Z-xU$3 z;+i=%Uku#W7pAv21Q?#!=hY}xlE0BUIH*x76i1%j4n6t77HQ_&HQw9l%J*(gwtA1( zJu#lV8#k=2B?@~#psz1Xe}9;KM4A_oS2D>-Dly3mbN#yW-5tEp{r%=&sU#w)q~v}h zHPx^Qg^N6sH0!r>@@H33?|}P!u1moI~1Xg>NVmN?`?4-CM-fZ)fK^D&zdddv&Q+~46biYo-DD}l!*K1I6)AY42M37^$%PfeFp5)T zE}rNiV2D^d-RNt$cx$Erl9G$kO`9@Gs@Iw;lC-o^ro@2<2X+ou;90meSz>pKK*Iw-P&0!lGZ147m-ARqTJ3F&8vpX}| z4>AV(y?Jl^@ptCUn|a@XB1MW6DN>|J5eFeMd_9rZUf4n~_4!gkdtnjlJe3$J>>d&! zAe8!#0zxTNPb?s95XpS^!hW8UM)Kc@P`Z+C#$)2vNmB`VO`eCuWt658@{&A{h|4NX zCFB)(9uTKnno7tE@?0*?ur!sB+vT}fT+Y%|LT;AlQgNoGsf64rPiy8R>jn7f)2H)3 z!!kYH$n~&dlaoi8nzB!t%GA^`gb?i9 zdDq^CEWq*NlG2XYE=^@>>KIZ=$IElHxQU4)Oit!cn#$zlQG^ie+VyRI8#aJr#U-U3 z&bu^~$;qQgDIF`%k%N=*@xx3`9wyI&)^(`zcJKbKupLQ*<05Ws><|+Zg^RScOiUa> z2*I8`-xsNoj{1BTZ#u;s{boN6B-{p)wXb$oTj{$4OHeA3uzglD&I>D0Ei< zheTW~c95~LhMcAOSfPw5%9!FM9~P9nG%-Rz(ZbQlATOb$_lyt!i|j`a*Vu! ziyIwnAQm$wO%kV;0je3Kk|FjILlW0jH;!bKeGE~_Ak~DaA#Px+kIG`qB|%<*f!q>0;zpC2!@XY}GDK{K~GPCvJ4;tO77o)iW7+%n>+&iuFXD!WYlud* zrEO)7_xO-Kj8SM|YpEf^ANUI&@vi21FB+{y2th?f*!DizE-oppT2tC)7I>cz*vTYL zlcutt81M4|f98)YusLJ7XtWk7rS0-;6*n|g&G4|cG#@Lx%_r<)3a3g_+07(xagL8U zqj}C79kbAk1r==W|}uET=|ZRaL~6 ze%KOmkw_K8!&O;_{EhU}$yYc%($><&b%v?pI}U4>8y>E)O`hfA1_vt{8pYB#-4PUaAC%7%zRJJkCtDNUk z-pE>ZXs8+~rKR#L6BiCw5Q*rMwwD+!+;U~Kt)`W4_=--(*`2j)BvOSCf|{CPOWL+% zaFUc(uKU(ZFBelo5qFF8k)W50{Egq~Dj$hd;q&<{k!L#M1_sIrhxJP%#awRo9)P_h=2`xY`P&w#k~%Xf{4+rScgnDDH)y^OPg6_#@!?}d!W)7eV;HP=SOl`-R~ z(d1fuBq(D>*TuL7A-(c+h|9cC-iWxJOnWxkRLYoPf<0z86Vf9ui#YA<21dkfXU_BD zb}(zzK8CW%(-4WC z`$h(F`o=6q#EH}&FC)Q*eN68ngQ4?~)Ev^Y$H56?lV?QSEIT|e?lCV}wU3I)%K^}mXGGjIJ3TLMhB7Pm zQL*R(95Tr>BJKgDfLyie##_XZJfPI9IK|>AFGwfPh`41oGR8jkF{-~w7ZGDWD{L^M zO|fZ`8P>`(dRu3RS`IK~tVx$JM6H>NZ^h=@I+JkG6Ihw_LWxr$SAeG7?+i8Y}#H$OD=oCQL1M>G}u84;^L z`o(b&(omh|=7*Shb&RQ}yjofwA%x)8Eq&Pv0KUdgfIiQRF5^hPq18~d9Y6kn=H^GH z+BN+^tlvM2&*$UouXpIGGea47X{3?-=RmfDJ2a&(1N70-@`&cULOG(x$F9P}^Ozloq{Ftw`|a)X2qCh{Q+S1aj8RMe zlDnAUC+hhRp{$2Uzkimtwt4JY+iq*tg^rFVNGZ8-V{67TaY{JLJG{q-RATLNTdNtM zmb1J=0-vU~wzfIi+MZx%LIT_KoOEZRPYIJ6Q?Ar zwDxv;r9qx@d3ALy;`8~qetk>EGK*~C1K#IN&T#~1rHsGJQO@xuD_J6~qvHwf?TgrP zPFqXfa(Q)jE+B-^l()hL&hZwHpG(44I1-5GlCWiy*3q#*zVfx?HSJ+n*CJ9%u3gKV zQYlUeU+@~kRIN#Sm|y03@wv2zTGBc@7wG6%B%eukOuawu-o1M{g~YXMn>FRBY~&f; zTp`G%pOa(T%`zoiBFJR|EU_VL`OeM-Iy)C~YOAiU&Ry@1J8|MELWr#Lme|AvPVpT_ z)1>ybmN;@)y~cZy1JfHh;&w_A}$h%m^ukvz4`)IuWD!JS&eow?cB&EnKmR3 z`(0g&rrNHms>(UyOo@v|qozj>eSMqg>)T|gP9f9RL-L4m;>1%!b<$B@Uhb|#1bcKZ zD$Ml}y6*00baxkC8aPB8KrpzBl#KEE~lh9C(=|LDGrkI zgeaW6U~rk99%o7e2a5yf?M)zMoQoIpdzk9!S)r#Vfm5Y{!^J^To)Gzy*VD7Y$&=2O z1`ZsYq~p{n@cH1v1$!4p_Vy+?c~aoCfk-+WA8{(75C~zPyx!gfy}jV{NKTGI~xo~99dSn2_%&M6@kk*AejtlD$3hC1A7)Noqw2Zh^99SSv zajP_NwKy;#PjRy}aJ@LlL7w7vY2XQQU_hSY1!>?JaiBw<;uUG&DRH17Pw|p8@SHeE zBTw;~G|;{PcR8WdXQhCBunY%Jh7>7Mq)3q>MT!9b17u5RGCcCqpa1{>07*qoM6N<$ Ef`b>?{r~^~ literal 0 HcmV?d00001 diff --git a/test/reference/push-group.mask.rgb24.ref.png b/test/reference/push-group.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..19f0a2b76037beea89ac8e983c23354dbe09366a GIT binary patch literal 2899 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 literal 0 HcmV?d00001 diff --git a/test/reference/push-group.rgb24.ref.png b/test/reference/push-group.rgb24.ref.png index d88ff396cae81417d5fc593f4e48461f70b38cba..19f0a2b76037beea89ac8e983c23354dbe09366a 100644 GIT binary patch delta 2875 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 Z{sR=kD#c_1<_Z7+002ovPDHLkV1j;szuW)- delta 2658 zcmV-o3Z3=S7W@>DHGc{*Nkl$!}Z79ml^jj8n>JTGGxUIkxmjNw(-E;i82U zDe>tR7Y?9H0Q*oNJrrpFq!uWU-t0pF9h`%EdTKT?$RZ|PtTv(^Nl9F-l9FvvmMr)1 zAb}F!&bN#We&B5{ zF#YlK=YKkX{(mP6`*Y0w`}g%1e$7zTlv0D8(WYL%zO{9O82e67u(kCbA>_?B|6yIH z%wSBV$7Ascp%^mf`5_73okjnQ)Xvbui`VjN3jXg{NAd|_wtEQmr71>o-u_#R?x3GoJe zDj$(z^WAs%&dDM?)0+|Fd%LohLRfLvGS8TOu zm&*0^ku2>AnO7^1l2mINGhUQ(jtwix-0l{U3MVeA43S{jx_3g<$tKyHdHfHk8jRdi0@@K!z~j5x^NdpTpu^+*T@(&j$!0fqy{W zbQ9)PuB{E_^FvA=y=eUof9=B_3n3{H!iw}bq*NfE4^T=?+cc>%mm3sCMUMbNSYc#n zw{sH@RuEE|qZ37r5E2X)OjK^>vXjdVisB^|k6yHH;sGN=yPZDlC6EzR7bl4#=ka(< z*fboKtE-oCIW>;}LRevHXt$F9xfWH*_g_;wV_<@qUJpA92OZ2 zNeMlH2_TmnG&;|1NF~3zsu7O>IEW0MCEJN0yNEf>Vyml{03Hx@R;ynn5Aa0C4>S>E znGHz^KbixmDBWY8ga@G0rcRZ-RH>er528R_eYVlV1yrlJpsy?sK#xs5Du4Oo^|*SX zlJU_k5kNkRi0>Q;gyL>0Dd%^@EiXe4?xzYtV&*K z--qTE{4AcafBBZ6pk}+u1ApkW*{PCO**~Khl?3D^ipsqCuJQm*+3ZxQcKUdgRPLd# zyRM!V)v0m;Xeb3{PvsGUo&k=dLVV`|O_g1L)y~nyw=U?v>_Ew;rpgKiLU3YTX!qn1 zFeOqjdNTxBo0=+{@V^vM*?`YfKLvBQ=;*YmCn{eGm8QOOp_>OsoPV;ZM`aU!9~yeP z<|26n45}2mpUyzLO+Axr+cNyDo11o?N z!m;#rsnh|b^vf^LnESYClF9w)=>unWqdS)=FqJwWgg9w4ncPn%9r6f=Q-RLT9#Z<; z8Jo%Eekyh7WDb3&6VysJzxcvfyGBW+4pON@hqFw$kn4AL_K*-8ZKhHOGc!(mgj*S? z(|_p~lpcQmx%H!OX6E_K%nMhtp1775J)M3*h{ZN%W}eT^y5kY;PM>-AHxBIfQ*qJx= z>LM6gw`VKtyah@G0M%JrIRr*Lf+dwOZd+4e$0Hb12_rTIraXc@mC$EXV9g_#R0%Dc z0)rmGs!Ax^6xj3#hE+n&rogO6u&oj&Z3--Vd|BYl-o5we(W6I?907*qoM6N<$g2;mwLI3~& diff --git a/test/reference/radial-gradient-extend.egl.argb32.ref.png b/test/reference/radial-gradient-extend.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1f7a766eb81e28fd882ae14741f2551ceb3001c5 GIT binary patch literal 585 zcmV-P0=E5$P)hT3MsLFbSp5acSPX*x z(kbP?oiP}m3E{y>DFx5yy6#&oKTs3uVtfAkCzR>|0CD}M_nxhfQjhuZ8uB5(gV-(x zCdHa(I7R%=?Tlf#8^ZxW2qWeAt|?{230I}lb)66wt(j+MOgGKV`8YdOS6greX_r7c zo|nMxh;&aTsRDp8d>HP#!h9MCwj@;xTiE5oXB*94(dqTsMzdFRdh6POPM%H3Glrn-=j#e`{<@g0W zEw*$rsS}F^t&?|I3ew3hIp0qG-Lpq6i0!dE7x%w*je^?LMO|!PP|0{jfb~@gAfRvR z0RXU_?5bBGAM!iuq1?d4Skv1%VqLlQbuuj0_i!H!Hvqs5m!l+ofcn$ha4DLKA{on~ zI1n+|lO0bB%`{$d&AB)bmF!V<&`gVq$UmiwAlQ;rEp+(6Py~Fo(d-qSUY~6=dqt<$ z*U2gE4qJTE$?t8gha(bq7i{yICdJ{C;j?XS&Gvw(!zY92$vk|AT6AK8WGhEW5@wne zomdE+3an-l7hyZ_7x1*$(#eUIf^>3SXP{S{Z|B|2vqvrJp^n|uxa!z73Tivw*2VT0 XMx!4={F+0I00000NkvXXu0mjf+x!#Q literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-extend.mask.argb32.ref.png b/test/reference/radial-gradient-extend.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7de5e564cfcf2e0f85b4908d39cf0dc514d745 GIT binary patch literal 466 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

    xc<=nE*+T5$}F4@y^8_Yu$uAM&*I{{X`p=i{0}H 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 literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-mask-source.mask.argb32.ref.png b/test/reference/radial-gradient-mask-source.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf65b3d692200363a06870369d43878bf91dab9 GIT binary patch literal 145713 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

    l1ax^uUK-!!FOGE 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

    {rN5WK=#NU2*#O{^+D};l6$BHBjG$`q%AFk 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

    l1ax^uUK-!!FOGE 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

    {rN5WK=#NU2*#O{^+D};l6$BHBjG$`q%AFk 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 diff --git a/test/reference/radial-gradient-mask.argb32.ref.png b/test/reference/radial-gradient-mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4db39aa3f4e88a78c758f4d35349245a9dc92ff7 GIT binary patch literal 286065 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Ⓢ?y^@GcOnPSMPpnn^OUT&-dm{QKyxmG+mGY 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%0D)lcIc!sNL4n)>F2%VC@hq!))@D*d%KJp(C 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�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

    9( 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 IM6N<$f`srgA^-pY literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-mask.egl.argb32.ref.png b/test/reference/radial-gradient-mask.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..66543f151a9c49e7b8ba7f37202b840dca8c8132 GIT binary patch literal 340688 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

    R?|lV0&Sokn!rc!)G5YWjNI$gqd?v!m`{W5w8`- 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ðih_vfcThX8Gx)%gm__m*Do9cC`c{rCGR@0|H4 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
    RL(mPWfGM0FTX?_#%Kx}RbyqZ!_X6evgmp9e$) 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 Iebj9&UZlETzDKc_T242y3ODzf%EBy3Z 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 V_Zj72zTf}=002ovPDHLkV1jk&aL)h$ literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-mask.mask.argb32.ref.png b/test/reference/radial-gradient-mask.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4db39aa3f4e88a78c758f4d35349245a9dc92ff7 GIT binary patch literal 286065 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Ⓢ?y^@GcOnPSMPpnn^OUT&-dm{QKyxmG+mGY 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%0D)lcIc!sNL4n)>F2%VC@hq!))@D*d%KJp(C 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�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

    9( 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 IM6N<$f`srgA^-pY literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-mask.rgb24.ref.png b/test/reference/radial-gradient-mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4db39aa3f4e88a78c758f4d35349245a9dc92ff7 GIT binary patch literal 286065 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Ⓢ?y^@GcOnPSMPpnn^OUT&-dm{QKyxmG+mGY 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%0D)lcIc!sNL4n)>F2%VC@hq!))@D*d%KJp(C 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�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

    9( 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 IM6N<$f`srgA^-pY literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-one-stop.argb32.ref.png b/test/reference/radial-gradient-one-stop.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fb35be61d82100cb3cd14f076e496162f290fc14 GIT binary patch literal 6306 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 YmuxLa>7NJxbU++DU~BQ}4_wgy0Dp;YcmMzZ literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-one-stop.egl.argb32.ref.png b/test/reference/radial-gradient-one-stop.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f48449e1d5bf350cc41ba6015f073617031f8477 GIT binary patch literal 6395 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 YmuxLa>7NJxbU++DU~BQ}4_wgy0Dp;YcmMzZ literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-one-stop.mask.rgb24.ref.png b/test/reference/radial-gradient-one-stop.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fb35be61d82100cb3cd14f076e496162f290fc14 GIT binary patch literal 6306 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 YmuxLa>7NJxbU++DU~BQ}4_wgy0Dp;YcmMzZ literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-one-stop.rgb24.ref.png b/test/reference/radial-gradient-one-stop.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fb35be61d82100cb3cd14f076e496162f290fc14 GIT binary patch literal 6306 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 YmuxLa>7NJxbU++DU~BQ}4_wgy0Dp;YcmMzZ literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-source.egl.argb32.ref.png b/test/reference/radial-gradient-source.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..a6a7cdb04c0d3433d8f813d88bb3053a980c6a2e GIT binary patch literal 458552 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

    g5uIjO9;qf~+5{Za~b2yQf0 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 MP%e=Y8i}@zcKz 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

    Y?l_;l~q}eGr5E;(C^x!~b^rWvs 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

    9( zm1jj->)N>%3uF7{k?kFQyl0-=!fKMDSG?t@^bqD{Kr zXNh#YbHP4t9gWCMB?TobYj17eZil=7% zSZ#=!oU>qYv|>ioCVX0DeEX5kP>Dp7phT+f%3H7c2J^=ef`x6j@A!Ib%OWrB@~T6B z0)fBSBm`Z3_#R|0WZk$AjB8zQxBof-CIMiOm*%*90Ti*MqHjC^a(c5X&+1cgA}gD` zH*NIzTN56HJ^j~sPMRsf@y&2D5vlc`O5aSC6vnYl8+vyD}ZS+vF6WE<2Ch zbKg)le#}pXr$8fc-EO!}$xEhv#*n{g-)HuqF%LncQqc1;iG^FA&BW2gyK66-j`ZSV zWJ(*Uq{l0-su+w`VPV=yfbl<96yGNYM-8w!#{kvR3c$*yrNOU{}hq)*V%^ z51D@KFcr;7EdW9g7_iSc9-w6MGiEs}e`oANiHtJkljz$TbcrZJL<4Z98wuU4sG^ok3&4iUmrzBY?xoBfSX;vB`HuAmL0NZ$M0&??$8fVc?+q2Z zcKTrOa<`z?!|_s-az<)Xlc>yU6Cf&1&qC3jn29Gsl_~Z6cYJI|=r76?DsVXFRN^=|+E?Xdb>x(oTuA}RLRyz*0f3XyU{<3l&tL$> zK(iH&GG_FT%h_$}F>P1u$`k~K_9Y4a1aX~3dyQgutdI6MK;wsT$eUtypo+R?r~JJOO`jJ)URkxNzM0%?W+A@e+ATa4?c*qJuCD2> z>F(a@%kOtJKGsQ+?nTAE7k-p=#OFC2G87W-X5!k=X1_LX@r?N**w@0ym5q{uy1m}1 z8RMfEbHDUpq85rfJRhM(dB90D4qY*xG^Pf$E?t^+M_nAD{~CfUD^r?*H5aZS`G*nT z;Jju4=midO>o9c}+aamaKA)~{{3N=8vKg3Alq1Qgwu>1~l|^Yphfa<2HBF2;5+|Dx zzJ_DoYv*>k9o2#EYL z`c?){*5+0f#{TsJ*C&m^)cR-k=W+3>xQ!-?YlG!lyXW*Y`DYu1Ms0sTk2|#$2R8^d zT&-RqnOaf~DIneJf>hgO>Q(YoWV1a>m11hXq7MX%@gV#mu252H7e#K7v$HP|9 zbf>`?=R>Y2%;GQESI(}2sr$OCuj!$WDVA>1imJ@^A>d+-7*ugcH>UA?&ZS!vE{>6t(4e+xb-}ymt$#=HodA@0X#%#1F^j zJM&xaI)gs&Pf-uq6rVgqV|2ZTGq*9tFeWZ5k9-%G14n}_iSJNGaVm1=(lrF#Z<={{ z%64(rt&~jdU8}$1t+!->Wgj9Y)j-2LB>r}9SMP^!vA!3kja=Gn8h`t}*tAwse7B{x zmsJIOuj@>IJala9ulK!deF$kv22Av3-1%%j8JGttKy$plmI@hGmif#&v#1Cbx64}U zxF?^M+tzlr7!$da#N7o+k`{I7q$DfY|1%N%?x9uSfR}kha-UAp5_*!*6bF3gSU1ig zkqf=g6GL}tQd-4%%do8tXG5Y8yg-bN9Hmpb3>x>x!1hFWZ7LOJqD=wp7DTc{upA>i zR#^(l4LJ42@I2?ry-U?6%n`Qf`@a^F)_Ti&G+kJoMAlI~L?mnT@9eY~}Nj}2tQoid`M@u8$AjPB*r9)=UI(stOU zQqn~8(fiR?(I-P(K2@VjW=|P<0s2B&v8DU-7VV`zA@Z{2CdKSDy$WdTM$+`*nJ3Tz zsi8(sS+pdn%}p}&}!kptjjR>ZODt7(Xeurjn8=VT$}hXPZx^}4GqlbxIk^{ha0 zH74+gO2Fjkp>C){m+elCPv(QrjOWhoCqV(C@rd{Wd`5bTCTVFGGV(GsfSbnd7J(N3 z(Q{#XAm0Hr5-$C9H|v2$9=n?=q6?{8J``%O)}MgXS33E5vV6Z3NpLHUb=~nyf&bi(`cKUG z^gzJ&LM`(w0&|pfahgG;d@PBOk+^g=piAszUP@U3zXoxlt83+jSsEDH(B0`uokuJ4tbyVcg2@&nT%M{!sucR8v-Gxy^7B?}m8y>j+b$A^g z0^$Gt?r?v2n|$FZAu2^rV-7){z(jPHqB5T6#-TU5BzBaT59l31wNZ<)Fq=@C;jm?f zN3t^pTKh;ZH+Io-MehDo)d;^1U$)kV2A)ls4~pa`!=Fb{x=XQ`CLc2sbSQ6LtT612 z@Q}21oI321lcS$Nx;*a<@&dW!6qe8{MTRPgC~ zr^?Zj*~}vT^kw&=Hd=6W1ucmUM_HgQ%Ir0xf!)NtPRUCzA6I@Rr0i2$P!VyXOiU0q8v!kkOJ#ZV zVJ8U*v{B6P_4|L9-0>rpm$`b@aEjEhf&c)tl~Et$d|6Z%8$3z!mD#nJ$qODId(e4x zP)yDG%nECvB|VK`;pVJZSd{#_crULj85$w1q-1X}mIo)tsLsLI8!Ka>q~t}pf#L(~ z9G4nZs~4M|lIR*_xUzy4k)WvsBcF$eZ8epjO@bCc4nwuxxtZ2G;J{JU0H#^+w5Jn2P!rhz^NbXuA-Zn){5ZH?sAjso>*h;$bVVK4F2nM1||4yZ@_hQhUj zD<{4Z0AsSwZ2;{W?!yy*0KdKkf%vsW)xro(hhoCDlY5z~0aw*ajE*#QnX)BA^N^iG zQhSJK9~#_H&qy{IkHPVs0mtZw0H|J;R&!In;yGTS#0D|44~eSPRm($=R;l0nL~oX3 z5ghrv^L0(dH0Fe$U&_|q@9?9c%q(+*yc7-ZMD8FKJk zrjt#fpXy)2??9@HENUQK@p|0*`&pS=W3HKPR}BW_`}Z>n4$SAJkZ6*IBxL|7gf3AA zny@LTlGn?bmmi)a@~~zfvjPT{OHDIXbz*UJ?E5p5c$9v?luB9=VyADO3;(KTLVj+e z{)H!|QW>M}uZq5va_=uoT=h%@8fMfb)f)B=sC9+#(V16Ql3Ls)L_TNUkolhYpuPQT2j}TTPkA4=ZwPcQJCb8hviWQ?yRfA&bztzF7<1o6nzW5iJcI zUMWYiKKcY(UPWsdNEcaKkDR4iZ3x${)Ah)HRO5`#?5e-%-fU}%#$Oa3)fh2H;Ym#C{s3Tubz%OsNaFZ7o^2gcWo&kJbanY`3U+keb=k#&qo%Xj zDlJtNB=+)Ua-R=X>z(ci3eq1pEQRSpljM5XI}iUE?stpG(7m1YyxF4q{nxXPgRo~_ zXX$?kUhx_F={wHgc=f4u=fVHA)c-cBlK9Lr3lt)4C~;8XeL8;hqwQNXEthI$1le$7 zjCabs=Y3O^W7oSzJc!#)Y>CR->}$k%N~R@Iqq*7vg^Xho?o_X}`072;FZz6G}A?ZP`z)K<*^lOqwmP&^r|J%fT zW($K{qz=E4$IBd&AbA3oF6O)UGXu(lg`s#Dezi zsKv^|)>v*;LM+nfGO_Y++|3K*+RV>?B=+JNV7x0H8WIg8Q5&LJ4+Y77Ok1(FcX#+r zZ{_&h-RnSRNi78Bu6gFoZp_#T%&f2#D_3$&zYUXbfQIea+yDVVX#6AV{GRgW(e3N` ze$KwR+FPV0-8D76dvQ|4SVmbEGneDGegvkxk@vN^ugmZ1e9ZPNr&vU-glK7)M9+oxgVV`ziC>0&TS3PZbx>C z3Je7vBDds~QhI#mn)@ z&)+XRs*+$GJ-lUT-4>ie{(uI-jE`poM4E4J5#L3=XhzkfD9qIsaA}kwj5N?ttJ7O} zB*GE`00h8xY*jbrDtthF6(WGY=K%);B6uv>J2%vkC{ryZd#I z9>Thg4tEdK75Dq|5jk%iWH;b@&i(`VoFTFo=)0_NFy8(p5W~lH;+TNtOVW)i+a7VJ z9%)Gc0mn`J_K$(Or}>GA2zYL_@nj^#PqH?|q)9GFIPi5Qm39(zktyA60$3ao^k(qI%6{4 z(m6&5z)*VN6kiI+BQIXq_LtsMKZwBLXsh~4Ma1s%b$_l_rELVTb}nSWZC7+Ug{&H( zk)Q9<1wK{?xMrVbN)RJP2vv93;p+4d%iyI!!4rX0!4mWhoVQOs6@<$BrPtFO-JTO+`&LQNb^`NA<~t8 z+~3y!04t(y4en_~YFMDV(eM$C{~rJ20bX-#VjSgXU2+y3 zF7Y~9pZ)^zdGK}Q6m+r%O`?*FvYhgKI44a`lR?n9e|5a&ovCUJ*Q(|wm8v_{zv?dR zi<+FG+>Woell5FVg(O~sNETVNv>w$-)m=z_N*54AGS4h?&zPyqwEz*uPH9RBG{^;4 zp#p$RW&Z1nt+ZegZJov7B4cU5ZX%hONGB%JiGA1Y>$y7HvZ|+qKlE;UnzW<^9k62r zf`pTpt^@B{Co4q2;9BQW&On%>!wJd}a$YJS`yLU|VhI-+89{+&?b?8NM$iHR#`5n> zWgY+tC&wuhk>{wvLWY@AuF;+pC5ST|CWyUN0Crcbzv9ZZS6;Q|s^MaIpcrV`mYFuv z<_imy+_#vUcvJ@fs;3+kk4{aTavF3J$i##>f&wY30|eA4piNMn1&e@KASjT^MTWqh z0ziR9M|S|h4%jN9hOX}Vnnh>o({PYZV6-KxJAV?~$z?yh431ju53$1sCmcXqgW5^k z!!?0!`AF`8oeY~wru-NUdhhPuqt}f#9%wY~FR|T*<`I)e4A_Cy{&G7(6j(S`sYx}= zA*NCB^|BZ!Ji{R|nNG?LvthHbvGJ6fPI=_1kG%H7*RJY!+D_r8C1&irNJ7>%R2R!B zJh$g{vL4%cR?mZy(00rV0u04%6+l7gPEl5aQ8Se10|40407YrTCZVLDq8KiOAOr=# zfEMA_RhY~G+JHS&^;DdPYp&`})vNCMbf>7Ix|&XQ0Xap*J`gDGCo6}2p#rdT{Al7> zQkiPe$!gT1ije*joH7-Jh)O9!5+E*{Z~_-0k}P6@$}WL7T>`M1GEG@mDp#Jdb1o;Ob*5usCRmVEER;1JZ0~`Cuh)YXs#v|q?UMJzwtcqodP&+oxb9D-o z1&alWZIbH(rvtD90E@PxJCbHC$w5RwDc5z(D5KJfnyx{zB`Y7>_UtY%q}c6Fx5XeN z+p;y#Hm#>)DlXHR9kOvM);8?4neM4xuJS#*F4;PC(~yUBjRzXZ=48un|0f?7t)M#B z_9`vCIZ9N~)!o>YgOKcijcd;txoz6AHL*iCY$gw%Jn*vz{^5WBVRgUViiZxZt|}$` zu?AMN1sfJ|wu|Kyx@4OoVRErfI@)aEQ=K@!^WV= zRbC7goRlCE0U0-?o7QC8)v?f*wTV|7GI)Mi%tOvr^lM_-8r;Ce^|XA{w8dSF+=I{|H8 z082n#11r;wfEuDk5m=TK$PuHNQmO$vUq6Qyi3lwUbjwvPtf^+5bFP&pLue2aq=Iy@ z{dlI%LpmFd+VHb0e>RqljT9q7*EOgiUf~|q0fD&I#b00bR9tw03KL2g*|HV7j=@KJ<+b-P5|qut}}!L-6MR{brRZSHGVl7WlQVd`+(6 zUZMGd=f42TE)KHUZ+`2W5NU=9=!6%Z5JWx5fN;UrF9={6iGW`Is+Y&R88m$MbDs@t zDv|~JrnkPSrjhx;Ss#dZvnGA|+fUbBr+!r(rF;78=Y73JEopTs51#UuPjRnywG4jX zwg+0&a#B!g8d?-M-u7Ox=RWM*3m<&pKfLuHlF1~QPV}r(_@~2Lp3&Q$kloRGn0|ZX zw@0oY>GMH%^4NT2-O^&4be9MorTy~yU)K1!r$6uMu}*>-boRfU-P4ui><8ZP0b%BR z`gQ!*+oPfnsCE#$D8Zam_ERvYy7XXrFZSlj3$h ztohp)eY*xPUi7ywswHR7KmU9w7&2@c)ELc15Bs;nYM*Ck?-ff(1r`S!a)6u+1)q_o ztABH~pFLUr*OUKOVCFQj=8M07aXi4HJ>kR?DhXW8=Y8qCnk&l5|L5cyO!@FfKOFN< z1oWF6aYB03V;@zc->&%S6>$dKf<5Nx$J8uizV%<fLyVt$`b+Md+kw5;)kH;ce27cSAZ-c1k7yz90p|jlgajwSd?Wexo zS*MY63pxAaXB#$#jUgim&sUuI3YC?{9bKin`e&E^%)3dnidMqOa`uYN*W}q)maWOM zHCeVcn@A@_>hB!WC;^w%Ty2=w94k3 zYt%-Wf(x^4ZP^wXm#@G4(mgLtDNQ%0NjuRq+F6`rYM>YpR40X*UMc}zEukP4iW0%H zm9B;~Wl8lIi}YQLczn z$&|0((4aS@8=myjCpGVD-u;5RSNq#9Pk4o`^vodLG55>#c^^L5G+_W!4y_- zhnG``FE0X8QkIPgu+ycF9hcp(7$_z0%ON9kl?(XGC^O0=c2OlIivlJ2NS=*mg6;CP zdA26&=uXo%J*rD6aXxCLt3<5Y}WvoagyfF^| zC{_fdF{EFSP_VNAJ|?bJ-7&B$OH5Iq8(PdUmqI#?S{_K^l?{_2Nx$ZpYt&ZRf(uDo z7+zUy*VDa=A9Qg$Y46$FGufP&X`^Sg?rEV&2ke08c70u4=qgbjXTG9Nqb4Sex+0ZO zE(tDD2|#da2^*ns2GCLEqI-^!%AHWA)CGw5bkFm()F8>XN}+%)Y)|!Etu7~8>4XzX z33J30Rk2OYk9UxG^=+>{@vakh`KrNf57u0(sOze3jj@YUt}@1hKStiGyVst*J)8Fj zx=yg2$#>9}mpfFr#H+G7=DzU&X_5y5>|$(JNzQ6!&6&;|=JRD?txC>IlCweUCUv*_ zbbEXBMt?IpdF143&%rW;2W<{#L})_*U%l$Cx>QmneI*xVayCqIDW`}v%Qce}WDJB$ zrX-oRHd`CI27m&9=6y}~E(ueEY|AE;Oq=O~iX0ub%hqOSQFT_+o^EYHTWd`&KlozR9J z*fpr3G6(D&wzCniEB!*}PU4$77ipg=0>T)$!Dn6Y#4PCKatI0CLTk%3BQ4yl0)`gs7f zuG)^!rppc<;{sUD@|mU4`|N=V+9&O4hlHZ&R=8fI!Ys@rnJsII`mp*lkz-sLJ6 zJeOl`(OP9WEn#1Y?S!$5vyIe@nky*g$o)=kwi!4Z%S3M3ytip)&GdoOt34T8AB0qa z5kkl*@GMb43E=XiHDFhfQ%Gf=4v9#Y)vY$1t;i{2lN7X)QEA#{gBoVis7&chdu%7b z&SN`dY&_5aC{v#)Q-k)O*?-zhZ%#M2O8>1+Bx)5; z+VxaV%wh@1D?0%I8Ht>ZQ>xDmn}UmsvP3NtV>hd31=!_dxd1yL@I+lD6(}+x?UC)VuD34Tn5G-k#(1MK-Z1UmsBX*Q&{&D; ztg;T$B@ttXxlh!}8IO{Xs1mg^d9D(;V4E5pPbEXW@gMjoqg_U z-Lu-WvNcf$ZGNd%`g<_p07vAh7FZ$-ERlzFHJz+~5Cc0IBdOSwQr{;jnM$M-Tc|sg zsj+-4p+p3ZQo|#_4xmJkDeX7AU&nOXS$iU#xUYHNR5Im&c#dY;H1A(QHIlCd_c#eK zJQ*iseJ#FBV{D8Ps^22(yO_rF2(PBM;J$6gRHT!w$|(Y-H}3PGbr5K%81ngU`Cg`N zTvcVtWT?*A0W-6tVtpwdS;|$OaFTN_so0!y*6cW!`D4pxz;@C$qb87cW4Z2Vu{CK> z!}E5I@68?B2#j6aYQi54=s$F!V=qwLRRpc zyqDk}1xgq@1EH$&gAEC8W}wlC(2zlT0R0zwhaf zAAkICvAeEr3&Fq{X1U4*sJUf}z^+_!m9Nd#%CaU~vo>3sPNcHzwl!H)XmIzXaw=0c zFm@%XBSU_S7tDG-FJ|>(R98vYmYS-b?pd^&wE&Kk($*ham^DgfM;Z^pB=~bj#o^w+`KU+u&`pdUn7L zyz`Cklun?kqoe`rx4!l*xeqYpXx?L| zBqpv2>A2&Mt7XAOzZn-3yz~_>t>|Agf99Oec!7)ze#%E% zXt?m(7gkDV(7xmqF9~N8!>su1bI!J9S40`}w$t9`)n0OM@zK*iD$>_MJ17rMeCCN} z*60~6Ydx#)xbBXD!VQr1g2(Oh%=5B5bMVx`_q6U=-&_CW4NrcddEwA4LreO=J85iV z4^zpjQiHDg-BmvEDwT7`KKIyKa`rRleWoU-IP-011`X^3jm86w`+s@A>k_tWIp(ZH zuUG;qRB^ze2S`yJ84{N6%B!w)%$#z?RmVK@m|Al7Yv1^q+}U~>?=>gC#k~!`OH(#G##Tm?u4m(`aiz-AKuemZrz{ptY>h_#bD9hr#p4X6zn9uVk=S-&DY*= ztvg$mRf&&#!sGk^IV*nuf4*N!UO(@J&#P_c3t#zye^sj7PJYA5!J}9+YyPK?{8Q|8 zhk$3k{Y=#Z%LBc%f(S#J}PxkAI3Qyelm%Zu;#_nzf{TaLett#6B;Cbl8!Hg)gp{6<_(w zD=XI~utyzzR9tSziobL5cPdaA?2G>PMX?tkD?aZ_=f$~K(HhsTl^^-oM`~4f@BD{% zdh8AeDpzNnd6w_IC7JHmpY(cf_a+zUbI(1OfaKW7Fw0c-#?#(dvqPn`7$ zPq>O0_Ql7)Sa-C)R+<^}hpYck>z%XYUa`e+kq_tXPP?77CzHv^WOASwNGOq32aTmPAHbR$_v@?13^DL7aZURd7+kYc}t0a;X zaol0+lHksF5S2@B%NT`HBFPEY__>^NPD(L~DwERtS~{YJ>fFAl(s&*h`g5l2FF_;&c3`j=Y;0(lSra^uI(pyE zzTzjkSoDo`!klDYMagYN3VVo=z-keqENu9Bx(b*I_M?-;mwPm>e2skH+( z9ZA#8>EV-yH*NFx!@o~B8On$59Jq6TsDp`R2n=oFJ!w}-yh4ylgc&YX6k(p{;qZKl z)>l9>R&uZPs=HWD0Tn(~U>_Dvo-$wugj@Ge zfSr6X!5oT}%9X>aW%-vgHz}P>h{=Ho9sGyA?vi}>&{{#| zGB6MzqKss6hS~stfc_rTotq-iR?E5;Sb%|Aaf2ZJmAI(f`I0+Fe?6LROogt~vwEl) zl6zclZlb!%r%JgrAEvUUgk?)eu5wWaC4@H?_H!Hbt&wp_T(8Q&p`uQb>Bt@&3#ua~ zB=l)nndb~0p7Ws1<2jdsHB_jgpdyd~xSf1twl4O&V85CDXa3mw<3wYkz~b=s;fJ;l zJ!tx%)&5*NLn!djjZFX(zTV5@IX}!pI)Qg%y|H8}F>PboCTSTXT8CgCK;c8&WQte6wF z4Qq#NI*~qn>fwWS(6G5__@-8~b;rORPlP8f|9qC>gG!|x2CiZ5GZh1r*dax^mpoW> zCdNACaN}}4pER!-pajXq9Fr84hiPotmWMzN+X=7}F9=2;5cefUwqOfY_N19iIFXMY@O~B; zJD-YmS;Aa7JC-t0=(|cdx(><`ekg&R0+*96P3aJ^UQy@xphyD&ZsKaTF@onD`T-^V z+G5g92FS)MRSTxV#>GobizF#ad1>p9=6T|GBfo3i)oMP_Ovlq?GSSmo_w=A06jbMj z#p!m@z#1}M{VJ^^oD71UgN(QX$}Cy14yaWbyC9X2X$L1jasGmlX4&aiKoOAR^U2*; z3COEaaXIBNC+fAvp0u;d7F0NNxZ}mX-`IC%|CwxkwmI3{Htk1FKJvin10Oc~u(7P3 zW!N2aBd+4|6{~T*SH&YY8Y2S+i^1Vy*i0F>OdB(8%#>*s&DH*9J3%<#4LM(x_+ak2 z&S$S2pJ&+L&H4^NqV+7%?@2wxSgJNJV z@NQscp!Rz|91cHx^6(el^}?q;`Dv>(VOxl}e!o`HCAD`IgjbHN&~?6qKW?a?>Xe>i ziE0h(%RME%C7ZS>TwS~j+Cjm5V!7|C?z&~wT`$NfDyChLMwwD7hKfV8Lx=O>hHY51 zcMaTi*T7xHaIqrV^AgxOSQb~^MYVS^jTfUpu1YRyC3h9ZE&^=~6h0hG?v4V9N)xnW!mD;swRX;&#n)fG0*`u;gs zQsPmn-tYCA&D%D{2Os{ycijDs#siIXQ)=2q&uW#agchs~X8;QcC*nvasE&XzM<=ra znObx*2yqhx4W6-!7I6pkh|RN}jO{4iFM#FDh{iZrj)x( zp7*GZG&QI(TnrBv!$Y~lcH+JnmKn20w#Q)M3ThYLcZQAB9M3JEUEK&axn*}Lh#l9! zVY@h2>*>8f*UcgJB!5MvSA3uVW0RE9El&!>CC%ETrs^owRj$mgqjg6MEgHyC=`G$V z8yobr>Zt@4ntzq4bRsFCngd@d>z#)0Z z0v)ikU8{OZ6$%M8=}cvz!y6l))Dl$ZNsxt;gbM+?qE!?FMKM@Ro9SsYElF6(#>S9N z9(Z6UpGL8AeI}y1e#6Ek?0^JpImWIOz&emo?eXe5kyg{J;DwpO>IoZ1sd z=H}Fsb{_npo9np(axR^Lg3bUeSG$zNh<zZuMP%+fBOW;{A`{8A9RG*%Ks}?Z>G^{^#S1E^!Zxx`-h@BQ+*mD0Vaz%EYaa#Z{1Hx&bMdC8FRbe)HHO=?Pe zRc`>NXSKj2@7_9`4?DYA5intqOeDIYZN~~@hlG1%d)(i=U;K2%MBpCf9-Q$lVe4e1~ra)+)<%XEFltJckOk` z|B6<_f63o7sn?WvRL3pPXCDT)&BnGwhYH z5AW>;^yUS2OYId~3>G)O>&6@Y<%YdGdyf>MGt!bZaT-|h?{EEm?OyzmkA7sWn(&IB zULnTiqUW+`kA3#BqJH;x?O*@TulvieJb2}6Us+3DfAmuy4Fi<5Xy5gocd_AE+Vj7K4L!@QFu0(Usto+Mi;g7$^o7)*5f)JTK;%Bj0pnz9#SO*}Lefizd>EiDY6j zo!pdcnoK4?@ahkYT{AX%&FI*#$CCD+7GtzEJxmqcbmvX6`EXZtpK$aOYVE?l^dDcU zX<*;{&Ns_TjSWr%d-+!`7hmG_-SvC*_F9vzSbel6Ee zJoo$Q6*xzLq1mX#8(Jn5BTjA1f#*2m8BLR!UYq!>Bvq|=h=vIufIF>Q18|6J`k zJb5t6qubIv(6e`|*ejL|-+bH6wR7Dg|NN0L!O4n$_>&*TB3X;}8P9n}rRK-*1^<45 zNMHRm`!y%Orna4reBvXubML#)c(iHa=#CSth%mXk zu`8FhEzj~i(SAhx?&shA{!8Egw%@-^vtF)Vu|6ku(4hzUGAFq-Uw!S>@m&WYJ^qQ0 zujpGffB(|&$5jLt?eWh)o^|E6PzbtJF91B_3VtE zDFzBaP*y4H+L8!+7uytv&Jz~VA`qmUdeA7a7cC+ptCBOrl6#BWQS|euWAQ65lc!$R zD#<>?z!>=~tygR~CJ({eKs)&bgnBzqW%+$sD_IR?t=@B}Yz{~mDkK(|%%#S!zVNF( zFWqx}cYTcNwk9kfV5pWWZJ(Y0T%33XZ$2|CiE=-~GR&uL z0S7f^O0~p{kqc7b@bckpOm1BE!^>7VGdm~iS1J4gcbW}U+}tw%h+dMHq};iW@B#sJ z(1H48K5q(7;5Dh~IK0xpOLbJswihN6GmE8H{ zY)WascGE_R?Y#5rnruy`vaas7s3i>@(v2x6Of4!}g;=^e-53^ya-IGBm2`oLoEO;j zRIjVM9o^~ZjvWZipu~UJkdZ{P|AumGIbcT!1io^@lcHE4D~|n#YsSI=u3cD=K`{6% zs_O#=;LL|HU@|9z;L?#8umU*1sU!E$fg8@r zwfrpB^RuoaK#m^a#b`s)f^o*sfjqkmXVkU7SbO6BC;n>9ua*(mg`yxow;qZ`AkU|8 z=8g~f)_D9J$wiC{D_Qa?5UlMoMwXnUDwOC%P}EySLsZ*sFm8Zg6(FE15xG0 zcTK(~$GoR|P1{T;(V!a>4Nlp%Y`$MEN?2Ejq6$la1QBu(G|X3^HSZ5B(^*eDY-b0o z@8B*ip?tAj%Bg%e)l-yT`|W{c!+*{ec=(3>LO!sYSMFyQoOdX0Zv<`sd1xutk9K~>?3V!)vSE|IH`A>&+a zbLA19AtM-~l1a+~jih_acAtFwJ;$HF|M|kL_g6gGopU@4O?lPu5@Ec zDHQ`nI+EtYxin@XB*Wa45>FIErBGTELC-7>Vi{rH?IU3pLArbtEFRmPZ#bDCupgvJirRTJL` z7!N1~&FI&G$%Fm^@{k6KuJNuJ^Y-;SageSI+p@N0ZPVJ+N*gPO>M$E921fFcWGYFf zliij3i-`(Ws9Jr_Ws+*xE|?2sm6Ve#tNqP(lJNPg61UY*ov+ZZ$tgT(=dW;X9d*sJ zU?uk_S2D3l3%bj$@?IM&lsDi0@Gb@uF>b4qK&pyAYQ&zWnxLKmto+}I`SWjK$hhvE zFCG=UvGwTvg!(R}p8J5OA$t;MLW!oxuYja6P<9I;p9?P6lDGC0<4#0lSW z`#xQX1&R@gAtUo_$T*!uhAu7MQ|`_)f_J84eA`vQcB4E>NV&?px|>p}L8s#>HK`aX z^38d+Hsd51Liy}ge72mANSe3M!8dB`sxB)A3*L?e3)H0j0py+SBozxb%Bunft3B4v zf|;C}(t`;FN+5#oeT$5qkaJm74Alde#5ww;3)xky56D z+ahW`oDJh2^K!(!&%U>HXKPtD<-<)fmvd{w1iB~v9CBI32$lH{;$jXc5Pa^n`Zz{@ zp&&B8ct>61LdqLM<2Ww8pq6(Y=8GDtqn7JxB|S_zWoeBdCFH}!@K7-%rd-?S~r|X zqOwYpcG!-MCY^BN*;5bi5=ug1!8W8sLG&xWcZ2N5rfrU8W9xeB*7nw><7qmPCYzFE zGBMMJbhTy)LS3>uVa^lts$yp!I@><1J^6^q_F?UJp7&0vcpWK5qz3lHV^0i*lQUX( z^qn`}S*wSwYqbz=z2nwUtBaP99)85bLl#CeX!!Y6KaanIMf=33JTdfuQ_Pyb`@Qeh z^e-p;%?TBqtmbpSbZ#t?wP;WNKPSg-oUHgm|NNm)$_+ZR3(o9Ojm3GpeG?OoS-HY;(JRix6(PH4Xfzj(m@BHeWM@$~EXLrxV zf4p5LmfFKq^sR?J>d;sKOAWf{2N%Tx*q-XW?4*}bvohvAAAHYfF)9LBQNlj;;HNeo zXh^%*?S=eTCzhvItcKs;{`;B+_R)`fv=_bRAt8%5g@S7LbYJOh&%9qx(w4eFhXFSr7<*lc_wN~(b#{17;&q^%ehpMd&F{t)^}M*?xZ}o-%HoX_$qDOU7-}{!#z&&eol`58i&u&@DF) z-@GB+aK>BCNTw4rWlY&TA4<||0Siu^nq-(?*l*wy(-sz6PRX4_xl!c>y(_gNI z2aVGWl~-3RA6sMT!sm?olZMI$6MpRi`kS`7jry`bk?lx&5$Z@v&bQmnTD8KvZHzhlV!p?U zlt|*lj?_J1?O7#XHzoZ7#9VeIKJw5lLmt>IPn3yQiI{JbSL5rdv=JAi4XDZ!4%1oxraOE5&KL@XF$x1Qe{Gq#gZL)UCOidIML&eZQF<={|Uj&xj zMPuGioD6BuBAJw&ordtmTruF{s=;d6z+g%;C$CyT6;J^jwE^x`kMOqm zXZVJdzuc=4ZmZMdIM108`cS^x7zfTAxGdYL2bUlzs(YKa9&XXE&K)^-ygU;UIzAr} zsl#ej!(q(I#C)g@0D@sMM20LSAMA>e%Sx}6`h2@mR4+~tC7WshqVF$A5*GgI6<@%% z|5w>5BbxK2uKVJ@+Pa1(+~tk6hvNeKw)2->xylkeu4+&st3 zmuBq>9}6d>UF7jUoDYxYqeJIZ*`_%sZoPp zb1$j=4x)v})Bw<8{;c6e2Ci4AmpTEb2bcr0HR~Wtu!zMH4*ua{c+d{Es3rAzv0}*! z+rzJNo|vDWjm#?jq2t$H{jk*2Yj7Kps3u117^@#X3txuavz76+tn1tXQ2lexXRq8v zMQ<0NTLkIm4%qQSvek8JtpvwDm+haQH>th!s3A6(bFr`A!p`}fZ)1o%-5qep7CvXG z^@}BezGmE2D_eIryquqJ7mfaR&kLivX#9MavF)pw-W~IVS6{Ky#sy-7QL!TeRuP4- zT&vj__0ENE%lR%)CHAKnj^g zndb`r^O$dm2me4Z(6r6eI$Pt~%~k#0V4j!<*vVE@WrE_&satz}+|4 zZkMR@6AO-<%VETXah*Bd9or{jz+Jo2%wh4N1*^TYmJ{AB;z-`6jc@TZ$n%_p zeYT{`nZyHjqS)fx_CG%_HRk@8`LJC%jg{Iks2=lG{1=|5r5*eUCB8D!wdPtn$I)LE z%fP=K{q6Om*Iz$!{clHq`?hz#&9qI@PE6Y*Q;BJt%fETKh-76ATdU3d-A%uXwJn77 z=)ZV$O_TD&AOEnXZ+-f+pB@WaSo42;<3D0y3n9Jq6)%k)aar@H|K-!QZU=8Y^{pH= zlV!#4ecyWm%J_(!0N8P^3p47y<#7_$3vZpwxe}d_uY$2>S5|p$Tn$U z`;C$BUSM(1pB)qnwb<}4uKqX@TyI@xdj*EefA*_XWHB|#Ksm^FXuUp`gS ze7*huzTIy``oNy^;d4Z*<=4-A!ZW>|OV*QjPKro&Np)=V&2yZ7-Qpa!P5a=-9h?v6 z#Yo}TpSs{vQ^{1@w41hhc>D0fCJ%e&=rc#JA6@)s+m&KTJxtlK=v%M8;p$o+*khh^ zj90(f)KZf^`-RWebh7Vx_j{y8tSrq3ns@%>PU#gpSPX8DZ@YT2EWKiL%pZ2>!#Lqs z-}w(oXVw^O1aHM}QY{e%RJtu^QxzcjGNL#wR+f>|_4&F|kON4PW}hOJk92fyHy4 z|D4*n_lxI$F>FU!i}vI3OZ@rgobRvx^5B@iI>rwWw6O8^jq!jb z9Q+8AhfTH*Z?_L`PaZb;zK_1o1FeyKWH=vw!BH>pNX)biEWTGPmL_n%d`h0J-M6_c z71EMY_;Xpr{+XKUe_70CYu{lD1Lj5*oPFSjum2cM1O%qjpy6pHyY2;koc1qSKByI(C2Vj@1s1 z+}cBz#nQ9JJB?egW`UCKm5i11Jy}3ohVy&GZpFK}y63XuIYtb%HJ6qG;Wr}J?wvVm zSAoRuYKPf;F)twVs$D4$ z4>th{Ktb&3SEyo+^<`9s>{?K$ zT)ZBa{p0Pj5$)MUVY^Z@;oFY+t|Xxo-R@XK^!=4>;eyd`KujLQd#YwBADhieE=*Ed z+y9F{<*28ugl1xqQQ=yu^SSU;&wD;BAJ^Ku#a&zCc0O^d#+@VPfR%;uS>Gr7{Fmxo zWo1CWSK~~bOnc3S(_3%)9;DJuKJK;4npxNwsQxoZ)L`Aj6AiKyq+L5d z3hrED+@M%xD(k6UrZP&2(%ryr5z!9~#22dC9aKFKYIQLFjJdtP$j%w@4EF_Reb@7i zpSy$$n3N@z<+kF4Dz1=AyZ>K~SV2fvODt5^^S!$8_=UF-MPgVM=dfizge3+XHMCL9_Hwiv<5%NGsJ_E}+_l!f>K6w-wnU9C zDIPfbfrtI!Vav0vC>EgZVLmnW{H$IdLT-ye!MdW(+eN6ZwilLt9()M4n=6?0z5g&r zWtF#G^-86V?sQa#T0~8P$(8$nyGoR{Pq7_OuUwTAs4V5b558|5NdG3^3rzOS*ys>ZDZ6ZgZcKCYdjEl$5NFW z9+ynRBD5(pjM?%}{>?)-FYgB3ap+^K;95+$xCe6*ZZ&4E+#bgRfL;3ALubc8Lq&n% z%5n^oCNwAya?Fh~Ip>1E59fB+76XNtYI*-odEo4+X(7L- zdFuc=`*hlewcC$qw-0Nddcmnf`Oru)BE8Rt@}a+b=HE%LSUsan$Ec3F_4->AN@82D zidIVjBmd#{KR9o&66ZeRh(|bKOL=tu{8vA(X<(o9lqc2nFW>#|@A^9u8S}yuUs%)9 zp7*8mYTA~Q-*9rJmz?6W{`su1d%#+>r@!a)&?vT}RY!g8U%wU$U|Y6z)L$GGHt6kDpg z_8r<+^ju4V%UjVaR-UQByPN)a)1;Z4Oefo>J(*0lllJpp^L%L(n~&t_L^^ui=*{Qd ze8l7t51o1F5^`?NoMnit6~du#I@Dwd~Ltb&{GxVff*eav4yrlN1v^t~T^uQujIFL_a| zpX{g3`BaX1%tM^^p3^vC=@KgqVZZyu?~ddnBI1)?u?Md`IB6%zRHC{oyR)8h)KeDu zd#^pSq+YQAASbi~|Lnlp`A~Yr#-~>46&s&dzje{K;*)BD#fxA5;#z<0PoMMYn%?%5 z(@qI*gluNbC*S``-z!$mtIvDt^USP~F0rz{_ojR0RatN4w9X&*AAA3e@48VQZ__+0 z@Yn7eZoZ+00Uq_|kE-cpFaOEqHJ$9S&pfu~adF|dE{qWvA-&`kFNrBk*DE&aJ5NY& zKIP3d`t6MOpJCB9sNq_{+SVIi{YL2(D~)1xS6}ws%UrKma_hq$c9`!HtGY_{R54Yg zlp5;Krr80Tt<7$jx#8~C-M0_ie%sJ(HxJ#MV}AOZPB+uWOoipA-~Fk_V@=zHe#h#( zKQomnS#(b;R+ULqHohUFggE6)Wtqxy%n7N&hpFIiBB(BI4H>g{GT1SkGQiV9eppP% zMb8A1FQV=|+ZX?rKNU%d)8us$?qCEi(5mLN-}vP@@kMG(AB4WcI5)UGIDw>^ovg|nsgSACv` zD=DCu8LE+{aYo4h$KZ&I;PYlyxwUYmH8UDVqn1CP<(-7vUwM1u{^f3#UCS`e&$`90 z&PUYEo3V|y=2CM|IpD*l%EF-v4_c-UWFbSr6-c?+rljKHL@ny*&a9s8=uWOmm?ZnL zY4bICZ(T22myM_66Y0d}bn|2~Ic=s58&?Zd_J~75xs1A>-aIjHDpqG&_q6V5)m2T~ z48TrVOIE&&N);6(@0Y2JfeA^NLuBN{O`gB5TeJbU37IVPrf>M|p%_91|5dSq2O@s^ z^@6;z^9IDZ*SP8~LUl1Ti93V{;P4loI5AWy6sumD7J2k;F>V>UW$(`3%e6ItvJ@i{ zHT%NPN|rpr&=zb+g~yn09snXi-M-xBYxn|su09Us0MBYE4jr_9u>nO%un;ax21iPv(!hhAavevg_kf&~p)c7($UWp$%0 zdS+*-3}4L%=_f{o?qtQp@!HuSpe80+%Wp6q=5Qe@#R>rxy2KErCF2 zQ>fx9Yq`jfN|akCgb8Mt8D$bqGL^Z$y~}iw%183MUVPWsHFXAVD`WmDH=mqEuMYNu zv65G0oH6&Yg@J$DY7-$_{8``IHELuGf3nlD)qcIb$|eQE|&e1^#A;3HC0!sMv3h*m9NP+r<*q?nY=?}90r|1uzqihEN7@P(u=iDJ5>rfq8%2h5u4gaaA z=@MK{B%9HUo-xW{Yk4m-YB*uruy(Knc6W|Xq!XLcO`DQUO==o4?pI^WbtL1{^Q)Z~ z0(QRCY`_kTr{nR>fgC^%)mfJ-0RRGW7jIOYhCHWS=B3!V(topt>JAw(lpj7m%^Xm7Ulu8P{%$Gs{&q+r@EfZjmS|iK5%9t7SW>blk zEehJOO^X?-Ty=CO;Y9cbK^1n;`g=JbNT!k{wMFk6&YkY`ZJ(R1i8$GcW%q5b4v`Ci zqugSqEzY$5|LwhNm?T$qCA#-MCn7Slo?ZQ*)ijb25-;%@nKuj)2!uTt889#&<1x5r zKwRd2Tp31yFffgIc)r1w(IAB3eq$bL7+qu8#(*)hY$QO84Ms=;2?1&(WMPSZS5;PK zM#MR1-yi$LiIZ8SepYo=cgODh@~h5@%E~+$6|rLNwbsU(+gl6}W9CneuAv*t=)s4_ zb5xdG7Ov2wUFy)FGfn`sv#wA@xSS?M3RIS4$F6kz_RP1--zc~I<(6Z7p16h@ro&X6 ze{d-(ZfJvm$%ZNF>e;cz-{^mlT+DNIIi*;$849fnm<5wna8 zY+Kfg0yVqBQ9=uPAvhrbz=4}wH|bJmTh@-*aLkR>#TWu4F9 zQ5_!@V+R1Lr&Lerp6-|q0tUWUC|}fwY4yt(3o7LFubsAR6)2a~7aX!Y7Oe*Xfwvn* zbt8uDx?LM3qy#V#(t3svTij2qU|$Uohl#zBE-g6<1X4J)$XUlXi5Q6~Ms>p51^jnZ z`}5NE$?tsfgOB}Sz9~nGGB)Js%A2ui*gr*eaALT{w5VXa81~7hHezZX;_a$O;%08( z{}@@j2-ul=Hyzno!x#QEu&QPCOPxxU%bd%dYq?$7uHD)0J=vbQ zWNxyYT-}$t_DeofFo3Ft^&_ZGfm#y$DNwn}1=aPbZ`-!MwHjb|SXGmDj0%+pZ4n_C z@LUZ3ywuf!Y!f~vW`Ah)9~L4I2s77Hz3`VV+nX^{>y`ij0B13AM}Nt>a+$-2Sv5=K zs_`>aE3F;48sRN!v&Mi!5MH3-nAkraXD^^X@5p%y$-|D4Je~`kRsnX_co=Q19ngT3 zXOiT8tThGz$AazdoV@dfhuv`D?1j^}EK?sgRHQG25qIh$!J^-QBRCl8J4A5eJfxcx{F_aaqRI11)sh4v%%ada=>kG*cRg$ zQ1IcaJ{*iTvgO;}`L@_ZLj$_veOCm3t9DmdU8EP zPcbXL>E@eaeW*kC;$MAn?UpBI&DZ|tpY(3|R&+#Vfo*x(M4mh#=98n$7Iv@Tc=f3;gzrXkIcW1jjOPB87 zpX|Tvzg@QOyX&TJnV!C7dVJ^jk-pRux{hv!>D~WwcbEVxvifIS@Qm0b>oT|Fx*a1v z**Cxa&GIcZP~wEW{(oJ+Dc==M%ury?z`-10+ zJ=Ux5HDC9|>tX|JiREkm^J^u|L^g2Redx*$l~{^|zr-@-bo-mP>v^r`bka@4$9MCW zZk9v^pQ~WTPivp1yIKv77?F?kUYF&s8;*2VtdxSE-20RGcxcc(>AWY6%-8<<&0in! zxBl|4{&KtlX!zWpeQxNuN_N{DwuPgvZ2X5G{=<=sf_H6y7h2SP9VnRp{fYnGv7NSU zw@q74(C7cs`Kqr}ug-ax``5YP-#nsOpa9@f*FC4Z_t|^z`w#bB|K{soegCVWYHl3+ zIy>;E=0`pHQFVBQVkZ9H?ca-MygGExeC{*j91KwK)xZC0ZKMV3(7p8KFOARdOuXaT z9kJimq1*QQZSgN+#UK92hXbi3+q~`ax7FDl#AxtC@BNU#p3G&L%`%s5`w!bFC(0?f zPQUiIUrRYnT%uV^B=FPDdzuH7B3RP=t?zy-r@XKGUEQ74v-{Kizj@hj4jwi@i)!FM zwaDR6iM!ex`AP=O~u32 zD!quJ3wD88e&;}VqnJ8UpoThzl^QITf(geUJ=|q32M@F#7_(yvlq+4wb{;BAWr-T@ zamS;PWu0YLmj0~V0#_Q+7vr|9eBu2T;WpCAtz>yY`xyGOR8lPhHR!Xiqg&148Gl`J z@GFwzTz9rX*0QzEYSfl(_?GDy)lqs(_jIpkdkbb^OpnPI({8!RgOjhE*A3U)8!WO)2=`Vo zaEeZ74F&)JAOJ~3K~$9k=eK0#z)9m(h$bKq{y>yTBGN6eFykgrEOM}&OXliHMQBPa zH_U8ssgtX?!<5|JbmL8nfx>E5)W{Qx&J!6ihv#Yzua?aXZy>gnk*=$37P_v&ZHH5s zh^x>cCv5EyKj#JC6-#H^wtBJ5$cog0Uhr~xX9ScS=G!ec6ur}Xvrm}aeg5wD1MRaH zmP!9zRcvtxz3H$cE%rdv+#7&zq{bcaDs$0m=@5sWB(hCF)z`%}W z15S8x1?@JM=@zF^%B10NPL? zDPqG10e|Swj$6|+3wohzx*gpSTB4&nlQ4O52ih%5#jVvCwD}8Ei~bZ?;kLNzD*tL= z2M7oP_`UW%@>u{?RsgQWMIoZWwVZWU&Ork; z@DU9a=CEz+u^=ir;CEG5uyyImf{NVbV`_{HJrqzVsOai$`iOL}WzaplyZ>qX%jt6R z&dGD;&spB(jJu-DLk`v<$4~SH0Mu<$u01P@Z4k2BvW5`3TLPYwEk!mOV4tU@Y_0#3 zkFTI2{8w&XQAf<0Q6rbUpcVwxDe@#yIZ=vy(4TV?-k0thsKJ6-nAh_H>{xS5`%y`? zT-DVih`^PDEaoA^TM|c{%qPiwlFTLLWa&-RRQN_Oc;l{1o&RG;Bui{rkY8AC0AM{t zqzPj;VyCEqS}@5DtL_5R7UXmR@Wqn5Si&#QHZzGXG&InD=iE3&K3B zx7;;(=j6Yf|1UH7Oy)8Ia_EdPrepkvYJGR#qW{wcs655m$->BUP#8 zvFa`wRuk5+{;*`Vhh=%7Y6T<%3&S^p>d4RtUFR9QY6Fk(mQ}O3jP(}}|BK(e?>7M; zolRNu{A1?ReQCBQ%XVkS?sPfnOF1PxoM1aN9?uE3Lxm$7Xw>mGX3VGwHLvH}NxN-* zzp1U;8`~SxeTU6wpRy&I-~if$uB)J14eZG05P3F^<&?(^OqRp~kJZUeJ6(qXI6y)& z#3`3krKCdWMDI`c7gXdnAJCw$`aRRjH|C~qJfs_tD%9Se@0C**GCFhx6;o$T%{_7M zrSw<1e1)SljI6$y>cC-hpxmjSNVckm`!K5 zK6Y#G^xoXLbKP^g?fcs8``XT|j2E4U-nBe3q(`izbupxa$h+!6VfaCj+&MACdWIDM z{65b^jGb)b8N2Fv(ABmWsC<@^?3j;PBI;UJLED%3(OzDNTI1|V1TCYE-V(O55Ontu+>$zO@xzj%f0I#|KH4L0@%4g4=O%5dK{&d}U)~)tSTkAzY+G)S1 zu|-pJb@D~RiF4I%#?Cp1B_bga$zOdrQO@bPmTk3?R@=2Rn`KF6CXJ|4R{Q;}^%BZW zf=lG660>oP>=`>i0MF|A?@Q~@V&Lio;U%1SC_{*V=#WZs>{xL*T}r;)-gNIk4f?jf zpcVv(4^A5dNGD#}yARxrfQ(#V(M`JdcJ6)pRZm~-)jCuK^?hi_R)DN-0`d?Q7r;bJ z+Ku8rsN%Gw5CA+7m(N1J5GIL%CFB+u`l=6+e&3<9V^(M+(j;JFUe61vlRO&j^wjiJ zFhL5X^x&=s4Vj$sp6bmf^Lx|1laHP3p55&}rYp*mvHQjrVEMDz1$YHpLk-Aah>9Dv zK|sAdRBj1*wm6Z_hl~iGt3I;WB;i@TpgR-}FMvN=V>{WVq_V~*Z5yLHu}UacXLuo? znKJ&otl4SjQnxqVE5L3}&nZx;OTADp%1o6LrC>W5^eS-W;4673#;zQnG?PNtC9_E~ zo7j$Z#>sqG&sPzSv|)WDjziygAEvxc@{%-9Wy z@S^;VI+b^ru5;1oi=h1q%|W02VHTlUO79r8Ydz+x;uZ-ml2hz(`!)b8_l1Hkx?#|IA|960ZQp3{4OxcBVtGD}ZRzS67(u_cgD zNnQ(q9=B2c{$&5I)~<7&a8B=xUb-*Mc4zGe+U=h$PZ-`vVKfIK z?#7O&>oAPsh;(?uwE50eKz;$SvCrAA89QM{*>__-Cx;ODywO%H)!0sfl9yq@_Eq1Y zu^k(uIyBhT-5|%8pDL$H#wq|MaV~ZH(tSPED^wvT#MGrBC)M8KDV)ZL8 z`jy%e3?_xQC7>>m)4lX%FO4ZWP;l+%uN{FYuif_A zq2v_BAN`Y$4iQx7e)qE99dc$U{{0X9zD288iMO}y+Lylm(s%$I_34H$+|YL3{o1mv zwrfA}tS8okVh4))#9cn5t>K7fn11cXuZ0J9zG>$#Ui6F3{hf4on$D&-{`HM**Oos^ zS?BYfa$XP|000Budh4xR1(e8f=c&(l>QIB5_{MMC7{fRV_M(4xQEW0|#h?Gn&j-te zZ24QS`z`O)s;shC{mE5A2L?;mWtU$Tdui2zy7K*3iu<)=J97WZi(cssusv^sz5mYp zCb*T-o~Q6m z;{WkS|05oj>d?Js`+J6FnC9x5k6)A8RQ#K%O;eY?)+fw8;gJiE4C@nyF)q(K6Wo38-NBS9 z@9XhTdVG+B%em;L}ON8Fj8y5>_cmtnzP z@}^6MumtfHS6(ra-SLj!d&fvm?7iFH8)r8vR&ROpTfFkV@_&5fqaTr%Dns6K$}fN4 z-`zp>_^ua}hy%p6x%SyqvXOMw8s zQQ_T49^QzH7Na?*(HskDLkL2WPemqy1|dILTFl}3?+$0M9da3uy3W{f#_kJt=j(G} zU+0r~Yi(-N6jLAm*|Iga4*=jZb+}5BbKr*T6v&{!Qr&p<{G5)m?jjDaUTU6YUlAK_wM4g>T%Kh$Zez_l3XE>9TRi9-@c| zP1R9F=hbqo#oP)|c{U9O0h40~3<)O)NRB+!L_{UAW6#eiM~YIHTJ~^6p>pU{t~}+R zI-6M_xW9crSCO!i#Y%?YL?l~nMXGsoM5Kfht3MWweJ=vas>MYul%HGzVpM@|} z3?4RM;;C|KU9oO`zJBvy^VZ(h6AUo!hz&~;AZLJ5)&0v z1G@srP{7~e=9^uHsPxA=&!Zo-4!woysj1G?bU8g;POmH1%@uR=oq3nKI!6>DV2A9S zOE_`tT;fn6TMndMNoCCsiXco>cTon4K@&^vxC%F^ZLo{%6z(BHQtIyQ;udX%@M^z_ z({ajkQ1OSeMJ)5LEu03)(vhYC9Z~5yz2ysA?tR_8R1z@EC36N%8{4HTg&(zTE9g1w zLj@JJ-cCN0#05kv%P7~B@fAsLcduU)6{+4B% zVnY$8((TRm#tB3dsiX zRLF`mmyINbs=lfj4gf%yG?T!fSf!kHOlRl#&iY6^cQ#w$(!jC^j`v;Iwn&juWPY=JZ_Z(u^`c;f<4WT^aHR zgqqov?E;CiM=MNH?~I-qH|4sroG8^mCG*L2F+EevY|J;FHaIQemAvq-I;}yxh;eX< zyjiT9v!PMD*alJKIeB6shaHbLXQhXZRj!Jw^HbzNL`?oiz~jR3w*ytWjmS%cOewGc zf;jX?KHT|a-v7EPRU@Q;d0r^b6zW^h62?_P@Mp~C4_g2 zw+W1$s=uJmL;P%H*)7w}xbc89Zu$5LCb+dBK?*|~G)&|w(b+j1>w z$a-Ms>Xvt*3J7{TaDYpw?n*32Su z82rW+hXM@pfMVsvc7UR37PTTOWMbR0E^|Rq7tV3Tx*{I$1^~NTyXEjMhKYe1^v>*= zaYH%juGW36=k>aB-TGqvrhLsO$4MKQRs0cav zu1};}q^R>D9O3%Z{sJ8x>!D`05AOgM36Z;*4sR32-W$yY?XLFd=VgB zAohYZAz-`1S;J!~8qnr1Z|-gF6*I+wT;Dka4vOvK~qku zuhfD{=8~CWW_`Z?VS|UQXnU%9_rn>&=vidnUmtkP&;H~>Yu zv6gJzKm-Q}KC(CpORGatVvQXx-HNT-wZnX#gl@>%1!HDecgwRJpT#p)gA z0v=;+ylLaY*$el-^8WqFeh=)>l&(x|YR9afJpgdUA77V&Rb zMvGSFhSm6Q5o2f3GBFk8Rnh}exf(GrdSDj@uv9v{%w;D!T^HBfxpO!F_01c8ZNs^< z=dSi^S<^*KE$g8h0@8p2q?23AwtSwxgs(DEzuv}WZm@aq^VZL0?3E!e>fgL!Gbfzx zZNlviQIcTd!1*>SVeq$7IfUw1aq3c0&iRWywv^MzHFMjx>-Z`F07&MO0O=^FSQ*NKJ12K z!*N>A;k037zlI(;MD1E{TxE#0aYJp^h_MT799Ow?ON5(9Y8_Rd2!XfwNMxXdI99+; zK6G@boKmR7`0SrAFh0`5WlTAZ={m)ViltkzzHjc55k30hXRsgI6&tE|darkSum6aC zZ)@*kfA_Hm+7Il?cF9bV)TNjG-pxr^evZ;sO~=S-#-u_2r*?gd)Hgu zCCGyY-a~ZVHP;1)Y-Y2TZ9VU)&!ax6y!ILGy>G8L_QkYvn5%abvtmc;{?7e7PT%pY zk3B0nkRa=9Wi+}avy1Nem2w(p4m*sFHJSZby{IZJ!Q1)Kq zKO6NL|Ms@ujyXJ5eAUOUstG)_4&7Vd_SPW|Px1S=zrRk7we61WyzbXuC-Vx!Si|ps z>-&BK(-tS}OfsW->e#a?R%ll2F+Q^72YN!+a?UWVN;1!G`|)kD0k%-Z^Z(uRW0S1Q z+$XO2L~zl{#_xFVJ5*0)yRz1+kLopX{c5lXfR6Z@LoeyyP|x+?i*e$-45% zDrU{M+CrChTY-`MpO_UQe#mvR$UEKbcw(6_J?|r#u#g49Xbn5xxPkvbYWWhRgPx+;%)aygc ziof}PzF89x=p4EWFS>9Fk)XR+=@mZOx^K%c)V&Tp?7|1< z#w}W}x-07bY|P;u{^}ijZS8HnVD|;%-x}ZhoV`9tTr&@NK`+Ql4cN}MY+zEQyic}@ zO7bDb!0~{Jz~R*#ryjPXRI0m}rK{6Vh*>c@l>JZevD~X%2__C4Ua;S1E^E0~YEyD2 za{`&b&65w_EpJKk_Lv>htQ9G(Dl7VeLW9maYph)0hHVm+$HS!NxH=_OVBOY<1t`ik9b=mTJ5zjQXkoLpF%Y13UU`2E7cg((G&2UQ5T)EJQRY z4JhH~fFR*SHeh7Y@_Si3)q1CpBo#<6HBcUH7~iTIx8s@3I<_-mCML_tnQ|uElf|g+ zcvPjC^9^q4s6y4>463^jXgosT0UVN_3)^_}G64e%4;sih&!@5%P|7+>*!U|HQoa!+DBWY(H0W{I`I^Ca|F_X130d^&o zmh6IBz-aOW5FjBE=9J4^NCiq_ibLzxhYA9eSo&2CdD+T^wk#~NQ~1M2m?v9-l9*?b z%|=iiQ>C;+2zKHnB>b^%kyGzU5mZ;H7yT#UlEZNwFK<0_?=v5~`9YVu{ZHHPuLzS0 z*i{LF#N=8ITt!VoZEb-V+a=W?*9zMWg&0E(?6``xW8yd@r5;UI0Xwv)2CD7aZPyO) zu4P-)C(nsi@Gi4eRF7*3yj$a=CYGgcy78t4+a01Tv~62EEr?B%)}-}(=@zISG&@=%;htAF}n=An~_N`KGPBwHZxu@Df?QH$x~+UF!eX z+5f$(ff_lkc5EkfROCr~)Wq{67DUN;so1KK|XY%0(N3o3W`-? zQhgQZI?2TyH{)&F9y4PTW@5USp2=sDeaBrS69$5b4MI#3T*siuHbFBd>kQR8jx=Xw zvn93(mXzw3Dpv9%K~xujUAPykgdjhW)=7AfXRHtaAmFe7ps_&FqLS|9a-!dyGl%ofPt}-|2uFJfD-!Mj69;c za}fDtt7Y^dDN!WnIBL8jv)yV|ceJi+TL(rW{mhD+GEIJ?9%cI+o4AfvD(Vo4TSj*Mqd zkxNuDUFdSaQ&0%{>9f(qDGAz!LcI*AYkNmU5>}e3y4FNj&Qgb z76gzP$`w+V*H0yR9ekC5D|AetiegOS^Gym8z?broX@!sM07nB#_od5dn!Er28;(gt zK~%2oW{R1DiV{otv)_~MajElwwE}h$)~8rGc9tz6xzxo*T4t`3?E-0+c(Gk=r$8Hv z!)nG3Yu+wy*SaVs*Ka^R`glaeAA2)Zp}g6ceV|$#4;W9x@_=vU%|T0+UeN1rUhkAc zhjWjcD<{gX?xvV#E=$P!o+JPz#&)^NLnA=e*`+?QS@g4vTv9orEpXa}1swIsR#FB5 zf0R?0#?i5zmTe6IyJ|{@z&kZiB2tu*9+}O8KkF1J8IRGxyMvczt*sujW69n`Wy+(v z%&JVylry=lMR>W*(|u{I!?UR!vt#?xeGjxA7#kZCrQKtm^_Y5C#jY&dm7T=h|6?z- zC_yu^v`h6>t$_gsgmE+Oe?W%Wv&!~lG$1q>W)hrIRfn8KHi#kY8}D@tplUEtTU-T9 zNSl?JnUzzB=%+QZB_u4-Z-9)1jI5mwVO|37B=IqvUJ)>}SwMBjs6eT{5+E+YqAFLD zX0l^C6J}z%oSrFWRy2YCV8y=s8G|;zPy*U211#`Ewpn4g6&q8hvW?(oKVFPL`~aS- zLlolKx5deKhc#=NM<%XYKtNOFxK&PAp?>N>K1M1C*>iQ$_?BeBx)tl{R;&OLNq9|N zdZc*ch_77J{i$oa^~L&SBXaVBv|f^}qZJT}h=7qKg^3(AQof{SH}h zn>UyAhk%`Yq58_-DtH%0w6$F8_;<9|NHy^8FiZXbVIBbdAhL(|A0E3aa>`rxw_3*cdMBn~F=+UEsSctb5uY zcq;~IqMVTPmdL3AKy}rr3F&-s1l=kIC=RZx{jJq~h#K~-Shl{+s!+PPz+TrSF|k70 zdB)CpRELBqr_AioNj5T9ao_SvsYD23OQ;b+n*>W#?APonOs+_Tjh3& z^Rsm2e|1Av^6DG_`ZntlGhQQBPq3W=*dr=^GuvlyCD#k9fVtt2@6OTs9D!spwhaKs%9f2!0R8F}$-3&Gl^38d^ zDbF|N`TG2iul?hF$-ZvV75J%~y8OTTIcPqK!@|ct`Z2Nlh93DPZ@8r1zYzf76aVig zhB~vrm;7Is#M}}@o)k|kfqUy^Z>{YV1Wf$?KX`www`0g$_U`}s?ivf{L^)mir`O6{ zwjklZ=(!hppKR`B{`cK=U(2<^?6%BiZEi2-(hpfjJuCL1>ZjvBy=D5AA5Q-8SKjt3 zy+`!WBIRBP_>n6wF?Ua`ZDyS8tn_uY38(BWrC{kHb2Lw#M0yJ$q=VkK$WyyCn_>6`yR-G0Xi|Z}{qn z2lnEZUtFhpML7m>WW;}b?SBlH>vHz|+wW}i%^d4{f}j7~=OxKidRcAT ze$mrkBq=AVs}A|zmw8s~qTj{9XPk9L?BQeLJMOw;B*Wpnr=2$lQCjR1=zZkZWWqideUr~Dsqg;;IdidJcy*31H%ToX8pZ@94Is3aMA$95G4<>b2_qX(m=|Y;t zJ=GHzMX)4`>MkxHVvK$S9wYmCvRL<7WTajEw^4I=0HT%~Gh-qAMPg!fPkZ+6;LX_; zKy@c*HPl^GCr9~n{PtCT8Ec`4{gkS>@fvIp{{P~&6y7L2!ane}PNzfisFS8`q`H%jAW(GvU56rXg8+aqCZtwC2CIatw~?hL@N<>{Avj?dM`Vy859zAD zS>lo!)k%a!QIA5XCr?yqub!*3a1?cvT`)bTQ=R%a3<3byP;3xjmvAzd%#~ES)FD-@ zBOxj*v6K%$P#rRI%FIKgVX#w#WIIkG=AVFpvlh()t5fD!8P=cG9hqul*PC zR0&4kC`X9%htbxPe+6=A)(q@zundgsr+}cxdi zUUq1t*im~lj~=F^`%+0+l;sVKop^V8cH|mVw{$h|uBj8N8c27LBBl|m1armMu^)S7!7J*-1}kx3 zwN-+BfU9ThDpbeBiAy}HWAB#0yc)({{mwYtL_|<(paNGX^U%laSn5(y)O2iT%#5uq zR3~L2X5$_*xTNCnAhJpzqYqjO9@vT*9kNPD5}{Zn+|pJFKY5}=8BGyLsS(D9fT*OH zt^)@tr#>WvRRDI{zoVX;lY2p$+tAm4B)@QsN7koSf>;@_%o2Y>rvtuH^6JU4Bx+M<3n#8-NPKdhn zDVJ_Ys8~slH9P@Y3|t*RWl3Qt z9o5m)I_F_@h$HsOr7E>9&~-4(*!ggl5@S?{4#nI$0_;W^JFaKN9?Mc4((lXghJAU;_DzsEy}ERI6g7AMi?x^fg&5(s zZHHt(`GWdG;yG2QB^bLwWHy#oZ1vr>Y?@0BBvU__O1g=Vc8}^lYJa+aHkqAI=DVuf zSABG7Q!CdlzyNL(*a3h<76pV)S0lQSbal6@x_#a6tA1bgFaQ0^eZHFW)X@h& z@WBxDB8&3&x4%7lbpQZ=@ZbLcL~K`$O#Z!h{a$R6W#ae#xA%JR!G8Y6@4o4GeNsv3 z~%4Lm$~c(&wjy3Z}De${cHs4O{fXV>DUbu$383eaO#290}r$x*z$}m#fGAo zF3glMC6$ss_>OnI!&A*t3?F#k2LyA6>xs9%`K`5Q#}JjY2ZCTd}pg&SF73>zuRVnQTma`yIE(0a6z1Q=jqFks#==-~4sKC>E^Xxffjc zg8DoN00>{b{;Tn?M!<_+bde8^wIDMOzH#F>f?`UDkAL&ne& zpi+V%0K#8=;jczs;mcn3vg*Zo5c$O~d{KzfkQeyNFZ$&$bAl|P!GHY5KT1Gx7>IE0 zqt2y*Vm18H?T5?I6iZyPq1a&eSl_ufKGAn3pGj?+>8xjaeckU8j$E2m;?r+TU$%~28-C>-9Bc8XxCSlpZ?vka*2 zxYcQc)27T6|Ag}cc`;Lz(`7kPnsIY_@ASUv2W)51v>$By{&n@{HWnL2ks7dFx<8c+ z`ryZ&E~n%4=G3LhToTI`RiP%#MBJHext2B>%?Y!HYp|Yw!SmN3wrlDXtVU6HEaeql z2K}HgW*PP>R*8C~1QHnvJ_&&x(s*_36es~DGF8I&valW(20^pVK!eHyTNx%~WS?)W zahlpx&+8K_sXO+!#^J+(9`eD$@rfHjI?)i%3KQFk$P;DAFV>lYq5VpRguM%W-o+kD zpJT^<3viHd;=|plh(|2y1Us@M0pKB^I82@x$*(xNS{}7i;u5`A56zn^X+yC=rVA{n zg`Vy8RX^RA+RVDtxzxGDaq7LRLfXkcr-$EG6;KROvK>H;dF9qIojAcc;Y9be&xWb8 z{yebbrGQ<9?G`s@Pq@}$$8=yPBnOgweO}I#=YpyFdS=|I+kiWvrVmT2{F?s z>W;CbAsC}NR4BnEb@(tl-<(~fsPh6OcA}{BdNK4*?GLt5xQQAlA6ds9Qglp5SfU_R zILPrO>N6Fb}n%)aqG%;22B`L<=f#EdV}i9LzH=8f%JS0BIRBrpPpXkL^~~v zU5xEQT2H`s61p)2>}*TAv;yzevaasnmF`WG{YkODD5uMEvOIm^^q%hZR4-TgfCeR% zt$%HC!gWjx^2WhN057veMq*0$reQA>Y&Ts@*MsdiOR{NxHMxILMI#` zpa8oX)iF^?0kjA$6*G3ro4K)^{zP<`?oH94MD4B5*Gnt5?buyVSTaFggTK4!;c+STg4?d7W|mu|!ZTZ1;NQ|rXGB8hYk zTpcwW*Q-#a+0=5z!q}Bq#-v?xAgNV~001y)Cc|zj_o4}iXReK#aphD1 zcA9nFiZveF31b(Nc0-I^;TgNkWos&h_!tW4mQm@#9am6PGvGdT&8LEr zKwjInZQJ~MRp#LxpWYGXWr@uHRWEy0tp>A%CEj@bjiL_?4AWDe^wbaoC_v=FpFKEY zr^q;4A*;l)&x$>|V$HT=ZOiWJ?g~Z<0oG@oeO5hZkO3HW-n}#InzGJYH*fXQ#%c;m zKA)$YijjMTUh@&vDLBJ)Rj9jDaGh7>kyV)$dqh6RljD&!G?P~WBk#OtXC2fE4iFyw z*hfQ%qXGbgJMOq6Ms*1I_{TrqpD5W+gWdV#ox~)wE>`F@uk@_g!`X&`&pfO0$yNdT zcmC+kdOQ_62kuEvc~U%DiIKna&)*5#2oL(KXFaPv4iIcJ%)mS@)2KAiQb9yUmEmToZQD9-nShU%Lncw3pY_~Dr=-aZ@ zQfK?J0H9@^Q$G0@ZH-scnQdyhs_DJ1ep#>3s)Jgqabbe$f?Fb-utHv#%2k*!B+ZtS zKvQ%$74lq0tP=I0un+`|)l>-wNH{VFmYF?=S0$SuV8Y4B0qMYz4#}(kHRd*F>7Xna5>=ZG!i$jdp2;p?x3IQ{l33U&W9rGa6 zUJ76U5A0-rmDSd{UKxhBsbj61ZoFyx_U%n`wyC45+pfHAF~8E(DpsI>000=M2w!@} zE{qGSb#?ty>nt`})pVs`m0(~*BqkXz;Xxa5u)z+^ffYxEK>$F)u+Fkg{Cmh$>s+;8 zwbLrxb&bML{$C{mXta!SZ zmT)_PcMR-Xu~G~Op0SIuT^)c@HDqI8mvEw-s(rE*woB~EB_nOBsY?CUz`Ldnry5At z)Ja$lB-yT>04x70tAxx76RU(|nkcAK>kyHxw@M)5VgT(KyT~n3w_*dZE2s{du_z-t zkJ|zqSI95Z=mgk_g~Bs-!JesoD>e*Qao{8X#TNr`&DaHOS2K21TFttlR$$&0JaXU^Wi4UA-hfjPy$^C_|U0! zA`b(QIN~9?PBeDT--K#Cp0!f0*h7{}oXgx?F&74yN}%1t&wO}25rKe_fAo_djb!dT z=FyL-XX`Se!+U>vuaKN#-c+nMZ`fR$WDTN0+qWWGT$T5Gd}hTq)yyy*d1QsKU9--| z=aChfVY;NE?o@tc4bJ2}QMNh$vto~C8w4QOdC$%|;Tf5M&w0!_9>56)hkWM`?}Td1 zm3;ApCp=-~neX_)9rC>p1pT4KtR*x{5UNczb<$Tu-8B_g zL)0~ODi#A+(5%DQF=6REKUei$Wn7paVOlw17x(uh;n@%QU_?MFC{ARP-*w#IWb_JG z@pprGGhHU`9z&+YGCAOZo$z)*FkMayxQ1#Bh@RD9)UNoP$IJ1M1Xu^4m@0d^sisct zYT#W{4Ww(Tso-6e%nd(zLa<%cc#Wsh!y;fOVKnvVHUV}LP`qOCB}ZCoh{V!PYtS$c z0N}f^ih*FNoC?ILY$=RgjO|2q7qA@w9RIF%Q%$Y$dj18^-@bi&)963d>e8oN+C-T& z)l^&_lT~BK{KPP*!cDjac6GQ3_;ikhlQ5sjo0QiW-dIDxE-rCGKnVaa4&(8+7#Qa; zYRm!vC|DikTvJV*aCOs-H#OMq)Tt(OxT&TNQ49f5ELPz!ZpE&aQvdL4jRL!aRBc6R zs;Q=qs+wUHr$RN5uBoO@%~~~A?5S33WLE4+U(F2DBYouPcD81nkIy4VH(T?-UmZAZ zukhq}WDU)VJ<+yV3$tRIZAKnB@ff?Nnrdnpt6}d>rV^HJJ8WO=7t&NyO|4p;+N0%~ zYN{y!SSpvUsS~c6-fL4$H3bc0*HlwYNj22niCYb%YpSWHLN$zCQ%yBh*G)Ixv{*ma z)S9i^uDq>5bxk$ZR9p>X*HlwYjaCzAy!NXJ9B!(qrk1S#A9zyiHZq5^{{R3007*qo IM6N<$f`srgA^-pY literal 0 HcmV?d00001 diff --git a/test/reference/radial-gradient-mask.mask.rgb24.ref.png b/test/reference/radial-gradient-mask.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4db39aa3f4e88a78c758f4d35349245a9dc92ff7 GIT binary patch literal 286065 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Ⓢ?y^@GcOnPSMPpnn^OUT&-dm{QKyxmG+mGY zck#Z30ZMZ{Qdw%@xt-!5Q+4%Ns32>k+GK(bBx0m}Ose(vYhe{Ewhv^9HILSo6jwsE z*q7<)+(H%NpQ}8RMF{6|gJ*xs$UFg!55Z*!ibleIG4P`X0U4T(wesm!=iOHid}Jk< zd^U16Q}Ko5!*k!N7Y=VCdqmuiMe=+sgKJTz5~Y94MEK~f=^ARbQZlMuByY}?KH@lz zo%0i6%MB}QIKZc6&PO?CySzdF5Et#qgl;V&!G z(n-l9BlBEWOd_GAVB=Zfu^Z4~-kl^so7>gCIf4?Q&D>L{(p{o!SoY}|z!$u4=4)C= zo{a9;vUcM5kZ4}dUX9|um8SPpAulP(T~$Q2cGZWMi+5K|5swB<*gMZ0hhec-dQ0qE z8u^MRy!h4|Wl%AkItQd?#j+1Wb-OJg1vz^;>;{HoGI!ju#CG!X&T38|w=grw;Rfx} zUT~ZY{%Dnlxn7YtFC1Gup5m(UM1uSnIH<4iH`dp<*OhB2AcD4PJw(}%LL_jmlnn%f zwC9m}YCZHmo2Pv2l~H(xNnQOoIB-)eS7lh*XCq4ivboT5k%yC~)<^>pSfryppAreZ zXu$!(daIU#ukei4wvidf8seg-=pmOmlIM!_ZjZFIhm%_YT0agzRydP!nW zE$qkS{WYV{q?1QkqeuT`c35-qzUgIPbZya7n9bj~en^+Cc8(%Xi$(S$0vwgqCiE~` z%`VU8+=|o=E$2z)VjN;aJsQ(ku1lt#y-a&vH~PcC73?%3>D;R<7?rN4B2!59rN*PG7yJ6onAZp!NsnkI~aZUYni~ zSs4-zpV;|cCYy*Hv7Icbm``>jhq=ldM8L{1RH4?Z{)AvGk`LCI5SqN5%iU zx6^)=fsUT}?&i(rPwq-g3X*AlTT22dC;+V8a;;1gFJvyKou*$ABqSJq{#rjqvpT~( zA=ULm*_P`^^m&DRj9-&V|L5X)LHw9nQ7XytbY2QUU8%Cb?E(4`XK85fZJd*RR$JFa zkp<)ANeC1|_LJm5Q`wZfHVMSfAnJVQVkAJ6Jw1Ja?nLmSGL7Dv{w;2bRSU;bkNWxj z0?7H0K)_-&?0zn7%OA#z<;=8(Rlx=&@=^J0cmHKMA+JuVBujCM)UStnF4{|-TW2@` zq+PpAwJG53spwDk?2Ga3jrgE2tvG=QI0%`ioh8TY*ts3o;60PZn^g#kdVk$^ta=jy z#zlh%w@%NL{Dv?OAPv^chpZ;*76gZ zGKZwF?jn7nVjV(GIVdRJ^;_9unFR4~l|mvZDIR@Sq|Ib3t#|gG0-u-X(J6@wSmdwQ zT{W!yK>;EzQP9W@sh7a;Yei}YaotN9)9O;oC^BSBt#rlfnxN*DFQ~gE!F9w_DLI#6c1<1kc8kn0GXo)l zERY!>f>LIAvoN}#olfQuuY9N3hi5o^f5BXWi>ng;iXb0BakVliG?IJ*~+9+@sj}?;4T5ZQ5Jt$S6NP#t!LqdH@p!9pyhN z6~b=Z#a=jP7dV8c(+|?Db+Orhc$NFJRnK)J4Qf{<20Ydwa-4l^O|d6DQgz2Lg}9pq z3_VSyyic|x0Dqsq6D!rri(RoT1)CF7!zs*5)IGes(iapeegO+Yf4Kmg%@_I5c8TGl z^q!;nHm9nfxQ|Rk6%hRsTp4I;)&AdLYy`p^g{gG*_gbpck(7|u7GToByIalA{%3lU z_Bg@mybRm+cmahbXgFjn092TjQ)l!tc~3&9LYxkyo7swG6<-{{2?qS#s)w|czAfh)Jn-|F zYZz{}5~C7V3M6_I&%v#()ZmX-%&PS;bg|Z~7jU1wWOp(vkMb}tMI5J!43fiax>dr@ zGMzB&41L+wt2z;Zc-&^>b_k~OOeA zTuwLT^wV2rvH6a z8VRN6|NQ_)16t`Y)Bny=(w+vm{%77{_o$D+502-B9fseL-vpZ2a!|8MsEE@xa_t^C z@XYYGaT-`VT{gb9TgSGV$F|r{zI87AD*Jeu5}F17DcBSQOf(5<^S|D4N7j67p?LbaUeec5c6H|^|?g2SzH(_1k&e@mKtKwZ4ZM^So^Mv60J0gl3F;| zXE_TV^X9}t{^M??uXIH^^>z|_JQl+)BZ@=W0C zSw+J05$X=%=he^_a>1|rTBC%I$0Ty8r>+m9yxXNhMp#)9?Qc>-+&`{qeH(g?*Vhi$ z*y-7KUf=clgbv@l6ua-MC2WrN6zu+GT?5%Ks<_rBphin(Eqv*r||&T{=65nZx##y zv~9W~5P~<~5x?F<&}`u=H_W#6-ZMhUGLuV(pP?7Lh6%#Y<9%-QedPd1RThGkD|>Ga zndey0j#!UaukP{t0!qkpW2f5}Ji>F5vKAfrFT)$$IuDthvb-j`U!Q+CxL&qKIBg`Y z0qL8kFt3UYVrEwTN6Wju6C(LOSMS_yl=WfipdJksGT!j{ImLRdtamMAuQbrrq0t~k z2>5x}zYJs&pOB_=l;;kG_W3Ip^p~)|=xx8IAE3DXy;&^yNL5sJM?)vszW2HYgB(fa zS@HjBy_QRL7Xbsn-HCk_&PMQpWABzDLVflNI>M~JG@lspw~?jUz{h)(A(WxSaE_zTp06828@W@E z#>XyfR#Hq~uXfPiXt%%a8Xpz2@96NuB)o=T+wYe-4i*~=ARR9Hjii}yr>?{oc_IE$ z{-=W`YJ=0xg)(}BYh@>H*4l)+@1x((_Rk(~A77te)4m&>!hff4dKiz&mEezsx*baA z@@F`?H<9bQsSy4DXu8UvxVB~s1c%@n+?^o7C0K9^?(R;2!GgQHySohT5ZpDm1%flU z1%Ky$Rj>F*QBZT(yU*$+-9=?P?vK7{7jB-uY1 zFiTCdSR}{P5hRRe&{1K1FoCdgI;aGaU!bAcXRG`BG`OilJE37v2+3!mc#%_Dic6H) zjU)sJ*l-ZBprEPA#Y4tbQlX$R-^E365E1jg*h0hUIm0HCM{Lk5(~fr6qbHd(kh+_XSi0Mf1zi1$l+ zQ_{^!8SFEgc_x%y0C|B@0!OE0tI|(FfzhMsJl{IUKP4Oykzh#iXRbhF1Xu`Dh1Muj z6pHOjOZmyAsFep}F&jOhd`=O@n>QJymM(yO?Guxfq^_I_#wWBe8n;q!>h`<>u|nC}=29 zbRGVb(EKG*Q|{}t6wZO4dZ9iZO<$pa@}K$1$(eL7)qw>tv9-U5%Hu_u1H-Fl2Nm;i z5<`G>zub*J#{x&ZN3aCJA<8-c&Er`ATQd{IrF{=|#ijiaBcAEp{c+N=>zB9hf~s)o z2Ep=5>Lz!AaDk0F4<5I#@7ZDAiAUv^GPM^~XP|6a`dQyEx!dR5ZYQxGcNg2J#}V_* zV|3y-P0J72j*1pwl|N?h%tlu2k@#M7x#~L=n=V#UR}Dbj825xYUSdweE|^hCBx|8Y zxmt5>On+(#w@cU7uouO@3N7BU+dNoE*Q>)d8dm;NDO*_RNTtSArRf1T#9TK3$O z%Hy2IO^cNX7{wqILkvISGz3y7iR3A2eIoodYQIcLB^oDqFH=fVTo4YBHAkay2q_xG z%)XUv^I4()7&`7oV64~b3r{)@n+Y#pod*S*%6Wr4TX@E9It1$`ZaRH>CxF}0J-y{y zwq4J!*-EsG9rRXsR< zJ$e1*ZEDqi)j7slC?@wl|8*M4J$8jkD2CLs&l#TBaukeU@4eC@S&ejuR3%%*z0aMX z*UH)0$lpBvbC@aHN+>k_V`J!|wTb3orm2zOOPfsB@%Bp>sbg!WZa%NuOoii-pZHKEDxWyvDDjDq zj{>iYE_t*lHn@(R?;3Qa|N?RoZ&m8 zK&k63u@S}srU_{*hih=|2Rtibgr^fK`wBx~?x=yiR*>ZnE0epW)kG{H%6ae_S6n6nHaS zdYMq7eKS*7&-|cexz*$!Sy2i{y%{TIOMv7p0STYSMYLT01D}3|T z3_~1wn9hofAcY?!YzLf;gRYVbAKZ(S_+YrF96mrn$!UAF=}KJOIvGNl%{dtYny-pX ztX`m+Y=H$izT$UkJzEC1Wg4V=jBy%)xi-r=!Xrryxhg&9I(##+HLF_%^ zwNq)kCcVSw`YZ~>lBu5Sb{H(6nWCZJem>sPY=8Q-wddJ=)4pmww;Qq=OD8bQJ)8@E zjwZ6$sPAa<((}AUbUldZ!TECVqtmA&b;NMU`0BTOz6a1wsZ;>7M;>RXEu~>NzwY ziP%VnkjQdf6>yQGF#Ho&9~1$(6s+B)q`xS=xR-E!h+=}sh4KY}Ta;dpRUg?5v-B2f z@QZ}%)~j?DdCoi+u0D)V8Lcv)uMaSQ1$YtHVEo(Eg0UVtypNYQQtu7i9d&0xgFJD6 zNd4|rX8>On+TB}^ig9?(Zst}9^Os~rY&7vV%4yNaoC*rr>eb=*J>(wT4laWTnVb6lZ5*-`Isn5HWdkzHdNV`w zHTypMLrew_@5Om;XWYftH=z2E_K9IT4r{ey(sawgxyM2&S&#U&?XdBehRjn}l6WLxsiWi(?D?F43}_ zopYm>`jM7oviv88zs}OLh1Q0vind*XlmSGk0>LtujIaL;@U0@aa^goNEIGbXZJCP^ z*+;hmRb3sNok>j7G_A9;$tFePwc5f`{Ma_wAT#&qlTY6U6`4T#!p@db{Li0<;8BBo zWWkbPY=8>*kCXfmDvIp`kJQriYt*d?MwID$LrRT0WeJ=;ZTed!n}|qAq@05+SjQ0s z+a?><%u9({8VL)R!%V{VUN@2pffSCh#OeWu9h-58v`s^b_aM?V_i>VQM9*`Q<}7WJ zEW4MX^|&Io40!bCPZ`VaPMhct*&TH6dcF%`+~%zojq8mX4*8PGF1U{9tueDl_JW)Y2$Is7si-KAy;WY%E_71RoJUk zWwpmC*EGS5(C}iB_>CJ3P?Fw7xaFU}zV3IZJIc={Pm}EfW{K?`vae1r&L2jmNV1!};5?)E;*z>%)gaZ!Jy+TU3nm^4jt%$ckJEpSwBj0yfSQWajP^9Pf}m5d2u z29S({CTirE0TmSaf1iq`m-;&v7+W5e0D#nPYnWip4OXUxbAKX$(#BON(JEQgD`fR+ z$C1l6;Q!(DX0(37T{&Q5VyVugQ8ImsCzoo1y{N^qEOR)TK-Fs5@*wb9QkzH%((hT` z4+x~LDnfWo+!GU+rzogx#>rBK*jbO{L<8*=@SEYvXEj=C{iKo$Q&uRn=4H3e>6Hm2 z!r-9^$SD~>)N7cBA_2uS$2Qe4lzyf2l@rzJ%74poqRQRo%;HG=m+r|mAV(K1uCQgOlTW6f_5E9D;o?iY=oqwtYhg-QZ?``0lx#`K+$$wA($dsO( zHOznm%ile%*t*rKlcLznm%r$3O2m=eTZg+hot8KK9l z`e8u`H1>#AGMcthB&(D>HUWSujm!1#n%-brx0n%ct9f5KrKuMBBB2QOGohHn}B zXU?;i6vNcwY9OijU$%eNl7*lV+`u2!e6Gz?&%HaZx!C%9zM8ViWpPVTw+^7Y-i3$t z*ZZD()3Dea-Q3PX)1h!74wJZOEo;MNQLz=gh}rTP7V-P|_72V=W?J$S0u~ zsydm(-jL`JG5$mxgn_d! zU^%_s;00GkagjLhr|Yu#*dAcYqU=$k&R?!5?VekE3)OY!^yR_nBhbKoy~LyPgSfru z`YD3JXXO>DmfB&j?BzBtJN^3CK<|-_PMX&JTm7mLz#hiZ3I?W9O<;1_ful;YmTGR)(Ui(9BEteKGhq(pv1-2(|HCJryuWe zm}Xq}CyXwKy1(cot7of+Gv05eM8fxP3KtjdPnu~O{}sjT>+IME5aj2?^hTmYmmTTt+V(Q#Mz1G7J(X{Q7VKN(U8(6$0f*--LSSro zu(zK}-A-N8KTB5rM)UoP&I{puP)B*)Ig4d)$#K)rpIXB$b48mb;X^|Y-wo>kS$4OP zxO28`C$H5o;p>97kyM7E-yeCl@*OVcldNxpE1OPy zmV4@eJACz($dJtNVc27f{vxdReaFDkv3I?9c~t-`d{x{{r*CBV$Nisg8JR1*Z`g(V zKQh0gzhPsY9&V29?}^V-X(&)QJ;(GxjqdrnS@Df2~qjwcM~59MdW-cE)z>AG?Bu4a6mT-K0FT=H*lWgFhAnBwLDGzG!}KW+iSt55r;>T!!F%3gPMn)YnTC6A<4s82jeFfo z?ar^;0pP(JyDE23GWU3aG2@P$S4TeECg%OTUm$x+wrLnv>2UhhkCz9j+^A)(`sG?~P7E`zTd{QZ-Ij)j8!6MKa%#5n_hZE4&M!HND zd1;RwG5DOH^;?r_HNcEiOVXQ_hIb)Vw`fu&(^(E}WB>3*k-T?wKko@!lA3-TCd&5y zxnIP@$&rMaQ9TOs-dz8&KHO{l(?_M7yFw#N4P_0+;4hy3W^;eW?AD8-A+Q`3+A@Fp zn9K>`q)U-eziS*5>{24vE0xw)GUP*gvmaj|BE`=lMt_rWrH|EGwD#4fG-3}43C<3DDr9(67E((7b73^kl zy#L&U{v%N2OPBJ7`qew45;W+rog4c9F+gR4mVeWD_=BdS-?IUue^qrQ*Uc%XM%d1-cp3ID*(TJtdcVIftGOwhxO{(HRKbgIL8MO>kwC?yhKh@9{9Jqex;9|B>~{~I z9?3oOFwu2bZ!?S~dY%B^A-Mss8-AhQ1+pfDu)|AUskq-B#>Az$}h;ZiFVn6Mx`)BMWp1;0dCaPM&I-rD=XZy0xy8gsMXb}bZ8_>nzw=>2jjMOQF9en} z37yO& zk$EUVZgczY=4PS&?Zn5?<(OkMlw!Ae$1TAUy-BV#cSiXV71WHk88bLkW%fXa+h{YL zkBukRX|(=LzzQX~h*?&NB2ju0)rYy3Wr=R-BbZ7zDJwi@`FF;l^hjbV1!#>C z6U>il3W&q_+I=Rp1tR#C0aL6qONMOm(~XK7u}~OIaLqdQHg1g0XqB>Uw)#}%sc{VA zz?s@m49gNpwi^+V0eGMB3XwAu3Ya+g14LN{(-gLe8b9>rg*jn*JR*kjI>n<8MTRc^ z|6bN+{A{+$wi<3&7J7K>fv2!GQ+M_vZfWXj`sZH&;luO_fMVLYJ%8H2^y{P40qK!P zs>4oiJYyQ zM2-&shR@W%wk?9i{%Q4gu^?{naI!rbxlZSfx(XK8py&^jkrC7SKWYG9g#&(9;=3yq z`tK@m+`%u~mabUq6Y-yQlXjqjR>dP0Dj2L+0R?~t+O$ct{-6j$^0E0bg38+xq zJ=|AP*sTUlckw+DnozFhAA>Q^Tp9dF3iT6T01+EYlpypaqm+HqZ6vwpoUKG8VbpAp z+OjWVHB=&b1vv7O(jrh!?(L-uQ6M`#Q(~?QTaI5oJIEbkb19l3mE%?1jpBsxl!$D= zS7gARGZ_*2%FHU=U7lKVWt^+fE;0}P0f6>e%GMzb`dMm3xmQ3BaIrhX*N27x75lqY+5t$o zA%1_Li(Tc2x(=D=72vJl;A%Y#z4I7Clrs2fYTuxtMErkU$L{C1Qb5UP@hfP8ahmGv zH1(P%K)}k=jcG!sVj?2Vk6@P&xlQF**9~7DE0p4@V-j-M>WVTv=#(Pr&82ThxB!2B z7+L42`xVSR_o=D8pQt6oSog^NDPg$OPPNYhnlpL&;`&vwcl-Fl-GsHblW;1llvYerhOht^N#QNM&0S#gxp|}zABLU)Ei|b*mSK3^q`9KL zz#q$!%R+lxM_-4e%E~N-T$EJ>Ql6%Gm_?0!oV;{qQU$BcCNcz@(0Bhg;9CST4r8&< zS7itH^RYvnaUBjDndgypCH{xvkMC^-^3wN1CB+GBUc_u)y$?5>ABfUNwQb=jzH zU&XrShB<`U`JqbB zUDD)c0H}Z5L%H~iXum+D1J=v5``mozrM^AfF@2cVY{W{&EEiDf-A6*jfbaxrE0Hdl+|;x1 z6Euq8!G6nrxMc7nhJJDY^$=@cpD55JkM`FSWVTACm5Ewj{uU}*@~E*(dsq9X3TW=8 zMAPw{SG{x&FDt`qzt@@^6};QdcHD;C{CbZs9CN*H+mS$ANS&GDmTWi6G8HQ08ze42KA8=5<(ZaAozR~&YMz0t|g4T4XFsE_Z82U!8 zXB62AJSQQ;GoR3LK`9Ekr4hh7`}E;s*`Hv0<5|2Fdyq0R;QTP|c~p2@3;xvn`$(l) zz#qBdJd1g`CD|ki?qW%$+K4{h#!s^LZ=XOeBtAB|CAsBR;HP;-K|z7pa-~>`;|!f9 zAyjBs7{$($WJrif!5A5JJ(dQuIbgi+53Wi6mLZRIOGYov2ztusSI}Z!``(UMFveKW zzLxjU$DLwQV0~zaXz=ylll`ha-1qb!r^!+mKV6r0wVNxN=POn0W$iac+j1pm2G<5n z5#nA4!FfklUK^XN3?NW1i$0&n%b#nhRL2?n&mkp0)614*YzHH~DT_1~Xf+V@!ms1p~~<(uHM~e(F?v`2Su2bcLdNTF??( zx7Nf-A3z!JH2{_Yhn9w>A6tLAuI{dSNgqzd|AEkS352B}3QV8`D?rw&7;au;D8vKf z29Az|eKM zC}B|uOH4$@`FBLMdp*5>aBz|yU|P(SB_`7~O{+mi(z;zz$)4l;pc{!B8y=AZl}u1C zf-uE6o$wBRjq48THl}EbYEgCVS0O-!*JzMEqqjVt)pLx*=UH)k0u(8uk2b5ql`3 zX1=t*Fr`FVXY3{FPTJ_MheD@XrYSg)U~*t{5mz|_b{Bbe@?W1bDZpgt%uW?1=*$v> z=R=Fe(0|HziWs{%{EXg8qj-Q~^$&1}t(tcp=H~7`?cQ~y3Va*!XmzlO#vv7oHb-n5*9PpDR+p0XhWE7( zC|A|oj6<3H3AyN^hD3OtMk)4_HG^lFzj;ek;ghPTleICigh2Bgq*^TB5vN-I+So-} z?Bz`;wVRLMIC}SR7c3F1uOzIp+o9)yPoq`ub5$(wC@jm%eq$#G<`cw6leL7jv+*=? zxJa50-;UqzpH0|muuO(fe(txEwxmx`h}aYr%UMqPs2l6L>!rFUm!*>F;c!aC545Xe@!F_ z6urQ>M%0rYuyN*3zCVR{2(hOph>#{#BUM6jv>Nr)IBh#6MO(8?Erw=D5&H>4R0N3d zOvc65$5Ls;7DAc+6=wrD{yKJcVI)#{9j(ooIcTrur*}1yu1_!0=jn1dG+r!*QSUI-q2-yF%_MC8 zlFZvjD}mQ=Vw7T%XJ-zG@KmCT8Qe6-Q?T$#b$-g zLOrLoz&&?ecDI?=2kLc1>T&EI7qN-3zn?wAEm(4!pQk#z=eDl>^nGtH=N|4h4y6wP zwqLmMjT0hJ4cwXBXRqA0vxt7qkp4VmCclOsfMjJk+ivzdQL2-4GikN)Us6;J=0v5= z7r1n;6`^+*bQ0R4_q?C|V_-gM3R%drX&#ao_1c$bx5lh{bmO~|MT`vUqcFa1mqbZZ zqszf-x^cJiexR~r^U{T*XW@T6sj6qKj!!Lo zR0~XB-C^v;A({7 z&B^i@*7G%U92Jh;xHLgYM@IuhoIH|8jaum(>8l+->~yQ7VSmEu+is`EeZ~j>Jqj>mGRJ>fKM~ z71g!Zzkct|oD3>D)O4N}YLi!K)I~nUHH9v(udiRT zK0Q6jW1>ST@31$_H{se6{mU8g9TRG$`dkWxt))WKlJtBW4;>wMK+U?T9AQb!$ zzPn6$M#h5lsh*JDo=3wkNIBBRl4jGo9;ARb%d%_w_zD<^W`RDlmA&4@&}!`hY+iVw zW#Xf0X)0CA(j#I^nb-#uMGGbRnsSRsOEfLk10zMgY zREzLTLC`2aZyENL@)6g9N-L=H6N`?l7=ldV&D`k0ChFyBvs%#oV&y(W6bYw`%RD@4G@2Wgx?Vtd%^@*Gd!a?zG1QaU_W}`0VQ1jB zV41`%qG0*=cgsP(Gbu&b-`0M%F8`deP17#>KA9_$J+WO=-SB>ne+#dkVnF35JI!wP zSn?rxn1gNCKd%*<&h;(pJ)Nta{^|-6Tx7p|f@bVO(;c8%Ld>|V(s0u;*YOn>?qvsv zX4g+xeBTe&nCAor ziS!!z<2d7*;p|xkr&-rCSH3-xl=40wLU8tyxIoBjhm*C@8pMnP-9rbFEyh z4ET8c^(?NkvD-V(o4!MpM|?sA^Fl7Oq(_BeP^iwgiE~o0Qjl@T2`Yc9_xk58*DI2w z^Ky`SnB~W~=Y8HKBLV!g>>umNF7Dah3r$%^s6U}jHzrS%$){TAWTiF~Eq{1MKk5uj zjN7U7**2^Gi-uz+vY2x9_DViX(G9ea&WjSz5M_`%t_`JE5oa@|CxL>p@nJ=pzmzwF zr99cK7UMu*tboC@`igzIPcqTIdjo$Eau<)!``~dDc4VBkY%Vi(5CPZmTDyE4fc>sZ zJ2D+Sc%0D)lcIc!sNL4n)>F2%VC@hq!))@D*d%KJp(C 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�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 literal 0 HcmV?d00001 diff --git a/test/reference/fallback.base.rgb24.ref.png b/test/reference/fallback.base.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..18b6a7c836b898cb2f2e194a44eb5cbfb9ae6d64 GIT binary patch literal 3332 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 O$l}5kvzl|rhyMfT+))?+ literal 0 HcmV?d00001 diff --git a/test/reference/fallback.image16.rgb24.ref.png b/test/reference/fallback.image16.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d90ab0e6bea64fd4a93ef1b6fc26c2c58253a69b GIT binary patch literal 2642 zcma)8X*3&H8xC5GNNcIR)uxQ4YN;(^7hBS4ZPTGu#8S0{G^Es4w3Se`q_jgv>{JsY z))ui;WlYhC+8RZWp-oFwEUhSN!hGL3-;eLdoO{o`&+|U-J$HHUz308_;^YVtQxpRL z03Zb1&J6$%kmuuGQ9*v&UKwJ|?}Yt-aM+IFg?7@ee(#~D>zkejG_asQ$uoS1$pt)X*LI_r#r#1i&MRnO2s}ih* z=5VDtAo#sx{2vc={#4F%9H#F?Ff2BRv6j^mArz<1q3ZZ$vt=SMM-}mJD*1}gSGQU} znf$ds3`lYkuO=}ElO?B;UH^J_xL9}4D%BgH?BI3b7CqKI1lJ^RZ7gX_t-Yli(htgCBMys&?DiFR2&*x{ z&y&4PZkH1lPh~;}HOT}#w@sZjZtUKk+x7rj?0#V@{_yl&%(&!s&1>Z z^|okt_30<(^|uiyv^5g*HGSS;^T!wht)~d8`=ujaBpW5?bFKsb>z`1sxkp$T1vxi? zEvf1A9m%KYt?6FC5Yarh+S1AZUeJQk=|G0eJ5P9?+aS4V<6y?mwSJmdiUt!#&509O z3XJd$V#owug12=fVKF3EwQym+_zHGv_Up!pFM?z}&cdozg+4mzIlKd3NpJmiTP(zC zcXDPD+N7}0`W7?M`B?2oGQ;RWOR14AjnqdcuoSIE*x5EeYYB*(ZiyJ5R>3BEpDV@Z z+cGDKO1&gP0=7=+{gkya&M>8#zdJV_TGT$B=br_&chi50rrx)?Rk-^HzJ2T}P7JJE9|a^Sv*mjMFYK>AYJI zK8}aXj_Bozk|G%;{~1&4L9&ej`P>n~NPmWyCv+1HG*nYNsgf2Pa69!={4=&UPx!MD zLfem_a3qHr#Y!t$13pY*>ClNKmgFG?^HBU%!vNbC!j-au0`B474ue_EyfH z7fT*+VKss4>jH|5IX-eZ{J4KO$@wam)p%^}XVBew=mwRLApJ~f2&>!;WM@UY+n$VN z>}XdA;yZgw2VUDVJXE&Jykp1#i5RQ(71Y8tu#BEpo_#^-JtFdMEH~UCY4(G}=NC0s zoJ;pKjQ76ArUE09xQ9O+gFne; z_!>;sn{LKE$aE`iUR-*!bRNj1+RNlb~eYs9%`1vCi8F`pznNxI$NKzJNCPKeP>JxqJ^ ziy4O(j^7ZDh%7Qx)uBlyc+W+}$_?8kDN3od6n?IH>8`Tp&;qTc6~^Vo{&-~A?zp1V zGH2uqIxLo9#*LdYYDZQtvbsdSyDrOE6ov%{G&H`I_{t7VRhhpe&OCS>&A4BsP^3t? zSMfc;0~%BTWkFQYwHLwX=^XPEWKX!kl(HRTQ~o>Ee*k}q8UjB`D_&iWYhE$oFco%F z?g_m)nZX9UM6F=I%XgA@%2t6P{^o0`SS^_CUybMRi~dTx_#x9~UqfG17q;}($3~lN zqE+y4jQ2y>Z>H%Zgx=s5ow8%&N!!`kSmmzdOpN-II9e1aV>VZ988e zI~?E%C-CtabDyk)vsPZfb14Xm@KHGJ3k%g&jCb~-UM#21LR*g zT${cTT5ppmBb!t9i2s#Z*gT!wcetM!Rnx`% z=IMP;O?osvfd53ISFX4L5r`f%+)jy7FsJryA-C|gN&?uJzcPcIZ>l^|WD`HavN_+> zM@5nJe;|41zc8-$ttfJS->UC=BSm)=!#WB?w33F;WLxb8->pbCo7=;`eF0!iY*5x7 u%P(QrawyEYU(Cqg2K=W*Q|+ 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 literal 0 HcmV?d00001 diff --git a/test/reference/fallback.mask.rgb24.ref.png b/test/reference/fallback.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..16d3c14e474ad124768bb122272498b8afac33cf GIT binary patch literal 3141 zcmb_fiB}R>7snMtl+sFbtuWKn%moucEf<6=+_hW?%QBbT$fbnB1K)@bdSi(8nw0;rGprfIQ(o7I>%?1yXZa9EkC7p%F=kg+9$n405Guw(%?zEDr%U<2I2xeFUPe7x*$&|Ao01sqv5Wt zj?^gOW_x%~hW>nRNVP&jUv7oIxGIIw=ty1GnoqrQ^X!;%TOX(!_|KHUChPMI~f5|L4BsV{q$QHEJNl*eyqDdn8~8mlYCe4&I&+dpm`3SB=_XnD(6!*=0JW zoEZr#WIGGKj@_j-o4G-s0EbAt#SS?EN3k_EfD@!FK*x!yrFu;jxViU=?vIGRMQ-pA z9U|0_oZ1_A^{&w!Yge=U?)MAi6vn=J)Fo9Hwa=NiaC2RV#?FMnNA=`>I$kIKYlORP zU1!470p*88oq)0w2Av~*K4p9Rbx?AX5#u|f##C(J$)LL-=#4|i zC}LOtwHQ%M?NGTa>dCwQ-EE8$0{7C1f^HLjdH6D2!Ou)G+aFh(HZ~)dGWxd(V57CP z)0^5#9ur%*9Tr#p62%7IcrX504Yu}8;n@N)>^<{TOxaX`?dvyB9xN4HzYoLs%)v^$4ZMLGY*gYZLQz6O^(Dfv8b zGVGh~B@)j!U^`q|1phpxR>|FwdZ<5;SmtD1&fEHbf8Mcd;*LXzyolnyr%E{6OHOLR%@Cau@A4_oJFl%!HF} z?RxxpiTo_pQ8OA3PAMiZ^v#zWpo+J{B}j=w#+z?29y@c9%eWH zDh*}M8l$G(G9`^i*WkWF>qvk?-EcA{`k$tKPpKVtzy{0u3xj;uI53BR`%LUyFuyfV z*3`|y&1Ur^NLM;&4*m+JJm*a!p4W*P*3?2QfA85~j@6v-6~JSK=C&s(auZwSgJRFq?Dk}n)@b^LSG!?STR-7`Z8E$ zT-oA;ck^=fq|yKvG_)SH1aQ%a9Bz#|HN%29IJL}VCDRDd@S=3nqg(XoQHqSikY)Fr z289Bn?(3_^?1B-JJ&QH`O+@Dx$(%1h9Kq?qE~yNolS%^IGi^Ci_=f)A+C#m=C{R?{NX9TqqMjd8)qRpejgX84L8~1NMkUKb% z#e4n^{dOK}RYAVy=Exm+gdKB|DA~dFgUd(Z`v1W98fHY)QUg!L#g3nFJpZTzuw$iq zDP!s=C-0Jb52jphL$=ib>uA9e=4kjGJ?y$XFu26Ill<^V`0D|%ol|T}S7q6Q8twAa znrO%2RW0z|^%2h>MfN`J^fNr+RsLheFWXy+mJ8&B26;-?%$AcF-RZV(riwM|*i%qCd?hmzqA(UwPFD&DC(bt)< zL!6oTb1?Op_(=&ZK^R009AMGUoF{DXopz? z@7@Ls)!V=JZ6E(w_~JHAV~R=q&3xKLLWuF18b$ac>*!}*iqbBI`H0e)BTIXtQygy3 ztivb0Q?rm#(#~Dya-ORGbb1WB;+?5+Gjq?YQ`~JCI+4-VKCseS=2oX)lcBLP#yr*p z6X~@xOe6SBT=cg)dKiDTAAfGnY%YI?E*-seTt2I=?;ohHw4j%m(7A#l=A&16dKj&k zJVSXu`eYQ&OtXQNnzUQA>7%^TM?TIw!%ClpkjpT8t&CL~P^Bxl4%fYAaXR>CAHR;G zwNB0^dW}^jw4h3F1z*1wuf{vJ@@8qzJG53n^h%o^Fw7|5s30m1vr;x^gg9}d236|V zrJBiI@331O`x(^9^!ZCSXD@gAl68p-A;p%ihxsc**_HhU3|VEy0eaI?BIV=oy z(EUr>cxC)w)M_S2FiqpWTz-XIJO8sBrs{pCMX-)iO>k2bLK4Wxt)gO!Y}m>=uN6%- zf%`fU{|f5{4YgoJYsSPgpZtU5kv>?DSGy##EDS5}PgiDynYEh2N@s=}>&%G|(c40- zX%G~HtE=kgDGB&(&Aa8Y5A){4R_@k?=6d02-PEuNdswORDHd|)mSm6sl4N;r#21Rm z*e$2f%4@ecLN$qOa-m2y*PY*{$g|Q;sb3^1xnA6V%;Y$gt8(R46sYRz|9ib&acy3d VuKkAaO_u))02oiK2g41Y{a>qV0q6h# literal 0 HcmV?d00001 diff --git a/test/reference/fallback.rgb24.ref.png b/test/reference/fallback.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..6d728ab2728078a00e269f3f88b1efdff2795ed5 GIT binary patch literal 3139 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 HKqveM)q?UN literal 0 HcmV?d00001 diff --git a/test/reference/fallback.traps.argb32.ref.png b/test/reference/fallback.traps.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ce5736336bd1709c6577bfa5e4bc3b77ac99f3 GIT binary patch literal 4070 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 literal 0 HcmV?d00001 diff --git a/test/reference/fallback.traps.rgb24.ref.png b/test/reference/fallback.traps.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..16d3c14e474ad124768bb122272498b8afac33cf GIT binary patch literal 3141 zcmb_fiB}R>7snMtl+sFbtuWKn%moucEf<6=+_hW?%QBbT$fbnB1K)@bdSi(8nw0;rGprfIQ(o7I>%?1yXZa9EkC7p%F=kg+9$n405Guw(%?zEDr%U<2I2xeFUPe7x*$&|Ao01sqv5Wt zj?^gOW_x%~hW>nRNVP&jUv7oIxGIIw=ty1GnoqrQ^X!;%TOX(!_|KHUChPMI~f5|L4BsV{q$QHEJNl*eyqDdn8~8mlYCe4&I&+dpm`3SB=_XnD(6!*=0JW zoEZr#WIGGKj@_j-o4G-s0EbAt#SS?EN3k_EfD@!FK*x!yrFu;jxViU=?vIGRMQ-pA z9U|0_oZ1_A^{&w!Yge=U?)MAi6vn=J)Fo9Hwa=NiaC2RV#?FMnNA=`>I$kIKYlORP zU1!470p*88oq)0w2Av~*K4p9Rbx?AX5#u|f##C(J$)LL-=#4|i zC}LOtwHQ%M?NGTa>dCwQ-EE8$0{7C1f^HLjdH6D2!Ou)G+aFh(HZ~)dGWxd(V57CP z)0^5#9ur%*9Tr#p62%7IcrX504Yu}8;n@N)>^<{TOxaX`?dvyB9xN4HzYoLs%)v^$4ZMLGY*gYZLQz6O^(Dfv8b zGVGh~B@)j!U^`q|1phpxR>|FwdZ<5;SmtD1&fEHbf8Mcd;*LXzyolnyr%E{6OHOLR%@Cau@A4_oJFl%!HF} z?RxxpiTo_pQ8OA3PAMiZ^v#zWpo+J{B}j=w#+z?29y@c9%eWH zDh*}M8l$G(G9`^i*WkWF>qvk?-EcA{`k$tKPpKVtzy{0u3xj;uI53BR`%LUyFuyfV z*3`|y&1Ur^NLM;&4*m+JJm*a!p4W*P*3?2QfA85~j@6v-6~JSK=C&s(auZwSgJRFq?Dk}n)@b^LSG!?STR-7`Z8E$ zT-oA;ck^=fq|yKvG_)SH1aQ%a9Bz#|HN%29IJL}VCDRDd@S=3nqg(XoQHqSikY)Fr z289Bn?(3_^?1B-JJ&QH`O+@Dx$(%1h9Kq?qE~yNolS%^IGi^Ci_=f)A+C#m=C{R?{NX9TqqMjd8)qRpejgX84L8~1NMkUKb% z#e4n^{dOK}RYAVy=Exm+gdKB|DA~dFgUd(Z`v1W98fHY)QUg!L#g3nFJpZTzuw$iq zDP!s=C-0Jb52jphL$=ib>uA9e=4kjGJ?y$XFu26Ill<^V`0D|%ol|T}S7q6Q8twAa znrO%2RW0z|^%2h>MfN`J^fNr+RsLheFWXy+mJ8&B26;-?%$AcF-RZV(riwM|*i%qCd?hmzqA(UwPFD&DC(bt)< zL!6oTb1?Op_(=&ZK^R009AMGUoF{DXopz? z@7@Ls)!V=JZ6E(w_~JHAV~R=q&3xKLLWuF18b$ac>*!}*iqbBI`H0e)BTIXtQygy3 ztivb0Q?rm#(#~Dya-ORGbb1WB;+?5+Gjq?YQ`~JCI+4-VKCseS=2oX)lcBLP#yr*p z6X~@xOe6SBT=cg)dKiDTAAfGnY%YI?E*-seTt2I=?;ohHw4j%m(7A#l=A&16dKj&k zJVSXu`eYQ&OtXQNnzUQA>7%^TM?TIw!%ClpkjpT8t&CL~P^Bxl4%fYAaXR>CAHR;G zwNB0^dW}^jw4h3F1z*1wuf{vJ@@8qzJG53n^h%o^Fw7|5s30m1vr;x^gg9}d236|V zrJBiI@331O`x(^9^!ZCSXD@gAl68p-A;p%ihxsc**_HhU3|VEy0eaI?BIV=oy z(EUr>cxC)w)M_S2FiqpWTz-XIJO8sBrs{pCMX-)iO>k2bLK4Wxt)gO!Y}m>=uN6%- zf%`fU{|f5{4YgoJYsSPgpZtU5kv>?DSGy##EDS5}PgiDynYEh2N@s=}>&%G|(c40- zX%G~HtE=kgDGB&(&Aa8Y5A){4R_@k?=6d02-PEuNdswORDHd|)mSm6sl4N;r#21Rm z*e$2f%4@ecLN$qOa-m2y*PY*{$g|Q;sb3^1xnA6V%;Y$gt8(R46sYRz|9ib&acy3d VuKkAaO_u))02oiK2g41Y{a>qV0q6h# literal 0 HcmV?d00001 diff --git a/test/reference/fill-alpha-pattern.argb32.ref.png b/test/reference/fill-alpha-pattern.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4344f23037e18889d305f5a62149bd5d329a669d GIT binary patch literal 3381 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 O0000!d21-D3A0_I37! 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 AEdT%j literal 0 HcmV?d00001 diff --git a/test/reference/fill-alpha.mask.argb32.ref.png b/test/reference/fill-alpha.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9de7b504b1ec19fe6e1ee4926f829bb43b353bfd GIT binary patch literal 2736 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 literal 0 HcmV?d00001 diff --git a/test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png b/test/reference/fill-and-stroke-alpha-add.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c804c7a7e2f8bde4d0aa89c74a797f63f3baa7c1 GIT binary patch literal 556 zcmV+{0@MA8P)l%>MsAZLuPRwsMCRF0VU zay#f_cG-Txr5WO*W2YTyCsTevRp&tPXFAa zs;XB(1>u6yN~`t4{C4-<=Tf*Niu;tV3&I5e&M=IaO?6$5u~b!!*>q*)OU$N~%7cha u!vg^P>j_7!A)WRVWmi#l!y+M5LH-NOOSVfoA~@p!0000l%>MsAZLuPRwsMCRF0VU zay#f_cG-Txr5WO*W2YTyCsTevRp&tPXFAa zs;XB(1>u6yN~`t4{C4-<=Tf*Niu;tV3&I5e&M=IaO?6$5u~b!!*>q*)OU$N~%7cha u!vg^P>j_7!A)WRVWmi#l!y+M5LH-NOOSVfoA~@p!0000l%>MsAZLuPRwsMCRF0VU zay#f_cG-Txr5WO*W2YTyCsTevRp&tPXFAa zs;XB(1>u6yN~`t4{C4-<=Tf*Niu;tV3&I5e&M=IaO?6$5u~b!!*>q*)OU$N~%7cha u!vg^P>j_7!A)WRVWmi#l!y+M5LH-NOOSVfoA~@p!0000vY3$x)*qRgF}V63Widk%c2d%oSooNajm) z_S`RlCCbLqZYWVWzCeZ!=|r)cz|h4O)RpilHbYBr5;|DC)7|s_(evoN=W50n7Q^@b z|3oCv4T5so3&W*`ZV-f?H@{|?NRmfaSKHR!1(b^G^>b^5Qu%d(pkl=2oGjaj+3&aZ z_P#5XS7SOJucxVOGxZ2|I1}W8`~hD*f^E*zRF22%mE}iK9q2K1n3Zvd*%LkkQRD*B z_xA?#@MzVf1Oiy8$`6i`*ZQa^zy z?bXzT4xrSJ%0pc@1cvlxIAz?ThV%f}jVcdqG)|>Vr?dmSFFgFkog8t-&RgDmF95HdF|^x!J$Ccs8N)j@RXsl%rN_AcO^K#+W6WuKosE>m{4+?|)db>A}Iv yxlJWdZUBN+?=Kdtt>w+;NwaxU29!Y3k00007LBxKA|z zL9zJp>}-8Nd7sTR$}~T(-f0=eFF+`zs;-;nA1O7bShMZk%$gcoTkodRN)T8eq#Wh* z{hghc$(ou#dar?adeTvy1!S|4Wt~{oN%~UC7s>fIEnoy$;pits00000NkvXXu0mjf Db5RHr literal 0 HcmV?d00001 diff --git a/test/reference/fill-and-stroke-alpha.mask.argb32.ref.png b/test/reference/fill-and-stroke-alpha.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..e22ebf91ebc48bb182fbb366b4461785ebd9fc22 GIT binary patch literal 508 zcmVvY3$x)*qRgF}V63Widk%c2d%oSooNajm) z_S`RlCCbLqZYWVWzCeZ!=|r)cz|h4O)RpilHbYBr5;|DC)7|s_(evoN=W50n7Q^@b z|3oCv4T5so3&W*`ZV-f?H@{|?NRmfaSKHR!1(b^G^>b^5Qu%d(pkl=2oGjaj+3&aZ z_P#5XS7SOJucxVOGxZ2|I1}W8`~hD*f^E*zRF22%mE}iK9q2K1n3Zvd*%LkkQRD*B z_xA?#@MzVf1Oiy8$`6i`*ZQa^zy z?bXzT4xrSJ%0pc@1cvlxIAz?ThV%f}jVcdqG)|>Vr?dmSFFgFkog8t-&RgDmF95HdF|^x!J$Ccs8N)j@RXsl%rN_AcO^K#+W6WuKosE>m{4+?|)db>A}Iv yxlJWdZUBN+?=Kdtt>w+;NwaxU29!Y3k0000vY3$x)*qRgF}V63Widk%c2d%oSooNajm) z_S`RlCCbLqZYWVWzCeZ!=|r)cz|h4O)RpilHbYBr5;|DC)7|s_(evoN=W50n7Q^@b z|3oCv4T5so3&W*`ZV-f?H@{|?NRmfaSKHR!1(b^G^>b^5Qu%d(pkl=2oGjaj+3&aZ z_P#5XS7SOJucxVOGxZ2|I1}W8`~hD*f^E*zRF22%mE}iK9q2K1n3Zvd*%LkkQRD*B z_xA?#@MzVf1Oiy8$`6i`*ZQa^zy z?bXzT4xrSJ%0pc@1cvlxIAz?ThV%f}jVcdqG)|>Vr?dmSFFgFkog8t-&RgDmF95HdF|^x!J$Ccs8N)j@RXsl%rN_AcO^K#+W6WuKosE>m{4+?|)db>A}Iv yxlJWdZUBN+?=Kdtt>w+;NwaxU29!Y3k0000vY3$x)*qRgF}V63Widk%c2d%oSooNajm) z_S`RlCCbLqZYWVWzCeZ!=|r)cz|h4O)RpilHbYBr5;|DC)7|s_(evoN=W50n7Q^@b z|3oCv4T5so3&W*`ZV-f?H@{|?NRmfaSKHR!1(b^G^>b^5Qu%d(pkl=2oGjaj+3&aZ z_P#5XS7SOJucxVOGxZ2|I1}W8`~hD*f^E*zRF22%mE}iK9q2K1n3Zvd*%LkkQRD*B z_xA?#@MzVf1Oiy8$`6i`*ZQa^zy z?bXzT4xrSJ%0pc@1cvlxIAz?ThV%f}jVcdqG)|>Vr?dmSFFgFkog8t-&RgDmF95HdF|^x!J$Ccs8N)j@RXsl%rN_AcO^K#+W6WuKosE>m{4+?|)db>A}Iv yxlJWdZUBN+?=Kdtt>w+;NwaxU29!Y3k0000*v<^-{TMQl0HYG77@rXTJ41?uvrY#Tbf$lK!nSa#Y+hDhON0_U`4f!6@1G;;+X&aSe}-zu6% z*4*YSEPGV|v$kk*VxNxpG)zex&~}USV3|bQ;=4KjXeAo|XF#Cn*Y=n33Kg5Wvgly{ RvH$=807*qoLDTs6 Zy916khG#!4R$>4E002ovPDHLkV1k{>VOIbE diff --git a/test/reference/fill-and-stroke.egl.argb32.ref.png b/test/reference/fill-and-stroke.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0544c269608d135ae8b832a6e5daf00b629c9a60 GIT binary patch literal 318 zcmV-E0m1%>P)+QmuEWd8hq^CgpW2L2-ii)7@6b+8ML!Kb$zg9l)vVxXJg?I-dZa3c!* zinR!|4o*N@3?0xmB{3!Oh&@{jgXM0fEf4I0?lAJ1)dj-~EADa}mfb3Vm!OC2=bHL- z!t|mF;1qO9E!Xrw{e227$EvnKEX{^U;bsEov}J+U0H-u_1s~3?vd!Nrnn%{$<}56G zRRFWLXmVnoj`uW7NgU92i}PTaMBC!KIsa%S8vkcNpy=23m+=Y}o4T^-VE?iJ0000< KMNUMnLSTX{|B8M9 literal 0 HcmV?d00001 diff --git a/test/reference/fill-and-stroke.mask.rgb24.ref.png b/test/reference/fill-and-stroke.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..40172935619fdecba15670c6028de2e57be70389 GIT binary patch literal 283 zcmV+$0p$LPP)9W$jDZK3T0RsfreHub}n~ zv|!O$#LbAdu`;Cg5(xQoIh&lYqJ$c2HrsR=F=fh#6B^4vcX|4)^2p9SbP;eCS}-QG z3L%rGDcTJ#|0Iig2y6Ee?Xq57S_MRI8<9Vf4 hB7beDTHo~F^9g&V*M~vx)$afR002ovPDHLkV1g1NdEEd2 literal 0 HcmV?d00001 diff --git a/test/reference/fill-and-stroke.rgb24.ref.png b/test/reference/fill-and-stroke.rgb24.ref.png index 7081d72a516868117d6020b9dd2603fc8053aecf..40172935619fdecba15670c6028de2e57be70389 100644 GIT binary patch delta 237 zcmV%3@`@`3iA n8v^5brB)(;ZKzt`^xyLdd#2ZiLGRV?00000NkvXXu0mjf742}{ delta 206 zcmV;<05SiY0{j7xHh-~6L_t(Ijm4AE4Zexv z28=*Acz)1ETdEr_=EG6LJI&ThOKZG_r;+7?Vtf8-fOQ=c2mOfw< zBI2>lbnBrG>Oni)$`lbp0EMOks-O|ceH{)IJg_fGawTER7e^0V()(0G-<~9u(D6Ct zS!Y@RZqxklK|Lzvu?ctLC{uH@N|l$N?eg~<SlO?qr?Dwrdf1lUqujlo=pXYsfJ(u7@MByGl73u5Y9+FljDUbd~ zCsd0M6bS?&4+Qaf_V@N&Loo5~4N&CyV?lN`?+5igg1$aA{CeBdGNfuisORCn<@_W~ zNVBArMp;mD2hrw8*jvqjfP;BKw8qhoec#h;9`%qg%@|DbtB#qnb3mfZ$LHHV+X-93 z#P<%uM2@OKYcP=5%-(GJ8wDOt^g;3Lc|{Z}Jn`&>9j$(eFYw-9RKBSh$=GZS!d}Wn zNR!|%I|>@&P2h9&Ti@f0-stfxDci>6XBxDZ5{9N+~i9sstGEh64sRr zh2e3LJaQA+s6m6E8NHE&&jW2F@h+hlYvk3gmF;CWcBwKiI@vyRV$h} zbv1O9s^kRCsx`6!$&(@Gn>d`BTQCb2omMHX175jL8QwGYa7-;?&K)v-B(f!A47(q;aH-qfiSP378p_6a+1Q?Yb;V7;WV`?z2z z+yYwIk9#TWU9&n~U`s(W>)SjAo3R*Q5u;6ha$ag67Vm;7`Ni(nbS;s*NY55~RRBxJ zcl0?ZasK2Mk@hqGjppl^ez+*0(6dw}Mp#|u0-%-N(Y>^eZ1jomA#y9Hjq zWP%J(!c9bV^kO2xc_bvZXfO5d`Jrj6s>kU`I;}MplYnH;#s}PkpUk}qB#a6a?&LH0 zTlsDiOm=E`o=<5l0-p> z8mBccXZWkqLg6B9HDYIFtw!v2z$&~RbqG`zkbDh^;G^4uJ|@7)$c)n zi@NdPfdp#hvowjvxy`K{%8~$k;c9$N3+)6}_wG9|$9lzu1`YMxn60CpF;pkzta0@y zhmRKR0ub5Wjlt+9>GyyR0kQiHp>hY+RuKB&Z>|diUk!WY?szoMCik4_IjS zUbMK==1fmG1~8?j13w`)dq*c#CGqXGGI;80Dh_jJVIeJtA2x1R3$v5y|P zpBQ5;27W-6ucs6CriLuu94`75k5|$oxI=~yADX(4E^!mR*^MEsVpbuieAbWfn2o0D zV?Jw+v#Gn*$SLz}ma~th9%{)I7Vo%U2JZF535N&vy2#^3NL7Q%hNV)|_wppZ4%!$2F*0IS8vyvtuiI*C`$=d7b&qQ9w~n)5O# zNzK*gSL$M1u-8qk<=w{n^`d2t@<+kQhz3N7T8;A-dOlFtj>eyfxMlx2NoE7cmuk$J z0*xa%0e{je)8xG~*O|}lx`*Y}b3xC1^M~OcDk9g7WEW~Fs_fq8#_gf=(Dk^g-b)_U z$}xpf!kQHjSQcd+K6v(PlI-m3=|j2z<`o~_6(oXx0?t)9`JNt~!a&Pv=Q6Jryt&z; ze4FC1eC~0)K>kH_w6aXD5a|4-DJETWYTCy*Eq`U}VH&zc``uZc?*IE*MRLWu_=lZc S9~D;>z~}3U^QglfrTh;k1*;bT delta 1897 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 literal 0 HcmV?d00001 diff --git a/test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png b/test/reference/fill-degenerate-sort-order.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c392c211ae76335bef55aecd183bf4515569cf9a GIT binary patch literal 2049 zcmZ9Ndpy(MAIB9fd{IfP+ENrLDH7|WB)8cxrNz)RU%8}3w2fT8zAm|hl~fEXa+xyo z9V42#XO!mlWvo<$S~FQ{s4x9K{{5ZvIOjax=bZQZocHVbIFFNl27^>r-Jznx_wD>W-o&2>^IYOfjaRd>FH!lHXu@AR?bZq$F;ZkVGbU{j}kaZ{o;!|f1_h`e# zNSdDFeVcln_$uC?O61Kw6G-W|$$eLb2JNAF!E`n zNX@Ac{LcvYsYoRPD#&K?je4+ z1F0b?>?XkYm}i0m%`#G@{0p|?F13V>;hIJm@t8cDZD#2sUP0ZAu!zwrUh6#8g&&R! zl7ox*N?vbk109YGq>q8F-%I6YcJ3$PNCG`!H^}6=^ghIHFWl!Drp+{B3q8p}BvH3B z5LuRJ!Sr(nJ3#AiEMRe!J_#lf?H1Fs?hcw?URAq?85V(nEYx{Qx3!UoLLdMP&GC+z zSiR%Q*BDVD{kpDitg?U}@+y%%_KVVH4Y1m*Lj9-oc3{4HR73%kQL^m^3rCYOA5QL9 zMHz`W00`C&Kyei(mz?<8Rp$aSFWA2iiL}vn6OR^>4^Xo+f?=$Yxuo5+PZY1>Nl>$g z{c}lLtAp%AlC;e1jL+w!9!?X7;csfF-O$D~L0g$gA|+s-1r^-);%wJKYAop%*H~wS(4|`lsTNyJVnj<7IDhRh67ThwK)@$-p1_ z)7hAt8tp5hW67;U-~k%Jmiz>Q7#A;;nLC=an>BcGQ))pcu|`aQkg_aL3XveVqY>@o*^ibbBGZV3h2eIdOCfpWWmmPOz-IqHLcBLWp}j zUa5B}dPT)`&7zy?c4G(GR5FA!e#T=HB=ii*_96U=x8W41!8?_)qPxLm{u?ApYmqM= zIeh81>ekg++-qP0Bx1gqi45rGywMZ@J2^rz^J-f(7CKIX{R?=5EPftyx&5-JfSTmZ zn61wC8Orh#Vby++U;^OQ8VhTif?Ixj;8r-k%&~K3sU`HapsF9Ud}#xutJ}dG;u#XD zc~p$(XVq@d22S)s$B$It73m8-s>IA}XR*IDP=w-Za50xNK{!r}9u-eWvjlpC4)ZUZ z&zE)eUPV6xlHm8KY*4(iJ!Keg=e5l$%q)qkw9ML(U7ktHc=HmHcfmrpfKsh~U>DqI)Mv%o`axc7y7 zkm8F^Z?N~oyhe*>8)!5`oAG)4bIYDjQ-(OBMdGWXO`-YU7Bw3U7wu*GZM5H?qN6

  • vlyj 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 Y|Mvp1>lYzK3IG5A07*qoM6N<$g2oD(g8%>k literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect.egl.argb32.ref.png b/test/reference/extend-reflect.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f3084266ca85022437e90cccad2a5a8f7cf097b3 GIT binary patch literal 133964 zcmV)vK$X9VP)is30s+Dxi-tBxX{tu4s;W}|=U0DJifBS9MM~91jVh3;v{9m_h&HqYK_HF{wlTKx z*Ldvtp7-N<&e{9E*VP~E-upT4mp${24Kv91j7Ddkv(G;J?0v6$t#z$yT{r);|LX5d zQxI{oy~<`+A3S=)!*71(xo3|~<2&E?=O23LVJ{3-f}p$nqyOd){-59a^>GL_M35tP z)BgEu`^(2=7)|qdopgWPIEvQN1OJ~J-fSkIvziA>7kobohMy8s}Ee> zY{!izn2C;Qw(t9Q-v93RytA=EO^~s)s;8fR>UTf#v9lZY(A5XO_|#{gdu}JIH+Rnq zHjY;7?B-%?RWIDw594t4(owM>I7zB{*W2Flwzs|ISN@NGypK{jI|c*+gJD*sv?(rz z;Lb7&ARIIhwBybA<~Kh0t#AIe*S_wxEkdn{qCmj`5JrQ6G?GrE0SM9oD3u9O{KM%+bnW-^D9Jo`f+^zD_??Pu=(=U@~?mI z)6c$eu1lr>s@bo-5ZIC=7!T4#<&WARd_QpJ<);N$rGb2nc9@EhLnrq}<*|Mz>B zj$iY@Yc_xU$De-uiR%wuIX!(%`-4ya!5qUUAIH8{5<(>l)w~TfPEn7_C~7Q~f>{{{ z8^_Xa+`KXIOHV!b+rR(u{S@1+jkc*RBo3oR$VnroCegRU5KR$ zG7RHTBHB>gZ4A-LO|eQ2R@_Qh3&fS9%}@N*AAQ$*zAJ)|NErK4Z$P>Sl2SMTzzw5$ zL5t$$e4d>?%>os%H^*Dw{+jo`^S%G@fBvUW-hB3pPsZoI@)_-hr=EN2^s?Za2OoKj zFdc1sB=5nn&I!fCfm(upThPikHPvNKKuF4{L6p!n-5=onA`cwUw(d9?U5HA{P17?p)Wr3`Hz3%nP_N1h{NDD z;%FGq0%+zIW;6HjvKf5ZoktzdCp>?no=>rR{0W4BG80bBm7BpN!7yN~wQUBkiUwKyC^H+0CQ@qo90YtP~nuam(yWe_aPj4`+AXmcc5jrnN1IXN2t+E4%N>mGY7NSFxrAkdiZKqey{ z`G(A3HNi+$lVyiLMM}GBJe)HKI*U)D9*$;f+d#_x2P(Gg=Uyjzm_Jbe% zp$~lEuRL<~5d)?cyXl4v4Ah~turuFSZ9dP_JWsW`Z!GL=C@oNJ;BLAxwJ_k3tB-u( z1ApZQKlnpni`Gt#FU#jEmmd6q4}7ou3~he)#_RxWQzue4MV`E z3ImM+sVa7Jy?*U%+SfqLs2t!&?p|6INzgz#ZEgXU){0>OWTKhTxHbEsfA@P%kGK1| z&M~(pph6R(894%?+~7pU#sh4C1N7*|C4-Csf`)FqB0w6g2hiR62@#>zR3$`UonGl% zY#HwUijAD}g3-f%WZ*f~IN#NfzM)@zXw0{byl=Hett}!V6fIg)ex#IAN=ZuqXkZ38 z20F}X5JMSwA^#3VGd%K!$Nt98{mn-oeHf~>)~VJ|)K<|Z8m4(_YE!K@&(7v)o~QZd z+1XTUQ=8_A2DGWR8j7jbS}Rl^ee~hK@pFIkkvBZnOppvDAP7K65S`|*{5wI<3ntCr zfARZ1Sj?$1wWw8Q7>sEAqtAcoxf@S~=FQRmNB;c}o;|bu{g3^T4fd%|eExiQ?fSJF zkALo&akKf3_k72bUw(W)pU-^Z(y2G>$89-_-QacOm-lD08c$D8QEp6#qs`E?J2~OL z-8>yHz44LPegF4=@Uvg|!f*bI-+lV&r+2&aPk!s#J@eK+l+sj+e7yHM<15Wzw^8*KwGbx7Dx z^S%+1Q=(`vVlYHtnr#Z(O|hR??9)A66GXTh}3&~T~7j7eDi zZqCkEruAl4d3-c(TSh5t5eiKWVrffWmMhj2fk~$u7&9!*AqnSGJKJL{x_p!i+kIXP zDJ3Qq5TajG-r9T^AfSktXS5cr=0^hnU_uAF($kt5B)}pB>n5F9Xh@eIxH^_2n|BHf zu$c}kF$anLz74*uoB<3P_N|c~FnF=R08_wF#&UG|fvaKNVCB&l3uXLIBT1zv0H_5n z0RmvFD7z_Ivw3buqi@aT+5`!^?|9D}-}kP!@6O}P&ph?T&(*Iyd2J4xqJcQyHAfo; zKiO=CVu<$fPyTU%(}#vLpzh{sL!%F^2>=}!>TZ?;4W+i@Pk-jgiZ+aXG;HP;H|u_$ zTLVh5DH_6bu3!@ z^HQg>mJFdsL5`SfJm4x4cty}a?YuY2U-N6GqaZ$16WQ%@^2jN1n; zT{VO<-hvpJd>9N4%TU~C1}w3#`oc`6>yQu>DS(Md1+=DU5i0qf!Dve%1ORwYK_PXU z-M#`%_iz}^mO74wBH9#f-;nlFpwUs-s$xHRtMz1Kr4R@OT8pz;yUL)|8DKlz(k@oC z3p@XsW}ORV&hW@b1ComkL(5?n0Vx0=-o3kv?vA)c4iT=ic;=FFkVopZwbYb?xk0 zb;hi--EO-bqWbmo8y+Y_*fd`{KGI}!J>G6$QLC^z#DyH=ZF97;pm?dHqJCst6vOWUjO{|i6x=<83b_Rl{1+*40ZeZ_++&D9DZo_LIdQ_@p z0Y$)}V7eC4SO@~eP0Fc?1et+YBio!dO&xS41i>VuLLX2lI;D9Y5Prkgv!niLABL7*8ZNjRIdt2!R&MyHCCw7J!} zisayMcO+ha>-VF=#0Y(G~7o+FKVhFT= zqMHqc^78RrS zj1P)w*T(H=&YQdQI+3NaTSAk7~PG1(}2J9^Fuj14hQZu~dQjs@*eV$v~r%#YjWmgJgej$%L2m=b}>LxrQuo z%d2ikYOS@1EdH5wqe{$rp4(aFV01!I$fjm<%Pb@akt$?Xd0St_WQ0+ID2@Y9HU?6m zX`0A2TM3ELB%w(?1|k#S4=xB5VL*#pmPjd+W<~mOL7>uKlUha|P1=)BJn_qa|G#_k z?1d_|sqGQF^C_Z@#Rqo)b8Ay=X1+ZdH!vT)kdGW+`Ro75fBeX!kLHPW7-~t@vtT7G zZeXV8hZjlGjsCvx`92w=#njpyHG_k+N6NqS^i$7Vdvb0!s~QP&FHRrL%%_O$Sel~N zCSg|_4S^)Du-4j|pPkofqBP94HrX7JK;C{13bi&XK5oj{T#Ng-@l7c(HpLXJw)1DM zJ@u7mo^g6GN->fRXlQ~Alv|C6s@mFEd3TPfuR|(1QxnV zREAP~EItnIh29Hogb|>M*+3F>nz;oGYaY@K7VfqrERnE=o4Mt+WhF)60)sH`f4+ug zZLb^rO2?w*e9FRKkHoQB@2et&{whP#G_|Zv*46;fWbRHg!YQXn&W$%Ks~Fwe5VT^E z*>X46k|8CI3W{|EfzaxVSHvE@cE@yI%mM+TFSYAR*|SOjJuF>=@E%p=_facAY{c^1 z2*8NTmo5#}KK|)X85GgXjUr@o4H%m+&oTJ08Ok`gLt}Ag`K#amgYS6XyFdxa$fFtE zdToOJ#X3VSs_6&6iXe-D5pZ*_Gu&GZ6C%Q7E#?Fj;V2-5Blr%nDFe-?x$X9IZ9Lo8 z;@XykDXI*6%bJ_a1^`pj9I`rlfB|lYLY+;uwsyQJyZt|fN-L< z+04+w%o|YLJ>;ddfPuSc0;ftJ$AFBY!Rg1tc;(9F%cm!oPLH-@DVuQ|#?i~*qJeJ4 zX68U6KosjwB;U*#U`RF$trN5oU2p>3=-1MSpk(dj${fa=8rG*u&&P5~L(G&WLS~3= z>3t62m5Nv0$LN!+AeusKff|T?m}4+Tz{q{YerBVQEQl%51CoehI34M3EuvMGfe>2A zjetiBQ4m|p*m8Ml7x{=BUNJpI2_@oGck$EOX<)iB69y~~}`ycZZ zIJx}5=%;7%S$JzPm%(b&V4j~C1}9VoHdXo%8n@;6TtKDy8?ge28B@hzk3Nu4PBPPv_;a28AF-KG%xq;6!rq)!OTiFh!(5|;O4wz=tm|HEN zPA(naxOtNett#qNOaSWKBzO^slS?OO`(3M1TP<>i+**rfGn?jX3%B9nB7z%AO3>=ENC*V~E zcQ0-%ZnTWMobEI_=%z$Wop3lkACCxk&qbDyV9}%M#dJw&StQdawLXZYRMLZ;?wfNq zBt6e^iC=v$BC3w|@KrcY`huh!jMjr%ShVGCRtOY;vp&y%~{mw@| zLaPDKQt6AyKV-lC~_CND^)GFt9KOnatJhr^Sn+QR0ZbV6cE;x47vQd0x93 zUUgXXI@DRn>g0R?0LfAuKtvEI26xA;7I?2gG9Bz;OT&x5GfVQAYiq3N5!Ra=XadOq zZMppXo#?7|J%1p=vbu;%IH$j0DD^lwv?k6Q*bgIqAc2>GJW(uszz0+oSQ)X1m!Q zZMTCJGb=`OO8_`Q2&1uN@@hsP%$#OUg2gPMy9{BIifZUY#)E02wDoS0OKA|j%}eWI z0l=W(5{jE8BEAI1i`lb3gk{xOamZW9!>>}iUB~$}pHJKlwjIOWZ+mwQeLJrE;(loy z#LQoFPz^?hFA_P=Fjjz?WJCwg1ZFv59DnksfBMP) z_U}LO^s{?WbuMrKVD(|#aD4Qk2Y>RXf4Yog$3Zg*76OU@2wO-eISXjnu9}D)&2DMi zO73~NeC5(`R`xgNo7U!-x5dYCJUQODbFR34<1AWO%tNsX3yheX0i)YcN<$5BnqoiK zqtdEzKU2{LAI{G9pV>XJj{xwQ$De2s+i??Uw6YmW8H>R-Lm5Xi$Wi86-6DX^;0Bb@ z<_fpL+%BCS4~4BYoK0<-c2k9wBOe|(IXyl;IvF?Hqv2@W44VN?BixG9y>q6#qr1z4 z>_p^l){8|t6}W(i!E7(ftT)lhPLZ_U^_zDvQ?*(~o&*&Ko%E+;p(KQFG(*V;zXT3AC98jzWw zF_QX`UOTv~1xU&c5IntnDk#ckktwB2lnG7f_c zrEI+J_w!t9GaokFK}LEJkS?^k4M*GYLyfp}eEj^`*|qDtqq2SA%B9nj({VGF z!N+lPwB52~W!21z8Qm$Om?3-bNpcCgI-Y0iBD|E!VI%_G*(gT!Og^ylS0Qw`SU0VXar!;5}OHzxw!^LC1Z-0n$oS?Js&Z zb8Dl>nyQct3u`dSg(gH;WF(bvSI3)3fF=m;ko4%AUjHBc+<*8F|It5s^2w(&Pd4z8 zhadXzPyN)RZ+a~0&RAhH0t&3v3M3X_W^l@~eCfEYr)9lJN&H`b^`A|3j{W??+1XU< z(Znyd_Vvgz{Y116F&I#ylx8v!_>9m`tdD>4?t@V7G_O;a(t;TM* z2e934yjXGD6h9irQp#o=$6*||!;PCacDpG;El|oZ4kkr|1}pAHdMU&4rW7-o(J}4! z=leF6a^?8gHp5tk?Jy3*Fbspa!&J;VP_@tb4o0(7fh%FD5ZGM zjFF_P9CuAe4`;*rm)j0V5(4@K<=3tuH_Up6aVfrP=b+;&%Q3k1@+#l=trA~+?$vlIoeJmn;ISg-*kLb~z%3xD_T{`}{jehR>w9(wq1 z|LwnZ`oI+#ByZEq1}~Coi+!E5iEEzbX>RBHc{l9M!?L*VKgu9KDcK`pS#noxF@;E%#cq< zAgzVw=s~WTc_tY^r>(3_Fqs1j7q^c2|4VATlm*k0^Jeyyy_2<88`k<-{b9qCPGH_C z>ry9TSvHQror$R)e#Pn^4kzWs8hkJh4(I5rI`;nhj)+JVp8VhSey+B0uN$>Q)UDRm z0WUQF;8+V!KP-}{hHl+Stpl@mt-?K%)Mj+g&`>eoQBPTW)gK#qrKFL_}>h0`I<>nN1=zINZwTxqDezU0~i5C>n)KHQnaKF zDK8`X>;WmX2roWF>i|GlouasptpeD30$1kNFU!oG=4K*<<(@8u7?^pcshulFnrHUf z&9kpeJ+lSiUT8+Dc-{?>o@Y~lP;rA>O9Bo-2VtFLDq`tCBoIBu&aed&_Fw=2AOJ~3 zK~y%El6>WvDUs7z6pUq2hL#;ug z1x+3oD~P3WAbZA%CcgbW?*!0*!faCmBwKhuf|6Zpq?eJ(Z=JxnSQ5m6(|tf5$$3BZS8EIyRHveI2`+U(NqZswl0 zVxkjbaR*WgsC52uk2aSTR8WW+v?iA9#(r?#_iUC=4XRMc4O0GGf)<@ng5$)NJyn5AY*##yqg+Anh}d0olZ%SE71#9M9k&e@j7 zWd9BCJzo4AeWeYO!!WFA0+yw!3HwQNU?>_Lgd#*T)u&QylE7vh0c0YLmFsq^uGsqb z7daLL#N1<^8=FF8Z?~cm(~N*+8>1Tw`?M)cC7Gmym_g&f5EV+a#fajT%^rQyzUWcR z9YkMTIzfCf%!+`8*A#FBT-Nz1)~JFdsqiJyXT%&aNMW4d^K1cd7|O;5^U+hm!UpSg zEn9C5<>p+gp+GQ6PjKs0><;)Xk02ylSK21HXv5-}q24@{p^RWwf~<;+tuwqv_mfEC zRI~*4|pF(wxB}A9I ztqvUb_Py&DtrPU{Q?F_R#&Z1`S(sTU_H#_l+;}|1P%co}JU$|PG5CZJYO8bth^4>h z(1s7QkC$>)=5C~Mo?C0fFs`{2)#e(_Fc^z-9LfTIV47=fV8}v4vCYQw(My=;$=!!x zxW9a-@WP5Rkqa}62&uv|#4Ky#muk8MWC)ltW=Kt-Xcmx$2tb>&6Ck!_;v8n12_X(N?ncL*7crHv=s zbqxnHJ286F$WwbR)on7a%^5XI2pJ3!utOv%BP0O5l^j4QxICx3_(pb4CACm+YinY0 zOKr;Kx!lDd)BUytCYBTOpeS-5Q{k01*3@90Lx^32(~ifWAsTQ;G3ibNC|(d5)x@Fc z-s|`mKS-8RB(W3b1z;Ej#z>Y@O1TAqFtb|QJkM|pgPHZ*K4XMC(}b6B89g5CaGDnP z1*F~5B4lh>J0UYJh*sbcDO;joI6bHcHER~6h1dg7nwK&pSnTMaaYvy@Fv~U#NsLGb%#OKaQF`qpyyZkaS$Bb1a2XEe|xB6^cb_A2G)R}ND~l4-!V ztq3naa=xpp|5F)jGBVGt41<|UF!7Jnx>_^ad!1no!U5>s>)Oltz4=g9N$O!3vgm#1 zIY|yfN%rVr$bgrzj^uet@2Th&izNV)3b{z4c9T%zE7|Fskv7-@7K}g`O%WlBfLUua zG68KbUd-G(&7uc-8P6EJ2f_pCG;}bh+d_fC(xq`(V{}nsF=qYrPy(CmTqyybOO7OW z>s>*TJ7hy^SsC-U(z^C&JQ2Wy}syPm$5EG_q}u$niH+(mg<6i2rNyL*%LbmkSUrB z3?abQWRO8JM6`&A9&iqe#z3>;SbEbJO-6PV)z6{J1t?Y)&xZb5?pt`=%>lJYxU>11%xlt{Yt74 zyFJEHN8^hHRKB5p`>x*Xl@KPZ@zj00Q0w8_{aY`9lyEFY&;u*edq_|;l(J9ha3MD+ zWC+Qe?6?)=QP7&ps)aR$i3tuWN&Kn5U`En&FA};NEcX-f)XpS9dM}P=@~ehwDMGD49SwA4z2ruq%D|rX{ALD>B6Wb!4h#^3QYM77!jV^ ztK?;@#=8=(1*dBXLxr3|;7=YVte&C$o# zB?|buoTPYPOW=tpG08&FonGe{W@<+gA%%fKOCCue^EOf8tppHcur*r={aHYBr`yt} z2hZZItw1o5_M3dsRk5TONRqmQu3SiV=>&jT=k1v@fCF-p^`JVPD$wi9*&*FmrG$>K zkSsC)UwtoWht_+M_Vi#kOSfwXl$rWrtBIhJxt&4wF}sOoVCSS{R-Asxfh4Cb(W(%jx>!NFs%YpG;>axw1ScVc zTK|v)bfhvxNK)bur1eJp3!f8xyA6=*TR~as!7jB{cKh!$`4*oSMRt;X>OSq_gZid{?1!o^RBNC zKX9*OUex!#sB5_Y*MG9(UO)K7+^cVT!f%dSMp39`=Xx+G=01uD5+Src(KCcr51|1B zkkq8)UPh>k>{kR@L~BYeD=zRA!W6mf7rc|cBV=Y=_S|mGNX2a-bbjwe2;HgJO7tj1 zv;!t_eh`qev!;;k^CAQCI6$X>)Pn3aonS97W&EFC-FX`1VcWnhH&Hz}?r3u!)eBuc z&`sOp-DBN#8(IJh+x&fZ2eQ zt_acDCd~|1!YYM3;7B%NlkK3es(X}YSFcjKrlOWqPN|4 z4TXs4$#BR^Z(%erB7b!xDA!u%y=33$B%^`6Zy7W6%=Ti)EZOV?7RSp@fXRHEOaDaw zKpwRi?t-H$JCNOz6}`IZTkZ2UZ~QXht2ETsYJ@-=N@q~4!g}8v>$t5ncz^fj>vED} z08m4{J&_h98B`|)CY`VaAd>kAA z>fNZ6Kr{)WIDrU5C|c3pcOPN_5wn#vRNK zTlV62pT-s>QZ72sA@{ypVcw(E$pbo{oXDe@*LG2hS{nw}XRwr`)WP!XR5mMvnPJhy zyQSp2(m5`$^d+LcZ(GXCD`uxhFO5q14Yl4of6;0=f4cE}uB6O9zWcJ_H7B|c*|2q# zNY2Aj?MR(oNiDE8Ge~!7W*|KGPL7P6dq<%fG69ac&WZ-0%A*V}qnWobqgggR!N?%Y zBve=|#i$;4k}_R1GhjuSmcHC{vm}CMmX1;;DYBWNWr0~hYw2LcMfC$TsVS`1tY+n+ zg^U`OvMy;sSTOt1dSu^wogj4i{H$>GsT|8!bc(btLeM*2^fFk8aZGO|dk&`YEXt%W!Dj-E`kZNnu zTFcF>ii3jO$Rcl)QK^1&TRUNN&Qf*^K<=Fg0XCqRS!542d(l-FJxKw$anbLkE&Wvx z1BstUqF9;M6H=syRMNNw!C<*7bdQaZ7YJWSU=52JJ5mX+U%;(gutQ*Jb<3;z;qnLx zsU=$)i*q(-aVx_j>ve~p;Ua4;X|>^XmfSf-Ueb8wM8aGZ*9M>GD)79bm>rEl%SZe* z3^MOe-c}uiCtn>$cuAwRR!Ui+#9He-SM;_dzs-PqJ0UO(C09u^%bw8tv)=sDqE5jN zAUo8vTMdArA<$w`=SwPoB0b#G6x#9saNMr6&V>Y-aV|gjD z#4Qc|5nQ+4T^jmxf1tKt!bqufXyHo`45C=?@>ld^w);|`|H#P18U)QkLc}75Wd?*= zD$a$XcUa^}EGbbc$cz`ZY%PzKw%Am(Bqd8XA|mz?G1oTL*5(R8K@<&YW@c8*)Y@&5Ix>T| zTO@VpXf3KWW3jqU$3sb-SS59w$wTf681ha1L{q1K!jXtw7vqQk6Zl5bqg&T# z4+NFjP2Lv3a#vB3i2@)~cqpl0hZ<{KovL-k%iIvlmyQJi$Ym($;)PyV?hu;5J^Vu+ zvrb1Ha7fpWzp4#5XV>bT47M3i3igw3P8>>%)_ei>(wAIF>W~167wcQA_oem_QRjVC zzmxhf&#g9vtnF(=(9Ec*D!}NlF6KIS!oVV_({cjU&|V?-xB#?}G~cJBPE#oNdF!Hf zaetzAP2Hp;qD8G!?B}{mQM)P(CC27f%u-cs6}5|diQ3h=irUq$CTa(v!BJ?Y7R3>f zd8v~@Vy#*OY}v>Q5*id1K<+sxbz!ZwmtPT-L4jpw2jvB<5_KtI)4{)7$5*4(B5Fsn zZ(xP)j1r#YO3-w-u2th4^i>$0_i@V9n&H$z|9B;R! zS}C!}%35(x$JbPs#y&2a!h|F@&kc?oW>%ywE9+J+1U<|^x*EoNhe#%$|6i; zZ7m{ls~G{-5Efk~VA)Wi#}kw*<(r{UVc)VQ|BVPU?`K{{h6YlKaj$oO@q`xvEiz#@ z>$0-FGs%GLozg|>zRu%YzvcF^t`}?Mynf`>?tabeuIMg7H~MJfP;QfzU0c5|4!)?^ zDa&t%vB`_fGPKCbwx(!GS=lB9LVY)nqzUx?(O3jyKJn3y0sOXizoUv->+iTyFvH%| zk#@6Ai;6JUi7tjY7& zG~gwd?85F5s7)cAe{Wb2Dk#-0XOh zo13BOaC5T<9=J4a#?9cz+s)}cH#hUIzPTB>rlwf$5icTiTe8!*0GE>AOelnPb2BcV zx})T~{%@|l>Ble9;JzgVZY}(-AL+T=oygXo;c4l=09TuVDU?@S=r6 zxt&S^-969FM)+*LjYZcXt?E;s`c!UiHcb$__=&Tj0^Z=CI}pY5i3Qq_L9Q*FDs&b6_&d74a|>U2KM(_GKz z>Fj)(cC!>v6tLELKhOJGAw{h)O>>LDR2$6dJn#0?b1&Sye)If%Kh4qFT*uKt739Xg z5YVWuWz|DbD5%`@qQh@mW(X8vO9U1vB?~IkeDSo(A7eo!rO*QGmitKHPZo}F34fWQRRB_@HpL_fl|NCEh>V+2oC7NVz*U!#B@zFo{ z^WXONlgn4u(k7RgBuMJ*XT3HGw%p+seILZzE^@t8|4ZNZgV%Rw=es@XoM%E)v}wPe zcjvolnp(8EMTpbX>O9xE&2tT^wV0=v=QhuC)OJ3%X_o*P=hlvo$2Yz9wKr~_7qhoM z_PSl2&i6CGXwjMiD0u}TOI6u+|1eWc_=d=V?FfTWzff4#_B!YSdb5 zYiN=Cs^+s%^k)?Q3T+t(q4bindly*wFycK%RaAJ zudwWj!ooF$*q7-(Whg0GA-ssY(|{LC<}DU`=j&I|Ai1CGjq?ELb~`Brw?gQ6(Ke}< z!mLu)(2h0ojir%|2irbqDebn_BG6jQfu`gO_0MWigMifI+Fq1lgaW#G?b55N5E zwVM?!T8)+@BEdX@pZ=pidf$8BQ#NB}R9xl&a;jwaD+pzs69Qv#5^1@I2Ao&!@A|I4 zbiUiobIU@}zD12zr*^)tyWPHq=30}$rrOS1J>S<>>&7_xu-okwiqI4h!Zgj}FeoV| zF@O789((-DPXqe)Z+-0ZPkhBVkSt!NT2mA|U0Bq%9fmqjXS;bHlA$cjl4+h>XuqHK z|37ta`YhRT-HDwgGw-eCz21RtGrm=64mZ|Mz0PUWCKNjOCLMBj7hlu(tX~BW6}@ny zN4yqRTYLJqiSgdDev&Qwj#`1RO%x*#zD-$mvmI+g;U|21>rFrI=D+{WtS!^cpz2^% zz%Dpe44$w5R4lM5$k-(sFK_Lz(V-Tpkk`RP?FyQ?x@jrD_dCD)^!Zn%h-pEH*|LEL zYD|lW?{urZt5@FpzDHpsW*wV~^^Er_8a{?+HHI8fd}H8ni((BoSIh7D@F&L!UafF` zQ?o2(5L5JQCgy>>NEzWQrjry?!!gAyo>d*O%Y&;CL7SKn7(ugKxOA=F=L?svp+Slv zFor<2WhJH|1a%J~wvzyLlF+p(o~bD!^u>ysf@e`NaXW$61Z=f0G_ z3}Ti`&cmQ0gGnC4hgykRH*?1rw+fw%d~%hh2S>p|H-rkTMy%ukh~SR4rqElTpmlH; zH_;FH8fp!d^#Im6liMcmt%#1dZ0K9A7)N2)!x`Ep1^UT$_&aE=PoB5(@2Q&kIJ2Tw zZ?bW{r+;q_{N_Mc{T6G&+dt)y%YxAeVPg-~O2I}X61t;07(mT`s>$Q{KGt)s2x}3Y zIsyX^6nAYP+w$4U5T(e|rpb9QcX33bz(9nK?3ExMd^VZ58=7ZTRc%r%UYkZy-OwO#RKvhHxVRW0 ziCSb-&^qKxu;#8JX9PAdcXb~`SAAaf-Tq>6b8orqhJMIIEQ=rXuqsf*`vP6YLC2Z!QdG^en%bcP{-K3G(iW<& z7!R?Xz@ffc4U9KltDdOtXpZ6l)rQwjRvit%Y)qK|4u!B|{N*^hknvdt0Al~ozxktY zeD^zQMKqIviIgmfT5=wSp1=blfHBe4Yu6WV>^<_xBhJx`!dN>XMgRv#cUpg5R#~R& z76Bh?&-Ey(4_)u4aer+nO6qu_1CDCW0-4Ny31T*xg+X)k%zUfrU^fI4Jc3?jFz)K~$wEAXJoYy>%nD6>+2Q zwK3_n%QX=dQ8UmrY|0VW|6om^YO3i#_2ag6gLa(NslyY1jw4lyIw;^c{$cyq52$5=a3L(Dn#@_8mkKcCov^yB0`#M#P>U*|h}NM1Kr)lSagaieU@GVVp#uegEX7^aVb;Xn^SlW}oYf+@ zC3f(J*dzzWio|MTAV&%@n<5~Ai^DVpGbHw=Ny}W+1kodg4%ETL03Cry-J1{v3UR1< z526Zz)s$jT^+;S)Qt&~tgPVE`QBhZAkiEUVgXOesPMABQ-Uy>sT9Sd$>#ak7#HAn9JRfARsnPNHNql zc%2|GqANjwQQ|66ZNycrE3Y#tRGGq^48VLOLQ{ugU5HZtB^sABvi! zNQoJVE1Dj^#2<+pJe)6-T zK8V+$A^}$>DSGy{?ce^*&wk*255D)|d+xvEu8S8ht62d>puR|q!HoJW=m=VA*)7Y4qQwDFmNp9{gC@U z7tyAPMY^Hyr5mR0bkfc^K;YW4Rm3{D3=F7H5H$cLRtF z0kAd-u~Kf1S#Op8#WkjK-HQP9k>O+0@x?c<|70fjb6I9qMBH3ei8uxZM0FdouCfjp z2XQe6V+SmT*{~SaFo)UZ2_^|A5oQfeQi#DAy@@buVAgUQaoU7w!zs|=TLoj%TiZYD zvk(!;iGb>fOTc3V6PQLZ=(TfQ8`8$>`53PnRNJkgKyBeV0^PiF^?&@I|EK+KwUSK8 z?xrQHNsN;KSgoFcF+{f<#@P(cDr)}S?|t|E55H$Rp8>!apt;qUeyt;2-`rSCf$^*v z-z^goA%EawpB7aSO-umj<_unBb?*M-Cr@o%zj5;iFF*UeAAIlT-kvy$8Xz!n07{XL z&!&B4}SOq$P6&5QJb69R_FSP*LLiO&_!$H zA7E$`4Os};#ClOcj0gzrcb|Iw$?v^1n;x0PRI&mb;%1h_3{b(b)3S$ma22|83)i!Km6V|0WiQQ@;YX| z)g7--Or$CpOsaM$OkFn@M)t(9eQ016?Ku99QBKdzeee4I#mhIP07gK>JQSp0#zf|2 zklG^w5Xr7iL}ui`c_=XkHShu#FW=m`zJKJ*v1*y-Yxvdrg2~Zfq;nbzweHJ&YnJc_VmfJDu6a?8dEtsZ|*#Hx{dM5 zjn`kh`a;tTfSH3D4oK9}1fAL#j%+p56u=zFkuq@q>g9{egZ||F(|$1}=4pt`e6Z}gVR-(v3(viDdGDaxT`c!j-NCZkUoIK&?z49=n2wRH8B*0E z1b|zu_Np@us5RAvkvVs5$p953S8*YuFGU;^Wy19~sgGRaDaZ4@D#pMeCyZ|%etPFD zcQ^B{&&v$%!02^4k`Wo*4Alq_D}Pa9m^PJ(`%RXKh>NWhX`$4_b5}hiexvf8*QV>a6ET#ne>D z!A#9{(uPbO1_L%lZ9`K;8IchT)R{tHRf$ONefPu1P8@@pM=2m6n2(&}FeYg0*|_!f zL;WAb0Q~V!f0mKZS>4n;1PqJ`NFAGqiPNjEzxcV&KlZM>9(n1-iwFH)be=bip6@t$ z`mv9E;A4+{L~>w&?KZ3nV3W! zi7~K0zXEBnjRt@@igH%}a$ z+;-bZ^)Y~<5!mKHBVDE;jQbRUsxnih&m1+^9D&R?>|PtaN7LMza z_E0Ts+~#lj;vKWRPJ1>fAUXj_F?H+|-8n{|1m9|D)^eMee%!?)GSQFy=})%C|j|zAX0DwA}2B=#K58gYB9v(dhN=^N8kG>$K+#SWo#hTvKy=~oN$ft zSVMQ2pluUB_VG{kMT!ZoJ7flcq#t|Vquc3ZKlCE-()s5<{)tESZ}iu8FZ|{|{k4O= z+-}3?KL6RHN9SMr%Gb_cy1cVkHeu4Qf*VGPs!EWSUC#lCVJJC<1PZ~MVZfn}OzB{m zrPyL`_kACF&$)Nqd->X>?a6JQ`t*mt|J>8}-f{1Pj~@SnKmJ1L+a}EJKXdL~=gwTZ zc~t-bfEk!vUDcG(VyN<<%;ZHBfH*+nK#qe*23I#iM5e&eU5dFo+}z(IA~ADkPzE4# z1#?jyL|%I3wc|&&&zw3@lMx>&n*rC;iIx1WlGpLN-J_!fM0Kfkv|$8V*MoDD8;|KP zAXRBaKmaH54P0rH^KK0IEk^s!vEfaKkRk`FLUt4*$4HTh(dKPv;+VVsr@5ZW1i;M9 z1PE%z0c+KYDklWr>KmJxh*=#dtzLKC#vjG;0Bwz|b$}|Lx3_ciU;X~?yz=^MFox4o z`G`5NiYQnqW&&UYPO4DM0G$A1if&TlGG<1?-R0i-i|5bXe=bcXYv>i?`e?83h(}dR z00)AR-h&WBAb$K~p8=$-N{E$pBam~zQ`$+Vy^wSF8T6J8#?F z>BNT@Ui#syue`jox8Dt7T4vL&VUwXfl@4oagAjg1n<; znLXa@HdsIRonydt;ifKksENjeA^faP^&eat7}k&es17Dne+#2+BlFl39w&Vri|DQS z7XSm-+Ihwix(J(QAtD)Ey?F8e_*eh?&7A{L4;%tvWtMadXdal%orxz+3kb~Iwk?1Y zViS`)ItL~spf)wc?0|hgJoWT<9=zv)t*vdKn!JzYXQGj#*w=%oP!UH60Ki22_@|!8 zB18nBwaC}T6hc_+En|dfIyy=7cb~iWgO7gX*w&fbPMv({!TVo%;iYTWue2%UZs>-r zZk2}F%|k$ld6{?G)Ro4}JK9P1w5U z&W9d;=%HEDMx33w{nXCl@-sg;kCY+>2M+-Om5JRf!~oTpk-(_rtm^amY|@0;BoHV% z-+lV@vR|r}CWKloHUkdi2I7Uti>NuoKrj+r*1Ekt_xua*e(=8St)`SQz#5SN1n2}* zJ#!Tb1_!GNuaEHRvHM$l8Mm5@wf8&vVE`CI^pOyn>!a2WJp?V@?kW^G$+)>0qxlJj%5n!MwBFkZT z`k5zB9o@eD_B(u|+Ov5d4m3v9sP68dwHTw$pZMi}0!{(p$n?aN=Vxy}`N(~bPI!9u z^r`ng{P3fXzU%$(f8g$WP9Hfkz5R}(_uh5Ki_g9M%!^Mojo0yDZonX~`eD-ebPmV1 z!ZPn=@8_|Zv_}Ae15TP2Z0M{{47VMfQ!;Sra-L2xH7r?GhL~V)d2oDw^0CL>f9j5{ zBS+f1@4e%Fk3M+ceRodML^5tSr`~nXLy;Xznlw|>fhfdCrWz?2h?%bXLV?@F?xmC> z-~s)CyYBq-CqDYpE6)y=AErCU^WH#C7_R>ajjtBSc9ibEyUP&aiq zA8~g!7U>8O%dq_Ozx2Z)%nCAwY#h#0qVWEUgU<%4X3AOWH)q~BXkEz8RRyyD;Y|o~xxlEd-X*lcR(v?fc zj~_XH{3sC-1pr0z*=%y|fx8}l_uc0nKK+6Bo%`Si?}fPg>V-={326L?(7lQ2wv%W2 z?!ZB%c#ND9FBbXg&W_oVg6!;f?8u}kL_}aFH*~`kl8GP&1V|KbKYpz5RtOAWS@eya zMjOiF6LsOPL#$1&N+Tlf-@N(9|L^aA`+MIV25Z6$)Kd!kd&{EYs)@-(SN$*yZsJlPt3n8o z(cOE6T*QQ2K@`ocjlPkj1g51xI5DLR^pJ^l3ezy8f{+}ynhkncQw z3@mhgF_*rW=YVOL&QrJ0zAu48=lk9sw21<=03gu!*|6W5;I^o=ZJf+`waA_uOwvXo z43jnj$?I2k0MhZJ$3OnqM<0Fky&MRg)XEDNpZW4v{uY#0{jgm0rC>-669IUivnnCe zG=%ru_u&2KPX5Ukzl78@Ei*t?&w?pXUgaVb5;qAt@g^oS=%o-Ka_G8#-X|N5kDRwb7#fyo>KAZ<#~l5@ZcQEfMqZ#X|;s!Klj5kXSYutJynMM zr~m#>zy7Un4S8^b*<{+L`Of|UvQ4May%buuTR1Gqp!c+(cF|5CYoEB)KAI2(5FNH= z(Zd3`Adm_-TT-lRBTuJkkg{BrHf@%TJf}?fa;>5A73$I^fiZ$dQpsZ$wh6LnIoRlm!_I9b|sOAc; zr7%)NbT`Rrhyt>;HC-Z|8pyZg)?UH8TdFTZ-{9ru8dS7B}hSQAYG7ywst z;A&h{cilMB2{>}tZ8G4IaT8!YV0g$T-|}}|Ub!F+?d)F&16Ea$QY}IcEguJQYdpMR zd#Xc-cKBWYW9r;)d8^9$48{Z*d*FuW8Dz~($~NC zAHM$NH;Iwz^t}l>NHKL_3L@I|gPIN9z?@=aBxI~bk`bB9Yw(vFNzTlyVu;Kf4S@lh zKnMmH2#6SV_jb41$-Vd8>sS@?>J`~$v~5)ML*(E1jsN1lJ06_3CmE*Ov)RW#^5};j zdF;saWW@Q?-+%JXJ5T+)FZ{*M&ax{Rz$eo{#7DP|l$ve;7b_PI2I%g>EPUPTk+}Qo-hu;6<`B$w1 z^9b9Jq!cj#h1sMvEIyKGSPUU+9tjT+LIg%&bN~p*%f3Hz$BF&jT?GIqF~6~MbJ-od z@X8y*YW3iQXK&uPGM&t7&RUaKgKBRcAJ2@gaAw2nwzx%g;_5}qXW+dU`{|djm>n@T-(_>d-|?led1T{zV~#XSe28^4crcf-T(Dp{L96{ zoPq(R5GIMv-hTAyA3ke13oV3 zaC>X(=<(?*7p~Nign)q|> zqHm-m>QBei0P5{PX39Ck2tRrgaAh1D`!NP=W<$<7OA!z=H822ERFitJRRaC`TLZGA z1CAWs;|%EN_8Fi8fnlqf=rr#=m?QHIY?@tO_ahMfB+>%{`{}~+Q%RNWyFzL zb)2C>#Wfb1Z@=qUH|$=!etD4P`HL^Ve(Azr{^ghd=IejEI5@cL_ET4G>^Ny6ZentG z4zx9&p*w(1rXe*bmQ#!&!k~MTBYI>WDvd-yY+~Bok(_-#Po_W=Ql#mGA(otnwwVz{ zN1aZaCItdWA*41ArGV2UHH=WaELQzpx1YLv_1aTE`2P9xFBR{v-gv$1_g;MY*_SUo z``2In>noRbz*GHjfq=np?C!Q{T2oFdC99hGY%;BNzb26sBO{CmXn}DUiq?>tATcts z87R`S>$_oT<_u}vCk~am$sLC5rnv0nM$AK{IqvH46ypCZ$w} zyF;M}?qxcgW$nzR?f^%1vSu>LxdTR3ae&HA5&{Jz8M6m+2XG~_6oVPMhaW!w-2Szj z4?XZun1pfG(tRv*rOHXl_47m>}I(ZRLDMzM_STP>jcDgm4uDX3EFy-BY z{rN1+Cn?K83|MkjECS18r%7@#@!T6Sb8u$sdjSCEz~Ck@43b)kQ75P4Vt1Elme8BT zg*;8Sav63H1RP`15c}=P_Q7hoZ!57fneg6fIDhGli`Tw}hLTH@T9pn!rm;1LrfoXu zHA{&xn?u!oM4)COs}cj7Yb2-0;B;g@J6Lw0DDKEOX`*)}5IT7;9vgG8<43lS&Zn`n#x3;#-ZI6rLX+ecbJN1{Y@$H`+&6L)s|q0e`pJ-J$Tr7VwZ9~aB*tl!$UuD|I7 z2M2v@25OcV3P)?AnYf{*$f<$8ca;zV6I*Hl9SsY!HxpAZ$HE~K`eLb}b=BSZHX3B` zaAa$%@AnYGiDTPuTwj>-(Ic}HN4BL169cg3SftAiPEHl~X2k{z98!!;WF~F`sVc`X z6mMcw%Yc;7+;GUlq=|&6qA?({2~ZIb)exD;A_W!STdo)h90^o)@bx@56T2yb1Ft7eTt;GMLJncfy=on0EnryJ z#*8;sarnQta!LSLd+ftc{3*=%$ETV<&FidzjrY`S%3|Rz7)K#FUW`!bF)G8B`suu+@H>Fx|Msg-*+~`012){9?d=4ohZSckbfBt8G z_T~ThH+>Osh>e(7KX}d_5mg<4hryg+C_=~_XnQuD&t^xaM-l)66%jK_H0cHrwKg>l z#uz4PvemTP^J5_}Ar)0O$fC$>N-;(RXak7?I57c7H9<4Gc=>f3%DHpr2%N}?C=gcY z5P$6P$0tpC;xmu^`mg-w7tbF^S)4gF7cYa#?q0XG#chKgR=3@@g%EMF*R-oa_8}4m z2#`Hy48V;uIRII~Sxm?U$hsv>r>SWuXHBgTTFXsw$B4jVxd%`i25JzaitaZP2npLb zKXxKy>&QvXmMfjiLSQ()HSbq&eD=V9_1pjK*a^FQ>57(I3y9lWGfQP0yQ+$H#3RdOT$4e9(^KDh`rm%> z&sU`Y;-ukz82aM5c@UsQW_PuB*S*`1KmLKeH};3J52`tn;_CG6ZJ6(b6!#aUnR-9$A1s#<$ZRNxYE4<#exRTOceuCCCSfAgRH@?QV)H=lfx&6pLL2uZ{zlNmE}G{C&d z`=Uj~)S-yn%0_unTw5VbM6KRU@ica2bjoHU?vENL>2=E!Wb|f z>ez!-IC`aX9(g%p1O@<(5&(q zQHm*qSR{vlTBJ#_vIJA$I+j+aH3N~WJoce;ufO(s;82lmkr~0W!`18iZ(P5A?t!~& zJ-Ko)Pz7vooiwUlCklayYB?v?vP}rV*QLuh*J5E^;e^g<<*YJ89d&QONBP|G!qnUh4O|pdT^!U*Y*g~3+QKCWfdUZ#idkR`>;&#m z1FH&?sjP98u&8!=X>7|QMCQnVU`0R`zVfB7J@x!^fvI8dO1JEbnidrzYC&IQDIk&{xOj+(3C%2*VHlRHZc#)c1|k;I*aUTV zClH;sje(05L@#Pi)`kE^%hfRDbpM0*n*&!`2tfYWFMkYyDr?cCZ4l|^;*B^f+b4(E z_@xWOs>|Jy_YW4+7Pixt6(7nzH<>325W0RavRq6JtdM~NAbTsWO6s^q3_G$n>Sjt_ zf&qxDv*xVKiISk}&}XtZiH&%7bEntb95Hj-+wa;qt7J=t?x=>QLT*IF zu4cd@Dvn~DII)|6FoiA`SLyq#j^^5?7_d%d19MOiLvJXi5FDX`3e?PjRZUezjF5=g z9FTDkHFUA^>g!j4$W2p7b&jb>B}9OOxk$dZQTQ zVe-0KsR955B4)2uN5l#T*#yzf6?_;ZUUgk8QxP211S# zJ}}}1M=-Om>i_^1;iv{;pj9Nt+{V7K5mO|HRJmyh(amZ$0d8RERLQ*ST>*!YS$`~X zfoq+LM?f>o;#qCAzxtyud|{Cnvl-^nt@@#;mZ5S;fts0V2o|Ff86g(YzVs1Q%qkC8 z)3&Y#CKPGXwg7;HO%s8PU6FtrD$)ZxAw~36$>tsc5D8ON6L3Ui00)#}z-q36y`6+U z%kJ*}hu-&o53Gjn=wSS*kAIo~Qi9{hwgZG4d%MllQ`4LIjq9GpR?Comb>bv#r#WKC zw9k`*A$gwkxsM4=uwOXjl(TJZ&COZ0fO~P_sEDQog0njkwr!j)_6tfZA|Vn-96BeP zV+4%ZKod{f6nG;0OOath!G;c-1_%^99_;6>$+Vq@TsjvZ4IzX4T2%CP%+gcGZGGhpgBUs

    {DTWX@+>+9*zPA>N4xb44<__wQ8tqRKTK~NA=gsd5AyhnQj3K7L3?bBnls1eu zYG4X(rnQl4W~0OgG9fc^C9Q<@aCU8z5+VS@h?}b8U|?=A3j3-#0U3ZBsJe<3cXa&L z-+k+;mwt#STKd&sB4F9vA%;+jrWDly7!z|7T2xhcVp20TjMyCAI!cZKD2sCh1~l!# zrE*ca(KN-tJe$r{M*c$%0UZ)iiW7GbM+8nW4p~A7s)7c9Y>wzc9E$sqX6x+TcZs=) zi8=rB6CdXZ#6%2jR}OG`bG}_b{rZirP|-q7)1NrTi2{HPo-t^OPTUMb=0;p$=y0)c zG-{iPQvomH-e--Cgd{`;hJ8=O#5IAmb{M3~#*EBP(X~L+Mn*9}F(tG>G@GJBRwD~T zzmWNq(=-cqk_jOx^$-lvRJ?6c*L4WonP_lDuR1JxdG$2O;LU*EEtO*=~nhgSu zplVKJfKnxZ6El-h@E8eEYrnzK0Vx+zqiLL(E1GH+4ja&1rO;Yw2BZ0NgJZyDu_Mb$^9FX~zfCH{E z(uYrk!-l#kR&Rd#mKM(6Z=7#AWq!tW_++Uk4s)pS2vU`}tI}2@FsrifVr{Ii8L9}O z-V$@js#y#iLa6>0Hg6db(LiA&-FF8VGin!8a|b6!K=m*D$)7D2d+zz5A56W7iy62x zvbX?wOq@cD#Dn&NMhI5a-P_ot&@!^B78OPaNQTOsiOrEB5D^$SRr(mJQ^bPi98t;D zG;u@B#2_lF%0OzOm8uIpt2NAQyx3cP-C9t~D!Q?VRlbTM znjl2x{Ut^^y6W@MBTYz!KwD@qbLSld6VPlJ$PC;RRgqviXu;$HWs)Xa&9oF)Ed~_} z5!1{a6wwk#Fq=-PX_{iHRrko%iU$TlV&*|CGKALLwV?*c&5e9rg=9o>@xn;!p1CnY z!>kI#xILe}``no;SFZ!6qF$whIk1^St&JiyObn>5YJRXPS9VszV9TXmyV+m9y!gSh zFTeEaD~RR9v14nphc{W&Cg_DjkcC{%j^ZuETLYjHpQ+Wq7M&tt=1)$&yX!b+%Q zV@?ECMXqd|Bz1Qrs;IsvzxmDYJoBwiRw`s_Zd@!g<0Q01=wO6a{x z4FjSFg<&YG*<^bAnbQUii2UoH`?X{9`Smy6D4xwTpjh!-96-QB&d$+hQ^W|xif7%L z0JMX#L{2+zXdY}HCP%hf!68E@Xo|k*azQ~zQb>f=xYL}obEMh`K;ombZFcBoWeVFz z*m>ZfWWLJ9qsJ5yW1qe6I8b1=ktzet3zck(z14{$#~g7`?*|J3uo>7n5?aWP=CoqY z1OUJ(v8XgLMCQnm5o+<#$e0rmpek{zj*gUK6GAK^<`9V}1Vm&SMUqT>$laA2J4h`s zPMU-+hKR0=aNj+5zj1TV5rCW-2tcY#k~%6QqZu?!bhU$3|J)0gUwHY&BU{s>+ebG8 z|A#w9hZh|3C%$Hr*nD$iREOR5TTEr+qH$gBddtJ!_9+|FI*hD<|DQOm%|*T?{a#nI zY(3R5Rvg^Ngmz3}D`^QjQ>B@y^b~da+8taSWV|-7a3yhb@_>j~$>811r7EF8MNRoA zm0>PgzWUWKeeuhG(Tfs?q3<}vQi`Ld*Z_Lb6>x9?wPH}m_>>`{Vv{C;xG%k;6cr;0 z5hw~oLl&%MGcv5K*a!j@C@gB)#z~+C%{j0`F$6U&IlB@BRO^WYb1)NhOeu-v)U;XU z#h0IRle2f;O^*D;6Hi>(z1hZ)f-4SAs3xw$*1E~|aXh+}+^p*avu`yq%s~K$Rk(S1 za`kdPc49J{(V{H(ts~^!l^qP?APuzch-406!la?Ma?oQblp-%YBieix9O=sI;xY}< zDPl+%lyh&Q(8jPeZ8(8+979`mLg8ahxgArRn0vNC*LqQ@a$i>#plKnxTOo<}Th37tJW?#DB zcde>=@?rJfXGF$^Hs(W5Pw&~?y}RD3RnKjva~Gfcxd&vfp$Oi|M z%wWp2e-mt{)35*fKl{Bu{`acJJe*)&x+f)7RLG>OG zmwDRa_7(iD+D2-)v+^oZoxK$kJHE!L&? zQ#@%;lzO^di|IN7mhA#f?B%B@czU;PyTfkTNl2*L={8#}`@Qt+Fw6A&^@!9%TS8Z; zRjXoIMK&K$poA!G*`l5(R9Hj^v2Sf@ZQDj9ON|xBBr2=-1XKmBmLg&bLYX-~M!}qv zfE=h&AQDMYL=KgyQ^0Zf@wEQ<*T4F~ho5+GhTJV?1Tr5b3NnVPB8br=DWBb){`}kD z`H63QwYHX-k&%%<{BeIs`r)JaE_0G-KQETQ%0?<5zFu#P{L5$K*X#2K6cj&Dx5>j9@0PLL)KlqDp|GE9WU;5iu*M{ACwYMfUx;}q?jZ__N#7ZN9<2IH{wH-$2 z-KSRaN%XSc?Vdh;a-TQSg2eGOM&uaV#S=N~#Wht@6k<%o(A+N~1?zE$Dajc!oa7r9 z&r~I|m>f>W&_$_2t*0J!Cs6t+YFxHfop zB1jrCL@k*`RUyaK4{bNbx(=UqI_Y7xMkXmfoP;V&ZGHp=QpN5z|I=@OXWL$tg2Vpe zkwf{QwtMV_kNtMG;`y8&8PWPEb^6Z~@aNt9VR8Ms!1(be$!m96k~Cxidd0E zw`$uq1ZhRIuod<^jT|tx3aFbERZ)VGpq3Czp(sd&sLmD;Wd@0)Lt|IV#KM^oMBA5S zH#MXnN|i-mySj`Kty)ItIT&1)(ms22W54>3e=+G7ds*V@(~sSB?>)z{1iD>jGGqAu zqF+D5{c+sivW<)5OMLR_`o^;-?RsE$>w~xVV_@tLaky48Vnj3TLtWrR45`ZAT?`l3 zR%-SnUG_WMUqvlTjOF|9-ITOlD@R|U@${JphdZQ*RgG1-?lOp6?r!{ge<5Y`jr-b0 zo`$a(6xFSJAH6Q6Rd@_ais<}>3#2w{#ZdwhoHPI{K7uKxni9>*G}TTfRijT)3yWD2 zZ7K9oN)f1vOwF1~MsjKUDJM*(YPr3+`^MM4_`xTiiRFx9k7P9wo{eAs*B@@?v()EBCn7VW_lU#;kt01AflLN66Y-GM zI)lEL^vU(SO4zi zh3t(tw_7XL`^Mr}Zm{nuy)aq>B#v8b8!c_UZ|g~3-hKA$%X-RJuWq-yEw;#FzFTbT z(5#v6X}3pWl<0cjV|uJBcahvRjm!}`BFE+_8#O=p{;Q>4P*E2jOph#zR#g}wE-l1P zgk&H4y=~)kwU<)O6Z@Syw^Mi|3rh^?Jq=~iJ^QrB(2|R8rKs$8QkGPKM`&S}%|zT| zCbCQBzM0Faw!o=%DqX}ZL`M~^=XnMs9N9fcn3kzN;LK2`42c&v_asw7l3J@Xlv&IG zQABA}iWOx#0f8(<{7etT{n0=EYS=jQKxA1jzJr^+qrPBVwHU zDn`&V9Y7+J6GQTlOiUY%8EGwoJi9iM52;m?0l=htZZTC2XO*wYyi!Y1n=o*U?YIAr z-};^Z>)&o8ODXHxPwUat-A6<$ZCC3~m;_WMm@wDs+i->qO|c=B!Dtd2JWWb52(88O|sTq6V=u5kSOh6XY132-RFS zr>OnfKl(*+d2w@lv6z}h8*X>i^!{e6u~;da_e>U4i>0Jybk@_CeyoM`(`jrSWB77l zDe42OkBHIgaypVdCQirUNnMt@j@6k8E7h!UtO+Wa*5b`Cw}`csTxu!Wii$^gu*i-l zJ)O4w!Q4(|v88CScyYV#PAp z018XG7BMYQg+P*S7VfDkDU#FbUa7D`=@6I$ELKHCm}VtsEDdNfs;Ej0gd#^$VDm_; zl%nQ?r6^^H>7Y+*N;4q_KxYP#a3GJK-}%lvyQMsT{zjftB4+vV!G1?n?cv6`>i#MP z{P^|yXpRSY(Bqx+j5-T0BIg5UHO|&MtCydfKj!PV=bYU8h~Q*ioxdyTJ{c4fYo&W; zaI&Xn@O%U#&ILcuy1<#?G3Vq+l5oz*+KD-3L~fo!By+wC)wC!?r_mALd-t7R|6l&+ z|M0DE(~1%~!ZgI(Sk{pcDP|dYx?fe2$&@vP=}N*HfsR5ooE5yvqH0A-Is3b7Dg!ze zc$0*uC(|HcQK(3$D21k?HUk1cAt@nJ3aK=tRbv>lz$kDDMf!T`Y69W3(OgQi%Bp7H z{N^`L>uRc6>Ka?mqvqwuFFTgpmBZZ~?$;{(BWD!Xb4~;59aO$~d@@y(ZQY4!B1_#X)eH#>om>#^_8fil8vjOk-}qnF4i3F&P=(d+%cfzw*`>8RkZ&s3E{XLt5795%EiHPx~J5iTmGEX|5&RVfruoQTyB3%W## zh`?s*l}65x*&0C<6ljImM99j_yadvlsT5ElmYMD&AwdwPLCxVo*HjM@S%6m6e)%8& zyz^MD5SjPenv~569ST`jcRB42VvE-$OL1QYW!#@+4Q{I{s7*Ab!cN<%EQ&NGcCs^A zBvyKW1+7_KtddEXHFzKU(g0c&O&wvONS9g%muyB^BCT6N_qF$!%dkiRIKoR)-DgH` zi(EY^$9pxcy8}gfkDzI_Dy{`Yk*cDq%}Nf`1!$wR+!qwnrpl6Yi2I2j``XvP_SNsc z{f-)8go?sa-Hc>PVSzDGG-^>qm>8k0n)|p|s^k{Yp$4kQR1Oo=Rz-nK9!gPYt967^ z1SQ;43}%**o(X7?+RWzJE|bNonZ@8oAAQnFe({T6m<2r54rI<^ekjz>wMsuw#`sSF zuzUb`f4G1FKICPemqycUWR}cS1)Y~q4ee!`S zMc7I^tvArzhDHdfF(Lv2Xo-$Z;Zl0qfKoMpm?@JzNRwStt0E9ls)?t>sO*()l1fUc zB7&$6W1*QzrU->pVIh=CE1;x^SQRrFL?molw9rKeqm(esj2sx%Bwc(!2rCV+pxWR4 zmA_v1ay)IX)^!@RjuE8Yua4r@^01SA6R@wDP_9moAtJSH+w0!2XsOMBc>l!*-+libkwS_P zW+E06vJg;?`0E{U!;vkX{c;G6+Gd-ptK_VGRCnGU8 z%$bk}cStU56LNFpd5(y^X{?505 z|BwD)U{p0Ty*u4|x=9s0ytY!LlIk#46Dy%cQ7dAhp(Yub6f-F%Rs>WrK^Dov4YDZ$ zVhN$DS^+HPDSh(Q0YF`q>Y_0@+l5dmM2gz^x|0bqwFm`^Ry8w$DNHRD6j~|8ssVMH zB>cnw?iaSrZtnx|-DN`axU!ES%pwG1zo@Ux*|v;r5V}2oRyeG0UJXX`z`C9GZ8_+! zRU=(hmDPN=(~HG+MdqPbL}J(KPMRv#ZL7BIidxBV9+vvXGn}^Gdr7EppPPt{)6o%< z!I6=|<=}Of-qCw0wk*v?4@hYByKT%sF_G}VUazO314b#_^rTA`9ZQ9Ct;NEl)ly1p zXyGN10Y?H}N2dueSNT)|DIq0_C{ZDZ3{fB5B~`7nj%vkN)rv^+AtS4bkg}*K&hb{{ z%xrKGL;|XYEVTuTRLt^&PInK`FAvp_ak`@y{p2Pd{Ou4{3x(5+S4}_C5*nSFnJsBK{ zAd(UZ$41$EL%C{> zMo7w-jfgtVgcImwhJj2On7JNEpfZXCAy^bZ5>f$6h#Pis=HOmRJbUSQmlze zPj}LO@mKz<)8?wf;bgtP!*G(4==+0Q)TbOR3)Z}+r%IZ{t~RD%lY?9ja_h&#vg~DV zaoN{VtS<5FLY^I#E7NSHT_L{UXlMQeWb%U^%%$ro;JUQBJK zNQy=&rh-hLE*>ICRYJ`mfY3}!xB`-@6t=2kxV7@+^1{Oft|Fc^E$i_2-+%w7e*A02 z%Iv$7UcE4$j=#F=OQGh^k=%gW*V$xNKX z4bJt3>7Rb)Jxt>xSH{Nx03ZNKL_t(#coK;qVs7g5jNCeABSj+JBQUEJk@O@WPCy}; z!8HPk2~-eMqQr;8^Niyi8NieckMr!EF%RHl`@P@$o&W8(e|w8uinXPw%DVRBy7>rq z0#ZaOV%SzJSR#w-GWUto|09fmYArThVP{fpB%{~d%!i49wt0X6b3ly0sbq`@&U6i^#G5D(Xvl(;P|+e15-mZf2kpQ4=HH6w z&>SJ_5iwK}2wq*_qAbZg@pS5U`$cNuqV1wxbLIAujh8^V-R^b=EQ<&V1N(aQV_*JB zbXAe(PoH-`mSSIc`XwLz&<uyRgbZhR$8d?)JKpggG`g1lwg{l%sZ);#Im=DpbW>r zvSHV|=ekA;0$~**;to_7G6gzk8>Co@b%pZ*Dx_~f$}i4oCV zQ^gsvMi((L3l|c_nBmh^r&>`8CtZ%}-Ju$tU@p659h+GUAF8N^(>6YN@!=QWe73ZG zK8Wk)_5F1Q)STP^i3i%&=e7Epqx!?NJV)kPJQcOp-ei@ zO)`ix(IV(6o@YzB2WB&z>GQeHXO-zBodJ3R!JaV>wm7FyL8fh|ocCArl9Q2>Oc{X) zct(%(U}TbzV5IkeN3M6b|M&m-zyHaf{K@caR+t!L+}+=L_!w!$Qc?;swx~YC8E8I# z7l=ekl0>OyRYjx}6Ce!WR{UhKfm)z$bxeQSVyYC=rC76qi^HL|>gj^2Faym5NGs41 z2@sY&5N1#-0c5cPSP_a?q{^8$nlTwf0!2~C5RVZoYTx{|pW7|_zKw8iDn%f{x1KLg zp4PHJ%C^6buYKw1MYV%G-^-IY#dhbC^{{`k`F8mftvNjFczRjCxG&eAeR8|@_3HZS z#p&Jq_D(M^`x=+~H*RikkGJFM@N}^Q!o}|Qd%f82W3!9pD!ON9lil_1+2yjozRI`0 zc#(Eei)CLfF6zG6cJig66(*yIU0z&@`f^}mZI#Y`u{SfZnpzkU9&QDySs+@YSXobc zy3a`VZF;0wm5bOA>{!AonIgUQ9492HkT4^J6wW|kQVQm27XcKN1h235Ra(XJ!3Q7x z=vTjdyg!}#Mhm1kNN7@v%; zTEFw%w@vYdXKy|XjCjz`K}3?10Xn%!GG*}RFut5!iKH-@aqg25aAE{AazqYigk-Wu zdcqSP>6zh-Oy@L62N{X!s&QUvo$GTh#uMji6h54F=P~`wod*@4Od5DO$~ty2f4iV*xT5 zK6(zTqb>mrM?k&UWM-y{!f0kHO-5BzF)B2M`Kd)O8Iy0FkdY}76-psnU24%$jpspeG`bwJr%4HFqzf!Dv-720%%n(A~cO z!N))H zAC~%sr_0l;-Rfh_o}tY3^0H-@q}-fNuU_7xkIQA(_WM&g-toidU#O;K?Qt4g*1Mbh zfQ8FJ$MRu0yedmycDdW3w$!$D9M#IIH@EV3wwsMxt#);>TwKeG`_Hs4m-WIJ$Mtx# z-49z!6_2on({Tk#iVN-Oa@v^V3ccRl5K$SHUJEU=x20x=Njj36RaB7fv-rqVK#Pi6kl6g_ zd1|&Bu`Wfv^z5tKdP8wf8m!vfUC~s0wqIS2K6Q<7plTU|R_pYCHwn){k*1o2)z&v^ z#TcQcnfdPb-~Z~D-rDaL%&hTA6MQ@XL*nfAHd~l@NF+SNnGwu9V>uoYnIqXF85x-) z&T61D8!4~}3YhI6+4sSv_B zOB2MoEi*8Z9_b$LoU8E&4v+BjrhJ|e<`anYFva=qdJV{A{LUj>IV44L+LWM;Ox2C!7YC5TSr*A2+lfoNkoBq2UY%}01?usXR%O{` zQ=4pNP-rA%+LBTz7#R$J zECvca!?~H*n%j?m<10V+(?9*4zj%8hJWDkJi5!SpG-*;)q3$fTHpzqsVPeE6#w0{3 z3^TM^cUsortyz*PP_b>~+wZ^kli&E-vMf3;?Fvp4sW__~kkF~jVa6O=XF^|Q#GHpG zQku@l$dNgc<9u8`pK=pmOj-Thd#g>^69J(oGG^T(GJAxF^vI0#WS>N<$T2c9JQ(Lc z*(2N|&uyFmBte7+V?G0>M}+5y;SaOGh@A4JGe&(zsn1*Xx4-)*zx_ME`R;q4R;krw z%ifA+y$`z&42+DCVcrg*jk#&0Q8U2`nZoTNTC^Az>5F z2+T@@gjje+_byY@J8~Pt*W9)-dZc4yL?9RfO!%<0s4A(9gc(;K0?kksuN4t$ zQIV$88c|46sa4eh3hW>K4?o`uZ;q#Z6=Yin5U8%tmg`op)|MY0KiYhg zKyK2CY1>why3{4!;8xpyTQ2V$x5rZiJs$L`K2Ynnw2WYEb+_zv8IiG6$*tYKOm}WR z?tHVhU$8q=iwLcnY9?k4nNDS7_MRJkjDB?}yIu8>t<`ZXa$lPr8lNI@+wV}&tkE?h zL=ck4?jTyL8&6N)#IC4DwOw95kBc|FF2g}3eN*q^nl4&mIj%^^hz%%7M!KR{fip5d z0fQ38sbeEW$qW_!_|wlm`Rs#gEy4=mgSC}B+cdF=AyBJ8v+vpPs2hGGHx%EizKl$TdpGpQ`>R(ZdE!CRowBVfX6tni`2+Y}-r_?Dql93Ul zlO9uihaiLE{{@%ZRb#oLEVvuNM=x!U> zA|to5jxL&|iJD}fY8`Q+gcxJeUJS-XPCFeFT_P&f~acsp3l`hBanA;{HlHkj` zTd8){t}p7v=BJe0B0(|L$<^s2$0m?+8kxi2ym~V|c9&jrU&UUmFQ2rx3hQayd#-IM zxfQdjxm+x*$7$=hScp%V1{>H0MzkhWdyUQ#zLQi8ot>RrRtBGbX+)E8- zC}EQ{hg1b;Ij6Q#T9MsS zmu9uduGvy-sb$w%t7b)awG=JYO4TA-WP)6(Y9dfIEvBaDg>X6NTFRtAo~ce`Jgl_i zOyS4`=00hXtLCD3Dw0Od%LI`#Lol5p$r+~&!GmZHL76>PAm?3HhM#{TJ;{u*-Ta3? z{x|>bkN!9!X>K~yhBU|iwE4=e*zDMkwXzn9FcKAI^G$NveW;>X7H-wIrYtCu=+e?X zcx-T^O=T0$gbSr}h@n(bJtvMK*|!+s2@cRSmMUflM$fZ>9#Tpg}Ms1XrEZf;LS?0%e9-kU5>?M;cESZjj_!ZTBvmBV5JY)4PgoAtOx zO4|OSmT2zd?s#i#m&=6xIdH{kDychNj907fmK1rW8eq&ICqyOyhE{B6xcBL^8wH zB4SWAP01wOS(~`@?tZmDL>#An-AqS}i?Sa{RnDF!#;wy-iwTq|RKX`NUfti{{^?z!ITI3LwIwGS_J;C@Q8>4Z9*s(W#dK%3Gp)t;MXRcbn9xkE zD2W7Za#qgzyazD)EFt7XsV5=(p?}X+@f_qQp@ot%T}wfQ(dGQMUajV1ZWAZqE+4b&$L~kF~v)n z+HOjOguGF&-@5wxEw}e?KUzl*L`Uv-t(axndSq-ioDri(s_1de)5dhoET@ydaq(RH zg~n2>zIb(FF58CtBTh#(sSy-L1o}yC@4`bNqD9wq5k_#!admzD<*T;@>oztbL}w_B z40upg$~bZi1+X#QhwN8q7t5FT_wMqOS znk-h^Qh)ZZ|E=Tw>9*el2NPmJu-H@p=m zI3}e!EkFs^s5Vr%jTkw6jNa)ZW2BnYMOqcsTo&8!>tS!p zVrC}7)LcqYlXMyD+(*m{ct)TVG0jj>qZUz?5)zaVE}=P6OkgQVNKtJT7MloQ-~5%I zrFJ!03Jwh_V#Jen@kV>{#b@96)(7u?bo~A{PHKS2Zm$=uFbKr;;h@E~(LLSMi7*p` zWQd0~>^yk89gk!60g1K+7&K84iODbr3G8-DEoJMgKz2Ko0wz@H(T{$2?D-R4`LTvG zpi+t~jWZOI9JLgrxw9C8nF+P9owaIrr&l-Qc31a%Tt~{rd)RPsAF;^g)$SlQJja`F zJUfls`_uN>&0UdQ-;^O^Y)}A7*Sq6TmA1le-TCV^>;Hg#=Wq7Fu^7rb^4w5(pC$YB4!&TdCEclsvR$ zL;&U7`~<n2sAu_2QCLDO)C@Rcc8^fs`KF6ER|}qi;QY_~zRPfuJo~7ikNN zKntEcEzP`|iIi#HQp-3TS~v}`3N30yCIw|g&%lUDC!=Um-Go5VFp(-W7POUzXydN{$QG{&U8q#(B*K3J^WZ+Ex% zw|?J__uIv_8Pwsyp^)8TBD5l+7;7RxNtNcETF2FOsT#+A?}9fkzWm1WEOJO4)X^jQ z7|Q0ZuhyH=ke0{39Z%!(>W%A*H`ZeZA~k}Pun6s2wpuvIBx`1(sA`D}PooH#UaL)P zm6F0#RfL|UhB2ILPyg0`{FWfM`wnH-b$EcHGDOs%Qk*5tlJHVVbCHPfY65eusf3lX zH0`6OPy}Ymq^Sj5#NPezlkdIv?$>_gE5+IatujcC;ZspCuYJzUporR|&x=4nP9W#3 zF38E%n3yd|zGm4mS(ax?*1SkOkipIoo|vUK$LDEOB{O<$K0st9B72p|iF7kCf+0$%)}msTD8V{GbnltWZ35xeQmd5GsudGbvNXHg*Zl=V zvDE#dWhx(8tdc$M1rvNQ|Nq%Fm?T7>s>2o`fK(4raXiP5!3 z?w4kQRzvAUxHJ<~wQ_fIccoH5t74kXGDU+aq*YVlI>^ZVuC`{Dmgs52wO>DZ`swX$ zQu>IIiNuHusAs0cQkoC;EkYw=D0aP{wBX{Rb-%gWKC44QA*mp|DAbUHt?WpM!@&gHqp3F08Ej-CH0H3( zw30KMt7qJ<#{y$EGM$bLV;wl{OAFFvD@CS?RV}5EB}Wh`&{3-*&`OO+n3*X!NQ{WZ zI2b0jp5oo_fAICMebqz-N-$GEd0075rs9m!eBdV{ANX7pPP##gPU8-UstHV{bpU0? zaOzYq!bEf;!2*@3_9K%(oIUnbOiUl#LliS&TLp6=G*RV=2hBtBS{RZQ7MbsR?OW{Z+ zMZg^%(JeePUJN_Duc0C+B3h<9?f-ehUrx*ZvUrLN*bWKDx00U-fD;Z-V4otV3RR^+ zq*M}OV1L5*jASMtFO#p`IY+!7*8?vBvX?5PK)&F=7PrTzfAP&P{@KS5?-$EVd-cGF zxwqD?m++46?Rv9X`A}6s8IqY6(YtVn1p6Y?>ef4fm?@}(EvT(=&EyP{Bo!eR6AxXn z$HRNJZmjz(P#Ho_L|G=C?)mM#OcS)EsxsR+S`k^pSfY% zgAg-=ukAVxqd*D8Y#pZ(2-Q?d&tlz)K?G3(y!EA2>DIz-^TcE2-ZoECmDUy!CZWB9 z${j3K$%sMBhX}4+qQM4feS0qw#Cw$bq~W!`j7m)Jf5#lTw-ZXCBuRwg{5#& zmDNqEk7ei`l$?leVx8722vwOIT4WLgoI?q%DM~GpUQ+rm${axm@uXvG7L?&>=|A}8 zU-`A~{owPjzVJ?&Af`ZgGLnSEx^8Q-KuQ3erDPx?g=K9HO5!9Al}`_aygjUQY^;^~WFn?En1m_~YJg z#P)EEPv3IHvaZ|v=V)6lEpI)G@LVK8W|161uv^JqI4QcaDJ6?2NlEIEt!ESi5RG~#{g;vx;hhx5dkg+lg3Fn|r6c)+iW5wY}b>LEH7@?F& zZjK^3YBG_kjFsnUpD?giDus3%Iiu7;TbLV%(0&?nGC_$XhEl4qfZejo@Bc@?K58i{ zU~OANwo>%&G!Qrm%~}%QjR!_y1{G9Q&#tOO8t`x*tBi#+JHZEKAd(v>Vj~ekk~NYc zL8hc*k%-QeQ!OIwZp08CR5_v-ttnuTP??9Zg-3MJQlvcG4@{B1m^o`13WB z9SLjb9pf-oRkIMzZEZuVC$HmZ9lhcz` zK%IuwIXKzF-MkbYN7;d3W>Tejc4EK3=hG1k2#3d(ltB=YamxFn9w(`yoT4OC<-Ch*HSI$AR2=2akz!7!-h;6OoXF7)yr}v%*6_W^lOtt-tecGSM&$ zdk|DBXG&WyRrTq*f^a_%7A6Gut^-HF%~b?o28Vm3Z`Ml@gc)Mp+&TbvLhQ#s0W$i= z9!Z*%yU>Yv001BWNklGL?SlkWuuh6FL#&57aY3F_wipeQr<^-Od> z-|R1b{EN>&|CtI-$3xZ1!bQ0#15{LMQB~H$rARGO3jt)kCs0(7DMIF%K#@W(nT52B zOczk$J>y4~naEnS6jIr3wZu$?ATL`Ze+fVC;VnV{0^U=ZOj$(dT9ml5sM4rB)%@`8 zpa1lWe`J0M-yZH{oa6CwTbE{Cu9v*ryftfU41xB z_s3}(WL^97^V(XUMtSux9j0*@v<#Wth-oMyDhX0zkdI?wVN37L37kOBO+*B+ZVg~d zNCsQJ^zA`Yi9&w&Kl~kLO@v2wcVR{HwYw*ks(0hW0rR~iImx>K#2J8l7cz?;2!geK z=}xV?fQjj{SfbU+#JTou-FPUWw zYq>Rw4njiMy!A*TCGpHK57~n-Lf(;plM`ID2vmiXm1^6tQ4*6{I3g(oAafr_aWf9# zJ^jGDA(adpEA9^u>w3$85h+)Sv2B0pNkIA^xO*#fKWkIohlc>X)MCj z`<}Lje;e8e1Z7a7FcslS0McJpKAzZ}csr1s0ov!?%ruCok`}4NMYt9MXDKX7hoRnX zpa1Ef|L@;C{jlGb!+~BsWb^Cu&HKj9u^N5&c(WBXi?C4Ba3P75PNsIP=2?je~UX|o#wW1EJoZZ`D9>zmD8*}jn zN-CUEMTLaniIIUC2PiCrrHq^uN(G4sIvtLsnAV7-aExW#qq!iCbR#qC`v^*z zYOUP@O_;^7ZL3GZzomN8&>~^lS_Z#hy#xrqxRkpG1uL`l@D|R9?4mE*IZ>w)Ko_y1 zux!ajzQ_HOnRn)u(t;6@l}i8-*{uyyC}0^|geU&}-}}8^|J7gm$u6MurjMKUP{)2f>%Q_5upQ8n9~y>N=bTN{byf&{Iehau&{sn<`un^oUt%RWcS?G zW<58voizNmhVw)li-DKiC>$xoNdFTQ^NlP|vd(J#K-(;JW1+sE_r z@p8Lvo4FH0RS8*yYtg9|6;=@;ROM;X`_uf{o6{$E!}s2t*6Wx5JP4{W~W+NR%L0&pq(by)7$Qlgh+Q2m!;mftMcZ&Pt1jGB+a$DO89& z$Z{|)w)@$WQzFtSl8IwJ#bLt3tVLt0a(}Gz%%o8Uxw|iS2R)2sDm9I7%W}T;^EIsJ z)-0)l*u7=)+SA>_Oi{WmVHRRy$$8YVzI^XZT8M)*yd#1UU}VV7o~CLhBg6OG zGW|FI^MBb}kKXGvczEF$hRO+Z?yXCqQq;PG5J|)VhFdQr!%&vnmXSmO%C*_L^^DX( z!iZ46_vyGt&57lUuh&FlP1~H9#-WT=u}k`xrg_-5-qS@30vXJdNNADX&3l$wR3Zr5 z)_Sn8v}NN`N-b5ewHC=Dp`^-sz1Z6Px?!3mGKJvL0dPnyl>|aUg%eRgjv(grylt^A zs9M1RcMo;rTA0a~{=x!K0<7fG5pI|;49q=(n0ag@p*cv@9tQ1T^n@x?lJ#J!+eRc* zG==t11a|RwMiPic4OXcPtlc95#Kh!W#xw|}6Ihsq4)yr`*Png(`1H74Gh-eOQ_%$V z^xJY_*4Cp34+AL^YY@RxYAFYqtz(T4DMjet`n6C0_TT#5u@2aGgle2(c-A!S{oLSPmM?{2No;`cHG`n6q3tO-^a?8Fz7^_7UGQ$2xlOfp! z#`ItR5C3_hkIGv_)pD9Ez!ny%>0a2F@RD3jb{J7IOLTsEx@8)(Fw^7Xh7vmA&8)PX zK7F_!Dqn6lmkvO@9Orp!@%7_VPUrVGvjyn<@G$H)7b3mCpSkQDI0OdjM0;V89ocp02DJSm(K5a!ky00k1loasp3 z=gC|I24)a57)gjNNl8>Fk|KEG!pv@&2qKA0a4-u1Ryowerw?zx`1;)zZLDKuJxp_C zEUow0JmS_s;BgR^JqF5TP||st!?`CDND064oxAUT_q*?&&4YjA2cIps^_%nZ<;Uxe zwiQBV_7}?}h}-Dw(1gstoOtH*1CU*8|E z&+8fvK!nF>7>kN#Mbte4!OSuR^S=8IGm8XsZCgX{g$I!l)xmx5 zcr^EY)5SzAT8f3|FcP%QM^+9-PIEa;I?W@ovv}@GR(EsSR)0L-xUh1O7>btl3eFio z&}}@RTX)_pdh~cW&BG`vSws@M)<-gAxvl5LmRk>y1>Y_KtJ|6^)Vqe;&UOc&B1{CZ z{JVea*WB%RnCD>@flz6!GZWHE)ksh>F-R%WB?%#I$=k*IHLB)m9<147SQe`}+|zen zonGhay%p1SU->5xw>ewP(|y0z^L4%5dMP?99jC!I?>F`UB`FI7!NJND1V|8AI}D4!b9qVCGU}FP==2I_l{(*ybRza3N-avM`ll2*7)%ZsZcO)!->QU6{dZUqRQh)Lfp(e2*w4Yf}LORJu|nCOtx+!yDEby z*)uFt!0w)jAb1eF06_5GXzOsM1Oaf5>_kc8Kr%Zb+$Jq^ox6D^xX`+7cjM{SEwVYR z3cLp~33(=krw~@ltu z<^9L&&%Swj+WPawd&X%Vf8$rb|MqVBE5H0nkxt%9p&x(w-a!=p`lP@A*M94(Z{FWp zi|}2wxh(5^I9^u!(dQq2{{CH2LDIYD=Rg1Pzx;>)?Em=T=YM=UwC}#rZMppX>!zB|sf)UBJaF1K|kl_db)%coef^`1^%mt*m@t7A0Fn1 z<7p6je7dq!;;by}7z%qDkiF-&Q6`0Z5n?4(8kl0Yod6alOkqyo@K6E)RLH;O1(`EtLB9i7PLY`qkge=LKLCgu-DZxE&vnSkR-^E!1xhsT0i8LZg z!p>CM{S9cURAA=QV`hbnsH`?orcm}fp7%7^FM>ESp|+?JrMAKx!a zE1tM6t0$*rI&TflqW8Gnf-y{EzWL&(fBGl?&&AIlwhz-00G110 z53i4M`t9HO-A}&vD^E|4fAo+4aX&w@Y)0F)pRc|^RRW@XI@HvJ#ByufO4D442_*2? z-2xgJ8Uqva>GqIOAFhCp@Xd8%x$(eFE6u`o0U6=^o z$~aL(M~EeM&8(0JM?^9c?FdC^FcWxpYyd>NU^+QouHnqdK(fgFIQ`o9f90F6o^4kZ zgPi*Fc1vT5*gO)bA|MLSS}6hVREivr<4|Pnxh!BR^Ks@nCH8;?@6%;fN=gb)P*B_- z58r!phqN!>KR#U>fm9i85m+rP-S)cFB<61mjZzfi*#*!-49E-aOUF?&)B5)D{9}*L z$Ks_Lqka6it(~0GHoM%6Q9Z#K-t&Cfw(f_i9v;f|xnCc9CWs3;g+Mq(VPxX&pw^u{ zHgoqBC7~>X6p)jpa0W$~M+$T($wLmMjw6Wt-Q)6bH;rSyelyIIpPv^glNs7(!$7y& zMO4A6gn1w%>OFe1I#i9iwFE|x4YlzA+KW$_V#C%dQh{}-WZc@;O4U+WGjCg30%2}8 z&&O@cI;bkVFQ>cdw#bL~+q%-@^YZp#%9M4*)>~|}b)tXpKm8YNi{r$%)eeWM0`D$5 zY}Rhq<+f$vJRHOv6KQ)2hhEo3x%}X>U#0Y0x39ncGGrYleSNw=+)qNWwDr8*EX<+< zP%g@P8s@2vo_u{;KAfMn#n{JBKmG1pG)aE^i=SBZ!#D}7-t&^Cg6q|L&^*w5mL>*FsdvB)P58mnZ{ILz0$Y zUzZdp5nH$eE*ZT zkJsxrA3k1JyWG|uVBS9k_uM_w*&_@PCMDW4TP-trS4awI-yH3+2WAdQM6BI@(b~_X zcFG=>*LCB_b#<-W8hUSxeIS=%u`VqrUq2j&YERGc^s!TlFhn`hADGf_mahzRB*4{CkG>3-1a5!BoI@M@SQYP~-{*?C>fWg6u$>BEtQ zu(q@gut&x?6nBtwTd5n}J(O)*xRi)cDFDnnGe_^kFg-u^qFKjG2@$MYXJUkC!C1)? zkC(VEwydt=r*XWy*ILT5*o}m5aE&EEwt{p_o+ zzj*iYdFgBK$Rs4vBEsC0qK7A?P!cELf#`t%aR3P>oDO5REs+#(=WzGftbKF4{%O^( z({E|^^mu)`_O|76i=NTbx0YrZp!I6ka|`OPULRiF6(T&o_vecXn21<|B#486b+xq{ z@9GaX=BT5VibCGqEzFI&r<)Nc2uumJGWu8{jN_e*lZ}NbF&`z}v)Ai|lh^UUuOIZ6 zzxR498WCm`&OJ;kGjWDQ$XMp8>E#9_z#9M-He|qrdhG3ZMrAwJQFQ7SNbJaUw-A(l z$9pH1^=c!MpD@Z+)8svuZuoyKDwU(a{S`u=?W=IIwt>v9~W4*GPyJzdsX{r>I%;OY6= zn%p19`{Uf2T~@yzr?+?CeS3FjVIObL=WT84s$@vCW|vC?i%!B70vzsj>&vkg4}QM% zL|Imwh9N@D+ycFsxn=U^G0&Af-aVOcHp`)mh*V`QyQ?XyqEw7SZQ+B`9=c1ej*Muz z4cm(F%{ZsA3ZqA|sCD$sGI?vErGUZ=vFD2u3D0B!C1n^Tg{qwn!pdf`TzE6ez*u=4 zIVpo^U3Mxql_-^m{wFOnE1QMoO@F#n5bSbM*c=XJHM!CJV3h=ds&Ai7?A zIC@8N4wVK?Vd^a(pL-aGh7y1@-whuCVCj}Yh)fmsS~3#kXyyS?-s{kuC|RghJe;(L z9S?OLFphdWX{Pm#q0Ws~vb-(ZJPoD7-7>RV^cD$bR4z^w%<5aV71vw)?3eGCWlPUY zVkzg#s-;dv04&|Dx6^TS?@UQT(=`0zXHSQ@))6vLgk^GcNwh@N%0-!oM6@^TZzGjz zj$6Bx0wTSfZC!2IK>z*!@(1LB>|5G6`s@2ikrvc~+l}78J5%L(;7{J%4SJ}2IM!ox zOKya>k60Sk&!(J2W%gI+(}UDxNs$V^EfCyfjt5-o!c?dI3#ZlG}nG}g`Pz|0zk zZ4D3FEW3qmaTv$s1XFl0B#<5u*6=2TabzuQZbczFu1lOR77gR1rSjUsgVIQtcwY&y z6Nr*`!OV^a$EYosdb4U=SyW(sPG>oglGy z01?dleV-+yBEh564Ci*jzOH^=2{Ys-KPB|&HwZq8h<=jIz;-Jj}|pw_xA zm$tTWFa?5*0-n1nGkc3IdJqZmG%?`1UxAXsoQYhVl_rtaojAsk=X)+BW;h+H!pDJi z=pod$V3cvL%E_FJx~@wkwbtth4?I2k-Dwuab-gf`QA;`#fs``J)$4RqX(YPxBCYXMq5#9Vajow0xg0pXuY*SuLHBE zZDrlUAoSn;;om*YhjB__Uaa?J+sj{SRZ4n&_b`^px-aXZm0|2z)A~63*4Hn;ZcmqI z85pLuZl~A7yANxajw6SmH9B9;08YnKt;vdY4OV;mdOUyFS{tC|TihS-zWZq%%DCQy zvPqPw*@^HENJniLSvfN^AUTR51W%TH*f{@%;cAgkXGLwm?q`0W)A=Vi{@$ zWUQ)8$%h^#lZ>E5gdh&3w17qKT|USp4v_={o=R*;2KC4UbQkWhh9k&co$BrS@%j1B zNuHV3j69z=W3y}6Khl4mDmI#_nS zKAJh;DoT+VMl23jDZ)7%kO+_9#8`D2e4Z%5wNAHnT{k%$=+y(cvEV_Om2bu=kyu`!Ey{rH&YYsw$|SO2!T zE$eF52BG_TetY-k;c$O99uLDD{kpC1ZGoXBw#}?tEPi|U;c>fVh#w}oZrhfv8{M|c z=`cx_%X!^B58hKq#z7-vxwXSIjuU-&d|sP&YJ_}qKPBb1_=od3H9f*}1vYoj&APqg zq`SkbyYYB8AMd8Q2;BR!uItuC`TlOS){f&eD$R2`Jd=cb64$~+{dkahl=;BZfnPel zvPaN)u@+fWi=Y%B$zv;dO8v7rX+1OLAfm96wBJ)JztkC*4E~s9tT}k zd%XGSFoN=Sz0FgN9peH6EF?XR(8iH%Yv*Mnp{4ca4#suagrZIy(UPgKLwdcQ^KJZvskum>-6Dy33!(1Jt~v+KGgD}Jx$Ob{;&Uu5Y2U%>M@#8M1nK1 zwC9ACqRhn1TlA&Tpl{BX_0q4UWX3ujWLslh9a)mvcOKrhEk0guAD7AyXn<&t^QuI`Z&rk@p5tEv3EL_!|53FQi8LM%@u`O$ee!QGBlW1_u-txNk^GeY=L5WmVNP;LMQw#!PEV?~+JHDi7w#x?68J!25%!EC3?I zEV&dW5@Mnh%FkZEd2{#nUw!`5o+hG+^iHj3P*j!>sw$NR#E_E2$~=)WaWK6|q<3ym zki@zBW|I(>yFMN}>HLD_hnbtN$d43XC|`+_x^LdMj^1!Nw~jmv>K4s&MUT;0001BW zNkl+`x_6`~M+39bPQF2k3=W&|mIY3qmH!}u*Ja6uN7{__8(-CAMvS|L%M`=&_#A%4J<^1t{Ga zB)#9vw{yR3m$h9DRMq7$&BGvpHYl^jP*KOqo->d4hsxZK_p=xiFxD~^zMHkG*8u_^ zR77%JgQbA%wzeSdhR8@tTS-LPW_<%iOf}~t$Z>y~m3-|4Z}+ER(AYg;LHunAkdw2J zv+PV2slZ?!C3_|zf@NS%tgY37j)y!Q$t75z1DTvVb@1Do3(axn&<7RTxDYm9Fia*?hvwsl0YI9z!&*6aLEk_p&*)1 z#)TEEVB-|7w|km%cC*%OM#IH^>nm(&@4eQXWBh-^hJp2I!L6weAA4`A0(iS^C~~N& zWO+It59^YIlJIpOm-nk6?S0@-44Uc|-1pub%%O^iq;9sic0N=c@O(Vf;<4hEKmCi}`0zG@E0Lfv3J^kgOd@JsO-Y9fhLgVEE?MH)> z>-A4Fte@ZCK3zYlPaR;L$>aGct!F=-=y0IpNnTH@HSZgl#?<-c{f3@@{qma+$6uSF zWQd_9$iqu?S$$mGCgN~}pHpdD+1 zuA@QD5|346#LUbTp)(@LaaRwJBn)VbS(2|+AheW3;uvlQgxvNK8bGSxlw8Em#}e+2 zjzp((Wl}(#(>##TAIeDt2RIUfQ&Dh;ErN@X-k*3KT+q%!LI_#W^D)9t;CK-uo@wx{aT8{B_vx-8O(gkG;=6VjIQ? zoWR3`Ig=D&mWaSCcwFSTaG-Bj9X+N882Fq3L;}5q1El1V0z!#^0jGf~VNmZoEl`e7 z3uV*@$yE?>T4c_MAcBXZ#dJI!a^abbf^W0THA!9^{6Q!)AZQezNABM4~S{@X#l|g?4SSpj))mZAOM6T zv2vm|ry2+yP!l708k{Cll1S(B^qbc||D&h>@Lbp4Zh!T=za4yeIcGvF3lSCd9?s`_ zI+k^nRbXk&JZ8>IU7Zovg|B*lyWD^Ma{Beluf99|2WvW+&N)pIr8G61tT1GxG^{&V zt%9h4q=Crc=pKO(6S_^EBVeW&Y9kmDiVy{1fLN|nIWp(#y^Utt(Wj^a1~LgJWHxsQ zr&76A9BmMi)Zhp=bfmovKpE3?Iu63XKKs7MwBW+E2*!-?QgNvy6yZLnM~J%v8sz-DV)^N0TUy$ zGvcG#^M}sWBLIQ`K^|e&!T+#P>>i#O1I!#CF#MPQSO+kNEDXVqnb8Su7HTmbS@wt- zW)B|BLrp(I?97oW&1Q?#l=J#hczXimi#OUZ4tL&?W=Nm(xU8)wlNHD_0!8v8!o(8DvO za4>gFGJV!msxSqBOvAX`W(+)?YC_`w@?ZSpJ`}P`dW_(3I5eBgP}1@8-i(GMi0Px_ zSLfgS={Nt$x2J!AVZZzN|N6U+fAjI}Vmf_Nz+mKsQ^~WY<@2W*gT7p@muvSX+cv*` zT}v7gN!7;~)^g&w_v`2F???aqa`^2x=YRBa{MKx~zhBV1ZTKU^5W_>g>jt zBk1zJ1Ed+Ib25NIw63l^+(tJvTB;CPI2I-eI3E{A%T-EdVR}4EmKACyh!F85Ye~UO z4nYjVG^Qi)oR8;JK*E$cU=qf;&~ar+;4_B882;!(K9=(xP~9Tpacm6uxDR{GV}cVC z2T~xBxkfxvS3npe3=kOqP<{pgh)05ifadf7AaE&(g@-C}Rt0;2h8|%!AE4;tEGr$7sy!vsVtClLeNS$V(z`AOvfXg&s+<;0tJt$ zOo$Zc6R%aY+qOgRCStWhNraKy_`P*t!VqiJ_dpS!=U8-Pz{uS+UPz$SyE3m7LnqM4Iz8;~tT z1at0f|8o1@;F|I9wEXtZzWa{?(mpptCmd6qB{6#`34l`Mxvxp8VIyQD;{u2g=8_qJ zM9AD9Icx-=;L!{W00ELBn`8~#zy4}{Su3H&1UHI6CT0SZ#~w~5l%WBL)3uKXlr}5^ z-)>!jrm6s!42T{W+t{ArXcnxT^#3BV>rd zXulLe5Cg(7B0`v4Jscf0U;?^XAhL)1LlQQ3gm{cfBVx?ie;EC*5r3F^H5;$5Yht?X zU1zx4&`^zbA4CkqHK(%TaVD#** zqzEomn8AU2hm`XDu47Ub0-Xvd#Y6xoJTwjb8Fl(>fq{S6<3~byfc0*kvPcGC^PtQ|%-5Ui@LJ2(^s(@Wl>4CR zz<=@2{w(KoOt=)7Jnp({Xc&QtqrW_V_|1oZ_$MF!V+j8HFaOV9|9^k=_n-dur?(%Q zdcTWKB@baezS^=RcQ@z?w(T1)@%*%Y{o!yv7NF?SNAFxHumgEnIaj9{Xf}rRks6GT zZy$ep`|-!O?=|-4<-6a0^$*u&bslXra(46)v-y-n$IODJ0e$Lvh}kts3IK$J7^Mnu zU~+>Afr)DGssZ5a4M3rABH|z)v=JI7czs?4tmNbxeTO84$q|f0OFS#qnp7PCM>RzSaQZ%$lO65~!rsQ?3Hj3mYa#Lhq%VG4p6s1NLq z{~!xY))X1gLH^#+a%;=X8(hX5fXSmZg+b53!tJ z72fx8Sm>)`#_;$1`21i_U@T; z*j%f)0gDhN9W*;2q@g{;&HQ%n+pgO_zkJz*7a<7sIq~DC>-0!Po}Q0m+V!eq00y;& z7O-t&n2l+@sRi{7AmF~+-Yge6KOfZR-sbhvg!4mty5HmHk5_ZpyY`_X2q}7Vuo4P{ zEQyG~W-!ve4G6;j>0kf12=jCtr4Cbb!-&Suzv2+L(qzXXfSQ<@IpXlyG7LfE0DkxZULK%jaQxmXtU|vIp(Mu9y9K z2gym236W4bo~i&G`1RLc{rY%31?XG*cc0r^gE#Yuj+yc*>-EwjQa%i|7-m8~c3GD^ zbc`OgB&Pre>W~r{7y>`Crr?pd1d*}+Vgi^83j#6Kd%r~R=%6uy;PXWj6bK_GN0<&~ zh^!jDjeI^7Gd(XT$Pth-3B|pea8jM>a?BivOHF{IY2;GwU1x{sFs2_e%^B|8J=V;C z(*jNNX~`(c0PZ0YrcNyMz&(ZBV@%pMZ{1x%7zIhPI0Xv-5+!1MVDO2>>8O$7@iuIish`3x5qCmE2u@rQ7NT44x6QWO zOgZf%!1U>y-~lle#y)aN;r=*b+~!UJhb3D8bEL{C zQz6X7LjCiXtu9Ff_R-V@g3nK~)>xOI1Z_vKgyiREA+Ryxe$}?q3_l$*0Xo`tZ?znK zg0K)dAV0)&8{k2g>o(`k#657#wk#{SnfZrvmBiQ4_icj3amggbBPhJ}xph6PbxDMP zKYh8YIRFULH!p{P*r(sOwic-+`D39%`)wbI+w46^X zp>qZ%5<&=bCpG1N`Ir9y5(M_!eGv1hK7U*O=(YZ84!>M}`03NXoeCds7s%Sie0y(w zjzG)RzIr*HR@|p=_ZAigj1<55qt~yWmy&I`PP?0`s;P|#Iu>|&s>joEyLUC7O|M&X z#HWKShcaQC(|WftBNviPt+{}Gdi(1+H>Tyo`pwFVV|1N;*OVMsQlgrYVyEPe1Rkw< z&XfzxUC~fD1y3mGAra{LKY%$s0jms1q0x68}M+dScwE-s(}Y=+XPJn5egYy#2E=8Q1Af`ca%5nuu!M*PEFlm{}SJ0zE{56_1s z*M)L+BmjS;*$p9bVv=BT37pd+^s$`4=!l)8+4y<(|M$NCE%8-&wmF0!-*B44_Ksh! zHd>@4d$+pq>vLj+F()(UL>Rp7z3p?1m{U^@gozkx<^yI6Gj($78qQMz0MZhtrxXEo zftA+uqsD~xaM@kt8xZOw+u7#K^+`s?(@zZBS&n2fm zMjuX?(7D#N4HL>Jd~2ii*><>I$K}%cY-LS=ZmJ&sd|1Zlz?2d$rGkS9d(db;J6+yx z#OR4iX2yWP>!sbdp#kP$!@@%n1Gr>1LL2t}c?Xv{m9rd{TsW1S`|RBU-Hx^Fy%UBc zAkCo^%;4djEFCnOB>BVnRAvZl+B@yw(a|^x4g)=U**@A z1qe&dHm0PiHV##!LZ3S&Iwo0CI+nHd78ypDm|?MZ?dSEIl@5%nM;|aI#Tp%O@&<^vt@A=!XWN9bLr5=Tw|I@^-hcSqT6UMZuQ`jW|iW*pW5D&tO+o#@sxL-d?wnJr(AWqMxLrQ2K5V&pA z!#}_I;n=6h46i!E`!W=!`K_5Is#4r`%v z+(OCf-5?{Dwh_3oz8wn5@j5CRZ$%>|ity15-!dB62iOHQ%f#-~qP z00LMpv>fTQa&NAU&PrTt5z*Ti>>^-M263 z;T~JR?bf-(*XQ(lI<1-4nt$`*>!O#kig&*7Q=A}OR z->|n0(AHzAxqS2b{NZ?XoR#V2cziyxVf3y#1_GFl`~E(0Hs8AU%l(tZ2n&JN2w=pi zPRw&O2ChYVZ<2(`MUa`)1~Tc4N7(~`Eh2)m$Y|4zIDrVH4DJdh8m_8E)__W z*U0l*|D_Q%L#BB>dPzzxU{0mjs=nF9zGum=Ri;K2;QICRbl0Q|5v5#YE= zW(=Q*PKbxKAb1uscL!Z`x+5To=v=dmD%2ieO+m-@IKk1X^!c+{R!_cwQ3R}LS{ ze5^Hb-nJ1)2C$F5-Tl_K^!Owzm0X9Jq`dc*5D{aT9#5r@NyKwg4BXXgP9gyg_uaY% z29(Sitz<5Yg_eX;OO%q-M$V#cw`TX7G9U{OvOye6n!^-AZLEiK-$rI4fHpPdqHb%c zOy=N0e&2S1#2J9NPs9KH|NK|OHlbn@?%PJ0bm(ENkl}tCm1XY(Bv_CnPErx`Fn@hc zLe{!#bZ{jRwa9$12}Pt0|MK~>#ZYhn5Fp0<^7>jcbyZF<>@JM13M7K17EG1G+Gy-5}yemtxspx!gDn6T^a=DjhpA!`yaGE;DmoS^T@IorTQ z^jPuz^hp!ZamnuL766c?kl0i}2Lqhu^hh@fAt7@{w6au(31F%;W(=FXMelIg!^4@7 z9fd&^SUiXvF$-frA|4uonE+e@7~~hMoDhN%QDC4W`6Hu;Oi6$lJb;94ngfo(39EIF zG)hf#S|V087HLzbN6DGd92_3hm_ay;;C!qMKW4Szq2n1xa)%&zL^&B90wAJrl&r$= z@%`4jZ(SARd=S?OA(ApnOdZ7J!`hs!n@t$*$E6AeNsvT9Y?sz2Ku}kAk0hW|If)Om z@UT#IcMXIhsm*Au6WZ6`ER^Dq8GzQB6!yz){QA2mf;sw3oaUGg*i7qzi$syS4+RG! z$Tb8&8@|2km`vC`zy`j&EWp~w0QN9CF3-YvyERbRH{0B&DmendQn62K(=xHe%v|?v zm>LmM5`}qKvdxAmoet&4@86STBx3UGu6+y+a+F#K3{R(o*mcHja{xH5BnczR^*Vv0 zb*E56FFBtUF{f~!I==nY)AinCPEPf{4}s)U-GhafH4kfyX}HzICGp+@9=_K9_`m$u zBtu)UJz{Id43tS^y~yBW5S35I|u zQ~^M}K?HE1CXRYI9sy^YHzW{dPT0o~sqU=iFHZ*uK%~*z<=VT3jW|9nIyWC~27=5; z#x50I^R(@JJej-TvbXmjWHIBgiE4AIoz6$ycb4440H8Ph{)fw{K7I3n)QKL)H%bvu zR~b_&NmxfCPy#?8W`2l+z=R+a!8sEP1n_P1-c8+gc$-d)V}h9`VE`c_B1}XCj>yD@ zNQQ>US>WErx-3jen1CQNg*#H33S(-3-}jJ2A_#0XFQ5iO+f5-zn97=%SO?6hYA}@u zA;bd>0@spNr~8zg%z?nn!wtz1iRJ_bh+tJnnGOqNQPtt<_cq=)Rj@2bIRWAO+kLI| zu%z7vJAru{<9hD^2@KEYGQF3Q5`*bf_10}F+%AfM7AA?3ga!1j2%d82fVL?i&6rQ8 zlX?r*({Ux6snF%p$Ak~(x;{fmp1A~0c6S%#=(?9o$TDOfxA0D9Q6VO}3{KOv!km7 z*e@#qfW#n~pU&swTFvx)DEq#>-`;a^VVTnasO?rF+cb6wge zMZ|=8&NW=#YMZOy_C{FrDqvv5-9D#4aIPrV>$zpXCX)1ZrgB=m=Vz1V5AVk;-%vAQ+`_E z!&Cn1sh-#Le!HHY*7x_DlYjHgQUryVD3HW~kv&mifU(=Ds%_X@q<@=fjfDPbp{4l(yR)Ajp{i z$v^q`h!hc#B$djAj;H)|crw+JxX*h|FwNA0L&)>}(%ar_z}OU-y7uWnDG|o-edtC& z<~po1o!lS!rn-;!h+vdyo54sdB+^x|S4@^`rFc2(E7^aOP;%3jMCobT` zOw|JrjcA62cJ~oL83iCfEnNK(TO&lERES-1Od#fjylq;rdiRoZ=#G=w{ALh`ar~-U_J5qbYP4nrE^^i^CFUp)Rm4aoR6F; z5{~ohvJ@O+AOlAH`0;k%m;Q4@0 z$5d-dOsAFC3j6FS6-xR?zdii%Zw>^$EjF>t@{k~kl;YV5mhyXLyS-@9q(P(b61MWn~PkDU^w zgxUufHH{=rhHqaQLg~Y%Qdv?dWD0E$Prjz)2461QROnOB&r4lo+q(r^ZXHZq<85#4 z7Nw-~Q{g1r=B7cI@3;L>g_HM*Xn5Z?$C&QJ`th8fP8r1Jn4J@#^Z)=L07*naRPF9t zvuo2_*0=W^|A+tipVyLvDQ6_Y*1I4EBO3=y0J5P&`}Ck7vzTg?305(yx92wSQ-SDR<|jfS@`9-FegDql0J-x#;%;w-uvEL zE=g@7U`f%ZD!O2P|1#g-y`1=vrBd?f5He$O!m{!-J>j?3qx(%NAbKtwPBkBfZN0+` zQ^ka}rllV2>?&VIVTbbiFr91O}f!U;UT%*dxTKF@q9w2KQkTLUCHpIh~&QP-T^z z2+~3pb~vt=%X`U(&z~>pD8~gkf{73*F$<+(Zl+^sAMwNI3sSti9u7s`-y0CUKJ%Bi z{&um~*QE;1p-koNvJZ!n%UTnHZ2R0c-P$%MGV$YA@V=?`c|6ygw?S~~tFmhlrA*3J@Z*$L*=defD8zEBWp`)h7 zl^k6?VsaQF+I=5S$EA<$-i9zgy{x14B*`cc;kd9y=y0@jYZp#wwD1`@)9JX3sZy55 zzSgu3J+e8~T0;4Lzxdyvoy5&@m%{%&FmuZAK8Wuj`q_TI;(T#|Q)uragS*+ZIB2JRU(lK%1^Cgvfgvm2v_CpYAYzDc{pt$k79Nw!xlq zUcn{-V|tj->S5r*2!OtMV@DEcV~XPK+G`T3NC4+GamFo^D<98^WR--Y!x-plPgsvn z>-*)$)2hGvmd@+*_dmYvU0=^<5ljL@bq*`Y5c@Y@eLMH{%k_(_O2(W~a%aw|;^9kiY1IWJvf#snP3jzroFwl0MxGgtp@}@#6$Kzda5KTfaqAU4c^_#!l!b0c|IHt z32YiipS_eSlCRqv2z|b8Q2fJr(J@MOCPPzP7G6H(?$?Y9RRA( zeZwRO+QT5FbjWq$zU}el$5zj2L|4>$V6d2@H?^(lcV9gtYAvaC$BK!0_odx6Op);Y zHrA!AOTz#4|M<&&P5}Z0L6V@`epQb#T@ng~V1`f!a}T1T+8I4a#xRx$CxcK^0AO+g zbOM05v51f z&9dM3TFcOpSINRLi6h;&jWc@KLvv#0F&%*d!ifdl-93GS7t zz0jZh$=8-Xm7I_DwU!DvZ~fS+m^BDk)M z9y+0%UoUhBbBQ=xsd*Yk(>FPE>rKDxV3YLu z73Wvahs)&-L8oI1gm&+0>HW(DE~EFHayQ@ajfF1TIIOFg)|}0JZ_Oi4hbk=LUQ2$z zT-PJ-d+d80R?dk5alen}r>A}Fs*Dl{Bj*eOw_D3eh!FtZzU<*>1na`*rL^w1wh^&g z2s$tV09a@cF}mBauC>r*@7r$dfE3R!%VR)oOg$beAdE2rawv+}l9#vl_vMfwVobYl zwk)_TxZUjOd}@8*|Msu{^15}?p1sp>!r&N5ScKetg4UAM z-4rtdm$WRox4Ep+yUrQQN~Ch#_Tjda${dLTC`YJIBq24+nfHAh)-%MYoLFcMtM%Yy zkjv5Y1An4%XA@DeF!vJ&xVnGNb4@~G8z&*wo5Kf37 zIRRiT>tQ|RdYI$h$39ip`psHiw|?2i&xn>hKU@P)A7kuxH#LXA$ZZ58-t}U%Rq=bb zn8Ltw=mZ_Z5y=t5?04UPc{;6cpIWZV``hlWIadhh#Hfb36ANR2n+T@@CG&@uW33vB zBu)UX`0?`o{Cb+x*_rbA`Th2Me91Wo=>7AaYaI&TJ^%6VfBu`mAr;I6B85dQG{*e+ z)(O{|>FEhe20~bJ{{6>mSK99l1EvXcx!-%=-P}@z=VQIydk~H3l}VOdm}2ZBqBS6< zdZ@0wNV?t!Cdy(=)g~Mk8PT_W2o(Y)iYx*`t#u&*V3rIzKEGYLED&H*5kg~vlbcI= z90`M4=tO!bT$loolK_JC{q^|-l1&GIscWqT)Q74&I*58-mz=TOcjW};Z79d|(;;`A zB&FRO{&)ZVUqCpp5G7*r-X&AGgm)k-^+*5yqOhx(5vD_u?1m|c>1^ZOxg|a@;2fjlKtKW*dv~|DOW)hjrm8q}Zrw!~h(CXR zQ+oudd1wpJ<6#vh2L+07tBE9MX3gRvRF8S~kvP}#SSABgAHz!K+cu12@8hY~<;d3K zzAG^P{&&}uOGNzfZ@wG$X}VE(&RIBLZ+BG%fVbU1>E)1KKP=2XR7dl_`oBMyWgTN6 zaDbTMx}+a}dK+ekC;sZ`Ai?TMjvK5O-~I+fPrXtvU{%<{*#w^}DpS1m-Os^u7?^@!2S zw1^z68VrNE$Fu;%HF)nmh_rBqGr*2QJo=$h*rcWN&n81Y0qRC$?;88VZT+^x5WQ8Kqb{_r-H z`8?0_x;{SD6o=;LYKgQ{~9A>}x^zFyj>*ZslCy`vrR=E zr*pR;r^{`u%gK4(-nT$3i_e8dD9U57NyhM8<^{lhSdkLUD9Z>t&E6z0J<@1>dXS*Y z?RGvXLmp3ObFWjb5A#sCjq_<5Bh1LRu0nuGS zV74Gd1QnU2AYu^c&LtHtW`hOC=qhzNm9ZOn3bTViBtmUCf`m2Pnf2eerxPriQ=q#i zrL4=ctU98P!B3ChRMB;Q?sm((ee9Rr?YvU+F)2gRoS1y7IyQYg&pmb`9>d3oq)6gS zil7X*C&AqV&On9`F(N<+g$$2j5KVVVScWhsGLu4-ku0eI63I-WA>broraOI(GVcK` z5oX4SBv67XlUt4G2i;}{7{kRwW| zOfYX5K)5U-Ql>g{vbTKQw#&A^e)+mzdmDV`4(zvHOXU(mTxTwl_h4#W^fdD%U@k=d z^e~5;8Q<*s>FHUin2*e;wf3=-28$QfquK3BqxX3x2Jc%>c8?;&;z@kFMQic?*6Tcp;JWpX_x+dOekxMGe0`s*TyD3=ho^S*x)w{h z-HxdUQ#_s)7Ebr~%XM0&hx2UBKW<*CE2X)ErH_aaQ!R)2X_-CAtRXaj^IW6hayc6M zv~X3~+g4SMUbbWBLTs|_5taa0Xw^o|!U$IpOB!7sPok4tu1DLO);fJ$uFI(qI4pm5y*n8!6Fht^5;A#0mF`rg zZi6)dYUW(#NZ$JX^tjG-etW-m@Vw?jeMInnGyuyyfn)U6gCqU z*KPkYV9UfGUw{9xAJchS=DC()k;nD6UA@%l8fpEgDkEKqiRJ6pJ(Ds=)yd)@7LX7E zObQ}a%Y-QeLFR}12$BNMm{KR1PE@PFGrS(%RPHS(X1VKY!pY!Zp`_S%pK3`q2}L^T zJuXgDDL_<05&^749=Wg*Jh3mVOi2_>Oj;sJj;C3c%f~)%{PFhv$7mwWN5I}*K9}W@ zwJBBF# zkRUZ?r#ywX4Y$NzaMlk?GUOldJ}xK<@08{;&uw|*mXt;7su zT53D&)63&_JN7}>xA$Ls^B_#keV&R+egE>IDv@J52FU~ce z`QuNQ^YhbEb6w}JuOHK-Dh5yltY@a2>gjfDT1t9aH!Y%EB5AItl)#8ndHm_^diu2f z{>xu|et6*M9XWSo z3$RC6^91>TS^2o`nM{E``f(iYmdUDYLA^UufH<-faRg=+voV0z*Z$4<^UF62&%JP~ zMW(8hSy`4zhuO97=VcPXestDKJ|}gmqt;>;?rA%{yg(xE@#E zMx4&;-KV!mwPv|V?pGS671swBo8UXZSZ=^y>0|46G^5EJ_l;r#8df71{7 z*nWI^Tz~)9KYjDv(dS8OnTFZ*k^s&RR8;$DNAtN<*^#karu)eCT{Q|~P1+iyND+r#pUI{RP${&yZE#Un#Gts9fH5l+;%ww@;o zE27HWyB95H_beEMbp)ykgAfQ5i&42E=@`yJ#D26RnX6W_taTC16-B#zG+Wr)|r%}ZeP~#&VTDqe)-GWzF+o_xAD{0>mTL^8_|x#MKn#_ zGlAYS2h4pOUCoj^U%!zV4-4P3vzU)Hs3Z6}gtDXJEMm&ac{J=AOeAw8a!6GbE9 z-mILb{d##=*HUYuCu9tFpsMU2M^_g`mAN0ik0@IDunFgX^%py&cWF^!rlB-iO70X{hw+`CLR# zr>P2cZ-r>@R#b?InTnQ(;c5Nee;{E(28!z54iz2a@OF$;cU~WBxRa+xkRUA*qtpW9 zA6_qS?+%IQ=TlMjh-s;#jY4&JCS?%-7!FD*LL+;bO53|I53{$o8=Rk? z1UIoAYx(u|dRms#@@OuUE{yYO(z-^B7&*fD&Y>b&*HxGk zeRxk|&k%-?SQrT>q>o!<-kaP9zj9`0EhqpzAF(T zA*@o(1~V~Bz&uS-nX1L@7!ASJt7NnxFq>5+oNDN}lD|L_0zFF$|!O z&d(DA<{1tJmtr7921uD^t=7f{Cd(8dkFj0D3=>fs5g8!wBQ75RFrA34x_cn;MA91-tRM!~*B5}LeaR7veCq2z|ba;d)7<}6-l$QdP5{LpG ztv!F5Nyv@5brI&|ZR;Uifb&_ks2OkDK5X34c?68TCsA?^n{340W}_vo%W>>w;`6$K z{4j^bejLG*=LipGT4WkSf_<4vrUM|7y$ud2#dmKJ$-+W~qb>6c)mnUh{+3b9^LO9>{#2*YN3F^QTfZG~+>QirnrY^Ft*031-AXOD-hT7luT>~8 zzP$aQ6N3z%=4m5JVJ<0BSl|HMdIJ$a2#;y5<|BhasVYQtPZ2RuWKm`cCQ1)dD2w#o z?mh!BsbZdMWay-&vRMZ_1AK?XL7CmWGgA=lV-(g}H5eQ~3Z-NsJi!Q%jSwMDkO&AY z41{vM=jRF+P&nXWz+j>Tm^guZ`5HlhF)@oG!_x%{AQ|SKFi=ni5dj=upA5%RsvW+g2 z#(tY8J}fiAoHg0QNa(ih)BLDhyEm3>)+fo-y?Iwrx5$7_85{y7l>KU#YqQ}*=+=oC z$-5nX@Wb=t^E1|2+x_;Mw2BbA14tu#%RYF)LS2eZhQOm>CE7MjCrn71%P)y zj$Y>yh_7F-r)4T7>r_k0GR+!rk1ro>zsAFJuJdBn5@niXYe&CXol2duOj##R)4e5u z)@5dR ztz~R@div(!;aeZPZ@2Hie$RRU2%EqA^xd+aq{QX&!~6SBWyNh9U%p-*o=&r-BUGy$ z7SKqWClQrxv!Z%_gr^qK(RbY2KpqfE1`t&X0mB2CrD`8e#D$75OR33Wtt&HAc5`#| zhR5eMF_!hr!U9AL5fN~P69@!%n1hm%6ycdnOpGumNO@QvM;{RfOL0nq3$r7EWKMz9 zQWKe+qaT)sB?w7K$^a{~5`|?8Crx(5&y2wo_mNCs65Q9V%tzOvqLwLrm=?~6bYYQW zxGK#87EvjE@6%j~h$xwL+@Rz9H@^K_>~(#74AC+C+Ae>1{qb%4_U6-i>*js--ogdD#5v~{e`s3|(v|l`}a-ya1TJUzgJw2?qgQlqf*tb2A zr&_(q=a;9>AEMC0b*VAzayxoQIELlC3jNtX{(B&)Y|u*ZwEJdReEMVL{rxud{sI#(FAq^`no+Wz9$yAhSmzql!`? z;#3mcZP*NANua0@f{0isgOnve#Co@IcBdk<`xZz}Ago)sM&ALnJ6C%q%T7#P+QNH@(j5MU6H8GCQ$cd2K(k+NpOTLbaDsCyD5$*6Kh zc=+Yx^3Au;32SEUh-I#|%F+9Av_zQM!{bznD6JpYt9z30w(rMn{PcF%s7i9V+Q-$T z^3&5&n9mD;d9`pqJ(R~~f#AO@9P$-v&QdKQ@ zLLm^;TW=WwfS9K`!6cClLpi$Hei^Wl(VTk!C(G0t#|2RR7|4UmqXmB0Sf5+c#lllpZ47 z&(k~x%zf5+Z`pu@H3qSx3;7rkLU-*I7!&m|0{{RZ07*naRP0#_dy1fzj4=M$U#)yt zSCLY1ZHGs#?1AB7>#`pG7#<%V$G`iVPa}IuAo5^Kxe-T%Sc;vF13tkuo5wj-Y(bUX?Z@^r`v9OT`={Vkv43*^>sa+XX!>qzp64)RW;eG@Nw7=?>8ZxYyEgVNTQx_no22E zG+5~J>hHJaJqS2G&daQ;Rsfsz{jl4|k$_ZwI!zBR5}s~6M!&VuZ%F6Im-*=3)4qK= z&9in73NbT~nZ;bsRr7lIw%yiKor<>I&4~V&|MeeuVirc0z4u@sqev+nKr)wku9dY} zWDhWtmJy?EcJIX?D1|r?;dUqX6Pb_Rc6Uz)01}8uofefsnN0UBZ3zPT-G!JyOsf_y zX#){dc~b6S$I&AOKqGkg05J!aT0!IR5JFL6mP~iE03k?3ERwl+pmMG1kpoG_!6Y8N z2ydeY)#G9hr&=a~=rGHX3TEa=h$tvLB14jig$v0DA8x|L_mVd`f>bra!_C<}ItUY& z$T7kaM34yUZk!UHRDxhgB8m)21Q^0aIWJ%EyT91a%hU7o%lY*9{PZipj`mSX5zdzV zhs%$zA3wq(y!XSF=kvosX`PUO{j1ZgL+0~1qDF}N?O`+T-z07cMh}&ck2QW zGjKm&3B-{~>C1cy@52soc(@OYz6`Tvc4f<-!(NiX8G*E9z2Edlrl1DWBMijAerxMg zM_}&_=}4+`9^Gy5GEKiYe_rQ@NITl?_dop+?CT`n$NM$Eyti(+Su4uVPxDfAU5b{X zT&>&fI6R`3QfX<|>g763MB`joDRViU#+F+@uH*IQKRukJR*p`@a`eN8+2B&D8;?V$ zd46ke^UBw^oj5B;mlt2;VdfnG`J@#Iw2~(zFYkl7$j+oavm7Eqy zKuNy7-ZJR?yc}CRPtWZ*=zsg)|1;7kS|cLDgbMP`$ACK`y9k=KKA_3wS*mKOl*M~q zj$I_(eZTDUvPMXTg_*;XNufOwKxHx*MGAyfiIvFPu`Lgah?vvkyhx>_VWW?3Dr6M3 zVA9DQOjQKTFdHE89L&nh!+IJcvedc9sEpw`S_(-idR`~zG;86lyIIhF^w*Cgg6BnU zx4mt6e14vbO@)Ou0MD4Uc%}t&0>UDdF%c!;2qQ1@o~L;ef`Sv*WdlRba;Xiao3@7B#EX|AG;HrLnxDz6HLTl+#L&w z0EZdJ{BgZi(K@M$4jLr82VITYAW z-*y+F7_Q3a(^91(#ltf^oGMATh#=1x?#DJb!-#9;I?K_UK%0#^7cN0rM$4&a;rY59 z%3Nq}xhYMz{e7LE(j%ys634M0xiOJ4AvKea-Ix$Qw>_k3o#)ZxI<9?spC*_CQI1Pb zmSvH>@2BU&(4(Oi#jtv>7m`)w{IG1t)~yfg=krupj^3+Ce;;p~eSSV2;oty(;F;yi z+wFPP`c%66Tu3DP+4Bz$+RR9sD zAdjFdNHW_Y45o23+i~lzMZ)a)=|MD|MjL1?lca#B%H~EyMA*9#VXB1%kr70N*oo4i zqM4wd$2Vv`?r@wU1rhFcZ_h^tm?D6C{2M{(LUDiA-K?9*kr9Sq4C_j|6isF@6NNhh zhzLq>5(_2q&zVtB^tfF5`(=OozOl{U{`T8n|LV8DeEHRBJpuU_|N8%#mYKD0e!1Sh z4?nUpK`5EP%-a3nBoKSLlL5}Dga~F1BI1PH@y_mHY0L}+XHA6M4GqXh3b;Z||*f1XUs;&op5HTZ=)!F-%#Mk(8BZxAgF4_T|mO$wwOaD@+fg`>-v_mC8QSzP#URJxvRpWroG$r;`ZpN3@+`{Pp-LqMPaS)5PR% zK~R}X+jh5D&dd9k+rC*#Th_8J(?kiNC2f1#w=t0}t3G``?bltDr*-jTB$)_D%G-NW zHRk$h{stP;63fi)@$vNr<*OfU&)#pJpH77|$HL=Wbfy3CpZtA_E~?6~z_#~?b(Sz9 zaVB9%f@SX3NnBJB5rb@uS}G`YQj7aN#QhE$;B;p=5yihH(`PayMFK%YU}04yhBB-f zlKSXc3YP@4o25(D8h$vz0}`3(&U)F7b*cADb+hCeZpc(Ao<_`Li$I1#IFzLg14F2& z@)#q-7z#~hj?4(I%E&-+a4L}lAdd*5!puxyBojv>+yk5m<;-*oA~;KCq$eVnlG7qQ zi0Ux-lq!Jj@w>m;tWSUZ;gX<-^UJ66!^`t|-}`x4 zA0O9`{YPGdrSIK{*;=Sl(h$D0KN$%RSAyRUL#H5zWCn;b5g7^mn+7`)zaGEGIg-_>VG8$l*qm{3Ss^D%;% zrdl#$_q=Rvj99A9g)WC#j;eEEUTY~Tdus_BWCUtQ2bD4W`r$|Sx|SlMWsYu<&Ma>q zx2LD+abB;-cG-3cep%~N+_*wL;dVeOcvvevopsI@9j+Yzqqw!f#f%LdUT!Z%gel9_t!6NcR!!FDvyJfr}aE*6$j8= zu7~aKTbZ+4TyL?6ynLRP^YZ$7*wN2(?fp2voJ8{JK|kJ^MT43TDiih5A0EqTsUKU5 zNFe&f%0J2EolJMqM zNQlF1jFj~749=2>;hy(Z15)L%><9`HCKcv%8|EMec_0(P302iX5e`x#s6hr0u=5cAP@x@ zaAKjj1A5dQa`&Vqleu{sr;uBS!+>N~24zA8McCn#lxD2b%`>b8xae%enj<=b!O=;B$4^Ln|x zzHZE-!t-2I>g{^ygh{nZM6$A!*{4~G5`baZ4j+eDI8$`zW@Zhi^K9OaW0*&Tzr3vH zhf@X#b*}!yPsiDVT-nLG$ST_1E{+qwctO9n*Bu~(tv`j8m~=v*G6TXi?w-CL9+>BPS9Ew-5S2`aF$yyQ$S6rk8FyTxa1wlY zGIJ6!LZObxB*uOB(N)C3$^v-a2}7JBg*bc0%Jt_lR4`Zyg@@nAOvoUxN@3FLWvj~s z$7u2}|LJeP`#W`hIJzqnBO-!fUoUTe_5Gh;jz52SnUXP%QK}Nf2xdrx5y8U&iEt!) zrbjX%kcB955B`KB-90=A#1IRN4uamB^XI2;Z5-~Kh%gB=YjQIS3i3ECMucDxkr7jJ z6%}O_cDGC?x$kSB77?U}5s8o_MYsn>L<%H=5;?*y`%O`XXRXRi8D3=a%5>qG{ibOWQ$M<}xoxk6{Gp?K+~^_rKdS z^_RbX?6!|S)^&YcOR1V;o^kJjpV;kGH zm0GGUfBgLik$v}@g@>Nb1+bz?!pDyN7)U%!%d*ay4TM@&`mg`nzwa=Q5YZfWaV3|+ z#5~L>84#9?up&C#m<8@}KSL;bKQe=eGklo~E0t*>pddlntpli9ku*RFjJAj6ehgx{ zKe5(1f<=TQNyNkNFC<*t5)?^Mv_!a#xchNQ;bFooq`~2QkasNiG&iFqC|+~U}gdoggaiH)NLej8?nx1Dr{~U_x%NAa9E5z zZ#TbvP+M9pu?E^S6uT;XLGpiwDgb+tYHzO7#gmt*L zKCC+>(>+Wm8S!thJ|0QJluSaPOz{8*0eMHDnMZ~Z-~HhPB#4qCQxEG*Bw$G*6(SIa zWWmob6Gd4oCsMdDIT75($ibun4FNDHLs){e$mDM3!!zb-aT~)dk@e191Bp7Kb@Tn^ zJ@Ry}MW~2yqJ=xsKJdH0+}-Wv+X|vd9_Bi2+wJYTx7MiSr-!vQJ3Kx;pNXxiMq+q` zF&#N9lWdyUNtD^csNDZ(sW)&&A}y&9+nuFY`t@VWLDMunpBMTs|EvFiMSua6(XCWX3SolZ z=lL`YNWYIgK}@WK00WuGBxuG6c(W)(5JW(f80>lHS_26o4uo4W1CEh7DKmt)Bn(9N zeo=xm3>hlgN58X2fJ_90Jd%>{7kR(na1YKf^u9YjH$Qu&_9&k!NjOecyvra)Lke}3cE%?wbT?jvOdD+dS>aDrwE7fXY{ zh5^hXDhWzvR$|AE-CJ>p zh!}&JgNxkH54Id4-nL=R=hHOT`Fb0|69A8PK9!>%*IQGG|DUEe*|lXmv-8GZ%o)Wh z_TJ~5TakG$$t060C{s2J%MdIW5G=`-As}DIEkA)_1F|8jA!S3b8h!*f+%XI|-4P(S z3>66~lVp;Yw>ahAdleBe=U=$7j@A=IU$+SZJP&hQu$&h;#5l0Bh)4n|N}hI`-;5&z;WwyIgfdGhx9-x&rj^4�f~s zNEVgoE`)@zNCa3CEGin=IY~qT_{VJb!PF2QL=!_41Vp+Nbql7Tq=dT%D>B+pn5YP4 z?+rwNQ>HLvWJ?Ih(nMJ@Q;Jl{3=3P$M^%==dcSO4RSB^!OBn}dc!akYC(ShXKvvJ* zSC63mzABBk<|GypfQXq8B`HXW04h`x1|_Cx7?D6EB#}r@yKcNJSqJLP#yT7h<4z0F z=G8NuZ8m>;SEUQ5`y5{|4R|33~;F+QuF{RA|x>oOTc?LaZZKDG6CqZxkr+Y2?!Xe ztSY0m4WzCpQi@7sBcR9nQI(EvzA}+83&H%X3T6xD@HMkHBj84<+GBS<0;021m~-l`}^Yz;PLr-ZL6`Iulnf&zkH!O z&fD29A6h9oYuVB>z(pA9{kB|DWF}hMnDZE0xb9xR{cgFg`fLvmb1e)eAnCvT@BTJ3 zBbtmg-Gqc#U`XRqRkex?l-c@Li!dX@Gabw<3}_$#B!UtdAWnd^BqE43z(k;oOiN<7 z8;wVFtLVfHAz;A50}(_*ED>nkYZ;QreKTvl8EHU~;hs*SzBX`;h+CSJBNYTC3u02e zjk`lEZQWWe!#oIaBvYh&FeMSAT~`N}BDZs`P$tnW-h*(n{M_cY%*lbEKqRw5g20Fj zz;7TVNqlVM1~>_nPPnCmF+5?!EX;vm%0isPRS9Gf&MAtzZ25Bj;qz;%^Jn|}7lkz; zM7gW+#mmF}!~IbByANN#e)`R6dB6E{EqFRV9}f5DWfhU`-Kl3svPu@W^vEzyM0|9~ z58YRyRF!Dx;WvjAQ;Breo8%P)a?d&{6AH6g2u0iyp>L|5Odj2VbOU2^3+Dp99rC+d zQgUXCD8d;O7OWiPV;Pge;Yep_WEK&Jk7abTqLPRRu#_}2AiMXpt+yiZ7Nrua+yK;D ztT^8a$5GOor$s~(gcPIzb8?U1NRPf*AM1dK&643v-ZR#-6C^fjo~#&k0P{EzmzKp3!{U4%WewT{RaFLu4h%=`WRZs6o~c}B!)TNtVk{SW`> zA6N#90@U18Me;uwSQA1btdT|@#F9j}hzMo%jN5(rHiHQdCL-p{v`mB(kx?R{w*X5K zNn)mq2qY2TVpAe|MhNi@&`l6!W_SuSsfT%b5Eu|;Co=OY3S_t`aRw0xV2}YBL;{5S zmT*r^K-`iAs9GDsEI^#z==RM4X=cb^+!CsYiJ2oZlW_Co+%9h*WYW#fcQbG?Q3Mk+ z-So8tkd&ggm!!BwUs0qRlQKiW0Wh;gJU=hT{Y05hZ!pOhcgL?j`{MVOZPO%>Y0=#j zlL}F}T+hLe8{RxF-z{y?QinP(%htltJ)o3n86M!28A5{ zH_5v>1K167*rudgqqiTvJDt~eAI|r8^L{^AkN58`Wzc!z$kn%YS@gQbATrMUbiSOH zRHtz&hh1&HOj?X6NQ#hqY+H+t;HauXT(mg&+B%|4antAhPw|LftsprZoke5)9T`V>JuIBRL2VW=~?tNJJ!MfU&Hmk1{$1qCcUorDPkkckeYk_eHxxg!V!Dk3*EC@45cID?Q`g&~|E2O)y| zb~i+*un<(K`Hek+777qSEjJ~GxiIyVty@iGOL#6!PkeEkm60-z*_|0`iL}39yh;A%sk(vpDB8Fi&eE;}u#PU%Svvg3T-v$^P zf|%J*s?;Kx9TWiwQv|;I{!v6f`E-_&$|9(@I7@<>Wnl?IWU644X}w;c7MuiRc2%K3 z_VVV{U0BDZ|CcUqz)B?u<)ux;2!RX9vRjY z)E&!a-KelC^1N;7nUQVvs@f8zsHCo|BcqB06FA{1sw^Bqs{zQ>P9IKB^M07e8pv^0 z#W>`&ESqH<4-&yWv$RuV` ztr=XAZ~+BJP%v`@8G<0d$2n;tntfbR00yUG#D&Nc zA<4-`#Pkt|`&ekt#9B*hE!;&|SQOdGZ=Jzr4J-n(@HFNC6Q7ptd`-H<^Cb?)A58PB zI_c`q%9uudd-`tMPQUl*7ca*zfBfkmnAzLM=TZ;g^W){OPX3yOGWxa|ctny2B_g9m z7_&M|MIsYARTd7@Qq5am+kFTRTv@+L?Ex5{pPoCfAGa|o`*LBheIr)kYr&F2A;cftMdfNKZ9}Wi@;k1ZI+x+f+x31SP3PN<^ z?3HfGX#}RV2PL-dyRq)~8rd=#ZU``^u#zYerH=GJ|I`1na&@Fq8aN@=dPd%Q2Z*w; zM4+1kOi1~-2}ee;oBKSv5~)baErJofXB|r|45|Q-t@UVYuY~}31e`tGB9#jql>zEZ z?2t^4Bp_5p7(G0boS+FXX)Od-ge3`Ri{>D=5N03;MsjvU1e7>4RSTFrVh{=h6DL_@ zFhd}$ki2DMICCkg0Z(UUurMp3#bw*dARf3u(8Aifi58}hRv>bor}lRI&;vNZDmxp~jzU?nm{BnokJ z#J$HXV}!4LQ?1juU)q(@ck|IZh=_I57dreeH;ifW?{$6=7moS09S9q=C1-b*JNgRL)^6f?IXEIeA2mW$++mZ?<%^ z42meN$NgPVP8j9w@Dr$9B64+G*M?GNJ;H*)muG%j>o%);oXNvQC|A#ejXm~U%mbCo<+ig0+kp5u~;TSwG={(wGd30 z{1(8A5{@KtDC)N!P2rd44=RjO)oR zXUmL-SNm@5aCiLS=RcfwlMnb${`fzB7-zHGAL=iE`HMgJ>Ccz8`PM)GjUy?Xy^!A|#jtsL`e+3tlePd zR%96JG!A@!*kyP^o3CTt{pOeNxaP2%tlM-m=x<$%ZkHt*ef9e<*LE3XOc=8~o-XSa zTU)wsDyqbH z)A{jy`R2Pf&)3E4>%V&QZ;prkJj#pXZe54g@Y`>G_wdR6_53`_u%C~|;|>U91p4K2 z=@46bM!a}=H%()ZUoIC`XCl?1T`x(&WlTwx>S?!ZB<7k3kl(a-$!hNDNHZ>yfM;XP zOwn4BdXcf`67JSJjCwbBvEEZ^DXfHufGA5U7XaPYs+A%^iLAh?b?(hBYwPGm5Ms=% zOaLe`=s>79>#4G`u=xh)(`6|#syg%H(LGWma(mVLO4G^|92&_zu8d?RPBo`)4iHc> zIo+5+#QnzWhqRuY5Cwpqd6OAP*gXl{vxB@Ay2<_4dr!Crh%>og{j$0POpNHv{BVD_ zo9FEK?XN%V4#Tu7b3H8Qrem3=dbylP0U!;#-CD3Bq-g`lMXRz7 zM--8*w^Xqf!$^gMsV>*m!y{vu>aB!922LUh@x)wi<)u7N)4DB0I%rj5>&6UL1xYjG zyiJ%?E0-cIdM21O+;;OQK)3ev_-u50&QZW1?R_Oy(kc=vT)8HL5=^mf>*LdzfS3Ch ztv6I(*Nm06)rZ}SWqbVjAAWj1Uxdr|Z=bg_qPbB?rn~*iKm77<7R<}KUYCAePD35; zkB7_k{O0le?dxBB_u=cv{KcPtXDfHg$XI*qkNThfXRlt4_3gLq+t*hQYFodYw{$5* zr=z6Obz7>)VL$Fh`Rc2eTU=kfs;>^aaV!A1Kt%#>7H|V=FsksnZ6uOssbXnuoSWuDr{Q>(9&DxRB0Tg z2qJ>H5~%RVEJ4}YO3B2Ww0Ud6u3RkOd4*vdby?!|?+~eEkRt#xIEZq^$S7ljf5 z#UfQ;o_YIvKnP@4OVR+SLvr7l?q5yceEX*7 zQmfTk1j0;8s^vxuCs7(jQdZ`oY8F8PM_RZub4d^S=l|Q^-_`{r1TgEmtq?5%tYyk2(3K08^{T%%$)$YaTq@)-lq@agfvd_G`_i7!6d9&=6PJ# zYhQu{9-X)hqc+>fQR=|LteUIawXfVVgqlz zkM}Q6=gVJx{q@(c-?iq!e7-#W@)y7O@Zo&9dKe+evJ;7@jw4z3DnmHNdH3>uFKKVy zz3*&WX7|W|Fjdmtttflv-F^J{=Ld$>ka4bG{rK>EzjtI=$6_4r6xeck*(Rr8fG26dpfIlcyd%yhHRH{D2FYc$^eyU-6JYw zwKV3)yoF5YSZnv*4YoSK%-OAnOJt;3fJ8ZLO9-fXrdtXT5L$-2-F>)Qa|R zYnGPjk*T1?&9J)p=}fzNkSxFb?c4L_hyCIBpwon^B|QaH=MlK!21!EA`m*5pgPqQ& z{UBd{`O2wZ+Uc-QQBjN&t8p@jNEBL2O>9ZjTQ4e7ghigtk7gUdo+(1~KmFssRkXH@ zLJrcK-%l8vk}gst2DIk9vvgKGA3M>tDU$ zTEF_iXZMH0%|ST|Z~ffego=eBNL4|INR|T5);kF4oyZWGlyGI@-g{6^qr$_Jn$xzn z_397zuap<2Y~7hF-wI_iyIJ!#?gq-}0hSm`AuhdJc$oDvNNbH*Nl=Jy28ICd2MVX> zGadF^)Xdtl()B9igt4TNdm4FK@>mN?FvZr;T#L?x#odY7!}Jzj@361{M-XL%(=3zZ zux+_o_HKvW+*)7PE!=wcv1%1I%3e2uY}b~o?K)UXIRE9ZUjOK4FZQ*}JNfYLv4_^G zLH6S1Cjj2Rd&8-%nX&AsU1MR%WTyY|zyFiV)q)dtnkw$@4-Sy(T;|i|T6A)H53%qlv`e}| zf(YHQ^#~7PE}}&0(TYfVLNvlCDY--%04AmANy)5mBcbjtTr;h^c?1g&g^M5)aHgDl zURW5ek}tX~huwVb*EAF0>G8BQKo1gZm+wD(`}*~VK>p~f zAC4uy{qFnq#IHV`>pnp=>(J4dc$o34Uw?nNf0)N|f7l76lAO+G3;Xc=p#?rYzBKc# zb--=S{^afj%)Wd7$TWTW;#E*qExTd=_WKW~=XiM7zuZsJx8wbhBraP!>|dOo+x^}B z{r>Yh9_z5b)l+Sk>+{mzJ-4M%M3gdSqPO!8UyXu3*8wmjBy-tLzk2_d->h$c@#|lH z^X>buzI=H9?rd%Q@+U98_~NC2H|t}q#2I0Q(RzbqVNFM~G;<-2@D3(KW&qfF+bosx zxZ5jp1|Xp%=B`pHwaDlZfd*u2Edo-oUKh*iW_6wq^L{K*3c}OeBK_Ut^EA%FE+U|o z988tK;gLyT8&tzQSj-zTBb+g9-Fi0=+#@532uZ07E*X@98vrz%`#Da^3lPAx914kobD|N1ZfA&9Kg>g&3#n!~zoW1S90#Lq z9L7;bEs0F6vi2pyML>zx`#6kRhdLGkBI29ZACCKZKaRs7K?$Z?e4z?i&**slyGLS~ zcl(U(a#>W%;jpvb%%ZJ}f#%Bh^TThx`&R4yaUMJ(Go)HAWgMo7%NT!U=r}K5%k52vm@K6U3qODP?T4Y=LJkG4REbH}TWEd2inQ}2WNUirW@oqnj zqgL6SPJW!f`111~@2B1MO5Zgp&B28p#&WFf`T6~ie(wjWC3=7V;q|}! z?JvGPeRJXV=@-Xe{rWHd?En7FKlrcz_z!+Izx%HJ>wo*ZwZ$L*(Pu9n?jx;x%Rp5H zoEX>Z=7>s_Nm}wyRLa0i;XMLFVWO~T)&mY=tuoeHTJ$PYw@Z;qG_=@Qh?6p-yIY)F z^LaWdEOH~FNKZ&0$b$tP4NQ)YMKlByt?n?lylMN%M3mXA#kiX+w&pfkOIp zT9s=Z1me~co+RRF^G=s-6Po&F1Zi&5u-n?o;Z=o8J>NEh%HzoC;bF}JIo6@niS~B` zauojIC&$0`bQJgn)ec>U(xo9|!$ zM}Pd2_irD;^#1wz;doRT_J>Kh5jiE_o^u@MaF>wGR1t^LjR4Oqh#*Qd3ujXJFb>t+ zJYvwDh>#EveO>1L-LhPrBE7F$>uD5F8JVIMY}rK2qiK~)y(NZ`h!T|<DCiOUg=o zBXFbjmB3|8IJFkF-kh9Z(D_-d&0PBZ{qed!PGglDhe8q2l`FDe*TuYQsVZ&I$y!{O z6Uk6Qi`Iw{NhxVnZ~y(Tn`;C< zf3;uNrB+200N~!5jpOv)+cPt&*kAwIkCSm;*LH31K0M9SxIauB_UWsF>S2w7H}m~8 zISgPW)jE z^IYIzoKBe>%3unpPy{%HoP0)Klp5#RVzu+u}&WG5n^Y`h{BUcIJ`v)vC>T=BqAXy zgB~KxyhnDBCOk7Dmx#6Kgh0~P+ZyPZbY9vx?Uk|z-oL+W*01f%1u6j|H}zhXwP+oS zDwnot^O}jG#L)j-~h-<~T19H2r7fyPAI)DGoX}R`rYv=II zliFb}^Qb~isUSiHyYT=@Vs6pWux@8ZW5BZ|8F5R#7FB|@MPI+~KoPFT{XD67V7=If z$1|vw>TSFI65_bs&?FItO5o4(o9EhQm3=cv8RjWrAk#6qj!ptP6rOl;S z&`>C`)j^636t}cFT6?ojL#aBFZ5{?jw#~o!?gJ78ALqK$VJf?Z^?Y6S`{{bQ!1&>Q zhXfG?GLwXgyU$bg0BgBiFX3^%UXO>nn@599L=W@vlMl~-!5nQ%rcpS1J4MKH?c+F{ z*Jq|<%|49N`TY3saQFQ5%rZP(F8kfx-C-QrBO4FAe=)Jx`Lg@s)jxDo_i*?9K=WAc zkK_H_;r#fhupUGzELlYh<>Tq}zyI0)@qhlSfBDyb_Sq+QV^ca`p8v+*_zAl-ShHmi zB^3!Qc4ZYHZuw=A!NL_2$TGX#{BDs#)tVD?B3h5J5)xVtTU#O_>>!AY;f;_W5~bF+ z?&s5G-5+LQ@=l&mEk$P}iJY0awSah}_Lf=!MBW03&_$7%#6%p-oCIqfNhFMnKvq@n zeL(dfiv|ei5CKIBP1{z@&*Q!klBh(Idm@PgZ{II&>_`?W6H=*aj+#}AZ5#Rc^>_BW zZ=O%hkUUMh-EOLqT;lm+hh3$Rbz3i|_Wtp*JItSde)sCt9^nAM^7ifdyYHSZr|XOR z-R@AwVNCYZr5$$~otx9;vMkF56o;xm{K4_}KG&30hoMdJJUyR8YAHGvJ|14|cK3(56hf!(ODzP0Y2y=QY?Hrra9pU2p;`#aV`R6Z_J5@KVTG*YmXwp`S%;Ts;Ndh3*J^I=g zEdUunA~%m26G)f>y%sB4E|)l+uTmtrTdt7o`DoO%uvtX%AQ>c6odqgXnQ^(UXlTpT zV@qm9c(EnOi4tU>TSs;WQkhE;DX2w76Y$oyQKU*maFJ5Aq;tjqMz`kf!lY#whgy_D z?qP0GSyd(qwWY>(M3OLh1PCg+T-*D{)8q5w-F%dGSkH%9e){!q`@j3;w@!T+^SB?P z8=9|ccuOG}#yZaO@Nh>N$CvZO^mKj_@$6~MF3aid+sFHPdidIjJf{D20d#&DSLJzHD|{wlxXY_1trj;7hv_lCmG} zcGIY1m9g?}Hyn;r`pPQJdO=?8Y2B6tF6-Is?7ldJa<=bXm5y@0MvA@8){lmIMytZXg`S@vxiQ z))~3Awt7pY<}r=K&wl@_m%D+3+j2SVhk4kh;>*%mYgkaE5HFV&(7S0+;Zs}6z}M^Y zaGWa*;k2Jdt+d-QQ(o4SjyTTsc=+^ueg1H=q|b)>syDOV$5AEXzQTd$Ey3mK`AjIs zd1S(NzHA=PPapo(pa0pyZ;h|-FPC|@fAjhSkGkLSP)34A2FNV^CKbB3T1z6Mp=xDz zq8hll|D92qb>akPQl|6e8qU4UF4{_Ars2(p?Jyk*k!Uy;WgC4rl^Qa>XYh&wle&)9At`}D>ikVQtm~-O3 z_omxs=STm|Z{B_T`Y}vfGY{+02jun`=d%@)<8(NbvKyyQUp##I$)~o$Z8}|^&db}= z`8{*FT!WI2^L#p4k_5-y-SKj6?s<2dF3(T3+9xlLgMvl6<pmhPliw=_%a`f8qLH*a(Ldu|(TMrLJJV^cQBjgT-d27o<4 z2=OK0126@I#DD=vNKBa`!2k;+8y7;Boaw5p&e=p{WcbF78@E5*+w6Dm{WNPW2B$v8 z^Q^Ugf8(kcoC7dJVZf5j030|gDAgPqARu~yf*^*~AkC84p-9#H5uR$6N`R&`rOBZX zMgTNRW6F#k0J0X*A|;urLIIW}6QKawJ*p$dMaq3h%?ctowR>t^6)O=Exgtp90E~$O zW7kCQf^)QLm!0n&InTZ%h}bxAWB?TdhJaMX)Ck3-6hH&3B9iJ{RT!yRxZRL;)9hP) z_VLl#NnG?TIYyCObQq_zv(?c_2bFhYK_)_oZD_h?zdwl8cG1KIva=+$Swz%I3T=!4 z)GijlxKCrh?0h62!>pQ0Zo4+8lIH|eZ^paBwC@&8jG>JUBi?uI7CoyL??|m?v#d6z zU9)H$UOqVfgZ&`Rw+aYo6?r%1<@&fPr0H<7>UxK?JxFe-?#2C z77+(nA3iubUW7U6G*?IJP&_$PA6*cIX|^%Vv0+3c#|l>FG8bTvgcSh+c`PLazZtgs zagHs-rg}odT(vrODZw;q*Lw0bm4hOvN!4tis%k7Tkm$@UHJ$T}-m&ATC90CC&DjVV zM~&HBMcc+Pm?zXCb0O8Br7`7csx?(_2AP7jHX9@^gVh4HR+Oo8v1^)#=c^|VR-rND zX4ZVVS_YS!-njris%w!O@LrKbO}tYdr0poQO2p6KU-{mx+CTvNY4nc7AkC>=!O58) zrjfi`^oz~iE-sd;dbD0MP#eSX(Na}I*KhB(i{&b*jA>l0UDdMNOlry~xz1hVeW2>) zFb|(TJw7_6zV}V6(Hnp|)(`UN`I$o^Fhl2mp|NI{!pcE6W1eS|st*Ux|iO1*x z$V{B$E<`YtngR#2S}hl?2vBuW(EBxu#(UFHlOhJkAV>hfrd7Z!yGTfRE(H*okboSu z2H?p#42UjEW)}f%%&AuS>*IVY_wEM~1#-co0x~)F_ud7eLAU4*)5Ze>@oqkN7YL1* zHKSBuUsVjrW-FeJ&Cn1T0L%S)c2O--b5%yio*c0QBB)B{$vYrHWk#tmX8HQd5A%$R zqlSup_UMv9LQ6v#OM&Qpzqai@o6&OF=y{-DX4N)_w3yA8z0MFaO*B>W|7F{LP1;%4nWrNtQB>Is3*hI>(fc z7k#SZFjw@%Rk#2EAOJ~3K~x`uV;v5;Z~Mi<%{d`BskP?Zb_;b(-N7R z6Bt(J3ITfQGS+22 z5EDqa8=-GJD;(yb8WDlkB!JF&Gf=C{JQXC=Vw%%vIcHG-2uv742&4)s&VZ$gphJX1 zof(W=RLu_6F^P!ZulzKQOWhbL1OAgh){wd>fg`rCc3=H9&C9i1**!+8=BS8d(2 zPf`^`>bj;%j!jc*J*4csBY{#RB?&41#Ry~D=TX4WBcWr^9DE#Sn#R5NaI{{jRbUlP&V``}g{VxiZ$h<2=u~s9RjllC z5lNDHlrcu?S_}~wkpLaC0FTpddDKSVjXI_cynnZybE-K1&JRC&tVd~@-)6ade7V`p zj;wpjQ4Dg@{gmFNspF1=Fbn^^fAFAaF)X4}E{9T+h$vK( zsx|u{Xq8wI2@S3Ks-ux8#4O6_4deatV=h**<^t1H%s5vS^saRjTu~=#U_4HxRIEi+ zh`^~aU?AkAhQx+bsa0wO5Mpz#Fc$Vzav?Ni0}+E+>`-maR>qR&T*0X7L{18p3Uks~ zK-ENaz7O6TN^s~L7tL8p(fh00k~HO_(_H2%Ql#VYh2 zKDxYcD6d}MzWgvG&Dgl@)vjt%SB_2>ZP!-N>+Q5V$RP7>s$J*LFS^}S-@f)wE`D^p zT1hnoBciTtV{o~c0V1IqqVv1`?W4xhEkSk zJUFkzkPg$#&c*w4G1dLu)Gzyanmtp9uFgOhSBquzs33DaR2W<|?}-rF(3LbfR;|Fy z9ttyz^QIwU;BkVhn|!sY^P%axD5|yEZj*9_RI3yLtc2zrfD^N-AOHZWh=Pn&L!Cl! zEqkqn0yhTA-c4ynHn9pwO^h64*Tm4c&_omA*a%di0x+eLstJJ-N~&|Udhcq21)^@s zqidw`2#U3ufYw5D3UeYKy4~$GXSx1xwOsIni+K59Q45*Z)8q4_)p6t6H*ep&md@6z zX~?(xF{fN|Hm%b%?skWq>Nw>{e01F3jl1p5@aW>f>FIj8UJUt=M>$%;vc*2K)U-TW z<=mag9`wGXMR5@N7z9E^6Ta8fbH^Si3tEQKWnQlY)w7 zCC^SwfFe2qz*=k3iYiqggE4dP9w^MUdgoLX)R~fjI_HyE2(9<507VTHz-qB-X5^S0 znz5=9`6R-iOy0yqaW0f9H_gg>29OMts@qSRasUMHEd&JAqzUkT=nS3|S%CoEy&Fzy zh4G#gcR)q7ilL~gA_0bA%n}{2;|kTt%&b&t0^gJF$iPU!w}fO+*o>$UR6{2U6`*aG zP197(fBIM7we9kgCy$&1^ICN-DXUo%iP$^?vk%_So3L6QrFlF*TAmz*?cug*;%ARe z7oqEyfg2mstcq=DyDnV4-|vTVcG~~`?>^aVcCBBY9G~^=g1B3@UGTNS~m(3z>^KHBG3iZ|NtBZ@HDNVJO-~8tNi*I))r%kEj>FH{* z45!D-t_dlRAV^4E*Ep}JH9-xnixI12An2PA8sGOv4i?dMYN>5}6I>v7-;2ssm^p-| z0IJq5P}f4=GZUGq4~~(**i&#Wl37(lHUq0BW)75{3qF#WrMYhQ^Q?-dV<;h;Zy1v=(y2ZjF-QJBicZZw1T~1Z1 ztrkaM?)rK&4D)t($VI1A91;8Y?&@Z9J0QB0RB|1sDQ7TEj~-vR*u8pvz1!{Hy}$Y9 zo10;iV%H?0qO&9RMu3!aDxwPNYH=c%)Xfull<2gL-19Q5xad9b4`4M!T8F+!1?0mt z(fx=A3Cywxfrc1NA?K=0?8!S1NL2s;oD1Hw)KWn-D>@2+H03H596Lm_q7~Gj?-yWx z!Hbd)stTb~fEdUVdFtk}pOU7^#mLY(LNs?^&E`BxHFixzv!-3579yusoa?51sCg1G zaQ7V+Gb19`5^;m~Piu09W=zgVr4kSkK#}ZOYf&U3R3)AB-oTJNLO?(@1FdE@mNMrY zf+wPX>u)}+#kSKe=bFH$XUn@v5?{V~**3nxCw*ivaV{WH)A>}Ynjx5&5<;5G@p_G9 zU%&X}pM3SR<1>BI^}fKDzxr@~x_WzcHw^CgesWF-Z@wSrJGWWo_30v*_m!nq$I^Gy z_MJy?!KT>^%(GyW8FECqH~RrKDCpIVs?|DOJ>ytLALsK+~*~R);o91<+|SEe@Ua(R|}dEoIjC zuiqU8ceO7MA06vFfBl==&6xUER}U|j)Gp4Cx?J-(kK1bjrD2f8+T|jR_b*@FfCu!_YC|40A$3*gcO$An^(3l5_U!@SuI!<>>x zDYYb+h5~s;F)3L^wW^6`G-5V3$3zB23YdCEPi~qf&)_^bHZqx0ZbKvxm8u{fksKHU z5ofDd#l*+}t3tLk47;Hgfw`7LF8g8H@8`o*hE&7|*~Lh0OU}!pZ9tTvO2I(UR7(*s zobo7jtTLs%S1pEC0aeKm98>TSkqihhsVtF4%dY8Kat_FA;{!Q|pdo}@6PQM16-UHENv*O2YTT=s0rq zbJMymxYaVOR?VVq*{DvC#`@~!?*03_O7)Y^mu+-X^8PTcPrB#NpC26`#ds_g4*7rx z4ms5#rY(D@wejxfKmX|}I8zP5tz!SHUw`$ZFP@y9ES7y(FZ+}ZYT>)@_TN0;-R=^y zJ-R%pDFe*Qa}pc9r<_M}T0l~PTq|;A^h6B+l#+@h1w#PO#8EsdK`k|ly2dpIE)_9T zgQ})L)BT+wsu@?Y(lniOXmp@}DckODQ)}Mt_vpm{y?2W~GBXkhz%cCYOE_r)Qmlfd z@GpMxvWo3CIh8^l&G^ZMwUwwD;{re${G%X&VwC5+MEbW^Q+w1+IX%~|DFr@7?eDV3yI@FsF+pC*H zngy^fk3tu@RLG?|5=9;M<2*^43yUq#kq9nViXa<*8;b$?nXj}@V47BQN;R`9?6@Bele+Vs~?Lm&XhAqHoPRccZ6#*EF) z<}eK7{hTn8^Hf3rb7W#-z)S*(JXv8tuL`P)R2T>V1k}_M5fOkD^rA%>qKGmAGGf)7 zp{P$PV1psHLsB_L*s;NjZ$3aa)6HCqI zpyXO&Pyv;hy}P~}KiqD9_=9J?gFLzC-+y>;{>h?$TxPwVUO&0~8%uYYvaU{6SW3=A zw^;4Aw<6`y`B?<4TE2Sm>#tw^^anp)|MFMgwabf(lQ^XOzyF_qt~LD8Km1Xd@7Am3 z_O>im_2bWuK!BBfzg??emYE3D$kxgU=68a2)@?B5OXd`l#ofaiR2O4gIe_rkaa)L$v_gPVqy?o zXdS!YhiL-FG>umu_NtO9pt;qtU-t2^r{~Y_Zg)zNPET8`npJ=F`NydG{`H51cz&^d z_5Ib=X7k0TkId-Z%WcvM0Fm6~vo)fA{rt`O(b1Eq=T{%L(d@zF3nTjKn-_t|9NpYZ zn)GBvpMHAWFLi%NySrjoqXQy7zgWh$1F^nswUn_)s+kd7A6m~YIu&)pI8QlM%!i>m zb_^I?MD}3Yi{scftE;;m7$-0#KUcAetfJLIaENRbwN%9l1_Tb7@8eDm*+eQNKp+FE zY>Hx(b0LR94uO!ks1Y$Bogc53t%+{Y*h|SZ30RfN&Z%J=VjmmF)r_!dr+GeQW;14@k`gLSHMOm417?{#$CTvu?$$f%Iv*hJ=j?l0t(M#C zA!7EP4td7F5jzAY2#5w~VzmPK)`yN#Dw>hlm05Gm6yS@`FP1&E;O{o?*XOQ=tIbR$ zK~4v$08lPYPqIKZ^>JZ^CF$?~_(y;GXFvbdFTVaq|LBiCx_Hd^xBl!e{$w`abo000 z@2;*7XJ>6i+Nb@~hbuJLec1lsvnSQ0RvZtdsXo`4Jh#jxnHn^0^u)PVo~eR(R}Iw@ znf8JDlat<{f@(^3cayuwP0!240${2to7rq$r0NT48$;iraxFr;$@V2P`BmFTr%*yc zKJ0Rl6gx*?^T^%@=gc`*bEtKSB`Ztgy1r?;o}D-q;82zkh_Z1w)FCc#r43_KwFIVI zlUiy#JL65!EZ)HPt5q12GtkT`@%sJySr4x9eGDnp%`{z{t@0#?u`ts2FSqK$<)a=d zdBgoMtk2dCsH#4=IImFG$Lr3u$J@pJ?r`;Hdk~=*0AQcS>DPzzN9!*>eR94&>6XzO zI&h}oh}K=)UT>G{^~Jger*oRWfBE6rC+ovFB2w(!hwI%@+Xf$o!&v7s@8oFpptrPa zr6S;e`Ct6FTTsK;bRH}OA99`5$g%U_z^IroA}SAK5rR^%T1D1cU@q3i`$Gi`j#8QD zDFcEzwgNG-hyVaHrzGeBtAIh%hUlAIRn^pFO4@jI9!$ug^WIot(Rm{gGmi|Y1!|Q_ zsKGV4WWYR+WfmI;RdvP?eJ4_5?-_{MbC5;T28NR7VbTy5s|ETXh9I>#Pbw;=E;t2H zQ5Rw@GXW4{)q)ISQmqhJXngdbwMcbof~usHs<6IrAX14T`&zF zZf~v1QFnH6xw;!~Gr)ciWj;GwKWW@0qvjZz*Kf2 z5|VP|u32PBDeK_?;JT^JK3DL3CqNcT&saA#P*?Dt7pt2ccNKv6(EStuKd2cU%`)V`ZJ$ZIU zp$>=r?RI{2eiTEfpp4+XegAU5+kzw1q#(_9s<*cT1b=+gI%amvM4x{0(e~z!Bkyju zFTTHhe>e2Y004)5esH|_`02^&bS+8Nr^nB~{Z3S+N)@@=OpwdT$zt6);F%&-wbdG) zK3kUiMRA~%^P8*9$+}teOU>@p%j=`=_~RcuX_mM&L#Ku4i%<1(&~ zyVHy1(dn}7%X;ltQ`NbNR;N8^EqM}~yyp-qvI3eje{UA&tfGDx4~KD1rPh>FN@B&J z2-LCGDHSOost5*vX-YnlZ-^WfwOq{1I4H3(THAUC13@*cRT)7=iQITlsWy(~s6FnG zJpq!>b*gy=u;Gx$oQ{v1)iQcUEuri!&zfq@*+lGiyI1r_t3@i3)t+3QK0IIbCu+)F z(+}hB>BUc6K4Is&wtM#M^Qt%(apcQ5o-LRAL*C9c&G~me|L7>jkhK8WhnqtZN8o%+)Xb}+m|-Bw1oiZ2Srcxy6FQn}BJ7x)BXbdpB{T6H+C~;# zU9Yrl#0PZ&k_;*DT94CMzx!_Ur+@Y~OQybO`)M|GM2$i5eqZ)uE>&_;DR{dbx)3D8i&yVc$*GKp%4~${*?ces zy1p6u*p1Wl?aL36al4!DHsj6pH0=a2FOT)f1K_rN9vr(1aQ z>MpeOpG3Mo84T>skgHgo}64jh#Bh3H!r~D_aDA~{qC!yv+mu8yPyB;+Xv^5jvj@h2aCV> z`IjNAh_H+K(@#&1j(yYkbSSBs4?x7AAX2Mho@KUTY!0iA{4am@?&0IJPd@L4;jmh) zjOJC-O}Fzj<;#Z;UVXpa4|#nOgU6T8hgxaQ>Ebeg(!c)2`{?6?hu!I=Uw3gh?4Evh zW?XX-Q_R`^**|@;JHXj#>lueZ1l?jOzyIS0mlr)#xxU+_jB32-c-6Uk3Qom~;+zu@ z8IV^-BZmk!BLxU~zfa%3+Fjq}s_^L1^7D^RZ?Et6+x#d0@|}77;&&cAK6xy)Uf;ay zm&Q0vWZQt8NdwOJQgVxQK}gO zE}LFJlVvitiYiuA3;_Ve)DW7`)LH=w5&(cH0C?xzoM$v(BmhGLPfU#HOi>~R2HMXD z0dt6E%-%JvN2~zoeVFF?cDIjh+cm+=a!$dzQqaKWItCYGppr`)e96@qxVv}K3<*^$ zAqxl^1vUdSWklyWOm*_i0OnX7AsKYBk4=}-aF`BaCAJPhvKjy?kfMM=+q6VjGaU}q zR69rgl0XZBpHc=SU?9-36fOGh{o&?=JUCk}7Ga(beb+xcI}gF0zj)KPi}ku=Z=oXu z`{v7c&;QM|TrW;9`^(GFcYz6tR_B5b&Qg-33i#WXS63h8-y z+jsfqHZM-&<>kfCe)gLOmlwO?_78si#UKBZUynQc$sZi21N`Qf`?;2`iKvhTz{&6b zJExz0xI&VjC`m~z^ploj(bIMi$!Zz-o3sZ zql>L?9XF-fyxlENSR8D3dGlc&=BiYOy_QO2wZoyNLw3l7&IfKgcYM6AQ@$IA7$*KZfA?~#qw{fdyPc*4K+|NVAeuxh7sz5mN*r7@ zo}@Cwk}4osg;}kNsfYs1a{+Y0I~B>LnwYAerkt}9MwOatApq|}E|ya!CRHr}#f*j2 zaGHvso2()SaCpcWkZMs;nbUk2Wt@!(hy7tZ%szJe!&nPC3OQw#LXDsoQ<#9U%!6?TNU^ao<=Y`2FS}2lowJ+zmD}7M=8R7tJOm4i)w4q$ z=QIuJ#t8FVV$*~W#>4h{cYCxtIt+V6`f&4>kepvkNsiBGbxL1+{;>7FCUxdIj_mB& z!;`=LdmlY{d>on%UEeL+)6=tI%iq5qlor>wGq`YaylP_fp-a=n=Dl_cs@cB#?rO1W z`(?ko+n+sHK6$qK!4FOzJzcJk7F6-{bp7n{#e<90AO7KwSF4p;UM&0%f9K&(KKYTF z?T4vmdh;g#_E+go<%h!`0!zC2%dlpBe$_> zQ7IQAYtaBQV-&HpmJXVec|EvG* z51oh3(KyuBFIX&(X_$tK$7d;(tGBzVwOzDWsY*J2&})V5?%;r#JTq3)c`i-x1|pSe z9^1ZS--ynl1Au=ArMA5cXcQYqC8z!W(Gnq!QPoToWu=e%Q5 z6REj?X;nm2ML;l6=h@w7%TSPpEllx5x}p1asA<2`r=1NPd|Qivwt<^0V^uP z+4}Kc{MBzbOh5eM(=Wez@nG>Fw!S~*Bpb)!)$0$>K6-GvI_cod%kqmK{N&lgk2Y7^ zKmEneEsUyTw{Aav@VgG1ckkbfbNcC@|JBPkFHRo2B-8VMv)SIvP2ZH9mFVO+JUCw& z&MpcNef;Fv>sPOS@Z+a0Rqq>gb00A&PrFeI#D?3>do`VvsCj#PCzu!BdyE-sjLtVe z4$@4A&6>FPJfR$ddNDMlI+gFvJFoz`_G@P zK6-TKT92lTmZ=!`MOu|Zf3)R4`UjVk@}djQ`0bnR>-Tp^IBfOmYWMEl9=!*{VOPED zp1-&SpZjIQ(KEwh8H-9G8upVZS5ihS%hwZrXv5CJR9U{qMQXlK!hSj z?wRc^*G2EJ>)WpJ%cE8? zE2N`!JX$V6oOg76GvC~eTKsN1O@|o)r+tkPRdXLZx=(5#-tKNosjpvdU%cFkwa1HR z!yEU*Cx6hEe$h1T(#>$anQp&)@fSnd-rT+k9R+_Z%KzV={=doqAtNBcx>i@R{PeGW z`qN+jt6>_I0jt+t{CEHGkB*v?i}j=P<45nV-#<8iy4h~;_FEM~Wb*dOCr^LxhktXq zI_sCGch}d5kh4Ya+umnLo9*=Rlc%eui7}iUuQ%iN$zC3z}*?#!>?|k(1+28u{?>>F@;AFjc`TgDd_j?0dFZ^n;7{+nA z>bLt%x4;LdXPfP4m>!=$diU;1jXBzS84p7$wE`NsOo&xMoj|auijUlO4X}mI`{0Sp zQ6$CIfmyNIEIAH`TXE*NXqvzI_T686eSNbprm|W^&&15*Tn))N6g8_jPnxq;kz&#w zx!92NG)!eoIrQuuw!~zV&4h5j&jzqq1n0>J_jkEwlY+Gx0s@$0stQ%L?|lf^_pa7D zq+W2m!9ne)0iEmGTdyKI5~)Bo(V^V3r&fgH^V?yk$t_0V_g>#IpwR_o^U z`1EMCBC3m1diL~)OA*M+#Yzf6sjl(sljGfPgNV1ozUdgrs#PC&&U4eYZ5tJfZ~c%* zMN!i0%@CchRvtZj#AIBQIChIr>(C;coUL4>&WDrZH#RkS(+MqKnAiYIKQG%+mp)4p1EJ@3b1b+X(YcIbGj#l$m>#b&kU=5GJ}+u_aC zxac3(-QwzP{Al@mfA8=7`zNbQ*PoxBKl;;O{rtPz7eD*UzuXVwa@8Rh)AYsD&wu;v zS8w;vFQ0UCxm&E^;qjxi+5O4C`e%Rs^UbfTfAI9ja~i*X`DZU~zM5%QiLUqW zhctY+yY{XnbKZr+I6gSOczX89#rjcAdcA#5>W|jzLr&M5Nkp%%HtWS=oOab!v+3&k z#y4)!^{VEb-w);J=vcUJH@ln7)h=CsfBj-R-#{ax>FVm;n^)g;&3fF=U%mY0w;z7{ z$3Oj7U;gG@PSp{I=qnWO>A~gEgY)$=tPfK@dvJ7ia(tNgeMg&NbO10PmYoYtjlqHs zfT%TyL;&vFrEk38ET#f%Y6f5?OoXoS5yIk7I2Y1`>>7i^gunRqYF0o8Z9~i~f&c=} zBSIAu1yw*`7pz}%6CsVc<_f3?rUF*9W=yk9lci*m1P!A{P@VUsjMb=-FgU-fdc>I|M;UO_(^BwYCxM^{`ULB z>koHv0jDRS?J&f!-xYLr`FOGDo8a3R`;-%r2$ht^lm?G(pA5Wd8=5u@`#O%*w_0Tcu+5mhd2u_;aBBt%Y2;2ht4_#RuQBnm;F zfAYo0yH7aNn>Rl^J%(jDGY!GdKfJkjb*oV|_3C(U*~cis25_xtm(OqsK~eS0)ob!|7F z;OoD9yx*Vt#x+`5sm5WRmSvgd_jdyzct0y;6tc)cO2~z+wFp3vwIzjQtaMdbcc$rN zy@pRd@2{@=zUwd78*5l=1ZD(86jGCu+FH4~fc54lW{W@y)SQV#VH8A3l>mhxXDC4c zgO&w^Ai+w3QfM^PPOi7sH9`vMlvIw4md;>Z;b!YDcGatw*Uw+}zx~_mf9G$m*O%C= zWY?Lh0q3N|1d3BG@<0BEyFimsN-C2jC%x2Le(`br*=Oz5)+yqTE_O-HOCFydpGqLj zs=->zN=Pe>)?~-?G|m2Iw^}(zBsZ%*E_3v07{lQ-jgwEM2*C*4cdO|6qN%z{9gZg{ zaNAwjrZ%!|WNk?;%ksECez>~_UDj*$dcE>tytsB3&rN%&S2wu1)|*XTTZ52?c#JtQ z1F(*XA{7*1jYXxk)Dlsl1e9E|UqUSCO9lW1s1;I)D6K}6khChGn1D;bS{p1f&J;t) zTm%3WF-#tnRoXO8T1D1?){ICR(K!jCNG)?DV;rIYbjQ;om5w=T&sGC|tM9+NFB86dKYX~Kmw^)Hf&^%tX+GQ!0ypOaef`~sO7$qJ?fTWT zix+XipMUZ5KmC*c^I`f%ucx#B;W&RtnA*l(UtI{nJ{3w_^fISoO4K&asmfM1g!9AG zen|1#+xJza)}51<-#&bsiU0V||0)ngpF_~&T*eTxr@@D+t^2ksak<%Ta~zJ-<6nI9 z{nfKe?}x6-gv0esTVhs{KmPctTU(02q@^%j)A%K(LYYg`)y(wr`ODqzVhkseULm3^ ztG@2~CQ(t=zPfQ$$#^c4ho#ujUYTZ4%`bg-o zyXuE0nWO&MC+ot?xWxP8^3~T5v(IhQRaz)hSR_ix8o6m*PRkUNQ9`PsfRredg&z`>$N)^V+>BY}l!+PCoLMD<%WKG&Z ztvki0GEE}S#mz&>BHg^IyIP&^$KjNuGKfY=gMfZaR>IY@#y0TuIL~KxuI^X%a{bJr zt(_$`Pi0QY=a@TJUtF${O9+c?9V^p!{g*FZK3}_SS39F}^eGmpoK}`WmIB&Tj75|p zB^r%JDXlS+UnnNd(n#bi1WOQw3lTcq;UapuE)f*0vghOzWO)2=V3ufDN@1KKK_Ed| zP+CbqYow7>IjclbsFXGcqOc&MOi@Y!qEH4BrbJ{G$_OD7gIGcumZh?-vr4d13ag5Y zmB%^!_-1%|^xu9n9*?PDaVzt)FSpi-IE49xI$S>80pP0do^LnTUB9dB=H-i5zx?xm z@uz?M=i9cYJbIrWkB6_{+}_B-Z-_*Z}N zS$PPv5-z_3ozs6SrV{}GQ;ceYkt&}oG9~tP)?Yp-h z?zD_jrEytuV!vb}Ni1^)E(K7YPG@74(q>$ihr?NrXr1d;H8P>#yT`+__-Q;p9#6zV z3XmeB&f~nizdx74O>Z@63I}ZzBB7e%Yt#n@s#Jp2#|~5EVE}6NQtFU zU1OD$ArJ)uR@s9nib-gcIiUz((NtPiPN9;Nz(S>@xVnIgi?*&*?L^_JXqWV0BKc4M$!}&7O;riR=!15kDhO!-k&L9;DO1-m`o>s=)@YWN$7$ZJ zUT9fQ(|nF6sme4Y1I=-GG!`pkW}l8H53I8Ag)%1@QtUUbs?6ayKHi->yDh@^8|`ye zted7sRF6-$O(PAe%C^oxETP-<&a#q4ODYg`4FWj%WUQ-fMFg#Jt#L+6XQ8&Ht-G$O zjg-uE4%6U+NHT_!Gv)xxLVi{`NDhj|f}pb~(Weg&M`bNCN|4*_8Wc(;V@}HuHq|N) z!3eED#ffXT^XaDR;^Ha&V@nDC8ZR! z#1Qh5co^AFaks92{#pO?&vzfaY&KiIda-)@*9R55+goVd<;C@#yIBvlj(I zEY_)?PO0-U|LW@x!&KU?>-%lrt+eL*4+ju1P4mU|_B5Q8L}R31N?lXk+V^*lB@+Pv zMCW8v)i17ocD?y{)qbqyMg-f~))75DoibCms)@zo)BWABEOP%S;sV2*=0zO#G(@R% z8bi_eGiQX+2a-WA7L0YF$v zh*41COq-@l5RF5jnOQJ#oU#Q=*@rZzoTiu}Q=pQg05+X-#t4+)$2gvIiHmcRAS~rn za;Q-$iIr93G|xW2`*1oORAbtgyH%sCn4vQG$@S*vzj5(&+&Aj^{fBaM^U<7Q->+k$ zVchrYn#$C>3aGBly3*Aj|H;4pw_pA1uixB;B&^jW@|)wE{d9kxmL>XrUDbUZf=`hN z(yBFza!A>_X4g7rmwuz#Rw;%uppqJt9L6&$FqWD&Z*OX8;pV2cnzWLVr82nMuKhAM z>uNt9g(xwX=oty6G+H%%)epx51J|~)#+`-}0H2Phl){pOHtJ^G-+upoDV{Y>KBg>6 z$jV^bb|}SZJXfwQS(IGHX&^yLtM~8kjWOdX&2vsEwOupD`D(X59p_90PMwGIs~4NJ zP}|kdFF#VCTxBm-*Vh+6tE*>}M2zD!pUJ1D?WAn7&~4{ZnIi>h^l&a?q3yFRA>Tbd zSOt=Bp7O(f`s(|4Ane<_18TNLY0cIGih!2aTm9^Ld-GzwyTDa%jm5T+T0-<`T7n?y zr&1fGG)Z7pWL!vVHHHO{*Biavna#$2@^Sn5XWi$Y-n_VJss>RPXR>vOCPE!n4%94^OLJBnu zQ^Ax<^dbieJ}*n2#+*VTO*(q=#~eHn$Z=YvunK;9Th>w;Yn?=yeZhj`dD$P2!?aA( zB6KNGs;WT^Xi%A2ViuC-Fy}%jrEV0W5K369nx?L;?rYmM*tZpvpT`syb$IehH`21u zd7cBX=BPxlelDC%oavWeeY*sViQ4M<`*)|m{N=k3`y8R1=XAecKKuCZ{NMlAFRs>q zu)FyD>guCsH?Kbb_~WkOhr@TN#3^#sSXUP$DWkjIwO@St#ryZ)*Q=^G;M1a%oTrIO zsXIH&v((%eS6OAX-0z<3Z2#$>*nTirBKaF z-mUs+qoUVi-SqaysP>t|Q(&8~gMfJHzIv2R zX+R_8tU=5^y?r|Y$&v~JY71E;rTLSOu1U}|M60-7q5KE`>5ZpkU6qJHh{Vy_idlH? zt;Ujq1S||Ci?HxH6yOYGQi)25M1nDul0+fQoJ(e-eNsgzBkSIEUp#yMVzXnRK&ZmV zprsWhc_jb<1Tsj4jk7)n5XzS#w4Bl+n3Io* zASDh9QP5lad>%qcoHKz|DJDhQN=VE?ptkjTwdtFc!a^lGW2#1>R<&zxo^1u>5E7t_ zF{MT1B`bqUskU}tfU!u4B~!^{WoK2DQqj6fKBEvIiG&zD5ow=dh!ZMAM2+z9;q?B^ z^yb~NznkCuczpHgWs;=w#rMA)Powze+x_ER`S78Tcds|E*42fe_1$6GZnjeKX}&+6 zzkm1koe)_&2vfM+zE*%lI44)>btT)b>jIr46QfE#_pYuRS=CC&wC+3a0~(w|@u9@L zltMSx*Ii{q%HvX|5Q@a7^YY`{hpVd%77;^IB)QO%JzDGRs;jRQ7j(+yiaNFC<%N->3bT}X9!Pb>CI{6?3 z6_Uqe{N~&D567Y3Z1>0M^7`Uxw=P72)#LsklmN-8z|~bZ9KB#uS-w9VhIE+1NxQUJ zH_xwcZr{Isw!Nv1GfHtOz(Og^Se{+IE{j}F`hWjF{^ehN{dVzboKNeOmWY+@Zr>e# z_;6m95Ki+ifAQVZIZsnMp5rN`ZddQFWV03P)=j5n@o~t)R_=T__^iHudpJdJT_qNb zBZY|88Kcl@skK~h+`4rHR5$9A7yZpm)i-9{Rc&o+TW7Dxvj7>bdi!*~y&EOU;78N8 z4~H=fQ}DsHQntD4RR;BR3d@{_IlO-yzxnl#l<4s^-R(yxLjKVoy)20l1N>A^$T|kf zDT*Sc){MZY1cDSY6=En{exh*@m5e?$uCZV=)G6}W`{UVqSj68dZ&y+z05NzRkA3Bb0HxF0ve?l1px{G0L6)OE-67Nl0_~#rtHIv zCF2saV3ndMS;kn-!#D@>GYgPDfJPgmud0d)ib8MS+&(@{r~Q7_*0Y~7fDa`W+CQBi z-XHx!w-5Wnc`BI;(bMVt;qGu6eOg3Wn2RFH6jO-#H0IN(U~%zW8n@vrhKG=%D|54q z(6r*>3bq^7H7FIejk|i$U0lh2D>H;)%+na2-K_RU`|{#<{{A2SM^5XHZ$AF{7k}gb z`RBhl?w5~Veev1nUm9bRkIvZ5=E?_gbNP|R`ucL)*RpmtQ9-J5)=MaNr_+9ZIF2JT zXUYm~hLTFGO-qPR$Fqb6lmbYVtcBqH`Kj+$Toh~Z^mzR7?eQGP&%U@mkJIrKpRHC7 z6bK0#K_U{oxqSpuO9(Lzu9Ij<0zN*BXfUU;=~u%kt=F4z9L6aVgQ?tkm>ga(gO6ik z%3Qj(>S`C#xa6da1kL(-`Z)KiMgtDToPqyn&$IQuDT7L4<}-^ zENM9T)w%_Qsy3}_zWnsdw1jau3cycqUfrx;p%6fvMao1Viy+}_)wufmw;$X}{}2D& zKOPT!_wbk_JnTnh%$x5X_mAOmKMTT~^mjiDPy2NHei0zHmsU5}wx+HCrF?%lvO<(- zO#SBe>FkrXX4N)Dgl1(@@mgu4l+#i&XmE{{uP)mcyQa3P)~>a(Z=E$pN-1P&cg{mX z;|^0e4NLIh;%e(l80PUjop-xNSHx0=!qM~XoB4+yro%BlJT86H%s#)pJ*S1Zko>*h z>JHP$+JqRSlu9TBO#+wbS&#<1jIosDYHh5Oplj8}93xT8l(U$Za5|o2VNZmpl$Mo} zm#emtsIlan1eeyz&Q_bgk-*w2B~4Nupb5-GQ z{`T(|5W{rtI~}J%VHJ{Uy7u<)i!q%aj!#|Ref9k}r)ikuso(T|j3~wU^kEDWOL+eL za`s*nS)yETdI_-Z)|J)g)6lhQI0r&mS8a&2uEBdoVP3qrc=dd@?#=t#VVUyBm!G?) z0-J_#zQ3D5v{Jfh9>&qHy1rR=ZL@oPJOSAKaXjtwG-vNg5I4@%wX@b;>@Ethb$#D+ zyA}`o`Ps#8S?0<)DpAm^lsxRm##Dr?w4Qu84rAR~XEh5|S!*Ry&fCjQYmqoNRimVQ zIvxMLzx~mAr=}@~7+=1;lI%|7>3BZ$+vOkB`eT)BU@7f8dlvj`BRFDU@OH!&BNnjfbac z$?3(*i`KO$%=d5J8!NTOx^9eux;LAPZCH-8UqoS9qyj6Y6oN@e0jMQb);eWSaOMyKW_|N5VN(eyP6sC1u8DWX_ZM5Sr0wWd(1jb@=JflNvvF-N9?Qc6Lsadq8j zCFgl&fb)5lq$HYYnUfGoYx>FJvu4TUm#DzyP^NjYMp2IIRo6C+0l}0ND#fgjv_KJL zj0I6PRuw2!Wv$UAkp!5sPZ^Btm}%AbecK3@ixSoGvb}u!O_Yxw7>|zk8bIKxN3o-T8Z08Du3&utv>(ajgT4A6;xa zTZi&Aq~qh^G%rCUF`j*GD`ml0C4@Mf&bAh4rIq${K3ra2hIv`0B^R9wBC64k=V|=) zH;<=N){eT3LtILTD-fHDcFEImI8!X=X})=W!I>4QyZ!C!k6)aICn0jB4He96P;=jO z+s!&HBl+Z)r~b0Of7oBG+-jw|Mp(#|Lkm=E!(4=jjT4l-Kv&Jih<>&A$!&!^7jRzWMg+rOaHys_%E(>o0!eqrdfAzgJrgs&swx@kiTL z*9tJFgP&)r8m$$rw{7P(=fnK)IGoRO&a|Y|uj;46@rU<&1(g=&d^%^MWk|u7s&5#m zZW`;15M-`0P(dKh5g>yEG4C zyV`#Aa{KzDwXtTmsebp%&;R}({o$vd-)vSJCAF?piG}z$Fz*Ig=0oxj;t0C7_ro1G7R61btmICy9kc7DYN$r<5AKA_YLA21g2G4z@B~ zuS!}V#UOG{6myOVI>t(>^AbUjV2uJCLJq)`oi@UVAV>f<+9}k`rL{GJOeM>V2DBCk z0>)_$bFM1vTswkdgMvWU#vuwXvKP`gkdzWR(;^mEbuo;_wZma3BI(?8Srf#jYe46! zcLH;mDV|YcBj($#owb;IdvW{Wu5Vg{zyiMb+du!aUw{9r`$s8E7N^7T=H~h`hBGPR z94DAO`Ec}CH~lwj6-9P ziJpchD*XD{E2%|EaQ*W>FN>eT!~N~I583ILpWJlavg|tQFO*TOj~yZ1KOM|QH!O$8 z_g`GC2R$+CQ$uebj_Y>2ZtO+v?tl2;1hv-IaryFQm9hYp5kN2_0yD-rrZJqtBw{ZC zR<*33JE_b7a@AGqdcM4>1kijQNeC;;dei!G*wv}9P~r5&Z*HI87>#|i?tM9ddwOyG zVjPb*?KTR3`}CtkRn@f$bxIZqlro#u7Fnb+-9G(kDt@3MEn3&sRV@oLJsI?W_uv27 z-*dlP+ZTWKmw){Flh--czxwXS$Kn3N!?z?-h@3?-T^$dH;WS@9zv|n%RrR8xF=d#? zuG>PC_2ufv_qQa`v8fw85065KzH5D49+wddy}o%qJ)D$s!|-H`mdduO-mQ1jI6pny z*EO1Moka?fNwl5Qpa0!YFS@JW_~f-R^N-*C_`5&<{VBX#{J6{yf;`|B{@MTh_l&V2 z#wjl`M*-}Ntx)E&bnBJ~k->phN~D5;gQxg(J~1hgvzCOYl(dL)j&aWOrr!jg@Avz9 z)ey5NEQAme5MVw{SG%2c>To{Ps;-P-D!BxroC*r10P}9OvS2J&Eh%T=DG@RvjmHsX z<*E1>1cOngQI$0&#UKQik{kjRPLlRRGO{W_K&q5b8<$HsEm5J0OL27@m(YqDE4BD> zcU?c6o~&#n04kJ%sU#{?NEA^(Xr;&)RKiYkAb_Un7;=b(Qc8uSGzytGQNb880&1nS z!klABUZL?mSJDQbbqCj%wKCjp+L-)&j(`1&d#qY7rcYn5Dkljqjt^J6_4;zV{qD_U zDae{xKnNegvj6*k@E`u0U;L{N=LY~8{PFVo(z#9pP^PZ2XFq)X_E)VlA&T=EXFp!l z7kB#)uV3C+6P?Z+7URIjsKMkEHmhw0nV2e9ubTdRzK=jCRGG50@=yQ#$GiQOvFV!r z`KDpU{f`4rAhj~GGEM?&qvI5F&IH+5TxQ?*y;e5( zl$n*4UDHof%7Tox)>tge5}a<^s=t4D9Ols~?7Qvl%-k+g50lnPy6$m@82$ddGUNBgm`y*s9g2x&9##pOazSz7%#?Gu=y`KH)VZ49y_WSGg%F_wJDXpY}x~kxR{a^lrdGK!K z0<#j5Gg+e$1yS)!A%u{kBx?aB7p*{6iXltYoaa*#CC)`45|EafGKEwsT_b=5tes^c zg%BXh>_cH9<|WNmOH`OjLPkMkYN>_n>s84UuqsPVnG49kR4`a=kl0lcQ4)y|GbqfW zSO9{V&JPdYBgpIPPu81ffBEe{pTm!!Oo=I{fMlf38fAe{gpdM7W?R>V zqt!Cy48jOzT~%B%XPQ%*VyeNC#rZrDNnvy;;{M&fSyiW})3fbG+bLEca<pas3cmi`;b^lPy~oXfxZe?z*O~9TT^!);QN`lVX^B)Y3GrE-|5&Q=C&-gg}srNgzPX z1SNH*h5zlJ{UHdFNY0wXnNT3;SdtV-l)*?LRGirv3k=BWJWdRmmJ0V&}#lE2%Q3* zhLDPs4vAu;VdWfv82rM3fJPy&YB!vHSmZcO+G>;vRq>v*t_w$j0hqWbTQxBbC^fPY zL=sI7ah`MEuCtGkJRvJZPD=n0Xi>GLLT$AUWjrlMrLEHXYI{NP3<3c$=S-+X;mHRs z(%>!!cYS>`9e-TneMsjRqBA;+WHkycOEN4t^Ab{CcgATg7$1*M2ue$~x-OHDB>UCM zHhBB+zDNjMq!cJBBTU`W92W06#snJbs#{JT>y#lQNGp}pc)pJ*pmbO@3RGIcEM>!y zmw7=%?`gZeP#8_EP^lEDZr1zL`Qh;~j@0#a-AbceiGpI$R@qusO@mU#oUFwC=`i|XZxf{uBWebK^KnQKA#vARAB457W!xY4+h<$VNKirub-aJ7oa@_liX%#QI-G5T zT4$x2@i+tK>x-*ln2Hq391f4C)pk9`q3JqZkYf^36~(9V!Bn=)e0mB^(+VM`Xz5Sg>cQ;~n?-+dNhiV-q#E+zjYN&)*a6X-d_!+FS}ATSr=q`aq;k|2m4=ZJHn zC6t^fQA|Fv;GA-bfdwH#&Pgx>LdY@rkYfSn9HY-^S!f8w7sy#*Mi3$=7DX#5GcS?C zkmg|;Nq|5Z$_zs0SaPBiY4JRcG)`$a@$ALvoR?8Q+|7QZ@fgz#TI*8E`7|watgLD3 zz7P-7NCwYwA%TI&3uIB0luAeeI&iKkdG+dQw`o-tBFoA9C37l4YUg=L42ZIbqEJ#w zoCrWFjRGje?3Cd|7Hux9rE&)SGMGvsvz7)(S=mFeNJ_APf*@ET*V-9Sf^!^C965(H z&FAwlNMj}BVSJkBLBvVu;py?4^LRgo;ck2)$O;gJ3M~Ab7;@q`3`0o-BqSU6b?rQ~^t&ekA>R4Rq!y%!)&W0Fc* z+sf8qo>AB-%2=rC+I6?F0Q+$OB_x3=*fdSZVZB~&yG>-2Wo1Ii*@pA~YoZ_^EuJ1Sfs7uP_Vkpj5RV7ObfFLYZtxG9lf$?Ebnzrk< z(MS+iZD%VtvGfF7f(@XRqN{Qn|tT1K`DP4sfy%Ot&3yk-F7FX)u^@7 zP1o#ptF+_>R@Ru9XJ9};%9H{{+89}Mb^|q@F@!V)7 zHH6^9F&d>(PFidDpZ>=`Sf;UQYvrWEf)IreL@ZeJyEQ7%Mg#CN`e~Xa+QQb)gAgS% zqgI(RAl1%t7JdmRRW6Ab5QUKBa}+F`HliT20A{5$mFy}DO3Xemp+ZF|D*z#+t2+sy zP-vREY8^AAm?-mke-t1PK?p%?GRf@AG|pAi0?Nc01T29Yjhl<+-QnTI^_55|rYwX} z+Mv?oGFoR)(Ks&{nG0!@$Wm!boSNDylR3wdNeTeA=hH+88Z9WkxLD2S^O$1_0$H?e zV~sh_Cl*`+Ym^8Alnz5~Y*RAjEIE?VmJ}$9OwphPBp)XwH85pdQpuqVZR3*lSr-~} zS8v+3KOG*%aYof(DW0Zowe|B@$|6vo=jDeVk3YOyKHgnyJ9V+?2$M0IAVwPou3@kA@VVYXnx=I{uU%3jI%K7MlMOA5K&9o;$(DbM@hr~V>AG~L=>Kzg| zS@}6Mn<|k{SW1M)yP@Cg>ZZ=gyS4^`yZ86QvOM2jtZaWC4*j1md>8*x&u26;xeS zuWHgLN`C*{{Z#mqm%FC65=G+TQ0VN~b)>~h1WeEaKrP7=L=BT;80iV&36rDR#R#<>i|(-g>qhLjQkTV2&! zDlQ_6v?OE%VofTY1s7a~ER6~=AuAM?6NE6c$-Coc?Kjs12@(9f2&IkVM8}xtqVkZR#`&~vT97nP)9{eWB6CbR`QdyZ z&dep1MF~YQh|Cg8D9h8y@7nfy*I6l_U0ngGzHW2_nT1xWt(?&yjL0Qht%13;by3qiPm7l&IyT?`tWocgXbtX z@vscv-`^&X8DpeHNFii=`Fwl5>DF~S4ac^vQ(8LR#$&SDWiM9k+9|cnsd%EoIg>(@ zsC@Io{;&S}v8$`?cJ+97ynPtufBTPq&sbm$)?Ak& z55qhk7YB8TIGh${D7ggB`^RCNA!NwJkB4)Xa?Y`-t6jI!m2B6tTj{2Dt*xa5LIQ<~ zv1*i1LRp(ZNKh#cEDHHdMdXmn93=rqmW6->N~Lu}3<^2KVr|U}MxXj$oFU?xygb<&(C4NsnW= zBV2@zQs$VJd7LuG*)PCFSIDtMABSl!BnXmG<}}S zwq2Jqp*yE1zUfPUT45)Lz1x^px3K{kAu&Qd<9raOz>q^=$^kIy0Z261-u4b_ueJX0 z&Vhj^OrYHoQu`WJNp)3SRZ>YcDW6R=awA?Y(=d;#@petYrVJ7QF@|JAj>&U| zf-_b-;}Rfn+wJDl`QhOKA*M~BuwX?DFo{G&OU|z9>VhcYlu!VP=M;eg1?Lol0PK0V zfI?5t7a9oW%x8Ffnfs>ODJ2M9y_r`Hj5xhmA4*4Sf@svPAzQPKtDO*lF@*>VMLb$i zaz;2-vibbOsaA*YfBX66`Lb!+O;z`*w!yw$UKzj)VB-QJe94x!{O<7e={)`UFMk1a z`opKw&F!0~r^|VC^P(xjJ?*C#^YAzu9k<;stUiYzgk0xv|FG=ZJtxF?cNu5F_^*EU zM<8kdkz~{)8D#1>3D<)N+N@$-~Hj0 zQ(8ANdyfjiNPhhOcziN6&`$QJasK@e$NNVEGW_bp`;R|9zuj%W{mEDGfBGN)O>7j206!=aX}P8jJRPiq22R%b3mo=mWmEysBOsW)J1`!hILH5gWDMO5;pcp_Zs#G6uZ!FPd-0&AY z6D*o$na2=wSR+CBY;=k=2Y=f&c8xK@{ibCcxZ*=9UDYfxf>=^6PcKjBi~s7~b>-8K zFT?$$zq)O2Z?_?q?>^o4wWwwNavE-~cJpv52vrqTik!~pN_Jh{RZO%^_uKD&3l;C1 zwyhg)+~58Fhkn~25=kX_re8k2Xovs+s^qutuN(?-H93;uJpbuWzvhyU%RJ0e(eCFz z`S~=DtGDAau4deAw_3+_4KU}X-#xvYu6F%mmSM3!dH;qI`1pAK@o{?7s;{nk{MUc+ zZk+YF=BLvzu1iUQ62u7L1eTC+i5!`&q&vYe%2mfJ#SZ(5D3%ByG$4{8PJ)SC0ww?> zs#K+C>rLr6qZx6CIl|KzU;&%H2L%9_3&>R^0f~qd$}?-!W?vn)TyoO1tfAnh;kAUM z7yi+-^N<#OoS6nrWOAS@IsIKVO!ZZq(szaQLDuNJ~mh<$u|@H4*M)w!UqR*z55 zfB)OZKl#O*BEytX=WZ`*D~< zLd&X0t?jZ>4x3Kgy}4F`o}XW_0PjA${rK^|?W$#1KRwNt+1%Z2{^LE^lwIob!YT1mM2ka6#@rJ=hp`U3b0R4woq#L=vhL{`$k6bN>1HY)AdGpL}(- z-A{}5K1J(y?e=f~;nTzCds&h5W&P^r-PdpKj?40!?_P&FPzY2b&X?hvpS^c>0mg6k zJy!}APhh%?GyEU^`@hmlqMTxgpobsfR<%Cg!7;p@NPl#cRnDvn09EwF5wbg!^ zXC-(976qJ>LyTybv`%_0jEYcn&Itg35T;Q1U{wW`!iwYUBf>n>M1auN)lD<4$BZ(C zA|@nQN!e$gD8nv+l0eEBBb*b;F#!w;E2-q*f~s*Sv7s`ASTa&nEQ1w-n>ce)XV3zA zNj^xr%Lse7w2csqdYiAVZhaZ8n?8N|ULcAvgcOd8t`yJ7A1^v&+BE`!1Y*R1WX#%{ z;zj^qg+Q*vUWj=y$RUK017Th~BVZnrKok}bV<3n?DKYj0qlEEA&kP}$3j+dW1WFMV z131pJu4rYkqlBUWSG|UuAOyzbf(n6D2ts%mW-XZXOX=FyI7<tB-8<#;*lE;v{dSe$ILBa$si;X!$Tx17Pp)Q4*s>g>{SxG4whM3nPW>C`| z1}Q*2%`@h7yv(&CmFjcJ)@davKroRk+ZI3&w2KB(BxEg|bw0b0^SVq0lt$G!6)9EH zF~XQIltd8ep|oUSKs~N*`)m6 z{kMOa-C_ZJdU#mQE<*bLcGoKuN;t0iaXE2@Zuh&G%isJT_W*!j{rMY$;N$V+e7>!B z`$|zr2c17Xo=6Gxmfzgn2~ZHP|L6bZ-%5;r^6mBgaXp?F1jC27?d@%^3cR^{|8M{1 zx8As~uCGt$@nV;{=aNwTpZ@8ABD$U|2*obJn1nEP&L$7EDF6VBsZZRR5^_Qm>vi!i zPqV=^BLPE6)&_{7);=W!3&aS?iUaJ3L^{qHg{D!2q`H;_0t8?P#rgm_HZEjRAS>4D z<9RL_h8PIv)&^%#K>`A(OM@y?E9y zA^ET0eI;bl?q#>@b21cb%p8Pvot{E)&YheF=W!N{GNOjCq7(?CQp!-05~4s4Nk%as zz@34W602T)cK45yU9Aw9a}iyP$rqXzXPrp^B1AHy0#Q^DOa&?~*Q}q1<9Jz}cOVc1 zVGLj#R;nszBZLqFTr$ongMiE$1m=3tYm9_rSV&AMv0@3-001BWNkl-{Ksy7fpRr>idMwh(z5yZ7P!UzHprflLuG1YcVS284@7FLWDM9uaYVL&1CDffLJTtFN^ms1E#NaMU)%YM^O(}gkm zk1IV}9P4FHCm|}(y0Em}4a3v@glGFqtAN{`G`|Jg$+S`I+Q;DnX&9-kFB~wnn z`Q4}U(dUq=T8`ST&W+O|xg@ZRVWp4}kR1pCnRd%2vwnIwSsD`ZRYmK*Vw4KR8_|N0 zQvskrCOEGvjB<7!BaC3ay6Ud`4u+UhE*}1HKaL?dY%0#bd4G6*IR56xmpAX<-dxqz zxYOAc4!2kAkAC(Z!SM0n{xT0SyNb%+eK|tNf4qNsxGWKRNaB*5UDCtj98%d|HQiR7 zNAv0PIi(C4kOZAZ^AA6qK0O>EVy9*PaJw7y@cHTGhx^CFw)*9-zMj+icv{^WKD=%I zy*4p*+_$Xd216P<4~MMUa&eBxaQm zNWcUEq68NxIgD^FgbTi*GAw4Qh?1O!5L~j}Mq40KUeuwL62QU~Rf;Qu`-Ww%J&4+X z9&p2)-EH+WtvtFDJ-F|FicNX)i28#qB6%RrC_X1#f9L9d15N2Jeg(k(WMXzEHT?* zHq~a^bWO2#T$~;0usB|0?H23fl3d*qfZ#mDVuEw|={b(GNdbh6Wu-!jucyHTS1>Fn zOUz0L0#%ielCZjyi!sKQWi7#${;H2S#7x%&Y0QGxB#=7kYTOluI?mnq`-aC8|#}|2Jcb|D1n@?v(6?r zEarF|UGN-1g3!0`ulPP9RkT^0*VD9O3VpQC;{`DaVHnM9T<{b2BmCLdZ;tEBY%M1W zApG!n${AdD+fFn@@>vgrvte1EUdNB$Uwq7xh&TJ&V62@z!qmg?v!8rj^KjUSD$@^d z4!`*J-B)*aOV%#Tji}!p4glG&-hVYuM{Uk+)4jXCV_5cebN~EcK=|~!zPZ~hZa!K| z1d1s^M85wxPeW!9n>GFLX*o^$aHR?;zJO1!bIGya^xr+6x(x&=+#T*HR<~CNfYW(+ zbS{1U?weNmKl}N&1%k_R+U>f(`m?Zzl_j#7GcUCNjaBXDB*33_E%iBTqyDVch7Eu0!dC31{7ne zqut)tn8Nw&1n%G5+zJ6PXOCab94bK2I>heK@h#_-WCS&pq!P-FTtWE#mnSlrZG)@r}$ zu}UPXWPxf)B567=A>m<(z5v3CvHtFAmr8UwW&~qe5tE8_6rc>kVRL|`Fkbu;H`T7K zdR|zx<$QjvVPj_h@c0Tdw0;f63(jNmKKp`G3^79hF|I15SS2KEyB$Grf9Psf>m_bB z8-WCX`1N%Qxsv_)!-5<`s{WzaygQ-V8$iNt-r{e%{=^A-D4lb3h-rs+G`Q3LflqnaD ztjPPXzJ7by0ywE2s*ZvZSiuB=o4XFH@?{tYZ*K17SMPfQ5`ie=SogeZiKOTk-+cY< z{S7Q(TEaNxzxliGy|KIf&0>6U?(J>wqaRMwuI{$5a$)`M>G6O2o5w$V9E(ry4*hyr z4(fpai@)3mS`i@a66^woOE~N4JUwF~#!0J+F3UMPsE3)L6rBk^dh2qIlmlL60?X;? zoOJ?gTvokKV~WeL3{S7qWif)l6yulY@iMNl=p5H&np2F_7r)wRJgFKZ7GVKqvFo^$ zm_hOg#Q8kI0wHorHm}E};PU0=?d(JRSfO3AB2BB2d;oYtiHD(I%h5(MXyB)9SuujL9xxfMf^fpjQC?nG{niWI~ z&zF^xzC=ugDp_L8O)h6`2`W-RqxEIbKIKwKr`iuRJBZe6TT0yP!uMl&K# zI3w4ajzUZ_okpJ`_1cZoF{D&Vu9&<$uWkY*mJ9(G*lX{7M3_njxkOjpRVyU}fIyr} z$qAfBYn?Z%Kg~xUOvTB*+JYQCTp-5dVq2v??BA7wCpRMivnwz&01F{7#l#uIkT4n} zijgOA7K?AFPw5RubpCm+wN3Be+QkC#cWffQ+DK^e4CcE&j`5pK7empe;6SHEU)E(#;U9i@{P?sWj4DA@#a`y|Wts4Q{^y$zoQKK! z5M$)33eg=7yYW0$oNekFVYX;*9LUkblmJAGV~jHZkRoPMC>WK9wDtfqLisdms{^U{ z?jS*l0OhKaAtS$pm_XHZ0AlYvq8KWWV4;~sA3=@~qLKiJ(S_s^p%fpsyP8R7?KIDu z-F6x^? zJbNoLY&bKEZLgZ_l3+?~C=|%(VkT%U+;rRL@pYM}t!kIm^qVfE5P&06S{)OyN)ilM zhyehKF;1CF++^<MS`}QT9pwNk0Xkb35=72DU?7trwmdS5p~;b*Vf9Ib#Mch zd|TDm*PC~Tx1S$gbh3x)fPCSK5-zErh!sr9yp9xdfyC|hree}NYoWQizSh&43V;bV zRh>g7g;?*WVX9g8`MdRa)bFqR=kxI8bs!K97aL=A1`641c=zV^PAcqKrljTq_bu&e zyx9uD>2|YeTC%BG%@{0&3$ggsWncj%l!fesl#EMN!w+}co41<`A|&AO=4#V*x#aDB zd%ZbSk^JQC*So6T*8HpYcO~nJlV5!O&7o#r-`sqC^Nx9Nb8{=3Izw?oHwRULrXzwO{Aa(cGfEHv%BZXe zMMhAR)?$60jXsT+)60ocR<{f@I9E9*F;ezBxv3>3B}EMZNIpap=h2Rr zlnWJ@py&ZiU%p(HxrDU@lOP7mqP;DPj>hl01l}j0K`=r3TfAi zjG*>Guo_da*g2K>a+2jV|=R>s&1QW# z%{Cxwu< z6pns959Yevy}R1Cs>YNO4CiIZq%=J#-k0Q?nj0NCVQ&um_g6P0!<1r;IdiGuV%xRv zcXxI&&&N~MbS9Wk78ebG8RLu~tyOn?dfln^+xH(3$UFjUBPpn)a^3FUUfqHOmdWLi z`j#4FN=d9P#+edg*EEdFeY?5cZ3rSy(=l_;D2*B7|K=~g^)3czYb6L^)9Pkxjn^e* zS*hd$q!h8@o$p)K?yG_z0>$V6Qa$QP&pMd|V40o4LM)?A5G=FTYfc4nT$P09)vi-^ zHe~>o(Xm?iWC$vL4aPbfV)1fWCPWdd<@H@h5gex(kWv5vscxvT!8=;zhI}UcgX=O)Wk5`OhwiT;$COC?+ z)z$%c8fT1A(~(VE#gI^mvWI51r{~Ey2oTVE8fL?oEVvMc6GbKuo33X9Nd_n>lo44G z=M2ISLsU>nu~14eMHr)HTS?6Gtq=K+gAQmc?gaJiJKnRM9 z%dEeBe+5e}py;qd4!0j_pNzE@MlxR($^tBbF{Zr_(ZLvLVR~8#rqjhb1OJg#w_S=3 zA%Gz+2?QTM{o!m4I*vo#NRrX%`O@{xm*@Lj3NFBVXp)}ib0d}Hc$hD{Z6gJVI$huO zl%%`9R+76C07}WlPE}k`L1FUc`Stwxx;##odwYRx5j~MoAPOOapg@-$q}i>WD7^Y* zvMWYO$~pmH@=OHA1WtPW;mgaHFO!e?bUJz+zkK(a5OxKeFC$9e`|p2TwT_`61Zqya z{l{+?!LryW;f%M7HCEq0JmpyKU(Pn8;cOniI|7V4zDL|0easwV5` zhO=EpOF3CX$+@*=wjuZk7%C56o@2-fWRPH;cbM@XA0CI*SAy0;sG1^_jmytRO^d*o z@`kVmFog(aujA6*^tIxfzHWL}3;h1w&34239mAqr-?cuOZd;KCAqG-{H@BODL%UbU z<9QlQESPgTo;AXPfU?_cK=KII-dYz{it6mb)lF~A)O2Fo9FpT^wRMlHiWG#JO*gsm z&@^xEc0Rf1mx~Wskvh$>0#b1)(GjeR{EwrNzuKMg-XLI8EokY2|zzW-X<{1c!{G zON^8^Z*E#C1MmQVhA0g1Vj||GuIO;mv7`#fy6RwpyQ`Kfw13n5?Ax!Ak6YP%b$FM& zr4(Er4$;M~tq}kq7gSJ9WYxAlSXGghQ>g~GsM_qc)IA%UxxeVOF$ms zbpPY?^Ch3A_2qae5eh_50VE?F;p=hv?&ITWu&0ZkhjS6&^Xu^Y-=Cfy=Y%1s*f^Vq z*K^zO54W3^69f~7piz=@T5@jN4bKQd06<~_?sknp^xfSJ%pU*sU-v?yO{)-0SRg4I zYa)VWe_(CPeMt`400729TQ3-OF+mD0Q%H#IH#h5Kmc`Mk&Il>h)UvY6T#2scEILg| z!XOkMx9z5uP4b%a)&}Turb4ZYCrE8~*QaG%ja4=BJ~GNoER?HIO2j_Gu<6Nm!(c&( zu(od!@F1p5Qwa&N2(*FIx;pKafdBWuefarLZ=74kL9;+=(WV@$4aWkR=#2A$z!ZQ| ztmze&2xEX@_Q8+ZOlvq^Y;J6j7y3*?ki1z65D6{K(}*cIq<hy9kYg#5fX&X?edsOcgVF@Gfd^Fa>3{Wm^zi(RAHiR((1gAbY zfb#FZ|B^C%ck@mVLJ+Q+dexdiiU8Pb#XK*9p|%otS66~zL8w&n@#&~dfCR>pC6}$J zhtr4vy^J<_c(d6GLK#-WX$BaybwgmJP(%kk3}-!QlPIC@-t7C9#So^;nnGIbdKsn= z3QD+_4Z-y7-EFWYW)A>fXDuj!pcIdWStCkvNet8drb*7O+N4k@D6e{+T%JuLj6J`O z$I)2_A)?m%AMP)_?oB|y{@oWB(rV#(@aK7TIV386_%hEXWa#&`bUx~J=_UR8-GLww zK}ZlSix)^D2nfK-Y%oQL#72p)zIqR0=~%5-H!m9h%YU__ffB?n!|F{;Awhx>hAu^l zAwnfnuz z*VzLD6KN3L+A?I2N?L$G}@&1KCd71Ql z%6(m92->Fk`1$nHpWc<2n1Z-KB}C6RIk}ipUss3yhN6r}TFj~xucUG&uM=XE(9bxC-%^TjUj-?X3@25`S^9`B#L z4t*^VLC0~O&vQWtBK-XyF6#)hVGobX8ce%UyG_kAU<4unqfZu=f`CDJ^EztMi=ktX+)d zG`o2o5z2xJGr8B}>~#gct{s%?>$IJQ8 zqu9S6@c-5Mr*Pr_!~Q4a|L2DPzr_7hn*V1#h<`u+Kjh>8`mYWEm4XtNu-@>hZp`AM z_l(0*U`(_`xag1p0kCk23xt@_%a~US2&zx#Wf{B;pj~Z-C?*he z#-xgn72w-uGp_!5Se!%a5MtqoRQE5(Rr|W(06)O;(p&! zSty1D7JxFtfDyI~7W;76^`Gv~zx>lT!7q9>T_c)~X6A3-ZQ5SNm~er{MP9fP?CNHN zSg8aR9Ju6<<9xcT8KQac!)SAXQWA&&Vd3fd+$ixnj3LGt6C+gy1VSkJrT~Db&cpzS zwRTNSMZ*Y1e#w5$!N%+ZMr=0L>(mOGBX~H!APn{5i!YqZ%XrZ~LY59Twe~;!;Q?mM zi9{GmAt)y2)1|2^fKgvpZ*Di%ub@CZ7?;xiYR71>bF|tMfgl9g;I?V+Znj(&z{tAl zzGnMfA44h#c3pSab-ZCs-@d+FF2nM2oFAUgl@gR8f>8vXRjA~UGD4I;zs{Gz=@puj z|Ka{T=|m`gce9z#(=<6j8N<2ZAh`JTPu^~J?RXwLfrIlUmStTqh*#J9VRG{lreS4{ zOiLavI!4fKx{zW54l)2>t}Dqn=9J$*pHJhwYMmn3T^dl6+uIv39oTJ_r2m3M#>Br&x2XOhF>0 z$8lX5=LyRMX#wRl&oyxnYALNP`lU}U7gf+|VoWvM04z*7M0w85Bs zd^jG@UNFQ6DkY)RZz6D~eE8S4cwVEf*4{5?!>bZ$+99Ew7~@9MpbtUDp@y>z*)9 z^x~YISydoT83I7r504K)=ekp?Ury)Ag+d8I(6)-&FTt`*t0S3#GX zddo{%TqHGmcznIS+f}s~PiC0Ths_otRMmvyf-)eK5-;o&^lAhrib2ItQ+3B_<&2Kg z0%(0Y4T~;z#eekEZ`+1Z1{>KuKi>n4=6Up~e0g~KcmMFR1gttpc_9#hNURN)^Lll) zZ(ET8*lcQug7LnT9I}4*{+dzv`S?5EZ-fvZ{BPLPl}ayhn`dHgRTVWE42~j_O`(&Ll0SD z2&3&y4vyM5G zlo1Aym9AEtArmzMfFPJsn9r6fCKbHeS0HCDFcYb(dRUB7I8*xO-IWr|T8}9*$;4=P zyIx{YP;xn?00dK*WP}0*STd1aSr@PEf?@1xRX{qQF3VuYAr5Q&{P7tT@%pr`qd&i{ zz>$*4>1nDsgEasCH?KTZPW#n`E0vNZ~*|x0Q~nmZ-FcAj*Eu0yGGU`L9Y}huuuZ~hC^%{2isQy0SXdCCbKhiN=n#IO!a@X3e57yu|k1pB6n zEIT`22L0*&bUa$U+S5D$5d#gYw&S8rOyjtWb{=Q#XQ1lJM?YFqq6LLa+D~BxgcX2R z@4x?iT&DEZ+v{z^HjJmmeDkyG47X(5AUxI+X}4qX4g>)Ig^i1!)zDXFi5F|@S@jX5JSYeWpEY~M41@Q z>l_xJz0tv@gn#ubig;p-=Yjyrf|QE$iZrPpA3P!;TFZ!(N_d}+5A!;&6~k2}>J1fy ziCQKY1r{(8diUZDQ%xUn6V&2PI3dAT#2>4hqLK%APv#aykts32}<0*>%HNb1oV}1;ruz(=ZL= zXkx543bAz3leaMjWPM0J!-SF}5DQ94c7D_MIYDPKMyP-Y1RO3_iKcFALd&6VK*6wJ z;7f(sRl5TyYGa(WAOk%Yn8c!k51vvIJ&YlP1QEbW(F7d?V6)pI5?-E9i?dU9y5!U9 zs!oAa`fYVNKXb+#CNM7ZVCtqz$O{Rmf}vj;HqJZT!0$Vws9ZFeD!uj{L7 zST0j@VC{C30-V;BA|yF5-Y&+#42}E0xx15{O}F$w%g=gN|Mp+^w-K>pH@P#@&H%?i zIKQl{0vik}ssJHCh#4Ruj)EyOX3S6t2?@ceFhBx ztv2H@@RGD$y(+iSc$&!K7aL8%m9-}Fq#IS&dfV1@smnswO-V9QypUWrO%;jLqUh?? z{qynNeXm4qX8*W9BggOGy)e#y_092gc0c?4GBaXxcHR!o+rf{s-)=9iHpNfhzWVXy z&C*ZKCT`{NIMw~AJw-19+;z2?940Q6UZ%y2Q(JbL7bPndl}PxxU!)?Ev9KiiZ~tpM zMk(RKEZ)tLkY;wSyQrPD>!$hi)lJzH<7~$vWM?&kk`g&3G`iRaF6D z{c)Vm#z$6_B0C2mFfRI2T8>NbNvcv63X(@oQDtC(QJkkG<(M)`WRfIj{j>lR^!4kj zSG!9{;FGVm)&96ZuI6zLDG4EX20`gG8|xuQ=4_6hdXwhS7D^XV8Z&e7b){7yHk+a< zh|*ZC)N0*G4s9#jU7;FTD3NIzP9p<_6x&J@YumO!h<*tG@|WLzJe*8KTx>oLVLUy4`J~3z?C!f^F+nS#hd40W_XW z^PHTwe%Y?J>#9*y0wG#U&9Uyv>&?aav}B};6?U-%31_9$T$ThFIgE#t5fPfM;etNz zpPu_uM)mzSA7g}C$nC1l30mFc1d64L)jCgkyRL4o+xHLq{%kizIUE;H3>R#*E7xtc zzSukurx)vqDQ9bdW{#OrQV^|q{XCrSp7-N4KneuV$3U~PUTUe3WFLr2DRG~3I@$3! zoJ_Q|RY|hLG`bYd^DvCV#r4H9PsUhXbmKfi##Mb8jOCPUck5$+?BjA;=HoJBtt`gA zA0}tcZW+dD^h=5e83`iNVi+#; z(?BA%HnAFz+EsnI%zk%KyzD>Pg+feHuoScPAw#a30!8KpVHrWyHO3rZ4Zf*EWigdz$iDB~1JCJ`daNNwi# zi)&2%;_Yg+e)xFcOiAR{E=|qM5R1AT`aub?1XEU}H|{+6wc4%fRiE~{k+t9$;xs$W zT5BjO62p8rJ)zPAs*$9b|#rf3%Ta6AX= zDpmo{wNksLlSBpYPVO)+p&#t7tFG4np%&vcsE;4| zlxW3pNNzuwb*&+VuB^X#cf3Ct8^dR>iZ5SZncgCy0#)Q$ai9br56As9%BopLD>;06 z)!A%42Euqjxih1sF(RgvhLi8djF`)Y0>ISAlt@#Ny5opQQ<9MiRn5`o;CW(_$ZsD` z)`PC39s5mLU9ML#C*y&7;*v=@sz!eG{^6Ssv!v|0Q=h$Aou&bh(SP_y*TB37LuGDT z*);t1?bWusgaB2g3C-RoljH8@$}S*P6~ODdT&=pkUs94tY1eIOrL)cqq^cUFx=NO< z=9_gvC}*7Sx}qzprrwI8lVu?VXDg=LrmkumqFJc7akJS(0tvD%Rx#u1WLg(N_Wd2iR9DD3 z)B?Ja&(7#ZQi{=#U3YPH*^cJLMECV?KBk%Gh{N-AalMhXSgq=dUBOv4-bW@U3x~mC z$gP&k>=?~T3c(d)To*!ULS@Vlwc>SIx#V&*$js6&`=d{uSr?x66Jv6FQ{CO)<%KN$ z^yYGtmSxqh!;qITzI)i;e6l;t^F^l%g>G?WE6Oz@=f=gdT2K8{6`ZnEc8Wrz5q|ZX zZv)a*w^=n!)@LqQ4qVlINzNMM5m3{*E9(-Ehw1WSB{d-;Wy+KHqm420X`Xx6S4C}> znTyC0eSLL%y}PYdl`{SCa#yHkp2OjE?y53?f1X}^w$54W16N!!%DE6iQpJ1#AD5K$ zbhMmtO!E2IuP?hoau4zS$Cvl}{riU_M_g6Hkw6sBf=q4>A*@%;)wUyufrWxgK$;_+ zk1<3Pszjd7ZdpwD(d)OLY_<|X3;J>xrzu`->%ad8*Kby~sLU?yS9M86{#HLj=g=nJn)+XXY zaC0d5u5LOvPm4v8il_SnPvO<8o3mN0i`_~}i8d_TZL`zO#k$nBn1^U4-GM>!wW7n&8YxlJUU>49Ey4k zk|r&bkenlDsZ^!0c6(7%87X8gdB)5o<`|64^=4N$rJKgVSU*yO0F*@ ziWH)&bj~EsV_xPthlGOZ29N#I!!GVczAL77=@eqFfDc-=Qp439v)v_U#&K}3CrBaN7(7dq5Ac21FJtSvs ze;y~3s#YsSCu0LHvXlv_tf?oy3#^Ab}8Xy#Yd0EN|-dpZtT*4(4SJPM{=!kB>)W>}ItoxQ+~mp%=2~C;M_- zj(f)_T@}R_uV1w#?MlTYytu>d>sL>Qmue-iyW$VNxc>1MZ`->2#pC-a&b#eKGyU6l zADi{Hwa1i(?QZkK&tD4$>$Z4$diwhP$G`sSsn+Go^VpA}E|iTSMEu1s_jbTf)@>*B z{oQhRf9h5$Kx9Nb+%L;1AQXS`%XicG!c%^Ab;TL^{Ie@j;A~zpK)bqme0qF!aj9zg zJRPSLe*D?z+jUzC(r9QeR7mmm)7S4$cl2NXS6@@q!y!2b)8MAja4BLo1gMEIp=U^< z$6$TN6p^|mCZFc1FN9L6h#8i}amJI)QYuA}cow}HChJl@p3ci`DavJz;0yGq8FJ1c z0+(Vo4j4+IlFO&#fda{qWhO)L(Iy0nIZoCtE>VIBJV9|j40dtWrm@dl=$HT$J?;;i zuAxc^q3X8YFXs^9&F*t8oAdCrYIn(@rixOgr6wV9TCLiak&O*hDWyfdfKv#RsP(FG zcCynl*hOllMQjS4Ea{qtVlFFrIys4CcU5dIIwZL+^J*i3B?t*2k(^dVS1Ls_!AONr z3!1}xm}WCa6D&x524s_XatcGogbmZdKmT{Mg{c6oC#+EHl6 zIZ`I);4{LmyKupiOfp2kY@F}M2`L(Hk5_Uwz#lrvCD>zTVzGJRBYmFFs5O{ir%UUf;ek$^YUv_je!0 z#f`gNMQQ!(Uwl7~F`ikZoMxe@Pie8SKYK{ZT8EL*#G?ZUdK?X* znM+b=$_X&Sxg?S(Z&F=#lm#Y<7DbMvRLDiZ~C6kO;yxkV~z zjNNS7lmN4MxPJ!1Da~9$iXlXsVnzu>B%u{V5Xk=)?=6dtc#JtqsZxX-@;J<>0%zOaN|K=`5l48P4Wy3%QA*2>6(=;v<74)z_3IU3jnUatLXTUjSC4i({$za1WCK7pF zmNetyrjXO@ri@7|&2nys4En z+f}(~Tg*9m->#ZM)0mRCscmXR`Q5jVl~{4$x9ioHpWf~tPu8aMX|dJW*?Jt zj!AYroU;vOwF-d@rU#DSeRzC4jY8;Ub|!m)A3uR|LBi*O(~1|a6HOPDPuqW?DossRZ~doVX~$u*yo>Il%@FU zmyhS;{KXHp*B7;mHU(&9bJMk-Uar@x)x4NiGT{00^5$l>dj0Cn|MKU*dHAs3)U~zA zxG;>1cUDPwwXWX0dGqtH-rL1}w!PAXFp;SyBoq1{{#!rPigLy%1g&vZv#YJ{D%`D9 zrDP>UA;`Kex3VG$q~e0JRoyUAABQO=zxd!o^Z^GGLd-d#F0`>z2yW9zfv7kwH5-?i z^3-)r@X`7>+LQ=&F&G~*Bop$gTd&H35>hHw0$x{DRSC&SEsL(!7i-xTxN0Tm30NYK zBp0P*0>q|VbHqX_rLn9TCBO*@$$GLhRUBT1>e*bR&r+;>jr1<8$XNYyM2^odx zQ$(!`ic}C@7G-8p3!XUy?(Jm5WT$a*E;C9wQW^0U?w+?%b0-(!Pj+% zB+G)36evTE6a(LGR~I+kVR+7%tGeQXD48OQjF8}s(&aQ+LWv83WLT^vnJ#loj+)8$ zu4jVPWlJbXDK_hspJpv;V@?c6p`@ggA@|8LLT{Vf@pPQ*kkKW-RII7X-FX_a7nHR* z;bN!5dE}CIt!9LdgRwq@7?;J`;HPO8$T?@zY!gIX$_O^cIE9&KBACcXhzZyA70cqo z-Tv`qemale-aVbpKDhj9+g)x}K{(z}U{F@7X)9TwkLm9D#Sw2~gdDGT>!Qk{AQ57u zgc5F}Q9{?H&{FP?%ddX@cpCljJjTUsnc zDt~&p?W&FdqYOvu17K#tIy4}jN82xPT=MZakH#GjHqK<+_bG{#7y=o_8Gv(&G1|o% zU|AOEF;5{_NSOndkTHAfNR9~Hd1A~WsPv8n3-&zcz@87oWbAnMF45kHqf42UIa4B; zi^=+=r4mfvY}VJ?Qi|BF8ssz+QZ)rZkh;qWnPR+=VpTFqV}i1+2_b~azs-MCgAI$I zNEl4kQOd!m6f*?MfdN#Eua#K2CCZwWD-M>0xwyLC&i;@j5T2cjt9n-z<*)zd{_UGr zM5KNmb-nc&*WGoqZa{>XL*|4^Z6=!{33JRT=Fs6b1+q(tiS?&EV^YNdsXb_sSK`k(#ehpTm! z5dqUn|G0Q-jW3m0RlHlT4~PD8yMB4up9gn!b&*nh`1tbfekhrEd$}S1!$0|tO)xP# z0Km*eVyAKX_;?}#i4SF=#>G>{NVG*I5^% z9Cf9U<`{qi=4=2^lBS=}La^O>x40#_?1Br~5rQ!VRWRo~QjtTZ$U=;ap?6WRf~pWr z;zdCze||cK7$5?&%n4=(OIW&#=I-OsS;J7UKntl<#S%K_Q%uMiR*fK-Ln1a4R>+I( z)#3j6@!@g3+C_vyAQRF$OBt1tL-f2<#^w}ba7%JlBoQn!A&{ogj(tDZ)q4MQ+Ne&{ zTx#8)#>=bja@81XKb#)=X{gy|8hqPT*Xs@NZ0Eiycjx)(Fui1?h^#1E@8U9Bj!1(#+H(z}AiZlFpdb)pkXp5FpahMIk@~d~>0)toWt8c&i?qB-Z z5BKjMfAitx^(U|Y`k(zalDysUSC`$k><%xd=YCWb`{IjNZeGkX>9RUJjmO@6{`R`A z_;Eai0Gqb`{F6_=`tH|L0z&fhbdD)+Rl|{vCICRCm{0M=^c2aiY;z_h!k2G<^!4}O z?$2k&U{!U)=)eB%e$}Y;MYT+$(xoW$Z-4v2jA7SQ>uvWkojyFCUiO}5^3$Ju@&5bw zKX|p>yuPIW=pTP_KAXd{8O|={JlRQcD|16~xm8MQZD6w`==wNHj<# zy>(KMrYgI()&=Bc-mU7os?D-=ZK*Ul&66={|GW(65K>B*C?#6*Xj~%v>C{{A%;GR+ zE|j1uMu;R5icAUQ3^n6QGDcGL(I+!66lsQBN)=r|l_IgaBUA%rh{$7zk<877+^*Ng z3?IK41t`cQ`VjN9guW_^l9u2?4F1%gDaANPKuvK|>(?Y}PC7GCB`(`?lVi?K0?|GP z$aLFm%2N9r<}nixs*tNym6M^A0#djvRku~4 zC2iNW5Zpuuh^63#t`f^t*NH+QBLKo@FGSUrrBb|TWQ;&YqO;~iB4w1&bAL)9nsHes zON@*TQz9mZj3g|%Ygf7yOvs{;IoZoiSJZrtBTD^zI+`#m#hZ=p8ns(Do+pdb zf;;Cerbc(`a(#dJh&*J&a%KraRVv8K_08`3c9p2#-fZq)9vA1e(o`uA;Bv|qzyIp{ zxH#`lgyg%ILrV7Qs(aZV=EZ*UN&Ukg?21CpX;d}s)~eY`p)z4~HkJ@b-rv4%BF;)F zXUy%@ZBFsm-+%Z1cw$n{b`AjquR=1MA*aY0$rwj(5X6g65fZBt%eRD`5)v=sfT+wL@-zkhuBf5(d=%Jk3W zMT1Z9dtTH#fZy?=DFMR2AYSz5;(~lK&@?T72QOM^$>r~OQ3Qg&=S3Mx z{5>x^1Q-5qUX+V|`5iCHkka4tqJ=Ee?|D(qW&S-c%26QZzvV?Cr}%qbv@BKlJuh16 zRbBrJ;ziFVga4m-(TAZ~|DG2u3zGkNyl6jl-QU5BHeIR9-|?a`rxrI0E|KvrrRvi9+&Wi$N?2Y5)Kr07*naRF(uj2Z%{gWHN)#2_fZ7FjFLoD;F#P2quj; zG3A^H5`qbUlVFL72`F;HGy)fpQs$_tQbsxl5=L)=cUmjKcuEUHMFQlUA>|aPS)vay zIGO>S4;XcSo~58UCnVTybtY*VmKbxPrI1xfd7P)RRW2CKWsG@tkV6ohV**MMX;@Xf zy;yO8;bk#PGQn7%z4HLl#0fws&V2Nes^Dx+0U1(`NU2$DA$4>~QE5|Vgg}nVyhvR{ z7XVpGS&K5K9J2xLQ_ey%!U7>V=Ip`I6a?}N;F2-U*Xs=@X@5Fc6ALV;lzwr+dk_9- z`a-Z)6qNEna`b@-Oe9a^NHVRo&N(6hL>OnUG!-lYKz zbJwrAtn#o)mB$R0W?J$8D$t=#`AeTGmyLW&Rg5}$H|4| zXcp(XO{2J2jH8@-Z>{%5DO|Q%lv>tyv_+xLFXzPs3EJm)S_Tr>s;S$WGma$F=ke&g zEsHAKkbw`w*fg4n?2Knrn&g{R<)h=s#^a1KZr5GG#O$Z4ST8Q_%`qmsUG3&+0wl?# zn39LUk--Arzk6&qWmzarXbe7LRI+xnb7!OJMv;Xw7 zLeoM+RS3#~3KU#q$O&DhQICq12_;LNX#KNC8SDDl%orIU*%RA(0}ZoMzg#h2%(Ml2j1_ zN(jobU|1^7c~Xj(6;qtl6>3eYM$~Iob%MwsG~p&qFNY8@Gg#)MJn%4c_6PJsY0w%J}$7P%CQh4NB4M;{8arFy-e*S{EtC?HPA@J_6d)swRAv`vDLBty zhS4ljKbdv6mJ~$6h@^{kO4Toi)4Pu!4le_fjLEEoq`(;`%L^jmw4?3IQP{q{3r7+h-!lc%BX~Jwfy_oKB~hEyy&v zo(aV=CpiPBk%J3nvtAt!M=3-hmB`rDRev~zB{PaFhwSluoHNo8VkGK3PS(fvYDIWP zq+yBVzyELl;XD}CDw{I{nnRL;Awo*gEHNRm-q9o_L7F3Hgld*apseiYvxn&B2#AR! zPI(H+`lxwrmQqYq$z=QfiMgZB_ZZ)idsp=vP%(?6e6T}*bipL*=A8{As7;teV{;@hH+ek zlxCb5Qt!kDTfe<7YF@_j|FF%%6n*Nt#`;VtVTmB71lf8g1rLy;&8zigKlKR-V=U)9 zo<_>}XqPnErfPQ=TjP9F)EUWmK2u5-JDOl)CS_4QK0j_YYfQ`;n`2%zH4u^kNz5sS z!Ht=6!7$}a5ONFviBnyQBKb%KpUmu|E0y3v4&FIq#`8#!%(EGWsV$4LtdP=}vS*$k zMoWJFt8cAKKe)XBfZyCbNr8Xw$DdM}b4omLiX_E2P2+i*>$)rol~b zLe3cYh&Ef3+@U|`#2^Gt6Cz_&5<(a6<}k0Cm0iNqVPCXm${At?0H6d3na|V3W+N3l z_Q!%1T8Nxth&HAWA_8Ls!@6k|3P~iVDFiUdC(MXxIF6KQlcI4JG7(IaOiLl0wS?pt zy+V>g_AKoOFQ|?rk;G!Og-|})esK($TcRo|x7Z2_)NC>1=CXJ`A0#dR_Nh?FDf$>w zN)RCu;FKjPkb#_Ln+Pe(I+I{sOy2vLC>0EI%05MOHXuRH7-txQv)(Wi#sp2JHG$XU za#t{st5xN^nS1x^zkWhp8JIqM(`rQ%Zcon_o37if*WbQ>2@!$k48+<8yX^nnf8!tj z?|=QjJ@n56sI{lve{+Yet=N>~SdkFy!K#rARk@aEN(6i)Gw?IIL0 z)^QZU+f}>vgod27D%!F+pPxJ?1Qw@&lK$1t-#zZv8OyqCZdPT6cY*k~uP(R@*88TA zHf3)oPJnPeFE)m}+g>M_Y>3t*H@UmJr_0wXyTlw>$biggg-ig+z_^Mwo{mf1Za?0= zf3?1RbNS|B|8B?=p_~b-g`xzx;BImughYanxXh+$8b+nFKIF_Kt%_!zeSjpm6kO7j zGbM^wm2RG%Uxs;<44Z2GaesGld0Qz>BB^wp6ZYoeJnyYBqR=5`PN`(Lm?efBe8|}- zY#&eO*RS60s*6IkWlpx)m-g^?AwK2G9jFM4AN-`laB??@sb=@5wUpxs-w>j+l z_uqY3%yN6P0)V@ZN3Hbhx3AWlra$d@X5Gd1IG(&U7$H;4B&QT@h-F176GBR!>23EK z0c+8zqMOY5Wqf-7;k(POHR()p1=|ja{`(; zA-tdGj5%ZvKyuDB0g%KgQsl-ZMsTqUa$y!115&|eXAa9OCl)#j|^9cYW0zm>PGvp+ZrYLgu5j{c3j$)SHd%{@;0uge|iJ^~HP(cZce!&n- z4$~4{NY0a5$Q;7rfIx!G5kO!Lk%Sa$UVs1_tw{+pVaOpTArT4nF+hM)s2n5V#F%-R zgVtC#?PPrlNRdSF6(SROGK&;7K#DOj&Jd$23TMWIaySkVJQroHc_OZC6k&mo1Q^_s zNK_Qr@z^8nBwV!R_UUXCEjdC4^5(NQKmX15iEx@pfb;Y4{_0}qY#$(5bEr1;{^dwA zTwXUBpx_tJr~9A(@}G^pV~iotN;b7@K}_q5>gnl33GQ~K;*kZDGB8yk!_h2@k16Ii z*RK~pM%N3$!?KvkK0hso=b-qjPp^u)T(Dj|L&>Yf=ERDpm*d6y;^pBR-LaD4aGY}H zXOliWpKfp0+je)cT0MRL9YA7I7L7nmJ^*0>NrX%&=Wa6I!tpqt?R3#Lln`A|A3bHo zU?Xrnp61;}2PDmtNdTB*w`t9|_~jfEFd-LDhx5ouQ+ADs=cX)QU*6WZ`Qqxcc`^wd zMW%~_k)kLiCc>DIN}rGW?>~O?@$i=+ndftKi70bI_8t3PaPnXx# z&6`_B!^g+{%X5UluXdkp>x(ZxeZ$23?%Q`i`-6XZws*4`m-*zPL0q%w{SZw|L1mq? zr4%Yw7(WYz1Xu_GAuZ7e#srasg_NW9K5~Q{BvVvKLe04!GZUxtthf?NxUeY2Kdo1G z2>>8>u6&cOzkO^RGn5}BdEBCv?y!(=>z zTq!x)DHAEBNZGmU19$;Yl`D9u>5vA{C2)GA#9p@o=u?@XN&;5 zz1fZPRCY1|2-e=;-(PL(u^)WEb=_uwaT+IgcHZ3o_NhMwDbtsqeD>;fCNUIvOqJZv zczg-j^~b^d@Q0sv-HI_bk$ACv{j0D3W;hu^^fcv+-DymWS(FC4&dknOvlaUNhmR%W zb)yIbiO4Z0l0>1nj~9)uYwdkHJ9z(b*j_Ma-SE6TzAP5xsuN{X`G8~JzZ`8L>-{vl z6fWxaZ~pq--P5${VhT^&ZCAft-`x#=^yAM%^aR+=`buc&OyGr7TG?d*LXW5Y!{g)K z%e$)8n3Ngp(=wQOR=l9JBG^H$|LLFo`n&skpUAq?|I?rUVt+QL{=@~jel6N6O3^Xk z^Dqfs)@_R3>`#jCL|#xASih0NTixj z9v8D%lLY6pU8dP`E)gk5LTH$5?=w6<98B*jt+gO#na0U3Hq46;Aq7VWlRkRRNm&Si z)Y^a)gO9;OvYC;HBsFbA2p|H|7*j4#X-N}FvvpJm0MeT!2Ev$#Hqykk;>KIdBxXn< zRkBDnf{O?_ZmMWvk`44idD`uAjO!h5aPFAWyo8k@cjJn zus?WX?(g62uHLFbCz6H6Fwc?|QdFCEcOKt`>|6{NyX~<*#t<<}E-sEQVX^S?csIxY ztEBtd)hsy=GyK(8an%Zc-l@BH_w+D{Q~)8_fC2kJf+54OU{D9XRl|Tp1EOHdk{Cn{ zXNJ==oprYI%CT0Fsdqh%ld5ltEKhf{N}qNSVCF$$PG(DvQ$v z4KbK$Dz&Og_2j%d>_v|Tc=Ns$tUR=)sOHxB!AvgG{UKDvB2s~@IJDE_ahx3F z$c)3PEE$q%@KS3e1dvj~uRh*=@%7cS%aiL*j}MPNr}XsMMzShn{&e^0WVO#ti_4!@`ux?0cZmUV{CIWqfB)fk|M;7Kef|2= z?%)o`;o)xhbhEc{TAbi!C6ta@BBP|9@uJX8Q;%lST5`@ASL=Cwc`-lR%*W$>%2`sO zr4mAVAD#2YcxzpbiDb}96a}LUk%JK7;_2zUmWmg~WrS2HP8nWao+(WenGX9dhL|8~ z#em1%cDTK154-7b?2iZY@#@p>zI*ll{WWEg{`LQOSyyUSLM4@8JZ1z)DOygLR5D>? z1?Pf6B;#a9Z(NutBBw+b98y{?n!40VNC;uH!#MfDr$aZH=xqXq3N!A zrzAE)&FZRYbXlqptk#^Q3;?4aTyW7RN{~v*B+VppCNKejCrB~@!HD8aiCjos)`iJK zU@2k(o&s@%KmttvR#>70SljhN$V?~!xO>>Sj0oZUY&iwv69k`qO1tf7jv>VK?&kK` zO^``&ar@XFc7somBQgfGK-6CFh$<3Ek#k+}LXnfpMZL<1V^$<4(GRI;Sh-APL%GN? zyXZqqd6>Fku-A8oU2AT3osiYXkG>T1XXo?ln=1&oIbHwimtV%QyEr*ppPXAytV;<) z)v$+$yOYHeNyU0mm5N<#)>@SneMVf#kUt(DcmCdZ%MiP^E1700OC2dCM8L!Tfl?t$ zY0V^=$T>`YI6qxPn*y;95BJ}_efV(u07$J3Ibl;~Ob#+o$*QHUN^xk1f>%s%Yul8k zl)FNu{h_6dPzL8`b8Gx;Q5!!R7Z_s%^I><$6W{Nr-S$Wbnf$a|RkEgSm%uks!~!&ZzDy)Gu-bVUw?N!8GiMld;jfGDJ?i!?-TgXU%ZeE z2Kz`joXwZ(*#&1*Fy#rPOexDYgsNU45x@H4n}7cL*Uw)(`=3AmKY#mA{|mVp%&{oR z)w_?QF+juRWj&v<(OM-5r{wfR{^$=DPe0Sop4Bg&G>z0(*ISoCNVcq-?RM;@gbWvz zcKw)*8+$L9Mx>df(M*#|Ax26vf#gF9F=en^QOX3P(z}#H7ze|I+O|X6I-1FgXD5O9 zUEA&-_s`Fk7f;Ihx|pxzyi(Cbh`G>!EPi&WH)qlW!)SsuFr~B0S;z{3a6$+*T9wn3 zCSxHZ#K2fi1Y=4FBm?0B7|@s;1r$oyY^--ArbI%eXw_845+8z~iX%IlH2`pXY<&tY z8cvx~8Qhd{>b-}A5`|ELLIjAM34}OWKp-&%1fV&E5P)W2K}lH@d^7_m%2S3Q9SjmP zH6&t2nu8A%`DS&|cZZmQb5RNOZYreAF+>u9k>@X;H%%j{a8oO&#LT!Pkn;IzwOCe@ zYwM9or9*VdlX+2=Go%8!fGPW!0;ilrPBArARhG<#PL;yBdnQP!@-R)A7*56LV7zf< z#W+GG+4ipO_PLufM`|ow{vxS{Mpl={OCuo-hTM{ z^8 zH+n%yrK{|mcQ%cwMarK)yA)`A?p<%RmY=_zZSSV9es%NxA3U8eQy(U&k;&|d%~^4! zKD*r9-yb+CL$Yc2jV^r}nz?@Wb{i>nV^3H(9JgmrHk{;2RU~IE_&DsW3sOqv99Nhj zM#zO|MrS=Sda0bT*Vp?DAXIg}+&skXu^%@lXZu4>Dc_vThw(5B!$1GiH$D+WHktV3 zd`2QnqnpjhFy@|jU%mg`vy1il$;tDl7oYBKKEH6aZYY=3I4M+y(e2 z{`&9!@fR0QXXVVFKb4HlDdQ(+WfG)Nyyo=wcK3rHG>Wn4VGJQBU=jLm(s}0Eu+~iy zx>ovdcmL#cezzMbrW`#pY&?dTc@)8U@0=edXJeiQxY_mqaK5UF5@a9_k`P>Q4vvpD zFv$}49Mim1r%P?S!~E>TnNVr4ZOFj7ZW2V~1k06pda5Z06M~=mvy)}H;FIwuOHF_F zv(GqEu%XeKKt_O^(rBzug>^(Kl}KU?2?L>-#Kffpup9*zWD#pz)3C=09#0X=A)698JJh?n*MI(t2NKTn@mPw8Y3CS6948eM1%;;=1 zqqim;_TxBA-i7u!AP1xhsU#VwD2v ze)!|hfARnR_VVJVAyFZ9Su`)7{cy1;Z+GuwP61Kt%thd!D^jPpk2wAOAO5BfK~uDD zQd;@wg9qevvYrXj6j~rvoJ~W|g%(m;H#px>Oqdb^C7$y@GeBk_3Nl|*&0G`}%RtA; zR~qjh9;^w7nQ=-(jK*fjQ=GWuTJl0kNd-ry3bt5Pii_Ka`?6L|-DoZ9h0GaZA|Y7s z%xbQA$n*K!MSpv@BUBNBvqiaH%8Rpw4}R**ywSVuqbzuey_wSMZ?=#aMPVkBV%DWF zc9gpK{ORYCiI>kln-yypI?cpq=ij^7d`_qgKw^kxsfWo-qr16%cYF9SgpX&>$jcv` zZ%*`jsbfk=NjL7AM$L55%<9eg?1$ffS{1a`vMxBr+#g3j@%vk|nCaE576qR*1xopuzh%jRRv4Lr?|xG*gO&ECDcv6#F0+1!iO2 zU_&-30;3TClcz-LN+c3wSxv3;V-zBd07k}_)dVKuXx37lf`f_sa(7q&$_#o?=$=DWz`au;{Nrm|JFTcG$ zy#BQBXs`JBiZKny*2~6@&P-;$EbFRt&RL7d$b7NzlijvG6V*7;H^ZM`!jFa$Ts&Eh)1K?%a5r%V&XME6D#m6_tyQIR zacm#X&KgOTB$VjK zu^Zd_n=h{(zSxhqg}{@Oxewvc8YOTyPG$^Bscsjh7}w|ZWW$>`A1;=wTFNP!Qm5T` ztYZtqgeEc2;Nl}1t`0Avf}F>Q0a zBP~)=FU0$DV4N*xVzuUr0w?c%NG^IDJ(oNs@C1S8W!Om6H)FJv{_JO;O~D~D>r>l}i6lY^Bp?7tfDw`+w}UOY_J-TZxa4jhkMrhvsV>}r zA*51qbHobP{ctEW*Fv@X$xdlm*GP9wk883z)bKAi4-d442XnM!ODVb#e|~F z=E>xV3);D(ESY3TNJ3x~iIhSjXf0hGEGY#>^zB0zky>ZGk8j`J-EG}^ zxk3VjMn-`E9oz_%Rn6klyWOXo;3nA2XJ3AGlSx^~Y8X58)Qr8J^ZjE>iHLzvB5d@9 zqJ>~oBooGRR%tDc$B|-{Jas8Vz((`S^L0_EyT@KgaXflX*{o26r1?r~r5H`l+v`uq zD`)u!vZx8L5EMKug|bGD4xRFx0{ATV9h`D}JL^ceGeQ56c$PL?mvzrWC@ zjL7YN_wnJ?+xNfTx37lb{bT+;i3&3(Id%JE&8V&^{mcJ$k#e-t1Q5AY$!Bmxi+ShbIHh2t>kS|#q}{PI z&Qr>it_TT`C;?J1ee90jq4Q4HVtrOA$&dF#3?LLk!YOjj0dtm&%r_MZ>MijuFishR zO}yz-EC2usK}keGRC7i-0z?~+NLjG4@2&S970)sH!P*E@KxA?z=5Dkx0TVnpV~ha` zA;r$wVe&rG!A*VFx!@8+B&ehijARC!gOtcHQ2|;5m5C{$>Vl-8MVUxk%;zLIpG=DR z{&owQ0wzj`stTJe)ier+3S^n7@(D(igrFygOh_dtQo;ZMQmLe(88Mj{d;pgN!IZ#; zV1l<~uRpcF`OW^fzuSHHp=~>?D_Jfuqo2=}7QF3tE=-7Q zyu>kA;|zcN;tx!+qqB!? zKaOKrGQwh6*Wl>y{`Ku2{mJ)E&y^6=SrXB{d$1JDHauY17Cdk2D0Rw$3(_{sw$lza!x2!v-vuVAeEpj zFBbCRe6y<7KYsDk<6(b$|J~Pb|Muv=wdw9S?uKaeoGU@R^)C8S@YSqjGR~LSG*C65 zBs3L7Hv$#qtf}kp>}=(2msOUUB=1R*Z9g6Q_T$ILuU_@<-VU!n?6&QgEx?Ge6OOE%F#*5Xca1Ib+D7p!oFZnaw>g5yPNqe}1OQ8tH%jFDoEU35iU$#=pJWeslHs z>2Zr-S&CC@&K4)TX?oZn+o3O1QS!2;bqsV2&g5b2`~BfCnqjrB1m}mN2O@m(Opp+Q zu_i{(80eZ)#S+NJhpALTX>w?HDMh3tFz-X6ffXQQOeXlp_Ba?vDL<(e58Ex$*pB^I zA8y~?@5kV!l!cUxW*@j`Ajpt0iq?;w z5erjB3v^7(Cx$WNV$pC$Q=s0*kP@Xxkr*=wiG)SK;8RMF0U<$3F>=nL50uL25r_;i z19D@BvZjps0=b|ZQm%BN74L>_oLnN%4S^)tS%ZkndEFlRRa3eUgC)Wvi2+3}=gsD% z^teBLR^{A(ynB`6I8A+7&gRv+QkQ@J7k~NtZ-28LA7>lhR8$v`xL1nTvx<;B`EWQM zm#gOX_O=_Wt{G>dF0}{|ZC)*#w;ylA1T2gBYC}o&Wch=C`Q^8Fx90Za79*FGW&wo; zdie~3a>7YDuMv23>EvWZNh)>ey*xX6W=%Xh(Mn@kEAJeo@$78jQykiWq{xv9fs7JH z335bEVoWFNGbObYEQ1$Jlv-3;am6y>1zjGtTgF%*s0$h6IG-;c@7jm^*2TyA` zfL|@t_5FhjZeCYsn+vMOdcj|RyZiay{rzG5;%fJ+&TSu#$KQVSVcYh|c;5{+hcUVs zGYTRL;^MToo(e`e<(w6oHuI_|N~vVRDWpARxmH2|b6yN1A18b4#!uH%1V|W0>&D4v zLI{nSWyT3Wn7kvDV3ClgOd}yVWndg)ie?H(6Y$I=pvWXc%Aqc3*>GCqgt4>f(3wP% zC?JzGjiJz#A}2&^#TErCB?1dmY8`-<#jK+1wN#oC%IIJJ_wUV$x$!ZiFt+*njd}G& zfAfB955cEFfIfqr4VIV z)MZgBP9@Fs-%P1}=*%#NSt)4&KAD_6KrqP=i9*tPp>@9v+t(q_ICR2RsZJq z!~Ql`teDr5i3FL>i+N5Y=aj)Kt|`Hge1<@B0tg8S0!i6tB$7)?5@(oGP9%FzfHEIU zOoSwv6Z1CZ%#b7-a)cmDiG&KunaHvvvItT|AN$@Wml;J$2qA>|;3*N-CXz))7$@(% zM-pZ;&N*ntD9MClMzD}VB0fUK!~`-7IggWZ^Hnpe zbis@L;V_%crZmjz)l#2sn$wS;J|UI5C^*i){{5BIG-lX7`m6VQ!Vq$H$@yf~oBFV8 zITLN$u9hp?5AET2v3hoW^aT?e4O8G)!wO*dgYB5`={h_Z^sTkcJJ1S^d zO3F|x^8E7RZg)(?Yt5ROyt(^Ol_aGcoolyugFT*|)tg1JnOCz~Xf1O}hapsDgNQ|` z0n#uTKtX^@USMX4AaY6&xMWC2K{H281P32KK7sAs`>LO<{PHwlIsN>&%aY~6rphdy! zLP-$7h>gw~Kbml}KOBZZa+)$26B48tJ(BEVaxsSFLjoye%n@=T5K{slVoEMUGSR!3 z7y$w#6OWuqDiBAha$Rw$h%OUBkAeXqK86U15e|@)QV2Xj9&I@EmQh&EwJw2E$|)g8 z03bwQLWK~63o!=F=uAq9B#VujWdj?1*&i$kX}vB9F;8C10-2h!Dm9%KbyEb!y;3qI zYrKou&$NE~<(I$x?QaX4pFWwLZ5krWs&2l!dR;HYvFibFy;&(G>Y{nR`Xfl?&GzQv z;w%QgIayq8eu7>d_lHma_6=Fp-Lx%~zP`Oq#IVAjUtBB}pY>+gY?i~=5~S9eW>%PZ zeEH=0i`AdZix(M+b~<7jfW%B9i zDdsGb%q~`1?2mhZJYUvli<2VP$-uw+<3E3K`Xh>J7~R+3T>bJ_S6A0ZB($j{V2m-G zUMz)x&8(?QdG@5)Y|5%8x+KSbn9b;Cm-6Mym8>9P4w(RDoK;fS>s2|c>q3i|Cm&)a zie#jOKuQRNF_{7h38s-AkMZ%)Lq~SEzz5G9l1Qy~)xmSKeu zO^bF636da6U<50%0L4KJ2SE@Z|NSdJ0vJl9$cg|5wqe7NfWV2NAdX*wr@r{yv!|hUWA}VO zrb&8lDjGEF@xt|eo$BQaM@5|A91%U<^Nx4D;~j7NmH+df?7eh0MTHX(2wHSTY>Eaw zpvuw$AQTi3l;cf(>zg0=_P2h=8y!92uP43A^-qHL`39|GTucISzqH%#c=nCP}PXIn=jRS&yR2!rIb5f z*4@p_-6GI?Ac#PRy9W?GA{^oD0Y(UEa7Q5EK}2{&cz6&*+uiu}fBtL#;{W@Xb5}+2 zxly>A8$hAXtp~dAb~|r{+M5G$?%Xke8#hh>mMT4LD^<2zqD-}T7!cd3hKEem(5GU5 z{(HXf2R{6jnf zeE!)Nu0Q(7g}1%!+n;}Cf9>R%_q^wA5C6fNzV_5t?z?>6=K031^;V0ro1Q$|Zq$zH z9IVgoZFeo^BLK~BL^x~$&OP}|?~T*ZRJ8QD^x(N|)oFVEx$AFy=uK~W>l=ULU;fU8 z;|K10VDm?R^!djgzjptn^XDJ1-~0UUHLst24Ex?m1Ugw5rdBDOy&sh+7*pvCh?J?y zG!?skh-yG3m^gvhJ-*ufCvZ+B?w3mK`KZ=N-~+!E&vH(2!lSPm;wL+l5|ih7-CD}a3AN3 zL+M?2?W-j}f8t|RSa?t>TttMhXX($3MC@K zVG&MBAegtpG@bj)AN$d_Jo=Vj`9J>m>!-ccNvI;Fc`re0?7_0#966(7s?*$h4+l_c zooaEnT2y87ppu&+ovcz+iibJ;($VI}{>l%(=Y1b?Cn87)hpHDqDHM>52n7JBU=l4b zFIrApQ|jCT4EMb#-u})9-v93R|AW8(Yfs*I_N!0&m%jdm*wv?=d+PkffNt);@<3od z+8kNP>Hf6OyQ9s;-gi_K+a8x<`<*lspQ7dFlP z{wohaHedYm7yi}1{mq9iKg4Z&;)&;XU9P-v|0n+Z$G-Z^mp}cPXWU>;1Z&mqepD;W z0TUG$Y1~80rs}*q^*)`>c>a1noqhM%Jn<^0jLB-U&ZL0QgcRGOxC4;C^ zKk=hKe6*de-LM|rLl6)G?hzCQf{PslG|i`kKwLlyLByG$5t2^>Ac9z>7vs-hZb%VE zL~i4CH>b(X-@Lx0HxR_DJk?c^jawWzDYp!F>)j#(pnK$JRT(ipr3zGueNzc{A{YoG zTw-}DbO#AIg5l)5-}|8l?tkQe`-gw`#_4>z+pFl7<#c~qHX%{OoshjWfS0!CT5AC6 zcDwJhKsTiZ#6^VOY(Cl?1*LmC+HTGrO@H+#fBNA^A9WHE1Xte<0saYCfv)8Y}TIk7N_{jHNx^RDJJ9m81%|QFXkACbUANh+{ zE?*H~Hs8(HrP9%BF_#nFNH=Y5Zf)+Sx)GO?TFlX}q}`N~H=@)v*bqaOp! z&CVTP3~iS#-2WFo@_nHvu=ecrtH1gyzd7|Q*1ZP&FK-M8MnnFY{+8E!&O z02nGzB7NfusZfCGL%2c^LI**?5Z)j_N;=9+r<#%i?O_g!fIHUhm9|Bep{lQ0&p9WI z2w=?L!{_d&yY3O+)LS14^DQISt#|L;+}%Cg+${1VrIb=iN&>)i$B5ykDh0uud;s}- zM3~^pn;!kypZV*LJn|5t_ul8;J-l0o%@oXSwy?SP8z(1iZf$NiPEO|DEo^Qx1+ckW z_wc#*-aDc{^2kF!`!j$2%9|cF0U`t>kgMhq2r5O90TzT*63Dm=`e(oYqeYZaX7k=d z1XYO6Km797p1b~(N823jf9OB?=*ctN-~IhRlq#S5%$HAhSFc^Y{@9nEo;I8Be&2UL z`NU)UcG~#Dh4X6IPup_hyQ+Po7xyPEjOWjvN4Y-3k2cj}ckUc_cH{hX;mubb{(&F( z=pTLgE5G?Ke*5XCpWf|GKl|CQ=w@@{TEBAnP49g7qo4i!XHItZ_2-}b!dJh(k(#>G z3?gz=wwtL)Df`&~5#>C$qOwt*?)}uzyVoK@Zc3#Ppoi0S5;;1mZ+p|D&p-FPQ&dAH z3PVMmdNkEb$J>v7|Mz_R+unL@H}9>7S$a^2fCvE!D1@j`MTAI8EGi5Jlq3Wi0V;{e zC`Kr`LqsU4-3dyh4Nr+akWB(3WRZ`#g2Jy4xetx2Q~QR?-mxqIaLBdc4_asZTuhEJZh)vYDm} z$4A?v&C&7p;`!}^_h0%mZ~yjpyzL#k)7`E&H-o!_5*fx40--2H38f0@LXyf5N&Uze zD-SYA=puC@q(B5hm9)(m|E3~HNsfR>T5TTMUM$|@H(Lf??ufvCZhIpllo1RHgs1{{ z%w1-e-R%1o-CQ*--W{$oy9Zw6uXj6>=-uYI^&aNo4m0;vYDZKuKtxq>k9lt0859h$ zNjX20_Q?H~qMLYxQiy4q9=`t#pZetQp7ed)P62r90_`2W$EK8-Gb>PNhzXnhJ{YA) zaW}1X+DyIK#d7?KAODGm-uQ-L6=He5sn&;mfTrpvDU1xe28QAVM8E~I6*+Yi5hVmX zw=Ev0o6V*F`=5R0`D@QT^x(y>KK|_7dowGQw%ZH%%#Ho?*B@)U`9uG~yS#tfm%sYO z-kQPcR_12cukEg$HUJTJzHpkhZJrcbSl|DhZGX+#77cc@5e`V4v(-%k)+{ifU`Y3~mu_O&U!8C4!1OF$BSkda zy)~G*_57#<03?t=*NA~d1QCF^2V{tJMxh>Y@xIGbIg+*uM};&hqfVf0hd_%sDkL0&GL@r?_g!`w0vqZ>Sw#B(>6JxVf>pBs0XRVGD7)Fsq%}L5bSu)j z1tPHf?)Sa<1Mhj~?$n=n=BclKsek>+tIcJ0197@Dh1II(Hk(=mZlC__9~CII8cu+| zYh9{Qt62b`0=4g2C}1evjz9l}Cp)Z8dQ>;f{6^omW(JfZvm0FE`qj67+l4p1<$;GE zc<1&=KKZ+!`JGRFC2&s3T8juyXRB3X_V75`D$L*%Eq!*`mTlGR`&l6>5{PaN(P^U> z&!3yNbu&$qmN!5A@Rf%iA^Uf{{rr?l!ya4Y@W2 zF)0eIhwo>#-p_5M6apR&Ge2!{+Ubr|Av!-ue~P$03ym52~` zL^zP3e?|h!$A=z;fS&1vfoKH+q#z<6_vME!KKjW0&wu4P2zrlcQ+w+o)>`OhQv`iB z0A-p?;QM{8L0H{XH!lKIJo?D}mmj)FN`ePUiSX3#!bF|ZF-u22{rN~G1QJAOlhPyk2TC{2@DkflWy)}s_MR(nMbD=1N2$j-2 zYSGP9FW-0Z&5ypJmJm=~?z`{u3)fFXO{HFW@Zks}3m8Nw;3TOUq_7YKG_7TVP)Hl% zt7n@##A1N1L?9p$!U#q{ZrMZ2pvd^_!RF-Q4~Y-G#s&Crh)|@Q7ulK-G&4~xDj+?) z%r;xx*a5VFhbsjU6agb5a5BfP$8n_!g;ABHH0yH<5mtq&<_B(B5i@glGbdBAGS2X` zAACHZTgj#}Ltx-p%+nL_z5AZWxOJM*6+JWP!LM zQGhT)K%tUFNI|XvscE>mWPtPEC1w^?T_fRdn#6q*M?{#Jxo7fEMBE*V!E4P>H4)DL{`_lMBUXS3#g zI0pg`XXw|Se(IU4Pd2;J!$^o~QR*ZjI=gSDV&T181a{pha3pz!y>~M`Iqmbzh}wF$ zkmjC1-o7~ly_*!BHsz%CqB?DKQwoF@KD%{0edg*@Uw`Hqr8>P7A!&fY0wG|iba(I3 z&8DKWOLs#=EhRuHve|65({%Ctxi>y||AUt=oIiI|YAHGuovLb~E+ndSjiZQElAuyV z#UWVZkRh;8l_g;Dgf&z|CFi!dVTojpXOPBsU|@pP<6h}ll-y5)$TdKmReE0+F7!)` zh?r-~++;TcKnYP*iV(_B2FYf;(bSv6)_c6mcQ}?KlrW>ya$XxGV&-wO-apr5ldbo$yj4O555&a76IL%qS_l& zt-A!=T|&%Tf{IWSkbxuU4!$XsqI0v|zIEftz88&cNtmLCU@w_-3y}(7wrC#Gn>y&= zwid?8+`HNFrtJ1@DrKq~Zeg*7UPmti0{~aTtceKBMbvT z6e#t$PM0oSymNIJo8Wd1Pm=3TJAd8GAGV*~Ks4@WqN1hb@N~#n3=vsZqI@mAk1jy?h!yZBM^WN z3(8;&*l(|cEyw3B-4_5sNm4G7syEh6f=jfuK;uKZFYCJGw2H$c&^kl}1|#NZ23IM~QAESL zPTW9S!)zAaRLZuNLb+x(Rm=_DnxTMk?!xi)8#idM9^U670iZXFfR+Gp?!vi~{m!~~ z>qTU$bl`ZZwa9K~z1duZC{w{6=5tU=bDsna-NVVEPEoe*EO203s{>G_N-cVPREr8i zkGI>S?dH;@b5p5xs+&@as;WSQs4r z8b|nRQiGN;&jd&b;5{->hoDBHkQQlX4mZu?PSZ!U7KZh=h?E zGy|P{hE7nI%mNY4UhqR7|B>14-+c0ul-?1nvZ?6N0Bnvn4j55{BK3ps|G*D@{6|m{ zSQ!Ev3J=N|e8O}puxtt;h0t}b97ub)czkSby*X&+3`Y@ERSS6UQ1Nh)Qlxn6r}R0b z@0$n|9@Zxji`dqw2X?3XnPHxOgM9CM-}zgg`~v{r`@whp)~7x*8-P%c-eY?-6+!_O z3F|hOHrtJTbI}dCp-L?dY)cmk++|agXn+MEq5_DPDo3IlnaZ|qr+V@H@q?EyY&Mf< z6-rsdAu{(+s8mW(0VPFKnF-ycB*<>*Ds@i)4Y3|2I z(^F4fO?36Cr>;(QIyr4B(z{hv5|fIksH%V+fm*hn3{|117KPcgnFvg^lp=u7GiEn< zD5`SiSV+{vhf)fs>BoQaC!hSEe*W>NpWO$ew*mzKcCFKf(<2Yw|KmUTlVzF)4jKa& z@d)<;iLd@MF+^ODh}}X-SiV$p&&$P27wSpb-)PsxnzwDyX`0R*PpZ;7u3bNIbMaP- zbcka@GXW-*T8g1NIM2Rs{is+M?i<6cYCSpGe_{9d-W|Xf9(&x}x6{U9l(MO%R2Ax` zmT3|}C`#*H#U0pG6`)MgI#jBtTsVJR3(OoRv(58v?vQe%^}ciGkB*PdPn+#gJ(@OU zsw@;jr6^SgXKIPP76U3HBwcuqDRM$YVn`$480BRM86S>8k<1E&Wd$=-OKlnCS`Ua| z!4l*$us~uU&NA~uP?wtyoiOrJ2RY1dV3A(SBO<1v(GkqNKokE87Bjz!@-5to-}#q`HPo+`lo*C=YHYm=hIoVm~{ZE zC4lqW`qMx4Q|B*U0wA)u$%GRgS#*lwrjL3yD4{|nL@B~GD{+u2i*mF*Qfj{(`ogu- zzPor~d*AUfltpCTH;Fji&E_DBY%9=fnLL7Ek5JW3Ef+3r`rf?txwT#Er@MWN*i`FR7BndtIh90o5gE(Req!UFE%^oWsJSd21>gf5|qh-)-bZQ82##|#?f#C}-6kTd^l5VbPStl70{Kvog zf6cx5zP)gAGWUM8(P^^@1Kqp($-ejAQYAI-3X(E6@4Y3UyWLLb&z+xlZEo{^o_p`7 z^StlY&8_=xw+FD@ZnQ{I*%UpRrc%mgnx;BU+j{-R_1$iE4|9}Krz#O{h$=-@NG+uv zZ%Ppf5h~{W{&a6sDVL6qWmBh8w{@zu)>=gs5=CSHRSVsbi^0qa-U#@B1OjKqO$O3L zFrf~hl%gXtMv|^_+%X(I+zsn*Zh1qJ5HKc`w;l0}03xHpxD;JQH|x|7t;FGud_9Wv zHyo=CTuV4!`8Y$ZmvPIg-r@)(;^k)}+~LkS0iGo(faNJ?T1uP-kno7>&%f}u|Mt&) z>FK8cyyd}%{^sBO8|Ux4BxD2>a0$lQXV)p^uO=0dkTr^1@XN#1$W;QsfBI{`VPSYlv!3ycMF^m(<{s`UT51uINy|W(GCfe}0ijHF5-qA)Rnsw6EmW3d z2xQBPd;tJr9?c^kmx$;RY7W}US_G3ZaNum|m_IL}@t~CtJab*p0r}rtue-ip>3KR_ zaak$$T=-hau~r?J>ftR8t?}U_96I=5AKc=2|EZMldl>GXU3l`xbv;+vc(H{_ImyNV z<}eHMw8o=q`=$pB_<*?Sfu|pT;(z!be-6NZ_uu@D2OoJ@IEb2OLzs(-)r`fO5Rux|@d|`_?_oyLC&pwtF}D);-+28A&1=$%K0#+#N~{1R}cmREv3p zd+)7xKiTbeeFCs8^?182MM|j@QDKomjy=ZK!bC8zo)J)ZM3m&}NO}+@!bxaRm6E&_ zp~#>$X0Ae^3$`qp5e+HHu<&pOG_ragK$JnlT5xI^T{4#JV3PY>vIL35La-zCfHb=Z z5*R+%(YLMmc&KM`JyHYAMa+IjL|WsUjO|N5ytEEnf}+EJ$q_Q$c}KtIM}D;gy+~sP>*Dc*$QH>X}^U4K=R6?5C7~>|EB=1Jo<2q z9P%J@4o`ULoum{2N}61yDvOr837R6J)LJ5RbWw1NsO|>P9pN@gBHbh00*mHB%9y+7 zoXlN|SGWA7x%AnK>SP_jR?DWAGKtEVmWV1vMS=(ncy=j>&H8){la#9=SxOK?Jcni) zku3n#LJ=~G>fo|d^J zL436`F4m2L43MyPb{G*1R-z5EGHlH!-2uK@CG++ty54b3imu!4@H*cCTrB_qAOJ~3 zK~%51!Hh!PSAS$3X+Ny{zT2j%%J5dmwO;>>^cKrVjkdzqFH5zp+EB$^t#>D3PKo3Q zjQA*p14|W=1>gC;cLOk>5D|0+B4ptK1tQtCLaKx+N|BKsx$D@WD22-814XF2uix6e zdUQGgbhF9`OC~rhn-Gk>XcAPHh~n<<-CaZsMM@(8t#v9|OU^81c%iB;xzSaiGTI(7nU{O^T*w4`%wZx<#!aYc4_bGEvD1S3e05Xuq@>~wX-9ycI zmt#RdMAcg}T6mDTC4@rE4GwVx0Tq@7pekep%mbqqHKs}rhDV|;LKKxO_8?zg*k42y z1nCiqQDVLbW`{#u&E1s*G$i*M#25ujP@zkpPxls4-Ca0CTay4#YuQNEGKmQ3B2`9S zOV*`fsOUmTB>~SijRKWH#a@#^OOz33(S!vGcxIUqqj+e^8Hf}oEj)cPWQp{!lStxJ zvc?8+0|@NF3?lA|X!}x{y>8U}k0Y!*K)^*p zRe0b?znJY^Z?tYu-i7=9dKp|`yo6djeBXRFQQ>j*TFy|}e80QvBJc?xbn8?C@TI=z zP=*hqkC!tmQ590ynwix)t`ik zu`4`#-T)-RMa11A44N*c0vS~%Ds$eH@e@0(N$1)!Qq+brZ#5p|FBkg?YG000ya)hwx8K%p}`9iEXp6pP~xW=*Lq z6$@FeEz}rS7a}cTq+gpmszty{?tS}G{&t?o5lvCOOqC)fQ zr|<3v88g8`YmQio`d5}!U|qeNHcjRTBLZLyl28PZ%`6q}D{Yf2hbcYD6yRGl!YlWj zUmDT*;~Z-+(wdc8MWR$D{^8+HTO->SyTa;(1Be&bYp>+{=0jOqQrB8D>3#b(Nv2dE z{xvn!?d-I>9C@80M4V+TRxmaSxwJ&hh--jmqtZD&ZO|OzbcYKi+&#n{B4!lQx&hFl zMMQPbEQX_({)|8ea#!$>5^P=_c>unYfo8x>X3{$s;m{#pN&99&gS(6#(h0uQ$E@ zBd-N<`ePoimSKP8h+|PL7)3a;Hdu3jaE300Q$w8cUf~kRBOu_}gODNV0)~MB&vrB6 zUUQZs0M4GsR0@%G1|p;HxnwF7X>kK0tN9yNUlx=X?%_*BjI}g=2?LiEfrn>N_SrJ! z7fFH^L7_*80~pPZ7R*VKzmct#mUc*ILLCuV%!^nOO!*Ax?wZG|07Hq48tp~gRSLGr_$5w!@ zcx;ex4x0XG6ab8ZIgfAwokDm79T~R;!_|rdPCCtGCG=+kO_eH3onE%8KCr+bQht*! zx^^rX2@ttM!r}g;+rV|%z%9X*kU=O3}+GVO4S-4z8Q{op1G{d z*0$qLfnenMT5_B4uXlfi7V=vL_Vqhnmt9)EHNG{zHFA{jFa!}AbOiGpMK}qMgr~8% z&@o(S01hNIDY=&(F`DdmILzHF)<#5&!677Epqb!F$Tf3lv7EUbCS>?6E_B}a%!M9Q z?4(?{2VqNjCzcQ~@}STqYz{Dj3OIZveB~0z8M)Cp(o5<8=dD*d$6?vPO^dkL`AkhG zOtvJthNF9yoxX#wyBWBqZ|muMk5}ov{|^3h3ejUqCFT z{|F%H1H|$}5NrGZA8=CoolC$*(mcBw#S-H>AnW%TRB}l&JVuQM#_PouPkLkAvcE^y z@0_BaIpo1WNN{vKBRS62Ig8P;z8TAVFc@eUnqg^)6p1@zlYWuRB&{<^{=iN6_AACk z?-)oQ-t<)gy1zAE#Zk<9rc#aWD>9UbC~Qe12@|KyTBK2mgv9~}Jj|StIP|d0-Q2wa z5UEf~03K8tBb=&|Jg)??B0xGkO&>A=HO@K6Qx_3FXka6a6p@UQy1J{_x#qLpqyF8yU?`5SZUeK$JUF1=N~H_~BH-poY4*rX7497oX3^bODkWfv1V@wzIw2l|N(m5>r2acnDRDrh zL|Q#xJUy6^F?v~LH4>1yA_PPwBE9>iU=qN9)y*BE-L3dAt&t`9%nI8KLuJ{<;v}+N zv=7aaoyV9n5E5w z&$5)$DRtTE9&v<+KF@c?<2?Z`g85n+zC zm?7d0#SDbz*~tlD#i%F@Lk7U!dJ8uIJ=9Cp5Q?a|2t~5!2|_v{5`hl!B^fpRPBJ9U ziW#sXOiNvE_5~r~6p=KP>04(>lchTvfLR*Y;Bc7%N`!?=?-<1lS!k71uaVXz#R+j{ zJ=*Z>N8=0(zR8GVm%O(xw-^-ZxRpD3@M8Gkqk|WRrL9#(M+hxv{Yr+!=Ih?a$+oL5 zc;%Mx6>g?iapYce_j&GF%wV3y4Dj&YP4BMmY5^VNo_*9i4)Uxr95+7#+{vP@)41jL zhtKrhW>OY)mj9tU(w}rU1RNd+vr+hZR!-<}*e&IR;fQcEM07JZvpmeIC>RJ8vVUfzFzA9hh)rr<=8ZFXgOV5gm!2`+$agQ4pRMGTc2z zIUyuZg&w{!a)QtW%{DCE*pZ#^76f>8(^Ig|9?u#N-!$^VYdImfP{fr*rPO4n-GOS$ zrLB2HtTMdrlH0e)%Nnm8Pnc`RwW_W40JEI%X!7NN-ftj~xjyOh#DRNqyFJIfesMD^ zrL0h5@4dB-QI>R5Kck2k<%FZyumDJ+L{=2u!`<_yB?bjQYo0xga3r12;4p_R2_ad0 zO}ItS)-GW;7xasJSZ{l8%Zw|$Moc2+J_`Cn{KX3T-MJjS8*4#-L}ag@M27S5&_z<< z1T8Bw1q6H?&AQb5AQgp$>siz(5dj|?A_c|6Kn398S$2^Zp(G_L%0d*E<Fsdsnxy}P$= zb2n=pKsZsNhKYzs5eeSfQYS>9c2i3oD$Kl#35)b~J07;w@wKInj-;}s+X<#?Jt~2L zaJLxrPbik-tVSgRNWzhY7YxfD?Q}RJqnlh7K=M>kl8FK!LwH0|!47+@fZ%yqihDf`+dGE9DTi<0+kz2Mhig z2V<4nR2(mJbH0W~M5OzcJ}QJpm2e@y*fMY$I+9mDjUYgpq)-wZ?DAet3W#g{f%67Ng z+R8QnbGDW3Qi|WwR+iwa(pJ_zvaM_&vaM`{9ki8YH*@!;4<^Lm;se`W4pbQa1VbZF zgGP81W-2Yi@=QDFxbia6HHe6{6ZiW2yzZGJyG#>24>ER{emnF{?lQ`V!E5MdnH-I7aD;_t z2862u1;Oxvmd0m3^=Sa#@!og!7#`Zdm4YOLqclw^gBIm38h77T7C<@K?fw`VyYKe% zH?Og~2}S50^wGd8q%V!#op3;eG=?Q9WE@T!;mhGwOMW=B#zY8&pimIvzBYE}I7Q>Y z0UKKZk!=d@wCLkRS0ayx9LQhFnT)Q}sRDAhoSg>zVh{_L#b3AJEz*0(PrZ)DU0EUC zL1ORluBC(LAyUAD@e-e1V#(VYyAPi=7R5hqi#*Pnmk z7k=@Vo;|$=;1_=Jmky6sK`ckBjIb$pNd%;m<}n3B!o7X7ffC4+pw+CNIJxRIS!hHg`DOteKPW<#4kIRFz8J@o+OU6^=gF z>)~b*%i(6nn>^eM7KewM-FM%GX)|rA9&b12U-WP@ed)u^$Tc*@x<*_*bde=G^)qlO z`OQRlU_IQ7%cpKj`K~{vqn&pAEDRp818z?It{)k(-0jHLpW<GJ;?N-+{NK$IrO7{>4#5FPM&(^`D?q=-8}c!_xl#%t@qQ}uHHCp-CA#? zxBc9@pYCVtUBau-!&>+2*LGL0pIqOaUO(AgJK4=`jvo8nF1qbnZ{66f&9emOKA+BQ zZvC{)C#UngYY~p{0`}hat?he9g!c}KxtTlWZV>6c?RN8XFWk6xxFyV-bN8E}P^XHk{mi++oSLrm37&jBV zXW-Ip+f&AEv)T#EjpPoge;n-Q*P{TZElqPq-bw<0vGEPR<{<;|E~l|RjYZOK`pf!i zh^=K*+ zJKfFmY;MimgY#^?wcf0??hG?;v$tlgHSc!XY~CdR#%6YWJiX-&Z@7Nrw1~X@(T8_^ zKHWEfZf+J1l$?QuwdiKE^?BD~lrho4-VNcN`R~@+yr1{h%`~8h5Qao_@4a_3nCH2w z7$DntR&H()=04b%9v%pfjuGxgEHQ}?nNKE3=xCa?R`F$^dnjN4Mx*;w1eveMswga6 zQv`>a9$O|^A0z%*fNPv-3v%rUy-Ms|25hgvL2@^@>!$%wn}fh^+t!eb+;rD z1w`HW`Op2~2j2g_vYAHR+)YmSFbOe$&J;!Z;N6eyyw3B?0>9@&f9`a*Yt1rIv^Vc= zeYVqm-|hC@qxGHyw&-?h{dC{0_lO#8KE8)6X8) z_C!SP-lXy%g1v>#ar=nnz;1Ws(@Mf_x@p7EMS{TL9&T8&L^-`!4ECAJqzi2}vx4qn z;nvze{Cj`@Q(yd2Z{4jCb@tg2MK*4&TReAq^1|1jc+dOZn@?RvJ7c7d57Jj}Z=o3G zj?3mSIBT)Sb+-ClAN;;i!D}hwZtin$`|ie=-MdGTXuS-+DbV+~!+(s{`sBHjLsQl2u&2AL)i>F=zNdd<4*bqQSN%3? z!n^;;=8PD({+QoXdl(~C8<9xpj_P1_Uad-c+{VJL=UQv86UI;14HUeH{N}&?t*<@* zZP7t$Y6WYU5x4;w8lm0XJKVc@>%C9BcSJVS$5|6d@d&er`o-4`j(YI>n5uzU^~GQg z{IO4d+QC5`(ak{I+(p3{sfaP6n;2O{Qo)FX?wmqunk=>|nGlyf}MCzeWR8v|7&|NetW^ zM{Z|y8Y3oL(_4*JTpL9rA)T*DOVCG2$)mmCYL0b7*Z*$s@-dY5jm5%|3fAASM}M5x z2<;guRKVP%SQcOOuqsf*`vP6TLB^TzQdG^envRSOcN#Okvn>Q`SByv4PT)vvTqWQ( zUJJ&$FPfvm+J@`n0H~vF3J|xW+Zwgk8svHw0M~vS0L1^#U;nMY`o`DQifASS6De5| zwd6buJ%I;A0Ar%-Z{1kl+<)RHo^T#FQ%!WMVxi;cVaFJIoki8?y5j$9@x>h6k)Qg+ zGk_EbMN|pgJRzf_TkUBW5SrD_q)kFpav&6kzKEL@fk7m2NP&rYSPg(^j7X4Ts(_0S zqoW}cIhLVt42WnzVx#h)`r3OTHXO1QaZ>|AL~{m2zNq(>%MfI-h z{WR_`1FwTwb-d64*K>|=JKe3{J8rZjZd-MoPJEa6`5&(P1pqY@5fLxqgIW>HVvg8G zj0B0@-PKT?#3&b72z7#kQZL}gck3 z9fOTn+A(ZGyZyE1oB%cDT#umx)U8sD9JJ2e!q}61?kms!;h+5ZASGK?P(aMZ98pcg z#1YLQM5@&(g!uN2{kxByxa-^*_j(ZE7_6;7;Su^bvYFPSWb9EHj9|ffYcOyk)S^l# zq6laRz+^6g;~<3`!Bo%#LI(-}S&F-;!>ozD=Xn!|IIBf)OYGncu}Kb$6^YfxK#mk* zHbp=J7l&yIW=QO9la{%t38F^~9jJqg0XhPax;G&T6yi|z9z+!at0~1`>XEppq~L>O z2RHQ?qN1+KAp86Khs$Z(oH==XzGW~)M>J?c)l=Z$hJn~&Y(7_gQ+2lrg*GFqY?wyt zc99d>IzA$#N_YcC>T zh>Q>j0s}JMfQE!7c!3WWmVi{Q$(H#J(m>dqZLga23bu9b0p?XsWfE0k4z+p3; zTfHv8*!UTXPxURWEx{w8OV~K@b&h%a_If4j+{j16uC8yh9e@Cr`+HdzghFaeA!l{N zq7oAWK*<_8Nb%GJQX|e;ZMnaP00wSr1j6m6NOcgfZf}f%_88JvCooz&B7fp1KSPKP z#*|Qz%n+a$fLRFi-iObh+CH~f3X`BIBKJe-y8+OrsZnvslA1uwkq8~lfCEkvllx=} zA(SRT+XhffDX0S&Mxqp$0x_dxL!uP8&%@9a01C`#7DGyW;<5W5J#%_z_i$I$3@8AQ zL!g*aB(y-xIMTn1TVRi&8Hzc0!vqecNERQ4VK5y;IfOQ~1mGw|jZ+Gh@ODiDVC(5V ztDbfQN+SZ$*mg(rO6k6C)YYPQJ<`_`{YSlRm7E|1ubkJ2ypfn02PqL?q^4f?_21E# z-uU6aDm#OIn{Yw=-Q>C%52WmA(RN!nyA5xcepo zqw80%{`PPE=Av}sZtB^sABvi!NQo-KTYRP~{a;Oo53H-62{EVm%;&rG_!gGkX0ix2QH=n7&sP#e#m{Fi)hotBHhsU(hbvgHfg6E zAaH#H6>%K~WjNU|;H85+rjW}(>wBZ!!=vxJ2(hIt2qK-k1BLU%veB-f#2_sB*U3B!@ zh6L+IA=Y@+;I{1=jxAgSymjsRfA>H9_Xpi-C7F=jO-ojj7$*U+T0H|}h;BKIvl*OK z)chOY{Kf|!|B2~*4gh0-R#RYywT^UsaqH^qI!CCli3ypIKlt%aiK>VuCIEDE1~0NY z|L}=Zr?+n0y!HHr7oPq0H*f9li=(Il0uu+I6zRl#dTibj+I-R`3@Isx1yN_AFU_>Na!H8flnnXc{IeuA*S#sR=RCpn||PsS%Z|*7tqC>JOLQs>@xUn-K21=WLs} zE8SafzqME{hf>-&K|~vkcI4Wr)r*?0n8PU1jYN0^t6WP@xasf$)*;EwzPX*yZtSxj z1%A6FJW5hIzT^J?z!G3HSJmYpi$Z;YY?KAm+|&lqt}r3ZTAH?@P1Ht=jz;m5v=BU<6`hq%{N5Xs-1^HUa9! zS8r<6hHhhs=3|w(lz;Ot|MyF8UsrNhM?$Myj!GfMCa_2W_a-$4Wa7lg%)|r^9=u;vvA6HNeNHuPQt+U?rMHL`OF~qD=#J z+_?6pykhazgaKpseuL3{N5^H8nElwAape}SFLP|UIy4ML+#D4U)C;l$HVNkq)7WMw zU|_}=A!c0-mLhDo0pLir;P(34U;8EihB12_(RZVhy9tYVJs zLmOGoH@JZMskyoD-#EB@^_CRC2#A=6f)vb{$h-_vdn5oN+0}{2j2t)*CB~ozUf}Z8 zTe~+7cFrEJC%RR`^)WF61adTRTDL9N9ZcVxJ^b`fK4a$UFo=Sqxglav>-r&3>)!p! zXP-W};fLMg+?iwN&YUW%0%)_QF_mNU=HBCH+8D3heDjU#FE`Bqm^rB7fJ7}#(5a1K zXRD#60OmlBl!5!#uU=jr_NV5j&K^GnkV}zi+qnC7nm+o-xk(#$_g8oC-2Lfi9{J|C zUQlhjTsTH%QZqzSaAIOaCQ?^(Cvb6%OysUWYCw(zR;e@)5zxhyn5Q8!^Wn1VhT)|* zF1`5b)&0Y6Z?W88b%)FDV7X+#`_J9OU|J(vH$$pggaBY`7h7f098hbj3&5j*6WAu3 zMF(`c?Mo5IM48qGJKhu5x>Pt$8af?mFVPVmydO6ku26@r&&v$%z-wkgMr3p|R3kvF z{6&dj+Ega)cUUGOM#c~!MOu5tAMj#S-D;3q)i3=BBBJ_DbVOk0IzaDkYA}`>N2m^% zqdSg{*GG*ztfb2}7Np7Ht;<*c>aV}rS?DwPdykYcwy{ee{DLf9j)`FJIVS95@ecoMy4M zoh^zcLc+NgVZwGgMIL(PSu-DsrZ^GT;O&`{$3Odvzp%YCFUuhh2V2dAF)Z`S`t#Pr|&!5^EnhyW0_QshuiDF}fkA*IN~B-5tbLORq9?dFaZ)vUIEd*6yv7$0m2(bxPMoVZ!wXi)*?}gf)XEP*r9c z=`-tx>q$O(?qUq=+Q51upF>CX^%#W-~G*x&2mIS_a+5ICm<=Nj-8@A zr|50)t(Imjw~6U{T|6Qaeb3*1e``z*nV5;kq~$7rHfat?k<*1nDndQ zhLNJG5~O9LcHJ z@wo@@dGOIEPyFWZe6I9u6J`&eJ^$DvXRqG6E`R{Q3{0-BYD#D^RC!Ql@*)aA93XKZ z$3Y~6s~aIAQ{d<>#oQfk9qc2Knz=J51E9Hrxv2IcufF!iiJk4Ur%%@Qef5)wj_c_} zA7zvsHe|8@I#wX6OLfF5FfoQ^wT(AMaqA2ioz|q)RlQ{c*tp#d-fYb~cIpqa(SL+% z6C$L@fsmOIDMpTwA`_#{+R(%?cm4ahp2`Hk%*+G`YDOddAP@raZJvNyuNJ8)vNdb+ zHT-xK$AgNHuMMO%o^F5l*1!6VfBo8E7| zfG6(qU-^a4yz-q(OUV(#TW{UyS9!JS@4NS|z1>cHc;(d>Uw`ew?*2hHh-sNkw}w>? zfdB&-n-nC8p=D-(3`ztO_uvMaVK$p<$uTzO`OV80UwY+bgcx}`-wqcpTw$UMZ(Lj+ zsz5k3KlZEt*)!j{^!1y!daS3UBQvUd3V|Hl1PD?L#Y6-HQ$S2HHj}oPszSm53MLK= z98kmqAtD%fATrYsKtT|=N=qPufWP+o)hFI_zHOo#I;uMZFcP@C)M~Zg_LWMb4vmcx z#z-*A!&Fs7ANxsA?R%Z*!a6{zJSCNu@*R=$(FFKt2>s(@z;zv|%iV6GF<}TltW*74 z*9M05-M=zZ9chd=Q=-T`a-XlK0VLVl zdnoFGLm;fol8yn*1CzNk@uX=1ftlO31#m)aVsc04z=Qhhke1ats7+XokqUH}|(Dvk!mdLrvIv;NHg`f9$bY(?*<~z5Dd;;_CC?zKE0}1qTlS z0hNi}EW`lSn32G!u)xq)~g@*-*uF%VRu z%lff_z4+40?|t;4?X9L1cejz(9;?I}0aedj89l(kYQpOyyn5{ZI&AuT>!!f%d=~)5 z5Pc+st{jz{K>G-^XtOp3{NrZB@49~QboP6%YOxz2^qLg%T@JNP`C$Er<6n6%}y+v>0Oua}Vo5t&SFgIY3SN$+)d^(5YTVa{^v-k7ZOxhhl;DD2+1sgi+6T@A{=9COv zx}2v|Obts`l_4hBUml*ApL*)451hVdYiFmu|G|6S|Ky_&J#_CRO(f%XbNW3GJQmrp zq)9V19f(4VWU7&Zftcy4FBG^<>|RPK0v^yGx$nMDeez?kzV?zh7RZE*09CY1+}ykg z#AN2qM7qvd5g@C-@barSZeEYE+1lP(LvKdhGx?}1ZWS60h@r|B2H$%$oc{6j!$0uaaF2X1UwU*QVud%qqbd4s>{->#s%oWM zRCPBrg<@93)y7#JGZY6mKtOfVD!U1luh7TC8?g+_Km4QL{oEh_`&Bjq)>6#18wOK1 zM==95?T5Y;a2SSSrfo`uIP^m)3J6(*)G-DJ0z_3UQV88tk-3xd{EN@#Zt=kV4^T`a zHVoJKRYjCIkdxWC$rOyA`l(L?B4Yo^Pd@xBpZ)YlKJ*h0J$mKcfBGN4=(yUNPMLy%w#`I(9Ap*dxxr?!?_y?HC}9(rf^two?Yvj@U^D4s zYB7hE4mbje1$wz<|Ab?hD#5(S|X3Sa_p=lh2 zaC2Z9fP=u5$n8YTkpK4(=zrfCR2@zA3WpFj1xpZ@|<)3nS0Sv?D;KzWsmP)OV)=){|t z%%GP-fXJci`gxm(SR8h?r^9juIDP#51K)Y|B~hfn^J)5LpZ)ns+pJ11Spt(e1Q>BV z2&0BCfg>3}aPSdTKo|fk$^!_ADKJ(TKGn%%A{60t6(S1GANk}zN+AXh&Y=ug z29uIjOZe7{-#L43`_!@1Wyrtx?|<*hU;XNk2RE2arfr(<9vmXubQ;}Dp=G;;!;%bo zPYY@n?F6#+iCgWX2~hyiVQUsWEPx9Fsc^F;#kw}~beaY!%T;O9mMN5Cx#X8GT-d#N z^u z{oZ>X03)x$+*s?;bx#-oS90KLTvT@*Y-SfL$HyiEu1>h(EN`=3z3bPy-2IN7{SU%` zRaK-^i_jy>$3fg04{z9>>JXwGebwJTn#IhPtFG&%>qXQIT-AE zj~$v3f3?BJx+4UnFMsJjeEDl%Ax5gx_a^8d#ngc*h-lXjYBqEObBd9Xkg*m?92^*s zi7NQZjU;DgRxw0oj)uU1O&|mV3(-(x8NesgK*Yzkc5*JF z1V*Wu^|A;QG;1(kKeCr)pD?sH!_ck+FYKlH@MKKP-tcOUOoIBQOyJ$3KdyUqfrNaqa2 z-H9Ch?VEca`|t-|x%j$OU>;!`l9VC_pfHSnGHiZrkc@XLWR6Zg%q>)Oj1%^y7*2FtbvM$jFOwWWk!?rWRevePpNsfOV~E ztUGO3JHB^l?d#{V#iAdwin^GJfe2)=VqSA$Tbn35Mux!aAPQhZiv$kjh~R|q^{@Qp z@BIGf6o8nKyw3-@lq?`(MYE#~Rz`pa)Io0o)JdBh9odPIh?^!Bl?o}SO)d;nP!U~B z5K!I427{bZTj$+hz4*$>t@*ig=kRtS3~NXw)NT?J;A@v&*=ml#$p3^yAXeVEcsAv>PXG{G zI~0Yxmgp_D?=16W(8NBBwZcos7oa?V+bxR|Sf0hofC z)1xS^~-`fPasgrJ%oiaU0L zFoY0-nG!j%BY4YcD1C)S5>gY}Ub6$5q8Spgh$zUU35bpmnUjO02HHd^%mD~cV&u>M z+|PaD>7S_@T8JZK1ft^F0r1`T9q)#{w{Bb=WO?!Og*UHU`lCPk;-7!{FBXS~_uYN^ z+Ra@jO~g%1?#_X><}-8$(8)BU2E}rUF+>=2f3l-H^H6Cd0%8->-mc{A^La7_qL3m@ zCk(NaJhaV>C_3tN+B7K;KnfwXaVQ0xCaGbB;$^Yw@4Nf-)$4CP`|WRCy!dMI{`$?! zUBCazg%>Vddf`w0>`$&;*#%Ga!vz8czqz;9rfE$%t(2^4=CjGP*8Q49QjCl+BA^Av zVJKQdYJ$Yb$Y!8O%dYQ+rI|CNai2I;>Lzy>vYXjbq6@AlQok`&K)r72){Nr34sEVjM)RZ1Go}diop!s z!*^bK@!+jnk3I5Om;|h-dw1H5P??8YR~BEo@+^nRko%CLlNSM%vNLVOit*64)2-=r z)g3s2DeoN~%x7UfNm&kKz>>3K5m+8SLz0V$=iZQ+gEL#-3ji<&1~-9WkknF)Iyn;; zdwWE)gx(}BRKIaJ+81ZpO-DlxFRMskV_PCN72;j#loaYx2U6TK^e(8+u8*qDQz z*x5cdpT2hKGKL83;6B22v?`@i$-TN0g;lmc`HQc0rGNip?*UHWW~SBnjDQ^35y?lQ z%gR-b>%P$iIA|6c+;hlN%W~0N8!iD~j3*V`th=?1lqq^=$ z7HT&LkLVb|m_MsKfSbBU=Au4ifw9ztRqLcw2KM?~R7V-CM(Ie-UR9v6Hg{{kA4fV^ z2ZX>F2pu6J62KS!^pC&(!gEaHWSF+WiQEBT0lU1(XmV1Yx5v5CyY zO(0d}7>43ajA|K>5}F$hd6+bj5LGk=L^c5`0-_os6IrC7;`_@LBY`7GIP|D)$>A83wRQC3}tu1aF^su_?t}TR!?S9j) z204I8NDv@<%ou=^GdloT!C6em1<1N3O{cMGC}&Nr5L(MkamR>2Huh6d8wP3+qlz9h zt%nBNI6rd-Ut_8&Htr@6InkH7& zv;cvjX+j=^iJYKlL8pp;R(A>k%woXW!U;Iilo22xM^2>_GfW{UnpPqRL_}AS$P|d( zl>kzVMU;$~<6>A{x%%ezJl=Kc1S5tJIdEW(F~lZJVv2!d;ut6}F$0iSZqXPcGmTY> zF_y0NP`kqe-|=-5WF9qISljT%gkbH{{y%Zc-<`C>sD)js#BMd+`jfBOQUTBnRH3*_ zRn1f|12-4PVkl-RUewBH-cZ!kT+|GJkkIN|Bc))9L}w#PLYBse|$ z_2>St&;P-y6hNFb+z&%vJQvTs6xZ0c3}7OJE-Kse?Mag+lV*E+>!4e>L*Fk|a#g=9 zV(!4ihy-51ol}!tcDA-nm61Y-eeRkN7_n^=rO@X=ivv+D^-SAF42t=sD_8G6cKYr! zXKG!P0K|b1_-8-!Q?s_&TkYTX(Du_$e{lcpgP|ONYR;s%I&*g$=DQ)qgGFhk-VXY4FyrHDGNIY6m;MYR~d%j%xzh~0k?>#5Hu133^v4=Xy^qT zNCN;JtX6@knZ|=fH`~I{9!}G|8%o2oHUKf5J$?T#|I?q@?=O7iYhPnCW<@4K67k7o z#>^ZIFt74~Xi+hBXk$dIc+DmRWa46~nYSh}psV2^j*h*nsUct_s`0V_#6*nB-~m|; zBQk-j0Ws{%=4~?>L;yg*9hCqV-SE<@Z}eUF;C=VT7y?sZXcDJDA!1A+#SkKogJGir zedIvQ)V58GvGOO@p!!H@s{Wrgx$#kJ+|YcFcOu$Anl?7GamYU^*ZKo5cURR~m#$;B zDlV0J-*J>OF;@doQ>z@rP}5p7FmthyZLY$l&|Cm24=|CZz)TPji7W;TgfU<|(y<4t zaP&&&Y>2>wF#-dC!}Y5-|F>WJw|m0^ILspDpsG(&`z!!K1x36RZBhtKIST+HM&dM-qB)m5Y#rNYler$1JTAMDBt-+uYU z7hgc^2kiuG|M1p{GiA1o`}@P;sw*aMzqOx>wrR#T?PVpN)0R*`6GLlO3(2BGk*wlE zB4K4c1aZ>AiaVQH7R}kDKwbeu>!92KCdq@VLV#@`UMz>*-33PL`pyLB$C%@Au-B() zW1wckSN{5|fBo0r+TYE^@_;3)xiX*^D7`HY^J>}ULCiEcFkk?{?OAkHvyw#u0V9e7 z2W*HPjRDOnpAn^)LWo6j2&hGx6e~+G1t##iW6V7exyn-?KL6$$Zw3w(*%p}*JUd*! zaq#wy8|NRn9}$SKaxhQ@Y;aXJuU#h!fr;vDYOH0O5Q48umuqH@&E_A026tHO_`4$z zh+4BfYOeM@^!VQOLHPRN+s*@TF&8dND9H>|N=WeNoe* zLPSjnWe~4`f;PH)lNttG^o#xdo2%8bs39;RnN!IMfg=S(5(F0yF)^W;)hdz_VNo>TsTf4pHCYN$}pgX5vx?}3Lf6%pY=I&X< z&>hv#RLG5p*wqYJM8#2z6DM{P5T?-O;wpWg)zMtr6a$Vlq0B)+485V4LKw;V-PO#2 zRZUezjF5l{;&%8Lhw%hjbTm+rgguIY3_1XSaM^<)kr z6LAQ2>WyNIN6G7Ir3wHLh?vK^=-Td%mYi!9?5Oz>Q3wG5j!OF-?V!GE9UK0Bv6<^W zcAfMX=_W=nv%^|49n@Ui)j$l?t2Z`V&*KtfB#4B8Ffmm=Jp>>Urm803h{ymAD8+!)TmySM z34NBmy@L;McZkP z7&0C3q+m#%Cw=Z?LKEy4207(yTU&E8RxRLOTsSJCX@THu4uq37P8SCSB^Hqoi6i!% zv&}IA#%!R8r)>&6k%OhkFri>WhbaM}g2%&yJZ~rMH008`0BHyz3?dwothrI#jG04i z>md?@fyI=}b?8bHQ)DjY?%IUtZsOL9nqrC`09D-t+zCnCv8cHbqa)(hEV}n25jbjb zWr$|ZF#u@wkZQt_-FIE}<1Z2Bd4SdqJ9rEcP}`B_^m zYdb~&UIx&8n;?nAuulg9(|DD`{o5`*o+chRZZIm@6f#gSm|~XRhW1WB_ii>MB;;(ebN) z`PFA%{SKmN=~sh^fMs)s7(ywUQd9?EOw3JaQB~cENzK$SVsmWk7&!)@EY1-a(6k4a z%0=l$(-Z^qY&usN`42e+bVx)gPTWBp5je#-WC?*)6%7E{9MFY06!)EGe(wJJ#N5Qh zoPXw-Pw)g{B8Ijrhd8}8-!5Q&<7QW=XrZR*Pafw)0l)^&7&JvEZiXRqBd#!XxL7zE zwavt-fERJ^v&Ke35+Vb`z9(Yhnm}4R4ANy|MrNnzTA*noqZpu=5?UadP0=B%k%ggO z%6!Ucngu(_gpiba2!?1X-ZrW0It1==HezCs>>L|aLt-Qi$dQ21ohTP;0*9bxgMcHb zniCnIR0-h3%w!ZiMncrOr5qiQauGF}#+kVSs#|b_mK#S%Oe*3ua@JKgj-f9vU%2x6 zmDivB&hvlvSKoN{JI}xL>V>OUue5F4nr|IN039_FSo_QkP1}4z@3rB z1;}IK6k;SEv==l&u%hnX#wLZ9kyW**FhW2wROU=_p`4;!Kzh%0~W>5tDQvlCle&a%Q=lyvB!^zCxU z;J~a+vV!1LjHGCudDBEz>_gJX&D%E|}$Di$K9 znL8+=C5~V=ol?^@#Z;^Ak*gIC41~nYgIHt;t+{JM4Un4~`ML_ph~(mhk=8wPV}^!V z6^Ld?rIopxzx9A^;fShzWu_5 zS6_b(v79`9d`JAQvBCEv0*7~?DUTY%y8YxLtTZ$14 zTs>!9E>{RfY(@g1qhQG9m>mGYRJ7|dIH8Z7q9O`P$QYc=J%m7Rs)C4-Lkz)4%`ITV zfapPC7|LokncjW&%$TnJ{4f06@%jA5+iw@o<{40|crFeg;2~${XtOC|gkr_BZcPB% z!B`TfTW@O~Y#t^%Tdm-bp%XMkUv#;kAS5Xy!fM=U&e=JVxtj|TADeBnLoX{+*xq61 zfrGO9YA7B(rjQu>?0v_90<(=&8E9UpWLxa7PVO9c#6i6uECj%2VCP6^Av>DWia8Si z0H?&F(!>y%BS%K4#YZD!PDFsJ#H~6yQi@Fov51&MB%%-yk!ci3GVvjI*KY12wZJ%O z61o~9x-!B;4?OVpt$jxT^2$0dRVGORm66d5nkKs1;i`Y}<*P4Wcx7j6dTjgHX5jy5 z$LQ#SBmTtKY!aIrH%4_dD!#*1HZB_1<*qyK_O5@jF|DJ>3iyAC)7o6*9qISFnq}*$ zhOy${UK85!0;!UgAXH9#gvy3er?1_i4hhz4^9olIHzyB>h_wgkZZ1^`4JvBNN2v^R z(eh`1_Jz-X@eg}Z;xP0bhgeE+)D#;)FS-H_E}&MbR4{-tL{x0jBoOzdSCpb+Bq0Jt zfoRBrwQNR)l@%L7paO+OP1`sL)Sx*Bb|{9RrX^=rf`Dp0abON+f{rOAk(`<~tGsgI zMK?Kj@BQS+&ph+YwY^(y3@Nzc;Dl=8Dr~KrY@fhm^XO(>CzyS!iD3=`IIP0WtCQ_X^^w{QOqewERt|eCg;L~&XGELNf+JmfQ(UGYIz{A! zK{@v(3T+5m(}ojB=K&kX9@vor8YD<&{MP=#G`2glNwI7uDaI6>9MnWHTg)6iO$!H# zUK!^gv3U>xbuA9YjhQGAW_3a?rQoQN!$eHz*_0f)&h;W7G9VieB7>uuBqr7D04k<# zVEM`SJaqZS%_?q3Ozw_=BI?nZsM0El*BlQQD|z+erMGWhf8gA?T7255zaIT&v)wm? zJ5?_eM$wT`0`rcH_YPBhXAlncx$d~<(TMuUla2<4?}T}MFSGw{>)nuM+;J+^eo|dk z!go|uu=-sU4X9-)hl)&daQ9k(Bpl_LZLQ^scw4iIk!WnEdr>nR4@p;3H(b-d4PE!^ zzy51~^^I>5v77fLt2+|+r6)#1>2i-i5hEdTh+^ihiK7Zi*TRnE*p92&fPP6%}`koDhJ3#HH5(*%469VobG?7bzg|OBY_h zdg;<*k3Gg8c>4V@d7Pl~vTacYSRH6Hi5P9R#T?_oet|q+9&{&YLBoSYiWFr%5KTAP?5?ivs_L5W5OL1lYpu@@J8pKm zX$sD#i>yFp+&7hW`_FRZoB3Y>Yp$8^2kfZ!Y0~wqyTDcm1=q{rcZ}vxYPC zHJ9VHsBoT{>w^AHl4G%CF2Yrnn0IMbQh@26F;U~!*wTzqxcF{^ku@T#IGC77(uLx#+4a?{XDHRNjNE7>aN5UuqjtbZefZeCo@e*t z;qcpNcEGT{cH!g%0yqcA}D6B$TvtT!I%JR7H%}qea6p(3D?)xzFUU+g0H-WmA2#SVEQ7e|K zD&(}q)p8hP+eS<~or<*9vWk=#K|&R#Ha~&_X<`q1{LweRweO$1&%M;pEA>}$jYp&o?}!- zChL+Ps;Z`H5LQ9uvyb2VC;#++eD}Q{9GA5!Sv5h!LtCPA^#vtHkD!W}OQBn{eIJ4{ z7j-VqUguE*#-#xoW=$Ls#=B_2=X z@t(`LK7EFdKHlDX`FwdcaJY}b`^Pabj#qj0Ov%iVi)kMkf*^88Q}!NWxPE5dsuvk@ zJlOFzTU)cQ-~Zm7mmL;A#Rkn6FGVn7KwPY8Zp!UYN!0pq7tfB@;-l|8F3ZUCh^>;M zy7%a#x7C*gk%LkqIv>RXX^Sl$@Ps5M4Zu7`vcyzNaxtH#+Qp)3_9<$in-#IF&KT}K z^S85DfJ$X?U5-;uSS(e)zkB$}uYK|Tk3JPE6&2AeG!sG1f>T(Py4uK5EOk}o82Hn7 zKmNuyzx|DG{?Q+Q=R1$5`?sDyw+p3i?#8n%|9N{aCvW7@d7((v&&8j@b`c3|M=(s>R)_%_i#M4%n{WE?0Ht< zBC9IJETa~;-bY*Do6oUzyDk&w@ z#?)faw1!ea1v14z^Kzp=Yv8ahS!|1&l)(zU7_OE`RUD3s{oP;vn>W{TG~V6si(BtI zJ+R*4*h{)Imj#eK?YZx?vh8u%&hpvAr*C~l&-MA|_xr=1dzM=qR@*x?TQQ>S{zMGV zu8%#Z$GY;6#lxbRHA+X;*rQ~p*8AW8d~MfMv^54RvRtt=6=q7vl4558l>ur#*&xt-8Cb99Qu}sUR}d*=0A8h@6S+QgvJ`u&J*I zYMV+IF-y_WMB8Pa0m(r1ND`(FvZjv`Ae15b$=xH#l9Zyh7EEQi86b-Eg-S73RuB-# z>JqcF5Ra$$@YC(P?|%5sJMX@F_3Y;AiqrLU4t^K=waN3C%BG31{1EJY&BXfin(*uT z{E;d8%}bR$3i;+_{szNbBgnKP=lGLxAYnd7Oij$~8?W=snw zh7>7Pc(T#JlnPIg?R<_+YUF$eEXJrkpHvMbIqjFH^x7s29DV<-|K&G-`+xhl`zUwc zwtn7DrZHk<=DHkOI|z$_sw4{*+F~EUl%XXyq%oO`Xx6}ZwI+DHM`1nZ9Njnk$qj(ku?&cTy)J&Yhps1s#~$8QN4=nqkse`^a^z`bxfIP zG0ZZeRHbCzNHmoSb4rK60-#$H5n-8m%~%@HWHeEgmPkd7qQJ5MP${k!gYHThVmcTz z;=xRa02r(!3JKIH>RaFX?qT&;uimPs=-^AUeWGco+S3=8s(X{g@#hur>pyRf=6I3^ zz5dJBdV@LZ;-c(}*9WIry{{|w&FXzUC-)wioXo3voXTPZGMO>4Rz_4Mg(^f5Rg%d} zR#axqU00@`1uufZERqN&rqc{TR95X#LKJKM6q>2)C6Tbe@4frofA-J+*?;`TH)*a! zjWkWMF#0|UB5qb$=f_Q@SS;B}SfM0rA<*Ge!$rZXbX9Y4zxcarDHA$Y#3F^LD3(D$ zSExv;D21k?^TcwQt|Ud=Nu{Bz8Piw}qaY*|72CP1353%|bM?gYmY>E9JbyumB3bV16QSufr`4$HqZatFdOZ`%~svmbIO*-`&YoyB>Tjs_If9 z+eYSkcefFCb!8*Cvj)e}C0Ui1Y*06dk6go#G(m%#NR{@;9A+w%T;y=GytQv9T}nJm zl9F^9)TMyRa*+~=)NCRIr=EKz&z3@@L~^m%5ull(?}MTcQvoOeQKbNGCMBvqMrWxj zlET7bn)3qA5@-b6WK@3Vdmk$JV_*8BT;QKM0lbcJn8(x~c2T~8A@lzq*z(_hu(|PBOFJ4#soR+7AXui$J%w!fLIimKg9+kx+bLIt0)l-;BWCp6h zsGKw`!-YalnQ14lB@Huz3IZi3ZdXmPxHeM}DG?O1_|XqO{3rjzKmGLc2c^2O86vw| z=F}$!T{J4PSE-6K*n@qHfDK)WT59D$W{8R@eK8kpDoz0-F z6=e@XheEb3Le7UPu{GLS?h%JU8INb#lKZ9#>LOawVCVhptD;PagB%Q&g^iJ*V_B@N z*2p5v7DOLMUjSMYEgfm8sF1b{uC*9t&GK%J9$W7@k6~E?aAf$RdaTO69OU-7pB~k; z9j++SdnQerH3@YPE=@&M7xNluE3gb->gZ^uiz>b55ce}b^|h~m?W^B@=eufz5h@BR z4KtD@PKUAJn#~oNCPwJeEMi=*O={2VPy;n`Du)T`(nNtOUb!oDX>DXu0MCdLgPB!U zQ~~DVi`m@ms_53tEC+w^gO3)kFMjb0Pjl})BmFQCd^YCSTBRQ;WBfS)?CX*E&lWIn zL8^YZcJe9h53i5mAf%q&!Yq8?LS?Q(%ac5zxUDmsubbk%Xzzl);=^- zNX?O%5I{XUc14KyvH_)P0y$GAdy*!HMXgOk_bEmPAT3GGC%HW;_o|}Y=m*_B2wb@00hx{oZ#)d>TEQiC8v4=@2Wipj0FT zlIS96Zg0PQ-upvfXJ&yZDo~YDkc69OrK%LmR7Pp`9DzZ?h;yd5^=D+)c-y0ZB%}gK8 zk5OT0f@zvgagzpWz}QU8Q;nkLqN%ASl~oioaT9X^RZLJW<=i2=A|Y0gQdM)na&GC9 zuMPkjs?-oo0U+vxiW4Pjm*-9u$Wj*yR&8o#a)B*ML7}<3H3Ql-N%;H!&0pVlyMIg| z4mSm@)5boAuv`e{an;zC;IdctLFoSKrE^%{qZy1AiETe0m-R{yOEWT6RoN^K2fbeH z;9}m)TtxD)w1X_F*!I2IdT=$b3|_76t(Q3OqjxW;@K{~M#`zRTsp6kpqNNT;;7H2q60>8?t0d>T*ulF+?rcPEzRAR1xtn(DiJ6k+UPU^ z<|&^_pd`i9MTrJMR*J^xA*E`AZ8URZQ*)8xQ$|)3A!Sujxx`y>-eC|T$O2Ri<*f^f z6cuO5;{NLPYU|_SG}gAt#7e~8`{2Ew`Px@~@i%7T|5t;313c!BG}Sk&dKT^L<@U|j zkjQB_Tv9V$1SBtAaFP}axa{bZx==1KSN9~c7>Nwd=3Gy zAlu^uMv#<3KVHdod%>}kW2;9-sgy|`+QJg-awX3Ox%bo6x*p|ddDFMy*4BJ^EibRu zThm(HZx1gIyj3ochz+YgYcppo$J&lJa?OhMsLiDB15_qMhUvvQqz!_u1-d+EKGo`*`zt~*~oJ8~8ayabN0s+hBoFX0B4dc*WjzwjQW@iL-_ zLJ~PI^%q4T0#m4uLPca^Rw=R=ML>d6Pn46(4~hv?Fa?Iir{#IZ@s3Jh%7zE$qFy-{ z@Uj2y@Ba4x^jp8RXRU6_x~R&w_0zV;$Or=BA`LlgcT0MfhpzLUIQ>7;2&gu<=?XiO zYO|QV)ow9N1hhR8EG2Vfg643SW-yeDWX}+QrA4Zz&@xm?3PKAvp;!Sr34DNZ;!P9? zG-X9es;G;kA?Q5~lJfHi+ah2v=ZMkmGxN-lC z3vU3w-yaTFSXU7^6UTP@Q(yU6bXAd8FJARHx!V_Bd^twHTCTqO<)7HLUf6Z1b_jFX zw>s*zXN&W2@xyYfLh~@i{rQwqCRo%&t8XHZDv2mDahq71dedO~(jv#|i!Z6lb00~< z2U#Wu@nl(?Ejp=st_hw103ZNKL_t(m#Co*KEE$1;b(cfmqqZ$ekVtC~kqDrLOwX%1 z+n~fstfqQNTe1qU)oz*|`swj6|NPIGvkW2O#>$wkI?Y@u zoOC&A^nhx1g0&vjZS3YX#!y8wocs6ygg|@0=#vk=`1Z?nInGWce+C)8{OSQfiqi*< zZ=9EYNLhTEmRYQ6g%LFY%p642tib7YAW_q1nVG0UO!a*+cxjSJT!A z{r~>I{?C8-hkrPt7IPNH7!Qy4kugS@TSzcvz2p9}%&txImI$dbK`((R_vYe!R`Eefh<8vnzRZ zl;?TQ{UM~<)$#cr`^^h1OCYL^7dP#TM}PLoNB3LbZlB$La(?%5`EK{m`j$7xx9;xm zPxs^Y>cwhT$Pjxx9`*Wo%-ycn+w4)DiyWREUf!(7XSemmFJ70O)p9-h^;J8%?dMn* zEY4!O*v<6~G}bE?wxuzuUmwj(td$xwGcwGfS`N{cZoZxM{8(A+du7fe+I8*-cC2ZQ zERnwS8fO%#kTfHNl=*ogDUP}AA^}$^@Y(IL$?}YtjbG3K_-G2$;upABbX^!bG$?pM%476%9_YdB{8!NYPRFc zA!_>EkgUs!TXQ462mt4?d3Nw8q6I6fl2J9M^oyJ1q-Oz7qcJZo@L*616K%`N%BZ+> z_X`Otib;O*{yV?Di}RA*D*+dkf{ZH3Y)}fhw6(c5hl&)DRSLSpRLv|as8TsUYB^(dn96Jw zCL*Q+5s8&y>S{(>L8MqFY%0l0q-vR0GVE9W+h6RR`zVw|j_231---M%hIgJ` zXV=Y(@HMj{E3#?=uun{hDr8l}WK+~E<}6M=Q_XVCnvcUdP7@b~6l-eq=2eQ9qxI9D zBqwVlCf|3y;8M34lP@^~KIfYWUWk;JBzlApujh4E5@Y&QW@T1HMP$|-+96dFhtFbh zy#L+r{LA0?^-mv9YPzUO>TZ&mHbm^-L zu?$LNm)b1H9EEGg9%Kqw=Hd#7gPNTuBKA6`L~!5pL}ceS70gOg@gPGgs*+mU5$vt4|O=8Ev3ue zaZ>Y5@9yQDTJCo4t=aAMdi_j3dHht{deg3rdD>2Q`{S_9n?$B9IG;AaOG0QbZmy22 zC1uZE2vv)q>+xziDl#hWw*AmXF2bzaf{v_ z?ucwmt7uNE>dV@y(xd`KttKj{h*^AODWI;RmL&E#MV%KrjNDe2FTecizTHtGiUw;o zZ&x&xnC(~BQ%qeW0%+=E&{~`R?vJSz0DRTk&=a|3|1zqE?7>aWYsA4EM{fZ$cq|i9-Ol{$jOnKwCuSrmt52u z6Ox^FRz=oySC2`4oPC>79LbRx$w-c57DjL+=Yu3?;_F3haB0g-jACR(WW==9VJ1gp z#$-=l_WbzZ~xBk{k!wl59_L=t7seN`Yf=E04dekuF{{E6hWbe$i&0u z_X`!eI`>7pm#{4;6wY3|_OUxOi$g{to7kewsA5Tt&LP6qw2)7%(S$+_?v|CEVG0!( z)m6a?1_6|sU}U#yRwhnYi-Zm%&5Tu%PYY8)T~(w6YJcPJ{le<@>e+Nzq{3^9={o*?a z0?R>LJ2aCfheFBmq-(XM%vpVb^Yg85I3L>W?cw(Pc>er+{(SF`=UCfebs1G7EF;c? z!FqP|XV+ICN75Imp8J{WaxL2nqkVq90~Bbdb6Jzap_;BYX|jh#IjhCDp0XK>Yew# z_p?9wwRK%p6#~^sc0%Mu<$!`tWzHl)C2J=1Rn3VyE=XwwbHdT1I4)cAWy>vqHD&el z?yWXuPXvTfsGQR>vZ`lBO0TM{DE3LT${M4xGICDr%&eXnk#%X~OrQuNBbnm@LPuss zjU2ODW6~rupO_|>)&Dhi_RhEe@V9>ZH{Si;$4y!@*{d(E)gIFx69c1iR9Y-osS9h@ zETdL|4KmSd7j<>RDt*;xrPU5G7~^a)>O6KgjS^TjfxyfcNQz}t_UJM-y`%OqVyk^0 zqh|$1WhRm-z?6Telb}k|LQ^Sa7R-%fMcCZZg_|Rom7su0N#oS9k)mX!ihlUfCm((K zezPUh9EicT_>77c(#4Qy%|M!XYgDz2R1vc#@adURC?O!ymcu^!M8ZKcvCP_gR`j3! z>95OEJlaH6o7>uKF`X8i)16}0UhzV8dOBH?IT6}SPL{Vo+&BD zoU|8%ah3By$0C((i9?Ru#z`_n3~H0WoKP*L33`oz2&SOSQNfCg7>Wvrd#Ev>hRnzr zQ|3)bcIIGJrJIBTqLeZ!5-2Gme+P8$} zvWP&g4M5 zQDYZ~pGVb*w{PFB$iq#vIySLSw$Gj~Uvjqdc#PVX)vLQ%(^{|BrRRC?xL#c~{7_$d z_4S|s3qSYy$KStwo`;)q8lmU0oi~ZDR?S2!nGxPHm%>@^Eqg>|nP~zQf~X{d zR7GK!d3Na|ZkOAub`7a6CsPr&=GRSaF{?_IB(@Y=eCa**QBA0Z$YfI8Cx1UiENyBb z2%|ct@7CRCpO1e2i68&+#M#Ysh7YLv{s8=2%`p6!VE(6_ZC`P5 zjH;kWkrxsbo{Jtga43Ov@jiNLzcktyvN3_ z*zMF$t+6>pn1u%4W0#T{FQ;%T=iXvpln$3dm!%?-rv+iOschnfaG?wiF?bWzOX3)c zeb13m-~df?ZDNLG_5ur;M2Y*wWY|sIrKGab#T2SQPQwp{hD$g#)sacD#?%oir8Z?` zq)_ay{@1?{TO3xsI;g1@A)vdc5IwKr>bZUSAx zcJJs9(LJFrr9bM(PLTH^A<#z%4eqsm`W^KZE3zwzfb78C4~V`PFIy?58NvyX~}PN!jtbc`gy-;dF0YZq~O;@*IzQ z&sA?5ns8a$!PoK7&#YxNzu!LE#_0<$zjXd&j|v!1Te`rNrCpYttmq|z*nz%`q_C}6 zANPH9ELc>T8KT7^#FV1&>?~kpU!jH+PsCNB10{Ec5&4o+if_(j`Isg#tr+Osd+e*GT%dv`zBMo(l% z9S@6}RoQl8?lyv%qi3n;X{+S$h#nn-^-uEcu^~aw)Je=>ZmYcV)zxME%oFB4h3oqarPJg2zTYJW3t~yo zZFOlRkp#rOXeBkFPb2E!7FF&h6adp$&k&2Kt7HX4@9rPJ|H1cOz5Q}sj`DN|dW{TE zAofCyoU7xL<~H&&r6w=>#7TWth|Qt$!YKyuXZwMGC%m>kG}EE|MR=w|0q$% zYgnTlhFLO^-D+EEEa5wr?gph~N>rIBEFl6ac8`-8o7f^0LC}-Mu|*YnrqWxfnA-|? zhGw&&!hPhZ5o7eu7?q>cq^+_vVXJkuGZC%aGL|9s@yP8zU*ycTAKENvzi;HQc ziW=2L>7J65ks+xyN=#rSMTn~|mX^B+V88q;e}&rBWHnqZP!S`Z`}JGv^Dn;q$#1;> z?hhWnzmKyTAaXeB_2Ntdd3$xGZu{s_5fwz5i9sqQ(iR*ddB2}dV~YXFWe+fEq9T$t z_3$LH9@fQu@0&ml2Neeks*LQXcsTX?nIHS9RufQ3cUir7QHPG^jvNqC7!|Y_FFH{oeH%d8=7P)E<~VBMN>dVoPZg_obPekW#+b&9NP?A&RvfSM{lUSk%lLk%v{Awn1c+LCxHn zYAZEVK?Pt0Wgf((K@_gAi%7i`s#=S3s~@s6$;VD+;4)&pNJ)36_@1aN)X`psD%8IUf11LvbJ zNrvq1GF7Z8^oyWfBR>tFk-i3*fpm0%K_ zF5c#t;&{aqKN0oB=b~`Z4N7zxcR*B4U^1-(C<1*l0|79D_rRh+<+a+6KwdodR7^~t z+(Q&IVp|3CAT&{BUPMLnKz^CGuLvaZ@z)6}MMft`l>Yi))C`U_vJP zAcYXpi%Jyc_B4-zeRM&%84@M1U;3~9Vr3?WNSX zyj)}KOHj6N%omv0I`<%lwIgn3$9)t##{NTPF7s zdTS1=L`p_wm8$2AzS#DB=iNW;aej7vW#*9pE`cMYR3Q^tHKLNNi^I;$5Bh(YdXpaM zw(LCbUCrL7iHOYnntSUuRmGBu6ikusAh1XSB5cco;bvk=g8dUbwhR~^cxu}4+&{*K zM+RikvLIU^DUedJSXH;F+k8zn5pmAhdo>=MytILwW*`yBII;Iy@B2I%K@rh1-D!^( zf7i*~Pe^+P8W#IS`*}ze5dc3Qp0Q7nQ-!M1AW|v`F?N^2{v6pUbI+5n{dI_e@0jf0 zEsvgqnEN6r%&+$kfA;OK{`vcNZx_oel=2MGER*3uOnI>pS zRb{quv?8*Gu|yezbw>roaTKjR5=B+j$AJzLM6Yi~=PTvvr(GAXHN+J&ScG z1`$LF@Yb)TYPS}4ohKeE_qKVGsTf|vr~$w(3sYr3t; z0x5xPEF}XGDJ*MqP!cCeDsfx=o44+8`3E1o1`#2cScOxiBd+ zGl+MXF(YC5T;io*JeQ3@nUTJ`W90uwoZY{Lo4X@2EcP$xJ$V`4!_4Em2*!6$0zAVw z9M5pceJQ-t!RYypzh9QA_xqoH_P@Wo|9Nj$V!J!Whp#zeS=R0CW3(-ome-a=crKD4 zvq%mh*tKLYoD^Nzl#)f1q$G97*0T|TqrwY=LCnHkRuT_bPwFj$eHtr6RG~#{g;vx; zhhx6Jld&=j3Fn|r6c)+iW5wY}wQ?ymj8MuXH%E~iHJM0N#>(@AL@-z@l|nm>oKfna zEzFHWXg>`(nV>`xLnu{Pz;4;)cmIQ5AGH(}u(qusTPb>T8VH<(W-WA1Gd z_gt)i5JmTj1U%s#!o=hb4+dv0PT$_2zj^odhp%pjVL*bAOevHqqAVg1PNF2{9R$Km z!m3K8K#3#L9gd*fvuB|!Dtk+EA1lZ69e8i&CUFLm2yE^i*({sE9nWXw|1bR*`ySbm znJ^Fd-fhYx>@IFr79nPA%eTMy@*h3C|F)0~(qDa`%=U1(TvvMk5LVPtS-ie~^p*_8>I(}+^Y!^eT#c`qIl z=P)P$Hzy(?2{D!qCuW6*fXv`<`Tf89uQAau40{k%D`!eu&sFu|vVw3s4;Cf__pSp+ zz|Bqt}FsVg}1Ik z0h_BXt#6wh2idj@OWg}YDx{)jT{#7*MLm+4AneBWJkX=n`qmn_AUr(k3hl#$ZAnj&8imOkC3eUe znFXVoXHkp;EFzMfkwgLx&+bl4qbQQByO6%UfA{|V{lF>&^RQ%qM3Cw8IIxrNf&xQ= z80>r03_U^Jd><5L=DwbZ?oU_y+0TFV`RAXh;B-7xtt?!Wi!wk(r506XEnJG!BDD}e z)_Vd)1(_mbo(U8w^qg5p%gA&A72Y#`WSNPqMN1)-omNZCR0#6CHS+zkyDvkH5P*R9 zR3=jv(YY2St}LoFDo-`vz4;fv{PG{0pToDi8yV-gKVR3SS(nQ>&sT5Fn&qffn(VN! zD9xkWZ&n%^001BWNkl30DWm0<4(qiD zDY|czJCoMNLmp;1%&h8F6hftvDxf(`ad%ViPSfping&_d{`k1I)~8Wk+)amR90n~z zCO2Xliik>rlo;gWSXkK7dvgLO&~p*wy&x(k??&Wj~ltxTM2-`0(Xq73W- zY4Zyc2S9L@v~W-g?N^o#;!H+zAs&Yz8O>w!9JByvW*~~l2)3Xk1>;c4<+`1(wp_yr zdoouD){q;xijx5O-621hEiyF_&9@9TgWGPDjcd!TQFIUz!se|<5-EvihIz;ygc0(N z1e~1UqD7!8q^wlihK-V#)WQ)-Apn{CIEtHb2=D0!4tnN>Y^=CF+^y?114g7=DaN+_ z75^DUG?Tt}^OC+(lXVY9Q7J_SN)Kuo)I5cBr)5y`^Wv9uS?tTN-u&z@e{nkM>zAi- z98_49ijXqs8U8>KI~zTBp#cyosH#)tA~=mjn0nvS)`;&y8-XAMB??m!t_&dkdF2!P zAZ=%?n`eObc{ei+BC1r1RN^9B3lXOl7Nx^buh%dB^r!#pw-0~Ougl>`FK)B>RmYxAvnFcZ>|M5#n1sG!VhJ5^5w zs?f5Zy$DIeEcMV{zLMjt$n`MsIFU$1cpYgP^TmtddoQQkxvJ9Tx;|ak)^krilb~5o z#OY9OXT3euVPJwM!Odz#9auTLx5GS)hjcdP;tiBkIHigT3Bwc5H?PntHRLz}%SS<|N}V^=5896!x$TWSXcjbAq*UEySuxXlBYW)}aczwMY(7SO`lQ zIVqG15)pJd97{2+5lQYC%eY5#K^*BuX4dx+lrq&?n+2LMi(%VVkA#2M>PbV3glTIT z{9NlLK=_%Z+&w5*nXQMna7JVoecsNAI+Xyrh!urpOSb18XY6|uqD)E)%1Bf$`_8jl z8>CR6M{E(E_;-KulVAVgr@#38vzD2Jsyj6dO452HlEKQXyaPvxC@6R}Boh&OrWEG% zL*~)%mmFjYz0y%3fMe?BMZ?BoK=ltWp_RpJiN3 zOwMIYgHSqwg<0rOkDtE$_}%-5`|Xk$^Kh7oCa9-hmou}r9zA#%NSRoJ2%b_)Imm1s zYlKKCLjU@YKm0qt|2tvX&7Q97H*d~si>3Fidr_WC`KyM5FjL0e@o=0+;VAkX+)ava z-ab5DR_5}{uikzA?xN!`SABgmy}r5qfBx0a8{)<7krTJ4BNEn4w45d_dm*aBV9`T^%pF0dkG2Dtn+z5GARp9N}>| zlw(yY{dgnH&de%>IzCgt39n|Q<@Dj*?NIrAy}EP&;^jEcTZ?b*A98wn zdo^2t&Ubgi4nQQ*+uNDT-UBCr?$k2|MWTn22$Lx*5Kq_EtPjkq1);F;pe`ar9BIM` zQ&E0@f4y8oiw>exIVh0Po2v|r{dB}yRfWN!!WMSj^8O)|Ng?jZM3I8bz}`8^4Bk() z5fCO1a)WS`S~kNPb31QB3B=7TNE&>BHh#8C|#FnHaDilc(JaJ)W zw@d_)L?$?x1puoY>fyt?*I$0~W{Wn~v9cbfIWm^kdu$$YZ6NSC2+JM=Wilw~Jk8;=BHUZMJ5E3P=tY$p zl879O&I5n>^)J4<|K-2R+&}bYhU9gP>(${U1Fc&cnWIN+y*t8N zh-ndZk3cZ9Ou@YGzQfES!Cc$c(0k!QWJGmv-yM(UzHhpih($}W@Ek^hw)x1)!N_SY zr%9)IBz6|h9m(o$PTT7DPggFiTqK5~WxarN1`u=|59rpNH;W!U?oRVCib@ud#E$im z3|X%0(_+iD2gri2=YZ91O&021!)@<&2cRNM1hD+uzyD)*J09kFoP{A&TI(!?v{E$^ z&!;S$R7nv(j-IZ1a9)4^Wb_Fc2K9Oi6$QajBBtnb=y06y}_UnVBxjy5q2Wf(d3WMRxII zlGIU8r@=M{k%bE}3zUVa3_}3kJ9Q)XNOFqMQo{Sq?JVSL^THz$IgABx$R184W~eYl zc!E@U97%|qnFqnRU{tX4bA8Xuts|4Io5+sJAWHTO%M`G?XCeq5#4Z33yc=yD&Xm~W z&yk%dNgPOKM}*r{>RhL8o(V3zZrjaxx^|0f4yyw1K}8kSf{pGW7A0D>;cy`M?&cko~+NZB? zrXT;{gCd>0l|sMx>aBw){N+i1_uu->ufKhJZ7ssrX6I{PmUTWH&#V3A=kLCF`=+QM z`OV|QPk;U||It7H-~QtBKRzAWN3V2S&R=}<@bqNs8q1l(DY`NhN>07j%F7xp9O2f( zEQp9%&Ap7{Fcz+!+!5I`TWcJ&6AL6MlM5@=3^E7S#XM{(g=q%?K^aV@6YgH>%Nu`r zoad2Fcja_Tbs!*zN(d0~x~`kqvaSde)tjRd*qZkigN~)Rsx$N2t{@vnKF&g5q;Iw+ zWro*U7*Hh-FJq1~#<7elr*RkulUka2J_B(+Y%smR~?Pk-y?IM-6QX2QB$ z*P&FF0N8gRzhv({oy@!z4#)X^UC-Nepka)nc=K-2D6huXul1AD;e)^a!@oI(bUq7} zrA4?L^-z>Qn7;qP_kQF0k;S6CV{QhIOQ$Rf7h2j#oF`R;fcgzg_MER{Gb3p<9wmIh?+xos3l z;a-GTNtFhs*l8z#g$Yxb6F5ASKmZl;=e|HP>r_>ld-ImjgSl%dIh07iciJ;acN8Jd zupmN~Nj4a>TjdFvTY%1j`KEL*oIk56=YT!uRK7UNul>f85Ex3^OQEErD3358SC zEOXf+GK(+(`iFn`_Xt$$xU4HvsF1LF7=)3Yk;}CWV@`90GZ{Tynp-#nW(S!L<)k@; z59M_Cdq4Tf?d{#SU;gq>|K$HV`_sGa-E;(i<&2lZ%cGor>$iXBgHL|=@NoY}|Ky+a zr+b#oXuI^Mi!V@>fGD31H8mlzT-&zNG*@B*2|V^c%seA`8pqbwL=Llj{q?z-gxjH3 zs>xCisYzv2uqjwoBB)<%Wn*Gynaf~d4^NxBn&(he5YwcqM{#1w7QD6&P&0V2f+?8@ zW|6XAMJduVu}d5nAPx((4Mf7^OgS71U}3Z_OayOboG79r#1cDZR!D>+BAJQy3Porz z?_zq!UgzJ3UL4QYaOPwnS>$${e*EbVzy12rc2qIQsXuPlG^U8nBY`RcqVTMh67Wu? z$niK1Mb@6n0;Vz_XRcEsk(9yvbXk>>k^&SI6t~C2C$Dah_SM__hf5=nD#I-TtEHve zu1if~eij-bMIoMD04>CTJlB2cIBI5E-`+p{+~f1Hc&Wx{@8550C#ST{&R1hpPjH6! zd^&Gi_rp{VcjfZfFZVqY#D$zfAe^EwGI4iM>rNh<8FLyW7IOfY&!#w%Z<054;L)&Z^=z2YiDp-{;4`f8WM{ib#s!_L=zzDLT zHXcB`s)8vtY^@>{Scgi+t!=GTErm7nx}_x$=4SJJ+_tQPs>1tnx|yzvynDN?E8RaX zukWTzSyybm#YS5v`iK9+KWJMVC%&$BI8+sQchO<9cD*duEeq%2Am*4z+e0|?vM$Qy zM<4$hrC+;!^UYTw>oDod)9vAQ5{jj*PutbPEII(?qO7N3p6ckymxtxu)5EqH`}pC9 zAI(LRqN(CW5H5p!HFZ65W!L>*WK5&3lS>(U$$ zrZk%8skKG4w!T&3I*1g0aV%~LLIC&YR%93kSvOlZJIteZ>mJRVNd_qy>FG!zpeNf( z`!DWM^TadLS>Ty!X}s695S21Xu50uq%D~f*q$SwbB?U^v7B0yi&PtI&tOUdUJq;p) zK%H19=~;h8%$Xt2UZo`8{SKT=15qf`tJ4b#Qk_(}+uEbwZwsYo>eh%7%xnQBi~|u# z1cY&Wnp(JZ21?O7OgEi$2SZ7+2&>|+eR%ij2e0ohmv7&_zpQq?u06oKzYFfUbELCJ z7$8haw096%X7Y}Z6wtmo+G7vQ9FmAwyZx%Q&!l$B9+sDN*Fx^C;6$NOQDo9X6< zAANe9PBO~d^A}Is)8F{f-~3zu=D+jh=RcoS(9yQG&(5XLahj3Yw#~M6=f9Nw8BWiH zsczAG44kaW1PfoU%`H9ny81j!p70>+v~*uRz?_KNV-4$>V5Vs-%-L)cLP;_tIEp3- zh|%1OsxpDxGlf#ibGPoVR3t*e2{WT4_hdz>s0t6>y7w-HFi!&7U1>JXEV_$1sqp?0 zCFUK_4@wG3VTLDYzj@2PQnesvuuw!;K=zUX__}Qu+Y))2=0lwjx|a~lJvqafKr9iR zh#?f<@Q7uz%2k;%9dN=kPJCc3LJ>V9mv;T^>u6wWHG1M95g?s_Eql zB)}U07B*zSgnI0DJfpH5>nJ*P3ncc+b+-_deaCw`P9J`7P;I-c+Ll>TBHA<;4vYg> zyH++2P#8M>*Z=+BQx#@gwrv`f&~J`KIL=!i>U4Q92cp3iNBHqrYgG^|wT|O)7+=me z%KGN<@y+8`59@LqrB;17UmwnEt$urR0Pyg5X-#gA-iU&WQd!j6>O~VkOW^RGr%-k}0^O)z#9&a8@ zIGg2AMntNzmc1OCRZ%L&p|t|KN66w)Bi7k@9q2wbZEyfTg?jb~=vkoheCZnucF} z_HdYM9U%inSSCl8Km(#yF3LnCqP=1NGg7JMxV393Aky=bt*c!((0}_s{Q-F(`<6D2 z{_=KGqy@F$cBQv(o~ZIX@CUDM20c_h9P6>UB{#y_EWUaB&{_ixgR~%n+QVgKnI9gm zw|B$(umKovhll&^_I3`x-X2Dna_Z(4xz$=fe05uu6C*{fqUUyQaoOzh?c2xe7TMy} z>rK`-xaF6-lA zWTqsLlSYORiIzc!cJ<3+H_$i(8tZ0tU}g=&wuT37mfga(IE-U*f+;*05=ajSYj_jF zIIq=FIi-)O^E>+f$tq)LOUY+}0Kjra-V!z;h>nWN)!W4%i=3TUoa-2>myI_#d9;!#JfdFV_3A?edpe zm6BfG+>K?j?#sGpWf*(bv_8(h_4TW7+Qa!#28L;^+v(--=G_{mQ)PEJ5yI_7D$qqe$-F&u3@eYcqK9a=f0`c^oJ_D8bIcr&)Ge12oMW=P?peU8W*jBfm zEnK+V4l_%Nl6kwX?Yf4AdvhW2B+pLBbg=AreKd2xRg@w#j9475QiO9jV0V9WVyrq1 zK2Mb3TBqx}uA7_=^x}?OT7)YP-pN+wD0KwN`uXSAEP8vR(OczufA(<@!T@%O90uBY zufyy~*|~cXVk(juj*uV#&M9CbUb-i^2vG^4Y}<7xW!uu35R%x|&F_xVqH(DYk4D|T z|NR+#Y%7AhjwU57Hf9m8@9*>JlJW=t#lK;0%etDiLFjg#U*EjCJKWxk$HOp3zijJU zTVQC3Z8Pf@i(lWoyWf@!@xvsSZQHVSqw97)9VW?gep+|VgZC7YanQ(EuI(_5<3#W7 zAJ?Xx8X;fZPRY4l{oT`3YDR?R3T*D4n{|7`NjHZVH{c@l3qs#}M4*cx+${s;ai?zt2S_Gv4Ngi8Kw%#{4vvwFM z#1Hc*6p_SCN~k4!uAmex;4I4Kwl)(&AcJUU69C!FGHJ&(3lkArM#fqz-5hb6Boo_~ z=n#Yq&nPY7bihEuvUg2}B2Hn*OfrNB)Jc%>9jaJ*HXg*BKti^MVKTar#e)YQb-FeOIupM zEX_OEAWWXrdUta~c)ByGN>Z@wR}(mh1hvA#v=EiXoQDH3NJ|`!G9MTk$b7tPj~74P z)YFMrH)Uz73Cej1r&!kZ=JB#@v9>l3^*HFV+Wpl}hY^(5%XOY=>@_Yhz(Uf~2yGnM zw)V7aB(${N+`+gkn^4q=BU&;QmWUvb69=Gz^Z8r{t+l*++LUmp#VnR>+d92_TmqgY zdXLIvy$`iKV^0(GhyU|`EJSl1rh1HK6p`Qvto<=zr6@58^A>$+G{~!`%X;pYQZi$m z4zjJWu8u58?R$5x+ZON7*Y}SLNHYC=SpggmBatBe#m)5MIM;!{zJEhmL46!$7}evJ zNbl5o21R8Fp{i18K-3fvEAs?p=HT579M7-}*|WqfL`Z_$E_A|oK##qaA7*C0A>UJc zseB<$>b`kjJFMaS)H?Dos9QA8p$@Iv+BYT|2OX6~`MSC_Yg_b)=-!c{94+8!5e!dG zQ7Xbng8RdD+bk>dJS$2grsD}pM9D>AmdAOT=KxtP+{_sK{%LdP!#K`!oyPFkE>~O| z&4Z|TZ`pcE;Ucna+U+_Wc)MyTiU7hKF%C0D3-D!)gtrD!5~gXW?s2{>&%TG`<6#ov zWosVkmbHQ)hmjePT-WU?V6cMGyA87~mnb?9gLQZBQ45ty=5pP9u6dXtJS;0;uTB2` z-~U^*ak?(|mt{F$b4l;bR1q3{uqvUBQ^V+UoeD%#Z``w98lOnyAk=i`T@#TE# z(H@qEd5+_0JU{exTTVwE2VR#}SU>r69%{d=Yn5_W?>I&!Jser6pQc($Y}@+w&C}_i z$9h65=XI?Wpmb-D^nNwpp89n=ukB)>sxF6l9tH`tL76>Z001BW zNkl z-ya#<8l~jRyU|u3k2DOJhdRjNdTrCp59gJoPGz9TOY`RNt$WJ4TC`}(wwfvEe7=(E zVJt({+neKIo{Dl&d0N`z!;=y(Tcc)_+$}t1Tedaefl*bpZ0^gt-W*12xH}%kA?g^z z$l2(0Q@6JDEhC9ZmP;E4m*4x_-;Wk+OBtD!Tu8x$jO@(3Zsx|;LMemo;r#f)N7JOD zNy9j6y!v4NYZddmhx@lrZ!Nkt_$C~AcU$J0IGy-#;NwYOo@QTTyRut$>+c`V6!nuA z-+y)d#GSMvn+-*8U)Ia{I#$l!TenQwx~XtPXJU{Tld`7B^=i@EWnE|?rAe7dI3VuE zVnsX1k7L1RZAGn`dli|eiU?;~&rA+lED~B&KrU3Z#5^j}hM}+qWw?V$)}^H-*bKoX zRO9A2WJFL9^XX<3HW2mhkt7tm#( zRYdIAr?_P%PT{oDMnZIvC1e|HAp_aqX`o35ge+TtABFk#LlMVKWbFbf_RIW8RN z+f_%8=>Y~lCjgN^Z{Ywbxuk$lB4EI2ph_6j`%Vj#Bh*3}H9~R~M4T3xGa`uK;V3yr z5}?H7iw}N)>HFSHX_y0stGME6ty{YzOG-j6x4XN~t+ib0k_rL?#2ixWsz*6P5 z_xIL*@y&^tn8-W`DAaoEqmQsqi#}#aQmPz}>8H1Q5`I2c4_C*S4)A~_iIEPq08wk3 zaI_vZC1jc&d)t?E=Vp)i&sP}L_*VC!2i>v}mYvwU?Uh3+MxUPJi z_qWUaS07HldimuqPJeezC)26ZBvDFJ!`TZ#MoPoFgVidC3P=_R9FFc0h%uqt)Hwn* zc~=|3kVph62m{1QrNWUpU+--+(~dqx6)=!VI3csSLpYVnwc==lkfa7jxS=EMZ2-zp z)9E+}1N-dz9@Byg*CH4*!b`=al2C;EoE{oZu*k!ELgGL~BqC4Z zCBa${e@@*S0H}qHV3csThy*;qG7vl(iAdq3jt-a@nVk_IYR?~?s|Nsr06`vM*1`XH zQS2U`83W85ATa#r?^p*ghb#=i5BzF|KVmrp9|Jk%8Qb?Cnh|E}G?lnl(M zQv*>#Zuc%oLoLEfqLP+5jRCVzN`VOOwsmdY9mv^8R5Bnt6YcvBVObDxs<|6RxI51I zfY9bw-|*8RB&FFs=L`u%u!xLl+kIz}!wOH&h&%|fH`|);volAkG@C6_Q_lB`Zd2DI zmaG}mS_>dwTMv-gl^`Wbd(+-x+qyXrM5&@Mi1~WE9}er&amkGLeP2s<8y-kZt-Bg< zqB#{~EG4(m4kaJgC1ttXZ=6MA)SO*?YV7-TLl4iC!ol1z$@E!sslpThG7aN$n=$Zo zstJkzn}7BX`cTL&;_lAD;m~w4LrKTWds7^eAf}IwU!8yRcfR>AzCHat4Ez00|M%Z~ z`rW6ui|O=90fUhjP9@KpmeDfHcE&P6jZD*434V+vtWy zOBEsu$3i3l=i|a?xpK)YOc17KWrdmvB7}X(T2e5RLlDC-jp+zH=i@mQkT7Kqn1pdE zbX-{y_>7@2hCh7B$8o*`s#`=n#>Rk;FV4q4CO9#1AO#YcYs7=P0)&`gfWY`i`56Ep z3@kAb(46i73@#$7sy!vsVtClLeNS$V(z`AOvfXg&s++J0tJt$Oo$Zc6R%aY+qOgRCStWhNraKy z_`P*t!VqiJ_dpS!=Y2J+}scAA*FQR_c`5| zKfhfMOK!su$U?hXgw=#~NxN+hGq1$p;2cIls11ZfG8_2i))-O%5jwLYMDL;I{Ez?H zp9kwA&)&+Chy+qb2ZP9cpG=xk5m|rn{OAARxBq437n|Ep*MIXj-~XG-^`iYBpY8*2Hw%yUuX8p`jY>K8P5IYffdw<64Ab z%wg(#>vw%jPOTOUis2dtqucZjhU}s42(ClPO)@3H2t9w~j~`cIaPg&ZCdou|&N1xc z)A`Honk&D2l$YmnSdrOvK%n2|6qdjUp#45?o4&o9L5ko~g&7>UcStGU?>Z)BA<(IS zQcMJZ!b5YR<8me-K@?&P)DAuoFmfg#K9nkgheIlyG}ObEl*-D4aH>^=m{F(C78v-) zJANdT@Spry&gqzNDKL55b=S}^ z0u@L9@ci*NAOGS{KmO+s{I_5J-CzH|fAzPYfA{0t4^6$_MW>R7upVD*S(3XObOqb? zjhA?STEG5yI3Ej8^ys5^E)>{-ysVt7(+o5l!}>@K#;3PWKfe9&!`pWn`}6XP-+uKM z>#{nJHX1oQ`iR+lN}^+CLDPUfbv?xFnj{4PLPCsE1voId!Gyp>wRhD3aP|hEP&g5B zkPq4jjT5{)uL4$ba*e)2lEUN&M#iS$K#6E;+NLpMAK(^%{?q4vz1ZcB;UoY74z3Pv z24k48xJF{h8EYYP2YIZ2Mv_u06M4;m4oEN`HBC1+@<7RyvZaK80gOwAB2fiuMdav1 z%>oICDI&u4aq_?nK>$C;5s)#G7z+?P17Uu0@&0~M5+;&Js-!k>s7}93~CK6VB5wp8`FAI3+fv{zQmiyvW|H=!0Eg!nF(EWOv9lw z^YY=t%i*Xg;lu_2De9bYzsZ*`ufz5%DRGEo588)aFZ=Zll9MD8BB69VRRK84%P&9v z>UcZ_=v(`bukEeDoB2e?OnH^{dg%cvuR|?{nUIfN)+G-eV?@o#DZqgSBq0Ms;71i6 zJQ5dRQqrHB0PaG9Kuq;MF5x^nXiOk@y=a00VZ`JJ)4>dpRin3&&xc~B=LH2h0#YWS zxOWpys#9H#nFDcI62NF0xs?0R*4!{nhC6qUH8bF}K+}9$GKw;Qdq@hKPAmk7 zNX+COW74*H>+TA|C`gjUDS!xqAjln%f*8Pz7??65jrn-&^-#6|LPDWOn9Kt(*bxIF zQ6fe_B!tA`bks=k_%&>osh`6y5qCmE2u@rQ7NT44x6QWOOgZf%!1U>y-~lle#y)aN;r^H~ZgZ!A!;&q4Ia1}6sSxI3q5k@1t4k7reKd7} z;PaELHP$64LE8~5A^G`P2yD!_U$pHs!%v4yfR47^TP;VQAS^@<$dBT=4e+4Lb(?c% z;vP6=Tb32v%>3iIO5*G2`!>PixMY&z5ft9~+`1mtx+FrtAHUqy8~}vrn-7P8*r(sO zwic-+`QxBM`)wbI+w46^Xp>qa)2ufk@q^A7O|MKra zg1~;g4`M#m=WoleU+ORC@XO`hZMP?p=*%)9cn8@#!GTp-kB3wBBvZ$b}@+ z-dw;wzy0-`8`JV}{buFGG5VanX-W<(NvNiz*eSUKfk$heGvx%cDH;l=pa}&%B*Gjm z%ZiMuBZ7Q}AeFRe^mwf6Xe?4v@|^8hms3rpu!D6oL-er6IW__kvJinoO&AC)7yy^s zfJdi_l}He#8hF6AP0&OTp^(8voRJU$1s}nIoSfYsucg-l1k=Eh@U&2+KuEc?=Bkl0 zKt!9GGOr6A79^tSHiv^I0!$FZh<|(+<$=uT4$0-~!}DRub)l3U3E;s)h7m?iOcG2k zfpc1fK8_O@9kFvX8$ZqdAMX3_h_Ax4%_02w52rb7@A&0vqeV)xcdHA(JSRpNb24*I zgu&b1+djvLIW^@#n24cfK47*mQzy5sVLS~0AT4ovN)b>O$k}Tqj(I+&%EX9=g_ng( z#nZ8z4*d1UdRXFgq?Cbx+l?gQT8PQQ{ky*%KfWS*E;;ov`f$R8&b6*>m{3OHTN|y< zw!`&0E|=D4D{BIDRgLiH!!kw(rj&3g6&ys^gGTe&>GF0XMo&~SGX?}+FYUe!4KNQI z79Nrqz$LR0+OYT69bD#A&T?3C;Z$;Nvkwb&JJz!IP8gDqlWh0CZ#JfTpt`C@&Lxb7 z8UI)R{oiqz0R*9<{0};?_Eu-@47BIV(1*ZH=y?6Lp_xe?nw&he11Nh z&gs{`I=p<45%J}6X`>k^b1qVavN^QTwtc_#mKXWd)RA_k`4HDgx+;3apVM`vn_c|j*|G1sm?VqGeS&b`eS~tWKp*mJSRkW zUQpe_B?(b7YZmCsfpfN$$pi#}%&hqwN??ykv{@jcvl+NxTJS&;IoYy6T{yyY!k9L7 z3cDmgQ3DGP;z4+E``p|2_vJ z{W`DLzV8#9!Y6Pbm`+CvoiV1Vs;i+RBTw~P-@pCluogO3{`RZ9Ry!S1DR`(9s!2j> zVj`B{l$miopxMZ)j4{mO@;=`$J!j?`WBT=detx}|TxSebd;K!%QXt~}Is<$yg#fm_ zzrAnQyPHPa28l~S2tdp=7i8Ay=5}1={nkq@ImLDxpFeK_2w=I;a-`GBy}33*Cn$Q~ z@8_qb6l#4tK2?}$jv$Wb69aiTsA`{fzqOj_aFk*2`gS|5(ubR)GJJH~yWPKBKMk8(-?p*cw=d}79$UZd*15#j=k#(qt(n)F zfAjI{r}N4Q4kwD}svUsTO*p`Lsmq$`LdT4SAJ^{Yr9S*`*xLqZ>#@{azIl26csx4J z%JkuQd_J;a^sYJv0+^2b{yuRw-@5n9{jVdfQsjRQO;xFY_%hJg|L+&i=|?B*T;W|E<# z$jJ#JLWY{f%*m2m&9CqGo3>dh*M&2}-p1j$B3PJ4z$@h=?&vkEhbdB;vU#2JY%LCy@Y$`)*wW14?F%Rx%gHLQ6uaB}z$Z zBWF>!TeJI38IT1C*&vQ3&0z|mHr7MAZzD4iK%1I!QMa{JCUfv0zi+!h;tW9Cr{Vwk zum8tkn^19u+kK-GwCm1XY(Bv_CnPErx`Fn@VYLe{!#bZ{jRwa9$12}Pt0 z|ML23F%%pC1c)(zczLOrx+*6ab{9rh1roth3#s$#+ssT68{lAGz_m~q1G z-Xx0;KOR;RQ16*nOxSgI^WGWBkTnSynJKtOPSBfj$~G_&Jx+W-f7V2FT(g_H1pwq! zh;1sMgFQYJ9&}@RTyKZvoHoE;-Mj! z3BVqtrB~C1#z*B5msQC^<8l zg98S*he0??!bd3U=Ur`h)bWfXxkC^vaN0>rSDDUUEJyVou>cb$t8F zr|Z4PoSf=?9|Fmzx(5p{YaZ4Z({QVaOX9r+Jo;My>%aK#NQSmxdthtE43tS^y~yBW5S35I|uQ~^M}K?HE1CXRYI9s_3A z8xjaJ3642LsynONhvy>%AX4w`dhK1qMjX$J>gL1EK#&>9*rlRtp0=HjCv#_5T7M5h z7BdP{RGU-nbUJ8jEV+k4K=1n9_m@+B`sO346FtT^N)b?38B-~7*gzvt0ze>UeiR3R z2|*}=QzA(az_-nNH+9$HZ8|ZI31*sv0fdN%FcBd*Arl)S85$yIfqNV4vM?!O0)k8r zB`ZyZF=s&B_mD&)2y8Vkpax9aT_H%A%95B_2h6EzFqH@)!~+ci*OFDI`;?r_fxyhe z4apIS<^%?aU{#Pz#|5&e>TvaY8}FMcSQez5fbjk8zSeqJ(r$yDz`Tudy?1~F3g@Rf zy_b>_gXvWD)@>@>E{cE_CW(@S1@x{6o^t4bwkaXam`|sZdJERmaV49n(B;y{gpcRC zK0`^KxdcvjcNgU7x|d^4C@?9DeE<4>yU!0_Eo;AIt46HfJ*=bU3A1l;>g zqMp{(V%Wgf&-;=Y#87C&JeG1e6f_<&9D@JxfBk2(qpJiMP!J;k5`$!ZI-iegHPiE< z?ECh9d(Xv%WljU2wp)p8)7W9`aqk@>kn*lqa41|o+*I8Z5fkP)=X5LSq}s0A9VZkb zHy}^jFp=c$%OZg7%iDz_)>`_s=ks|zEC$0>!|=h%TYy5!NC>Hr4Se$b<#~LL!_KGN4lSS|As^_ZEO= zO#}&T&B6}+*l0Gha5Jk5r38tIImR3SQj-WtE|f_HfdNFsBPjT>wBQaU$GTEZkTMXN zLomZ}!Sm4zb)Va9+pc?m-+I#k)O8VI3UzROS{DF?h^5pp3or*zJJyBtRvD@Xo-*$X{&QDJ{3%L4Euj8&@uDPUNetmd37Z1z}9aio` zAw%2ZdX1mn^zAygd!L~kM2-=vW2{S+497!CBuKn(Hf(CxHs;fF%_#_QD2!n~@p@^u z+YH3p1>WB0=!1edIAu8;<+uPC?wek3+M6->VNItK6Y=cO@7i{4``jDaq`G@>`*fg`2xIs@bR!^h9oCsn?hn4H?&Cco7-iaK zFcJ%ibk%9}X`_g^+4Jd%3pg=T^#DX8nqi^ceFRWO0SHhF zSASq@gb0)hu`7-V#GH_~O$%1M@|(9$N6Ph3XU<50V96+bi42I z{ihBHWMDgD2qQ=VL+5zh5{n4s#EcIKGl;OO2@`=L03(XHFgh3#c<7{xp{Xi>8JMcu1h$ey7?+BSqm(o! zeEM_^AamXO-1qJZ?uw3mb{0qU!-}K#erIIhl}-nEKH$?a)tVC1Y2~%TK6^@qlK%R) zhd=qvfxwrXQ5-2!k|Ym=S?*io6r89eD2a*iw%cvPZ4Uta_)!w^RJ?7Pi!k~e7S8(} z?{^pj_xmo1^D(Q&zT38IuIu}~n}!YrG|pH=dd&OSDN#zOeSlHZNaAGp_N5_|K5QzL zC6z*^(Dv};Yf5hL<+4qMKK1;()J3+vTfpVk!NfJ*_SSAuN;*FkPO@!o8ie_N+YePZ zd7p@e_ib~G={~F<&-v+;L2QoM?!Gm99HS+X0D?zhOEu>T6z-ECJ*;$*WU4s} z0yy|I(y2+98671VT6v2mwwVfH1o)heNHw zWK&^|AV>yE&im}(m^c9|CU}@ONhI9%rT~;OM>tUy=DzJE<;TmgM=0ALK@miuvQVC+ zZc{jm@bhzFPJ)aieHamqT{)$__r14VlGy~nlA=#FbjJMtWxl_AIq@M&rR328WcuWU zW#wsl!f&ld_gks}=(%t>)qEJX^$s&k6%*E)ma@?M?SkNmm<1s$0Ne~i`e-`6se*f; zJMiA!0K+u`1EMTk1cz!^J|5P$%jetuTFXH(SP}se*yD;`7`N-ocK`q&07*naREUf* zUGI$&fx+wR)ql3f9uT9(3`)!y+=opF#c4g~bb97Pl~r;gNDEom;kaHd? z#})a}f9~xkQkKWP*3)EK6%?N{&@F^ zXdWqvgRhl1vh_4|8_w<>fJQU*Nb*Q9a+uHVsxW0DA^cqFL(rKD0q{fG9ICEHM7=3d zNdyO8`8*AE%t#<}s+(e)5k&0kdM2^f`fkQB0s)B2!a4ziy$>PoF)gMI5}~0=B(pVB zKnNxbL&^bY)0Kq~d2gdqPC#JO9mdb{J*|ZtJ&>r zA&ImxMe%m+H3?NDfb*I-GJNNbV`X#MO#+*@dXU?hO=w9S7`)GQHNhSH#XWurY7;5HW zphC<3s0Z*uGq~6wiB236BRZVmak~i|ekbq|r8j z`qTTRq{Umz-OXe@5F>p5<88Pe*K&S72vG0#errn=o6$Vg!?K+7gW|7+z-EMe|LKhc zadb%`mDLra2gIizZXdp>YsSP&AFa=h3{zv%Mi5OM0IJY^!z2jW!yu(}$aUhr?eXP@ zR?lffSJZl7u$ZGawXNwdzIsN~T2kwd1(WdZOS@~BBH{aOtV>y!g#YUQ`pbPz0RjX; zlAzmuRgW=U5(gHTfdU~&R<0)V)*2>{1>0DxP&1Hic^ z03-*8Fed;I76wFeQ_Pvs)q+HddnZBy1{95#nJ35w3!tlO##4O|x2tkCQ5T&M?WxwyWmZ2lBl7(XuN4jqt zXY{Z~&54=EbcBac$Aa$e9!OB0YpGV2vkcxIYKK#LeI3^e{pp{6ZRvB#`B-0Ssetp= ze+rn4#huhhf)UU{Jsxpv_Zg-DN`wFu?iApJi0B4kk%;PH`R&`=`}_TG!c5qvtD*bM z!jg)4m<||w017(vVT5E9LJpvT#0W`Nfcp0S>2#8b?aTXpsTnke@~$(HASx0OLoNC3 z^>*2`wb+J(y}L zw2$_3{`mgo^3~Tzch`w+?^7K`P2s+|qqRQ5FqL{(>zupd{Ob8|x!fV>bWDNJ?p-at zf0@8#^qy1h=KH;|&}AEkbv4tPvzhO$dBo{Zg(ci;$?uozdgOhNeUHP+IWZva_woGn zw2xhtQ37G)oFU+LYdHxq0>ImsJsgc-UHH6|*8SEtB6bTw2Sxw@3k@PhcRSX#7P{!UT@0=B7wN}zmz?cvSoCL$1B^0A6>^tai0FX?} z0#!f)O%a){VpL8nG>6rCaI$gHx_nrduSyO@2;8^%1Mmbu z;0cZz4oV>C;Nc~=Rbhrq~f1S8({VzgE9d$*Xvz;oyX9m5gH5yR~F-+g&H zt#6-OuFLz|?yfmk2*FD!d6n^piCx7_q-v*=DENY=K=BKw#xYkThPgpV#!jkhJK3%)g zes35sO_+RlyXiTq6vgE=PV;>Q%0WsA>b?rsc^*%6B7GtV5;jqYv zzU@P(5GYY(5fEyv3kd+TWYF>YcIC1_fK5dRjR{U}F6l862Di|O^r&!Q3P4T*2-f$P z=MzXa9RQ}TwH8nxs_y6@>U~{u#&X}46PUN59MeyS+;x(ac5nDU{m=gp!hwY-5tH{W znZhN!16ip@vKX@?>jWfbQX&9HHTINv%vn+fo9Z5jYR(TX(Sn3qGXSWST@4un!PJEb zBZLSz^*M4%a~c~_hy%E|nF!sMVp5pFe+ zv7)|82|A5Ysw`e{^U2m81{L( zQFzW-IA3pfRRw^z-9YKXA-#NDn0=^@=7077yq0AhV<2#VnBlslAAWorW``&K>ggcC z>U_QLg+q=-r)qbmbiIua9||Ln(Z79u-kWXFYmt&^^vNhq$6@8|vj6a<<&>Y!W#6}4 z%C>bfy6xsL(a9%qE}Y@R2}j>4rKwIJ783v%lY=H9pEH-`%Qb9(jZVpfoFE++cJ_5G zqxWT5-!Fa4@$HAYo|pS(RkDTVlKSx0b;Yt&{^9K{=VDqz|bM1vuRd4!U?8W)tvp`#@d zG9z$gCkmYo8i$;X90K+}nJHx^XOHHFDk=MQlI(_*POq)>_x~ z{FGbUnK)C-F%^cSnvu>Qp1P0N+eFvSQazTdiq6Ux4C+uRA*!3_)? z1hP{QTpkn^0;}H?6L@wai~yvF0OFiU+yf%Ol4Jlz5r!a&06-9efN*=zMGiSJCk71U z|3A;jlH4Gsu}m+BfB-8|F6oE>bMETB=9T|Hp5CQrwroq!ddFqXb%}`YviHu*$#bg8 zmV9ZzKfqXEgc~&YFMtrxK}JF)%QBX*Oasfm31JBdR2a&xs?3uoGxz>35wR|Fjth;I zMKcOifprARo9<4MZmdp|vu&Frh^uisy8*Y}>DL~?ywSn|WuFr7v9)!ffhef@H)wY0V~ z#;V!c`rTzxQJt`DTV}4Uzh2u{pFX|3w8F{?b1xMTdir$g(F&+aML;<(kHuP31Ts~* zfw$JzouAI->2eX}iu6uQxh^f4S>k*u*7siU^kKB-l=*NvHw$vQ-upbAoX6#D3B)w{ zSg41hJOrC$bkAv=0IZu8DZz{~^{~_Eo8+xU8qJRv3A*0z=aVwz;dD0lI^=vAyTYxX zPebovM!qyHGAPx;GVs?QFSpfhw~hYMKl=MD;$h$%int$a!Ssj}DwD4FZr;XH!=YL{ zdSQxRQHI4ky6?=HhEN8gvMif#)>S3>pt_Kmk6PwYS~$RLL5c_}GDty0C(ywq6)t9- z1zT?_bvl*48hHw{gFqxgdv^p0Yq&G(U%RIhESf{0xhJK}(=^T6qxH^@51*>&JU%tM zXWrk}>*{u%Y4<)TL(-g>e5l$NeK?OTRwC}*dyk|@;!KL547ex3-2=`*h7d6#KnR6& zk8Ti6cS=}>FefsTLX?p#sQ?nmOrjy+Bw;2x{05mvKud&~(IW|zpvvTyy^EGosBGPc zNjWUw9*MNhghI^swmn_S?(0yb2rBo)E?-@Y2Od?W-I&!k_`LZn6 zWqtYlWxch%^T8ch@2!@~C4{(+TqKWRYMt~n@*rR?ME-ag!_AEEcKh)7q*Tm%X4G0+ zUrB?-i|V%9{YJgDaU=$>OH1W4q8vM-43)?vfZ9gg{B~Q0I!VP`nL(>Z5n}NqzTact z?LJ_lL{lzO_0ROS#{-p$JnvoF*1d_qXe9n1;)F zwB6tDUaBjlxr3$kh#o^NoB3%PJ;`iGXaMK2#*XWC+tG%JtIE1BRb^{s*;X#ZCd+zk zVS|`05?dz_!4)537bSeZ6OBDvCIT{ ztfg4wcDpY(FLk&@THC5hPgi1M`SNAWq|9D*u-NFpy&=G)AY!#lm_iU_zPa}xDd3DD zb&%miwF*4L>()%=XhAW{p|1%igM)>VVqJZxCD|kt>7++ooQ6_>sDvZ}ScyDxVkLND zoeuvh1rw8&h?4zrl4CK{INM?#yO6k%h3|Xce(oMv zmiBhr-CemB<%nnWc&~o3G0x60rWu9v-N#xTwaM7`d_lV?E}$=03)EC54V_v^i2%3v?oR!i*NukV|d>d9*l>_p%}M`k;phVFS8qf9!C&ufou zcM+6gNs)|j=^Ibum=YFEOLtFmgz<7;?ybLd5^TV=iYopui+gG11 zBD9;2Ls6-3pWjs_vM*aF833g3^H`XQnLmDfFmK!52Nn1H`IqbY>2az#&*PVu_hD3J z11JL4GE+|Vbl(;&B|WW~7EvydG}co}kj1PIzr5Z~ALbuE|K-Qag`+iO?@qyv97G~| zt=w9umc3go6D3)4wAgwJa8Xkcg0#I4@Ih6Khd| z$9CXb8R?!<1<|@$qz$uA~ENb;IK43irz4XgArgx zMus7j714=~COyGv`4WBmTIllg>tBT4YR&mP1YDI{TLSD6wtIryV7uuXM zcgti|wxHIWDL@?Ah&TeHidpZ#%S-!o{`mZ9;;|LpYmuQUWmb`?YB#&J^)d}CShvPn zImSSv+G{OtVV<_q>+9|L<3laEE^XQN=7_{tnQFLM>jBb1j*z(zG>n%zR59!KrE$@1 zjiO??r`04D38s2qHX;4}AC}KwmdoRGIZds#+q+5Od6d2TI4DVN`>kkwx)f1u=JQyq zGQpC0+jr{$5=hsmmcH(7+u+UT^HfiH)_i??@2=a;mma6{eE9SxsTTX*!!o7lG-@Qa z=3%acQY&ScB>+`Q;@+AiSY@ojgmp9TrbI(wX%R7K0KVC-(GJ2 z_WQs1JAdbIRefxG1Ma{7{mTzO|MdKL-unH+^ZE75tHFV~^)?Pt%h1hk*936BP*H7t z-*z8M1)4&hK0JMSxsB!Y@^<^~tFM3an`huuhuZAz&;IP+{EgrK@#FLP{r2+9kMH08 z?$g`*@-Tl@NB^rIzV{$09vRAM&6s5G;Y4lO=ks7;MO2wv^Pj$s@{O7qR_9%&Jt zlJ3W{x?2RmktCVJR1b|gk)%f;h}q1DSPLbBKnV^DPm2r?b5bA!T$S|Lv?uJ=n3SU~ zpXYDRfBTQW`R2Z^*Y*9i|MKPb`|)Bu_H}a=O;h)bMDLj$=H9n{U-ll2KrPV12QAqQ zT)(_s=eaEVN+i=%R4oF}55IZ5)LZ*0JszhM#ZJU+w{oiM{dSq>Qfp)bN$>7J6<)7< zQx`?$vF)w(C|X*#0q1}F=RfHqg7-QO63Qjx*p+{p*WQ%KR*dtw>~CD_?XACG`{{IE z_oWUZ9Q)2;LWElNzU|(mnTzVSwr;UrcU1cDbS|Q&(@=$)?}cb>R#b?InTnQ(?rH7l zKaemX14VV+Hx=!D^L^{7?mR!#a3@cXAVFFrdZ`7*KfPRE-y9N8Pp6{l5yMpb-V4?4 znUqBUpgSn32=#1bDEr!kxtqPd-r@Z8C|^HcpwU|=6jDxyFsBfUEbmPu3YiRJDWkbf z!`RJ;5s98o|NWo-he|1;$s|ncwz1|QB?!u8+4>~fS_{$Jy;Y%k)Neli$z}d--`ahD zefjd!%kA^!VFG&dUJFOZ_0~$M0^S<~7-~48_jWl~E@(Zf6rfz+*XQ%c=MP_>hNoey z*X4&leExUKX3g__s_a&4UESufSaeS8-ot1bM~|dPce5l`jpzyu3t=62jL4_c&}{3D zea|oVm(w(zrU!GObYYxNgVs5sN6#L{2ZxGio@ZfBwC*j5Jwq5mVqqklkk;>!c{JHU zOeCyKq|BKKLJmcdd9d&!(<4QSN01N!03rZ@4<$k*gjK3pXC`I|n5Ri9Q?tL=RO zlVysKM_+DXhJk4B5g8zFJ+ALAbZT2Xe-q=0*|Lb}bVLBVQ+UU6-6O(~>)wg9ZE?Lp zROb-@B5}XkwgH68qn^gv8$3c348AWG%2R<#2}A++eSi8el8_rUYa-0a%hE!)0Ozx6 zQ8QkawOc>Xc?9&eB~fyA8?47+v(b{)WZTv<@Ohp=zL~>f-L~Mtvxf&WO)~T@!9EQo z(*Y34x_1sK#aG`Wl7)o|$3BfClt&e$+?J*9F^-c~w@%@34=r4Dry$BKQ%&Ho+ZHYJ zJgEl#=|B6A%^XR@p;Gp(vGC#Br~@D>Kselcbm~2{unIv4skX<*r>_~sJiq_(hf^JT z>$NHuEbYFw4EBSpkSkwuv)m?%9+p)Atce)tT)q>6E@k)eZ@%4QAl4DbPo zgEG5$W2PWldoQfDYA`r}6iUfNc!Cii>mfp%AQ2Fbb5*$>`MJUc6b^V8(3vO!CQjfe zUn2-GCT3A&c)CCVB*WYj1`5g`B7h?SFgY0;D3#LTML{XCeH`VtTFNY42?=qymiguO zzOL{0ef4nfwzoD7rBp>{i~V+Af>=up??XK?a_>zBjrBebyjf;~Icu_qkC(ouDdrCb&Cw>kij8PLRoKiz3tYW2+bN1BYCyWH@-YQJUw9^bvFz5B&{Mu zzV-Hg_ocN-dFlK8>KyfLZJaeSJ)tc7*6+7{p2wk%qNtS$!N7@jp2uk%_P&#_R_4s2 zSxQ;&4p5{I!r%Y+r3{x^0tk24Qdza_7Lm)kC2|^w)Y=|>r?ykudp+qqjQj3{t~xB+ zdVQto%pV^H5jIBOx8AAkt#`Vw`-cx_2Dhz`W0fiZy!p1ZI+j3u`Eol=Ln&E@T1u8- z)PQ?@e&5$yT%K|sC$l|KhC!BnYj>+dsY8|_>%eKc?n$6|8kwmMO8?V8|4(-708;>w z$?O)0D8tmvgzWZ?ZZ^;A=G*Q}$}k<(tO9wW#)e z#nA?e08=u67_}a!_wGbos0g!^njE$_WoF7|ZjRRQ@Hi*>G@n^mfQT+40?u#( zf#42vP*Rd2Jd=ru5#|Ibm-(T$9%T2tr-z3S?cHzt_4hA7zb@}zu0NRH2zI`d(_FVLBdFFagNUd?;LI$|b6d8y zc^avzMQg1yWA9r~CP!u}CFGc3Cny84FGgP3wM8`F#xkt?PDEPr;i(#V-(##o%wIm= z$9b4fG8PdT*L7R^^5f69+pF!td*2vk+wpKZr|+!t^4{O>tqPw;rJx8ZRU;zFr%@lC z>Y$RqtQwRm(!+Eh3W4Xk_pQfetkx|=ytlq@zW39ZZ`bANd|Eoz9)8cC->K}b4IcNnJp3-Rg?-5r$Fd{Bp;d(pr{anh*&6t zlqEpKdRRD{Q<2eq2_z>F)-2qkkhp_YGPx908I$rjsEgL_I}uop4JA)#I-3}OXC1f1y`Qjy%PiSlteQEC|wVR;O3Jko$D z5;P38hzvSV4tw*er_(Uq+O5U1dD}fL!YRUcOCyH6_XA{^!K|D@$S<$&=V=-SB}Nh$ zXx0Fvo965pBp@I&)_u1)q@L+U%9;t^cMy-0`oY~NqskfK;n(-;r>~z9wwvu+Ok=H8 zw$|2dKP*a@hoPt_&+oUJdy??7uG_u;^14~CN^-r~`^}{CQu>^U*EO_X%$aWMQc_ojY`d2l+38R770gCuqW+(w-&FjO_5K} zQ!_6^9Ynu;xz59|g>S829;WQ{^5vEi*QIwup`0$Is#@@XLLjK`ZO;e*#5~jiCW+k9 zm7|%h*WQzg;xZRy285EqYrmsa-(n5sWc^G?#xsO_pmJK*qqZ2!t zkoO)T^sDxY!JehCrwD4v2xA1Z5GilgRHPK#_RXVK_CWWrd78Jjb&vP=?Qj0}L(i5H zNZwXIR%tnYZS9m=BX%Yls<4QF!CbWL-J(Ywj>#$r+|3f)TPSe=eAH_p^K{vB6)q7T z){#Q2Ks4LlZtKSn4~bMR0rTt(q0CyUxfw!1%mqS`nE}skeM3O&ky{pmgcu?`GaXC} zBA_EEBO@Ioi6ZPwL|GybhIR98@wfNod>X88qD5;R#$lB6!+ZvT*p!&a_FROOQUlEs z&04ryvWf<}g?WUhF$w1p_Tr4_9^_I70XtEpq_ND(WowI}Q=+xI$gwzx%%Qc?*L>Z+ ze|i>X0h~c@p1~gB&7~qD9Ecz=Kq^0;hRd^rryKX)?t5={r1Qh`xV7eKUq7D4QJV*am>I~-Vyx$?dE0zh?(?Y* zMfcUsi2j%V^&fg-6h@Y{wO}BlNGTjZGM90zm36ns7GNeVJ^H@b(ThP)3UMOBEj%)l z$h^0Gb@y}tAc2U~VNxlS$#iUKOAyEtoQVWtn6+?8>xiJrgK`VowieL=>cQPRh&eFT z3hJAO5Q-ABWV)LL2tguZk<7&dm1|Xx>_{>WCh=%Rc&a3~Cvb6%+&^C~4WZ?Y7@Qc5t9YxLFh67!UFhDkF|mN}tA4c>+~m|Jt}JPpHF z=a2JviL`CM|M1Hnz&;P+t-sy!^V{AGciW5d)8jZ5ou{IuC|7HC-!_k^rBs^sTlI1q z2BLm0tdu#OPJPLxZMXh%_g^k2sgc)N3VH{ug*Ky|C>q?v-o==ue zz`pw4Xi?fW>@Wm(SWiMb>)UIO6sG4&dqZAYdNR z_GQp4&(pS>LKsS*h<>}R^E_{BtHXdH)3EGqT_Uy^=Q@-eCP_d^zP#Ks==?NoOFRuv z`?k@){8#@OX%wvy5n)0FdGImdj>sm0-S*a@$>v$AYN?dPTVA(SB;9?zuH!UENQQ-( z!;?v&EfPRwG8jb)gjI=^*|&9>E|ZA3(`B5bQc}0xdNUO=idrz};0~rL0%n+Xka%`x zW#(=zjS*Su*rHcP_w0KLNhx}s2j?`~!}sQ9LF?9D-nR%IC%NC(eZj-i(^zaMEUW=| z#;C-Ui_UT|c|Fo2Qb|D+nM4(cq*g?c)V*=0WmpDCD7a_}ACI!( zkv-B{hl8jf;odLvcjGX4UMX{Le!uC*PZVi{>LK^{U5Jy%eZ7DE@q#!#o&F?@UYGuU zyMB53!tz(&epebii8ABRp>Za$rc>*yGn_&w^KcP@7>vwhB0+$|jB|Xy-m7RGR8_lm zj|d7zDLnVwM?ts+V$fNrr2D?@kpy9+3ki`>coMeWAr#cydUwCCE<({=mCvWCN=1r? zXLvYOl4cP>p3&X6rE`W6*UEL2t?dHct=F+|3Chy<9EuhmZ_B34g~mM>rQyE5&EsQw z1hrCP+tw`?CQ>G(X7aWg6T-)R4cWDhV{dWmw>G>D1I&Ra+qEUjG|Af5(^FySwxbqB zw|dkI$*OX`Ov|=3Yu(!UJQS9#wJOry`s-pJpH5piH~=7cWcmDhf10&EmgYXz+QVi&2xXZoN2#XkghVKyYO z5&*M#s>Cu#ZPtMhW`hHqI9A21V`S(|U1 z1Y%EjGQc^N5W&nrM4XTV@9Z9y#>_x))EmcDhzs6)3dTHdaELr-NReAfyZ@?IzfQmsf?w^y~kF#aA0fOLGau}RMwvM`R!ioX_)9NBPd3yVN zUl-fcrn$`1Fi-;6la_T~mp+hAvp#-2t+!Q_hk5d?Crp$h<@Ie>HRk$Z`~;0*ifLr` zc>i*T^3At>&DQQ8A5Voe`^5cRbf*9DpZ)`iCaTJ?z_PZ>JW3dmIFm3W!7?^$Brd9m zh)&jfEfthHsKxONaXdi-obC)KqWJ&G^qCAvkvMJ$7FJbaD8qI`QtM4i;gVo>vvjFi z!#5{*Kq52US+C1BPxZJ|H%qSJhD?>>X~f)@2xKUPLs|B2U*83_+pf**&WQ;mW)_Eugl(hOjXB1 z*Uc<@)v++owG@?g-xJo!2()hvRC@Q@yKl|wT#AU6F`7j>v%J3FA0LN@alUQKby+F+ zd9LdgQ~iiy+kWc_+qYpTa~<1?TC4J~Y~i}!*B6ymFA6X-JZP)i+OYM6~NzNhM z9v+Ve zdUQt!NN8f{vM*cjL_)mv-g}pBR_dS__iatGX((l6ro6tjmz#U!bgl|x)=EsIrZ1e@vOvoyWU@37G_c5aV#qJe%o}w zpjss&Sy{^H!ze`wK)2jC@0(aSQ#9w@%yyj4qj}r5ZXOZ-{5+p8rwkHmT>YnCw);!} z^l6&sLS*SuhdR`{E~_XnOQV=9cls~>o4?1b0(QzIPtZYH1rrd3C4-pSk=+O(W>Th7 zn59w}A`S{95``j?yLn~`kj#<{z$qxg0U|0YOwp4;U?w*QbFzlF-oqjzl07{Sn^q;x z9u6=f>EMMUDMgYT2U}PYnUP9lX~bM*w7z8$&@4QeBV(-M5yDJN5$N4TNfqu%d?Y5F z5U9+6F!jUJ*TMtiSPw;qhXql|bQq)XufU*^l$3Gc8ikYK-IJMAJwe`(?5fLU~W=-DBf`U9Yiyk59L}bL2Tt!7$h21UFNsfID)FOiP zFd`9>qzLywk4S+;P$GNSb-gP}_pDW!DZ`5lp1Ewhibij33y4&u$j+nK7Sm8XovC^c z0MWw%$st+{b7_4+f@oNm?YgfZOk)`*q(?Ub^nUA6?8oodO#SA&hh}SUeV*rsxs-}p z)ORO@GLr_AS%?b4yrl!EB&=c%WslS}J_5cnNbA-c-j}{COR1&m^oJkbiR|0oPTci$ zE`SwH65dv(+_o_`_Pq2o{l}`5WPX{YDxF zP$WfBjR@;;_;E?$VMo3VbkyZ=5A#M8qHM{GBu?+%x{s4GMWma9Q#yRCg(3`Q#6x9G zOK^9OAa^B-B8bQ&c6Wjja|9y24g`b;9Lzx(y|93eRxUh4iINDJL7?DnO;`XaLdncT zLWxXKB1Cd9GXV<1fmbJW>q)%#n8z{{Hn)sl_ZKoaEc%-FyWih)m_B{`)o<(Y^wozy zmWUQ>Z*MHE#rwLy16$^eN_aG8wT!S3;>c)b#DavdcK5w?Yfi~@gb5`h{u=A!kt9sX zBm~M74{#8W2LjDJGK~1}hZB$>N{UR~tTB;*C5cpyM44v6uWu7YSt}=!S&#mWTkqMK zRG=XMI%Nn;kQN!-&AfZYIE-%A%@TQ((+LuF#NN!;ySK>GxfY=!!ihcHk@k-7|6+Bw z=dUY>2DyxNSeE{KRn$jN#FON)S{Flu|^SQLNm+I zFR!;zco_7{b;(Y{Fg%?n`Y->h|A0k+4wT-kR80zDf*IS4AV^0thDoXAa5?Aub665r_~-aE2j6MO$wNdj!ZtK*%F0 z`MAjAg2O#H!;FI?f{Gr#5|hqA6|qQjsH(Njg*;M4IFIr+>=?o-kPf1tMyU+x-91Bu zSTmg{4orcti2nMITQf62bvQ=K3RVsfBH#qg6fTwqfpr6zMN|@$%&f#X?p8Uz*eSwL zO4|!l4`MC>9*VYQzulv4K{*N+@25Zd&EI-_`ovP7A0DTH!k72;GiY1yuWP$DxxZa+ zOc*Ni*U%>5k(3905&#pMML!Az(s1EeRv+3&;Q@fhem<40ZMXZb62n~FMX8WPdUmJaC=tvB%!8`19HkhNYpvUQhwwbiZN++9 z{b(Z3l-2Eva}p$KJ`QVw@%WYfxFA>sriWh9GAbQeNGSR?{02^JNN z?3^T`0Q^_B`(SDa52A@73IZZsin;|;P*TF(gB2NVC`?p@viAlez$sH0GO{HEWND%- znJGo8WQK)p=A$ahV7=e>uBwFC*0qcSGd#jujFV=XdmyW4@0&-^`COI8!<@uI0uV71 zq9g?=5kQ4X!l1-74I>hWgd`H_Y0J**nsuPwY^=lOGM=;$?Or|8`6vQ7nMfE!T!cLw z4pnlGqJ_#R$?a|9;e4rI$vTORqWaC>{Q5N1$IIzqp67{c<)2=^f4To(fB5|K-QI)y zzFB}Bo(-3iv}nY|JN;^t0C{vvA}A~yh+P#y#7RmCkvyKO{NVdF3nqrBXm|sXxP&11 z_%8$7b4J9f_TJ~5TV?Xz%p{XZLZmDMmLXU$AefRZLjYgKEkA)_ z1F|8jA+aG?4L^b#?idD4H%vfo$y9+9ndQw}oO18I){0`zzi?ySTu%@Sn24DFKgRfm zDFa+8h!j0QiU>&z#1ilxPMlNWu}lDZZ0?byV*&z3Dyzz9Z3C$*ij<-f*$C*dey2)D zH(!}Zn1x_|Q3bOFbNHIsn-OqxsoH8z;Gq_!!mMQ~hup)Bd0bX(n|=B1TT*-V5jgyA zf9$P2K5iDK!T=$%_4x2%Hq&Xf&%XDm&0yw>-7;Hpv&}J=TE>7y_re%R61{iZKh)tc z**d>%@_3H%D8c#a<>CIc1Mv7f&uul9%d8(i@XHsf<8Hh7^+PK~cUrde3~&*KdcVD{ zC^8eRZOnO!EnN4n-+r^qt3KPq!>$$v6Oi=Z{I`FXnGsFKnr=cuEHI>Tsj6B<2Fh%G zt3{ZR;h7F*76vpB01`oo3=k(kS`raN`kf+@k!fJIeskl|&96teSqK=g@SBb!#1etl zy_O+~+&8nT3hnh`70ja2U8L; z+Ppfr6uI4Ng))h5cn`uY@^jnUGA9Ru0+GxL2?8TB0KZA9B=KDvH^51tbi$1e#_)s@ zvoHsOISV+6s}jf}oKqBa+4AM?`_Heb?mju(zbLE;A<9F|PhTGHAMS_3-+cJZ>!)9y zm-m}L*Mg_Z^YM6pSymD0-ko}OfR(ejrALNyX2dNePeZqrC{-moy8A65#Z)4l6?q#^ zK<-&bWkw-33!zBzjJ&COgHGn%fpmjlGYjVezFqRWTT*gnizvbw6c(%;I$Yn~PnNf1(y0?f%h zf+IcpW__#!A~s8gGkMQgFHVrysClwt)B()nbP9^g(>7l&Yxn)#Pzt|)e+5&mMTp#E zIEdoA>jGf9i_O*mA5Uc{61@%uVF0ni0087tGfTR??{Yi=&`idgmn3Nd` z4uF|0;`ww56LS_FDY%ropbfZGMS?8?L=i45 z1+|fbJktd%nb)m@p%jiJhJ+9e5nhy+b>5AqaX18+012f{KsX^mZj{DktnY0*DkQ5>J*tQlO z!BJI(xM*?k+&ZF>QgR>nW!ke;-;alEyv!7y$OHf)7MgZRHLmN$n=IE@ubrZ#CAjWt z5k$A{8O@A?xnLNo2zO6T*UZIwmFawK>(Y($xTCwnew~B<=|BH3(+SBQKxFH^g}QOH zO=}7`B^a!?#%dOZM{*D#%$~%Ok%&mj1c6dmg!$I&_}k}4L@0|#csP;>Nl9QPrVI}u zc<}9Z2FdUUGuJ?nvm>k#*FiKYTP+1l!T<$HW}*i&B-3tXyzZWPTdWe2f&!MFPQru% z$V3NHNrcGU+z|u<6_J}76cijJoI%K}!Vpf7gAhS}n+*{vECf|*w`Pch777qSEjJ~G zxiIyVty@iGOL#6b61C{K&AU3>Wg)QLzj$@14^{TH*!{jv6EoxPaQE%o-~9aBpBX(x zUc0$xvCKkr`=dmaiQF1%F}U{-s6}KN2oaW^4rEHitw(}YG@>!PkeEkm60-z*_$_rs zL}39yh;ClcA~h2PMGV7m{Pywdh~+y?%+f)Tep_H{2x4YKsZxt%c2EQ$OcD6z+eZ=o z=;NJ~R2D(K;VcPimW3qBA`_jm8-q14Y_y%@$i zug~WTzkj^^?hjABx66DbsY3-JEW9caxQ9EUM}{>8b;q(B$>{q{j`@PRjyWJ4!3?6w%;@i$5kf7*hZmlO5jLgDNK$d<>T&MnQ;9oW0VGoJL?;dr)HQz8~x1pph+; z;f4Tn3M+{sQR+zl(?9z!DpyA;rGXP-ts~M2oFK}=5`k_G@J&u&cw`_;Pb9;lE0eOM zgfIhWJ?mI%VNeBtY^_IIdo2XOBgompEmFBqpb$Wvi31Ypkpx6hVMY(nq##HFOj--U z6=6vNYS9ej7Q#%(%1F+R$bb-MrfLC`M+`!NVB#c;3}y&~6_PhLhBKF<8t`;x1`D$i zT3olS4B`P1LYT0&Zc+;4yC@Jj@1~k*YcmQ6_}%OCbxpf)-{SGPP4~ld-#+`~IPLdZ zQ8cd0%2KIQ&-nQ6vmbx@d#{e4z_mwY#$Wv9pC9g-`0COk(=%>{#!OOS76c=6qcry< zQgcuOjJBFECzCsIva)n@2f2CALHf2COF5sH!~QS~nNCcAa^E_9BVe(nN`;wN z*42lq%xU1QZ{6v17?pDvi`>pYn3HGZPzDb|_HIiv%bnSZ5eBHKd?;c|TE9r9e?v0fqj1VNnlGuY1EO2zn6cUe2=-PUMt@nf}QHBF( z8OdPbaDVmi;=|+H$9bE|(Jfv++&_KTK0H6C=0`857x#Mr?;o#k-YsPGa5~*R4DUWX zit^IW_q*ZY{?*$L?^z@~C{TavqP0wdYAJ*mYay60`3=B}5{@K;P{-H0R$`qo?bNL#J@ zf{BLLzi9JW*V*1YKOP^(^=#LRWyZs+L$`LkJAMDt?@#;52mHr>^tWD2JF`3->(74n z)8GHSpDbx zcZbn8T{fBySwx32zW#82`|b6`-D&gf)%~l#{@Kq@r`>+H`{wO?;v+GKHwZ}v<+^M} zG(H?_v+e$HB=X+V+;+Q{rR3J<$efp}R=uuIr7BWZ+iLN{ILvboE1$gjBs~{fcl+J> z@^n1zJU3y8h-#%wVeZI?mI2jR#uoqpAOJ~3K~#&iVXmr!D8BO!B!Q3&E+F^piNa7O zCAHt04sO0z3$)C2Tcr*|Z*I1V-qp-$t#_s4yN1KNBY>;6|id&f10 z{bb#yTR?y7T6DWE(ddiceYv)4l@Tyzc|2d&Ew;9F-&9ngyRjr9DZ|n-wa8&CLs6zo z&)Yx}DGq0az~~?U^S>8pg}I1mDIkQS_ZYbVM}5L_|ur z%^bH30KStQ`L?50qVG1;1Qiq=+`GF+a*~I$LWx15guu=51tFH+LpXt4qnE-gK*DwL6^70%iZ<52qBo8W83nwZo9o4j`G7V{@@RO@RPpz z55D&UBmX!5;a^|3%is9jzx{ALwyjU&u1app{B*uNUant#^X7S8yuSYBn}2gU9(JR= zIPKSUXbr#q>NgJ`-OrcjQHI0rbUN*UKt`Znuh$N-rDw#8mv_@N2Kn`RWpyS}9ol?N z3NB+xs#H(Av5}Z-B0zrA-X*KKrz6d{NCKXXH8VwPN$N$$o=dn}?=b4!+{JoNsim;e zZFj6JseA*ZtW_&Tf)ZJQRqL)dyRNOH7eRA9!@oEp(Int@oaA4-jW^pZ&VJ15AwQ%=~bFx8LouJIBeg4A-D!9(`hsURg0GG%RU_VOP2~i+JgbP7S0mv;{ zPoxwoi4dXmpnv*je>Z@+LkM}>N^TL9M6@l9iG^j_jghUVZ)<90G9OCq?!sKOfJ2q7 zxl;-%XA%=wExHhY=TG8-u#5~MN0TJ2VipL#W!8$w)?2Dri(#Zf!c>=e_3+3Trg|%3 zkb#qkLOii6xAIcnP1Cw9L^^0yV(Z2XRs~5jG9d< z_MD@DLE8IDtfW;WRJd|Y1|^tc-PXsa3jr?=FIsP?zOET7ZL1Ia7t8kelRxpCy}vYdxH+@Fru`SRxR^7ZSVe)HkW$o%QQ|HfAC zl##LaIGpr9`A=WH9P8V!+t;sW4{BS#Ubb{8MW>Ub(!4EIMwxn+4p!8jLEuZX1axYwyjHil8!k$kJy~NrV&uz#$p8qDdlXcHEq**9BF} zG>LWZx8X4(NL4`O7M4QRLWOOM09ty>oGOi@6hTBVR{|9tnI$M&TPc~ClQwTH*p-U~ zJZBijQI{oN{|1rz=@(OC*;-dt=w`hUaZxA{P%Kgf=6Q>K1_*)dYDpRZm55-9ErKC8 zr&&Z72~viD(^a{fwFpYm#b>_>3g4j^!RppzFc?XU;!C)H`R=` z8;9Oj0Hu!ex)IlTX}*~<=5;$A_V=%*ufBfMbE(y8EdpUCCDn3s3@1?7WnGeK zUfPSpz|7-RGa@2x_m!%`%*4DdEh64uw%t@IavCQFN1A)+s8bbT7G|P!M1~d~+zsS} zROU{A+c=Eh5%1H7aY7m=c^Z=yo04817f{twiRSBay{^~&{rKW|uUUKVmbia$NVL;_ z_wASOJx3bz`T0_0To-zA`n^B;(I34$o__Y#m#6!e=gak%zxndZZ{M}%!F;(s{p_bd z{qW&(ojr_@WZ8*CRL7C5dzB#^<8J@*{vc^@-o5W^TW0sjfG}0k-mNHm=ly;B@Fz!x z)sS&lzxd(tcYf!@vW~<4vaU!U$HCK+u&!H?nv_hXu*Qv~X{}iUMJd(HiBTxEWSAKVN8HkCNrrzkYk! z{CGH?9(0;ewWOzj>TU#Xc7r6LW_?-k{K3wb^I?$BKY!)aukCz1q^KyyNz^DAL?lXD zwI;SC>b(~cDZ(O8*GKCczqL*c}F%lk1wAn77SoZ#M+SXjZyoVWO@ zM-T;52@8-AbEgP%YX$}~v`iTUfHNAyOsb z-AUYUJ$0E3&M<>i;%<#N4&xB45#bTayqk93m7$RJ`Dqysb2d7gX6{y2U7a750} z&*yPGzIeF5E{`7BV*T=~r#1NgUPngN>9pVVE!MTaJpJU;`ybyO?sQ;EbhB>u=KZ@Z z%xt;apVA_UE#11eW|q#X?l+R9FWogGt#uEsccmVaXx#0lp+@ub)0cJVVrANmm+PBf z{pMS<%dg*j^SG^-dHv7+&KF<&V0wI-fARA-T+BEruap<2+?tD2P6ZH==GMH8`vDmi zV2QC5;?lc?hgsJ_dTY!|0wo5rhXr^)P&z$d=y>3wX4aOK=2^xOV@)IXG_o}CSPM%K zMQdoTMR$b7-HF-5^aihYSXd-S5@m$bjwiveZMj+{>#65 z|9e0B7!q2k?luY=b~WLp4Vu(E)@DjYM8|QcwVbbWDLN_*139)i7M4t6`XBzgKfTTt zoUrp$ad&@ofK+#7cfQU=C#Uxi3y(tkq!|)K=#H&NcnEV5B~p)8MA8$Y5k^VLCDH&e zDMe38W`!FGb$8*KY2D2uSa>L01et&{<*w(Ih2bjsqT6!Z@8&+InE+3Z=cNI9dd zcf0)gS6>0sVZZ0Z4}b9a`ww5ge*GbkKltMNV~MZ7`F1_?tB-f}kRaOW(9xK9*x~2D z`1W}Jup7($aW9Zca=u(F?8Ebi7Wnw|(#*Hk0k<_z$D^u7=GzZX^U}xt=)FAPbc20E1eb=~H*y?S|X7T5Xtqq`R{`{w;4)AaF+S3y~|?1#hK zZ$F%$9({Pqkg==cT`UZcC$xC}qq< zZkX2HH66{;%!N3@JD3oe0buKGvsB8{{-DemfP|8myGo_hBBMtH8j!8E2uQ&? zFP7EK>TY-39mW!+AUw@2(%(HkPvcJ5MFiB6gQ*fYJTeJvgKC%ui+Mw4gfphCTki&f zdt^irAt{x?C4*8JmVhJCBWdf~P>z&cNFFbj*7D%FC@w}{JUarfGio;7ytnYDTT z_~naw+@CMcYqQH`MZ(A$HKk|#a`=_UQzHIj|_S3Ly?NWyl(QB=3vvGKN zxxQ7>wQo2}^}wi>Ve`f3>+{|I3 zw)ye>b$1xDvd32U3jaWLA(VH{=DlE~C5YhNN<1e9pKkHe^SsACZz zBEEY4;dIy?#&H-VD8Y2Y7pjo;jE>j8c_fzI{*bXQAkGo)HAWgMpKcD8jVUMXD<$6d2ckW3k!&zE^Rj86Uj_)rHBqODP? zT4Y=LZrrirx~%ir$S^22Gv#7%kXr9$;{9P7N3F6ypZ&D^?DJ25c$oI{Oy53j#QHS* zP=~&)=HNmPV>#9K{QUk0zwBFb#mV%$#_TXfIVuqZ>BueHr>cb8m3fkgN4-h@!iF|tzG2Amw7c8u!^@o^o}On4I-l3wB-3uVtZxpZesq5z zQfp2iOK&YHRR(^zFAxU6ncbR7(JJ&W{^ftYuHDj*Fn5N!dl4cQ=8~WuPQeH)^O98B zwpNK+ltc&x$ue+6WEe}a2#FH57?O>bZUCmDp`jqw$+;_Ycqdk7_ANlSjtFnvnsXgS z%0BHTFp{IN5Hg}?c=r^MfT;)wN;-~(DLkxiMxw+pYg&g=2dNN_OxSGWRG5j2fKr&> zzrDK4i;t#=>o322|JQ$gx!)f?d2#yn>vxnR+4hs)|6a89aM-QOGL4hvJnCVY&)>eE zJtT|)?5FXQkB;GMhxZ=aYDKF85Jb8Hh4ksXD%Uy)#H}YhNyK5hoi5uZH1%eb(%hzD zzqOUas|uHTxqS#Kk0WPuJK>z7$Fw zif=0m_ioqghyU~c{lCxke0(vye)I0lx3B-BKmO7Cw~t_Y|NQ)LI;jkY<0RaOoRUez z)5dWZ?h=xjD&kPOIlwauB8U>r!kH94jAJ!3j~I0S9j6D;*JXdWo0r)s()+r#o<;$c zktu4ymQBPwnpVlwaE}NQQKC{p2+d+`Nm+>_kVMh?O5idkoLY-oZ%Ixt==!X^?YQ*& z`_sHWPGgmu4}~J4D_3Nn*TuYQsVZ&I$y&_InPe!TMQg-}q?EL_S{e`ny{yY1k{qm+ zntc1V2kYg$%**=n;jZrLVH_#(Z~wzDnrj3;eRWvZrB+200N~!5jpOvq+Y2+Q*x&g5 zA12|lu5E7bK0NKF@o=0t?2}g|tA{lT-rNu4AhRO?7ipk!XVwa%8l?WUvr>7V`q z$V=fH5kYk5k?zzxp^-PhBsV69GE-6#D-U7l&2xc=aXMvkD1#{=f(+siauOmX7BG_# zvnr8;li`H0=)JAxb9Q%xu#8}-ELD_@qcMWKMfBV}Jt;+oIxwKhwF-e4B||f_4CUtE z6)j969@}+s%j>dQ$m8QxWmMK=x-OSrfBpWjyBjACqry525YhMN^S5s=zxVqe{p1h7 z@43!x-umi2FPH5yZ|~nduf6Yv>e2evANGe@b+;euSP5BFK+$@;)pie}swIh`;*zUJ z-$J+$3E)JeT0Hpaad~=PALs4s50|Isb>0@5YBLJ2Kv6XoP!OELSheiy4gJ_QZ_^Rr z*I#}8)iiuRgCmKEBjPX=hSyQXaVT1uuq7ZeNIeX@zO8RQyxYt)d@OqRa2$u>^Y48! z?NlpC(Xmb*K}1HGOc_yl@(6?XNFi3bX@o>1L}k!pgqioq4$_2YM&uH)7M&1C+FDx! zJ(Dg=8>fR(_Q3o1*RA)tUARCcK;)+0tFjg?V=2m|ZQ8tMqG;iOyID7Ql18_MnIlQK zQpQjYNg3i&G46rf=JiTRAI_I=zdA2-53_a+-#n=ucV#!KP*W<1P{DpYf)dOkV0>*=tYR6MX=?Ze{*R7>*d?$nlfH%{k^x5)kRo=bf? z&$jVyti5fYeEe!;b?EEY@4Y26-R;NI-6?}3^E~%Kw3J}=lq+)v0vSTwZ0*}Z1mjhT zRHf7I$ZYh_{_IZ}oE&R!0tWQDr6G$mWjL~;6j8dRikX>skh&X2mGSX;v3?17WQ%S| zEK-xmBjLCu!f!vOyeZ|B>E0-Vi!xP)XgS=UCi8XP*3DaFP()SDM0acG0!rd8p`iUh zfH`6;m4X8?l#<~=2%u{9=pr`IWKKjiUkdY5?dXl$Ut$U&C%MMbs9?5k!gd{4F zVR+nV0ruY^369-*Yo`1e!oA~aTt^Rd~K(_M(5^qy)Mgg1;w%I z_rG`goliAo)nRDXSEFV`mVH5Z3P?0wy_kXlO8NVL|MRVN?_erJsbi_kQV^xo)sj>_ zqDMsbq3Ed7z!DY|Nakr6hl1TW?54xva6j$t$6*R@9<*(7K0oVF0(pKui_}tdEPOh? z*zfO;htqD{?S?wmI*xnu?pt&Bv1pM(?5k~Cq*Fpm1ns9 z&dX+7i_7!nd|i8zdEc6ud)r!snVAQf8wGlxt*ZqxsckJhJk8ucJkH;|xm=%@Woh5O zowqZQCyTs4pI!KJS>|Q^)om-GDo@_f0@>uU3SW#QzKFhXdJqSp6GosOq+$Zef3=Xid; ze){Rl>hpXixz+kAdy?fj0q%6fnJLhE!S(DFS8U$ z?v^Vgdp;U9Eo>H%JV*w~RCfXus?4~~D;nA|du&Oq2rsq-IZ=WPbnD3OKq_-7A_cXm zXae5aHi}fK2rg2pmUPY-!06W8U6`~C<4}t-$UV$0Dyzywp|;f6PDm0aj{reMm$|)v zJU>1^-tA7(j_c*Pli&OD*Ztr9>}#h!jCnc?(GAVlHN2&e3}YR4^6+p+8K;-KiRtO` zB;wiAnq8Ok+qaMRyXoPR<6*2Hefk3I;pA(y*_YX}ZJF(Ol%&2jfAgk|^y$mvkI&Ce zCf)5iJVjw zB9ubJgyw6Kxh-2iFWZ`gdAsynB>389qNMD{yZtokG{{(azaNgL3BIyQvtE$1J+0f4 zz;(TtU)&Z)x9CMA(>*PcjnjNxw{30d9_!lQKdcgr-5ce}c@B@)MRKM;=7c--&W)*0D)Tdk#1^O(lr$G`i<%l*K?ZMhx~ z!*1B7;>+4uYgkaEFfW%D(7S0+<@2_bf#-R7IPEG8;dGcrt+d}WQ(o7zPB`uA>G<(w zetx`I;*+7i>dn0OVN{8@uW;abOK^F5zA(yhH!@+nTsM#Brw{+?-~ai-Z;j{o*XwS7 zc=P%Lk9yeiP)34A2FNV^CKbB3T1z6Mp=xDzq8hlR|D92qb>akPQl|5D4(DEWF4{_A zrs2(p?Km9^k!Uy;Wg>PuG53I{}AjcyTwrc-Xto>%0x)^#0w_);Qknuj?F6y~SxiUM^;h zUz{eUbI<3kZAJEq{LyFMdwIA!4b!O%1Mhsv>p5t}Ff{p-fAE7I5h)f_Re?-$0ri#% zC^S2{rBZ?bDvnO@B#Ycu-$cpX!adA-M04Y$3|_WH$%!gJncKWIp#q>q_vqfY%m{Rd zZ?-TwD2d=mPwC!oMQYiJppiG!dIT9WF>7~XRv?AA3hl(B>vG;5#$l*a9fj!DYj@a5L@&yb)*@TvygiSHk@4xL4}a@?aV=ATKxrh; zOFP~@SYTVOFHXCi(m3)OY{(?}i@*GT{`JrQzw>t9PkNoZyMpYqkMAE2b=_iFO*oXi zux6A&s|S`f=WQKEAtF`@WLx{zA%&QXKp>fWueCg$pU%rV{QoSyNzblXcBZw~+TGK= z&DVdYjXok9x8*93t1KjnGD1Mr03pPmfFHmV5E26hAR#ejiUb2nAQ{RCEIHH8Ogmkf zk&zJ@dE)fveEr)z-EP)e3_kyft-bes-`7<`sEQ+0Oht+{Hb$66X=+EV%z01*Q7)1M zL`2kZ@We8knySV+gVq{rg5)4V!WxqjRF*20xvcPqK@!8T>s-~JH9W58$rmD5pgY#k=G!-}}NG!_Eit}7G z6lx(d&n~W9YnQbrfc-Q&ORNy*STEt=*!9y$&US6Lx!Z+qAtLM5$^g~DAFLN5;+uAR zx9t|oC_Kh-xw1v_ZZnCBK~80ED(5^E$HUxz{N!MDNL}lyP=Zqcu||9V3>MUbPfWSqcIanFQp%W>Gn( z;!6}nZw)XK02r0RpqgwTq%`LYh=!1WEY%9&$XfJ>HgPgG0P2`xDg5{2e9iaV4;Gk%J39AcdF-98RkD>D6V|2seYaM{({zMm3rhn+Ld8+Y6;cKcf?RAO4R z)t;v@m%=d5s%#EVI|iD^!>7l8EaWU%1hm9}v|cnN%`CF$mQ|45W4((TZP(d3MFh*Gl$7eG zW0-*j0MSB8IjdAPk=i+eVlk$G0+f)70+vvNzvmJIISVRifl`X0>IgtVIcKIEGp4yA z?^L4?#d}6X5SeD0=gO1Gd9E85EKFrgF&nfhCQcH_SoFCtArN|&Yye9JR19@cnA)n! znzNJ~b7B^fCvCtLxqzR*lovpQ7eUh%kQs->#I~49-JTU zcAL$xdwhPx`~3@zKKvkmn(eRl5LydDyq10av|w`_7;qpDZKiw=XZe zidlr$?{C)aa=Bc;dw**U9H02}leSwKlsN6D<*FeI*7(8#AV6fvHc*jTRmc*pY7c6> zy=N)=9gk!v<-)>6q(GJetPBx%Beaz>0>j)FB_fa#8PHm%3ZlgrGi4-{tdioWDJ2#F z@P^QP?@6t97{~wsAOJ~3K~w~Ut%Bjgj201wG8<5`K_poeYlwLq=6nxZHE75JKruvy zjCYn4y1HgbqNxZgauz1?{jftJFcvgf5-!<$5{^+A3>YLLQPL%mAPa(Zl}JV~0ANTR zk`$u=rHBX+plF^;E>Migt@S{VW|^k=`rU2@e)!4Zx^st%)}k8gF_qjKB-=KjTbP(P z)?iZyB|F5)xo*yLRvIS;@>l)Mn|I^M@$qs|zrMcui(fu_xLThdwNqW0~Z-TJ7rl}Qsb+oG$gejE!UQqxq0Q>dy^$`F%vmKbv87}ka}m41X%32<#9~QQ#;2wCIIl>S^{rDg`BT3I4_b!qz={+O35Qj0x%YLc~d#( zDS%-F@U>by3f{kO3$vEOQZQwj=Z$L`;~7w9O=a0@eyV)9P+eOUtIF7qu9G&U4`@aY`CvDJs?xfP%9=P~}YPop%PvC~)0WhewOYXNQZ<8)Jg6K(is5N=%X| zfUEpGazCYm<$}{aO~R0~%9`es667?swOv%cTl%)ahv%mj`SqLImzRB%gq7W1?TSRP zd41H?OZ`1vif>0FEy8Zt4 z;rSxwwB29a9G}$pexkafn0Oio>!k1FFwMr=V1sZjBKy0kU9@qU zogp7=nSn4YyG3v)z_AP&dK=U^B81vEIZoDy7BI#*$i~1lZvv44Gfr@Ildd*p9;&tp zEK-W@HZc{5rEq4zLa5FG7*;I;36m`DFrg? zgZ6IRZEyOAr)Nh;tHrA8(~w49FJMt)8w{7YSa)eIXhTY1ZKc2kxMT$ZK#5Xv!X~Vc z3Q{tE@=u>m(a%{F+}{J*Y|UElhRlL=PyZw@EJ?^2%gR6jEdgLDB}+l!!jM3XG2S^K zKbLY(at5&~q#)M1$m)IVoDqO53Id=dYf)9QhAgTY5g~Gs*?<^w%F2RsrdUi>EuAv} zoPc7n`$=N*0N|W@kAM<60^NtsU{S~l5TL#1hLdPENRF(v7AUinBFG{lNPym{F&r!y zYl;>nRn=TLcw-FR+i?w&cQqj?WKt!{1Vz!ZKmn-hMO9Tr(og>GMO`mGdi>B@P$xy^ z922Y7fyk&cV90sr=8a!2*7G!;94rpkemmTTDtz+rsPj#`@TSr+&LUX*x@p|iMZfR! z@lpGGzw>yr+0|}wcyQd-9hqiPH{O+|srr6$&KE7J(l#{_BBJ-`P)iwZ=T}$TmsJ9$@v(enDu)#>Saic>E6>#r}Kf44h4s&W~Rj+WiR9~~^}%EvSUBO%pIWu2gu2*uU5 z3RpM+K~s5Oxwc(f=z?uTV_mt*TT5010BtIa#sptwK#@{=YHDa(V~9k>duxzDjU{hw zAk`v@MisOut6CLft#^S`b)L#*KhGkF#+#+lrL)f0rD+lwMFW}h7$*S+R8}*U2`#AR zd*r$`u1K_mmAB3qRS}T6a84K#E>tB6+(U1K&#+%!zTQ2L$ z?Dkth&jO^L*``U~yuQBK?V7H$NVj+6&E0Tww@a~b(Pg&=wb$31zMr?dA!V6jwnXH@ z#nsK`wnwxv3a2toQ%ax`A3i#@p?Ur0dbiuXzqtAK+nat9LtRCoEVCtJl@KYVm{~-{ zmTZ|Zik&BN$iYe-OluZ?X|mh{{sFZ3Kr7#7E`Vm3Cc2M!kU%vt6NnF91yU+v$T)J= z0a9TA0BgN-hD$EMk_0VzPZCpM_10KK)hq=>p=~=**O@M-K}5he0uVeoB1g@f_fwQu zOjc5~mJrnrMv_{GT+~<_P_?QTD4EELW^0=%4JA#?3YIP4ef~>iYa(Ou{%K8CQPq%D z5-tQp1dus7BP9zG5sHw^X|JG2&VUy{Q3WZgI_5m5)JfAEJ7O4jXk3o<)b9j&`* zj9HBs;Ct$$mdF!Z7-y;4YH_ey9WR>WP*Qq*`G!nzOb3T8SqP!3sBNqDo2zd#8<{oj z3UPS(_GMkU3Lm$@fU>ooh^ofLTtpQ?S%nbdoDWtjB>m?3FaP@2KR!5?$8GB}eD&q! z$M0Db{e?P~A2T!Fru$RZ!JIA*SpN)ueVx zv#~bMX&Q?SU@hDesI7;j|y7hh3Kv0Jo> z6S_zqhp`W?_Q4Nx1S)k+b#1*xg3*GedE*-oITa;uePjLQ)$Vq8`_UH^(kx zd^G1=nEP$%=LjULg=s3YZ0oCyd40Ee_tmRmm)A}B@PkG3uzK@um%hGhyK?quDPCRW zQYljgEtnmf|KMMI4klOL8bVe|8T*m@e%|c*evXkj=aM5#eTFn6E9WFEQbbu2DjB0j ztszp#oI%AIbY!P#at5peYm}7dm}(ygShxtVLnI4ofXE~*SXfy}0gFJ=*!R1>WQMuq zA?1BP?f3IAf;g7f zH+L5ocZJGFpDyZPIj8+Ft`3`L&z`Lh)*&2lfgufuV9~^qS*11(N~xUv=}&*O^j1Z@ zx69Ce`Kw=l@AJn;huxy}t3?~*AnISd*nj(Mce{&d^x^qoi3wm{oDl2i9Hlgpl?)s+ zq*BlngN~>IfShCID4+=744J?Vg`nh;SZrl01sgM~ib4?;py_@mh@xr=Yp$xsT2vay zV@$fc+mw>F`#m~VK<8}N24f5oF+kt%?oBvx0un5YIh$Yn;$>moZBopc9H3>YiL7z9 zai-!JikJdcfSiGpB1=?*1!lm^n5-d`L`ITi1gd~EyEr&Y)turSOEBj3i^hxQ<&E@v$W{5Kbmc`mP!Q=ud7fUQC{eGM$ zj&nAwUELg?A3T5k&VUJ_GQqsPy6g9{ZVs9*6pozp6wBq!IBmz1!-lMOi?C{s%H*&h zWJ%0Qb5k?^m;dcQYJ45DWEB-40Bd~Ztq2w_S1fUrmOBMrxSquUi#3Cs{78j*}T0-i&=4jnA%o*5` zT4RZHPNi@X03>io!O@r|i`e=~P%UVJ*?TWq3eTWaIM0a%kiZIfAq4h>#3gxaYHxw^ zJ^EACqLM%?!l-O(RRYj}+1BmxoKsgB2P4ubR6yC8;4LwOs2XzKK`Dw1NaC!Gpez8! zlTa5zO|BpJyOh!#>(2X7gMw8QlsP5IMTI%5HC|MF6>>>=5VAEH5C-AdID36JUfyoL z`0QzGAx-w#tIM;KkGl3zp5=Oa^Z5J^7WOw-OzL`Virg56){Pgje z5uXY=?@GxALQZ*RAv7dX1#*bSfoO3CAjy87qXH)rld?jvzH!Dl*H04|jMI2^xfkJB z0M#xJ+@cM`o}N9syWI%|Iy$PcND}$pryruo#hc5BcyhXW{p#v!v-$kvhpP1crrD$%dMeeQ|W(#_2zQ4W{%@y7@4LiR)4-DSlR zED)KK(?zHoVD0Lfa~?Ctk_>`veeH}5Rtno;nx_;CrlBv^SOe&7K;r zP!mCg++0`-8eu8wy+t%yP;wD0pg>^Jn0vXCMWf6GA|Q|g6{CWzlu{;(OcsHVOcuRI zbDbP47qzl%5sc%UN}NCo7h|m`);_eMvZkmK`g)4| zD5aFzrbefSE7vY-RZd*UR;4f?5A$qYr;3#a1&1UorI^`unDW^8Zkl6X!fuzWrOFv^ zinT`77@`~_3QZ-}wXGaxnVbnR^6lNNv(z-sL)g#BwX|F=w%5Ifu@2J!Kz61hEj>5v2w<$*W&BqJqU-(Jiz*vhrR$5=Mgbb7o@BM)OXNUvUQ#rgAxEfjK!`@UZtuPjgzIXgWm zP*w-4#?}YhZhtpiz1fwMH|9V3-*Ij4?4X zI>5r9P}M%TDisk?QJ$hy4y^-avS^)CBhWQYiCNX50hA1-a3K_LtCSO9n#Vk|j=hLj zH4t3GTte#%kTK49?yA}w$Z75;@xEJj=sYU|muwvg3#(Xf1wdG=4<*k8K!`;$8erw3 znLvHzf&(d;i;WW$5kZ@hdS5%AoXJEO3|T`6$VD;&g9hge$-NKp_9{RBcKhJLxijoB zG;QUV1zg_T?nOe^`ElMyE|7V(T(A5hj#)s*6fGiW&N3V8Rs7}ctrlK4$EWAZyYV&w z?Dvr8@XHVL3(^sMT_Pf{Ja=lvAi$x#;Lw38{jdQBK zubfk1U?Gd3j{ZJBu$-YXRtSAXHfX=w&p9<+6-;BGQh+J%d>|w-#WYoyIL0Ky0AQOU zz0qWVQUd3fNMOU{o#eus-F$H|oSvWXl(Xd35q0fiPFE@-Vx05$Kh*@@Q5eR)s(i49 zOBR)qRYi(GaK<{dKp?#7xsO4h?iN*L{k+%bzj?hG?;bxrCSUqtf4iL@o~(oS1;ijY zr>|b_cU!Q85(T*0PUZHt2k#EnwKc|AV~9Tf=!5Oeoe5@lvwi;R_TsK@7ajnHeL6en zK74YxJX&$&)zQJT?_RJ77cR_qn+Z}rJnUAr1v68iBD!3`lc$S(Ula$5DZRbg9ImRa zT}ZO8UtX`9gAYG@TrJT2NB`*;q4my%A}~kYZc-e$Wa@W$9EZERaoof1s-Fh#`^X|J zWg3$)RuIWR)@X<=;BdERE~Ek=XmTB-s!UV)Di~v#Fp6X>YE(IM>SrHJffyxQYXK1$ zrhZ0{JeOe`=RR+)`*GCmZa2qy=#?{0ed))d1Zc_Eby$SeL34DvSRXCwHm_FJNGvi} zLCdrUDLGB7lXJ%Vf<^$8q~UW1{4@Yu@o@~!a`)nLAdBR=5>A0pm799E|saI89@6XjVT@+ zRLezh1||Ev*ECBkB_(Cn+wES^t(RTQoJ1d=A3Zo(wuho(nyT%`-ILQF+H`2FZR+Of z(@%@woY|7g<9NJS?1!|SOPtg9KmA}G!olkB7r*)PtLK0B;YUx$c-J*SIJI^4^S^nv z?ABSz&%b*8?8UzIb&lekeEh+ow~2W~34n5YwUeR@kR$`?<;@V;5?B`^ zRr7Kk67)ogpd76iCE{i~p{2P*!p4xbq&8sIsLIaxy5g=WtEJQxJ1^Elh+_;B;K-}TY4;jG@+rMIh9cQuIcL$}JP(UStxA9n!Pm$kX8CQqgXH`0)3x~(BZOkl7j#SUos7W&Q-Tst(IjPZ#TP`^P$t@B_1B0 zf)5GG%eT+Lri;sO-n{?y`nY+2dH2&Fe|L8BaQ)D)&$_?;=~vz_iLeRjlaCKq2d=7I z9C9q`JP;YUpY;i*nP<&v)MAm*{N<0|KX`Qf(Wgz{56f<;G%u@Wx}B#foj*8x{c5}K z)9Nq;k1u}PmqK%jr{^Ao{`D^|f(vI4nxk{KYC=Eko_unwrlia&n3Mk5pFQ6VaC}rd zgMH78wp;M;{qXGkq&1YU?{+bxi0K-$Z0tP>PS~;FoFWh@kP|~n1`%{d^5D~cAHRFO zyS__B;Nio?rym~OUf=Dv>97Cty*m8-`)7|1A8{$yH}BiUqVAdsvjN`krpwFm`MZ4q zx!dGD(gSu>bf-PDi6et&#)ZmfNC`{tXkE->rA@sH0JD}Q)=@a^*( z{ICD3KXFbIj@}0Z9Ak>pbhunpp(-T-sH&Z(%()zs%4Ovd0D!Eb z2$io&DF7J>06+x*oV9jNGb$J)07V5yh76)rK@R8*(0(2m)FP@H<7`zs!~%fU`Z>})LITbZvntM)~BBE#^Gz^SF-l~GC7zFFApUUKn z0aa_o5|Tm_+E6ty_QNz3$yH+!IEgBt0tqrG)KyJ{CDAYxWoaC>3j)aqZi)$zzyN`a zIZKxJ7sJgZpB*o{&d>AEHtmDs6Yure^S4dityhh4>Kj7PZ@+r~?6=cm)g7I;=jXm{ zydlU^to6=Yjgg}W;BQ`DU0w3wQ59vrxt1!NK0W*N@xhbT@(kVa`>Wf>XUDtkO(B4i zPuK40<5M3hQLL)PIQ0gsqWyUmYEVewu#o56%vjXjJ-h(6OCB%mh7pD*FI8C?j)6H$_j>7r*>5qT>_1XF9 zuD|{LAAJ7j|MFMkPJj4&2XTb2f4QGaZmNI+i2*GC-oJVD$;S&+`161D?BccF%l2&G z-}!^(gC}OWY&e;B@3(06>TVPLeqRtplQG~O))q^K z7#V@6popNU5ipS7PO~aGUn-ADQeqkRf^564R?Y9<+>XJ9+SS%nx!SzjEe;J^*zVHi za_;9MRQkQ-LSxZkC~-&@4WV`3)QvqjSd}T=js0RB$g|Qs+~#f10I=#zd+1OqNoK!^ z2Tf;de|NW?#*!0@mZBV5-?p}~=&W=LBC%a%*QeEL=}m$CEw3LeXE#rUC(~WZkXnhK(H`uHobGg9U)oQO_2|dX?aASfBK+yu0*kF8xxGxrw}0 z`>lEPrWfk2Z)dRn@L*Ym;CvIO)6Io69hIanUR-s{x?QxpyZ!Om;_=hvXP+HDe6m=r zJ1Tf|w0ipJ^z3x`M}PE#<#H*Sy3T#^{Rcn%=zF5N@28UJ?c4O5FXPQ-JbnD|FaF|% z^X+z9`W+;est!bSx1X#tED|GJUT&4Z5s+dqb*O3-N?A#3RDfi#u(9HtB^4wIUQ`MY zs;FXV8=DKn(JD6U=E!K4IJOv!+ODb-bIH}OzuY`~F~4~~OO#j&dYY#KYMr%~2vjYh zK{NHU7DSY&ll5vrONMD;P-q()JQa~~h?bos?Dqo*3bU#>XIyYZq*`3SX-MNnUcO12 zjphkXjt&TP-7OH+2$y+W`R-`-D2koOVnW9M;=lPL>!7hT_N8{6VNGM~r~dTOag6!u z-L6QfyBZ4>jt6J06xi+t3&xN$28+r(=gK<;=0YWnb=w$MvCJ%FJpn*TVn_^Coabp6 zt#6DK1T&{xRn8(YD@!iGt7S_T?k)yvf?ApS$&x*JunfUnzPaw|&NqP#PPuP7I~FM! z(li6;$$ITP3bRGZxu^oDpb3C#4F*fr(HxVt&KeSBE-8ab5kwS0Ku{3tjJ?;EAtPC9 z-JC|2jHv2}$O0lM6_Mbrg<`E8GxmLHgIPLUc9no;7BHx}u*jTCX0Yf{F_t_J@pdyD z9G%|WZX;)ia@;;TT_26{QY20(hps{=51t$~7CDhKHs-ynaERl<@}Utz1WswY*}c2H zesj4EZD+J4KK$_fd#!1-(9!vW7ng5FxO;f=*?5!EzI^h@qp!aEd0(zQ`KON_rM`Uf z;r9*>9#}{J_mBVOj2De@@9*9Z18XwlW_Nn}VAJ28o-TLe7Oc7LhZN(7A3Y?1U;X0x z@;mzcd+R43KD^n#o>Gqm1>t!0=x_h-YvZRcKL7ZuUq3(V&O+_lBNKUJjeq^-^63X> zN6W(ojvX&P|LliPAAGR6+WzDhKUF`9jLoY4@a%UiR_`y~j&uCc-~8Rnx6cnB*~rtg z-)^=ybJbQkB_TRI@MkAW#n}c1q7NTGee?SDXFqsiV{xuRJGTL&m}xgkhESQhaZXf@ z1@5x|03ZNKL_t($A*$Zp-Z7@mIfo%Z3BkGw$U>ZH*sRF3&P>RI7srZR?^D$|6VvQ#vuFSS_9LW;gRgRCV^Elc zfs&br;w(C6m{ba&fK>%VAYjxvT&ES4b)XQF;TshA={ z7SK^jWf5wNq*J-LxE;3R(uFDni)J?tCRjj-NpglMN5817(Z$jWh-(5Fcz=2K^1FGp zSZy{V8Onn1-fXtFL!OCAUcJ99F`pdP!C~Ib7Rg&#R7MrJFsGC`8)uO?Cr%~B6d6-i z$VI&OCB;%02=29?ioyVZ#(QTJQc)I@8I*yU0tRO(R8{2&fdExl6o{Nu7MwFVr^*Ke znkEq?XTVuj1A-KS4c1rA`N}m-a1NWMZYsA}*MdnPu2*5bSO8mR>H22Axf>Ldy_KU~AU*~pFRn@}IaJ`vszk2?+ zecayMzV!`xcgRBj?@#_8F#sWup?cIJWOo)b@e)Q3k-~Hkb7t7;zaddZmjR+}eaIS7$g1FgEA3lDv ztf~#Oa}cC13@0yf@E+dJ>Tg1&wC?0WZFk;k-KHme8g2axoOPrv`c zlc)dihrjdW>Dl3`d->|_;$p9$tIjREt{=z6vfb`CO^0Vk$D8e_7$2QHeE^F zMHu^-N&!@|$slF{u?$}4!Zw(?slcdjob!%IEd>&+EvRNK)xw5;xMi!>WR3H;-@X6a zZ?13lS%sI&;0zgK#L_!m>+PZj z^B?~wpPU>WS@u9QC%C)LH`jgJtgf#nF}z$=M+Zmi<&vm$NA&dZ+LX+Y7TuCFK`yp( ztHXocZi9%o{l01pk`^t_n>o!@UDtIG%&vBQ8UJ9Gq6obr-7ju%!U)AIfo?zT zizeHe{n#%L7rSAH)=VWUJ40jES+u&j+rN6(zr7s0_EFh&SMS0H-S7UBKmK6oOZ<)k?HFC##Od!S`l^D?fbl5A262fW_Po>+QsWv z*Uz`}4OGk$FE8J}ee#GvHdglR9*fR$JQ`ZYuImVe)SdFSGfGQIby2=Ic z-H<3{l7V-XLO@%Br~)W}b>u2*iII#C7-~e1#PaRG6}k%gv^rFGUKwgnfEHmR^%Lt>Z)7U zRUK+y)xO`CaV)Nu!Xtog#`x{?+kS@A^X9>$HguvSwR5EuKy?m|7e}k6RZwTK4lX$3 zs>+*S4LWNo69|-*xu_yCJ2Xa>34@2aB4V0@b4D`0 z3*LKh*5ovMYfH+tuj1PTCQ@Xzsl?!`T zE%NHsi`(lsO*@r+oW~chE~}<F4=&-`~EzcvX~5GXbcwC5CRbj78k^l_+YA<*9+e+Oml!A zeYQM3TP_#Nll4LH>KvgeArXObQW+P5Ssmm0;9j#OXn>p+5nv?{$(AFsU@6EEP|+Di z00FfYttIcUsm%H?R4o`Vl{K~!?@Z;Xsp;UbIzFnOJU;vXS-O*5&C_f>=$FBz&R-~f#Q^l{15)4 zU7*P*C6&pNlV0jAzj#xB{&{<~b&B})#V)CN$>Y=GQwgM5HCSs|32CL#n(TOq0qaq_7YAsB)CZWTRWG*wrr!|@~qZo3QH)JC?AtSzZ!SswSt zk9YT=%X+O|tyeyb7uW9MxoI!;>IOI0db6o(YY_4fk1;1^0M;>4q=Evhv8c3`S|Tcx zfRao0ONa%1$pD}LwL&TprPYWMl2!#26L1MwYlB6`nPLc;ivXY^hRLI{N}I+>tH>JA znh{AOIwwICsb!92j6)QF?s!_H(lJL3S|M;QwJ{2LS>~LGg&fDy>ALP@-KzC=_5FAE zWy1F#hL892GEkyikN~YS&Byye;O2awufO|PsUAhOU4QcI;zgYB7hnG3&;I%U@i2X( z*VEbmaGXCTOl@PYuP%gOp9&=|dYRKPC2AYzRAnn0!ujE8Kcx8W?T4yT>&{8b?;gI* z#DDtBKMzFF=MeNbmobFwY4D+H>%Q$uTyA#T9Eaod_^-bC{_5GK_e0lZ!r}U+Eio&} zZ{A#WYfBNBv=pXm8o$I;D06ALnwefcf4SRTjNwGmD@2rK)z@9$Br3|e7b-C zbjm~^c=G()-`o%9n2Y#{y7z&G@p!Rrr@0`TT6fQ`UJD&|SN-rLbJRckbX|BEmw10% ze)ILi>~q_6l@`hr7Ku`_Ms8Y{(=x?ml#r?@ASDWA;TM%l8%mOpMW#mUb)_1othIG3 zY*of7=vvwu6BSmp-sr9Zi6B{)M2pW%64XzlodN}cg4IU33R5l;i%myPDwyM9;M&C3^`{Q8&wB-YS`KSNttKa|Z)n{GRz%mVmp1yhi zyWLIy>1XSo{p|S|N~Tpv@95B98Y;pi~zX^&N6#Ofs|Mp)iqX083IutV3j?HqL_q6 znG=ct7EPsPGFs@;J@A)e9}_X`0XRBvqM)WS}_? zkH(_YX7=fL^1v#yFO)gSkYc}aRb>vx@$v55*=-TN-)Nt+WZgDBqI!I~ttx4ys%+~F z#2mU!?<^}>l%xVt*C2r7l8kkgt%#sCt~JhR=`7UNv~|~2wULsU&S4sS5J|>Ra>g8B zS;)^S2gyOvSU~6^O7!XD!%mKZ`_5)T9WIquf=FFx;o z@x|`-%Vx9Xs~4+xe{oQ;yS;_RU0z&&wz=F){%||AcGMGvxlJ}>vlp+P9 z1|I@yV=E}RbnS&7OQf6$8Vfg+NYcD~ZNPzm&SBy0stf9!n+y0Eo`XrmCM`{p@=4X4SsY zawCFmZ0m@go=%ymTh+v3@#+3lc}73WxNtTtqGea9wo;#5cNPWxGt;Ycv_yu`80-cjsnWfCw)~b7CifME>F^xCCpWCq*=mp zr&YYV*hnR%MnE5-u;Qvx#1LX8!2sx#tgLNoCuKn<6h$FvKYf){D=F^HL&i>)sW|Sph&;N{CTV;Y^#ROAw7ip_y4Q zah$RROWB7sr<|skB2%D}qX0IYbJhry;Kw+gbBT*{k{~SQR7$8(DT$R;<227czyEkT z98_c4m%CM?teBxP`04fL7r%G$blf-U`TfUobMtymvG3P0(J=1&bxmdJT?JIvW?kv( zPyhKp`xn3YXJ5a)4M|w5N#wW3xBKb-JS|J~{kp3AIs~606QosZ6y=bzbB@+4%(=jb$|Q)hoyMdIQf{eC?P9@ZP%d`r}135wq#Lq z8K;2+DXl(yxHra(r!>zwrPOxK80V|q`gEK#5jb@o&Y!&4q=nk9esTF)fpV3-SY2OV z{H(5?Q4%qZ(|jhMnzoa&$wIfCOJ$A}q|w8)i#edTT7UjnopNPty_vNk5g^D5XgPt0Ln z^w4daX4M?d3nh?$=Rdj16w;C^QNMRNH^tP;}GS)hYGW&uB$Mdp39*1d}rbXydpj1_Z8qlCJwZtqW z&0)@kP)gk>L?M*0Ry9psTiw^TYp`!CCO?lUEb8#&m2RYEq4PWkV9im9VEtS;n>f?2 zfAj4UFeYlN=O5mm{`Iflf86H? z!w-k=Qi)UKs7st<{xjljmBVlJgh(8%t(b-P-fAoG8ML&bB(DSjfItRGITJ$m zF#(&H!?3W3AXqR9WX>sQ1u+KatZ~-o07CgvgqBlU1atB+5v0Vy6M4P0&*vdf;*<%r zN--(YRzhMH0*$TLt4-gm6c#So8B;Y1wW?in^K2_1hmZhej43T5FIgE>O0~5E140&w zSTdDNR(4iZDHW}&>@x}hl1PZrQz7kB3~`bQ5m6&Nd^~-4JH36s?C<8cKOSFwb{Qq9 zeDVFS$I~dj`F8(!S3Z6$yC+q4$(E9E$Z8uw~_%z?2&fmX(_g;vs9fT=dZeJ-t zBAk<}^tzI5*L8u;k%>_ypL+7yEBIR)@QwT-k z(|P&v-NV(@28)OxDUw`hDISe=cGcC_AuvcA7Qe)CeOa?wi0p^==P4E)GmYVRSPoC~GDkmqX}Im}<>d~tdU`q^=fT#MGdlSo1Qn9UWBlgZ4-dzo-)#5C z>GJyGYPT*#g4N^xAd~>fsle4$HypiSQ(3-09fow6!b!WdSvSwGZ*D)ld$zr)jWbGd zDIkQBn6W&&dR4q!PWpfQ-~XRK|N7nH(>R~jD=iT#*WJE5{P6L-EFqlcU;pa6r*odB zbUepXNZqd9UCCxE)~%aP%i`mZg{|EAaPV1u{qAsz-nvRG7)J^btuscU)lzG@-nez^ z2&itZrVRIs>sF16cm7Q;hG(dD^WMrc}baRr-=>Kc@a+QwbI z=q|2gzm*xnFy?6t&u&)xqkVbthkyHT{`*erH#cv7@#SCozyI;Cj{D{HCtrU4#m|j# z$wz1GW^?6(xVe0-vA(+4^o^>WO;n&%IqM~qyVGeuKOD!AnKNaDHbY4z)}|%Ir{h^d z14;p;O4dT~{`}PSD^V0{@$`87@!jzp$IrjKK9AG!6rZhD4ipFp3PBdj_twVJ2p_UUO@Lf_hHnu)opbX*c;Xqx7WPp`TSo)0HtwJd2k`PI4wgsL{JYrgvI zt2BpkI10eeZa%qLe}X~)aTX~RLRka}XRF3l-@p6lR{FpFumApd;Jb&%9N}RO6%u*(=rNv_t$ItjW~ZOkze#Y{Pic?qZEITrRrh)QW$DS5eSD~TFQ&Pi}-t?X>I z=^F{Gty0n?<`~oQbn>ZW60uM&i~@VNR!UZtMJ)5U;MP z?~dVI*44%dljo8biDXJ*1VEuo(-iWxf!(?V=4tXQ*jb}dD=;}m$)c+2n35pTwMN(2 zRqgYeZMSk#VbfRZbyc;xvd&mbnMDLy%o3OuNl_@lO3GzQhmXT}q+vou#>ZT>nEWV7 zQe!>`74emp&OefOL1zd23AoKF3w_hUpU#;1>Cm{`K|=a;khqR0~EdecjQb+@jp zKA(oJRl_+D%DQS}q;(D6GYa$K#l*E=;$ImGz# z<&|W28c)ab>1UsO_SuV9RLZl>GYO_}P|Q*Rf-xwU`LxW_cC~u-{2Ao=um15LeEG@G zfBf*lR<^ENX8ZWKEHmA|pZ5n&N#rQcW12!47C$_t{nL1OnwFeiyu4^#i^6>W_Jgrf zYpm>1j)JC&Vlt3n>keDM=K`Eu6*0{QEw372YGr;*gOHvZew9H8e zr8N}3q1nybSZQOiM007erK}AJ5bHyKf#(r>q@y8;7`*5LX~J7wwX#<8Y=}&eMGJ z{DLzpQg{2?S8raNh9@C%r41F#Y*2IGblc53EhG8lm#6-+zJJ(Xt=wv*x<**Yl|u_u zYr|ZGh>a7Jyg*o%>H4aYm`bLH{jk~e+nuW&62UT!0{C*b?OPeaF;M>i03ZNKL_t(j zeEI6;{5YJ(NJY%^(A4(#KmSrG{@L@-UaoG&ldrAS#>7CNm9aWT4^pMLJUo8*`t836 z{KLcJZ@>BW>!r+G!m96g+v_iX@AY5({Xed)235MgdGmU^>RJKjbnx>`Rim|{^|tNY z=6skR9*6UJ&Y6~!`c?gOIR5Zqub|SxoKNRWvWLZ)w zb-UXS@n3!OLyFN>=JDy6L-uowA&WxJHa`2)(NDAb@IK9h*siv(Uv6K$UK?w6o9d6g z`r>c@$>03!i<`}AqomfAYB3W?V5|_BQg*tg5?E%b1Q6CzpXWJX$|(r|W|m0^L4k_Q z(MPJZ^>Nv*YQMzjNg6$Se|wmX)Ix|jq-|B##zpU?qV1}t6rHJ-C2&cFQqCkq2`CoI zf?1&kg1)Yqlf=Rziz1z>Q%a3qkpdu5gCm782V0r0S0ycwW8j<<#hhb;jE-lQ^_);0j&jsfN`3`oT~~u*G{0wpdiq-afrf; z?1eNAC8b2pw1~x3T@0gf?Qj^1NIExN)&#NX8qm4woxmJsif5GAi21f}XD#O5Ufh1X z>zmdfuz)ZB+An_jyYGK{|0spY;&d3^-dtbCa3)2Z;{=l@ACCU|rvK*fb*--+^2hHV zfABdfrG|NEZ7<1Eo>=7fw?_$B8R>M1*>5zKacB%O(bMomgqla%i^c- zaDV&lLw5S*r#D@$rS%vr1Wj$_OBsB?2?XIi@k3!X#oZ0amrFpF63{0CLq;>w3Pt zsszw{9!Ur*%X-uLaoE+Vuu$Rj<6n|2$8zkT{qqN?gz zg*qjR1WK9BdW$SlnQou{ERi3mNQ>6BO;uw-rYD2`-}$$H_P5+0)%L}|{MUc_>eE*_ z*1!Gk$H(FRfa}qA_Kd$FAE#l=bE6#}Bt8(Xpu; zJP(gTh`wumTppJZ3%$B|K0Tb2a>MXsjF!r_s@|=4(>Omp+}AalZkXe)i)sKM3+5xA2ethreZv4KYr6i8%^jXRJe6%F?Y{ zB18g*S}BnV1`eL$)A_`tM9x|gqEgZV$|c4*&zpV|e7@iB>s3R{qOcG`NI-!3G+pg> z)~Un!P^-E!hNi8xl$EFAV-O5RnMPICm>2^H zE+shxDx4(khh$_`fPhpfp*Aj;a9W~56_?`bHZGwRHCAfz zsE{b4fY3^jF{p%{=0E^V(=p@_3#F6_Nof=^aiW4TWCYYoX@xn*ki0_UeXgVpKI;yy zFKcDE-Lx_J`5gb^SNB-8UQD08T2)RGUK}5;cI)-!cKhAi$5N0rvw#pjhGqY^|Hi-f z|NiQqemp;bkRco|uP>eJv;Zp9HTLX>uiyQ)btXh{KI81ii~8bj|MAt!8*8G|nZsfn z_z*RkoWf?c%^(v~7Q>J7C&Z4Z(d$$n?p){ zZ6kB^lLi4=&r2woFE5^vm|`h@p*Y3&@9(ca*@UHVQJDp*SUFTi01KsE3FUZLy4A() z`?oK**RQT$ecb;z@B~sTBP-)1pf);AG3QK>jm2g5ecx+kgHM@RS=rY8Jf|$kXlt~U z#4N$-wypa6hsR+at-`+D-tOODUB75u1qIrwW5Tolc$)XYdsA1ru$Iy)T>Mfp=aiYf z!`0pK^vTONm+e*UR(?JX@koN+AKxY@F@%!iG#0BQq67vgL{ez$w%z)0_n08}>)q4- z{Pz2Ii(g(m-v}Yz-ySMgee&kzcGsVed(CQdeepCLQ}9>>OJrc85^`x;DU~tSYL+k7 zpP<0btX;jH{pn%6fBWwH>-Eah3BW0>q=L#-@IU`g|L#0^w{n453CWqPQHX-5_@xj+ zNKultfRc+=AS=a?rE1ReDTxy2A`l5kOHG+VDwVDgKmyjzvXDXu5M}nEFcI^TW~(JC zOeG7tTssODv2nGM2Hy_W>GAFKl!?IRw<5D1X*J; zm8bpSXPg6@rZPq$C{9@lsVXs!i?P;^lTuDf>0{Dbmy#Jl0~(1+DOysYgw6;QTA

    zKu+U?QWpjg9AZ++#2f@jBosm{X?EICqFhKIRL;)lpe0nUE<6gsQvzZxB>}6#v34CW zSp!){Winw|Z8rs%ZU4MgmpQd#3em@$d3X78IGqnq?`}ViTKSjHo;fl!2y0!3z9*M+0iGUW`y2xeVXTry{x zQ<`F`!IH)KJP}D@bSdKg{k~aMr>E1i?M2%uRv>b=+LV$@&Q?1RLP%k)TS{OJR_ib% z?YiS|dOG-j{%0QrBC2?E*}QtQb5?Vd&f;p*mn81*J~U0ecB}jQlkKP^TCe+%SV~X? zh(v-ziq_~XxCGv8ug}w&5R_8PJRV1>^cWVJLf@_~uP%H{ecds_csfZ5OBj6)g`uh2 zyNA2oZi}R%4_tWDcLIO~LSf=O#F3>o3W*s|aLGcDmQ`bFN<|ty`8k!?IHQdnQjFe@ zrx6h5*$>0CYU-wGQOZJ`R06~j;Fo{?U5NC>iz^|-@7~{AgMawdr_wSL>8vFJl`>7^ zX_~vPscXl??W#4-b=ssDCLgsljjKycsO1#rR2Cr+q+${X5HmqZooV5J{YQTj1W6=k zP2x-_5Ogd_3M9&4q!233?2H8lWOW`VhD^+b3KJ6p5*V$}s2s%<7iFX|x-7xSYN1&O zQDGg+A}bqX%CR)2QbthBF=awVU_g*RHF#L{Z9|Y5*vDXM5F&Fdh^h!OQWGa6p+Wf& z3n2^4fdx>>G9^GQSirn^=Nz))!l{&T@Wjx!D+Xva|1=1l0-c7Cij)qCVxwW@9Do@7 z!hnEAA+KsToPAj2I8EAWlnPbxp0utDM}YyDxF}mSF%Bp-vJylRO%8FMbKkDBkC8kf zD@9IA01;?WwWUIBwGL%GEk~uT()wz9LGcU%0Ws%Hs6^q(2QJd!E(dpgeKQ?@T;hF5 z=NO_hI*VjA3N1@AEI9KLQeJn)X)PEZk533nOSZZ$laM6))yg(_`|zPi2wbETC@LdN z-O?Nu?>WW<8tSTBP9E!&AtOjDmDG5?k13#ZSTzb%TEZ-4!;zPHK}7FqyS-2tO|4L= z6sd03`_uX1@iC6n^>y7!qg;uCV$oLFT2@ViQpTLD#Qo_s9K1!lyX-llkZ~5ij3s&U z+54CmPpfs^);5MrKq%7`V@`xZYiCq0wd(qAlS7`uxoH|F?bYSw+mG)Or4S=(27vQ% zND(1%*IOTiwXJ2`ANSj5Th&NVLI`!df2y48+jWW~N_RS(ZG&28rJC_L1Lo_Ct6`Xm z6w4eAkEhjkJ;tHwI$e-s5>ge#r}4p5w#!E@9PP$_%1pFgi(^ zhM_gx>FKz+SXH%^MRZ+r_ju2w+I5}tl#&V)tu{RsuT6U%kBj%~tE~{3v&d7CfBoNl z7GjDKGI1^?|0GHQ`!W;gImF|6$f6)H7viM6r<9T)NFJw%bD|}boG4LDKCAeBY{N-;ZSIFUu0 z3u~#ILB9;9Qpl{O0a8}>P%M%H7NQ^smdLes29)3&#}h}+Ax-o7JPguW33(Ww=6Mit z5_))g{N_B~k72kQp9r!7M4-8LE-;;QXzT4>*qm;l9^GfOc{`BXE_VM1e7Z0 zL;?_nkmOSoLO5+iK_Y>ImC{tQt1Kun`@n<>6{V~IgpjW8B!ohtY3izV%#dQD%;)`4 zfItKx1hL5^voF&)S4|5j6K4>x1a35LE}Hj;hZomZBBhwJ5JqW(N{`EEok2z8ykKN5 zq){SEr7dx)YpYG>97`q?fNamFi4ZheP<(N*n$PDk#}ovzXxqjbbDmEuxCGWH5d

    OLCEQXBqhxnOXJGo2%8u z^6T#|Q_bI^P#0-MaDr<>y*8s_SM5(%9MQ8m#XWO$BoZ~oR1bkK%?CIVLM46que84B z_g9w0U$HFiSzijlRVqGe0$LA6?P>s8zBie{kW4R&d+R#{DeLQlt`H#z?NpmM%OpwZ zLTzKCqUBu5gt)F*aTvr{Bl3x2SJzq#(ZyLoXd`^v-5=%b!=ss@SAKB&;6>)@zlVBjz(PiK%JaS4oBLu)N~|O`!|elpX{Jbi5@p3ww)OrMnxM+b>B`; z1+~17jzCyY`eGucpG*k9)3BEEgr|BuOm7Mv)8J0Kgx&wTNxJU_jNtE2RdjN0J0ml$ z^rtpf_$3~^_leeWcG1kRX~z@6^O1OTQi=x{6iK;gy&;+9oVntz-)vS!Ou$F&ey;T2 c?e|fp>J4dfO^ZzcKNb)lPd^We+l8Dz0MT&$iU0rr literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-dash.mask.argb32.ref.png b/test/reference/degenerate-dash.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddfc8bbfd3a61d3a4c9ad53ad1383ff11014de7 GIT binary patch literal 2086 zcmeH|eKZql9LHDO*~(lkNko^Fr6LWRTx9bSV|LP-@)nhJ8KJBfuUY7}L>5eP*_jcl}9-k8fPc@SVvq$H^c77 z)8-5HO#3o-WRbYo3%}G#KvNKO@rw4^0n=2?9-s{>efmtBvjERx@+yG31nKKQ{N&8Q zUZH1sR1#x5@t(@o*?KCU#n+i)PMtD!rN6O$Fy2nX2?3by#gL=u)|d^&L~DrxhF7c6d!vN6dUhTxla>5g}(m)!Pnd2M+8@O>tx)Ba;5~Zyqw2#NBT+#c-^sT zl>j6?wIF*<0=e|eMwRf7To|OLE-q0y%R^e1 z24A&WRy$T`chx};4xEre54G^rYb?DLisq#cLrEkvRrxH#-zbYVWwIcbH~2ix&Zb7f z@^7`b8EHFLlQdH=%sJ2Pq$_6H((iBS7e8f)d|#ZZq=A49X|3^S4LW%v3T#7$MuWCY zXu5YA{@vcMU0_k?Vh_su!mWe#Uz@g<3Ny2D)|Tdl)en24YH4>^&Zx8&;LVH##8EwL zNLQCOc-{)RUzx3U4kD2jK86|&OB?+Id2Ma|R$Cr#Yiw-UYiG#Es)^jA=3nLKKXix zs!h~vAsT)$ADOr9q)X;n6S!#g%{3DbzghK9C~1?V^;~vbWpScfauf5g8?uP3ubLX> zvTGpyF#dzf4&SO^P;YqVW^zLS!EfGQ$akd~v01VSj;~lch;XfkPP!uvB*r zYuZBL^1v6BO(8Yx*04G0a%vu8tTSeySb+Qsn*QVu2^Mh= zNicW0>1PTnb!ZuAEQ<@`8x!i;D5?^)Vi*s8d0A(hQ=W_)}^IYtadjc zmu`k9*n2ew@FbFl9scN=fv$*%t=qR5+D|lhxWP!a%}vY(gyC>(SZ=O&KUIr9Dm*5A z8P1IKps=}=07$CHn9AYQo7>r4^-*gdGp6QM1?I&--Ie$}ev+cm1B!lith8i}9d%Y*mIrUp1goCaagbK{H@MYRQP@dmKQTUL>kVg>t+SuWon~ z5>3_|n*RAp%d{sxahWeNw$QL*&Gz19MhF;=9baZ0VI)G$VimSHt z{)@^LAzjZhf=X|XE);0$tG;7R3D7e$!r(Pt*!_x|ap!f{U-8k3Pc%1pn}wQlESp@L l+L?l-!EOJC@xOynp~7I(ICZ^qXOtg5z|9%!#6lgp_y?I6&lCUv literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-dash.mask.rgb24.ref.png b/test/reference/degenerate-dash.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddfc8bbfd3a61d3a4c9ad53ad1383ff11014de7 GIT binary patch literal 2086 zcmeH|eKZql9LHDO*~(lkNko^Fr6LWRTx9bSV|LP-@)nhJ8KJBfuUY7}L>5eP*_jcl}9-k8fPc@SVvq$H^c77 z)8-5HO#3o-WRbYo3%}G#KvNKO@rw4^0n=2?9-s{>efmtBvjERx@+yG31nKKQ{N&8Q zUZH1sR1#x5@t(@o*?KCU#n+i)PMtD!rN6O$Fy2nX2?3by#gL=u)|d^&L~DrxhF7c6d!vN6dUhTxla>5g}(m)!Pnd2M+8@O>tx)Ba;5~Zyqw2#NBT+#c-^sT zl>j6?wIF*<0=e|eMwRf7To|OLE-q0y%R^e1 z24A&WRy$T`chx};4xEre54G^rYb?DLisq#cLrEkvRrxH#-zbYVWwIcbH~2ix&Zb7f z@^7`b8EHFLlQdH=%sJ2Pq$_6H((iBS7e8f)d|#ZZq=A49X|3^S4LW%v3T#7$MuWCY zXu5YA{@vcMU0_k?Vh_su!mWe#Uz@g<3Ny2D)|Tdl)en24YH4>^&Zx8&;LVH##8EwL zNLQCOc-{)RUzx3U4kD2jK86|&OB?+Id2Ma|R$Cr#Yiw-UYiG#Es)^jA=3nLKKXix zs!h~vAsT)$ADOr9q)X;n6S!#g%{3DbzghK9C~1?V^;~vbWpScfauf5g8?uP3ubLX> zvTGpyF#dzf4&SO^P;YqVW^zLS!EfGQ$akd~v01VSj;~lch;XfkPP!uvB*r zYuZBL^1v6BO(8Yx*04G0a%vu8tTSeySb+Qsn*QVu2^Mh= zNicW0>1PTnb!ZuAEQ<@`8x!i;D5?^)Vi*s8d0A(hQ=W_)}^IYtadjc zmu`k9*n2ew@FbFl9scN=fv$*%t=qR5+D|lhxWP!a%}vY(gyC>(SZ=O&KUIr9Dm*5A z8P1IKps=}=07$CHn9AYQo7>r4^-*gdGp6QM1?I&--Ie$}ev+cm1B!lith8i}9d%Y*mIrUp1goCaagbK{H@MYRQP@dmKQTUL>kVg>t+SuWon~ z5>3_|n*RAp%d{sxahWeNw$QL*&Gz19MhF;=9baZ0VI)G$VimSHt z{)@^LAzjZhf=X|XE);0$tG;7R3D7e$!r(Pt*!_x|ap!f{U-8k3Pc%1pn}wQlESp@L l+L?l-!EOJC@xOynp~7I(ICZ^qXOtg5z|9%!#6lgp_y?I6&lCUv literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-dash.rgb24.ref.png b/test/reference/degenerate-dash.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddfc8bbfd3a61d3a4c9ad53ad1383ff11014de7 GIT binary patch literal 2086 zcmeH|eKZql9LHDO*~(lkNko^Fr6LWRTx9bSV|LP-@)nhJ8KJBfuUY7}L>5eP*_jcl}9-k8fPc@SVvq$H^c77 z)8-5HO#3o-WRbYo3%}G#KvNKO@rw4^0n=2?9-s{>efmtBvjERx@+yG31nKKQ{N&8Q zUZH1sR1#x5@t(@o*?KCU#n+i)PMtD!rN6O$Fy2nX2?3by#gL=u)|d^&L~DrxhF7c6d!vN6dUhTxla>5g}(m)!Pnd2M+8@O>tx)Ba;5~Zyqw2#NBT+#c-^sT zl>j6?wIF*<0=e|eMwRf7To|OLE-q0y%R^e1 z24A&WRy$T`chx};4xEre54G^rYb?DLisq#cLrEkvRrxH#-zbYVWwIcbH~2ix&Zb7f z@^7`b8EHFLlQdH=%sJ2Pq$_6H((iBS7e8f)d|#ZZq=A49X|3^S4LW%v3T#7$MuWCY zXu5YA{@vcMU0_k?Vh_su!mWe#Uz@g<3Ny2D)|Tdl)en24YH4>^&Zx8&;LVH##8EwL zNLQCOc-{)RUzx3U4kD2jK86|&OB?+Id2Ma|R$Cr#Yiw-UYiG#Es)^jA=3nLKKXix zs!h~vAsT)$ADOr9q)X;n6S!#g%{3DbzghK9C~1?V^;~vbWpScfauf5g8?uP3ubLX> zvTGpyF#dzf4&SO^P;YqVW^zLS!EfGQ$akd~v01VSj;~lch;XfkPP!uvB*r zYuZBL^1v6BO(8Yx*04G0a%vu8tTSeySb+Qsn*QVu2^Mh= zNicW0>1PTnb!ZuAEQ<@`8x!i;D5?^)Vi*s8d0A(hQ=W_)}^IYtadjc zmu`k9*n2ew@FbFl9scN=fv$*%t=qR5+D|lhxWP!a%}vY(gyC>(SZ=O&KUIr9Dm*5A z8P1IKps=}=07$CHn9AYQo7>r4^-*gdGp6QM1?I&--Ie$}ev+cm1B!lith8i}9d%Y*mIrUp1goCaagbK{H@MYRQP@dmKQTUL>kVg>t+SuWon~ z5>3_|n*RAp%d{sxahWeNw$QL*&Gz19MhF;=9baZ0VI)G$VimSHt z{)@^LAzjZhf=X|XE);0$tG;7R3D7e$!r(Pt*!_x|ap!f{U-8k3Pc%1pn}wQlESp@L l+L?l-!EOJC@xOynp~7I(ICZ^qXOtg5z|9%!#6lgp_y?I6&lCUv literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-linear-gradient.argb32.ref.png b/test/reference/degenerate-linear-gradient.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ceed48a722ed1213359ff2a9ac4f024a9753fb80 GIT binary patch literal 336 zcmV-W0k8gvP)4!K~z|U?N>1lfFjNSPINcaE+{D5dh1wZi%_XYo90Tq>m=mVhe z10+)0c)i6cS@$r(V0Ft>dy~nA3727T>be%6P)ga#tOO_Ua=V_tLb?wj#PxO>TjCSJ%P7{AGyDPu8z)Z+>24I67Lg zyM0Oo2tYuHNL0p+F&r1n{rG_sw?*29@zyyM15V7IG6F(Cxkh>9L^Ni)nsQ=**%ClW z7l8nnBKyV|Ye{^Li*;bUb<~N3fB+!vb^DSSpj$*J=`uNWwU&%Q{!}m(>2{2_PIV$6 z0ZH2@{VH)bn>p;iy79I}iU{lVi_l_<^ZBDgnlbW)9FC7|7;hbsK(b6gO&9 zp69vvS(HJjos0lPNd4wymg#b z;ZnLK0G_-7TKae!a^m8B(XoL!uD5iwiXhldzMki8fNu3M>#h21;n^tvP`(hm!ZyjxyeBS=QC;vv>_Uk=4!0%fo@w|Wa#4!K~z|U?N>1lfFjNSPINcaE+{D5dh1wZi%_XYo90Tq>m=mVhe z10+)0c)i6cS@$r(V0Ft>dy~nA3727T>be%6P)ga#tOO_Ua=V_tLb?wj#PxO>TjCSJ%P7{A4!K~z|U?N>1lfFjNSPINcaE+{D5dh1wZi%_XYo90Tq>m=mVhe z10+)0c)i6cS@$r(V0Ft>dy~nA3727T>be%6P)ga#tOO_Ua=V_tLb?wj#PxO>TjCSJ%P7{A4!K~z|U?N>1lfFjNSPINcaE+{D5dh1wZi%_XYo90Tq>m=mVhe z10+)0c)i6cS@$r(V0Ft>dy~nA3727T>be%6P)ga#tOO_Ua=V_tLb?wj#PxO>TjCSJ%P7{Ag@GF+Vk`jAxkfzE*Z+h1sf6@ zyZ;B?0@3ggNW#c0EtXbGFH5_nWNGOcC|PoN_nv{aOrWi0hFi;@m570!nQtB~f@B>> zoh-eN*Y~I~9E!0Z5XBf#jF{Wk4eb=;k3bY-L@{D+6k|akibXM^7y$qP0Q|GsDV-UW zw&XJdRZZy@fvTqT6@i%2Rcfd7cnED8`6l#B@Gq*jeZ$Z*Io`0000G-($mr_qSPpd z#dshPi?J(lWGqH}C9Xq>uZ+dml{m7jQlp%>4kf-a7Gqc9$VjqE4FCWD;9^Fvjt_^W ze;H`#E}Ic(=#>6PplhAdGe(wGYLpY#p~P3lV(dyBSyri0!5jK$pPFlV+gAVp002ov JPDHLkV1n6RU+@3` diff --git a/test/reference/degenerate-path.egl.argb32.ref.png b/test/reference/degenerate-path.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0459397194bf881ca5c744c023f4a2e32f1d6e87 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^DnRVb!3HEH7O9E@DYhhUcNd2LAh=-f^2tDv^`0({ zAsLNtuN!h5HV|n}3@m!}=Bwka&tF6oz4aIBNuD~)DlH_v`#<|Vri&j0JPw`E(VZ6N zt?#{iX-eixNsY*&itqCpxA`nso7xtAdj8ao#(6XI<#d};WZmcL?Crn)eTAV+*G2__ zqY{BVGj3n!eJk>~-$5kV#V{#PB-v4+%W#ndBhVFpHs8{mD>-%B6JzF3-~-$5kV#V{#PB-v4+%W#ndBhVFpHs8{mD>-%B6JzF3-|gW!U_%O?XxCV09y zhD5Z!y=KUD*g(MLqW^`Jm)+St&pi&7FyGe_ykjG$#L-*4e1DFYG5IR;>S%;CTJsn< zwoZ}?OT2kT*)-=)doQQp_7-dDLvg>G)3b6Kxs1=)|4`scTxlJV6?^el+T^8nhl5^s z>6Eg2>v~RF@_x&j`=^i3xw5IQy>;uF`*Rc5-Cw=IJeb2fcO`%1tNM>@=QhlmdEG$w QIM8hjp00i_>zopr0GT*e-2eap literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-path.rgb24.ref.png b/test/reference/degenerate-path.rgb24.ref.png index d25513a4626c8f9381652a94341cf4850656df25..07fda634a065ddb995cc67c851990f64c72ab845 100644 GIT binary patch delta 173 zcmV;e08;xwLO2TLtUlBDmntl!JWoYb;@hlRDQ-zJ@5uHUP$H&X~pZK)4g b>VNSD&aj%9*Dx)|00000NkvXXu0mjfzids2 delta 166 zcmV;X09pUr0n`DIHh+mpL_t(oh3(eS34kyRgyF*pI+`Omikmn}M{xv4sIQ7pqD@1E z|0B;mXnPO|u9CD$S=yzgcUYFnW#+D7K)V+wB@dKOYEOP-;qDMXCSd1eCJ8 UZvu7O!TiD)Fq_oG7uGc84R>TV9+V* z5TQY*f=*)K#jXW)s#_hbTXoArmbdJZ6k;RepEE3T_ED)+rltyoLR~AR{MB=JbaViK*Xw+3X413-Iwdm@qey+$4W>bVIaJv}|Qx3|K@0{p!8_xEXvPrKM$S zYpZ%meSSntr_)xewY$5!SS&X5mB5dP*=*KowbrEBEI+SEBti($Xf%6!d(wO5@Z-<9 z$HvAQJq{)EBjV-drNv^YPE#H~BCf8k0)SqxPo+{4du8(D&$-vu*6RC8=10Wi<716R zGcq#r@$vC{uXKJyoS&Zu0K47Jr}>Heh!~H@jYeb5zxRi4GyI4c31ipwiue&R7!3M+zB;~5^1r^mI-O36qB5C`5`IL?<#J}TnGkY%dMethbpI2H zMAGSWDwR^`Ls3*L7AuuX3kwSht!y@1I2=aArKKhDYU#N)(!s&O&@POM0|gL@9gXZfVQ@_&%OTuz_M&EmwSGGR_H?r357za#wJp$)h;hD13*5X z7p_!+pAa%TJ9~I|sNBl$_nXaTd% zgH{D?3I#W|EvQwss)e}Z=1Z#cYuOt`@9vvMC<92sR5%K2c#%wm5Os4DW zYZfl2hkQOiGcyAKH8nMxo10&!r1y`A@pxRX*ITXDOeRxNmxq5uOe7L|y`GUK=l5S0 zfk1!|Qd?WQx3|ZiE5tv3_B}K-ROxrf(?23!US8^Sy7u<=Vw%6A0OA%)%ExHe|&tDa{2p5#M#+d05BSjbeiAj9}&ahuv)EV ze7(PQtMQMBUauDb=rqOn&*$^Ky}bZ1IXTIPE6P72dc9t^+g(PtO8?nx)@(M@X$t%P zi%2Gu4Gj&1kZ3f@$rXG4@%#Ppcsv%1iPTZ4RH0BPo6XM6&6Un#H75&$!LYo%jED;h z3*21(xmLo#!NK_WIAc(Nc%e|}?CdNaz>4Elz5g`c-``tXTLGY{sfnE{!TFb>sAMwv z^70~5hY;fP`LLR;t^}D(wz#+m0I5`py;1`Igpld!>BGZA@lwOX!}ay`WtXT{%H#1g zHa2o{rMdrbyWQvK=i+sgN~P23EFBl{Qpn|Ux7*FhmBznPsieaekG{S>Npt|f<#KV> zNOu24|8K;@X0u760|0irowG(V|7~q;lIYNa?=jZ31o*tHh@4EjJoP|Q6U~uhryGo@Jrna=SG(SJjQa~ixwEr)D`u+bu|34eQ Y0EI!5w~9VPb^rhX07*qoM6N<$g1bu?ApigX literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-pen.mask.argb32.ref.png b/test/reference/degenerate-pen.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ea65d227553ac3f493f669830f8abbbaca06bb83 GIT binary patch literal 1019 zcmViD)Fq_oG7uGc84R>TV9+V* z5TQY*f=*)K#jXW)s#_hbTXoArmbdJZ6k;RepEE3T_ED)+rltyoLR~AR{MB=JbaViK*Xw+3X413-Iwdm@qey+$4W>bVIaJv}|Qx3|K@0{p!8_xEXvPrKM$S zYpZ%meSSntr_)xewY$5!SS&X5mB5dP*=*KowbrEBEI+SEBti($Xf%6!d(wO5@Z-<9 z$HvAQJq{)EBjV-drNv^YPE#H~BCf8k0)SqxPo+{4du8(D&$-vu*6RC8=10Wi<716R zGcq#r@$vC{uXKJyoS&Zu0K47Jr}>Heh!~H@jYeb5zxRi4GyI4c31ipwiue&R7!3M+zB;~5^1r^mI-O36qB5C`5`IL?<#J}TnGkY%dMethbpI2H zMAGSWDwR^`Ls3*L7AuuX3kwSht!y@1I2=aArKKhDYU#N)(!s&O&@POM0|gL@9gXZfVQ@_&%OTuz_M&EmwSGGR_H?r357za#wJp$)h;hD13*5X z7p_!+pAa%TJ9~I|sNBl$_nXaTdiD)Fq_oG7uGc84R>TV9+V* z5TQY*f=*)K#jXW)s#_hbTXoArmbdJZ6k;RepEE3T_ED)+rltyoLR~AR{MB=JbaViK*Xw+3X413-Iwdm@qey+$4W>bVIaJv}|Qx3|K@0{p!8_xEXvPrKM$S zYpZ%meSSntr_)xewY$5!SS&X5mB5dP*=*KowbrEBEI+SEBti($Xf%6!d(wO5@Z-<9 z$HvAQJq{)EBjV-drNv^YPE#H~BCf8k0)SqxPo+{4du8(D&$-vu*6RC8=10Wi<716R zGcq#r@$vC{uXKJyoS&Zu0K47Jr}>Heh!~H@jYeb5zxRi4GyI4c31ipwiue&R7!3M+zB;~5^1r^mI-O36qB5C`5`IL?<#J}TnGkY%dMethbpI2H zMAGSWDwR^`Ls3*L7AuuX3kwSht!y@1I2=aArKKhDYU#N)(!s&O&@POM0|gL@9gXZfVQ@_&%OTuz_M&EmwSGGR_H?r357za#wJp$)h;hD13*5X z7p_!+pAa%TJ9~I|sNBl$_nXaTdiD)Fq_oG7uGc84R>TV9+V* z5TQY*f=*)K#jXW)s#_hbTXoArmbdJZ6k;RepEE3T_ED)+rltyoLR~AR{MB=JbaViK*Xw+3X413-Iwdm@qey+$4W>bVIaJv}|Qx3|K@0{p!8_xEXvPrKM$S zYpZ%meSSntr_)xewY$5!SS&X5mB5dP*=*KowbrEBEI+SEBti($Xf%6!d(wO5@Z-<9 z$HvAQJq{)EBjV-drNv^YPE#H~BCf8k0)SqxPo+{4du8(D&$-vu*6RC8=10Wi<716R zGcq#r@$vC{uXKJyoS&Zu0K47Jr}>Heh!~H@jYeb5zxRi4GyI4c31ipwiue&R7!3M+zB;~5^1r^mI-O36qB5C`5`IL?<#J}TnGkY%dMethbpI2H zMAGSWDwR^`Ls3*L7AuuX3kwSht!y@1I2=aArKKhDYU#N)(!s&O&@POM0|gL@9gXZfVQ@_&%OTuz_M&EmwSGGR_H?r357za#wJp$)h;hD13*5X z7p_!+pAa%TJ9~I|sNBl$_nXaTdEhuK{U8lb z`7L+v0Et5t)StL{^eW7POKCry&*`m$Xap%ZEnietxD{#>(8_-kHg~UvnY`rer}jC6 b)atzZirQS32Ne2%!O!67>gTe~DWM4ffB?)~ literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-radial-gradient.egl.argb32.ref.png b/test/reference/degenerate-radial-gradient.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5213b5873892332e33ec4a6f517c1a20f7433e GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^^MJU5g9%9X{JOIlNUEhuK{U8lb z`7L+v0Et5t)StL{^eW7POKCry&*`m$Xap%ZEnietxD{#>(8_-kHg~UvnY`rer}jC6 b)atzZirQS32Ne2%!O!67>gTe~DWM4ffB?)~ literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-radial-gradient.mask.argb32.ref.png b/test/reference/degenerate-radial-gradient.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5213b5873892332e33ec4a6f517c1a20f7433e GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^^MJU5g9%9X{JOIlNUEhuK{U8lb z`7L+v0Et5t)StL{^eW7POKCry&*`m$Xap%ZEnietxD{#>(8_-kHg~UvnY`rer}jC6 b)atzZirQS32Ne2%!O!67>gTe~DWM4ffB?)~ literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-radial-gradient.mask.rgb24.ref.png b/test/reference/degenerate-radial-gradient.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5213b5873892332e33ec4a6f517c1a20f7433e GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^^MJU5g9%9X{JOIlNUEhuK{U8lb z`7L+v0Et5t)StL{^eW7POKCry&*`m$Xap%ZEnietxD{#>(8_-kHg~UvnY`rer}jC6 b)atzZirQS32Ne2%!O!67>gTe~DWM4ffB?)~ literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-radial-gradient.rgb24.ref.png b/test/reference/degenerate-radial-gradient.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5213b5873892332e33ec4a6f517c1a20f7433e GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^^MJU5g9%9X{JOIlNUEhuK{U8lb z`7L+v0Et5t)StL{^eW7POKCry&*`m$Xap%ZEnietxD{#>(8_-kHg~UvnY`rer}jC6 b)atzZirQS32Ne2%!O!67>gTe~DWM4ffB?)~ literal 0 HcmV?d00001 diff --git a/test/reference/degenerate-rel-curve-to.argb32.ref.png b/test/reference/degenerate-rel-curve-to.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c4293adf4aa66d4eda75b5cf402b7efc7b538a9c GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj-!2~3Cth2lXq}Y|gW!U_%O?XxPIxr&iP2X<4l02f#ar;)Kn6G-I!S^^s>_;85gHY!P56I=P9*JoEN89q;3XI;VFPGt5}FGgmq}Cvuu`?Wu#7 z&*z*DtK6|gW!U_%O?XxPIxr&iP2X<4l02f#ar;)Kn6G-I!S^^s>_;85gHY!P56I=P9*JoEN89q;3XI;VFPGt5}FGgmq}Cvuu`?Wu#7 z&*z*DtK6|gW!U_%O?XxPIxr&iP2X<4l02f#ar;)Kn6G-I!S^^s>_;85gHY!P56I=P9*JoEN89q;3XI;VFPGt5}FGgmq}Cvuu`?Wu#7 z&*z*DtK6|gW!U_%O?XxPIxr&iP2X<4l02f#ar;)Kn6G-I!S^^s>_;85gHY!P56I=P9*JoEN89q;3XI;VFPGt5}FGgmq}Cvuu`?Wu#7 z&*z*DtK6|gW!U_%O?XxPIxr&iP2X<4l02f#ar;)Kn6G-I!S^^s>_;85gHY!P56I=P9*JoEN89q;3XI;VFPGt5}FGgmq}Cvuu`?Wu#7 z&*z*DtK6jaM`QB>*u_?A)siVI45duU; zW?z-e@lB#V?_=}gr=H|G0)^}L^Ugo}Yp?Bh>D-U2e8Ln+fCg3f3!Vz=JQiDjDup!( z3fmuRJjQLzhxdM)_U*g#SO`dYuSxh4b|d~nMYhlXDFrQgb{m^?{Wsk!y?+2Q`PhyE1!Y&=+7xGkCiCxvXf2VJs$NiFPiS~qb6D;;_C>BwOeRz|fFM4xxY3=>@yK`^9^eK;? zc6$2OYlgF9_jcSo(@}PKQ>VSeB~g!Xg;>SHUmwhSe|$0gelz8JV#UQxIaNUM2RlL< yOIRT)8s{!%ddVd-y(s3FC`^yl@ugf~BjPs9<&S8&eB~z4D-52lelF{r5}E+lR&S92 literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-fractional.egl.argb32.ref.png b/test/reference/device-offset-fractional.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..62ca7f646b73b7457fac75061bae7fab64660955 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^b|B2b1SJ0~wigCcY)RhkE)4%caKYZ?lYt^9JY5_^ zG8*6B2;@4fAmDm&V@iBsx@7sZHD~I=T0OLHguk?XqTJXSwml6*yO7x zZ>gQXZ_U%D$oE=1zpLH-EIuvvN3&vVV+rdeQ8B;u|9tP>uhl(vub}7Z<0Yv#zi3TZ z7qHad>iUx%TUzlean~Cx(Y9esHsNf2VJs$NiFPiS~qb6D;;_C>BwOeRz|fFM4xxY3=>@yK`^9^eK;? zc6$2OYlgF9_jcSo(@}PKQ>VSeB~g!Xg;>SHUmwhSe|$0gelz8JV#UQxIaNUM2RlL< yOIRT)8s{!%ddVd-y(s3FC`^yl@ugf~BjPs9<&S8&eB~z4D-52lelF{r5}E+lR&S92 literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-fractional.mask.rgb24.ref.png b/test/reference/device-offset-fractional.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b1eef5f28a68b54af4b7e226a341872727276f40 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^b|B2b1SJ0~wigCcY)RhkE)4%caKYZ?lYt`pJzX3_ zG8*6B2;^!u5OBTd`EuW!xt2F)uG9IOqa<;w$!^)5W_h-x9UTcCnQJ5c_)8DG_XwA` zf2VJs$NiFPiS~qb6D;;_C>BwOeRz|fFM4xxY3=>@yK`^9^eK;? zc6$2OYlgF9_jcSo(@}PKQ>VSeB~g!Xg;>SHUmwhSe|$0gelz8JV#UQxIaNUM2RlL< yOIRT)8s{!%ddVd-y(s3FC`^yl@ugf~BjPs9<&S8&eB~z4D-52lelF{r5}E+lR&S92 literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-fractional.rgb24.ref.png b/test/reference/device-offset-fractional.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..b1eef5f28a68b54af4b7e226a341872727276f40 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^b|B2b1SJ0~wigCcY)RhkE)4%caKYZ?lYt`pJzX3_ zG8*6B2;^!u5OBTd`EuW!xt2F)uG9IOqa<;w$!^)5W_h-x9UTcCnQJ5c_)8DG_XwA` zf2VJs$NiFPiS~qb6D;;_C>BwOeRz|fFM4xxY3=>@yK`^9^eK;? zc6$2OYlgF9_jcSo(@}PKQ>VSeB~g!Xg;>SHUmwhSe|$0gelz8JV#UQxIaNUM2RlL< yOIRT)8s{!%ddVd-y(s3FC`^yl@ugf~BjPs9<&S8&eB~z4D-52lelF{r5}E+lR&S92 literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-positive.argb32.ref.png b/test/reference/device-offset-positive.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1115bca7a281bcaf3afdc21aeaaa481787796651 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDzUdb&7< zNK8#mSYVdWV))P4;Ey}UKliXhCk_CC%bHFX?UaLgvaD)CYbX3-V5sV0;Zx!c;s5B literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-positive.egl.argb32.ref.png b/test/reference/device-offset-positive.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1115bca7a281bcaf3afdc21aeaaa481787796651 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDzUdb&7< zNK8#mSYVdWV))P4;Ey}UKliXhCk_CC%bHFX?UaLgvaD)CYbX3-V5sV0;Zx!c;s5B literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-positive.mask.argb32.ref.png b/test/reference/device-offset-positive.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..1115bca7a281bcaf3afdc21aeaaa481787796651 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDzUdb&7< zNK8#mSYVdWV))P4;Ey}UKliXhCk_CC%bHFX?UaLgvaD)CYbX3-V5sV0;Zx!c;s5B literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-positive.mask.rgb24.ref.png b/test/reference/device-offset-positive.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..dcdd3324c5d453d96df3ead6ba666bb44a2e1dfc GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V6Od#Ih#|x{%`aOOtVO3U?`Z)%>D4vpSeKw44$rjF6*2U FngHuFAjSXy literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-positive.rgb24.ref.png b/test/reference/device-offset-positive.rgb24.ref.png index 3281f493124090ec83033dada190458e8aee7b41..dcdd3324c5d453d96df3ead6ba666bb44a2e1dfc 100644 GIT binary patch delta 8 PcmZo-%%5O3(bEzD4BrCG delta 25 gcmd0AVw_+mz+U3%>&kwOO_-gN>m$3&#EHf>09ech)Bpeg diff --git a/test/reference/device-offset-scale.argb32.ref.png b/test/reference/device-offset-scale.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..fdffbf3c67beab48fe17c1f1ce22124c5d0da9c7 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_b$PZ!4! zi{9h}iAfED=dv;!COSM$V)dDF!^Xw5zbVilhLJ()EfbgPkB1FF)eN4lelF{r5}E*; CE*`W1 literal 0 HcmV?d00001 diff --git a/test/reference/device-offset-scale.egl.argb32.ref.png b/test/reference/device-offset-scale.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..30b00753afe28a52b8ecc84a924357cab7cae1be GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjywj^(N7l!{JxM1({$v_cvPZ!4! zi{9h}iAfED=T@yxPe@7m@n7D{%uMLonHB>!PjzKwIo%s3%CGf4u_bxCyDx;d%8G= zNK8#mSYVdmV(|a}@r5lD8-buRLbx;RM3e6a`$^piIf4u_bxCyDx;d%8G= zNK8#mSYVdmV(|a}@r5lD8-buRLbx;RM3e6a`$^piIf4u_bxCyDx;d%8G= zNK8#mSYVdmV(|a}@r5lD8-buRLbx;RM3e6a`$^piIB=LWvm*K&kwORgytO%-mwZ=ZVHP09mUCMgRZ+ diff --git a/test/reference/drunkard-tails.argb32.ref.png b/test/reference/drunkard-tails.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..053e4707527d6b3053c083cfcef1b52f8bede630 GIT binary patch literal 6116 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 M>FVdQ&MBb@02?Xhpa1{> literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-border.egl.argb32.ref.png b/test/reference/extend-pad-border.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..4c39d9a1d5e4a6a1b563d35ecdec689a12383963 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Co?cGUh{Nu z45^s&_SRXyLk<$H56e&OZ{jw)_rG-Kwl{YInj}u`xL`Q1MZn$7de&zh56@X=J}mpY zhS9(n3^v>Ar_7a2*4b8c{o=M9vn_9DHm}p(>UT{&$7}5`dyDo0zK1f0EL(~>o(r5) zoa0PL;8?;pClDtoj>Tb!8r~@SaJWT2`vD{X+lK zj7;P0MF$1vJ!GhUv9M8+L3l@F^3GNxo*Bwc{OT_*pEYXNyyKw%{hz+nhcr%uCbn56 z20y=;y$LCME zW&3(Bsjf-n?S4Ja?9lgR=NrP0>$*rRziH_eeq8EZVr1Szo=QuruD@=Yw%M|mio-oF zr%Ze|o$*J#SfF!X;=g6{LV?u09p_dly1UMCzB1wPX6K5sE2k`7cr9(LThiUv;uoAT e69WFu2p8ih-?89z$X8&TGkCiCxvXwV50FnataHRv8_+r z6cH8ANh+R~`psAGs**XLrp(V=d;X)x{r}GsB%*qQzw+)5Tl|mj83!q_d(~?8S$lb# z+$);IcO2j_jyS-z?F0L*z4sq|{5<{I(-$wbmw#$huV@gqIV}2YLtE|2&)e@h{I{#m zjO|lCerjdS16IF+CgVL$?9w-;N6x*?`z6(K*1A4!o5MTT^zmI|(0RzG_m*vyL1Lfa zx({5}i#F#Zu$C9(?kW$N@gZ&IK^dzTrw)F)n|U{$J8EV@sZIj#>`yz-T;A1bIw!bw znPu1p{p#nh?uPAZuD$8L?{1}VOZ{PcQ+that7}#%YlU{MCW%c84Yqn}sKi{*a zkNM8wb$1;^)oQf%+GfxFyt0J%cF}&H1NU_f%8&wqK|D$2<@QSEj*Vfvv@~7BfHBD6 M>FVdQ&MBb@02?Xhpa1{> literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-border.mask.rgb24.ref.png b/test/reference/extend-pad-border.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f4fc524ac5ef07f56a005adabfd03b52804c0f47 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Co?cGF7b46 z45^s&_Li^rYX=6mhnK(HzJ1Tt{NMlkrQctk^Hq+@?Cmysz%5>wV50FnataHRv8_+r z6cH8ANh+R~`psAGs**XLrp(V=d;X)x{r}GsB%*qQzw+)5Tl|mj83!q_d(~?8S$lb# z+$);IcO2j_jyS-z?F0L*z4sq|{5<{I(-$wbmw#$huV@gqIV}2YLtE|2&)e@h{I{#m zjO|lCerjdS16IF+CgVL$?9w-;N6x*?`z6(K*1A4!o5MTT^zmI|(0RzG_m*vyL1Lfa zx({5}i#F#Zu$C9(?kW$N@gZ&IK^dzTrw)F)n|U{$J8EV@sZIj#>`yz-T;A1bIw!bw znPu1p{p#nh?uPAZuD$8L?{1}VOZ{PcQ+that7}#%YlU{MCW%c84Yqn}sKi{*a zkNM8wb$1;^)oQf%+GfxFyt0J%cF}&H1NU_f%8&wqK|D$2<@QSEj*Vfvv@~7BfHBD6 M>FVdQ&MBb@02?Xhpa1{> literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-border.rgb24.ref.png b/test/reference/extend-pad-border.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..f4fc524ac5ef07f56a005adabfd03b52804c0f47 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Co?cGF7b46 z45^s&_Li^rYX=6mhnK(HzJ1Tt{NMlkrQctk^Hq+@?Cmysz%5>wV50FnataHRv8_+r z6cH8ANh+R~`psAGs**XLrp(V=d;X)x{r}GsB%*qQzw+)5Tl|mj83!q_d(~?8S$lb# z+$);IcO2j_jyS-z?F0L*z4sq|{5<{I(-$wbmw#$huV@gqIV}2YLtE|2&)e@h{I{#m zjO|lCerjdS16IF+CgVL$?9w-;N6x*?`z6(K*1A4!o5MTT^zmI|(0RzG_m*vyL1Lfa zx({5}i#F#Zu$C9(?kW$N@gZ&IK^dzTrw)F)n|U{$J8EV@sZIj#>`yz-T;A1bIw!bw znPu1p{p#nh?uPAZuD$8L?{1}VOZ{PcQ+that7}#%YlU{MCW%c84Yqn}sKi{*a zkNM8wb$1;^)oQf%+GfxFyt0J%cF}&H1NU_f%8&wqK|D$2<@QSEj*Vfvv@~7BfHBD6 M>FVdQ&MBb@02?Xhpa1{> literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-similar.argb32.ref.png b/test/reference/extend-pad-similar.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-similar.egl.argb32.ref.png b/test/reference/extend-pad-similar.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-similar.mask.argb32.ref.png b/test/reference/extend-pad-similar.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-similar.mask.rgb24.ref.png b/test/reference/extend-pad-similar.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad-similar.rgb24.ref.png b/test/reference/extend-pad-similar.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad.argb32.ref.png b/test/reference/extend-pad.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad.egl.argb32.ref.png b/test/reference/extend-pad.egl.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad.mask.argb32.ref.png b/test/reference/extend-pad.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad.mask.rgb24.ref.png b/test/reference/extend-pad.mask.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-pad.rgb24.ref.png b/test/reference/extend-pad.rgb24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..9345221899c446d6780a298ff1b8fa1d9f44a8b1 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S901SGegx)utg*pj^6T^Rm@;DWu&Cj&*!c)B=- zRLpsMYa{Og10EJb&EN0eT$yt~uTR*9PiyP*Ih6zopr0F3r$=Kufz literal 0 HcmV?d00001 diff --git a/test/reference/extend-reflect-similar.argb32.ref.png b/test/reference/extend-reflect-similar.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc3448faeac78d7672ebed25acff4f4d759a2d1 GIT binary patch literal 133406 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 bJ-2~yjH4BO_?b>Yz{hbbd&@G6Th#vmD0FMF literal 0 HcmV?d00001 diff --git a/test/reference/dash-curve.mask.argb32.ref.png b/test/reference/dash-curve.mask.argb32.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..8bebde204a5e12a60f5ac3b3386a21c273e9ea5b GIT binary patch literal 41040 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