Subversion Repositories Kolibri OS

Rev

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 *));