您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FT_FRAME_USHORT函数代码示例

51自学网 2021-06-01 20:44:11
  C++
这篇教程C++ FT_FRAME_USHORT函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FT_FRAME_USHORT函数的典型用法代码示例。如果您正苦于以下问题:C++ FT_FRAME_USHORT函数的具体用法?C++ FT_FRAME_USHORT怎么用?C++ FT_FRAME_USHORT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了FT_FRAME_USHORT函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: tt_face_load_generic_header

  static FT_Error  tt_face_load_generic_header( TT_Face    face,                               FT_Stream  stream,                               FT_ULong   tag )  {    FT_Error    error;    TT_Header*  header;    static const FT_Frame_Field  header_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_Header      FT_FRAME_START( 54 ),        FT_FRAME_ULONG ( Table_Version ),        FT_FRAME_ULONG ( Font_Revision ),        FT_FRAME_LONG  ( CheckSum_Adjust ),        FT_FRAME_LONG  ( Magic_Number ),        FT_FRAME_USHORT( Flags ),        FT_FRAME_USHORT( Units_Per_EM ),        FT_FRAME_LONG  ( Created[0] ),        FT_FRAME_LONG  ( Created[1] ),        FT_FRAME_LONG  ( Modified[0] ),        FT_FRAME_LONG  ( Modified[1] ),        FT_FRAME_SHORT ( xMin ),        FT_FRAME_SHORT ( yMin ),        FT_FRAME_SHORT ( xMax ),        FT_FRAME_SHORT ( yMax ),        FT_FRAME_USHORT( Mac_Style ),        FT_FRAME_USHORT( Lowest_Rec_PPEM ),        FT_FRAME_SHORT ( Font_Direction ),        FT_FRAME_SHORT ( Index_To_Loc_Format ),        FT_FRAME_SHORT ( Glyph_Data_Format ),      FT_FRAME_END    };    error = face->goto_table( face, tag, stream, 0 );    if ( error )      goto Exit;    header = &face->header;    if ( FT_STREAM_READ_FIELDS( header_fields, header ) )      goto Exit;    FT_TRACE3(( "Units per EM: %4u/n", header->Units_Per_EM ));    FT_TRACE3(( "IndexToLoc:   %4d/n", header->Index_To_Loc_Format ));  Exit:    return error;  }
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:52,


示例2: tt_face_load_pclt

  tt_face_load_pclt( TT_Face    face,                     FT_Stream  stream )  {    static const FT_Frame_Field  pclt_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_PCLT      FT_FRAME_START( 54 ),        FT_FRAME_ULONG ( Version ),        FT_FRAME_ULONG ( FontNumber ),        FT_FRAME_USHORT( Pitch ),        FT_FRAME_USHORT( xHeight ),        FT_FRAME_USHORT( Style ),        FT_FRAME_USHORT( TypeFamily ),        FT_FRAME_USHORT( CapHeight ),        FT_FRAME_BYTES ( TypeFace, 16 ),        FT_FRAME_BYTES ( CharacterComplement, 8 ),        FT_FRAME_BYTES ( FileName, 6 ),        FT_FRAME_CHAR  ( StrokeWeight ),        FT_FRAME_CHAR  ( WidthType ),        FT_FRAME_BYTE  ( SerifStyle ),        FT_FRAME_BYTE  ( Reserved ),      FT_FRAME_END    };    FT_Error  error;    TT_PCLT*  pclt = &face->pclt;    /* optional table */    error = face->goto_table( face, TTAG_PCLT, stream, 0 );    if ( error )      goto Exit;    if ( FT_STREAM_READ_FIELDS( pclt_fields, pclt ) )      goto Exit;  Exit:    return error;  }
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:41,


