Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Side by Side Diff: third_party/freetype/src/base/ftglyph.c

Issue 1413673003: Update bundled freetype to 2.6.1 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: DEPS for corpus Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/freetype/src/base/ftgloadr.c ('k') | third_party/freetype/src/base/ftgxval.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /***************************************************************************/ 1 /***************************************************************************/
2 /* */ 2 /* */
3 /* ftglyph.c */ 3 /* ftglyph.c */
4 /* */ 4 /* */
5 /* FreeType convenience functions to handle glyphs (body). */ 5 /* FreeType convenience functions to handle glyphs (body). */
6 /* */ 6 /* */
7 /* Copyright 1996-2005, 2007, 2008, 2010, 2012-2014 by */ 7 /* Copyright 1996-2015 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */ 9 /* */
10 /* This file is part of the FreeType project, and may only be used, */ 10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */ 11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */ 13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */ 14 /* understand and accept it fully. */
15 /* */ 15 /* */
16 /***************************************************************************/ 16 /***************************************************************************/
17 17
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 glyph->top = slot->bitmap_top; 75 glyph->top = slot->bitmap_top;
76 76
77 /* do lazy copying whenever possible */ 77 /* do lazy copying whenever possible */
78 if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP ) 78 if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
79 { 79 {
80 glyph->bitmap = slot->bitmap; 80 glyph->bitmap = slot->bitmap;
81 slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP; 81 slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
82 } 82 }
83 else 83 else
84 { 84 {
85 FT_Bitmap_New( &glyph->bitmap ); 85 FT_Bitmap_Init( &glyph->bitmap );
86 error = FT_Bitmap_Copy( library, &slot->bitmap, &glyph->bitmap ); 86 error = FT_Bitmap_Copy( library, &slot->bitmap, &glyph->bitmap );
87 } 87 }
88 88
89 Exit: 89 Exit:
90 return error; 90 return error;
91 } 91 }
92 92
93 93
94 FT_CALLBACK_DEF( FT_Error ) 94 FT_CALLBACK_DEF( FT_Error )
95 ft_bitmap_glyph_copy( FT_Glyph bitmap_source, 95 ft_bitmap_glyph_copy( FT_Glyph bitmap_source,
(...skipping 23 matching lines...) Expand all
119 119
120 120
121 FT_CALLBACK_DEF( void ) 121 FT_CALLBACK_DEF( void )
122 ft_bitmap_glyph_bbox( FT_Glyph bitmap_glyph, 122 ft_bitmap_glyph_bbox( FT_Glyph bitmap_glyph,
123 FT_BBox* cbox ) 123 FT_BBox* cbox )
124 { 124 {
125 FT_BitmapGlyph glyph = (FT_BitmapGlyph)bitmap_glyph; 125 FT_BitmapGlyph glyph = (FT_BitmapGlyph)bitmap_glyph;
126 126
127 127
128 cbox->xMin = glyph->left << 6; 128 cbox->xMin = glyph->left << 6;
129 cbox->xMax = cbox->xMin + ( glyph->bitmap.width << 6 ); 129 cbox->xMax = cbox->xMin + (FT_Pos)( glyph->bitmap.width << 6 );
130 cbox->yMax = glyph->top << 6; 130 cbox->yMax = glyph->top << 6;
131 cbox->yMin = cbox->yMax - ( glyph->bitmap.rows << 6 ); 131 cbox->yMin = cbox->yMax - (FT_Pos)( glyph->bitmap.rows << 6 );
132 } 132 }
133 133
134 134
135 FT_DEFINE_GLYPH(ft_bitmap_glyph_class, 135 FT_DEFINE_GLYPH(ft_bitmap_glyph_class,
136 sizeof ( FT_BitmapGlyphRec ), 136 sizeof ( FT_BitmapGlyphRec ),
137 FT_GLYPH_FORMAT_BITMAP, 137 FT_GLYPH_FORMAT_BITMAP,
138 138
139 ft_bitmap_glyph_init, 139 ft_bitmap_glyph_init,
140 ft_bitmap_glyph_done, 140 ft_bitmap_glyph_done,
141 ft_bitmap_glyph_copy, 141 ft_bitmap_glyph_copy,
(...skipping 24 matching lines...) Expand all
166 166
167 167
168 /* check format in glyph slot */ 168 /* check format in glyph slot */
169 if ( slot->format != FT_GLYPH_FORMAT_OUTLINE ) 169 if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
170 { 170 {
171 error = FT_THROW( Invalid_Glyph_Format ); 171 error = FT_THROW( Invalid_Glyph_Format );
172 goto Exit; 172 goto Exit;
173 } 173 }
174 174
175 /* allocate new outline */ 175 /* allocate new outline */
176 error = FT_Outline_New( library, source->n_points, source->n_contours, 176 error = FT_Outline_New( library,
177 (FT_UInt)source->n_points,
178 source->n_contours,
177 &glyph->outline ); 179 &glyph->outline );
178 if ( error ) 180 if ( error )
179 goto Exit; 181 goto Exit;
180 182
181 FT_Outline_Copy( source, target ); 183 FT_Outline_Copy( source, target );
182 184
183 Exit: 185 Exit:
184 return error; 186 return error;
185 } 187 }
186 188
(...skipping 11 matching lines...) Expand all
198 FT_CALLBACK_DEF( FT_Error ) 200 FT_CALLBACK_DEF( FT_Error )
199 ft_outline_glyph_copy( FT_Glyph outline_source, 201 ft_outline_glyph_copy( FT_Glyph outline_source,
200 FT_Glyph outline_target ) 202 FT_Glyph outline_target )
201 { 203 {
202 FT_OutlineGlyph source = (FT_OutlineGlyph)outline_source; 204 FT_OutlineGlyph source = (FT_OutlineGlyph)outline_source;
203 FT_OutlineGlyph target = (FT_OutlineGlyph)outline_target; 205 FT_OutlineGlyph target = (FT_OutlineGlyph)outline_target;
204 FT_Error error; 206 FT_Error error;
205 FT_Library library = FT_GLYPH( source )->library; 207 FT_Library library = FT_GLYPH( source )->library;
206 208
207 209
208 error = FT_Outline_New( library, source->outline.n_points, 210 error = FT_Outline_New( library,
209 source->outline.n_contours, &target->outline ); 211 (FT_UInt)source->outline.n_points,
212 source->outline.n_contours,
213 &target->outline );
210 if ( !error ) 214 if ( !error )
211 FT_Outline_Copy( &source->outline, &target->outline ); 215 FT_Outline_Copy( &source->outline, &target->outline );
212 216
213 return error; 217 return error;
214 } 218 }
215 219
216 220
217 FT_CALLBACK_DEF( void ) 221 FT_CALLBACK_DEF( void )
218 ft_outline_glyph_transform( FT_Glyph outline_glyph, 222 ft_outline_glyph_transform( FT_Glyph outline_glyph,
219 const FT_Matrix* matrix, 223 const FT_Matrix* matrix,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 static FT_Error 284 static FT_Error
281 ft_new_glyph( FT_Library library, 285 ft_new_glyph( FT_Library library,
282 const FT_Glyph_Class* clazz, 286 const FT_Glyph_Class* clazz,
283 FT_Glyph* aglyph ) 287 FT_Glyph* aglyph )
284 { 288 {
285 FT_Memory memory = library->memory; 289 FT_Memory memory = library->memory;
286 FT_Error error; 290 FT_Error error;
287 FT_Glyph glyph = NULL; 291 FT_Glyph glyph = NULL;
288 292
289 293
290 *aglyph = 0; 294 *aglyph = NULL;
291 295
292 if ( !FT_ALLOC( glyph, clazz->glyph_size ) ) 296 if ( !FT_ALLOC( glyph, clazz->glyph_size ) )
293 { 297 {
294 glyph->library = library; 298 glyph->library = library;
295 glyph->clazz = clazz; 299 glyph->clazz = clazz;
296 glyph->format = clazz->glyph_format; 300 glyph->format = clazz->glyph_format;
297 301
298 *aglyph = glyph; 302 *aglyph = glyph;
299 } 303 }
300 304
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 620
617 if ( clazz->glyph_done ) 621 if ( clazz->glyph_done )
618 clazz->glyph_done( glyph ); 622 clazz->glyph_done( glyph );
619 623
620 FT_FREE( glyph ); 624 FT_FREE( glyph );
621 } 625 }
622 } 626 }
623 627
624 628
625 /* END */ 629 /* END */
OLDNEW
« no previous file with comments | « third_party/freetype/src/base/ftgloadr.c ('k') | third_party/freetype/src/base/ftgxval.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698