summaryrefslogtreecommitdiff
path: root/src/cairo-types-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-01-22 16:14:53 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-01-22 23:01:52 +0000
commit05bb43a00770f17566c80f28faf684597d1b6afb (patch)
tree415e884c3bd26c5371d72fb471bbcd3127893c5f /src/cairo-types-private.h
parent9c98656fb1ac10a6085c5db5731b6b986af26165 (diff)
downloadcairo-05bb43a00770f17566c80f28faf684597d1b6afb.tar.gz
types: Move cairo_scaled_glyph_t to cairo-types-private.h
Another step in bringing some sanity to our headers.
Diffstat (limited to 'src/cairo-types-private.h')
-rw-r--r--src/cairo-types-private.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/cairo-types-private.h b/src/cairo-types-private.h
index ca41c1a1f..f3d14b319 100644
--- a/src/cairo-types-private.h
+++ b/src/cairo-types-private.h
@@ -396,4 +396,29 @@ typedef union {
cairo_gradient_pattern_union_t gradient;
} cairo_pattern_union_t;
+/*
+ * A #cairo_unscaled_font_t is just an opaque handle we use in the
+ * glyph cache.
+ */
+typedef struct _cairo_unscaled_font {
+ cairo_hash_entry_t hash_entry;
+ cairo_reference_count_t ref_count;
+ const cairo_unscaled_font_backend_t *backend;
+} cairo_unscaled_font_t;
+
+typedef struct _cairo_scaled_glyph {
+ cairo_hash_entry_t hash_entry;
+
+ cairo_text_extents_t metrics; /* user-space metrics */
+ cairo_text_extents_t fs_metrics; /* font-space metrics */
+ cairo_box_t bbox; /* device-space bounds */
+ int16_t x_advance; /* device-space rounded X advance */
+ int16_t y_advance; /* device-space rounded Y advance */
+
+ cairo_image_surface_t *surface; /* device-space image */
+ cairo_path_fixed_t *path; /* device-space outline */
+ cairo_surface_t *recording_surface; /* device-space recording-surface */
+
+ void *surface_private; /* for the surface backend */
+} cairo_scaled_glyph_t;
#endif /* CAIRO_TYPES_PRIVATE_H */