示例3: tt_face_load_hhea

  tt_face_load_hhea( TT_Face    face,                     FT_Stream  stream,                     FT_Bool    vertical )  {    FT_Error        error;    TT_HoriHeader*  header;    const FT_Frame_Field  metrics_header_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_HoriHeader      FT_FRAME_START( 36 ),        FT_FRAME_ULONG ( Version ),        FT_FRAME_SHORT ( Ascender ),        FT_FRAME_SHORT ( Descender ),        FT_FRAME_SHORT ( Line_Gap ),        FT_FRAME_USHORT( advance_Width_Max ),        FT_FRAME_SHORT ( min_Left_Side_Bearing ),        FT_FRAME_SHORT ( min_Right_Side_Bearing ),        FT_FRAME_SHORT ( xMax_Extent ),        FT_FRAME_SHORT ( caret_Slope_Rise ),        FT_FRAME_SHORT ( caret_Slope_Run ),        FT_FRAME_SHORT ( caret_Offset ),        FT_FRAME_SHORT ( Reserved[0] ),        FT_FRAME_SHORT ( Reserved[1] ),        FT_FRAME_SHORT ( Reserved[2] ),        FT_FRAME_SHORT ( Reserved[3] ),        FT_FRAME_SHORT ( metric_Data_Format ),        FT_FRAME_USHORT( number_Of_HMetrics ),      FT_FRAME_END    };    if ( vertical )    {      void  *v = &face->vertical;      error = face->goto_table( face, TTAG_vhea, stream, 0 );      if ( error )        goto Fail;      header = (TT_HoriHeader*)v;    }    else    {      error = face->goto_table( face, TTAG_hhea, stream, 0 );      if ( error )        goto Fail;      header = &face->horizontal;    }    if ( FT_STREAM_READ_FIELDS( metrics_header_fields, header ) )      goto Fail;    FT_TRACE3(( "Ascender:          %5d/n", header->Ascender ));    FT_TRACE3(( "Descender:         %5d/n", header->Descender ));    FT_TRACE3(( "number_Of_Metrics: %5u/n", header->number_Of_HMetrics ));    header->long_metrics  = NULL;    header->short_metrics = NULL;  Fail:    return error;  }
开发者ID:sloopdoom,项目名称:ftgles-gles2,代码行数:67,


