Rev 1892 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1892 | Rev 3959 | ||
---|---|---|---|
Line 43... | Line 43... | ||
43 | #include "cairo-types-private.h" |
43 | #include "cairo-types-private.h" |
44 | #include "cairo-list-private.h" |
44 | #include "cairo-list-private.h" |
45 | #include "cairo-mutex-type-private.h" |
45 | #include "cairo-mutex-type-private.h" |
46 | #include "cairo-reference-count-private.h" |
46 | #include "cairo-reference-count-private.h" |
Line -... | Line 47... | ||
- | 47 | ||
- | 48 | CAIRO_BEGIN_DECLS |
|
47 | 49 | ||
Line 48... | Line 50... | ||
48 | typedef struct _cairo_scaled_glyph_page cairo_scaled_glyph_page_t; |
50 | typedef struct _cairo_scaled_glyph_page cairo_scaled_glyph_page_t; |
49 | 51 | ||
50 | struct _cairo_scaled_font { |
52 | struct _cairo_scaled_font { |
Line 110... | Line 112... | ||
110 | cairo_hash_table_t *glyphs; |
112 | cairo_hash_table_t *glyphs; |
111 | cairo_list_t glyph_pages; |
113 | cairo_list_t glyph_pages; |
112 | cairo_bool_t cache_frozen; |
114 | cairo_bool_t cache_frozen; |
113 | cairo_bool_t global_cache_frozen; |
115 | cairo_bool_t global_cache_frozen; |
Line 114... | Line -... | ||
114 | - | ||
115 | /* |
- | |
116 | * One surface backend may store data in each glyph. |
- | |
117 | * Whichever surface manages to store its pointer here |
- | |
118 | * first gets to store data in each glyph |
- | |
119 | */ |
- | |
120 | const cairo_surface_backend_t *surface_backend; |
116 | |
Line 121... | Line 117... | ||
121 | void *surface_private; |
117 | cairo_list_t dev_privates; |
122 | 118 | ||
123 | /* font backend managing this scaled font */ |
119 | /* font backend managing this scaled font */ |
124 | const cairo_scaled_font_backend_t *backend; |
120 | const cairo_scaled_font_backend_t *backend; |
Line -... | Line 121... | ||
- | 121 | cairo_list_t link; |
|
- | 122 | }; |
|
- | 123 | ||
- | 124 | struct _cairo_scaled_font_private { |
|
- | 125 | cairo_list_t link; |
|
- | 126 | const void *key; |
|
- | 127 | void (*destroy) (cairo_scaled_font_private_t *, |
|
- | 128 | cairo_scaled_font_t *); |
|
- | 129 | }; |
|
- | 130 | ||
- | 131 | struct _cairo_scaled_glyph { |
|
- | 132 | cairo_hash_entry_t hash_entry; |
|
- | 133 | ||
- | 134 | cairo_text_extents_t metrics; /* user-space metrics */ |
|
- | 135 | cairo_text_extents_t fs_metrics; /* font-space metrics */ |
|
- | 136 | cairo_box_t bbox; /* device-space bounds */ |
|
- | 137 | int16_t x_advance; /* device-space rounded X advance */ |
|
- | 138 | int16_t y_advance; /* device-space rounded Y advance */ |
|
- | 139 | ||
- | 140 | unsigned int has_info; |
|
- | 141 | cairo_image_surface_t *surface; /* device-space image */ |
|
- | 142 | cairo_path_fixed_t *path; /* device-space outline */ |
|
- | 143 | cairo_surface_t *recording_surface; /* device-space recording-surface */ |
|
- | 144 | ||
- | 145 | const void *dev_private_key; |
|
- | 146 | void *dev_private; |
|
- | 147 | cairo_list_t dev_privates; |
|
- | 148 | }; |
|
- | 149 | ||
- | 150 | struct _cairo_scaled_glyph_private { |
|
- | 151 | cairo_list_t link; |
|
- | 152 | const void *key; |
|
- | 153 | void (*destroy) (cairo_scaled_glyph_private_t *, |
|
- | 154 | cairo_scaled_glyph_t *, |
|
- | 155 | cairo_scaled_font_t *); |
|
- | 156 | }; |
|
- | 157 | ||
- | 158 | cairo_private cairo_scaled_font_private_t * |
|
- | 159 | _cairo_scaled_font_find_private (cairo_scaled_font_t *scaled_font, |
|
- | 160 | const void *key); |
|
- | 161 | ||
- | 162 | cairo_private void |
|
- | 163 | _cairo_scaled_font_attach_private (cairo_scaled_font_t *scaled_font, |
|
- | 164 | cairo_scaled_font_private_t *priv, |
|
- | 165 | const void *key, |
|
- | 166 | void (*destroy) (cairo_scaled_font_private_t *, |
|
- | 167 | cairo_scaled_font_t *)); |
|
- | 168 | ||
- | 169 | cairo_private cairo_scaled_glyph_private_t * |
|
125 | cairo_list_t link; |
170 | _cairo_scaled_glyph_find_private (cairo_scaled_glyph_t *scaled_glyph, |
126 | }; |
171 | const void *key); |
- | 172 | ||
- | 173 | cairo_private void |
|
- | 174 | _cairo_scaled_glyph_attach_private (cairo_scaled_glyph_t *scaled_glyph, |
|
- | 175 | cairo_scaled_glyph_private_t *priv, |
|
- | 176 | const void *key, |
|
- | 177 | void (*destroy) (cairo_scaled_glyph_private_t *, |
|
- | 178 | cairo_scaled_glyph_t *, |
|
Line 127... | Line 179... | ||
127 | 179 | cairo_scaled_font_t *)); |