summaryrefslogtreecommitdiff
path: root/src/cairo-win32-font.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-win32-font.c')
-rw-r--r--src/cairo-win32-font.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c
index 78b3ca212..eef2b4e72 100644
--- a/src/cairo-win32-font.c
+++ b/src/cairo-win32-font.c
@@ -104,6 +104,8 @@ static void
_compute_transform (cairo_win32_scaled_font_t *scaled_font,
cairo_matrix_t *sc)
{
+ cairo_status_t status;
+
if (NEARLY_ZERO (sc->yx) && NEARLY_ZERO (sc->xy)) {
scaled_font->preserve_axes = TRUE;
scaled_font->x_scale = sc->xx;
@@ -154,8 +156,10 @@ _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;
- if (!CAIRO_OK (cairo_matrix_invert (&scaled_font->device_to_logical)))
- cairo_matrix_init_identity (&scaled_font->device_to_logical);
+
+ status = cairo_matrix_invert (&scaled_font->device_to_logical);
+ if (status)
+ cairo_matrix_init_identity (&scaled_font->device_to_logical);
}
static BYTE
@@ -194,8 +198,9 @@ _get_system_quality (void)
}
return ANTIALIASED_QUALITY;
- } else
+ } else {
return DEFAULT_QUALITY;
+ }
}
static cairo_scaled_font_t *
@@ -367,7 +372,7 @@ _cairo_win32_scaled_font_select_unscaled_font (cairo_scaled_font_t *scaled_font,
return _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_select_unscaled_font");
status = _win32_scaled_font_set_identity_transform (hdc);
- if (!CAIRO_OK (status)) {
+ if (status) {
SelectObject (hdc, old_hfont);
return status;
}
@@ -399,7 +404,7 @@ _cairo_win32_scaled_font_create (const char *family,
cairo_status_t status;
status = _cairo_utf8_to_utf16 (family, -1, &face_name, &face_name_len);
- if (!CAIRO_OK (status))
+ if (status)
return status;
if (face_name_len > LF_FACESIZE - 1) {
@@ -465,6 +470,9 @@ _cairo_win32_scaled_font_destroy (void *abstract_font)
{
cairo_win32_scaled_font_t *scaled_font = abstract_font;
+ if (scaled_font == NULL)
+ return;
+
if (scaled_font->scaled_hfont)
DeleteObject (scaled_font->scaled_hfont);
@@ -496,7 +504,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font,
HDC hdc = NULL;
status = _cairo_utf8_to_utf16 (utf8, -1, &utf16, &n16);
- if (!CAIRO_OK (status))
+ if (status)
return status;
gcp_results.lStructSize = sizeof (GCP_RESULTS);
@@ -518,7 +526,7 @@ _cairo_win32_scaled_font_text_to_glyphs (void *abstract_font,
}
status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc);
- if (!CAIRO_OK (status))
+ if (status)
goto FAIL1;
while (TRUE) {
@@ -610,7 +618,7 @@ _cairo_win32_scaled_font_font_extents (void *abstract_font,
* from the GDI in logical space, then convert back to font space
*/
status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc);
- if (!CAIRO_OK (status))
+ if (status)
return status;
GetTextMetrics (hdc, &metrics);
cairo_win32_scaled_font_done_font (&scaled_font->base);
@@ -629,7 +637,7 @@ _cairo_win32_scaled_font_font_extents (void *abstract_font,
* avoid them.
*/
status = _cairo_win32_scaled_font_select_unscaled_font (&scaled_font->base, hdc);
- if (!CAIRO_OK (status))
+ if (status)
return status;
GetTextMetrics (hdc, &metrics);
_cairo_win32_scaled_font_done_unscaled_font (&scaled_font->base);
@@ -672,7 +680,7 @@ _cairo_win32_scaled_font_glyph_extents (void *abstract_font,
* from the GDI in device space and convert to font space.
*/
status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc);
- if (!CAIRO_OK (status))
+ if (status)
return status;
GetGlyphOutlineW (hdc, glyphs[0].index, GGO_METRICS | GGO_GLYPH_INDEX,
&metrics, 0, NULL, &matrix);
@@ -714,7 +722,7 @@ _cairo_win32_scaled_font_glyph_extents (void *abstract_font,
_cairo_win32_scaled_font_done_unscaled_font (&scaled_font->base);
extents->x_bearing = (double)metrics.gmptGlyphOrigin.x / scaled_font->em_square;
- extents->y_bearing = (double)metrics.gmptGlyphOrigin.y / scaled_font->em_square;
+ extents->y_bearing = - (double)metrics.gmptGlyphOrigin.y / scaled_font->em_square;
extents->width = (double)metrics.gmBlackBoxX / scaled_font->em_square;
extents->height = (double)metrics.gmBlackBoxY / scaled_font->em_square;
extents->x_advance = (double)metrics.gmCellIncX / scaled_font->em_square;
@@ -745,7 +753,7 @@ _cairo_win32_scaled_font_glyph_bbox (void *abstract_font,
return CAIRO_STATUS_NO_MEMORY;
status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc);
- if (!CAIRO_OK (status))
+ if (status)
return status;
for (i = 0; i < num_glyphs; i++) {
@@ -844,7 +852,7 @@ _add_glyph (cairo_glyph_state_t *state,
if (logical_y != state->last_y) {
cairo_status_t status = _flush_glyphs (state);
- if (!CAIRO_OK (status))
+ if (status)
return status;
state->start_x = logical_x;
}
@@ -890,7 +898,7 @@ _draw_glyphs_on_surface (cairo_win32_surface_t *surface,
return _cairo_win32_print_gdi_error ("_draw_glyphs_on_surface:SaveDC");
status = cairo_win32_scaled_font_select_font (&scaled_font->base, surface->dc);
- if (!CAIRO_OK (status))
+ if (status)
goto FAIL1;
SetTextColor (surface->dc, color);
@@ -902,7 +910,7 @@ _draw_glyphs_on_surface (cairo_win32_surface_t *surface,
for (i = 0; i < num_glyphs; i++) {
status = _add_glyph (&state, glyphs[i].index,
glyphs[i].x - x_offset, glyphs[i].y - y_offset);
- if (!CAIRO_OK (status))
+ if (status)
goto FAIL2;
}
@@ -1152,7 +1160,7 @@ static const cairo_font_face_backend_t _cairo_win32_font_face_backend = {
};
/**
- * cairo_win32_scaled_font_create_for_logfontw:
+ * cairo_win32_font_face_create_for_logfontw:
* @logfont: A #LOGFONTW structure specifying the font to use.
* The lfHeight, lfWidth, lfOrientation and lfEscapement
* fields of this structure are ignored.
@@ -1231,7 +1239,7 @@ cairo_win32_scaled_font_select_font (cairo_scaled_font_t *scaled_font,
}
status = _win32_scaled_font_set_world_transform ((cairo_win32_scaled_font_t *)scaled_font, hdc);
- if (!CAIRO_OK (status)) {
+ if (status) {
SetGraphicsMode (hdc, old_mode);
SelectObject (hdc, old_hfont);
return status;