示例4: FT_FRAME_START

  /*************************************************************************/  /*************************************************************************/  /*****                                                               *****/  /*****                          PFR HEADER                           *****/  /*****                                                               *****/  /*************************************************************************/  /*************************************************************************/   static const FT_Frame_Field  pfr_header_fields[] =   {#undef  FT_STRUCTURE#define FT_STRUCTURE  PFR_HeaderRec     FT_FRAME_START( 58 ),       FT_FRAME_ULONG ( signature ),       FT_FRAME_USHORT( version ),       FT_FRAME_USHORT( signature2 ),       FT_FRAME_USHORT( header_size ),       FT_FRAME_USHORT( log_dir_size ),       FT_FRAME_USHORT( log_dir_offset ),       FT_FRAME_USHORT( log_font_max_size ),       FT_FRAME_UOFF3 ( log_font_section_size ),       FT_FRAME_UOFF3 ( log_font_section_offset ),       FT_FRAME_USHORT( phy_font_max_size ),       FT_FRAME_UOFF3 ( phy_font_section_size ),       FT_FRAME_UOFF3 ( phy_font_section_offset ),       FT_FRAME_USHORT( gps_max_size ),
开发者ID:ImageMagick,项目名称:ttf,代码行数:31,


示例5: tt_face_load_os2

  tt_face_load_os2( TT_Face    face,                    FT_Stream  stream )  {    FT_Error  error;    TT_OS2*   os2;    const FT_Frame_Field  os2_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_OS2      FT_FRAME_START( 78 ),        FT_FRAME_USHORT( version ),        FT_FRAME_SHORT ( xAvgCharWidth ),        FT_FRAME_USHORT( usWeightClass ),        FT_FRAME_USHORT( usWidthClass ),        FT_FRAME_SHORT ( fsType ),        FT_FRAME_SHORT ( ySubscriptXSize ),        FT_FRAME_SHORT ( ySubscriptYSize ),        FT_FRAME_SHORT ( ySubscriptXOffset ),        FT_FRAME_SHORT ( ySubscriptYOffset ),        FT_FRAME_SHORT ( ySuperscriptXSize ),        FT_FRAME_SHORT ( ySuperscriptYSize ),        FT_FRAME_SHORT ( ySuperscriptXOffset ),        FT_FRAME_SHORT ( ySuperscriptYOffset ),        FT_FRAME_SHORT ( yStrikeoutSize ),        FT_FRAME_SHORT ( yStrikeoutPosition ),        FT_FRAME_SHORT ( sFamilyClass ),        FT_FRAME_BYTE  ( panose[0] ),        FT_FRAME_BYTE  ( panose[1] ),        FT_FRAME_BYTE  ( panose[2] ),        FT_FRAME_BYTE  ( panose[3] ),        FT_FRAME_BYTE  ( panose[4] ),        FT_FRAME_BYTE  ( panose[5] ),        FT_FRAME_BYTE  ( panose[6] ),        FT_FRAME_BYTE  ( panose[7] ),        FT_FRAME_BYTE  ( panose[8] ),        FT_FRAME_BYTE  ( panose[9] ),        FT_FRAME_ULONG ( ulUnicodeRange1 ),        FT_FRAME_ULONG ( ulUnicodeRange2 ),        FT_FRAME_ULONG ( ulUnicodeRange3 ),        FT_FRAME_ULONG ( ulUnicodeRange4 ),        FT_FRAME_BYTE  ( achVendID[0] ),        FT_FRAME_BYTE  ( achVendID[1] ),        FT_FRAME_BYTE  ( achVendID[2] ),        FT_FRAME_BYTE  ( achVendID[3] ),        FT_FRAME_USHORT( fsSelection ),        FT_FRAME_USHORT( usFirstCharIndex ),        FT_FRAME_USHORT( usLastCharIndex ),        FT_FRAME_SHORT ( sTypoAscender ),        FT_FRAME_SHORT ( sTypoDescender ),        FT_FRAME_SHORT ( sTypoLineGap ),        FT_FRAME_USHORT( usWinAscent ),        FT_FRAME_USHORT( usWinDescent ),      FT_FRAME_END    };    const FT_Frame_Field  os2_fields_extra[] =    {      FT_FRAME_START( 8 ),        FT_FRAME_ULONG( ulCodePageRange1 ),        FT_FRAME_ULONG( ulCodePageRange2 ),      FT_FRAME_END    };    const FT_Frame_Field  os2_fields_extra2[] =    {      FT_FRAME_START( 10 ),        FT_FRAME_SHORT ( sxHeight ),        FT_FRAME_SHORT ( sCapHeight ),        FT_FRAME_USHORT( usDefaultChar ),        FT_FRAME_USHORT( usBreakChar ),        FT_FRAME_USHORT( usMaxContext ),      FT_FRAME_END    };    /* We now support old Mac fonts where the OS/2 table doesn't  */    /* exist.  Simply put, we set the `version' field to 0xFFFF   */    /* and test this value each time we need to access the table. */    error = face->goto_table( face, TTAG_OS2, stream, 0 );    if ( error )      goto Exit;    os2 = &face->os2;    if ( FT_STREAM_READ_FIELDS( os2_fields, os2 ) )      goto Exit;    os2->ulCodePageRange1 = 0;    os2->ulCodePageRange2 = 0;    os2->sxHeight         = 0;    os2->sCapHeight       = 0;    os2->usDefaultChar    = 0;    os2->usBreakChar      = 0;    os2->usMaxContext     = 0;    if ( os2->version >= 0x0001 )    {//.........这里部分代码省略.........
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:101,


示例6: tt_face_load_name

  tt_face_load_name( TT_Face    face,                     FT_Stream  stream )  {    FT_Error      error;    FT_Memory     memory = stream->memory;    FT_ULong      table_pos, table_len;    FT_ULong      storage_start, storage_limit;    FT_UInt       count;    TT_NameTable  table;    static const FT_Frame_Field  name_table_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_NameTableRec      FT_FRAME_START( 6 ),        FT_FRAME_USHORT( format ),        FT_FRAME_USHORT( numNameRecords ),        FT_FRAME_USHORT( storageOffset ),      FT_FRAME_END    };    static const FT_Frame_Field  name_record_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_NameEntryRec      /* no FT_FRAME_START */        FT_FRAME_USHORT( platformID ),        FT_FRAME_USHORT( encodingID ),        FT_FRAME_USHORT( languageID ),        FT_FRAME_USHORT( nameID ),        FT_FRAME_USHORT( stringLength ),        FT_FRAME_USHORT( stringOffset ),      FT_FRAME_END    };    table         = &face->name_table;    table->stream = stream;    error = face->goto_table( face, TTAG_name, stream, &table_len );    if ( error )      goto Exit;    table_pos = FT_STREAM_POS();    if ( FT_STREAM_READ_FIELDS( name_table_fields, table ) )      goto Exit;    /* Some popular Asian fonts have an invalid `storageOffset' value   */    /* (it should be at least "6 + 12*num_names").  However, the string */    /* offsets, computed as "storageOffset + entry->stringOffset", are  */    /* valid pointers within the name table...                          */    /*                                                                  */    /* We thus can't check `storageOffset' right now.                   */    /*                                                                  */    storage_start = table_pos + 6 + 12*table->numNameRecords;    storage_limit = table_pos + table_len;    if ( storage_start > storage_limit )    {      FT_ERROR(( "tt_face_load_name: invalid `name' table/n" ));      error = SFNT_Err_Name_Table_Missing;      goto Exit;    }    /* Allocate the array of name records. */    count                 = table->numNameRecords;    table->numNameRecords = 0;    if ( FT_NEW_ARRAY( table->names, count ) ||         FT_FRAME_ENTER( count * 12 )        )      goto Exit;    /* Load the name records and determine how much storage is needed */    /* to hold the strings themselves.                                */    {      TT_NameEntryRec*  entry = table->names;      for ( ; count > 0; count-- )      {        if ( FT_STREAM_READ_FIELDS( name_record_fields, entry ) )          continue;        /* check that the name is not empty */        if ( entry->stringLength == 0 )          continue;        /* check that the name string is within the table */        entry->stringOffset += table_pos + table->storageOffset;        if ( entry->stringOffset                       < storage_start ||             entry->stringOffset + entry->stringLength > storage_limit )        {          /* invalid entry - ignore it */          entry->stringOffset = 0;          entry->stringLength = 0;          continue;//.........这里部分代码省略.........
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:101,


示例7: tt_face_load_maxp

  tt_face_load_maxp( TT_Face    face,                     FT_Stream  stream )  {    FT_Error        error;    TT_MaxProfile*  maxProfile = &face->max_profile;    const FT_Frame_Field  maxp_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  TT_MaxProfile      FT_FRAME_START( 6 ),        FT_FRAME_LONG  ( version ),        FT_FRAME_USHORT( numGlyphs ),      FT_FRAME_END    };    const FT_Frame_Field  maxp_fields_extra[] =    {      FT_FRAME_START( 26 ),        FT_FRAME_USHORT( maxPoints ),        FT_FRAME_USHORT( maxContours ),        FT_FRAME_USHORT( maxCompositePoints ),        FT_FRAME_USHORT( maxCompositeContours ),        FT_FRAME_USHORT( maxZones ),        FT_FRAME_USHORT( maxTwilightPoints ),        FT_FRAME_USHORT( maxStorage ),        FT_FRAME_USHORT( maxFunctionDefs ),        FT_FRAME_USHORT( maxInstructionDefs ),        FT_FRAME_USHORT( maxStackElements ),        FT_FRAME_USHORT( maxSizeOfInstructions ),        FT_FRAME_USHORT( maxComponentElements ),        FT_FRAME_USHORT( maxComponentDepth ),      FT_FRAME_END    };    error = face->goto_table( face, TTAG_maxp, stream, 0 );    if ( error )      goto Exit;    if ( FT_STREAM_READ_FIELDS( maxp_fields, maxProfile ) )      goto Exit;    maxProfile->maxPoints             = 0;    maxProfile->maxContours           = 0;    maxProfile->maxCompositePoints    = 0;    maxProfile->maxCompositeContours  = 0;    maxProfile->maxZones              = 0;    maxProfile->maxTwilightPoints     = 0;    maxProfile->maxStorage            = 0;    maxProfile->maxFunctionDefs       = 0;    maxProfile->maxInstructionDefs    = 0;    maxProfile->maxStackElements      = 0;    maxProfile->maxSizeOfInstructions = 0;    maxProfile->maxComponentElements  = 0;    maxProfile->maxComponentDepth     = 0;    if ( maxProfile->version >= 0x10000L )    {      if ( FT_STREAM_READ_FIELDS( maxp_fields_extra, maxProfile ) )        goto Exit;      /* XXX: an adjustment that is necessary to load certain */      /*      broken fonts like `Keystrokes MT' :-(           */      /*                                                      */      /*   We allocate 64 function entries by default when    */      /*   the maxFunctionDefs field is null.                 */      if ( maxProfile->maxFunctionDefs == 0 )        maxProfile->maxFunctionDefs = 64;      /* we add 4 phantom points later */      if ( maxProfile->maxTwilightPoints > ( 0xFFFFU - 4 ) )      {        FT_TRACE0(( "tt_face_load_maxp:"                    " too much twilight points in `maxp' table;/n"                    "                  "                    " some glyphs might be rendered incorrectly/n" ));        maxProfile->maxTwilightPoints = 0xFFFFU - 4;      }    }    FT_TRACE3(( "numGlyphs: %u/n", maxProfile->numGlyphs ));  Exit:    return error;  }
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:89,


示例8: tt_face_load_font_dir

  tt_face_load_font_dir( TT_Face    face,                         FT_Stream  stream )  {    SFNT_HeaderRec  sfnt;    FT_Error        error;    FT_Memory       memory = stream->memory;    TT_TableRec*    entry;    FT_Int          nn;    static const FT_Frame_Field  offset_table_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  SFNT_HeaderRec      FT_FRAME_START( 8 ),        FT_FRAME_USHORT( num_tables ),        FT_FRAME_USHORT( search_range ),        FT_FRAME_USHORT( entry_selector ),        FT_FRAME_USHORT( range_shift ),      FT_FRAME_END    };    FT_TRACE2(( "tt_face_load_font_dir: %08p/n", face ));    /* read the offset table */    sfnt.offset = FT_STREAM_POS();    if ( FT_READ_ULONG( sfnt.format_tag )                    ||         FT_STREAM_READ_FIELDS( offset_table_fields, &sfnt ) )      goto Exit;    /* many fonts don't have these fields set correctly */#if 0    if ( sfnt.search_range != 1 << ( sfnt.entry_selector + 4 )        ||         sfnt.search_range + sfnt.range_shift != sfnt.num_tables << 4 )      return SFNT_Err_Unknown_File_Format;#endif    /* load the table directory */    FT_TRACE2(( "-- Number of tables: %10u/n",    sfnt.num_tables ));    FT_TRACE2(( "-- Format version:   0x%08lx/n", sfnt.format_tag ));    /* check first */    error = check_table_dir( &sfnt, stream );    if ( error )    {      FT_TRACE2(( "tt_face_load_font_dir:"                  " invalid table directory for TrueType/n" ));      goto Exit;    }    face->num_tables = sfnt.num_tables;    face->format_tag = sfnt.format_tag;    if ( FT_QNEW_ARRAY( face->dir_tables, face->num_tables ) )      goto Exit;    if ( FT_STREAM_SEEK( sfnt.offset + 12 )       ||         FT_FRAME_ENTER( face->num_tables * 16L ) )      goto Exit;    entry = face->dir_tables;    for ( nn = 0; nn < sfnt.num_tables; nn++ )    {      entry->Tag      = FT_GET_TAG4();      entry->CheckSum = FT_GET_ULONG();      entry->Offset   = FT_GET_LONG();      entry->Length   = FT_GET_LONG();      /* ignore invalid tables */      if ( entry->Offset + entry->Length > stream->size )        continue;      else      {        FT_TRACE2(( "  %c%c%c%c  -  %08lx  -  %08lx/n",                    (FT_Char)( entry->Tag >> 24 ),                    (FT_Char)( entry->Tag >> 16 ),                    (FT_Char)( entry->Tag >> 8  ),                    (FT_Char)( entry->Tag       ),                    entry->Offset,                    entry->Length ));        entry++;      }    }    FT_FRAME_EXIT();    FT_TRACE2(( "table directory loaded/n/n" ));  Exit:    return error;  }
开发者ID:howardgao-mt,项目名称:myd3dlib,代码行数:97,


示例9: tt_face_load_font_dir

  tt_face_load_font_dir( TT_Face    face,                         FT_Stream  stream )  {    SFNT_HeaderRec  sfnt;    FT_Error        error;    FT_Memory       memory = stream->memory;    TT_TableRec*    entry;    FT_Int          nn;    static const FT_Frame_Field  offset_table_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  SFNT_HeaderRec      FT_FRAME_START( 8 ),        FT_FRAME_USHORT( num_tables ),        FT_FRAME_USHORT( search_range ),        FT_FRAME_USHORT( entry_selector ),        FT_FRAME_USHORT( range_shift ),      FT_FRAME_END    };    FT_TRACE2(( "tt_face_load_font_dir: %08p/n", face ));    /* read the offset table */    sfnt.offset = FT_STREAM_POS();    if ( FT_READ_ULONG( sfnt.format_tag )                    ||         FT_STREAM_READ_FIELDS( offset_table_fields, &sfnt ) )      goto Exit;    /* many fonts don't have these fields set correctly */#if 0    if ( sfnt.search_range != 1 << ( sfnt.entry_selector + 4 )        ||         sfnt.search_range + sfnt.range_shift != sfnt.num_tables << 4 )      return FT_THROW( Unknown_File_Format );#endif    /* load the table directory */    FT_TRACE2(( "-- Number of tables: %10u/n",    sfnt.num_tables ));    FT_TRACE2(( "-- Format version:   0x%08lx/n", sfnt.format_tag ));    if ( sfnt.format_tag != TTAG_OTTO )    {      /* check first */      error = check_table_dir( &sfnt, stream );      if ( error )      {        FT_TRACE2(( "tt_face_load_font_dir:"                    " invalid table directory for TrueType/n" ));        goto Exit;      }    }    face->num_tables = sfnt.num_tables;    face->format_tag = sfnt.format_tag;    if ( FT_QNEW_ARRAY( face->dir_tables, face->num_tables ) )      goto Exit;    if ( FT_STREAM_SEEK( sfnt.offset + 12 )       ||         FT_FRAME_ENTER( face->num_tables * 16L ) )      goto Exit;    entry = face->dir_tables;    FT_TRACE2(( "/n"                "  tag    offset    length   checksum/n"                "  ----------------------------------/n" ));    for ( nn = 0; nn < sfnt.num_tables; nn++ )    {      entry->Tag      = FT_GET_TAG4();      entry->CheckSum = FT_GET_ULONG();      entry->Offset   = FT_GET_ULONG();      entry->Length   = FT_GET_ULONG();      /* ignore invalid tables that can't be sanitized */      if ( entry->Offset > stream->size )        continue;      else if ( entry->Length > stream->size - entry->Offset )      {        if ( entry->Tag == TTAG_hmtx ||             entry->Tag == TTAG_vmtx )        {#ifdef FT_DEBUG_LEVEL_TRACE          FT_ULong  old_length = entry->Length;#endif          /* make metrics table length a multiple of 4 */          entry->Length = ( stream->size - entry->Offset ) & ~3U;          FT_TRACE2(( "  %c%c%c%c  %08lx  %08lx  %08lx"                      " (sanitized; original length %08lx)/n",//.........这里部分代码省略.........
开发者ID:Blitzker,项目名称:assfilter,代码行数:101,


示例10: woff_open_font

  static FT_Error  woff_open_font( FT_Stream  stream,                  TT_Face    face )  {    FT_Memory       memory = stream->memory;    FT_Error        error  = FT_Err_Ok;    WOFF_HeaderRec  woff;    WOFF_Table      tables  = NULL;    WOFF_Table*     indices = NULL;    FT_ULong        woff_offset;    FT_Byte*        sfnt        = NULL;    FT_Stream       sfnt_stream = NULL;    FT_Byte*        sfnt_header;    FT_ULong        sfnt_offset;    FT_Int          nn;    FT_ULong        old_tag = 0;    static const FT_Frame_Field  woff_header_fields[] =    {#undef  FT_STRUCTURE#define FT_STRUCTURE  WOFF_HeaderRec      FT_FRAME_START( 44 ),        FT_FRAME_ULONG ( signature ),        FT_FRAME_ULONG ( flavor ),        FT_FRAME_ULONG ( length ),        FT_FRAME_USHORT( num_tables ),        FT_FRAME_USHORT( reserved ),        FT_FRAME_ULONG ( totalSfntSize ),        FT_FRAME_USHORT( majorVersion ),        FT_FRAME_USHORT( minorVersion ),        FT_FRAME_ULONG ( metaOffset ),        FT_FRAME_ULONG ( metaLength ),        FT_FRAME_ULONG ( metaOrigLength ),        FT_FRAME_ULONG ( privOffset ),        FT_FRAME_ULONG ( privLength ),      FT_FRAME_END    };    FT_ASSERT( stream == face->root.stream );    FT_ASSERT( FT_STREAM_POS() == 0 );    if ( FT_STREAM_READ_FIELDS( woff_header_fields, &woff ) )      return error;    /* Make sure we don't recurse back here or hit TTC code. */    if ( woff.flavor == TTAG_wOFF || woff.flavor == TTAG_ttcf )      return FT_THROW( Invalid_Table );    /* Miscellaneous checks. */    if ( woff.length != stream->size                              ||         woff.num_tables == 0                                     ||         44 + woff.num_tables * 20UL >= woff.length               ||         12 + woff.num_tables * 16UL >= woff.totalSfntSize        ||         ( woff.totalSfntSize & 3 ) != 0                          ||         ( woff.metaOffset == 0 && ( woff.metaLength != 0     ||                                     woff.metaOrigLength != 0 ) ) ||         ( woff.metaLength != 0 && woff.metaOrigLength == 0 )     ||         ( woff.privOffset == 0 && woff.privLength != 0 )         )      return FT_THROW( Invalid_Table );    if ( FT_ALLOC( sfnt, woff.totalSfntSize ) ||         FT_NEW( sfnt_stream )                )      goto Exit;    sfnt_header = sfnt;    /* Write sfnt header. */    {      FT_UInt  searchRange, entrySelector, rangeShift, x;      x             = woff.num_tables;      entrySelector = 0;      while ( x )      {        x            >>= 1;        entrySelector += 1;      }      entrySelector--;      searchRange = ( 1 << entrySelector ) * 16;      rangeShift  = woff.num_tables * 16 - searchRange;      WRITE_ULONG ( sfnt_header, woff.flavor );      WRITE_USHORT( sfnt_header, woff.num_tables );      WRITE_USHORT( sfnt_header, searchRange );      WRITE_USHORT( sfnt_header, entrySelector );      WRITE_USHORT( sfnt_header, rangeShift );    }    /* While the entries in the sfnt header must be sorted by the */    /* tag value, the tables themselves are not.  We thus have to */    /* sort them by offset and check that they don't overlap.     *///.........这里部分代码省略.........
开发者ID:johndpope,项目名称:Medusa,代码行数:101,


示例11: FT_FRAME_START

  {    FT_UShort  tag;    FT_Long    size;  } PFB_Tag;#undef  FT_STRUCTURE#define FT_STRUCTURE  PFB_Tag  static  const FT_Frame_Field  pfb_tag_fields[] =  {    FT_FRAME_START( 6 ),      FT_FRAME_USHORT ( tag ),      FT_FRAME_LONG_LE( size ),    FT_FRAME_END  };  static FT_Error  read_pfb_tag( FT_Stream   stream,                FT_UShort*  tag,                FT_Long*    size )  {    FT_Error  error;    PFB_Tag   head;    *tag  = 0;
开发者ID:8l,项目名称:inferno,代码行数:31,



注:本文中的FT_FRAME_USHORT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ FT_GLYPH函数代码示例
C++ FT_FRAME_RELEASE函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。