diff options
Diffstat (limited to 'src')
51 files changed, 792 insertions, 792 deletions
diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c index fdcd17fd..d06e3fea 100644 --- a/src/cairo-analysis-surface.c +++ b/src/cairo-analysis-surface.c @@ -43,7 +43,7 @@ typedef struct { int height; cairo_surface_t *target; - + cairo_bool_t fallback; } cairo_analysis_surface_t; diff --git a/src/cairo-arc.c b/src/cairo-arc.c index 4b767f17..e65e381b 100644 --- a/src/cairo-arc.c +++ b/src/cairo-arc.c @@ -190,7 +190,7 @@ _cairo_arc_in_direction (cairo_t *cr, _cairo_arc_in_direction (cr, xc, yc, radius, angle_min, angle_mid, dir); - + _cairo_arc_in_direction (cr, xc, yc, radius, angle_mid, angle_max, dir); diff --git a/src/cairo-atsui-font.c b/src/cairo-atsui-font.c index 878eaf8b..4adeabdc 100644 --- a/src/cairo-atsui-font.c +++ b/src/cairo-atsui-font.c @@ -186,7 +186,7 @@ _cairo_atsui_font_set_metrics (cairo_atsui_font_t *font) if (err == noErr) { cairo_font_extents_t extents; - + extents.ascent = metrics.ascent; extents.descent = -metrics.descent; extents.height = metrics.capHeight; @@ -407,7 +407,7 @@ _line_to (const Float32Point *point, _cairo_path_fixed_line_to (path, _cairo_fixed_from_double(point->x), _cairo_fixed_from_double(point->y)); - + return noErr; } @@ -426,7 +426,7 @@ _curve_to (const Float32Point *point1, _cairo_fixed_from_double(point2->y), _cairo_fixed_from_double(point3->x), _cairo_fixed_from_double(point3->y)); - + return noErr; } @@ -553,7 +553,7 @@ _cairo_atsui_font_text_to_glyphs (void *abstract_font, kATSUDirectDataLayoutRecordATSLayoutRecordCurrent, (void *) &layoutRecords); ATSUDisposeTextLayout(textLayout); - + return CAIRO_STATUS_SUCCESS; } @@ -599,7 +599,7 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font, /* Create a CGBitmapContext for the dest surface for drawing into */ colorSpace = CGColorSpaceCreateDeviceRGB(); - + myBitmapContext = CGBitmapContextCreate(destImageSurface->data, destImageSurface->width, destImageSurface->height, @@ -658,23 +658,23 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font, rects = malloc (sizeof (CGRect) * num_boxes); else rects = stack_rects; - + for (i = 0; i < num_boxes; i++) { rects[i].origin.x = boxes[i].x1; rects[i].origin.y = boxes[i].y1; rects[i].size.width = boxes[i].x2 - boxes[i].x1; rects[i].size.height = boxes[i].y2 - boxes[i].y1; } - + CGContextClipToRects (drawingContext, rects, num_boxes); - + if (rects != stack_rects) free(rects); } } else { /* XXX: Need to get the text clipped */ } - + /* TODO - bold and italic text * * We could draw the text using ATSUI and get bold, italics @@ -682,10 +682,10 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font, * that we don't really need... */ - + for (i = 0; i < num_glyphs; i++) { CGGlyph theGlyph = glyphs[i].index; - + CGContextShowGlyphsAtPoint(drawingContext, glyphs[i].x, glyphs[i].y, @@ -695,7 +695,7 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font, if (!can_draw_directly) { CGColorSpaceRelease(colorSpace); CGContextRelease(myBitmapContext); - + _cairo_surface_release_dest_image(generic_surface, &rect, destImageSurface, diff --git a/src/cairo-base85-stream.c b/src/cairo-base85-stream.c index 1d4535a9..43401e68 100644 --- a/src/cairo-base85-stream.c +++ b/src/cairo-base85-stream.c @@ -49,7 +49,7 @@ _expand_four_tuple_to_five (unsigned char four_tuple[4], { uint32_t value; int digit, i; - + value = four_tuple[0] << 24 | four_tuple[1] << 16 | four_tuple[2] << 8 | four_tuple[3]; if (all_zero) *all_zero = TRUE; diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 06c2abd0..b0d142b1 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -114,7 +114,7 @@ _cairo_clip_reset (cairo_clip_t *clip) _cairo_clip_path_destroy (clip->path); clip->path = NULL; - + return CAIRO_STATUS_SUCCESS; } @@ -133,11 +133,11 @@ _cairo_clip_intersect_to_rectangle (cairo_clip_t *clip, pixman_region16_t *intersection; cairo_status_t status = CAIRO_STATUS_SUCCESS; pixman_region_status_t pixman_status; - + intersection = _cairo_region_create_from_rectangle (rectangle); if (intersection == NULL) return CAIRO_STATUS_NO_MEMORY; - + pixman_status = pixman_region_intersect (intersection, clip->region, intersection); @@ -176,11 +176,11 @@ _cairo_clip_intersect_to_region (cairo_clip_t *clip, pixman_region16_t *clip_rect; pixman_region_status_t pixman_status; cairo_status_t status = CAIRO_STATUS_SUCCESS; - + clip_rect = _cairo_region_create_from_rectangle (&clip->surface_rect); if (clip_rect == NULL) return CAIRO_STATUS_NO_MEMORY; - + pixman_status = pixman_region_intersect (region, clip_rect, region); @@ -212,7 +212,7 @@ _cairo_clip_combine_to_surface (cairo_clip_t *clip, cairo_status_t status; _cairo_pattern_init_for_surface (&pattern.surface, clip->surface); - + status = _cairo_surface_composite (op, &pattern.base, NULL, @@ -223,7 +223,7 @@ _cairo_clip_combine_to_surface (cairo_clip_t *clip, extents->x - dst_x, extents->y - dst_y, extents->width, extents->height); - + _cairo_pattern_fini (&pattern.base); return status; @@ -298,11 +298,11 @@ _cairo_clip_intersect_region (cairo_clip_t *clip, if (clip->mode != CAIRO_CLIP_MODE_REGION) return CAIRO_INT_STATUS_UNSUPPORTED; - + status = _cairo_traps_extract_region (traps, ®ion); if (status) return status; - + if (region == NULL) return CAIRO_INT_STATUS_UNSUPPORTED; @@ -311,7 +311,7 @@ _cairo_clip_intersect_region (cairo_clip_t *clip, clip->region = region; } else { pixman_region16_t *intersection = pixman_region_create(); - + if (pixman_region_intersect (intersection, clip->region, region) == PIXMAN_REGION_STATUS_SUCCESS) { @@ -369,7 +369,7 @@ _cairo_clip_intersect_mask (cairo_clip_t *clip, _cairo_traps_translate (traps, -surface_rect.x, -surface_rect.y); _cairo_pattern_init_solid (&pattern.solid, CAIRO_COLOR_WHITE); - + status = _cairo_surface_composite_trapezoids (CAIRO_OPERATOR_IN, &pattern.base, surface, @@ -442,7 +442,7 @@ _cairo_clip_clip (cairo_clip_t *clip, _cairo_fixed_from_double (target->device_y_offset)); path = &path_transformed; } - + status = _cairo_clip_intersect_path (clip, path, fill_rule, tolerance, antialias); @@ -466,7 +466,7 @@ _cairo_clip_clip (cairo_clip_t *clip, goto bail; status = _cairo_clip_intersect_mask (clip, &traps, antialias, target); - + bail: _cairo_traps_fini (&traps); if (path == &path_transformed) diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c index 0b13de16..8776581b 100644 --- a/src/cairo-directfb-surface.c +++ b/src/cairo-directfb-surface.c @@ -266,7 +266,7 @@ _cairo_directfb_surface_get_image (cairo_directfb_surface_t *surface, surface->buffer_data=NULL; } surface->buffer->Unlock(surface->buffer); - + surface->main_surface->GetSize(surface->main_surface,&width,&height); surface->main_surface->GetPixelFormat(surface->main_surface,&dfbformat); @@ -508,7 +508,7 @@ _cairo_directfb_surface_composite (cairo_operator_t op, if (src->base.backend != dst->base.backend){ return CAIRO_INT_STATUS_UNSUPPORTED; } - + integer_transform = _cairo_matrix_is_integer_translation (&src_pattern->matrix, &itx, &ity); if (!integer_transform) { return CAIRO_INT_STATUS_UNSUPPORTED; @@ -776,7 +776,7 @@ _cairo_directfb_surface_show_glyphs (cairo_scaled_font_t *scaled_font, surface->buffer->SetColor(surface->buffer,0,0xff,0xff,0xff); #endif surface->buffer->Blit(surface->buffer,tmpbuffer,NULL,x,y); - + } return CAIRO_INT_STATUS_UNSUPPORTED; } diff --git a/src/cairo-font-options.c b/src/cairo-font-options.c index 920e6edd..91d7a4db 100644 --- a/src/cairo-font-options.c +++ b/src/cairo-font-options.c @@ -54,7 +54,7 @@ _cairo_font_options_init_default (cairo_font_options_t *options) { if (options == (cairo_font_options_t *)&cairo_font_options_nil) return; - + options->antialias = CAIRO_ANTIALIAS_DEFAULT; options->subpixel_order = CAIRO_SUBPIXEL_ORDER_DEFAULT; options->hint_style = CAIRO_HINT_STYLE_DEFAULT; @@ -237,7 +237,7 @@ cairo_font_options_set_antialias (cairo_font_options_t *options, { if (options == (cairo_font_options_t *)&cairo_font_options_nil) return; - + options->antialias = antialias; } @@ -272,7 +272,7 @@ cairo_font_options_set_subpixel_order (cairo_font_options_t *options, { if (options == (cairo_font_options_t *)&cairo_font_options_nil) return; - + options->subpixel_order = subpixel_order; } @@ -307,7 +307,7 @@ cairo_font_options_set_hint_style (cairo_font_options_t *options, { if (options == (cairo_font_options_t *)&cairo_font_options_nil) return; - + options->hint_style = hint_style; } diff --git a/src/cairo-font-subset.c b/src/cairo-font-subset.c index c504f2e0..f96b2a4b 100644 --- a/src/cairo-font-subset.c +++ b/src/cairo-font-subset.c @@ -331,7 +331,7 @@ cairo_pdf_ft_font_write_generic_table (cairo_pdf_ft_font_t *font, status = cairo_pdf_ft_font_allocate_write_buffer (font, size, &buffer); /* XXX: Need to check status here. */ FT_Load_Sfnt_Table (font->face, tag, 0, buffer, &size); - + return 0; } @@ -371,7 +371,7 @@ cairo_pdf_ft_font_remap_composite_glyph (cairo_pdf_ft_font_t *font, glyph_data = (glyph_data_t *) buffer; if ((short)be16_to_cpu (glyph_data->num_contours) >= 0) return; - + composite_glyph = &glyph_data->glyph; do { flags = be16_to_cpu (composite_glyph->flags); @@ -573,7 +573,7 @@ cairo_pdf_ft_font_write_maxp_table (cairo_pdf_ft_font_t *font, TT_MaxProfile *maxp; maxp = FT_Get_Sfnt_Table (font->face, ft_sfnt_maxp); - + cairo_pdf_ft_font_write_be32 (font, maxp->version); cairo_pdf_ft_font_write_be16 (font, font->base.num_glyphs); cairo_pdf_ft_font_write_be16 (font, maxp->maxPoints); diff --git a/src/cairo-font.c b/src/cairo-font.c index 425021a1..40020a09 100644 --- a/src/cairo-font.c +++ b/src/cairo-font.c @@ -202,7 +202,7 @@ cairo_font_face_set_user_data (cairo_font_face_t *font_face, { if (font_face->ref_count == -1) return CAIRO_STATUS_NO_MEMORY; - + return _cairo_user_data_array_set_data (&font_face->user_data, key, user_data, destroy); } @@ -277,7 +277,7 @@ _cairo_toy_font_face_init_key (cairo_toy_font_face_t *key, hash = _cairo_hash_string (family); hash += ((unsigned long) slant) * 1607; hash += ((unsigned long) weight) * 1451; - + key->base.hash_entry.hash = hash; } @@ -350,7 +350,7 @@ _cairo_toy_font_face_create (const char *family, goto UNWIND; _cairo_toy_font_face_init_key (&key, family, slant, weight); - + /* Return existing font_face if it exists in the hash table. */ if (_cairo_hash_table_lookup (hash_table, &key.base.hash_entry, @@ -400,9 +400,9 @@ _cairo_toy_font_face_destroy (void *abstract_face) assert (hash_table != NULL); _cairo_hash_table_remove (hash_table, &font_face->base.hash_entry); - + _cairo_toy_font_face_hash_table_unlock (); - + _cairo_toy_font_face_fini (font_face); } diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index d48cec7e..2a06eebb 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -96,7 +96,7 @@ struct _cairo_ft_unscaled_font { double x_scale; /* Extracted X scale factor */ double y_scale; /* Extracted Y scale factor */ cairo_bool_t have_shape; /* true if the current scale has a non-scale component*/ - + int lock; /* count of how many times this font has been locked */ cairo_ft_font_face_t *faces; /* Linked list of faces for this font */ @@ -276,7 +276,7 @@ _cairo_ft_unscaled_font_init_key (cairo_ft_unscaled_font_t *key, /* 1607 is just an arbitrary prime. */ hash = _cairo_hash_string (filename); hash += ((unsigned long) id) * 1607; - + key->base.hash_entry.hash = hash; } @@ -330,7 +330,7 @@ _cairo_ft_unscaled_font_init (cairo_ft_unscaled_font_t *unscaled, unscaled->have_scale = FALSE; unscaled->lock = 0; - + unscaled->faces = NULL; return CAIRO_STATUS_SUCCESS; @@ -387,14 +387,14 @@ _cairo_ft_unscaled_font_create_for_pattern (FcPattern *pattern) FcChar8 *fc_filename; char *filename; int id; - + if (FcPatternGetString (pattern, FC_FILE, 0, &fc_filename) != FcResultMatch) goto UNWIND; filename = (char *) fc_filename; if (FcPatternGetInteger (pattern, FC_INDEX, 0, &id) != FcResultMatch) goto UNWIND; - + font_map = _cairo_ft_unscaled_font_map_lock (); if (font_map == NULL) goto UNWIND; @@ -473,7 +473,7 @@ _cairo_ft_unscaled_font_destroy (void *abstract_font) cairo_font_face_destroy (&unscaled->faces->base); } else { cairo_ft_unscaled_font_map_t *font_map; - + font_map = _cairo_ft_unscaled_font_map_lock (); /* All created objects must have been mapped in the font map. */ assert (font_map != NULL); @@ -516,14 +516,14 @@ _cairo_ft_unscaled_font_lock_face (cairo_ft_unscaled_font_t *unscaled) /* If this unscaled font was created from an FT_Face then we just * returned it above. */ assert (!unscaled->from_face); - + font_map = _cairo_ft_unscaled_font_map_lock (); assert (font_map != NULL); - + while (font_map->num_open_faces >= MAX_OPEN_FACES) { cairo_ft_unscaled_font_t *entry; - + entry = _cairo_hash_table_random_entry (font_map->hash_table, _has_unlocked_face); if (entry == NULL) @@ -555,7 +555,7 @@ void _cairo_ft_unscaled_font_unlock_face (cairo_ft_unscaled_font_t *unscaled) { assert (unscaled->lock > 0); - + unscaled->lock--; } @@ -565,7 +565,7 @@ _compute_transform (cairo_ft_font_transform_t *sf, { cairo_matrix_t normalized = *scale; double tx, ty; - + /* The font matrix has x and y "scale" components which we extract and * use as character scale values. These influence the way freetype * chooses hints, as well as selecting different bitmaps in @@ -576,10 +576,10 @@ _compute_transform (cairo_ft_font_transform_t *sf, _cairo_matrix_compute_scale_factors (&normalized, &sf->x_scale, &sf->y_scale, /* XXX */ 1); - + if (sf->x_scale != 0 && sf->y_scale != 0) { cairo_matrix_scale (&normalized, 1.0 / sf->x_scale, 1.0 / sf->y_scale); - + _cairo_matrix_get_affine (&normalized, &sf->shape[0][0], &sf->shape[0][1], &sf->shape[1][0], &sf->shape[1][1], @@ -603,7 +603,7 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, FT_Error error; assert (unscaled->face != NULL); - + if (unscaled->have_scale && scale->xx == unscaled->current_scale.xx && scale->yx == unscaled->current_scale.yx && @@ -613,12 +613,12 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, unscaled->have_scale = TRUE; unscaled->current_scale = *scale; - + _compute_transform (&sf, scale); unscaled->x_scale = sf.x_scale; unscaled->y_scale = sf.y_scale; - + mat.xx = DOUBLE_TO_16_16(sf.shape[0][0]); mat.yx = - DOUBLE_TO_16_16(sf.shape[0][1]); mat.xy = - DOUBLE_TO_16_16(sf.shape[1][0]); @@ -628,7 +628,7 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, mat.yx != 0x00000 || mat.xy != 0x00000 || mat.yy != 0x10000); - + FT_Set_Transform(unscaled->face, &mat, NULL); if ((unscaled->face->face_flags & FT_FACE_FLAG_SCALABLE) != 0) { @@ -644,7 +644,7 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, int best_i = 0; pixel_width = pixel_height = 0; - + for (i = 0; i < unscaled->face->num_fixed_sizes; i++) { #if HAVE_FT_BITMAP_SIZE_Y_PPEM double size = unscaled->face->available_sizes[i].y_ppem / 64.; @@ -652,7 +652,7 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, double size = unscaled->face->available_sizes[i].height; #endif double distance = fabs (size - sf.y_scale); - + if (distance <= min_distance) { min_distance = distance; best_i = i; @@ -711,10 +711,10 @@ _get_bitmap_surface (FT_Bitmap *bitmap, unsigned char *data; int format = CAIRO_FORMAT_A8; cairo_bool_t subpixel = FALSE; - + width = bitmap->width; height = bitmap->rows; - + switch (bitmap->pixel_mode) { case FT_PIXEL_MODE_MONO: stride = (((width + 31) & ~31) >> 3); @@ -731,24 +731,24 @@ _get_bitmap_surface (FT_Bitmap *bitmap, } else { int i; unsigned char *source, *dest; - + source = bitmap->buffer; dest = data; for (i = height; i; i--) { memcpy (dest, source, bitmap->pitch); memset (dest + bitmap->pitch, '\0', stride - bitmap->pitch); - + source += bitmap->pitch; dest += stride; } } } - + if (_native_byte_order_lsb()) { unsigned char *d = data, c; int count = stride * height; - + while (count--) { c = *d; c = ((c << 1) & 0xaa) | ((c >> 1) & 0x55); @@ -791,7 +791,7 @@ _get_bitmap_surface (FT_Bitmap *bitmap, unsigned int width_rgba, stride_rgba; int vmul = 1; int hmul = 1; - + switch (font_options->subpixel_order) { case CAIRO_SUBPIXEL_ORDER_DEFAULT: case CAIRO_SUBPIXEL_ORDER_RGB: @@ -813,7 +813,7 @@ _get_bitmap_surface (FT_Bitmap *bitmap, stride = bitmap->pitch; stride_rgba = (width_rgba * 4 + 3) & ~3; data_rgba = calloc (1, stride_rgba * height); - + os = 1; switch (font_options->subpixel_order) { case CAIRO_SUBPIXEL_ORDER_VRGB: @@ -858,11 +858,11 @@ _get_bitmap_surface (FT_Bitmap *bitmap, *out++ = (green << 24) | (red << 16) | (green << 8) | blue; } } - + /* Images here are stored in native format. The * backend must convert to its own format as needed */ - + if (own_buffer) free (bitmap->buffer); data = data_rgba; @@ -879,7 +879,7 @@ _get_bitmap_surface (FT_Bitmap *bitmap, default: return CAIRO_STATUS_NO_MEMORY; } - + *surface = (cairo_image_surface_t *) cairo_image_surface_create_for_data (data, format, @@ -888,7 +888,7 @@ _get_bitmap_surface (FT_Bitmap *bitmap, free (data); return CAIRO_STATUS_NO_MEMORY; } - + if (subpixel) pixman_image_set_component_alpha ((*surface)->pixman_image, TRUE); @@ -964,7 +964,7 @@ _render_glyph_outline (FT_Face face, matrix.xx = matrix.yy = 0x10000L; matrix.xy = matrix.yx = 0; - + switch (font_options->antialias) { case CAIRO_ANTIALIAS_NONE: bitmap.pixel_mode = FT_PIXEL_MODE_MONO; @@ -999,18 +999,18 @@ _render_glyph_outline (FT_Face face, bitmap.num_grays = 256; stride = (width * hmul + 3) & -4; } - + bitmap.pitch = stride; bitmap.width = width * hmul; bitmap.rows = height * vmul; bitmap.buffer = calloc (1, stride * bitmap.rows); - + if (bitmap.buffer == NULL) { return CAIRO_STATUS_NO_MEMORY; } - + FT_Outline_Translate (outline, -cbox.xMin*hmul, -cbox.yMin*vmul); - + if (FT_Outline_Get_Bitmap (glyphslot->library, outline, &bitmap) != 0) { free (bitmap.buffer); return CAIRO_STATUS_NO_MEMORY; @@ -1070,7 +1070,7 @@ _render_glyph_bitmap (FT_Face face, status = _get_bitmap_surface (&glyphslot->bitmap, FALSE, font_options, surface); if (status) return status; - + /* * Note: the font's coordinate system is upside down from ours, so the * Y coordinate of the control box needs to be negated. @@ -1099,7 +1099,7 @@ _transform_glyph_bitmap (cairo_image_glyph_cache_entry_t *val) int width, height; cairo_status_t status; cairo_surface_pattern_t pattern; - + /* We want to compute a transform that takes the origin * (val->size.x, val->size.y) to 0,0, then applies the "shape" * portion of the font transform @@ -1128,7 +1128,7 @@ _transform_glyph_bitmap (cairo_image_glyph_cache_entry_t *val) x_min = floor (x[0]); y_min = floor (y[0]); x_max = ceil (x[0]); y_max = ceil (y[0]); - + for (i = 1; i < 4; i++) { if (x[i] < x_min) x_min = floor (x[i]); @@ -1199,7 +1199,7 @@ _transform_glyph_bitmap (cairo_image_glyph_cache_entry_t *val) val->size.height = height; val->size.x = - floor (origin_x + 0.5); val->size.y = - floor (origin_y + 0.5); - + return status; } #endif @@ -1255,7 +1255,7 @@ _get_pattern_ft_options (FcPattern *pattern) if (FcPatternGetBool (pattern, FC_EMBEDDED_BITMAP, 0, &bitmap) != FcResultMatch) bitmap = FcFalse; - + /* disable antialiasing if requested */ if (FcPatternGetBool (pattern, FC_ANTIALIAS, 0, &antialias) != FcResultMatch) @@ -1265,7 +1265,7 @@ _get_pattern_ft_options (FcPattern *pattern) ft_options.load_flags |= FT_LOAD_NO_BITMAP; else if (!antialias) ft_options.load_flags |= FT_LOAD_MONOCHROME; - + /* disable hinting if requested */ if (FcPatternGetBool (pattern, FC_HINTING, 0, &hinting) != FcResultMatch) @@ -1277,7 +1277,7 @@ _get_pattern_ft_options (FcPattern *pattern) if (!hinting || hintstyle == FC_HINT_NONE) ft_options.load_flags |= FT_LOAD_NO_HINTING; - + if (antialias) { switch (hintstyle) { case FC_HINT_SLIGHT: @@ -1318,22 +1318,22 @@ _get_pattern_ft_options (FcPattern *pattern) } ft_options.load_flags |= target_flags; - + /* force autohinting if requested */ if (FcPatternGetBool (pattern, FC_AUTOHINT, 0, &autohint) != FcResultMatch) autohint = FcFalse; - + if (autohint) ft_options.load_flags |= FT_LOAD_FORCE_AUTOHINT; - + if (FcPatternGetBool (pattern, FC_VERTICAL_LAYOUT, 0, &vertical_layout) != FcResultMatch) vertical_layout = FcFalse; - + if (vertical_layout) ft_options.load_flags |= FT_LOAD_VERTICAL_LAYOUT; - + #ifdef FC_EMBOLDEN { FcBool embolden; @@ -1341,12 +1341,12 @@ _get_pattern_ft_options (FcPattern *pattern) if (FcPatternGetBool (pattern, FC_EMBOLDEN, 0, &embolden) != FcResultMatch) embolden = FcFalse; - + if (embolden) ft_options.extra_flags |= CAIRO_FT_OPTIONS_EMBOLDEN; } #endif - + return ft_options; } @@ -1381,7 +1381,7 @@ _get_options_load_flags (const cairo_font_options_t *options) load_flags |= FT_LOAD_NO_BITMAP; break; } - + /* disable hinting if requested */ switch (options->hint_style) { case CAIRO_HINT_STYLE_NONE: @@ -1396,7 +1396,7 @@ _get_options_load_flags (const cairo_font_options_t *options) load_flags |= FT_LOAD_TARGET_NORMAL; break; } - + return load_flags; } @@ -1416,7 +1416,7 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled, face = _cairo_ft_unscaled_font_lock_face (unscaled); if (!face) return NULL; - + scaled_font = malloc (sizeof(cairo_ft_scaled_font_t)); if (scaled_font == NULL) { _cairo_ft_unscaled_font_unlock_face (unscaled); @@ -1471,10 +1471,10 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled, fs_metrics.max_x_advance = face->max_advance_width / scale; } - + /* FIXME: this doesn't do vertical layout atm. */ fs_metrics.max_y_advance = 0.0; - + _cairo_scaled_font_set_metrics (&scaled_font->base, &fs_metrics); return &scaled_font->base; @@ -1548,7 +1548,7 @@ _cairo_ft_scaled_font_create_toy (cairo_toy_font_face_t *toy_face, FcConfigSubstitute (NULL, pattern, FcMatchPattern); cairo_ft_font_options_substitute (font_options, pattern); FcDefaultSubstitute (pattern); - + resolved = FcFontMatch (NULL, pattern, &result); if (!resolved) goto FREE_PATTERN; @@ -1584,10 +1584,10 @@ static void _cairo_ft_scaled_font_fini (void *abstract_font) { cairo_ft_scaled_font_t *scaled_font = abstract_font; - + if (scaled_font == NULL) return; - + _cairo_unscaled_font_destroy (&scaled_font->unscaled->base); } @@ -1696,7 +1696,7 @@ _decompose_glyph_outline (FT_Face face, DOUBLE_TO_16_16 (1.0), 0, 0, DOUBLE_TO_16_16 (-1.0), }; - + FT_GlyphSlot glyph; cairo_path_fixed_t *path; @@ -1709,11 +1709,11 @@ _decompose_glyph_outline (FT_Face face, /* Font glyphs have an inverted Y axis compared to cairo. */ FT_Outline_Transform (&glyph->outline, &invert_y); FT_Outline_Decompose (&glyph->outline, &outline_funcs, path); - + _cairo_path_fixed_close_path (path); *pathp = path; - + return CAIRO_STATUS_SUCCESS; } @@ -1739,16 +1739,16 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, if ((info & CAIRO_SCALED_GLYPH_INFO_PATH) != 0 && (info & CAIRO_SCALED_GLYPH_INFO_SURFACE) == 0) load_flags |= FT_LOAD_NO_BITMAP; - + error = FT_Load_Glyph (scaled_font->unscaled->face, _cairo_scaled_glyph_index(scaled_glyph), load_flags); - + if (error) { cairo_ft_scaled_font_unlock_face (abstract_font); return CAIRO_STATUS_NO_MEMORY; } - + glyph = face->glyph; #if HAVE_FT_GLYPHSLOT_EMBOLDEN @@ -1758,23 +1758,23 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, if (scaled_font->ft_options.extra_flags & CAIRO_FT_OPTIONS_EMBOLDEN) FT_GlyphSlot_Embolden (glyph); #endif - + if (info & CAIRO_SCALED_GLYPH_INFO_METRICS) { /* * Compute font-space metrics */ metrics = &glyph->metrics; - + if (unscaled->x_scale == 0) x_factor = 0; else x_factor = 1 / unscaled->x_scale; - + if (unscaled->y_scale == 0) y_factor = 0; else y_factor = 1 / unscaled->y_scale; - + /* * Note: the font's coordinate system is upside down from ours, so the * Y coordinates of the bearing and advance need to be negated. @@ -1785,27 +1785,27 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, * If we want hinted metrics but aren't asking for hinted glyphs from * FreeType, then we need to do the metric hinting ourselves. */ - + if ((scaled_font->base.options.hint_metrics != CAIRO_HINT_METRICS_OFF) && (load_flags & FT_LOAD_NO_HINTING)) { FT_Pos x1, x2; FT_Pos y1, y2; FT_Pos advance; - + x1 = (metrics->horiBearingX) & -64; x2 = (metrics->horiBearingX + metrics->width + 63) & -64; y1 = (-metrics->horiBearingY) & -64; y2 = (-metrics->horiBearingY + metrics->height + 63) & -64; - + advance = ((metrics->horiAdvance + 32) & -64); - + fs_metrics.x_bearing = DOUBLE_FROM_26_6 (x1) * x_factor; fs_metrics.y_bearing = DOUBLE_FROM_26_6 (y1) * y_factor; - + fs_metrics.width = DOUBLE_FROM_26_6 (x2 - x1) * x_factor; fs_metrics.height = DOUBLE_FROM_26_6 (y2 - y1) * y_factor; - + /* * use untransformed advance values * XXX uses horizontal advance only at present; should provide FT_LOAD_VERTICAL_LAYOUT @@ -1815,19 +1815,19 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, } else { fs_metrics.x_bearing = DOUBLE_FROM_26_6 (metrics->horiBearingX) * x_factor; fs_metrics.y_bearing = DOUBLE_FROM_26_6 (-metrics->horiBearingY) * y_factor; - + fs_metrics.width = DOUBLE_FROM_26_6 (metrics->width) * x_factor; fs_metrics.height = DOUBLE_FROM_26_6 (metrics->height) * y_factor; - + fs_metrics.x_advance = DOUBLE_FROM_26_6 (metrics->horiAdvance) * x_factor; fs_metrics.y_advance = 0 * y_factor; } - + _cairo_scaled_glyph_set_metrics (scaled_glyph, &scaled_font->base, &fs_metrics); } - + if ((info & CAIRO_SCALED_GLYPH_INFO_SURFACE) != 0) { cairo_image_surface_t *surface; cairo_status_t status; @@ -1845,11 +1845,11 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, &scaled_font->base, surface); } - + if (info & CAIRO_SCALED_GLYPH_INFO_PATH) { cairo_path_fixed_t *path; cairo_status_t status; - + /* * A kludge -- the above code will trash the outline, * so reload it. This will probably never occur though @@ -1869,7 +1869,7 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, &path); else status = CAIRO_STATUS_NO_MEMORY; - + if (status) { cairo_ft_scaled_font_unlock_face (abstract_font); return status; @@ -1878,9 +1878,9 @@ _cairo_ft_scaled_glyph_init (void *abstract_font, &scaled_font->base, path); } - + cairo_ft_scaled_font_unlock_face (abstract_font); - + return CAIRO_STATUS_SUCCESS; } @@ -1934,7 +1934,7 @@ static void _cairo_ft_font_face_destroy (void *abstract_face) { cairo_ft_font_face_t *font_face = abstract_face; - + cairo_ft_font_face_t *tmp_face = NULL; cairo_ft_font_face_t *last_face = NULL; @@ -1960,13 +1960,13 @@ _cairo_ft_font_face_destroy (void *abstract_face) font_face->unscaled->base.ref_count > 1) { cairo_font_face_reference (&font_face->base); - + _cairo_unscaled_font_destroy (&font_face->unscaled->base); font_face->unscaled = NULL; - + return; } - + if (font_face->unscaled) { /* Remove face from linked list */ for (tmp_face = font_face->unscaled->faces; @@ -1979,7 +1979,7 @@ _cairo_ft_font_face_destroy (void *abstract_face) else font_face->unscaled->faces = tmp_face->next; } - + last_face = tmp_face; } @@ -2007,7 +2007,7 @@ _cairo_ft_font_face_scaled_font_create (void *abstract_face, * cairo_ft_font_options_substitute(), so *just* use those load * flags and ignore the options. */ - + ft_options = font_face->ft_options; if (font_face->unscaled->from_face) ft_options.load_flags |= _get_options_load_flags (options); @@ -2048,15 +2048,15 @@ _cairo_ft_font_face_create (cairo_ft_unscaled_font_t *unscaled, font_face = malloc (sizeof (cairo_ft_font_face_t)); if (!font_face) return NULL; - + font_face->unscaled = unscaled; _cairo_unscaled_font_reference (&unscaled->base); - + font_face->ft_options = ft_options; font_face->next = unscaled->faces; unscaled->faces = font_face; - + _cairo_font_face_init (&font_face->base, &_cairo_ft_font_face_backend); return &font_face->base; @@ -2094,7 +2094,7 @@ cairo_ft_font_options_substitute (const cairo_font_options_t *options, if (FcPatternGet (pattern, FC_RGBA, 0, &v) == FcResultNoMatch) { int rgba; - + if (options->antialias == CAIRO_ANTIALIAS_SUBPIXEL) { switch (options->subpixel_order) { case CAIRO_SUBPIXEL_ORDER_DEFAULT: @@ -2115,7 +2115,7 @@ cairo_ft_font_options_substitute (const cairo_font_options_t *options, } else { rgba = FC_RGBA_NONE; } - + FcPatternAddInteger (pattern, FC_RGBA, rgba); } } @@ -2144,7 +2144,7 @@ cairo_ft_font_options_substitute (const cairo_font_options_t *options, hint_style = FC_HINT_FULL; break; } - + FcPatternAddInteger (pattern, FC_HINT_STYLE, hint_style); } #endif @@ -2243,7 +2243,7 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, ft_options.load_flags = load_flags; ft_options.extra_flags = 0; - + font_face = _cairo_ft_font_face_create (unscaled, ft_options); _cairo_unscaled_font_destroy (&unscaled->base); @@ -2279,7 +2279,7 @@ cairo_ft_font_face_create_for_ft_face (FT_Face face, * cairo_ft_unlock() after you are done. (These functions are not yet * implemented, so this function cannot be currently safely used in a * threaded application.) - + * 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. @@ -2298,7 +2298,7 @@ cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *abstract_font) _cairo_scaled_font_set_error (&scaled_font->base, CAIRO_STATUS_NO_MEMORY); return NULL; } - + _cairo_ft_unscaled_font_set_scale (scaled_font->unscaled, &scaled_font->base.scale); diff --git a/src/cairo-gstate-private.h b/src/cairo-gstate-private.h index 8cbe238e..25900482 100644 --- a/src/cairo-gstate-private.h +++ b/src/cairo-gstate-private.h @@ -40,7 +40,7 @@ struct _cairo_gstate { cairo_operator_t op; - + double tolerance; cairo_antialias_t antialias; diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index 2d4c79fb..68af94fd 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -115,7 +115,7 @@ _cairo_gstate_init (cairo_gstate_t *gstate, CAIRO_GSTATE_DEFAULT_FONT_SIZE); _cairo_font_options_init_default (&gstate->font_options); - + _cairo_clip_init (&gstate->clip, target); gstate->target = cairo_surface_reference (target); @@ -145,7 +145,7 @@ static cairo_status_t _cairo_gstate_init_copy (cairo_gstate_t *gstate, cairo_gstate_t *other) { cairo_status_t status; - + gstate->op = other->op; gstate->tolerance = other->tolerance; @@ -394,7 +394,7 @@ _cairo_gstate_set_source (cairo_gstate_t *gstate, cairo_pattern_destroy (gstate->source); gstate->source = source; gstate->source_ctm_inverse = gstate->ctm_inverse; - + return CAIRO_STATUS_SUCCESS; } @@ -499,7 +499,7 @@ _cairo_gstate_set_dash (cairo_gstate_t *gstate, double *dash, int num_dashes, do if (gstate->stroke_style.dash) free (gstate->stroke_style.dash); - + gstate->stroke_style.num_dashes = num_dashes; if (gstate->stroke_style.num_dashes == 0) { @@ -515,7 +515,7 @@ _cairo_gstate_set_dash (cairo_gstate_t *gstate, double *dash, int num_dashes, do } 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) @@ -567,7 +567,7 @@ _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty) cairo_matrix_t tmp; _cairo_gstate_unset_scaled_font (gstate); - + cairo_matrix_init_translate (&tmp, tx, ty); cairo_matrix_multiply (&gstate->ctm, &tmp, &gstate->ctm); @@ -586,7 +586,7 @@ _cairo_gstate_scale (cairo_gstate_t *gstate, double sx, double sy) return CAIRO_STATUS_INVALID_MATRIX; _cairo_gstate_unset_scaled_font (gstate); - + cairo_matrix_init_scale (&tmp, sx, sy); cairo_matrix_multiply (&gstate->ctm, &tmp, &gstate->ctm); @@ -602,7 +602,7 @@ _cairo_gstate_rotate (cairo_gstate_t *gstate, double angle) cairo_matrix_t tmp; _cairo_gstate_unset_scaled_font (gstate); - + cairo_matrix_init_rotate (&tmp, angle); cairo_matrix_multiply (&gstate->ctm, &tmp, &gstate->ctm); @@ -619,7 +619,7 @@ _cairo_gstate_transform (cairo_gstate_t *gstate, cairo_matrix_t tmp; _cairo_gstate_unset_scaled_font (gstate); - + tmp = *matrix; cairo_matrix_multiply (&gstate->ctm, &tmp, &gstate->ctm); @@ -636,7 +636,7 @@ _cairo_gstate_set_matrix (cairo_gstate_t *gstate, cairo_status_t status; _cairo_gstate_unset_scaled_font (gstate); - + gstate->ctm = *matrix; gstate->ctm_inverse = *matrix; @@ -651,7 +651,7 @@ cairo_status_t _cairo_gstate_identity_matrix (cairo_gstate_t *gstate) { _cairo_gstate_unset_scaled_font (gstate); - + cairo_matrix_init_identity (&gstate->ctm); cairo_matrix_init_identity (&gstate->ctm_inverse); @@ -818,7 +818,7 @@ _cairo_operator_bounded_by_mask (cairo_operator_t op) case CAIRO_OPERATOR_DEST_ATOP: return FALSE; } - + ASSERT_NOT_REACHED; return FALSE; } @@ -858,7 +858,7 @@ _cairo_operator_bounded_by_source (cairo_operator_t op) case CAIRO_OPERATOR_DEST_ATOP: return FALSE; } - + ASSERT_NOT_REACHED; return FALSE; } @@ -923,7 +923,7 @@ _cairo_gstate_stroke (cairo_gstate_t *gstate, cairo_path_fixed_t *path) gstate->antialias); _cairo_pattern_fini (&source_pattern.base); - + return status; } @@ -967,11 +967,11 @@ _cairo_gstate_fill (cairo_gstate_t *gstate, cairo_path_fixed_t *path) if (gstate->source->status) return gstate->source->status; - + status = _cairo_surface_set_clip (gstate->target, &gstate->clip); if (status) return status; - + _cairo_gstate_copy_transformed_source (gstate, &pattern.base); status = _cairo_surface_fill (gstate->target, @@ -983,7 +983,7 @@ _cairo_gstate_fill (cairo_gstate_t *gstate, cairo_path_fixed_t *path) gstate->antialias); _cairo_pattern_fini (&pattern.base); - + return status; } @@ -1009,7 +1009,7 @@ _cairo_gstate_in_fill (cairo_gstate_t *gstate, goto BAIL; *inside_ret = _cairo_traps_contain (&traps, x, y); - + BAIL: _cairo_traps_fini (&traps); @@ -1053,9 +1053,9 @@ _cairo_gstate_stroke_extents (cairo_gstate_t *gstate, cairo_status_t status; cairo_traps_t traps; cairo_box_t extents; - + _cairo_traps_init (&traps); - + status = _cairo_path_fixed_stroke_to_traps (path, &gstate->stroke_style, &gstate->ctm, @@ -1074,10 +1074,10 @@ _cairo_gstate_stroke_extents (cairo_gstate_t *gstate, _cairo_gstate_backend_to_user (gstate, x1, y1); _cairo_gstate_backend_to_user (gstate, x2, y2); - + BAIL: _cairo_traps_fini (&traps); - + return status; } @@ -1090,16 +1090,16 @@ _cairo_gstate_fill_extents (cairo_gstate_t *gstate, cairo_status_t status; cairo_traps_t traps; cairo_box_t extents; - + _cairo_traps_init (&traps); - + status = _cairo_path_fixed_fill_to_traps (path, gstate->fill_rule, gstate->tolerance, &traps); if (status) goto BAIL; - + _cairo_traps_extents (&traps, &extents); *x1 = _cairo_fixed_to_double (extents.p1.x); @@ -1109,10 +1109,10 @@ _cairo_gstate_fill_extents (cairo_gstate_t *gstate, _cairo_gstate_backend_to_user (gstate, x1, y1); _cairo_gstate_backend_to_user (gstate, x2, y2); - + BAIL: _cairo_traps_fini (&traps); - + return status; } @@ -1213,7 +1213,7 @@ _cairo_gstate_get_font_face (cairo_gstate_t *gstate, status = _cairo_gstate_ensure_font_face (gstate); if (status) return status; - + *font_face = gstate->font_face; return CAIRO_STATUS_SUCCESS; @@ -1309,31 +1309,31 @@ _cairo_gstate_ensure_font_face (cairo_gstate_t *gstate) else gstate->font_face = font_face; } - + return CAIRO_STATUS_SUCCESS; } - + static cairo_status_t _cairo_gstate_ensure_scaled_font (cairo_gstate_t *gstate) { cairo_status_t status; cairo_font_options_t options; - + if (gstate->scaled_font) return CAIRO_STATUS_SUCCESS; - + status = _cairo_gstate_ensure_font_face (gstate); if (status) return status; cairo_surface_get_font_options (gstate->target, &options); cairo_font_options_merge (&options, &gstate->font_options); - + gstate->scaled_font = cairo_scaled_font_create (gstate->font_face, &gstate->font_matrix, &gstate->ctm, &options); - + if (!gstate->scaled_font) return CAIRO_STATUS_NO_MEMORY; @@ -1366,7 +1366,7 @@ _cairo_gstate_text_to_glyphs (cairo_gstate_t *gstate, status = _cairo_gstate_ensure_scaled_font (gstate); if (status) return status; - + status = _cairo_scaled_font_text_to_glyphs (gstate->scaled_font, x, y, utf8, glyphs, num_glyphs); @@ -1382,14 +1382,14 @@ _cairo_gstate_set_font_face (cairo_gstate_t *gstate, { if (font_face && font_face->status) return font_face->status; - + if (font_face != gstate->font_face) { cairo_font_face_destroy (gstate->font_face); gstate->font_face = cairo_font_face_reference (font_face); } _cairo_gstate_unset_scaled_font (gstate); - + return CAIRO_STATUS_SUCCESS; } @@ -1436,7 +1436,7 @@ _cairo_gstate_show_glyphs (cairo_gstate_t *gstate, transformed_glyphs = malloc (num_glyphs * sizeof(cairo_glyph_t)); if (transformed_glyphs == NULL) return CAIRO_STATUS_NO_MEMORY; - + for (i = 0; i < num_glyphs; ++i) { transformed_glyphs[i] = glyphs[i]; @@ -1473,11 +1473,11 @@ _cairo_gstate_glyph_path (cairo_gstate_t *gstate, status = _cairo_gstate_ensure_scaled_font (gstate); if (status) return status; - + transformed_glyphs = malloc (num_glyphs * sizeof(cairo_glyph_t)); if (transformed_glyphs == NULL) return CAIRO_STATUS_NO_MEMORY; - + for (i = 0; i < num_glyphs; ++i) { transformed_glyphs[i] = glyphs[i]; diff --git a/src/cairo-hash.c b/src/cairo-hash.c index bfaac57f..72b20b12 100644 --- a/src/cairo-hash.c +++ b/src/cairo-hash.c @@ -196,7 +196,7 @@ _cairo_hash_table_destroy (cairo_hash_table_t *hash_table) assert (hash_table->live_entries == 0); /* No iterators can be running. Otherwise, halt. */ assert (hash_table->iterating == 0); - + free (hash_table->entries); hash_table->entries = NULL; @@ -234,7 +234,7 @@ _cairo_hash_table_lookup_internal (cairo_hash_table_t *hash_table, { cairo_hash_entry_t **entry, **first_available = NULL; unsigned long table_size, i, idx, step; - + table_size = hash_table->arrangement->size; idx = key->hash % table_size; @@ -330,7 +330,7 @@ _cairo_hash_table_resize (cairo_hash_table_t *hash_table) tmp.entries = calloc (new_size, sizeof (cairo_hash_entry_t*)); if (tmp.entries == NULL) return CAIRO_STATUS_NO_MEMORY; - + for (i = 0; i < hash_table->arrangement->size; ++i) { if (ENTRY_IS_LIVE (hash_table->entries[i])) { entry = _cairo_hash_table_lookup_internal (&tmp, @@ -464,13 +464,13 @@ _cairo_hash_table_insert (cairo_hash_table_t *hash_table, { cairo_status_t status; cairo_hash_entry_t **entry; - + /* Insert is illegal while an iterator is running. */ assert (hash_table->iterating == 0); - + entry = _cairo_hash_table_lookup_internal (hash_table, key_and_value, FALSE); - + if (ENTRY_IS_LIVE(*entry)) { /* User is being bad, let's crash. */ @@ -549,7 +549,7 @@ _cairo_hash_table_foreach (cairo_hash_table_t *hash_table, if (hash_table == NULL) return; - + /* Mark the table for iteration */ ++hash_table->iterating; for (i = 0; i < hash_table->arrangement->size; i++) { diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c index b5010c5b..82a2227c 100644 --- a/src/cairo-image-surface.c +++ b/src/cairo-image-surface.c @@ -295,7 +295,7 @@ cairo_image_surface_create_for_data (unsigned char *data, _cairo_error (CAIRO_STATUS_NO_MEMORY); return (cairo_surface_t*) &_cairo_surface_nil; } - + pixman_image = pixman_image_create_for_data ((pixman_bits_t *) data, pixman_format, width, height, _cairo_format_bpp (format), @@ -515,7 +515,7 @@ _cairo_image_surface_acquire_source_image (void *abstract_sur { *image_out = abstract_surface; *image_extra = NULL; - + return CAIRO_STATUS_SUCCESS; } @@ -534,7 +534,7 @@ _cairo_image_surface_acquire_dest_image (void *abstract_surfa void **image_extra) { cairo_image_surface_t *surface = abstract_surface; - + image_rect_out->x = 0; image_rect_out->y = 0; image_rect_out->width = surface->width; @@ -542,7 +542,7 @@ _cairo_image_surface_acquire_dest_image (void *abstract_surfa *image_out = surface; *image_extra = NULL; - + return CAIRO_STATUS_SUCCESS; } @@ -567,7 +567,7 @@ _cairo_image_surface_clone_similar (void *abstract_surface, return CAIRO_STATUS_SUCCESS; } - + return CAIRO_INT_STATUS_UNSUPPORTED; } @@ -619,7 +619,7 @@ _cairo_image_surface_set_attributes (cairo_image_surface_t *surface, cairo_surface_attributes_t *attributes) { cairo_int_status_t status; - + status = _cairo_image_surface_set_matrix (surface, &attributes->matrix); if (status) return status; @@ -638,9 +638,9 @@ _cairo_image_surface_set_attributes (cairo_image_surface_t *surface, pixman_image_set_repeat (surface->pixman_image, PIXMAN_REPEAT_PAD); break; } - + status = _cairo_image_surface_set_filter (surface, attributes->filter); - + return status; } @@ -719,7 +719,7 @@ _cairo_image_surface_composite (cairo_operator_t op, &src_attr, &mask_attr); if (status) return status; - + status = _cairo_image_surface_set_attributes (src, &src_attr); if (status) goto CLEANUP_SURFACES; @@ -729,7 +729,7 @@ _cairo_image_surface_composite (cairo_operator_t op, status = _cairo_image_surface_set_attributes (mask, &mask_attr); if (status) goto CLEANUP_SURFACES; - + pixman_composite (_pixman_operator (op), src->pixman_image, mask->pixman_image, @@ -753,7 +753,7 @@ _cairo_image_surface_composite (cairo_operator_t op, dst_x, dst_y, width, height); } - + if (!_cairo_operator_bounded_by_source (op)) status = _cairo_surface_composite_fixup_unbounded (&dst->base, &src_attr, src->width, src->height, @@ -767,9 +767,9 @@ _cairo_image_surface_composite (cairo_operator_t op, CLEANUP_SURFACES: if (mask) _cairo_pattern_release_surface (mask_pattern, &mask->base, &mask_attr); - + _cairo_pattern_release_surface (src_pattern, &src->base, &src_attr); - + return status; } @@ -800,7 +800,7 @@ static cairo_bool_t _cairo_image_surface_is_alpha_only (cairo_image_surface_t *surface) { int bpp, alpha, red, green, blue; - + if (surface->format != (cairo_format_t) -1) return surface->format == CAIRO_FORMAT_A1 || surface->format == CAIRO_FORMAT_A8; diff --git a/src/cairo-lzw.c b/src/cairo-lzw.c index 3ffaa02d..d8776db7 100644 --- a/src/cairo-lzw.c +++ b/src/cairo-lzw.c @@ -335,7 +335,7 @@ _cairo_lzw_compress (unsigned char *data, unsigned long *size_in_out) _lzw_buf_init (&buf, *size_in_out); _lzw_symbol_table_init (&table); - + /* The LZW header is a clear table code. */ _lzw_buf_store_bits (&buf, LZW_CODE_CLEAR_TABLE, code_bits); diff --git a/src/cairo-matrix.c b/src/cairo-matrix.c index 83e297ac..eda62e7c 100644 --- a/src/cairo-matrix.c +++ b/src/cairo-matrix.c @@ -460,7 +460,7 @@ cairo_matrix_invert (cairo_matrix_t *matrix) double det; _cairo_matrix_compute_determinant (matrix, &det); - + if (det == 0) return CAIRO_STATUS_INVALID_MATRIX; @@ -501,7 +501,7 @@ _cairo_matrix_compute_scale_factors (const cairo_matrix_t *matrix, double x = x_major != 0; double y = x == 0; double major, minor; - + cairo_matrix_transform_distance (matrix, &x, &y); major = sqrt(x*x + y*y); /* @@ -561,105 +561,105 @@ _cairo_matrix_is_integer_translation(const cairo_matrix_t *m, The following is a derivation of a formula to calculate the length of the major axis for this ellipse; this is useful for error bounds calculations. - + Thanks to Walter Brisken <wbrisken@aoc.nrao.edu> for this derivation: - + 1. First some notation: - + All capital letters represent vectors in two dimensions. A prime ' represents a transformed coordinate. Matrices are written in underlined form, ie _R_. Lowercase letters represent scalar real values. - + 2. The question has been posed: What is the maximum expansion factor achieved by the linear transformation - + X' = X _R_ - + where _R_ is a real-valued 2x2 matrix with entries: - + _R_ = [a b] [c d] . - + In other words, what is the maximum radius, MAX[ |X'| ], reached for any X on the unit circle ( |X| = 1 ) ? - - + + 3. Some useful formulae - + (A) through (C) below are standard double-angle formulae. (D) is a lesser known result and is derived below: - + (A) sin²(θ) = (1 - cos(2*θ))/2 (B) cos²(θ) = (1 + cos(2*θ))/2 (C) sin(θ)*cos(θ) = sin(2*θ)/2 (D) MAX[a*cos(θ) + b*sin(θ)] = sqrt(a² + b²) - + Proof of (D): - + find the maximum of the function by setting the derivative to zero: - + -a*sin(θ)+b*cos(θ) = 0 - + From this it follows that - + tan(θ) = b/a - + and hence - + sin(θ) = b/sqrt(a² + b²) - + and - + cos(θ) = a/sqrt(a² + b²) - + Thus the maximum value is - + MAX[a*cos(θ) + b*sin(θ)] = (a² + b²)/sqrt(a² + b²) = sqrt(a² + b²) - - + + 4. Derivation of maximum expansion - + To find MAX[ |X'| ] we search brute force method using calculus. The unit circle on which X is constrained is to be parameterized by t: - + X(θ) = (cos(θ), sin(θ)) - + Thus - + X'(θ) = X(θ) * _R_ = (cos(θ), sin(θ)) * [a b] [c d] = (a*cos(θ) + c*sin(θ), b*cos(θ) + d*sin(θ)). - + Define - + r(θ) = |X'(θ)| - + Thus - + r²(θ) = (a*cos(θ) + c*sin(θ))² + (b*cos(θ) + d*sin(θ))² = (a² + b²)*cos²(θ) + (c² + d²)*sin²(θ) + 2*(a*c + b*d)*cos(θ)*sin(θ) - + Now apply the double angle formulae (A) to (C) from above: - + r²(θ) = (a² + b² + c² + d²)/2 + (a² + b² - c² - d²)*cos(2*θ)/2 + (a*c + b*d)*sin(2*θ) = f + g*cos(φ) + h*sin(φ) - + Where - + f = (a² + b² + c² + d²)/2 g = (a² + b² - c² - d²)/2 h = (a*c + d*d) φ = 2*θ - + It is clear that MAX[ |X'| ] = sqrt(MAX[ r² ]). Here we determine MAX[ r² ] using (D) from above: - + MAX[ r² ] = f + sqrt(g² + h²) - + And finally MAX[ |X'| ] = sqrt( f + sqrt(g² + h²) ) diff --git a/src/cairo-meta-surface.c b/src/cairo-meta-surface.c index 46ea13dc..26fc6a67 100644 --- a/src/cairo-meta-surface.c +++ b/src/cairo-meta-surface.c @@ -128,7 +128,7 @@ _cairo_meta_surface_finish (void *abstract_surface) _cairo_pattern_fini (&command->mask.mask.base); free (command); break; - + case CAIRO_COMMAND_STROKE: _cairo_pattern_fini (&command->stroke.source.base); _cairo_path_fixed_fini (&command->stroke.path); @@ -246,7 +246,7 @@ _cairo_meta_surface_paint (void *abstract_surface, status = _init_pattern_with_snapshot (&command->source.base, source); if (status) goto CLEANUP_COMMAND; - + status = _cairo_array_append (&meta->commands, &command); if (status) goto CLEANUP_SOURCE; @@ -284,7 +284,7 @@ _cairo_meta_surface_mask (void *abstract_surface, status = _init_pattern_with_snapshot (&command->mask.base, mask); if (status) goto CLEANUP_SOURCE; - + status = _cairo_array_append (&meta->commands, &command); if (status) goto CLEANUP_MASK; @@ -314,7 +314,7 @@ _cairo_meta_surface_stroke (void *abstract_surface, cairo_status_t status; cairo_meta_surface_t *meta = abstract_surface; cairo_command_stroke_t *command; - + command = malloc (sizeof (cairo_command_stroke_t)); if (command == NULL) return CAIRO_STATUS_NO_MEMORY; @@ -598,7 +598,7 @@ static const cairo_surface_backend_t cairo_meta_surface_backend = { /* Here are the 5 basic drawing operations, (which are in some * sense the only things that cairo_meta_surface should need to * implement). */ - + _cairo_meta_surface_paint, _cairo_meta_surface_mask, _cairo_meta_surface_stroke, diff --git a/src/cairo-operator.c b/src/cairo-operator.c index 99c3aaaa..1a3c3d15 100644 --- a/src/cairo-operator.c +++ b/src/cairo-operator.c @@ -56,7 +56,7 @@ _cairo_operator_always_opaque (cairo_operator_t op) case CAIRO_OPERATOR_SOURCE: return FALSE; - + case CAIRO_OPERATOR_OVER: case CAIRO_OPERATOR_IN: case CAIRO_OPERATOR_OUT: @@ -65,7 +65,7 @@ _cairo_operator_always_opaque (cairo_operator_t op) case CAIRO_OPERATOR_DEST: return TRUE; - + case CAIRO_OPERATOR_DEST_OVER: case CAIRO_OPERATOR_DEST_IN: case CAIRO_OPERATOR_DEST_OUT: @@ -94,7 +94,7 @@ _cairo_operator_always_translucent (cairo_operator_t op) case CAIRO_OPERATOR_SOURCE: return FALSE; - + case CAIRO_OPERATOR_OVER: case CAIRO_OPERATOR_IN: case CAIRO_OPERATOR_OUT: @@ -103,7 +103,7 @@ _cairo_operator_always_translucent (cairo_operator_t op) case CAIRO_OPERATOR_DEST: return FALSE; - + case CAIRO_OPERATOR_DEST_OVER: case CAIRO_OPERATOR_DEST_IN: case CAIRO_OPERATOR_DEST_OUT: diff --git a/src/cairo-output-stream.c b/src/cairo-output-stream.c index de92fa4e..b27c9430 100644 --- a/src/cairo-output-stream.c +++ b/src/cairo-output-stream.c @@ -180,20 +180,20 @@ _cairo_dtostr (char *buffer, size_t size, double d) int decimal_len; snprintf (buffer, size, "%f", d); - + locale_data = localeconv (); decimal_point = locale_data->decimal_point; decimal_point_len = strlen (decimal_point); - + assert (decimal_point_len != 0); p = buffer; - + if (*p == '+' || *p == '-') p++; while (isdigit (*p)) p++; - + if (strncmp (p, decimal_point, decimal_point_len) == 0) { *p = '.'; decimal_len = strlen (p + decimal_point_len); @@ -209,7 +209,7 @@ _cairo_dtostr (char *buffer, size_t size, double d) p--; } } - + return p + 1 - buffer; } @@ -298,7 +298,7 @@ _cairo_output_stream_vprintf (cairo_output_stream_t *stream, p = buffer + strlen (buffer); f++; } - + _cairo_output_stream_write (stream, buffer, p - buffer); } @@ -385,6 +385,6 @@ _cairo_output_stream_create_for_filename (const char *filename) file = fopen (filename, "wb"); if (file == NULL) return (cairo_output_stream_t *) &cairo_output_stream_nil_write_error; - + return _cairo_output_stream_create (stdio_write, stdio_close, file); } diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c index d4caafe9..ed00cb8a 100644 --- a/src/cairo-paginated-surface.c +++ b/src/cairo-paginated-surface.c @@ -159,7 +159,7 @@ _cairo_paginated_surface_finish (void *abstract_surface) cairo_surface_destroy (surface->meta); cairo_surface_destroy (surface->target); - + return CAIRO_STATUS_SUCCESS; } @@ -177,7 +177,7 @@ _cairo_paginated_surface_acquire_source_image (void *abstract_surface, image = _cairo_image_surface_create_with_content (surface->content, extents.width, extents.height); - + _cairo_meta_surface_replay (surface->meta, image); *image_out = (cairo_image_surface_t*) image; @@ -214,7 +214,7 @@ _paint_page (cairo_paginated_surface_t *surface) cairo_surface_destroy (analysis); return status; } - + if (_cairo_analysis_surface_has_unsupported (analysis)) { image = _cairo_image_surface_create_with_content (surface->content, @@ -237,7 +237,7 @@ _paint_page (cairo_paginated_surface_t *surface) } cairo_surface_destroy (analysis); - + return CAIRO_STATUS_SUCCESS; } diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c index 670036cf..48b4393a 100644 --- a/src/cairo-path-bounds.c +++ b/src/cairo-path-bounds.c @@ -87,13 +87,13 @@ _cairo_path_bounder_add_point (cairo_path_bounder_t *bounder, cairo_point_t *poi if (bounder->has_point) { if (point->x < bounder->min_x) bounder->min_x = point->x; - + if (point->y < bounder->min_y) bounder->min_y = point->y; - + if (point->x > bounder->max_x) bounder->max_x = point->x; - + if (point->y > bounder->max_y) bounder->max_y = point->y; } else { @@ -104,7 +104,7 @@ _cairo_path_bounder_add_point (cairo_path_bounder_t *bounder, cairo_point_t *poi bounder->has_point = 1; } - + return CAIRO_STATUS_SUCCESS; } diff --git a/src/cairo-path-fill.c b/src/cairo-path-fill.c index 31b83ade..f9b9d9f5 100644 --- a/src/cairo-path-fill.c +++ b/src/cairo-path-fill.c @@ -94,7 +94,7 @@ _cairo_filler_move_to (void *closure, cairo_point_t *point) status = _cairo_polygon_close (polygon); if (status) return status; - + status = _cairo_polygon_move_to (polygon, point); if (status) return status; diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c index 7ca6ab81..80302f02 100644 --- a/src/cairo-path-stroke.c +++ b/src/cairo-path-stroke.c @@ -161,7 +161,7 @@ _cairo_stroker_init (cairo_stroker_t *stroker, _cairo_pen_init (&stroker->pen, stroke_style->line_width / 2.0, tolerance, ctm); - + stroker->has_current_face = FALSE; stroker->has_first_face = FALSE; @@ -307,14 +307,14 @@ _cairo_stroker_join (cairo_stroker_t *stroker, cairo_stroke_face_t *in, cairo_st dx1 = in->usr_vector.x; dy1 = in->usr_vector.y; cairo_matrix_transform_distance (stroker->ctm, &dx1, &dy1); - + /* outer point of outgoing line face */ x2 = _cairo_fixed_to_double (outpt->x); y2 = _cairo_fixed_to_double (outpt->y); dx2 = out->usr_vector.x; dy2 = out->usr_vector.y; cairo_matrix_transform_distance (stroker->ctm, &dx2, &dy2); - + /* * Compute the location of the outer corner of the miter. * That's pretty easy -- just the intersection of the two @@ -329,7 +329,7 @@ _cairo_stroker_join (cairo_stroker_t *stroker, cairo_stroke_face_t *in, cairo_st mx = (my - y1) * dx1 / dy1 + x1; else mx = (my - y2) * dx2 / dy2 + x2; - + /* * Draw the quadrilateral */ @@ -368,7 +368,7 @@ _cairo_stroker_add_cap (cairo_stroker_t *stroker, cairo_stroke_face_t *f) if (stroker->style->line_cap == CAIRO_LINE_CAP_BUTT) return CAIRO_STATUS_SUCCESS; - + switch (stroker->style->line_cap) { case CAIRO_LINE_CAP_ROUND: { int i; @@ -644,7 +644,7 @@ _cairo_stroker_line_to (void *closure, cairo_point_t *point) } _cairo_slope_init (&slope, p1, p2); - + status = _cairo_stroker_add_sub_edge (stroker, p1, p2, &slope, &start, &end); if (status) return status; @@ -827,7 +827,7 @@ _cairo_stroker_curve_to (void *closure, } stroker->current_face = end; stroker->has_current_face = 1; - + extra_points[0] = start.cw; extra_points[0].x -= start.point.x; extra_points[0].y -= start.point.y; @@ -840,7 +840,7 @@ _cairo_stroker_curve_to (void *closure, extra_points[3] = end.ccw; extra_points[3].x -= end.point.x; extra_points[3].y -= end.point.y; - + status = _cairo_pen_add_points (&pen, extra_points, 4); if (status) goto CLEANUP_PEN; diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c index 034598fe..6e98be1e 100644 --- a/src/cairo-pattern.c +++ b/src/cairo-pattern.c @@ -135,14 +135,14 @@ _cairo_gradient_pattern_init_copy (cairo_gradient_pattern_t *pattern, { cairo_linear_pattern_t *dst = (cairo_linear_pattern_t *) pattern; cairo_linear_pattern_t *src = (cairo_linear_pattern_t *) other; - + *dst = *src; } else { cairo_radial_pattern_t *dst = (cairo_radial_pattern_t *) pattern; cairo_radial_pattern_t *src = (cairo_radial_pattern_t *) other; - + *dst = *src; } @@ -154,7 +154,7 @@ _cairo_gradient_pattern_init_copy (cairo_gradient_pattern_t *pattern, _cairo_pattern_set_error (&pattern->base, CAIRO_STATUS_NO_MEMORY); return; } - + memcpy (pattern->stops, other->stops, other->n_stops * sizeof (pixman_gradient_stop_t)); } @@ -179,7 +179,7 @@ _cairo_pattern_init_copy (cairo_pattern_t *pattern, case CAIRO_PATTERN_TYPE_SURFACE: { cairo_surface_pattern_t *dst = (cairo_surface_pattern_t *) pattern; cairo_surface_pattern_t *src = (cairo_surface_pattern_t *) other; - + *dst = *src; cairo_surface_reference (dst->surface); } break; @@ -187,11 +187,11 @@ _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_gradient_pattern_init_copy (dst, src); } break; } - + pattern->ref_count = 1; } @@ -204,14 +204,14 @@ _cairo_pattern_fini (cairo_pattern_t *pattern) case CAIRO_PATTERN_TYPE_SURFACE: { cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *) pattern; - + cairo_surface_destroy (surface_pattern->surface); } break; case CAIRO_PATTERN_TYPE_LINEAR: case CAIRO_PATTERN_TYPE_RADIAL: { cairo_gradient_pattern_t *gradient = (cairo_gradient_pattern_t *) pattern; - + if (gradient->stops) free (gradient->stops); } break; @@ -238,7 +238,7 @@ _cairo_pattern_init_for_surface (cairo_surface_pattern_t *pattern, } _cairo_pattern_init (&pattern->base, CAIRO_PATTERN_TYPE_SURFACE); - + pattern->surface = cairo_surface_reference (surface); } @@ -486,7 +486,7 @@ cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1) { cairo_radial_pattern_t *pattern; - + pattern = malloc (sizeof (cairo_radial_pattern_t)); if (pattern == NULL) { _cairo_error (CAIRO_STATUS_NO_MEMORY); @@ -874,7 +874,7 @@ _cairo_linear_pattern_classify (cairo_linear_pattern_t *pattern, /* transform fragment into pattern space */ double qx = a * qx_device + c * qy_device + tx; double qy = b * qx_device + d * qy_device + ty; - + factors[i] = _cairo_fixed_from_double (((dx * qx + dy * qy) - start) * scale); } @@ -1046,7 +1046,7 @@ _cairo_pattern_acquire_surface_for_solid (cairo_solid_pattern_t *pattern, attribs->extend = CAIRO_EXTEND_REPEAT; attribs->filter = CAIRO_FILTER_NEAREST; attribs->acquired = FALSE; - + return CAIRO_STATUS_SUCCESS; } @@ -1078,7 +1078,7 @@ static cairo_bool_t _gradient_is_opaque (const cairo_gradient_pattern_t *gradient) { int i; - + for (i = 0; i < gradient->n_stops; i++) if (! CAIRO_ALPHA_IS_OPAQUE (gradient->stops[i].color.alpha)) return FALSE; @@ -1129,11 +1129,11 @@ _cairo_pattern_acquire_surface_for_surface (cairo_surface_pattern_t *pattern, int tx, ty; attr->acquired = FALSE; - + if (_cairo_surface_is_image (dst)) { cairo_image_surface_t *image; - + status = _cairo_surface_acquire_source_image (pattern->surface, &image, &attr->extra); @@ -1147,7 +1147,7 @@ _cairo_pattern_acquire_surface_for_surface (cairo_surface_pattern_t *pattern, { status = _cairo_surface_clone_similar (dst, pattern->surface, out); } - + attr->extend = pattern->base.extend; attr->filter = pattern->base.filter; if (_cairo_matrix_is_integer_translation (&pattern->base.matrix, @@ -1163,7 +1163,7 @@ _cairo_pattern_acquire_surface_for_surface (cairo_surface_pattern_t *pattern, attr->matrix = pattern->base.matrix; attr->x_offset = attr->y_offset = 0; } - + return status; } @@ -1195,7 +1195,7 @@ _cairo_pattern_acquire_surface (cairo_pattern_t *pattern, cairo_surface_attributes_t *attributes) { cairo_status_t status; - + if (pattern->status) { *surface_out = NULL; attributes->acquired = FALSE; @@ -1205,7 +1205,7 @@ _cairo_pattern_acquire_surface (cairo_pattern_t *pattern, switch (pattern->type) { case CAIRO_PATTERN_TYPE_SOLID: { cairo_solid_pattern_t *src = (cairo_solid_pattern_t *) pattern; - + status = _cairo_pattern_acquire_surface_for_solid (src, dst, x, y, width, height, surface_out, @@ -1257,7 +1257,7 @@ _cairo_pattern_acquire_surface (cairo_pattern_t *pattern, } break; case CAIRO_PATTERN_TYPE_SURFACE: { cairo_surface_pattern_t *src = (cairo_surface_pattern_t *) pattern; - + status = _cairo_pattern_acquire_surface_for_surface (src, dst, x, y, width, height, surface_out, @@ -1365,12 +1365,12 @@ _cairo_pattern_acquire_surfaces (cairo_pattern_t *src, } _cairo_pattern_init_copy (&mask_tmp.base, mask); - + status = _cairo_pattern_acquire_surface (&mask_tmp.base, dst, mask_x, mask_y, width, height, mask_out, mask_attributes); - + if (status) _cairo_pattern_release_surface (&src_tmp.base, *src_out, src_attributes); diff --git a/src/cairo-pen.c b/src/cairo-pen.c index a2cd55d9..91a6f44c 100644 --- a/src/cairo-pen.c +++ b/src/cairo-pen.c @@ -79,7 +79,7 @@ _cairo_pen_init (cairo_pen_t *pen, pen->num_vertices = _cairo_pen_vertices_needed (tolerance, radius, ctm); - + pen->vertices = malloc (pen->num_vertices * sizeof (cairo_pen_vertex_t)); if (pen->vertices == NULL) { return CAIRO_STATUS_NO_MEMORY; @@ -252,21 +252,21 @@ _cairo_pen_vertices_needed (double tolerance, * compute major axis length for a pen with the specified radius. * we don't need the minor axis length. */ - + double major_axis = _cairo_matrix_transformed_circle_major_axis(matrix, radius); /* * compute number of vertices needed */ int num_vertices; - + /* Where tolerance / M is > 1, we use 4 points */ if (tolerance >= major_axis) { num_vertices = 4; } else { double delta = acos (1 - tolerance / major_axis); num_vertices = ceil (M_PI / delta); - + /* number of vertices must be even */ if (num_vertices % 2) num_vertices++; @@ -443,6 +443,6 @@ _cairo_pen_stroke_spline (cairo_pen_t *pen, _cairo_polygon_close (&polygon); _cairo_traps_tessellate_polygon (traps, &polygon, CAIRO_FILL_RULE_WINDING); _cairo_polygon_fini (&polygon); - + return CAIRO_STATUS_SUCCESS; } diff --git a/src/cairo-png.c b/src/cairo-png.c index f0aaebe6..1c3caef1 100644 --- a/src/cairo-png.c +++ b/src/cairo-png.c @@ -74,7 +74,7 @@ convert_data_to_bytes (png_structp png, png_row_infop row_info, png_bytep data) uint32_t pixel; memcpy (&pixel, b, sizeof (uint32_t)); - + b[0] = (pixel & 0xff0000) >> 16; b[1] = (pixel & 0x00ff00) >> 8; b[2] = (pixel & 0x0000ff) >> 0; @@ -133,7 +133,7 @@ write_png (cairo_surface_t *surface, status = CAIRO_STATUS_NO_MEMORY; goto BAIL3; } - + png_set_write_fn (png, closure, write_func, NULL); switch (image->format) { @@ -179,14 +179,14 @@ write_png (cairo_surface_t *surface, * that is needed for the write transformation functions to work. */ png_write_info (png, info); - + if (image->format == CAIRO_FORMAT_ARGB32) png_set_write_user_transform_fn (png, unpremultiply_data); else if (image->format == CAIRO_FORMAT_RGB24) png_set_write_user_transform_fn (png, convert_data_to_bytes); if (image->format == CAIRO_FORMAT_RGB24) png_set_filler (png, 0, PNG_FILLER_AFTER); - + png_write_image (png, rows); png_write_end (png, info); @@ -235,7 +235,7 @@ cairo_surface_write_to_png (cairo_surface_t *surface, fp = fopen (filename, "wb"); if (fp == NULL) return CAIRO_STATUS_WRITE_ERROR; - + status = write_png (surface, stdio_write_func, fp); if (fclose (fp) && status == CAIRO_STATUS_SUCCESS) @@ -481,7 +481,7 @@ cairo_image_surface_create_from_png (const char *filename) return (cairo_surface_t*) &_cairo_surface_nil_read_error; } } - + surface = read_png (stdio_read_func, fp); fclose (fp); diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index 1a48c913..418e2a5f 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -81,7 +81,7 @@ typedef struct cairo_ps_surface { cairo_array_t dsc_page_setup_comments; cairo_array_t *dsc_comment_target; - + } cairo_ps_surface_t; #define PS_SURFACE_DPI_DEFAULT 300.0 @@ -96,7 +96,7 @@ _cairo_ps_surface_path_move_to (void *closure, cairo_point_t *point) "%f %f moveto ", _cairo_fixed_to_double (point->x), _cairo_fixed_to_double (point->y)); - + return CAIRO_STATUS_SUCCESS; } @@ -129,7 +129,7 @@ _cairo_ps_surface_path_curve_to (void *closure, _cairo_fixed_to_double (c->y), _cairo_fixed_to_double (d->x), _cairo_fixed_to_double (d->y)); - + return CAIRO_STATUS_SUCCESS; } @@ -137,7 +137,7 @@ static cairo_status_t _cairo_ps_surface_path_close_path (void *closure) { cairo_output_stream_t *output_stream = closure; - + _cairo_output_stream_printf (output_stream, "closepath\n"); @@ -251,7 +251,7 @@ _cairo_ps_surface_emit_glyph (cairo_ps_surface_t *surface, -_cairo_fixed_to_double (scaled_glyph->bbox.p2.y), _cairo_fixed_to_double (scaled_glyph->bbox.p2.x), -_cairo_fixed_to_double (scaled_glyph->bbox.p1.y)); - + status = _cairo_path_fixed_interpret (scaled_glyph->path, CAIRO_DIRECTION_FORWARD, _cairo_ps_surface_path_move_to, @@ -259,10 +259,10 @@ _cairo_ps_surface_emit_glyph (cairo_ps_surface_t *surface, _cairo_ps_surface_path_curve_to, _cairo_ps_surface_path_close_path, surface->final_stream); - + _cairo_output_stream_printf (surface->final_stream, "F\n"); - + _cairo_output_stream_printf (surface->final_stream, "\t\t}\n"); } @@ -326,7 +326,7 @@ _cairo_ps_surface_emit_body (cairo_ps_surface_t *surface) { char buf[4096]; int n; - + rewind (surface->tmpfile); while ((n = fread (buf, 1, sizeof (buf), surface->tmpfile)) > 0) _cairo_output_stream_write (surface->final_stream, buf, n); @@ -915,9 +915,9 @@ _cairo_ps_surface_finish (void *abstract_surface) word_wrap = _word_wrap_stream_create (final_stream, 79); surface->final_stream = word_wrap; - + _cairo_ps_surface_emit_header (surface); - + _cairo_ps_surface_emit_font_subsets (surface); _cairo_ps_surface_emit_body (surface); @@ -1065,7 +1065,7 @@ pattern_supported (const cairo_pattern_t *pattern) if (pattern->type == CAIRO_PATTERN_TYPE_SURFACE) return surface_pattern_supported ((const cairo_surface_pattern_t *) pattern); - + return FALSE; } @@ -1242,9 +1242,9 @@ emit_image (cairo_ps_surface_t *surface, status = CAIRO_STATUS_NO_MEMORY; goto bail0; } - + _cairo_pattern_init_for_surface (&pattern.surface, &image->base); - + _cairo_surface_fill_rectangle (opaque, CAIRO_OPERATOR_SOURCE, CAIRO_COLOR_WHITE, @@ -1259,7 +1259,7 @@ emit_image (cairo_ps_surface_t *surface, 0, 0, image->width, image->height); - + _cairo_pattern_fini (&pattern.base); opaque_image = (cairo_image_surface_t *) opaque; } else { @@ -1550,7 +1550,7 @@ _cairo_ps_surface_paint (void *abstract_surface, /* assert (_operation_supported (op, source)); */ - + _cairo_output_stream_printf (stream, "%% _cairo_ps_surface_paint\n"); @@ -1616,7 +1616,7 @@ _cairo_ps_surface_stroke (void *abstract_surface, return _analyze_operation (surface, op, source); assert (operation_supported (surface, op, source)); - + _cairo_output_stream_printf (stream, "%% _cairo_ps_surface_stroke\n"); @@ -1684,7 +1684,7 @@ _cairo_ps_surface_fill (void *abstract_surface, return _analyze_operation (surface, op, source); assert (operation_supported (surface, op, source)); - + _cairo_output_stream_printf (stream, "%% _cairo_ps_surface_fill\n"); @@ -1806,7 +1806,7 @@ static const cairo_surface_backend_t cairo_ps_surface_backend = { NULL, /* scaled_glyph_fini */ /* Here are the drawing functions */ - + _cairo_ps_surface_paint, /* paint */ NULL, /* mask */ _cairo_ps_surface_stroke, diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c index 698b1490..269e9b6d 100644 --- a/src/cairo-quartz-surface.c +++ b/src/cairo-quartz-surface.c @@ -44,7 +44,7 @@ _cairo_quartz_surface_finish(void *abstract_surface) if (surface->clip_region) pixman_region_destroy (surface->clip_region); - + return CAIRO_STATUS_SUCCESS; } @@ -91,7 +91,7 @@ _cairo_quartz_surface_acquire_dest_image(void *abstract_surfa if (x1 >= x2 || y1 >= y2) { *image_out = NULL; *image_extra = NULL; - + return CAIRO_STATUS_SUCCESS; } @@ -125,7 +125,7 @@ create_image_from_surface (cairo_image_surface_t *image_surface, void *data) width = cairo_image_surface_get_width ((cairo_surface_t *)image_surface); height = cairo_image_surface_get_height ((cairo_surface_t *)image_surface); - + color_space = CGColorSpaceCreateDeviceRGB(); data_provider = CGDataProviderCreateWithData (NULL, data, width * height * 4, NULL); @@ -140,7 +140,7 @@ create_image_from_surface (cairo_image_surface_t *image_surface, void *data) CGColorSpaceRelease (color_space); CGDataProviderRelease (data_provider); - + return image; } @@ -154,7 +154,7 @@ _cairo_quartz_surface_release_dest_image(void *abstract_surfa cairo_quartz_surface_t *surface = abstract_surface; CGImageRef image_ref; CGRect rect; - + image_ref = create_image_from_surface (image, image_extra); rect = CGRectMake (image_rect->x, image_rect->y, image_rect->width, image_rect->height); @@ -167,11 +167,11 @@ _cairo_quartz_surface_release_dest_image(void *abstract_surfa CGContextDrawImage(surface->context, rect, image_ref); CFRelease (image_ref); - + if (surface->y_grows_down) { CGContextRestoreGState (surface->context); } - + cairo_surface_destroy ((cairo_surface_t *)image); free (image_extra); } @@ -184,7 +184,7 @@ _cairo_quartz_surface_set_clip_region(void *abstract_surface, if (surface->clip_region) pixman_region_destroy (surface->clip_region); - + if (region) { surface->clip_region = pixman_region_create (); pixman_region_copy (surface->clip_region, region); diff --git a/src/cairo-region.c b/src/cairo-region.c index c8419c1d..dcbcffe5 100644 --- a/src/cairo-region.c +++ b/src/cairo-region.c @@ -58,7 +58,7 @@ _cairo_region_create_from_rectangle (cairo_rectangle_fixed_t *rect) pixman_region_destroy (region); return NULL; } - + return region; } diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c index 4d8f4bbc..8d907b00 100644 --- a/src/cairo-scaled-font-subsets.c +++ b/src/cairo-scaled-font-subsets.c @@ -246,7 +246,7 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, sub_font->current_subset++; sub_font->num_glyphs_in_current_subset = 0; } - + sub_font_glyph = _cairo_sub_font_glyph_create (scaled_font_glyph_index, sub_font->current_subset, sub_font->num_glyphs_in_current_subset++); diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index 3ef7804c..8cb979fb 100644 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -61,7 +61,7 @@ _cairo_scaled_glyph_fini (cairo_scaled_glyph_t *scaled_glyph) if (scaled_glyph->path != NULL) _cairo_path_fixed_destroy (scaled_glyph->path); } - + static void _cairo_scaled_glyph_destroy (void *abstract_glyph) { @@ -168,7 +168,7 @@ cairo_scaled_font_status (cairo_scaled_font_t *scaled_font) * of scaled fonts we keep around even when not otherwise referenced */ #define CAIRO_SCALED_FONT_MAX_HOLDOVERS 256 - + typedef struct _cairo_scaled_font_map { cairo_hash_table_t *hash_table; cairo_scaled_font_t *holdovers[CAIRO_SCALED_FONT_MAX_HOLDOVERS]; @@ -339,10 +339,10 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font, scaled_font->glyphs = _cairo_cache_create (_cairo_scaled_glyph_keys_equal, _cairo_scaled_glyph_destroy, 256); - + scaled_font->surface_backend = NULL; scaled_font->surface_private = NULL; - + scaled_font->backend = backend; return CAIRO_STATUS_SUCCESS; @@ -353,16 +353,16 @@ _cairo_scaled_font_set_metrics (cairo_scaled_font_t *scaled_font, cairo_font_extents_t *fs_metrics) { double font_scale_x, font_scale_y; - + _cairo_matrix_compute_scale_factors (&scaled_font->font_matrix, &font_scale_x, &font_scale_y, /* XXX */ 1); - + /* * The font responded in unscaled units, scale by the font * matrix scale factors to get to user space */ - + scaled_font->extents.ascent = fs_metrics->ascent * font_scale_y; scaled_font->extents.descent = fs_metrics->descent * font_scale_y; scaled_font->extents.height = fs_metrics->height * font_scale_y; @@ -378,7 +378,7 @@ _cairo_scaled_font_fini (cairo_scaled_font_t *scaled_font) if (scaled_font->glyphs != NULL) _cairo_cache_destroy (scaled_font->glyphs); - + if (scaled_font->surface_backend != NULL && scaled_font->surface_backend->scaled_font_fini != NULL) scaled_font->surface_backend->scaled_font_fini (scaled_font); @@ -423,7 +423,7 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, font_map = _cairo_scaled_font_map_lock (); if (font_map == NULL) goto UNWIND; - + _cairo_scaled_font_init_key (&key, font_face, font_matrix, ctm, options); @@ -561,12 +561,12 @@ cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font) lru = font_map->holdovers[0]; assert (lru->ref_count == 0); - + _cairo_hash_table_remove (font_map->hash_table, &lru->hash_entry); _cairo_scaled_font_fini (lru); free (lru); - + font_map->num_holdovers--; memmove (&font_map->holdovers[0], &font_map->holdovers[1], @@ -674,14 +674,14 @@ cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, extents->height = 0.0; extents->x_advance = 0.0; extents->y_advance = 0.0; - + return; } for (i = 0; i < num_glyphs; i++) { cairo_scaled_glyph_t *scaled_glyph; double left, top, right, bottom; - + status = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index, CAIRO_SCALED_GLYPH_INFO_METRICS, @@ -690,12 +690,12 @@ cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, _cairo_scaled_font_set_error (scaled_font, status); return; } - + left = scaled_glyph->metrics.x_bearing + glyphs[i].x; right = left + scaled_glyph->metrics.width; top = scaled_glyph->metrics.y_bearing + glyphs[i].y; bottom = top + scaled_glyph->metrics.height; - + if (i == 0) { min_x = left; max_x = right; @@ -757,7 +757,7 @@ _cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, ucs4_to_index) (scaled_font, ucs4[i]); (*glyphs)[i].x = x; (*glyphs)[i].y = y; - + status = _cairo_scaled_glyph_lookup (scaled_font, (*glyphs)[i].index, CAIRO_SCALED_GLYPH_INFO_METRICS, @@ -767,14 +767,14 @@ _cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, *glyphs = NULL; goto FAIL; } - + x += scaled_glyph->metrics.x_advance; y += scaled_glyph->metrics.y_advance; } FAIL: free (ucs4); - + return status; } @@ -800,7 +800,7 @@ _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, int left, top; int right, bottom; int x, y; - + status = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index, CAIRO_SCALED_GLYPH_INFO_METRICS, @@ -809,16 +809,16 @@ _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, _cairo_scaled_font_set_error (scaled_font, status); return status; } - + /* glyph images are snapped to pixel locations */ x = (int) floor (glyphs[i].x + 0.5); y = (int) floor (glyphs[i].y + 0.5); - + left = x + _cairo_fixed_integer_floor(scaled_glyph->bbox.p1.x); top = y + _cairo_fixed_integer_floor (scaled_glyph->bbox.p1.y); right = x + _cairo_fixed_integer_ceil(scaled_glyph->bbox.p2.x); bottom = y + _cairo_fixed_integer_ceil (scaled_glyph->bbox.p2.y); - + if (left < min_x) min_x = left; if (right > max_x) max_x = right; if (top < min_y) min_y = top; @@ -858,7 +858,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, * they are implemented in terms of other operators in cairo-gstate.c */ assert (op != CAIRO_OPERATOR_SOURCE && op != CAIRO_OPERATOR_CLEAR); - + if (scaled_font->status) return scaled_font->status; @@ -875,7 +875,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, } /* Font display routine either does not exist or failed. */ - + status = CAIRO_STATUS_SUCCESS; _cairo_cache_freeze (scaled_font->glyphs); @@ -885,7 +885,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, cairo_surface_pattern_t glyph_pattern; cairo_image_surface_t *glyph_surface; cairo_scaled_glyph_t *scaled_glyph; - + status = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index, CAIRO_SCALED_GLYPH_INFO_SURFACE, @@ -893,7 +893,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, if (status) goto CLEANUP_MASK; - + glyph_surface = scaled_glyph->surface; /* Create the mask using the format from the first glyph */ @@ -917,7 +917,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, pixman_image, TRUE); } - + /* round glyph locations to the nearest pixel */ x = (int) floor (glyphs[i].x + glyph_surface->base.device_x_offset + @@ -925,7 +925,7 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, y = (int) floor (glyphs[i].y + glyph_surface->base.device_y_offset + 0.5); - + _cairo_pattern_init_for_surface (&glyph_pattern, &glyph_surface->base); status = _cairo_surface_composite (CAIRO_OPERATOR_ADD, @@ -943,25 +943,25 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, if (status) break; } - + if (mask != NULL) { cairo_surface_pattern_t mask_pattern; _cairo_pattern_init_for_surface (&mask_pattern, mask); - + status = _cairo_surface_composite (op, pattern, &mask_pattern.base, surface, source_x, source_y, 0, 0, dest_x, dest_y, width, height); - + _cairo_pattern_fini (&mask_pattern.base); } - + CLEANUP_MASK: _cairo_cache_thaw (scaled_font->glyphs); - + if (mask != NULL) cairo_surface_destroy (mask); return status; @@ -1027,14 +1027,14 @@ _cairo_scaled_font_glyph_path (cairo_scaled_font_t *scaled_font, cairo_status_t status; int i; cairo_scaled_glyph_path_closure_t closure; - + if (scaled_font->status) return scaled_font->status; - + closure.path = path; for (i = 0; i < num_glyphs; i++) { cairo_scaled_glyph_t *scaled_glyph; - + status = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index, CAIRO_SCALED_GLYPH_INFO_PATH, @@ -1044,7 +1044,7 @@ _cairo_scaled_font_glyph_path (cairo_scaled_font_t *scaled_font, closure.offset.x = _cairo_fixed_from_double (glyphs[i].x); closure.offset.y = _cairo_fixed_from_double (glyphs[i].y); - + status = _cairo_path_fixed_interpret (scaled_glyph->path, CAIRO_DIRECTION_FORWARD, _scaled_glyph_path_move_to, @@ -1053,7 +1053,7 @@ _cairo_scaled_font_glyph_path (cairo_scaled_font_t *scaled_font, _scaled_glyph_path_close_path, &closure); } - + return CAIRO_STATUS_SUCCESS; } @@ -1077,7 +1077,7 @@ _cairo_scaled_glyph_set_metrics (cairo_scaled_glyph_t *scaled_glyph, double hm, wm; double min_user_x = 0.0, max_user_x = 0.0, min_user_y = 0.0, max_user_y = 0.0; double min_device_x = 0.0, max_device_x = 0.0, min_device_y = 0.0, max_device_y = 0.0; - + for (hm = 0.0; hm <= 1.0; hm += 1.0) for (wm = 0.0; wm <= 1.0; wm += 1.0) { double x, y; @@ -1102,7 +1102,7 @@ _cairo_scaled_glyph_set_metrics (cairo_scaled_glyph_t *scaled_glyph, y = fs_metrics->y_bearing + fs_metrics->height * hm; cairo_matrix_transform_distance (&scaled_font->scale, &x, &y); - + if (first) { min_device_x = max_device_x = x; min_device_y = max_device_y = y; @@ -1178,7 +1178,7 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font, cairo_cache_entry_t key; cairo_scaled_glyph_t *scaled_glyph; cairo_scaled_glyph_info_t need_info; - + if (scaled_font->status) return scaled_font->status; @@ -1200,14 +1200,14 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font, status = CAIRO_STATUS_NO_MEMORY; goto CLEANUP; } - + _cairo_scaled_glyph_set_index(scaled_glyph, index); scaled_glyph->cache_entry.size = 1; /* XXX */ scaled_glyph->scaled_font = scaled_font; scaled_glyph->surface = NULL; scaled_glyph->path = NULL; scaled_glyph->surface_private = NULL; - + /* ask backend to initialize metrics and shape fields */ status = (*scaled_font->backend-> scaled_glyph_init) (scaled_font, scaled_glyph, info); @@ -1232,11 +1232,11 @@ _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font, if ((info & CAIRO_SCALED_GLYPH_INFO_SURFACE) != 0 && scaled_glyph->surface == NULL) need_info |= CAIRO_SCALED_GLYPH_INFO_SURFACE; - + if (((info & CAIRO_SCALED_GLYPH_INFO_PATH) != 0 && scaled_glyph->path == NULL)) need_info |= CAIRO_SCALED_GLYPH_INFO_PATH; - + if (need_info) { status = (*scaled_font->backend-> scaled_glyph_init) (scaled_font, scaled_glyph, need_info); diff --git a/src/cairo-spline.c b/src/cairo-spline.c index 60ad6c54..0da00aab 100644 --- a/src/cairo-spline.c +++ b/src/cairo-spline.c @@ -256,7 +256,7 @@ _cairo_spline_decompose_into (cairo_spline_t *spline, double tolerance_squared, status = _cairo_spline_decompose_into (&s1, tolerance_squared, result); if (status) return status; - + status = _cairo_spline_decompose_into (&s2, tolerance_squared, result); if (status) return status; diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c index c27510b9..5c62196a 100644 --- a/src/cairo-surface-fallback.c +++ b/src/cairo-surface-fallback.c @@ -70,7 +70,7 @@ _fallback_init (fallback_state_t *state, state->extents.y = y; state->extents.width = width; state->extents.height = height; - + state->dst = dst; status = _cairo_surface_acquire_dest_image (dst, &state->extents, @@ -116,14 +116,14 @@ _create_composite_mask_pattern (cairo_surface_pattern_t *mask_pattern, { cairo_surface_t *mask; cairo_status_t status; - + mask = cairo_surface_create_similar (dst, CAIRO_CONTENT_ALPHA, extents->width, extents->height); if (mask->status) return CAIRO_STATUS_NO_MEMORY; - + status = (*draw_func) (draw_closure, CAIRO_OPERATOR_ADD, NULL, mask, extents->x, extents->y, @@ -138,7 +138,7 @@ _create_composite_mask_pattern (cairo_surface_pattern_t *mask_pattern, extents); if (status) goto CLEANUP_SURFACE; - + _cairo_pattern_init_for_surface (mask_pattern, mask); CLEANUP_SURFACE: @@ -168,7 +168,7 @@ _clip_and_composite_with_mask (cairo_clip_t *clip, dst, extents); if (status) return status; - + status = _cairo_surface_composite (op, src, &mask_pattern.base, dst, extents->x, extents->y, @@ -254,7 +254,7 @@ _clip_and_composite_combine (cairo_clip_t *clip, /* Now add the two results together */ _cairo_pattern_init_for_surface (&intermediate_pattern, intermediate); - + status = _cairo_surface_composite (CAIRO_OPERATOR_ADD, &intermediate_pattern.base, NULL, dst, 0, 0, @@ -263,7 +263,7 @@ _clip_and_composite_combine (cairo_clip_t *clip, extents->width, extents->height); _cairo_pattern_fini (&intermediate_pattern.base); - + CLEANUP_SURFACE: cairo_surface_destroy (intermediate); @@ -292,7 +292,7 @@ _clip_and_composite_source (cairo_clip_t *clip, dst, extents); if (status) return status; - + /* Compute dest' = dest OUT (mask IN clip) */ status = _cairo_surface_composite (CAIRO_OPERATOR_DEST_OUT, @@ -425,11 +425,11 @@ _composite_trap_region (cairo_clip_t *clip, if (num_rects == 0) return CAIRO_STATUS_SUCCESS; - + if (num_rects > 1) { if (_cairo_surface_get_clip_mode (dst) != CAIRO_CLIP_MODE_REGION) return CAIRO_INT_STATUS_UNSUPPORTED; - + clip_serial = _cairo_surface_allocate_clip_serial (dst); status = _cairo_surface_set_clip_region (dst, trap_region, @@ -437,10 +437,10 @@ _composite_trap_region (cairo_clip_t *clip, if (status) return status; } - + if (clip_surface) _cairo_pattern_init_for_surface (&mask.surface, clip_surface); - + status = _cairo_surface_composite (op, src, clip_surface ? &mask.base : NULL, @@ -481,14 +481,14 @@ _composite_traps_draw_func (void *closure, cairo_composite_traps_info_t *info = closure; cairo_pattern_union_t pattern; cairo_status_t status; - + if (dst_x != 0 || dst_y != 0) _cairo_traps_translate (info->traps, - dst_x, - dst_y); _cairo_pattern_init_solid (&pattern.solid, CAIRO_COLOR_WHITE); if (!src) src = &pattern.base; - + status = _cairo_surface_composite_trapezoids (op, src, dst, info->antialias, extents->x, extents->y, @@ -515,7 +515,7 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, pixman_region16_t *clear_region = NULL; cairo_rectangle_fixed_t extents; cairo_composite_traps_info_t traps_info; - + if (traps->num_traps == 0) return CAIRO_STATUS_SUCCESS; @@ -538,11 +538,11 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, else { cairo_surface_t *clip_surface = clip ? clip->surface : NULL; - + status = _cairo_surface_get_extents (dst, &extents); if (status) return status; - + if (trap_region && !clip_surface) { /* If we optimize drawing with an unbounded operator to * _cairo_surface_fill_rectangles() or to drawing with a @@ -551,7 +551,7 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, status = _cairo_surface_get_extents (dst, &extents); if (status) return status; - + clear_region = _cairo_region_create_from_rectangle (&extents); if (clear_region == NULL) return CAIRO_STATUS_NO_MEMORY; @@ -559,12 +559,12 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, status = _cairo_clip_intersect_to_region (clip, clear_region); if (status) return status; - + _cairo_region_extents_rectangle (clear_region, &extents); - + if (pixman_region_subtract (clear_region, clear_region, trap_region) != PIXMAN_REGION_STATUS_SUCCESS) return CAIRO_STATUS_NO_MEMORY; - + if (!pixman_region_not_empty (clear_region)) { pixman_region_destroy (clear_region); clear_region = NULL; @@ -575,14 +575,14 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, return status; } } - + if (status) goto out; - + if (trap_region) { cairo_surface_t *clip_surface = clip ? clip->surface : NULL; - + if ((src->type == CAIRO_PATTERN_TYPE_SOLID || op == CAIRO_OPERATOR_CLEAR) && !clip_surface) { @@ -592,7 +592,7 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, color = CAIRO_COLOR_TRANSPARENT; else color = &((cairo_solid_pattern_t *)src)->color; - + /* Solid rectangles special case */ status = _cairo_surface_fill_region (dst, op, color, trap_region); if (!status && clear_region) @@ -646,7 +646,7 @@ _clip_and_composite_trapezoids (cairo_pattern_t *src, pixman_region_destroy (trap_region); if (clear_region) pixman_region_destroy (clear_region); - + return status; } @@ -672,7 +672,7 @@ _cairo_surface_fallback_paint (cairo_surface_t *surface, _cairo_rectangle_intersect (&extents, &source_extents); } - + status = _cairo_clip_intersect_to_rectangle (surface->clip, &extents); if (status) return status; @@ -685,7 +685,7 @@ _cairo_surface_fallback_paint (cairo_surface_t *surface, status = _cairo_traps_init_box (&traps, &box); if (status) return status; - + _clip_and_composite_trapezoids (source, op, surface, @@ -745,7 +745,7 @@ _cairo_surface_fallback_mask (cairo_surface_t *surface, _cairo_rectangle_intersect (&extents, &source_extents); } - + if (_cairo_operator_bounded_by_mask (op)) { status = _cairo_pattern_get_extents (mask, &mask_extents); if (status) @@ -781,7 +781,7 @@ _cairo_surface_fallback_stroke (cairo_surface_t *surface, { cairo_status_t status; cairo_traps_t traps; - + _cairo_traps_init (&traps); status = _cairo_path_fixed_stroke_to_traps (path, @@ -866,7 +866,7 @@ _cairo_surface_old_show_glyphs_draw_func (void *closure */ if (dst_x != 0 || dst_y != 0) { int i; - + for (i = 0; i < glyph_info->num_glyphs; ++i) { ((cairo_glyph_t *) glyph_info->glyphs)[i].x -= dst_x; @@ -877,7 +877,7 @@ _cairo_surface_old_show_glyphs_draw_func (void *closure _cairo_pattern_init_solid (&pattern.solid, CAIRO_COLOR_WHITE); if (!src) src = &pattern.base; - + status = _cairo_surface_old_show_glyphs (glyph_info->font, op, src, dst, extents->x, extents->y, @@ -890,7 +890,7 @@ _cairo_surface_old_show_glyphs_draw_func (void *closure if (status != CAIRO_INT_STATUS_UNSUPPORTED) return status; - + status = _cairo_scaled_font_show_glyphs (glyph_info->font, op, src, dst, @@ -933,15 +933,15 @@ _cairo_surface_fallback_show_glyphs (cairo_surface_t *surface, _cairo_rectangle_intersect (&extents, &glyph_extents); } - + status = _cairo_clip_intersect_to_rectangle (surface->clip, &extents); if (status) return status; - + glyph_info.font = scaled_font; glyph_info.glyphs = glyphs; glyph_info.num_glyphs = num_glyphs; - + status = _clip_and_composite (surface->clip, op, source, @@ -949,7 +949,7 @@ _cairo_surface_fallback_show_glyphs (cairo_surface_t *surface, &glyph_info, surface, &extents); - + return status; } @@ -1063,7 +1063,7 @@ _cairo_surface_fallback_fill_rectangles (cairo_surface_t *surface, y1 = rects[0].y; x2 = rects[0].x + rects[0].width; y2 = rects[0].y + rects[0].height; - + for (i = 1; i < num_rects; i++) { if (rects[i].x < x1) x1 = rects[i].x; @@ -1084,7 +1084,7 @@ _cairo_surface_fallback_fill_rectangles (cairo_surface_t *surface, } /* If the fetched image isn't at 0,0, we need to offset the rectangles */ - + if (state.image_rect.x != 0 || state.image_rect.y != 0) { offset_rects = malloc (sizeof (cairo_rectangle_fixed_t) * num_rects); if (offset_rects == NULL) { @@ -1140,7 +1140,7 @@ _cairo_surface_fallback_composite_trapezoids (cairo_operator_t op, } /* If the destination image isn't at 0,0, we need to offset the trapezoids */ - + if (state.image_rect.x != 0 || state.image_rect.y != 0) { offset_traps = malloc (sizeof (cairo_trapezoid_t) * num_traps); if (!offset_traps) { @@ -1166,6 +1166,6 @@ _cairo_surface_fallback_composite_trapezoids (cairo_operator_t op, DONE: _fallback_fini (&state); - + return status; } diff --git a/src/cairo-surface.c b/src/cairo-surface.c index c6f8f9ca..c7809d7f 100644 --- a/src/cairo-surface.c +++ b/src/cairo-surface.c @@ -188,7 +188,7 @@ _cairo_surface_init (cairo_surface_t *surface, surface->backend = backend; surface->content = content; - + surface->type = backend->type; surface->ref_count = 1; @@ -294,7 +294,7 @@ _cairo_surface_create_similar_solid (cairo_surface_t *other, CAIRO_OPERATOR_SOURCE, source); cairo_pattern_destroy (source); - + if (status) { cairo_surface_destroy (surface); _cairo_error (status); @@ -466,7 +466,7 @@ cairo_surface_set_user_data (cairo_surface_t *surface, { if (surface->ref_count == -1) return CAIRO_STATUS_NO_MEMORY; - + return _cairo_user_data_array_set_data (&surface->user_data, key, user_data, destroy); } @@ -520,7 +520,7 @@ cairo_surface_flush (cairo_surface_t *surface) cairo_status_t status; status = surface->backend->flush (surface); - + if (status) _cairo_surface_set_error (surface, status); } @@ -584,12 +584,12 @@ cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, if (surface->backend->mark_dirty_rectangle) { cairo_status_t status; - + status = surface->backend->mark_dirty_rectangle (surface, SURFACE_TO_BACKEND_X(surface, x), SURFACE_TO_BACKEND_Y(surface, y), width, height); - + if (status) _cairo_surface_set_error (surface, status); } @@ -799,13 +799,13 @@ _cairo_surface_clone_similar (cairo_surface_t *surface, cairo_status_t status; cairo_image_surface_t *image; void *image_extra; - + if (surface->finished) return CAIRO_STATUS_SURFACE_FINISHED; if (surface->backend->clone_similar == NULL) return CAIRO_INT_STATUS_UNSUPPORTED; - + status = surface->backend->clone_similar (surface, src, clone_out); if (status == CAIRO_STATUS_SUCCESS) { (*clone_out)->device_x_offset = src->device_x_offset; @@ -830,7 +830,7 @@ _cairo_surface_clone_similar (cairo_surface_t *surface, * inefficient compared to a backend-specific implementation of * clone_similar() with an image source. So we don't bother */ - + _cairo_surface_release_source_image (src, image, image_extra); return status; } @@ -891,7 +891,7 @@ _cairo_surface_composite (cairo_operator_t op, if (dst->status) return dst->status; - + if (dst->finished) return CAIRO_STATUS_SURFACE_FINISHED; @@ -985,7 +985,7 @@ _cairo_surface_fill_region (cairo_surface_t *surface, if (!num_rects) return CAIRO_STATUS_SUCCESS; - + rects = malloc (sizeof (pixman_rectangle_t) * num_rects); if (!rects) return CAIRO_STATUS_NO_MEMORY; @@ -999,7 +999,7 @@ _cairo_surface_fill_region (cairo_surface_t *surface, status = _cairo_surface_fill_rectangles (surface, op, color, rects, num_rects); - + free (rects); return status; @@ -1207,7 +1207,7 @@ FINISH: return status; } - + cairo_status_t _cairo_surface_composite_trapezoids (cairo_operator_t op, cairo_pattern_t *pattern, @@ -1326,7 +1326,7 @@ unsigned int _cairo_surface_allocate_clip_serial (cairo_surface_t *surface) { unsigned int serial; - + if (surface->status) return 0; @@ -1354,7 +1354,7 @@ _cairo_surface_reset_clip (cairo_surface_t *surface) if (surface->finished) return CAIRO_STATUS_SURFACE_FINISHED; - + surface->current_clip_serial = 0; if (surface->backend->intersect_clip_path) { @@ -1398,7 +1398,7 @@ _cairo_surface_set_clip_region (cairo_surface_t *surface, if (surface->finished) return CAIRO_STATUS_SURFACE_FINISHED; - + assert (surface->backend->set_clip_region != NULL); surface->current_clip_serial = serial; @@ -1423,7 +1423,7 @@ _cairo_surface_intersect_clip_path (cairo_surface_t *surface, if (surface->finished) return CAIRO_STATUS_SURFACE_FINISHED; - + assert (surface->backend->intersect_clip_path != NULL); status = surface->backend->intersect_clip_path (surface, @@ -1500,7 +1500,7 @@ cairo_status_t _cairo_surface_set_clip (cairo_surface_t *surface, cairo_clip_t *clip) { unsigned int serial = 0; - + if (!surface) return CAIRO_STATUS_NULL_POINTER; @@ -1515,7 +1515,7 @@ _cairo_surface_set_clip (cairo_surface_t *surface, cairo_clip_t *clip) if (serial == 0) clip = NULL; } - + surface->clip = clip; if (serial == _cairo_surface_get_current_clip_serial (surface)) @@ -1526,13 +1526,13 @@ _cairo_surface_set_clip (cairo_surface_t *surface, cairo_clip_t *clip) return _cairo_surface_set_clip_path (surface, clip->path, clip->serial); - + if (clip->region) return _cairo_surface_set_clip_region (surface, clip->region, clip->serial); } - + return _cairo_surface_reset_clip (surface); } @@ -1866,7 +1866,7 @@ _cairo_surface_composite_shape_fixup_unbounded (cairo_surface_t *dst, mask_tmp.y = dst_y - mask_y; mask_tmp.width = mask_width; mask_tmp.height = mask_height; - + mask_rectangle = &mask_tmp; return _cairo_surface_composite_fixup_unbounded_internal (dst, src_rectangle, mask_rectangle, diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index f0c1e5c4..2827b572 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -396,7 +396,7 @@ _cairo_svg_surface_create_for_document (cairo_svg_document_t *document, surface->id = document->surface_id++; clip_id = document->clip_id++; - + clip = xmlNewChild (document->xml_node_defs, NULL, CC2XML ("clipPath"), NULL); snprintf (buffer, sizeof buffer, "clip%d", clip_id); xmlSetProp (clip, CC2XML ("id"), C2XML (buffer)); @@ -405,14 +405,14 @@ _cairo_svg_surface_create_for_document (cairo_svg_document_t *document, xmlSetProp (rect, CC2XML ("width"), C2XML (buffer)); _cairo_dtostr (buffer, sizeof buffer, height); xmlSetProp (rect, CC2XML ("height"), C2XML (buffer)); - + /* Use of xlink namespace requires node to be linked to tree. * So by default we link surface main node to document svg node. * For surfaces that don't own document, their main node will be * unlinked and freed in surface finish. */ surface->xml_node = xmlNewChild (document->xml_node_main, NULL, CC2XML ("g"), NULL); surface->xml_root_node = surface->xml_node; - + snprintf (buffer, sizeof buffer, "surface%d", surface->id); xmlSetProp (surface->xml_node, CC2XML ("id"), C2XML (buffer)); snprintf (buffer, sizeof buffer, "url(#clip%d)", clip_id); @@ -581,7 +581,7 @@ _cairo_svg_document_emit_glyph (cairo_svg_document_t *document, svg_path_info_t info; xmlNodePtr symbol, child; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + status = _cairo_scaled_glyph_lookup (scaled_font, scaled_font_glyph_index, CAIRO_SCALED_GLYPH_INFO_METRICS| @@ -600,7 +600,7 @@ _cairo_svg_document_emit_glyph (cairo_svg_document_t *document, _cairo_surface_set_error (document->owner, status); return; } - + info.document = document; info.path = xmlBufferCreate (); info.ctm_inverse = NULL; @@ -622,7 +622,7 @@ _cairo_svg_document_emit_glyph (cairo_svg_document_t *document, child = xmlNewChild (symbol, NULL, CC2XML ("path"), NULL); xmlSetProp (child, CC2XML ("d"), xmlBufferContent (info.path)); xmlSetProp (child, CC2XML ("style"), CC2XML ("stroke: none;")); - + xmlBufferFree (info.path); } @@ -657,7 +657,7 @@ _operation_supported (cairo_svg_surface_t *surface, const cairo_pattern_t *pattern) { cairo_svg_document_t *document = surface->document; - + if (document->svg_version < CAIRO_SVG_VERSION_1_2) if (op != CAIRO_OPERATOR_OVER) return FALSE; @@ -691,7 +691,7 @@ _cairo_svg_surface_finish (void *abstract_surface) cairo_status_t status; cairo_svg_surface_t *surface = abstract_surface; cairo_svg_document_t *document = surface->document; - + if (document->owner == &surface->base) { status = _cairo_svg_document_finish (document); } else { @@ -736,7 +736,7 @@ emit_transform (xmlNodePtr node, { xmlBufferPtr matrix_buffer; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + matrix_buffer = xmlBufferCreate (); xmlBufferCat (matrix_buffer, CC2XML ("matrix(")); _cairo_dtostr (buffer, sizeof buffer, matrix->xx); @@ -835,7 +835,7 @@ _cairo_surface_base64_encode (cairo_surface_t *surface, if (buffer == NULL) return CAIRO_STATUS_NULL_POINTER; - + info.buffer = xmlBufferCreate(); info.in_mem = 0; info.trailing = 0; @@ -852,7 +852,7 @@ _cairo_surface_base64_encode (cairo_surface_t *surface, *buffer = NULL; return status; } - + if (info.in_mem > 0) { for (i = info.in_mem; i < 3; i++) info.src[i] = '\x0'; @@ -860,7 +860,7 @@ _cairo_surface_base64_encode (cairo_surface_t *surface, info.in_mem = 3; base64_write_func (&info, NULL, 0); } - + return CAIRO_STATUS_SUCCESS; } @@ -900,7 +900,7 @@ emit_composite_image_pattern (xmlNodePtr node, _cairo_dtostr (buffer, sizeof buffer, image->height); xmlSetProp (child, CC2XML ("height"), C2XML (buffer)); xmlSetProp (child, CC2XML ("xlink:href"), C2XML (xmlBufferContent (image_buffer))); - + xmlBufferFree (image_buffer); if (!is_pattern) { @@ -939,7 +939,7 @@ emit_meta_surface (cairo_svg_document_t *document, break; } } - + if (i >= num_elements) { cairo_surface_t *paginated_surface; cairo_surface_t *svg_surface; @@ -958,11 +958,11 @@ emit_meta_surface (cairo_svg_document_t *document, &cairo_svg_surface_paginated_backend); _cairo_meta_surface_replay ((cairo_surface_t *)meta, paginated_surface); _cairo_surface_show_page (paginated_surface); - + new_snapshot.meta = meta; new_snapshot.id = ((cairo_svg_surface_t *) svg_surface)->id; _cairo_array_append (&document->meta_snapshots, &new_snapshot); - + if (meta->content == CAIRO_CONTENT_ALPHA) emit_alpha_filter (document); child = xmlAddChild (document->xml_node_defs, @@ -994,13 +994,13 @@ emit_composite_meta_pattern (xmlNodePtr node, char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; meta_surface = (cairo_meta_surface_t *) pattern->surface; - + id = emit_meta_surface (document, meta_surface); - + child = xmlNewChild (node, NULL, CC2XML("use"), NULL); snprintf (buffer, sizeof buffer, "#surface%d", id); xmlSetProp (child, CC2XML ("xlink:href"), C2XML (buffer)); - + if (!is_pattern) { p2u = pattern->base.matrix; cairo_matrix_invert (&p2u); @@ -1038,13 +1038,13 @@ emit_operator (xmlNodePtr node, { char const *op_str[] = { "clear", - + "src", "src-over", "src-in", "src-out", "src-atop", - + "dst", "dst-over", "dst-in", "dst-out", "dst-atop", - + "xor", "plus", "color-dodge" /* FIXME: saturate ? */ }; @@ -1102,9 +1102,9 @@ emit_surface_pattern (cairo_svg_surface_t *surface, cairo_matrix_t p2u; double width, height; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + child = xmlNewChild (document->xml_node_defs, NULL, CC2XML ("pattern"), NULL); - + id = xmlBufferCreate (); xmlBufferCat (id, CC2XML ("pattern")); snprintf (buffer, sizeof buffer, "%d", document->pattern_id); @@ -1180,7 +1180,7 @@ emit_pattern_extend (xmlNodePtr node, cairo_extend_t extend) /* FIXME not implemented */ break; } - + if (value != NULL) xmlSetProp (node, CC2XML ("spreadMethod"), CC2XML (value)); } @@ -1197,9 +1197,9 @@ emit_linear_pattern (cairo_svg_surface_t *surface, double x0, y0, x1, y1; cairo_matrix_t p2u; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + child = xmlNewChild (document->xml_node_defs, NULL, CC2XML ("linearGradient"), NULL); - + id = xmlBufferCreate (); xmlBufferCat (id, CC2XML ("linear")); snprintf (buffer, sizeof buffer, "%d", document->linear_pattern_id); @@ -1222,7 +1222,7 @@ emit_linear_pattern (cairo_svg_surface_t *surface, y0 = _cairo_fixed_to_double (pattern->gradient.p1.y); x1 = _cairo_fixed_to_double (pattern->gradient.p2.x); y1 = _cairo_fixed_to_double (pattern->gradient.p2.y); - + _cairo_dtostr (buffer, sizeof buffer, x0); xmlSetProp (child, CC2XML ("x1"), C2XML (buffer)); _cairo_dtostr (buffer, sizeof buffer, y0); @@ -1231,13 +1231,13 @@ emit_linear_pattern (cairo_svg_surface_t *surface, xmlSetProp (child, CC2XML ("x2"), C2XML (buffer)); _cairo_dtostr (buffer, sizeof buffer, y1); xmlSetProp (child, CC2XML ("y2"), C2XML (buffer)); - + p2u = pattern->base.base.matrix; cairo_matrix_invert (&p2u); emit_transform (child, "gradientTransform", &p2u); } - + static void emit_radial_pattern (cairo_svg_surface_t *surface, cairo_radial_pattern_t *pattern, @@ -1250,9 +1250,9 @@ emit_radial_pattern (cairo_svg_surface_t *surface, double x0, y0, x1, y1, r0, r1; double fx, fy; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + child = xmlNewChild (document->xml_node_defs, NULL, CC2XML ("radialGradient"), NULL); - + id = xmlBufferCreate (); xmlBufferCat (id, CC2XML ("radial")); snprintf (buffer, sizeof buffer, "%d", document->radial_pattern_id); @@ -1260,7 +1260,7 @@ emit_radial_pattern (cairo_svg_surface_t *surface, xmlSetProp (child, CC2XML ("id"), C2XML (xmlBufferContent (id))); xmlSetProp (child, CC2XML ("gradientUnits"), CC2XML ("userSpaceOnUse")); emit_pattern_extend (child, pattern->base.base.extend); - + xmlBufferCat (style, CC2XML (is_stroke ? "color: url(#" : "fill: url(#")); xmlBufferCat (style, xmlBufferContent (id)); xmlBufferCat (style, CC2XML (");")); @@ -1302,7 +1302,7 @@ emit_radial_pattern (cairo_svg_surface_t *surface, emit_transform (child, "gradientTransform", &p2u); } - + static void emit_pattern (cairo_svg_surface_t *surface, cairo_pattern_t *pattern, xmlBufferPtr style, int is_stroke) @@ -1350,7 +1350,7 @@ _cairo_svg_surface_fill (void *abstract_surface, info.document = document; info.path = xmlBufferCreate (); info.ctm_inverse = NULL; - + style = xmlBufferCreate (); emit_pattern (surface, source, style, 0); xmlBufferCat (style, CC2XML (" stroke: none;")); @@ -1437,7 +1437,7 @@ _cairo_svg_surface_paint (void *abstract_surface, cairo_pattern_t *source) { cairo_svg_surface_t *surface = abstract_surface; - + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) return _analyze_operation (surface, op, source); @@ -1463,7 +1463,7 @@ _cairo_svg_surface_paint (void *abstract_surface, (op == CAIRO_OPERATOR_CLEAR || op == CAIRO_OPERATOR_SOURCE)) { xmlNodePtr child = surface->xml_root_node->children; - + while (child != NULL) { xmlUnlinkNode (child); xmlFreeNode (child); @@ -1487,7 +1487,7 @@ _cairo_svg_surface_paint (void *abstract_surface, } emit_paint (surface->xml_node, surface, op, source); - + return CAIRO_STATUS_SUCCESS; } @@ -1506,7 +1506,7 @@ _cairo_svg_surface_mask (void *abstract_surface, return _analyze_operation (surface, op, source); assert (_operation_supported (surface, op, source)); - + emit_alpha_filter (document); mask_node = xmlNewChild (document->xml_node_defs, NULL, CC2XML ("mask"), NULL); @@ -1553,7 +1553,7 @@ _cairo_svg_surface_stroke (void *abstract_dst, svg_path_info_t info; unsigned int i; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; - + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) return _analyze_operation (surface, op, source); @@ -1569,7 +1569,7 @@ _cairo_svg_surface_stroke (void *abstract_dst, _cairo_dtostr (buffer, sizeof buffer, stroke_style->line_width); xmlBufferCat (style, C2XML (buffer)); xmlBufferCat (style, CC2XML (";")); - + switch (stroke_style->line_cap) { case CAIRO_LINE_CAP_BUTT: xmlBufferCat (style, CC2XML ("stroke-linecap: butt;")); @@ -1623,13 +1623,13 @@ _cairo_svg_surface_stroke (void *abstract_dst, _cairo_svg_path_curve_to, _cairo_svg_path_close_path, &info); - + child = xmlNewChild (surface->xml_node, NULL, CC2XML ("path"), NULL); emit_transform (child, "transform", ctm); xmlSetProp (child, CC2XML ("d"), xmlBufferContent (info.path)); xmlSetProp (child, CC2XML ("style"), xmlBufferContent (style)); emit_operator (child, surface, op); - + xmlBufferFree (info.path); xmlBufferFree (style); @@ -1654,7 +1654,7 @@ _cairo_svg_surface_show_glyphs (void *abstract_surface, char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; unsigned int font_id, subset_id, subset_glyph_index; int i; - + if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE) return _analyze_operation (surface, op, pattern); @@ -1698,7 +1698,7 @@ _cairo_svg_surface_show_glyphs (void *abstract_surface, return CAIRO_STATUS_SUCCESS; FALLBACK: - + _cairo_path_fixed_init (&path); status = _cairo_scaled_font_glyph_path (scaled_font,(cairo_glyph_t *) glyphs, num_glyphs, &path); @@ -1835,7 +1835,7 @@ _cairo_svg_document_create (cairo_output_stream_t *output_stream, free (document); return NULL; } - + document->output_stream = output_stream; document->refcount = 1; document->owner = NULL; @@ -1863,13 +1863,13 @@ _cairo_svg_document_create (cairo_output_stream_t *output_stream, document->xml_node_defs = xmlNewChild (node, NULL, CC2XML ("defs"), NULL); xml_buffer = xmlBufferCreate (); - + _cairo_dtostr (buffer, sizeof buffer, width); xmlBufferCat (xml_buffer, C2XML (buffer)); xmlBufferCat (xml_buffer, CC2XML ("pt")); xmlSetProp (node, CC2XML ("width"), C2XML (xmlBufferContent (xml_buffer))); xmlBufferEmpty (xml_buffer); - + _cairo_dtostr (buffer, sizeof buffer, height); xmlBufferCat (xml_buffer, C2XML (buffer)); xmlBufferCat (xml_buffer, CC2XML ("pt")); @@ -1883,7 +1883,7 @@ _cairo_svg_document_create (cairo_output_stream_t *output_stream, _cairo_dtostr (buffer, sizeof buffer, height); xmlBufferCat (xml_buffer, C2XML (buffer)); xmlSetProp (node, CC2XML ("viewBox"), C2XML (xmlBufferContent (xml_buffer))); - + xmlBufferFree (xml_buffer); xmlNewNs (node, CC2XML ("http://www.w3.org/2000/svg"), NULL); @@ -1927,7 +1927,7 @@ _cairo_svg_document_write (cairo_output_stream_t *output_stream, int len) { cairo_status_t status; - + _cairo_output_stream_write (output_stream, buffer, len); status = _cairo_output_stream_get_status (output_stream); if (status) { diff --git a/src/cairo-traps.c b/src/cairo-traps.c index 6733ca58..a3f1fca0 100644 --- a/src/cairo-traps.c +++ b/src/cairo-traps.c @@ -102,13 +102,13 @@ _cairo_traps_init_box (cairo_traps_t *traps, cairo_box_t *box) { cairo_status_t status; - + _cairo_traps_init (traps); - + status = _cairo_traps_grow_by (traps, 1); if (status) return status; - + traps->num_traps = 1; traps->traps[0].top = box->p1.y; @@ -165,12 +165,12 @@ _cairo_traps_add_trap (cairo_traps_t *traps, cairo_fixed_t top, cairo_fixed_t bo traps->extents.p1.x = left->p1.x; if (left->p2.x < traps->extents.p1.x) traps->extents.p1.x = left->p2.x; - + if (right->p1.x > traps->extents.p2.x) traps->extents.p2.x = right->p1.x; if (right->p2.x > traps->extents.p2.x) traps->extents.p2.x = right->p2.x; - + traps->num_traps++; return CAIRO_STATUS_SUCCESS; @@ -540,7 +540,7 @@ _line_segs_intersect_ceil (cairo_line_t *l1, cairo_line_t *l2, cairo_fixed_t *y_ dy2 = l2->p1.y - l2->p2.y; den_det = _det16_32 (dx1, dy1, dx2, dy2); - + if (_cairo_int64_eq (den_det, _cairo_int32_to_int64(0))) return 0; @@ -549,26 +549,26 @@ _line_segs_intersect_ceil (cairo_line_t *l1, cairo_line_t *l2, cairo_fixed_t *y_ l2_det = _det16_32 (l2->p1.x, l2->p1.y, l2->p2.x, l2->p2.y); - + num_det = _det32_64 (l1_det, _fixed_16_16_to_fixed_32_32 (dy1), l2_det, _fixed_16_16_to_fixed_32_32 (dy2)); - + /* * Ok, this one is a bit tricky in fixed point, the denominator * needs to be left with 32-bits of fraction so that the * result of the divide ends up with 32-bits of fraction (64 - 32 = 32) */ qr = _cairo_int128_divrem (num_det, _cairo_int64_to_int128 (den_det)); - + intersect_32_32 = _cairo_int128_to_int64 (qr.quo); - + /* * Find the ceiling of the quotient -- divrem returns * the quotient truncated towards zero, so if the * quotient should be positive (num_den and den_det have same sign) * bump the quotient up by one. */ - + if (_cairo_int128_ne (qr.rem, _cairo_int32_to_int128 (0)) && (_cairo_int128_ge (num_det, _cairo_int32_to_int128 (0)) == _cairo_int64_ge (den_det, _cairo_int32_to_int64 (0)))) @@ -576,7 +576,7 @@ _line_segs_intersect_ceil (cairo_line_t *l1, cairo_line_t *l2, cairo_fixed_t *y_ intersect_32_32 = _cairo_int64_add (intersect_32_32, _cairo_int32_to_int64 (1)); } - + /* * Now convert from 32.32 to 48.16 and take the ceiling; * this requires adding in 15 1 bits and shifting the result @@ -585,12 +585,12 @@ _line_segs_intersect_ceil (cairo_line_t *l1, cairo_line_t *l2, cairo_fixed_t *y_ intersect_32_32 = _cairo_int64_add (intersect_32_32, _cairo_int32_to_int64 ((1 << 16) - 1)); intersect_48_16 = _cairo_int64_rsa (intersect_32_32, 16); - + /* * And drop the top bits */ intersect_16_16 = _cairo_int64_to_int32 (intersect_48_16); - + *y_intersection = intersect_16_16; return 1; @@ -741,7 +741,7 @@ _cairo_traps_tessellate_polygon (cairo_traps_t *traps, return CAIRO_STATUS_SUCCESS; qsort (edges, num_edges, sizeof (cairo_edge_t), _compare_cairo_edge_by_top); - + y = edges[0].edge.p1.y; active = 0; inactive = 0; @@ -809,12 +809,12 @@ static cairo_bool_t _cairo_trap_contains (cairo_trapezoid_t *t, cairo_point_t *pt) { cairo_slope_t slope_left, slope_pt, slope_right; - + if (t->top > pt->y) return FALSE; if (t->bottom < pt->y) return FALSE; - + _cairo_slope_init (&slope_left, &t->left.p1, &t->left.p2); _cairo_slope_init (&slope_pt, &t->left.p1, pt); @@ -882,7 +882,7 @@ _cairo_traps_extract_region (cairo_traps_t *traps, *region = NULL; return CAIRO_STATUS_SUCCESS; } - + *region = pixman_region_create (); for (i = 0; i < traps->num_traps; i++) { @@ -897,7 +897,7 @@ _cairo_traps_extract_region (cairo_traps_t *traps, */ if (width == 0 || height == 0) continue; - + if (pixman_region_union_rect (*region, *region, x, y, width, height) != PIXMAN_REGION_STATUS_SUCCESS) { pixman_region_destroy (*region); diff --git a/src/cairo-unicode.c b/src/cairo-unicode.c index 8929baaa..0c0dff2e 100644 --- a/src/cairo-unicode.c +++ b/src/cairo-unicode.c @@ -84,7 +84,7 @@ ((Char) < 0x10000 ? 3 : \ ((Char) < 0x200000 ? 4 : \ ((Char) < 0x4000000 ? 5 : 6))))) - + #define UTF8_GET(Result, Chars, Count, Mask, Len) \ (Result) = (Chars)[0] & (Mask); \ @@ -104,8 +104,8 @@ (((Char) & 0xFFFFF800) != 0xD800) && \ ((Char) < 0xFDD0 || (Char) > 0xFDEF) && \ ((Char) & 0xFFFE) != 0xFFFE) - - + + static const char utf8_skip_data[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -170,7 +170,7 @@ _utf8_get_char_extended (const unsigned char *p, } else { return (uint32_t)-1; } - + if (max_len >= 0 && len > max_len) { for (i = 1; i < max_len; i++) { if ((((unsigned char *)p)[i] & 0xc0) != 0x80) @@ -181,7 +181,7 @@ _utf8_get_char_extended (const unsigned char *p, for (i = 1; i < len; ++i) { uint32_t ch = ((unsigned char *)p)[i]; - + if ((ch & 0xc0) != 0x80) { if (ch) return (uint32_t)-1; @@ -195,7 +195,7 @@ _utf8_get_char_extended (const unsigned char *p, if (UTF8_LENGTH(wc) != len) return (uint32_t)-1; - + return wc; } @@ -228,7 +228,7 @@ _cairo_utf8_to_ucs4 (const unsigned char *str, uint32_t *str32 = NULL; int n_chars, i; const unsigned char *in; - + in = str; n_chars = 0; while ((len < 0 || str + len - in > 0) && *in) @@ -236,7 +236,7 @@ _cairo_utf8_to_ucs4 (const unsigned char *str, uint32_t wc = _utf8_get_char_extended (in, str + len - in); if (wc & 0x80000000 || !UNICODE_VALID (wc)) return CAIRO_STATUS_INVALID_STRING; - + n_chars++; if (n_chars == INT_MAX) return CAIRO_STATUS_INVALID_STRING; @@ -247,7 +247,7 @@ _cairo_utf8_to_ucs4 (const unsigned char *str, str32 = malloc (sizeof (uint32_t) * (n_chars + 1)); if (!str32) return CAIRO_STATUS_NO_MEMORY; - + in = str; for (i=0; i < n_chars; i++) { str32[i] = _utf8_get_char (in); @@ -299,23 +299,23 @@ _cairo_utf8_to_utf16 (const unsigned char *str, uint32_t wc = _utf8_get_char_extended (in, str + len - in); if (wc & 0x80000000 || !UNICODE_VALID (wc)) return CAIRO_STATUS_INVALID_STRING; - + if (wc < 0x10000) n16 += 1; else n16 += 2; - + if (n16 == INT_MAX - 1 || n16 == INT_MAX) return CAIRO_STATUS_INVALID_STRING; - + in = UTF8_NEXT_CHAR (in); } - + str16 = malloc (sizeof (uint16_t) * (n16 + 1)); if (!str16) return CAIRO_STATUS_NO_MEMORY; - + in = str; for (i = 0; i < n16;) { uint32_t wc = _utf8_get_char (in); @@ -326,7 +326,7 @@ _cairo_utf8_to_utf16 (const unsigned char *str, str16[i++] = (wc - 0x10000) / 0x400 + 0xd800; str16[i++] = (wc - 0x10000) % 0x400 + 0xdc00; } - + in = UTF8_NEXT_CHAR (in); } diff --git a/src/cairo-wideint.c b/src/cairo-wideint.c index 89df00b3..b5fd5551 100644 --- a/src/cairo-wideint.c +++ b/src/cairo-wideint.c @@ -113,7 +113,7 @@ cairo_uint64_t _cairo_uint32x32_64_mul (uint32_t a, uint32_t b) { cairo_uint64_t s; - + uint16_t ah, al, bh, bl; uint32_t r0, r1, r2, r3; @@ -153,7 +153,7 @@ cairo_uint64_t _cairo_uint64_mul (cairo_uint64_t a, cairo_uint64_t b) { cairo_uint64_t s; - + s = _cairo_uint32x32_64_mul (a.lo, b.lo); s.hi += a.lo * b.hi + a.hi * b.lo; return s; @@ -262,9 +262,9 @@ _cairo_uint64_divrem (cairo_uint64_t num, cairo_uint64_t den) cairo_uquorem64_t qr; cairo_uint64_t bit; cairo_uint64_t quo; - + bit = _cairo_uint32_to_uint64 (1); - + /* normalize to make den >= num, but not overflow */ while (_cairo_uint64_lt (den, num) && (den.hi & 0x80000000) == 0) { @@ -272,7 +272,7 @@ _cairo_uint64_divrem (cairo_uint64_t num, cairo_uint64_t den) den = _cairo_uint64_lsl (den, 1); } quo = _cairo_uint32_to_uint64 (0); - + /* generate quotient, one bit at a time */ while (bit.hi | bit.lo) { @@ -588,9 +588,9 @@ _cairo_uint128_divrem (cairo_uint128_t num, cairo_uint128_t den) cairo_uquorem128_t qr; cairo_uint128_t bit; cairo_uint128_t quo; - + bit = _cairo_uint32_to_uint128 (1); - + /* normalize to make den >= num, but not overflow */ while (_cairo_uint128_lt (den, num) && !_cairo_msbset64(den.hi)) { @@ -598,7 +598,7 @@ _cairo_uint128_divrem (cairo_uint128_t num, cairo_uint128_t den) den = _cairo_uint128_lsl (den, 1); } quo = _cairo_uint32_to_uint128 (0); - + /* generate quotient, one bit at a time */ while (_cairo_uint128_ne (bit, _cairo_uint32_to_uint128(0))) { diff --git a/src/cairo-wideint.h b/src/cairo-wideint.h index 795cde73..aed9e444 100644 --- a/src/cairo-wideint.h +++ b/src/cairo-wideint.h @@ -185,7 +185,7 @@ _cairo_int64_divrem (cairo_int64_t num, cairo_int64_t den); * case the machine has a native 128-bit datatype. GCC supports int128_t * on ia64 */ - + #if !HAVE_UINT128_T typedef struct cairo_uint128 { diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c index ac455b4f..81aadae2 100644 --- a/src/cairo-win32-font.c +++ b/src/cairo-win32-font.c @@ -89,7 +89,7 @@ typedef struct { cairo_bool_t swap_y; double x_scale; double y_scale; - + /* The size of the design unit of the font */ int em_square; @@ -126,7 +126,7 @@ _compute_transform (cairo_win32_scaled_font_t *scaled_font, 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)) { scaled_font->preserve_axes = TRUE; scaled_font->x_scale = sc->yx; @@ -145,7 +145,7 @@ _compute_transform (cairo_win32_scaled_font_t *scaled_font, 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 * floor (scaled_font->y_scale + 0.5); } @@ -169,7 +169,7 @@ _compute_transform (cairo_win32_scaled_font_t *scaled_font, 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); @@ -179,14 +179,14 @@ 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 */ @@ -268,7 +268,7 @@ _win32_scaled_font_create (LOGFONTW *logfont, ASSERT_NOT_REACHED; } } - + f->em_square = 0; f->scaled_hfont = hfont; f->unscaled_hfont = NULL; @@ -297,7 +297,7 @@ _win32_scaled_font_set_world_transform (cairo_win32_scaled_font_t *scaled_font, HDC hdc) { XFORM xform; - + xform.eM11 = scaled_font->logical_to_device.xx; xform.eM21 = scaled_font->logical_to_device.xy; xform.eM12 = scaled_font->logical_to_device.yx; @@ -387,7 +387,7 @@ _win32_scaled_font_get_unscaled_hfont (cairo_win32_scaled_font_t *scaled_font, _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:GetOutlineTextMetrics"); return NULL; } - + otm = malloc (otm_size); if (!otm) return NULL; @@ -400,14 +400,14 @@ _win32_scaled_font_get_unscaled_hfont (cairo_win32_scaled_font_t *scaled_font, 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) { _cairo_win32_print_gdi_error ("_win32_scaled_font_get_unscaled_hfont:CreateIndirect"); @@ -518,7 +518,7 @@ _cairo_win32_scaled_font_create_toy (cairo_toy_font_face_t *toy_face, if (!logfont.lfFaceName) return CAIRO_STATUS_NO_MEMORY; - + scaled_font = _win32_scaled_font_create (&logfont, NULL, &toy_face->base, font_matrix, ctm, options); if (!scaled_font) @@ -570,7 +570,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, 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; @@ -580,13 +580,13 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, 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_STATUS_NO_MEMORY; goto FAIL1; } - + hdc = _get_global_font_dc (); if (!hdc) { status = CAIRO_STATUS_NO_MEMORY; @@ -596,7 +596,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); if (status) goto FAIL1; - + while (TRUE) { if (glyph_indices) { free (glyph_indices); @@ -606,7 +606,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, free (dx); dx = NULL; } - + glyph_indices = malloc (sizeof (WCHAR) * buffer_size); dx = malloc (sizeof (int) * buffer_size); if (!glyph_indices || !dx) { @@ -630,7 +630,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, break; /* Too small a buffer, try again */ - + buffer_size *= 1.5; if (buffer_size > INT_MAX) { status = CAIRO_STATUS_NO_MEMORY; @@ -647,7 +647,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, 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 ; @@ -662,12 +662,12 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font, free (glyph_indices); if (dx) free (dx); - + cairo_win32_scaled_font_done_font (&scaled_font->base); - + FAIL1: free (utf16); - + return status; } @@ -718,7 +718,7 @@ _cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font) 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; - + } _cairo_scaled_font_set_metrics (&scaled_font->base, &extents); @@ -780,7 +780,7 @@ _cairo_win32_scaled_font_init_glyph_metrics (cairo_win32_scaled_font_t *scaled_f 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. @@ -870,7 +870,7 @@ _cairo_win32_scaled_font_glyph_bbox (void *abstract_font, typedef struct { cairo_win32_scaled_font_t *scaled_font; HDC hdc; - + cairo_array_t glyphs; cairo_array_t dx; @@ -902,7 +902,7 @@ _flush_glyphs (cairo_glyph_state_t *state) 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, @@ -914,7 +914,7 @@ _flush_glyphs (cairo_glyph_state_t *state) dx_elements)) { return _cairo_win32_print_gdi_error ("_flush_glyphs"); } - + _cairo_array_truncate (&state->glyphs, 0); _cairo_array_truncate (&state->dx, 0); @@ -940,14 +940,14 @@ _add_glyph (cairo_glyph_state_t *state, 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; } - + dx = logical_x - state->last_x; status = _cairo_array_append (&state->dx, &dx); if (status) @@ -958,7 +958,7 @@ _add_glyph (cairo_glyph_state_t *state, state->last_x = logical_x; state->last_y = logical_y; - + status = _cairo_array_append (&state->glyphs, &glyph_index); if (status) return status; @@ -998,7 +998,7 @@ _draw_glyphs_on_surface (cairo_win32_surface_t *surface, 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++) { @@ -1013,10 +1013,10 @@ _draw_glyphs_on_surface (cairo_win32_surface_t *surface, cairo_win32_scaled_font_done_font (&scaled_font->base); FAIL1: RestoreDC (surface->dc, -1); - + return status; } - + /* Duplicate the green channel of a 4-channel mask in the alpha channel, then * invert the whole mask. */ @@ -1069,7 +1069,7 @@ _compute_a8_mask (cairo_win32_surface_t *mask_surface) for (i = 0; i < image24->height; i++) { uint32_t *p = (uint32_t *) (image24->data + i * image24->stride); unsigned char *q = (unsigned char *) (image8->data + i * image8->stride); - + for (j = 0; j < image24->width; j++) { *q = 255 - ((*p & 0x0000ff00) >> 8); p++; @@ -1140,7 +1140,7 @@ _cairo_win32_scaled_font_show_glyphs (void *abstract_font, * solid opaque color, we can just call ExtTextOut directly. */ COLORREF new_color; - + new_color = RGB (((int)solid_pattern->color.red_short) >> 8, ((int)solid_pattern->color.green_short) >> 8, ((int)solid_pattern->color.blue_short) >> 8); @@ -1148,7 +1148,7 @@ _cairo_win32_scaled_font_show_glyphs (void *abstract_font, status = _draw_glyphs_on_surface (surface, scaled_font, new_color, 0, 0, glyphs, num_glyphs); - + return status; } else { /* Otherwise, we need to draw using software fallbacks. We create a mask @@ -1187,12 +1187,12 @@ _cairo_win32_scaled_font_show_glyphs (void *abstract_font, _compute_argb32_mask_alpha (tmp_surface); else _invert_argb32_mask (tmp_surface); - + mask_surface = &tmp_surface->base; /* XXX: Hacky, should expose this in cairo_image_surface */ pixman_image_set_component_alpha (((cairo_image_surface_t *)tmp_surface->image)->pixman_image, TRUE); - + } else { mask_surface = _compute_a8_mask (tmp_surface); cairo_surface_destroy (&tmp_surface->base); @@ -1215,7 +1215,7 @@ _cairo_win32_scaled_font_show_glyphs (void *abstract_font, width, height); _cairo_pattern_fini (&mask.base); - + cairo_surface_destroy (mask_surface); return status; @@ -1251,18 +1251,18 @@ _cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); 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_STATUS_NO_MEMORY; goto CLEANUP_FONT; @@ -1275,13 +1275,13 @@ _cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font free (buffer); goto CLEANUP_FONT; } - + while (ptr < buffer + bytesGlyph) { TTPOLYGONHEADER *header = (TTPOLYGONHEADER *)ptr; unsigned char *endPoly = ptr + header->cb; - + ptr += sizeof (TTPOLYGONHEADER); - + _cairo_path_fixed_move_to (path, _cairo_fixed_from_FIXED (header->pfxStart.x), _cairo_fixed_from_FIXED (header->pfxStart.y)); @@ -1304,7 +1304,7 @@ _cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font _cairo_path_fixed_get_current_point (path, &p1x, &p1y); cx = _cairo_fixed_from_FIXED (points[i].x); cy = _cairo_fixed_from_FIXED (points[i].y); - + if (i + 1 == curve->cpfx - 1) { p2x = _cairo_fixed_from_FIXED (points[i + 1].x); p2y = _cairo_fixed_from_FIXED (points[i + 1].y); @@ -1314,12 +1314,12 @@ _cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font p2x = (cx + _cairo_fixed_from_FIXED (points[i + 1].x)) / 2; p2y = (cy + _cairo_fixed_from_FIXED (points[i + 1].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; - + _cairo_path_fixed_curve_to (path, c1x, c1y, c2x, c2y, p2x, p2y); } break; @@ -1434,10 +1434,10 @@ cairo_win32_font_face_create_for_logfontw (LOGFONTW *logfont) _cairo_error (CAIRO_STATUS_NO_MEMORY); return (cairo_font_face_t *)&_cairo_font_face_nil; } - + font_face->logfont = *logfont; font_face->hfont = NULL; - + _cairo_font_face_init (&font_face->base, &_cairo_win32_font_face_backend); return &font_face->base; @@ -1454,9 +1454,9 @@ cairo_win32_font_face_create_for_hfont (HFONT font) _cairo_error (CAIRO_STATUS_NO_MEMORY); return (cairo_font_face_t *)&_cairo_font_face_nil; } - + font_face->hfont = font; - + _cairo_font_face_init (&font_face->base, &_cairo_win32_font_face_backend); return &font_face->base; diff --git a/src/cairo-win32-private.h b/src/cairo-win32-private.h index 01fa2945..d74b84e2 100644 --- a/src/cairo-win32-private.h +++ b/src/cairo-win32-private.h @@ -52,7 +52,7 @@ typedef struct _cairo_win32_surface { cairo_surface_t base; cairo_format_t format; - + HDC dc; /* We create off-screen surfaces as DIBs */ @@ -66,9 +66,9 @@ typedef struct _cairo_win32_surface { * on some versions of Windows. */ HBITMAP saved_dc_bitmap; - + cairo_surface_t *image; - + cairo_rectangle_fixed_t clip_rect; HRGN saved_clip; diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c index fd7f9e0b..d6d109c4 100644 --- a/src/cairo-win32-surface.c +++ b/src/cairo-win32-surface.c @@ -75,7 +75,7 @@ _cairo_win32_print_gdi_error (const char *context) fprintf (stderr, "%s: Unknown GDI error", context); } else { fprintf (stderr, "%s: %s", context, (char *)lpMsgBuf); - + LocalFree (lpMsgBuf); } @@ -116,11 +116,11 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, case CAIRO_FORMAT_RGB24: num_palette = 0; break; - + case CAIRO_FORMAT_A8: num_palette = 256; break; - + case CAIRO_FORMAT_A1: num_palette = 2; break; @@ -141,7 +141,7 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, bitmap_info->bmiHeader.biXPelsPerMeter = 72. / 0.0254; /* unused here */ bitmap_info->bmiHeader.biYPelsPerMeter = 72. / 0.0254; /* unused here */ bitmap_info->bmiHeader.biPlanes = 1; - + switch (format) { /* We can't create real RGB24 bitmaps because something seems to * break if we do, especially if we don't set up an image @@ -155,7 +155,7 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, 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; @@ -168,9 +168,9 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, 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; @@ -204,7 +204,7 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, surface->bitmap); if (!surface->saved_dc_bitmap) goto FAIL; - + if (bitmap_info && num_palette > 2) free (bitmap_info); @@ -218,11 +218,11 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, 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; @@ -233,7 +233,7 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, FAIL: status = _cairo_win32_print_gdi_error ("_create_dc_and_bitmap"); - + if (bitmap_info && num_palette > 2) free (bitmap_info); @@ -241,17 +241,17 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, SelectObject (surface->dc, surface->saved_dc_bitmap); surface->saved_dc_bitmap = NULL; } - + if (surface->bitmap) { DeleteObject (surface->bitmap); surface->bitmap = NULL; } - + if (surface->dc) { DeleteDC (surface->dc); surface->dc = NULL; } - + return status; } @@ -284,9 +284,9 @@ _cairo_win32_surface_create_for_dc (HDC original_dc, status = CAIRO_STATUS_NO_MEMORY; goto FAIL; } - + surface->format = format; - + surface->clip_rect.x = 0; surface->clip_rect.y = 0; surface->clip_rect.width = width; @@ -375,7 +375,7 @@ _cairo_win32_surface_get_subimage (cairo_win32_surface_t *surface, height); if (local->base.status) return CAIRO_STATUS_NO_MEMORY; - + if (!BitBlt (local->dc, 0, 0, width, height, @@ -395,7 +395,7 @@ _cairo_win32_surface_get_subimage (cairo_win32_surface_t *surface, } *local_out = local; - + return CAIRO_STATUS_SUCCESS; FAIL: @@ -441,7 +441,7 @@ _cairo_win32_surface_release_source_image (void *abstract_surf void *image_extra) { cairo_win32_surface_t *local = image_extra; - + if (local) cairo_surface_destroy ((cairo_surface_t *)local); } @@ -489,14 +489,14 @@ _cairo_win32_surface_acquire_dest_image (void *abstract_surfa x2 = interest_rect->x + interest_rect->width; if (interest_rect->y + interest_rect->height < y2) y2 = interest_rect->y + interest_rect->height; - + if (x1 >= x2 || y1 >= y2) { *image_out = NULL; *image_extra = NULL; - + return CAIRO_STATUS_SUCCESS; } - + status = _cairo_win32_surface_get_subimage (abstract_surface, x1, y1, x2 - x1, y2 - y1, &local); @@ -505,7 +505,7 @@ _cairo_win32_surface_acquire_dest_image (void *abstract_surfa *image_out = (cairo_image_surface_t *)local->image; *image_extra = local; - + image_rect->x = x1; image_rect->y = y1; image_rect->width = x2 - x1; @@ -523,7 +523,7 @@ _cairo_win32_surface_release_dest_image (void *abstract_surfa { cairo_win32_surface_t *surface = abstract_surface; cairo_win32_surface_t *local = image_extra; - + if (!local) return; @@ -588,22 +588,22 @@ _composite_alpha_blend (cairo_win32_surface_t *dst, */ if (!alpha_blend_checked) { OSVERSIONINFO os; - + os.dwOSVersionInfoSize = sizeof (os); GetVersionEx (&os); - + /* If running on Win98, disable using AlphaBlend() * to avoid Win98 AlphaBlend() bug */ if (VER_PLATFORM_WIN32_WINDOWS != os.dwPlatformId || os.dwMajorVersion != 4 || os.dwMinorVersion != 10) { HMODULE msimg32_dll = LoadLibrary ("msimg32"); - + if (msimg32_dll != NULL) alpha_blend = (cairo_alpha_blend_func_t)GetProcAddress (msimg32_dll, "AlphaBlend"); } - + alpha_blend_checked = TRUE; } @@ -611,7 +611,7 @@ _composite_alpha_blend (cairo_win32_surface_t *dst, return CAIRO_INT_STATUS_UNSUPPORTED; if (GetDeviceCaps(dst->dc, SHADEBLENDCAPS) == SB_NONE) return CAIRO_INT_STATUS_UNSUPPORTED; - + blend_function.BlendOp = AC_SRC_OVER; blend_function.BlendFlags = 0; blend_function.SourceConstantAlpha = alpha; @@ -625,7 +625,7 @@ _composite_alpha_blend (cairo_win32_surface_t *dst, width, height, blend_function)) return _cairo_win32_print_gdi_error ("_cairo_win32_surface_composite"); - + return CAIRO_STATUS_SUCCESS; } @@ -671,7 +671,7 @@ _cairo_win32_surface_composite (cairo_operator_t op, if (src->base.backend != dst->base.backend) return CAIRO_INT_STATUS_UNSUPPORTED; - + integer_transform = _cairo_matrix_is_integer_translation (&pattern->matrix, &itx, &ity); if (!integer_transform) return CAIRO_INT_STATUS_UNSUPPORTED; @@ -706,7 +706,7 @@ _cairo_win32_surface_composite (cairo_operator_t op, if (alpha == 255 && (op == CAIRO_OPERATOR_SOURCE || (src->format == CAIRO_FORMAT_RGB24 && op == CAIRO_OPERATOR_OVER))) { - + if (!BitBlt (dst->dc, dst_x, dst_y, width, height, @@ -716,7 +716,7 @@ _cairo_win32_surface_composite (cairo_operator_t op, return _cairo_win32_print_gdi_error ("_cairo_win32_surface_composite"); return CAIRO_STATUS_SUCCESS; - + } else if ((src->format == CAIRO_FORMAT_RGB24 || src->format == CAIRO_FORMAT_ARGB32) && (dst->format == CAIRO_FORMAT_RGB24 || dst->format == CAIRO_FORMAT_ARGB32) && op == CAIRO_OPERATOR_OVER) { @@ -725,7 +725,7 @@ _cairo_win32_surface_composite (cairo_operator_t op, src_x, src_y, dst_x, dst_y, width, height); } - + return CAIRO_INT_STATUS_UNSUPPORTED; } @@ -747,13 +747,13 @@ categorize_solid_dest_operator (cairo_operator_t op, source = SOURCE_TRANSPARENT; else source = SOURCE_OTHER; - + switch (op) { case CAIRO_OPERATOR_CLEAR: /* 0 0 */ case CAIRO_OPERATOR_OUT: /* 1 - Ab 0 */ return DO_CLEAR; break; - + case CAIRO_OPERATOR_SOURCE: /* 1 0 */ case CAIRO_OPERATOR_IN: /* Ab 0 */ return DO_SOURCE; @@ -768,7 +768,7 @@ categorize_solid_dest_operator (cairo_operator_t op, else return DO_UNSUPPORTED; break; - + case CAIRO_OPERATOR_DEST_OUT: /* 0 1 - Aa */ case CAIRO_OPERATOR_XOR: /* 1 - Ab 1 - Aa */ if (source == SOURCE_SOLID) @@ -778,7 +778,7 @@ categorize_solid_dest_operator (cairo_operator_t op, else return DO_UNSUPPORTED; break; - + case CAIRO_OPERATOR_DEST: /* 0 1 */ case CAIRO_OPERATOR_DEST_OVER:/* 1 - Ab 1 */ case CAIRO_OPERATOR_SATURATE: /* min(1,(1-Ab)/Aa) 1 */ @@ -794,7 +794,7 @@ categorize_solid_dest_operator (cairo_operator_t op, else return DO_UNSUPPORTED; break; - + case CAIRO_OPERATOR_ADD: /* 1 1 */ if (source == SOURCE_TRANSPARENT) return DO_NOTHING; @@ -843,11 +843,11 @@ _cairo_win32_surface_fill_rectangles (void *abstract_surface, default: return CAIRO_INT_STATUS_UNSUPPORTED; } - + new_brush = CreateSolidBrush (new_color); if (!new_brush) return _cairo_win32_print_gdi_error ("_cairo_win32_surface_fill_rectangles"); - + for (i = 0; i < num_rects; i++) { RECT rect; @@ -861,14 +861,14 @@ _cairo_win32_surface_fill_rectangles (void *abstract_surface, } DeleteObject (new_brush); - + return CAIRO_STATUS_SUCCESS; FAIL: status = _cairo_win32_print_gdi_error ("_cairo_win32_surface_fill_rectangles"); - + DeleteObject (new_brush); - + return status; } @@ -901,7 +901,7 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface, return _cairo_win32_print_gdi_error ("_cairo_win32_surface_set_clip_region (reset)"); return CAIRO_STATUS_SUCCESS; - + } else { pixman_box16_t *boxes = pixman_region_rects (region); int num_boxes = pixman_region_num_rects (region); @@ -938,7 +938,7 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface, gdi_region = ExtCreateRegion (NULL, data_size, data); free (data); - + if (!gdi_region) return CAIRO_STATUS_NO_MEMORY; @@ -1143,11 +1143,11 @@ cairo_win32_surface_create (HDC hdc) surface->image = NULL; surface->format = format; - + surface->dc = hdc; surface->bitmap = NULL; surface->saved_dc_bitmap = NULL; - + surface->clip_rect.x = rect.left; surface->clip_rect.y = rect.top; surface->clip_rect.width = rect.right - rect.left; diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c index bfa3730f..648cdb64 100644 --- a/src/cairo-xcb-surface.c +++ b/src/cairo-xcb-surface.c @@ -277,7 +277,7 @@ _cairo_xcb_surface_create_similar (void *abstract_src, d.pixmap, src->drawable, width <= 0 ? 1 : width, height <= 0 ? 1 : height); - + surface = (cairo_xcb_surface_t *) cairo_xcb_surface_create_with_xrender_format (dpy, d, &xrender_format, @@ -402,7 +402,7 @@ _get_image_surface (cairo_xcb_surface_t *surface, rect.y = interest_rect->y; rect.width = interest_rect->width; rect.height = interest_rect->height; - + if (rect.x > x1) x1 = rect.x; if (rect.y > y1) @@ -670,7 +670,7 @@ _cairo_xcb_surface_clone_similar (void *abstract_surface, if (xcb_src->dpy == surface->dpy) { *clone_out = cairo_surface_reference (src); - + return CAIRO_STATUS_SUCCESS; } } else if (_cairo_surface_is_image (src)) { @@ -679,20 +679,20 @@ _cairo_xcb_surface_clone_similar (void *abstract_surface, if (surface->base.status) return surface->base.status; - + clone = (cairo_xcb_surface_t *) _cairo_xcb_surface_create_similar (surface, content, image_src->width, image_src->height); if (clone->base.status) return CAIRO_STATUS_NO_MEMORY; - + _draw_image_surface (clone, image_src, 0, 0); - + *clone_out = &clone->base; return CAIRO_STATUS_SUCCESS; } - + return CAIRO_INT_STATUS_UNSUPPORTED; } @@ -727,10 +727,10 @@ _cairo_xcb_surface_set_matrix (cairo_xcb_surface_t *surface, if (memcmp (&xtransform, &identity, sizeof (XCBRenderTRANSFORM)) == 0) return CAIRO_STATUS_SUCCESS; - + return CAIRO_INT_STATUS_UNSUPPORTED; } - + XCBRenderSetPictureTransform (surface->dpy, surface->picture, xtransform); return CAIRO_STATUS_SUCCESS; @@ -744,15 +744,15 @@ _cairo_xcb_surface_set_filter (cairo_xcb_surface_t *surface, if (!surface->picture.xid) return CAIRO_STATUS_SUCCESS; - + if (!CAIRO_SURFACE_RENDER_HAS_FILTERS (surface)) { if (filter == CAIRO_FILTER_FAST || filter == CAIRO_FILTER_NEAREST) return CAIRO_STATUS_SUCCESS; - + return CAIRO_INT_STATUS_UNSUPPORTED; } - + switch (filter) { case CAIRO_FILTER_FAST: render_filter = "fast"; @@ -803,7 +803,7 @@ _cairo_xcb_surface_set_attributes (cairo_xcb_surface_t *surface, status = _cairo_xcb_surface_set_matrix (surface, &attributes->matrix); if (status) return status; - + switch (attributes->extend) { case CAIRO_EXTEND_NONE: _cairo_xcb_surface_set_repeat (surface, 0); @@ -894,7 +894,7 @@ _cairo_xcb_surface_composite (cairo_operator_t op, &src_attr, &mask_attr); if (status) return status; - + status = _cairo_xcb_surface_set_attributes (src, &src_attr); if (status == CAIRO_STATUS_SUCCESS) { @@ -917,7 +917,7 @@ _cairo_xcb_surface_composite (cairo_operator_t op, else { static XCBRenderPICTURE maskpict = { 0 }; - + XCBRenderComposite (dst->dpy, _render_operator (op), src->picture, @@ -933,7 +933,7 @@ _cairo_xcb_surface_composite (cairo_operator_t op, if (mask) _cairo_pattern_release_surface (mask_pattern, &mask->base, &mask_attr); - + _cairo_pattern_release_surface (src_pattern, &src->base, &src_attr); return status; @@ -990,14 +990,14 @@ _cairo_xcb_surface_composite_trapezoids (cairo_operator_t op, if (!CAIRO_SURFACE_RENDER_HAS_TRAPEZOIDS (dst)) return CAIRO_INT_STATUS_UNSUPPORTED; - + status = _cairo_pattern_acquire_surface (pattern, &dst->base, src_x, src_y, width, height, (cairo_surface_t **) &src, &attributes); if (status) return status; - + if (traps[0].left.p1.y < traps[0].left.p2.y) { render_reference_x = _cairo_fixed_integer_floor (traps[0].left.p1.x); render_reference_y = _cairo_fixed_integer_floor (traps[0].left.p1.y); diff --git a/src/cairo-xlib-private.h b/src/cairo-xlib-private.h index 966a08d1..f319dcc7 100644 --- a/src/cairo-xlib-private.h +++ b/src/cairo-xlib-private.h @@ -40,11 +40,11 @@ typedef struct _cairo_xlib_screen_info cairo_xlib_screen_info_t; struct _cairo_xlib_screen_info { cairo_xlib_screen_info_t *next; - + Display *display; Screen *screen; cairo_bool_t has_render; - + cairo_font_options_t font_options; }; diff --git a/src/cairo-xlib-screen.c b/src/cairo-xlib-screen.c index 8ac6d89c..cbdb540d 100644 --- a/src/cairo-xlib-screen.c +++ b/src/cairo-xlib-screen.c @@ -65,7 +65,7 @@ static int parse_boolean (const char *v) { char c0, c1; - + c0 = *v; if (c0 == 't' || c0 == 'T' || c0 == 'y' || c0 == 'Y' || c0 == '1') return 1; @@ -79,7 +79,7 @@ parse_boolean (const char *v) if (c1 == 'f' || c1 == 'F') return 0; } - + return -1; } @@ -90,7 +90,7 @@ get_boolean_default (Display *dpy, { char *v; int i; - + v = XGetDefault (dpy, "Xft", option); if (v) { i = parse_boolean (v); @@ -99,7 +99,7 @@ get_boolean_default (Display *dpy, return TRUE; } } - + return FALSE; } @@ -110,17 +110,17 @@ get_integer_default (Display *dpy, { int i; char *v, *e; - + v = XGetDefault (dpy, "Xft", option); if (v) { if (FcNameConstant ((FcChar8 *) v, value)) return TRUE; - + i = strtol (v, &e, 0); if (e != v) return TRUE; } - + return FALSE; } @@ -145,23 +145,23 @@ _cairo_xlib_init_screen_font_options (cairo_xlib_screen_info_t *info) if (!get_boolean_default (info->display, "antialias", &xft_antialias)) xft_antialias = TRUE; - + if (!get_boolean_default (info->display, "hinting", &xft_hinting)) xft_hinting = TRUE; - + if (!get_integer_default (info->display, "hintstyle", &xft_hintstyle)) xft_hintstyle = FC_HINT_FULL; if (!get_integer_default (info->display, "rgba", &xft_rgba)) { xft_rgba = FC_RGBA_UNKNOWN; - + #if RENDER_MAJOR > 0 || RENDER_MINOR >= 6 if (info->has_render) { int render_order = XRenderQuerySubpixelOrder (info->display, XScreenNumberOfScreen (info->screen)); - + switch (render_order) { default: @@ -208,7 +208,7 @@ _cairo_xlib_init_screen_font_options (cairo_xlib_screen_info_t *info) } else { hint_style = CAIRO_HINT_STYLE_NONE; } - + switch (xft_rgba) { case FC_RGBA_RGB: subpixel_order = CAIRO_SUBPIXEL_ORDER_RGB; @@ -352,7 +352,7 @@ _cairo_xlib_screen_info_get (Display *dpy, Screen *screen) info = NULL; goto out; } - + XESetCloseDisplay (dpy, codes->extension, _cairo_xlib_close_display); } @@ -360,15 +360,15 @@ _cairo_xlib_screen_info_get (Display *dpy, Screen *screen) info->screen = screen; info->has_render = (XRenderQueryExtension (dpy, &event_base, &error_base) && (XRenderFindVisualFormat (dpy, DefaultVisual (dpy, DefaultScreen (dpy))) != 0)); - + _cairo_xlib_init_screen_font_options (info); - + info->next = _cairo_xlib_screen_list; _cairo_xlib_screen_list = info; out: CAIRO_MUTEX_UNLOCK (_xlib_screen_mutex); - + return info; } diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c index 0a11611f..5d22ae87 100644 --- a/src/cairo-xlib-surface.c +++ b/src/cairo-xlib-surface.c @@ -86,13 +86,13 @@ struct _cairo_xlib_surface { Display *dpy; cairo_xlib_screen_info_t *screen_info; - + GC gc; Drawable drawable; Screen *screen; cairo_bool_t owns_pixmap; Visual *visual; - + int use_pixmap; int render_major; @@ -225,11 +225,11 @@ _cairo_xlib_surface_create_similar_with_format (void *abstract_src, if (!CAIRO_SURFACE_RENDER_HAS_COMPOSITE(src)) { return cairo_image_surface_create (format, width, height); } - + pix = XCreatePixmap (dpy, RootWindowOfScreen (src->screen), width <= 0 ? 1 : width, height <= 0 ? 1 : height, depth); - + surface = (cairo_xlib_surface_t *) cairo_xlib_surface_create_with_xrender_format (dpy, pix, src->screen, xrender_format, @@ -238,7 +238,7 @@ _cairo_xlib_surface_create_similar_with_format (void *abstract_src, _cairo_error (CAIRO_STATUS_NO_MEMORY); return (cairo_surface_t*) &_cairo_surface_nil; } - + surface->owns_pixmap = TRUE; return &surface->base; @@ -315,7 +315,7 @@ _cairo_xlib_surface_create_similar (void *abstract_src, _cairo_error (CAIRO_STATUS_NO_MEMORY); return (cairo_surface_t*) &_cairo_surface_nil; } - + surface->owns_pixmap = TRUE; return &surface->base; @@ -327,7 +327,7 @@ _cairo_xlib_surface_finish (void *abstract_surface) cairo_xlib_surface_t *surface = abstract_surface; if (surface->dst_picture != None) XRenderFreePicture (surface->dpy, surface->dst_picture); - + if (surface->src_picture != None) XRenderFreePicture (surface->dpy, surface->src_picture); @@ -440,14 +440,14 @@ _swap_ximage_bits (XImage *ximage) for (j = ximage->height; j; j--) { char *p = line; - + for (i = line_bytes; i; i--) { char b = *p; b = ((b << 1) & 0xaa) | ((b >> 1) & 0x55); b = ((b << 2) & 0xcc) | ((b >> 2) & 0x33); b = ((b << 4) & 0xf0) | ((b >> 4) & 0x0f); *p = b; - + p++; } @@ -467,7 +467,7 @@ _swap_ximage_to_native (XImage *ximage) if (ximage->bitmap_bit_order == ximage->byte_order) return; } - + if (ximage->byte_order == native_byte_order) return; @@ -521,12 +521,12 @@ _get_image_surface (cairo_xlib_surface_t *surface, if (interest_rect) { cairo_rectangle_fixed_t rect; - + rect.x = interest_rect->x; rect.y = interest_rect->y; rect.width = interest_rect->width; rect.height = interest_rect->height; - + if (rect.x > x1) x1 = rect.x; if (rect.y > y1) @@ -556,7 +556,7 @@ _get_image_surface (cairo_xlib_surface_t *surface, cairo_xlib_error_func_t old_handler; old_handler = XSetErrorHandler (_noop_error_handler); - + ximage = XGetImage (surface->dpy, surface->drawable, x1, y1, @@ -564,7 +564,7 @@ _get_image_surface (cairo_xlib_surface_t *surface, AllPlanes, ZPixmap); XSetErrorHandler (old_handler); - + /* If we get an error, the surface must have been a window, * so retry with the safe code path. */ @@ -576,7 +576,7 @@ _get_image_surface (cairo_xlib_surface_t *surface, surface->use_pixmap--; ximage = NULL; } - + if (!ximage) { @@ -594,20 +594,20 @@ _get_image_surface (cairo_xlib_surface_t *surface, XCopyArea (surface->dpy, surface->drawable, pixmap, surface->gc, x1, y1, x2 - x1, y2 - y1, 0, 0); - + ximage = XGetImage (surface->dpy, pixmap, 0, 0, x2 - x1, y2 - y1, AllPlanes, ZPixmap); - + XFreePixmap (surface->dpy, pixmap); } if (!ximage) return CAIRO_STATUS_NO_MEMORY; _swap_ximage_to_native (ximage); - + /* * Compute the pixel format masks from either a visual or a * XRenderFormat, failing we assume the drawable is an @@ -675,7 +675,7 @@ _get_image_surface (cairo_xlib_surface_t *surface, _cairo_image_surface_assume_ownership_of_data (image); ximage->data = NULL; XDestroyImage (ximage); - + *image_out = image; return CAIRO_STATUS_SUCCESS; @@ -693,7 +693,7 @@ _cairo_xlib_surface_ensure_src_picture (cairo_xlib_surface_t *surface) surface->xrender_format, 0, NULL); } - + static void _cairo_xlib_surface_set_picture_clip_rects (cairo_xlib_surface_t *surface) { @@ -713,7 +713,7 @@ _cairo_xlib_surface_set_gc_clip_rects (cairo_xlib_surface_t *surface) surface->clip_rects, surface->num_clip_rects, YXSorted); } - + static void _cairo_xlib_surface_ensure_dst_picture (cairo_xlib_surface_t *surface) { @@ -724,9 +724,9 @@ _cairo_xlib_surface_ensure_dst_picture (cairo_xlib_surface_t *surface) 0, NULL); _cairo_xlib_surface_set_picture_clip_rects (surface); } - + } - + static void _cairo_xlib_surface_ensure_gc (cairo_xlib_surface_t *surface) { @@ -750,10 +750,10 @@ _draw_image_surface (cairo_xlib_surface_t *surface, XImage ximage; int bpp, alpha, red, green, blue; int native_byte_order = _native_byte_order_lsb () ? LSBFirst : MSBFirst; - + pixman_format_get_masks (pixman_image_get_format (image->pixman_image), &bpp, &alpha, &red, &green, &blue); - + ximage.width = image->width; ximage.height = image->height; ximage.format = ZPixmap; @@ -771,7 +771,7 @@ _draw_image_surface (cairo_xlib_surface_t *surface, ximage.xoffset = 0; XInitImage (&ximage); - + _cairo_xlib_surface_ensure_gc (surface); XPutImage(surface->dpy, surface->drawable, surface->gc, &ximage, 0, 0, dst_x, dst_y, @@ -825,7 +825,7 @@ _cairo_xlib_surface_acquire_dest_image (void *abstract_surfac *image_out = image; *image_extra = NULL; - + return CAIRO_STATUS_SUCCESS; } @@ -869,25 +869,25 @@ _cairo_xlib_surface_clone_similar (void *abstract_surface, if (_cairo_xlib_surface_same_screen (surface, xlib_src)) { *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; - + clone = (cairo_xlib_surface_t *) _cairo_xlib_surface_create_similar_with_format (surface, image_src->format, image_src->width, image_src->height); if (clone->base.status) return CAIRO_STATUS_NO_MEMORY; - + _draw_image_surface (clone, image_src, 0, 0); - + *clone_out = &clone->base; return CAIRO_STATUS_SUCCESS; } - + return CAIRO_INT_STATUS_UNSUPPORTED; } @@ -899,7 +899,7 @@ _cairo_xlib_surface_set_matrix (cairo_xlib_surface_t *surface, if (!surface->src_picture) return CAIRO_STATUS_SUCCESS; - + xtransform.matrix[0][0] = _cairo_fixed_from_double (matrix->xx); xtransform.matrix[0][1] = _cairo_fixed_from_double (matrix->xy); xtransform.matrix[0][2] = _cairo_fixed_from_double (matrix->x0); @@ -922,7 +922,7 @@ _cairo_xlib_surface_set_matrix (cairo_xlib_surface_t *surface, if (memcmp (&xtransform, &identity, sizeof (XTransform)) == 0) return CAIRO_STATUS_SUCCESS; - + return CAIRO_INT_STATUS_UNSUPPORTED; } @@ -944,10 +944,10 @@ _cairo_xlib_surface_set_filter (cairo_xlib_surface_t *surface, { if (filter == CAIRO_FILTER_FAST || filter == CAIRO_FILTER_NEAREST) return CAIRO_STATUS_SUCCESS; - + return CAIRO_INT_STATUS_UNSUPPORTED; } - + switch (filter) { case CAIRO_FILTER_FAST: render_filter = FilterFast; @@ -983,7 +983,7 @@ _cairo_xlib_surface_set_repeat (cairo_xlib_surface_t *surface, int repeat) if (!surface->src_picture) return CAIRO_STATUS_SUCCESS; - + mask = CPRepeat; pa.repeat = repeat; @@ -1003,7 +1003,7 @@ _cairo_xlib_surface_set_attributes (cairo_xlib_surface_t *surface, status = _cairo_xlib_surface_set_matrix (surface, &attributes->matrix); if (status) return status; - + switch (attributes->extend) { case CAIRO_EXTEND_NONE: _cairo_xlib_surface_set_repeat (surface, 0); @@ -1034,7 +1034,7 @@ _surfaces_compatible (cairo_xlib_surface_t *dst, /* same screen */ if (!_cairo_xlib_surface_same_screen (dst, src)) return FALSE; - + /* same depth (for core) */ if (src->depth != dst->depth) return FALSE; @@ -1042,7 +1042,7 @@ _surfaces_compatible (cairo_xlib_surface_t *dst, /* if Render is supported, match picture formats */ if (src->xrender_format != NULL && src->xrender_format == dst->xrender_format) return TRUE; - + /* Without Render, match visuals instead */ if (src->visual == dst->visual) return TRUE; @@ -1060,7 +1060,7 @@ _surface_has_alpha (cairo_xlib_surface_t *surface) else return FALSE; } else { - + /* In the no-render case, we never have alpha */ return FALSE; } @@ -1117,7 +1117,7 @@ _categorize_composite_operation (cairo_xlib_surface_t *dst, cairo_operator_t op, cairo_pattern_t *src_pattern, cairo_bool_t have_mask) - + { if (!dst->buggy_repeat) return DO_RENDER; @@ -1125,7 +1125,7 @@ _categorize_composite_operation (cairo_xlib_surface_t *dst, if (src_pattern->type == CAIRO_PATTERN_TYPE_SURFACE) { cairo_surface_pattern_t *surface_pattern = (cairo_surface_pattern_t *)src_pattern; - + if (_cairo_matrix_is_integer_translation (&src_pattern->matrix, NULL, NULL) && src_pattern->extend == CAIRO_EXTEND_REPEAT) { @@ -1143,7 +1143,7 @@ _categorize_composite_operation (cairo_xlib_surface_t *dst, if (op == CAIRO_OPERATOR_OVER && _surface_has_alpha (src)) return DO_UNSUPPORTED; - + /* If these are on the same screen but otherwise incompatible, * make a copy as core drawing can't cross depths and doesn't * work rightacross visuals of the same depth @@ -1195,7 +1195,7 @@ _recategorize_composite_operation (cairo_xlib_surface_t *dst, if (!dst->buggy_repeat) return DO_RENDER; - + if (is_integer_translation && src_attr->extend == CAIRO_EXTEND_REPEAT && (src->width != 1 || src->height != 1)) @@ -1206,10 +1206,10 @@ _recategorize_composite_operation (cairo_xlib_surface_t *dst, { return DO_XTILE; } - + return DO_UNSUPPORTED; } - + return DO_RENDER; } @@ -1282,7 +1282,7 @@ _cairo_xlib_surface_composite (cairo_operator_t op, mask_pattern != NULL); if (operation == DO_UNSUPPORTED) return CAIRO_INT_STATUS_UNSUPPORTED; - + status = _cairo_pattern_acquire_surfaces (src_pattern, mask_pattern, &dst->base, src_x, src_y, @@ -1293,14 +1293,14 @@ _cairo_xlib_surface_composite (cairo_operator_t op, &src_attr, &mask_attr); if (status) return status; - + operation = _recategorize_composite_operation (dst, op, src, &src_attr, mask_pattern != NULL); if (operation == DO_UNSUPPORTED) { status = CAIRO_INT_STATUS_UNSUPPORTED; goto FAIL; } - + status = _cairo_xlib_surface_set_attributes (src, &src_attr); if (status) goto FAIL; @@ -1313,7 +1313,7 @@ _cairo_xlib_surface_composite (cairo_operator_t op, status = _cairo_xlib_surface_set_attributes (mask, &mask_attr); if (status) goto FAIL; - + XRenderComposite (dst->dpy, _render_operator (op), src->src_picture, @@ -1386,12 +1386,12 @@ _cairo_xlib_surface_composite (cairo_operator_t op, src_x, src_y, mask_x, mask_y, dst_x, dst_y, width, height); - + FAIL: if (mask) _cairo_pattern_release_surface (mask_pattern, &mask->base, &mask_attr); - + _cairo_pattern_release_surface (src_pattern, &src->base, &src_attr); return status; @@ -1447,14 +1447,14 @@ _create_a8_picture (cairo_xlib_surface_t *surface, pa.repeat = TRUE; mask = CPRepeat; } - + picture = XRenderCreatePicture (surface->dpy, pixmap, XRenderFindStandardFormat (surface->dpy, PictStandardA8), mask, &pa); XRenderFillRectangle (surface->dpy, PictOpSrc, picture, color, 0, 0, width, height); XFreePixmap (surface->dpy, pixmap); - + return picture; } @@ -1509,7 +1509,7 @@ _create_trapezoid_mask (cairo_xlib_surface_t *dst, pict_format, 0, 0, offset_traps, num_traps); - + XRenderFreePicture (dst->dpy, solid_picture); free (offset_traps); @@ -1545,7 +1545,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op, operation = _categorize_composite_operation (dst, op, pattern, TRUE); if (operation == DO_UNSUPPORTED) return CAIRO_INT_STATUS_UNSUPPORTED; - + status = _cairo_pattern_acquire_surface (pattern, &dst->base, src_x, src_y, width, height, (cairo_surface_t **) &src, @@ -1567,7 +1567,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op, pict_format = XRenderFindStandardFormat (dst->dpy, PictStandardA8); break; } - + if (traps[0].left.p1.y < traps[0].left.p2.y) { render_reference_x = _cairo_fixed_integer_floor (traps[0].left.p1.x); render_reference_y = _cairo_fixed_integer_floor (traps[0].left.p1.y); @@ -1612,9 +1612,9 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op, 0, 0, dst_x, dst_y, width, height); - + XRenderFreePicture (dst->dpy, mask_picture); - + status = _cairo_surface_composite_shape_fixup_unbounded (&dst->base, &attributes, src->width, src->height, width, height, @@ -1622,7 +1622,7 @@ _cairo_xlib_surface_composite_trapezoids (cairo_operator_t op, 0, 0, dst_x, dst_y, width, height); - + } else { /* XXX: The XTrapezoid cast is evil and needs to go away somehow. */ XRenderCompositeTrapezoids (dst->dpy, @@ -1657,7 +1657,7 @@ _cairo_xlib_surface_set_clip_region (void *abstract_surface, if (region == NULL) { if (surface->gc) XSetClipMask (surface->dpy, surface->gc, None); - + if (surface->xrender_format && surface->dst_picture) { XRenderPictureAttributes pa; pa.clip_mask = None; @@ -1668,7 +1668,7 @@ _cairo_xlib_surface_set_clip_region (void *abstract_surface, pixman_box16_t *boxes; XRectangle *rects = NULL; int n_boxes, i; - + n_boxes = pixman_region_num_rects (region); if (n_boxes > 0) { rects = malloc (sizeof(XRectangle) * n_boxes); @@ -1679,7 +1679,7 @@ _cairo_xlib_surface_set_clip_region (void *abstract_surface, } boxes = pixman_region_rects (region); - + for (i = 0; i < n_boxes; i++) { rects[i].x = boxes[i].x1; rects[i].y = boxes[i].y1; @@ -1697,7 +1697,7 @@ _cairo_xlib_surface_set_clip_region (void *abstract_surface, if (surface->dst_picture) _cairo_xlib_surface_set_picture_clip_rects (surface); } - + return CAIRO_STATUS_SUCCESS; } @@ -1721,7 +1721,7 @@ _cairo_xlib_surface_get_font_options (void *abstract_surface, cairo_font_options_t *options) { cairo_xlib_surface_t *surface = abstract_surface; - + *options = surface->screen_info->font_options; } @@ -1862,7 +1862,7 @@ _cairo_xlib_surface_create_internal (Display *dpy, surface->use_pixmap = 0; surface->width = width; surface->height = height; - + surface->buggy_repeat = FALSE; if (strstr (ServerVendor (dpy), "X.Org") != NULL) { if (VendorRelease (dpy) <= 60802000) @@ -1942,7 +1942,7 @@ cairo_xlib_surface_create (Display *dpy, _cairo_error (CAIRO_STATUS_INVALID_VISUAL); return (cairo_surface_t*) &_cairo_surface_nil; } - + return _cairo_xlib_surface_create_internal (dpy, drawable, screen, visual, NULL, width, height, 0); } @@ -2065,17 +2065,17 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface, /* XXX: and what about this case? */ if (surface->owns_pixmap) return; - + if (surface->drawable != drawable) { if (surface->dst_picture) XRenderFreePicture (surface->dpy, surface->dst_picture); - + if (surface->src_picture) XRenderFreePicture (surface->dpy, surface->src_picture); - + surface->dst_picture = None; surface->src_picture = None; - + surface->drawable = drawable; } surface->width = width; @@ -2297,7 +2297,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy, glyph_info.yOff = 0; data = glyph_surface->data; - + /* flip formats around */ switch (scaled_glyph->surface->format) { case CAIRO_FORMAT_A1: @@ -2306,7 +2306,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy, int c = glyph_surface->stride * glyph_surface->height; unsigned char *d; unsigned char *new, *n; - + new = malloc (c); if (!new) { status = CAIRO_STATUS_NO_MEMORY; @@ -2332,7 +2332,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy, int c = glyph_surface->stride * glyph_surface->height; unsigned char *d; unsigned char *new, *n; - + new = malloc (c); if (new == NULL) { status = CAIRO_STATUS_NO_MEMORY; @@ -2360,7 +2360,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy, /* XXX assume X server wants pixman padding. Xft assumes this as well */ glyph_index = _cairo_scaled_glyph_index (scaled_glyph); - + XRenderAddGlyphs (dpy, font_private->glyphset, &glyph_index, &(glyph_info), 1, (char *) data, @@ -2368,7 +2368,7 @@ _cairo_xlib_surface_add_glyph (Display *dpy, if (data != glyph_surface->data) free (data); - + BAIL: if (glyph_surface != scaled_glyph->surface) cairo_surface_destroy (&glyph_surface->base); diff --git a/src/cairo.c b/src/cairo.c index e9a0f33a..05f3ee94 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -227,7 +227,7 @@ cairo_reference (cairo_t *cr) return cr; assert (cr->ref_count > 0); - + cr->ref_count++; return cr; @@ -251,7 +251,7 @@ cairo_destroy (cairo_t *cr) return; assert (cr->ref_count > 0); - + cr->ref_count--; if (cr->ref_count) return; @@ -1285,7 +1285,7 @@ cairo_curve_to (cairo_t *cr, cairo_fixed_t x1_fixed, y1_fixed; cairo_fixed_t x2_fixed, y2_fixed; cairo_fixed_t x3_fixed, y3_fixed; - + if (cr->status) return; @@ -1680,7 +1680,7 @@ cairo_paint_with_alpha (cairo_t *cr, { cairo_color_t color; cairo_pattern_union_t pattern; - + if (cr->status) return; @@ -1724,7 +1724,7 @@ cairo_mask (cairo_t *cr, _cairo_set_error (cr, CAIRO_STATUS_NULL_POINTER); return; } - + if (pattern->status) { _cairo_set_error (cr, pattern->status); return; @@ -1765,7 +1765,7 @@ cairo_mask_surface (cairo_t *cr, cairo_pattern_set_matrix (pattern, &matrix); cairo_mask (cr, pattern); - + cairo_pattern_destroy (pattern); } @@ -1918,7 +1918,7 @@ cairo_stroke_extents (cairo_t *cr, { if (cr->status) return; - + cr->status = _cairo_gstate_stroke_extents (cr->gstate, &cr->path, x1, y1, x2, y2); @@ -1932,7 +1932,7 @@ cairo_fill_extents (cairo_t *cr, { if (cr->status) return; - + cr->status = _cairo_gstate_fill_extents (cr->gstate, &cr->path, x1, y1, x2, y2); @@ -2325,7 +2325,7 @@ cairo_text_extents (cairo_t *cr, _cairo_set_error (cr, cr->status); return; } - + cr->status = _cairo_gstate_glyph_extents (cr->gstate, glyphs, num_glyphs, extents); if (glyphs) free (glyphs); diff --git a/src/cairo.h b/src/cairo.h index 387501cb..9fa44dc4 100644 --- a/src/cairo.h +++ b/src/cairo.h @@ -726,7 +726,7 @@ typedef enum _cairo_font_slant { CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_SLANT_OBLIQUE } cairo_font_slant_t; - + typedef enum _cairo_font_weight { CAIRO_FONT_WEIGHT_NORMAL, CAIRO_FONT_WEIGHT_BOLD @@ -839,7 +839,7 @@ cairo_font_options_set_subpixel_order (cairo_font_options_t *options, cairo_subpixel_order_t subpixel_order); cairo_public cairo_subpixel_order_t cairo_font_options_get_subpixel_order (const cairo_font_options_t *options); - + cairo_public void cairo_font_options_set_hint_style (cairo_font_options_t *options, cairo_hint_style_t hint_style); @@ -1413,7 +1413,7 @@ cairo_pattern_reference (cairo_pattern_t *pattern); cairo_public void cairo_pattern_destroy (cairo_pattern_t *pattern); - + cairo_public cairo_status_t cairo_pattern_status (cairo_pattern_t *pattern); @@ -1507,7 +1507,7 @@ typedef enum _cairo_filter { CAIRO_FILTER_BILINEAR, CAIRO_FILTER_GAUSSIAN } cairo_filter_t; - + cairo_public void cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter); diff --git a/src/cairoint.h b/src/cairoint.h index cebaa212..4d691789 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -451,18 +451,18 @@ struct _cairo_scaled_font { /* useful bits for _cairo_scaled_font_nil */ cairo_status_t status; int ref_count; - + /* hash key members */ cairo_font_face_t *font_face; /* may be NULL */ cairo_matrix_t font_matrix; /* font space => user space */ cairo_matrix_t ctm; /* user space => device space */ cairo_font_options_t options; - + /* "live" scaled_font members */ cairo_matrix_t scale; /* font space => device space */ cairo_font_extents_t extents; /* user space */ cairo_cache_t *glyphs; /* glyph index -> cairo_scaled_glyph_t */ - + /* * One surface backend may store data in each glyph. * Whichever surface manages to store its pointer here @@ -470,7 +470,7 @@ struct _cairo_scaled_font { */ const cairo_surface_backend_t *surface_backend; void *surface_private; - + /* font backend managing this scaled font */ const cairo_scaled_font_backend_t *backend; }; @@ -549,7 +549,7 @@ struct _cairo_scaled_font_backend { const char *utf8, cairo_glyph_t **glyphs, int *num_glyphs); - + unsigned long (*ucs4_to_index) (void *scaled_font, uint32_t ucs4); @@ -566,7 +566,7 @@ struct _cairo_scaled_font_backend { unsigned int height, const cairo_glyph_t *glyphs, int num_glyphs); - + }; struct _cairo_font_face_backend { @@ -655,7 +655,7 @@ struct _cairo_surface_backend { (*clone_similar) (void *surface, cairo_surface_t *src, cairo_surface_t **clone_out); - + /* XXX: dst should be the first argument for consistency */ cairo_int_status_t (*composite) (cairo_operator_t op, @@ -893,7 +893,7 @@ struct _cairo_image_surface { unsigned char *data; cairo_bool_t owns_data; cairo_bool_t has_clip; - + int width; int height; @@ -951,26 +951,26 @@ extern const cairo_private cairo_solid_pattern_t cairo_pattern_nil; typedef struct _cairo_surface_pattern { cairo_pattern_t base; - + cairo_surface_t *surface; } cairo_surface_pattern_t; typedef struct _cairo_gradient_pattern { cairo_pattern_t base; - + pixman_gradient_stop_t *stops; int n_stops; } cairo_gradient_pattern_t; typedef struct _cairo_linear_pattern { cairo_gradient_pattern_t base; - + pixman_linear_gradient_t gradient; } cairo_linear_pattern_t; typedef struct _cairo_radial_pattern { cairo_gradient_pattern_t base; - + pixman_radial_gradient_t gradient; } cairo_radial_pattern_t; @@ -983,7 +983,7 @@ typedef union { typedef union { cairo_pattern_t base; - + cairo_solid_pattern_t solid; cairo_surface_pattern_t surface; cairo_gradient_pattern_union_t gradient; @@ -1272,7 +1272,7 @@ _cairo_gstate_set_font_size (cairo_gstate_t *gstate, cairo_private void _cairo_gstate_get_font_matrix (cairo_gstate_t *gstate, cairo_matrix_t *matrix); - + cairo_private cairo_status_t _cairo_gstate_set_font_matrix (cairo_gstate_t *gstate, const cairo_matrix_t *matrix); @@ -1280,7 +1280,7 @@ _cairo_gstate_set_font_matrix (cairo_gstate_t *gstate, cairo_private void _cairo_gstate_get_font_options (cairo_gstate_t *gstate, cairo_font_options_t *options); - + cairo_private cairo_status_t _cairo_gstate_set_font_options (cairo_gstate_t *gstate, const cairo_font_options_t *options); @@ -1727,7 +1727,7 @@ _cairo_surface_show_glyphs (cairo_surface_t *surface, const cairo_glyph_t *glyphs, int num_glyphs, cairo_scaled_font_t *scaled_font); - + cairo_private cairo_status_t _cairo_surface_composite_trapezoids (cairo_operator_t op, cairo_pattern_t *pattern, @@ -1771,7 +1771,7 @@ _cairo_surface_release_dest_image (cairo_surface_t *surface, cairo_image_surface_t *image, cairo_rectangle_fixed_t *image_rect, void *image_extra); - + cairo_private cairo_status_t _cairo_surface_clone_similar (cairo_surface_t *surface, cairo_surface_t *src, diff --git a/src/test-fallback-surface.c b/src/test-fallback-surface.c index 1504aa7f..60c77499 100644 --- a/src/test-fallback-surface.c +++ b/src/test-fallback-surface.c @@ -108,7 +108,7 @@ _test_fallback_surface_finish (void *abstract_surface) test_fallback_surface_t *surface = abstract_surface; cairo_surface_destroy (surface->backing); - + return CAIRO_STATUS_SUCCESS; } @@ -142,7 +142,7 @@ _test_fallback_surface_acquire_dest_image (void *abstract_surface, void **image_extra) { test_fallback_surface_t *surface = abstract_surface; - + return _cairo_surface_acquire_dest_image (surface->backing, interest_rect, image_out, diff --git a/src/test-meta-surface.c b/src/test-meta-surface.c index ade71055..541853cc 100644 --- a/src/test-meta-surface.c +++ b/src/test-meta-surface.c @@ -110,7 +110,7 @@ _test_meta_surface_finish (void *abstract_surface) cairo_surface_destroy (surface->meta); cairo_surface_destroy (surface->image); - + return CAIRO_STATUS_SUCCESS; } |