[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] parthw-cleaned df5fb5c: [gf] Define FT driver variables with
From: |
Parth Wazurkar |
Subject: |
[freetype2] parthw-cleaned df5fb5c: [gf] Define FT driver variables with gftype values. |
Date: |
Tue, 26 Jun 2018 18:48:56 -0400 (EDT) |
branch: parthw-cleaned
commit df5fb5c649bc5ddc8b2be52a1e7be661908a07db
Author: Parth Wazurkar <address@hidden>
Commit: Parth Wazurkar <address@hidden>
[gf] Define FT driver variables with gftype values.
* src/gf/gfdrivr.c : Define the FT driver variables
in all the functions with gftype values from the font file.
---
src/gf/gfdrivr.c | 127 +++++++++++++++++++++----------------------------------
1 file changed, 48 insertions(+), 79 deletions(-)
diff --git a/src/gf/gfdrivr.c b/src/gf/gfdrivr.c
index 772c2b6..a60948f 100644
--- a/src/gf/gfdrivr.c
+++ b/src/gf/gfdrivr.c
@@ -140,8 +140,6 @@
memory = FT_FACE_MEMORY( face );
gf_free_font( face->gf_glyph );
-
- FT_FREE( /* */ );
}
@@ -152,63 +150,48 @@
FT_Int num_params,
FT_Parameter* params )
{
- GF_Face face = (GF_Face)gfface;
- FT_Error error;
- FT_Memory memory = FT_FACE_MEMORY( face );
+ GF_Face face = (GF_Face)gfface;
+ FT_Error error;
+ FT_Memory memory = FT_FACE_MEMORY( face );
+ GF_Glyph go;
+ face->gf_glyph = &go ;
FT_UNUSED( num_params );
FT_UNUSED( params );
FT_TRACE2(( "GF driver\n" ));
/* load font */
- error = gf_load_font( stream, face );
- if ( !error )
+ error = gf_load_font( stream, memory, &go );
+ if ( error )
goto Exit;
- if ( FT_ERR_EQ( error, Unknown_File_Format ) )
- {
- goto Exit
- }
-
- /* sanity check */
- if ( !face-> /* */ )
- {
- FT_TRACE2(( "/* */" ));
- error = FT_THROW( Invalid_File_Format );
- goto Fail;
- }
-
/* we now need to fill the root FT_Face fields */
/* with relevant information */
- {
- FT_Face root = FT_FACE( face );
- GF_Face font = face->font;
-
-
- root->face_index = /* */ ;
- root->face_flags |= /* */ ;
+ gfface->num_faces = 1;
+ gfface->face_index = 0;
+ gfface->face_flags | = FT_FACE_FLAG_FIXED_SIZES |
FT_FACE_FLAG_HORIZONTAL ;
+ gfface->family_name = NULL;
+ gfface->num_glyphs = (FT_Long)(go->code_max - go->code_min + 1 );
+ gfface->num_fixed_sizes = 1;
- /* set up the `fixed_sizes' array */
- if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
- goto Fail;
-
- root->num_fixed_sizes = 1;
+ if ( FT_NEW_ARRAY( gfface->available_sizes, 1 ) )
+ goto Exit;
{
- FT_Bitmap_Size* bsize = root->available_sizes;
+ FT_Bitmap_Size* bsize = gfface->available_sizes;
FT_UShort x_res, y_res;
- bsize->width = (FT_Short) /* */ ;
- bsize->height = (FT_Short) /* */ ;
- bsize->size = /* */ ;
+ bsize->width = (FT_Short) face->gf_glyph->font_bbx_w ;
+ bsize->height = (FT_Short) face->gf_glyph->font_bbx_h ;
+ bsize->size = (FT_Short) face->gf_glyph->ds ; /* Preliminary to be
checked for 26.6 fractional points*/
- x_res = /* */ ;
- y_res = /* */ ;
+ /*x_res = ; To be Checked for x_resolution and y_resolution
+ y_res = ;*/
- bsize->y_ppem = /* */ ;
- bsize->x_ppem = /* */ ;
+ bsize->y_ppem = face->gf_glyph->font_bbx_yoff ;
+ bsize->x_ppem = face->gf_glyph->font_bbx_xoff ;
}
/* Charmaps */
@@ -219,35 +202,16 @@
charmap.encoding = FT_ENCODING_NONE;
/* initial platform/encoding should indicate unset status? */
- charmap.platform_id = TT_PLATFORM_APPLE_UNICODE;
+ charmap.platform_id = TT_PLATFORM_APPLE_UNICODE; /*Preliminary */
charmap.encoding_id = TT_APPLE_ID_DEFAULT;
charmap.face = root;
- error = FT_CMap_New( gf_cmap_class, NULL, &charmap, NULL );
+ error = FT_CMap_New( &gf_cmap_class, NULL, &charmap, NULL );
if ( error )
goto Fail;
}
-
- /* reserve one slot for the .notdef glyph at index 0 */
- root->num_glyphs = /* */ ;
-
- root->family_name = /* */;
- root->style_name = /* */;
-
- if ( root->style_flags & FT_STYLE_FLAG_BOLD )
- {
- if ( root->style_flags & FT_STYLE_FLAG_ITALIC )
- root->style_name = (char *)"Bold Italic";
- else
- root->style_name = (char *)"Bold";
- }
- else if ( root->style_flags & FT_STYLE_FLAG_ITALIC )
- root->style_name = (char *)"Italic";
- }
- goto Exit;
-
Fail:
GF_Face_Done( gfface );
@@ -266,9 +230,9 @@
FT_Select_Metrics( size->face, 0 );
- size->metrics.ascender = /* */ ;
- size->metrics.descender = /* */ ;
- size->metrics.max_advance = /* */ ;
+ size->metrics.ascender = face->gf_glyph->font_bbx_xoff * 64;
+ size->metrics.descender = face->gf_glyph->font_bbx_yoff * 64;
+ size->metrics.max_advance = face->gf_glyph->font_bbx_w * 64;
return FT_Err_Ok;
@@ -295,7 +259,7 @@
break;
case FT_SIZE_REQUEST_TYPE_REAL_DIM:
- if ( height == /* */ )
+ if ( height == face->gf_glyph->font_bbx_h ) /* Preliminary */
error = FT_Err_Ok;
break;
@@ -341,33 +305,38 @@
FT_TRACE1(( "GF_Glyph_Load: glyph index %d\n", glyph_index ));
+ #if 0
if ( glyph_index > 0 )
- glyph_index--; /* revert to real index */
+ glyph_index--;
else
- glyph_index = /* */; /* the `.notdef' glyph */
+ glyph_index = /* */;
+ #endif
+
+ if ( glyph_index < 0 )
+ glyph_index = 0;
/* slot, bitmap => freetype, glyph => gflib */
glyph = gf->gf_glyph->bm_table[glyph_index];
- bitmap->rows = /* */ ;
- bitmap->width = /* */ ;
- bitmap->pitch = /* */ ; /* (In BDF) same as FT_Bitmap.pitch */
+ bitmap->rows = bm.mv_y ; /* Prelimiary */
+ bitmap->width = bm.mv_x ; /* Prelimiary */
+ /* bitmap->pitch = ; */
/* note: we don't allocate a new array to hold the bitmap; */
/* we can simply point to it */
- ft_glyphslot_set_bitmap( slot, glyph.bitmap );
+ ft_glyphslot_set_bitmap( slot, bm.bitmap );
slot->format = FT_GLYPH_FORMAT_BITMAP;
- slot->bitmap_left = glyph.bbx.x_offset;
- slot->bitmap_top = glyph.bbx.ascent;
+ slot->bitmap_left = bm.off_x ; /* Prelimiary */
+ slot->bitmap_top = bm.off_y ; /* Prelimiary */
- slot->metrics.horiAdvance = (FT_Pos) /* */ ;
- slot->metrics.horiBearingX = (FT_Pos) /* */ ;
- slot->metrics.horiBearingY = (FT_Pos) /* */ ;
- slot->metrics.width = (FT_Pos) /* */ ;
- slot->metrics.height = (FT_Pos) /* */ ;
+ slot->metrics.horiAdvance = (FT_Pos) bm.bbx_width - bm.off_x ; /*
Prelimiary */
+ slot->metrics.horiBearingX = (FT_Pos) bm.off_x ; /*
Prelimiary */
+ slot->metrics.horiBearingY = (FT_Pos) bm.off_y ; /*
Prelimiary */
+ slot->metrics.width = (FT_Pos) ( bitmap->width * 64 ) ; /*
Prelimiary */
+ slot->metrics.height = (FT_Pos) ( bitmap->rows * 64 ) ; /*
Prelimiary */
- ft_synthesize_vertical_metrics( &slot->metrics, /* */ );
+ ft_synthesize_vertical_metrics( &slot->metrics, bm.bbx_height * 64 );
Exit:
return error;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] parthw-cleaned df5fb5c: [gf] Define FT driver variables with gftype values.,
Parth Wazurkar <=