20 #include FT_INTERNAL_GLYPH_LOADER_H
21 #include FT_INTERNAL_MEMORY_H
22 #include FT_INTERNAL_OBJECTS_H
25 #define FT_COMPONENT trace_gloader
78 loader->memory = memory;
109 FT_FREE( loader->base.outline.points );
110 FT_FREE( loader->base.outline.tags );
111 FT_FREE( loader->base.outline.contours );
112 FT_FREE( loader->base.extra_points );
113 FT_FREE( loader->base.subglyphs );
115 loader->base.extra_points2 =
NULL;
117 loader->max_points = 0;
118 loader->max_contours = 0;
119 loader->max_subglyphs = 0;
145 FT_Outline* current = &loader->current.outline;
153 if ( loader->use_extra )
155 loader->current.extra_points = loader->base.extra_points +
158 loader->current.extra_points2 = loader->base.extra_points2 +
171 if ( !
FT_NEW_ARRAY( loader->base.extra_points, 2 * loader->max_points ) )
173 loader->use_extra = 1;
174 loader->base.extra_points2 = loader->base.extra_points +
207 FT_Outline* current = &loader->current.outline;
215 old_max = loader->max_points;
217 if ( new_max > old_max )
222 return FT_Err_Array_Too_Large;
228 if ( loader->use_extra )
231 old_max * 2, new_max * 2 ) )
235 loader->base.extra_points + old_max,
238 loader->base.extra_points2 = loader->base.extra_points + new_max;
242 loader->max_points = new_max;
246 old_max = loader->max_contours;
249 if ( new_max > old_max )
254 return FT_Err_Array_Too_Large;
260 loader->max_contours = new_max;
288 old_max = loader->max_subglyphs;
289 if ( new_max > old_max )
295 loader->max_subglyphs = new_max;
336 base = &loader->base;
337 current = &loader->current;
350 for ( n = 0; n < n_curr_contours; n++ )
364 FT_UInt num_points = source->base.outline.n_points;
365 FT_UInt num_contours = source->base.outline.n_contours;
383 if ( target->use_extra && source->use_extra )
385 FT_ARRAY_COPY( target->base.extra_points, source->base.extra_points,
387 FT_ARRAY_COPY( target->base.extra_points2, source->base.extra_points2,
#define FT_ARRAY_COPY(dest, source, count)
FT_GlyphLoader_New(FT_Memory memory, FT_GlyphLoader *aloader)
FT_GlyphLoader_CopyPoints(FT_GlyphLoader target, FT_GlyphLoader source)
FT_BEGIN_HEADER typedef unsigned char FT_Bool
FT_GlyphLoader_CreateExtra(FT_GlyphLoader loader)
FT_GlyphLoader_Reset(FT_GlyphLoader loader)
typedefFT_BEGIN_HEADER struct FT_GlyphLoaderRec_ * FT_GlyphLoader
#define FT_PAD_CEIL(x, n)
#define FT_OUTLINE_POINTS_MAX
EGLContext EGLenum target
FT_GlyphLoader_Add(FT_GlyphLoader loader)
FT_GlyphLoader_Done(FT_GlyphLoader loader)
FT_GlyphLoader_CheckSubGlyphs(FT_GlyphLoader loader, FT_UInt n_subs)
#define FT_ARRAY_MOVE(dest, source, count)
#define FT_RENEW_ARRAY(ptr, curcnt, newcnt)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
#define FT_NEW_ARRAY(ptr, count)
static void FT_GlyphLoader_Adjust_Points(FT_GlyphLoader loader)
FT_GlyphLoader_Rewind(FT_GlyphLoader loader)
FT_GlyphLoader_Prepare(FT_GlyphLoader loader)
GLsizei GLsizei GLchar * source
static void FT_GlyphLoader_Adjust_Subglyphs(FT_GlyphLoader loader)
FT_GlyphLoader_CheckPoints(FT_GlyphLoader loader, FT_UInt n_points, FT_UInt n_contours)
#define FT_OUTLINE_CONTOURS_MAX