⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttdriver.c

📁 qt-embedded-2.3.8.tar.gz源码
💻 C
📖 第 1 页 / 共 2 页
字号:
    FT_UNUSED( pixel_width );    FT_UNUSED( pixel_height );    /* many things have been pre-computed by the base layer */    size->ttmetrics.valid = FALSE;#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS    size->strike_index    = 0xFFFF;#endif    return TT_Reset_Size( size );  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    Load_Glyph                                                         */  /*                                                                       */  /* <Description>                                                         */  /*    A driver method used to load a glyph within a given glyph slot.    */  /*                                                                       */  /* <Input>                                                               */  /*    slot        :: A handle to the target slot object where the glyph  */  /*                   will be loaded.                                     */  /*                                                                       */  /*    size        :: A handle to the source face size at which the glyph */  /*                   must be scaled, loaded, etc.                        */  /*                                                                       */  /*    glyph_index :: The index of the glyph in the font file.            */  /*                                                                       */  /*    load_flags  :: A flag indicating what to load for this glyph.  The */  /*                   FTLOAD_??? constants can be used to control the     */  /*                   glyph loading process (e.g., whether the outline    */  /*                   should be scaled, whether to load bitmaps or not,   */  /*                   whether to hint the outline, etc).                  */  /*                                                                       */  /* <Return>                                                              */  /*    FreeType error code.  0 means success.                             */  /*                                                                       */  static  FT_Error  Load_Glyph( TT_GlyphSlot  slot,                        TT_Size       size,                        FT_UShort     glyph_index,                        FT_UInt       load_flags )  {    FT_Error  error;    if ( !slot )      return TT_Err_Invalid_Glyph_Handle;    /* check whether we want a scaled outline or bitmap */    if ( !size )      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;    if ( load_flags & FT_LOAD_NO_SCALE )      size = NULL;    /* reset the size object if necessary */    if ( size )    {      /* these two object must have the same parent */      if ( size->root.face != slot->face )        return TT_Err_Invalid_Face_Handle;      if ( !size->ttmetrics.valid )      {        if ( FT_SET_ERROR( TT_Reset_Size( size ) ) )          return error;      }    }    /* now load the glyph outline if necessary */    error = TT_Load_Glyph( size, slot, glyph_index, load_flags );    /* force drop-out mode to 2 - irrelevant now */    /* slot->outline.dropout_mode = 2; */    return error;  }  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /****                                                                 ****/  /****                                                                 ****/  /****             C H A R A C T E R   M A P P I N G S                 ****/  /****                                                                 ****/  /****                                                                 ****/  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    Get_Char_Index                                                     */  /*                                                                       */  /* <Description>                                                         */  /*    Uses a charmap to return a given character code's glyph index.     */  /*                                                                       */  /* <Input>                                                               */  /*    charmap  :: A handle to the source charmap object.                 */  /*    charcode :: The character code.                                    */  /*                                                                       */  /* <Return>                                                              */  /*    Glyph index.  0 means `undefined character code'.                  */  /*                                                                       */  static  FT_UInt  Get_Char_Index( TT_CharMap  charmap,                           FT_Long     charcode )  {    FT_Error       error;    TT_Face        face;    TT_CMapTable*  cmap;    cmap = &charmap->cmap;    face = (TT_Face)charmap->root.face;    /* Load table if needed */    if ( !cmap->loaded )    {      SFNT_Interface*  sfnt = (SFNT_Interface*)face->sfnt;      error = sfnt->load_charmap( face, cmap, face->root.stream );      if ( error )        return 0;      cmap->loaded = TRUE;    }    if ( cmap->get_index )      return cmap->get_index( cmap, charcode );    else      return 0;  }  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /****                                                                 ****/  /****                                                                 ****/  /****                D R I V E R  I N T E R F A C E                   ****/  /****                                                                 ****/  /****                                                                 ****/  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  static  FT_Module_Interface  tt_get_interface( TT_Driver    driver,                                         const char*  interface )  {    FT_Module        sfntd = FT_Get_Module( driver->root.root.library,                                            "sfnt" );    SFNT_Interface*  sfnt;    /* only return the default interface from the SFNT module */    if ( sfntd )    {      sfnt = (SFNT_Interface*)( sfntd->clazz->module_interface );      if ( sfnt )        return sfnt->get_interface( FT_MODULE( driver ), interface );    }    return 0;  }  /* The FT_DriverInterface structure is defined in ftdriver.h. */  FT_CALLBACK_TABLE_DEF  const FT_Driver_Class  tt_driver_class =  {    {      ft_module_font_driver     |      ft_module_driver_scalable |#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER      ft_module_driver_has_hinter,#else      0,#endif      sizeof ( TT_DriverRec ),      "truetype",      /* driver name                           */      0x10000L,        /* driver version == 1.0                 */      0x20000L,        /* driver requires FreeType 2.0 or above */      (void*)0,        /* driver specific interface */      (FT_Module_Constructor)TT_Init_Driver,      (FT_Module_Destructor) TT_Done_Driver,      (FT_Module_Requester)  tt_get_interface,    },    sizeof ( TT_FaceRec ),    sizeof ( TT_SizeRec ),    sizeof ( FT_GlyphSlotRec ),    (FTDriver_initFace)     TT_Init_Face,    (FTDriver_doneFace)     TT_Done_Face,    (FTDriver_initSize)     TT_Init_Size,    (FTDriver_doneSize)     TT_Done_Size,    (FTDriver_initGlyphSlot)0,    (FTDriver_doneGlyphSlot)0,    (FTDriver_setCharSizes) Set_Char_Sizes,    (FTDriver_setPixelSizes)Set_Pixel_Sizes,    (FTDriver_loadGlyph)    Load_Glyph,    (FTDriver_getCharIndex) Get_Char_Index,    (FTDriver_getKerning)   Get_Kerning,    (FTDriver_attachFile)   0,    (FTDriver_getAdvances)  0  };#ifdef FT_CONFIG_OPTION_DYNAMIC_DRIVERS  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    getDriverClass                                                     */  /*                                                                       */  /* <Description>                                                         */  /*    This function is used when compiling the TrueType driver as a      */  /*    shared library (`.DLL' or `.so').  It will be used by the          */  /*    high-level library of FreeType to retrieve the address of the      */  /*    driver's generic interface.                                        */  /*                                                                       */  /*    It shouldn't be implemented in a static build, as each driver must */  /*    have the same function as an exported entry point.                 */  /*                                                                       */  /* <Return>                                                              */  /*    The address of the TrueType's driver generic interface.  The       */  /*    format-specific interface can then be retrieved through the method */  /*    interface->get_format_interface.                                   */  /*                                                                       */  FT_EXPORT_DEF( const FT_Driver_Class* )  getDriverClass( void )  {    return &tt_driver_class;  }#endif /* CONFIG_OPTION_DYNAMIC_DRIVERS *//* END */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -