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

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

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

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

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

示例1: FontManager

bool CWin32Font::Create(const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags){	FT_Library library = FontManager().GetFTLibrary();	if (!library)		return false;	const unsigned char *file = FontManager().GetFontFile(windowsFontName);	if (!file)	{		m_szName = UTL_INVAL_SYMBOL;		return false;	}	FT_Face face;	FT_Open_Args args;	args.flags = FT_OPEN_MEMORY | FT_OPEN_DRIVER;	args.memory_base = file + sizeof(int);	args.memory_size = *((const int *)file);	args.stream = NULL;	args.driver = FT_Get_Module(library, "truetype");	if (FT_Open_Face(library, &args, 0, &face))	{		m_szName = UTL_INVAL_SYMBOL;		return false;	}	m_FTFace = face;	m_szName = windowsFontName;	m_iTall = tall;	m_iFlags = flags & WIN32FONT_FLAGS_MASK;	m_iScanLines = scanlines;	m_iBlur = blur;	m_iDropShadowOffset = (flags & vgui::ISurface::FONTFLAG_DROPSHADOW) ? 1 : 0;	m_iOutlineSize = (flags & vgui::ISurface::FONTFLAG_OUTLINE) ? 1 : 0;	m_bRotary = (flags & vgui::ISurface::FONTFLAG_ROTARY) ? 1 : 0;	m_bAdditive = (flags & vgui::ISurface::FONTFLAG_ADDITIVE) ? 1 : 0;	tall <<= 6;	FT_Set_Char_Size(face, tall, tall, 72, 72);	float scale = ((float)(face->size->metrics.ascender) * (1.0f / 64.0f)) / (float)(face->ascender);	m_iBaseline = (int)(ceilf((float)(face->bbox.yMax) * scale));	m_iHeight = m_iBaseline + (int)(ceilf((float)(-face->bbox.yMin) * scale)) + m_iDropShadowOffset + (m_iOutlineSize << 1);	m_iMaxCharWidth = (face->size->metrics.max_advance + 127) >> 6;	m_iAscent = (int)(ceilf((float)(face->ascender) * scale));	m_rgiBitmapSize[0] = m_iMaxCharWidth + (m_iOutlineSize << 1);	m_rgiBitmapSize[1] = m_iHeight;	return true;}
开发者ID:TrentSterling,项目名称:D0G,代码行数:52,


示例2: T1_Size_Get_Globals_Funcs

static PSH_Globals_FuncsT1_Size_Get_Globals_Funcs( T1_Size  size ){    T1_Face           face     = (T1_Face)size->root.face;    PSHinter_Service  pshinter = (PSHinter_Service)face->pshinter;    FT_Module         module;    module = FT_Get_Module( size->root.face->driver->root.library,                            "pshinter" );    return ( module && pshinter && pshinter->get_globals_funcs )           ? pshinter->get_globals_funcs( module )           : 0 ;}
开发者ID:rcombs,项目名称:freetype-fpu,代码行数:14,


示例3: open_face_from_buffer

  /* Create a new FT_Face given a buffer and a driver name. */  static FT_Error  open_face_from_buffer( FT_Library  library,                         FT_Byte*    base,                         FT_ULong    size,                         FT_Long     face_index,                         char*       driver_name,                         FT_Face*    aface )  {    FT_Open_Args  args;    FT_Error      error;    FT_Stream     stream;    FT_Memory     memory = library->memory;    error = new_memory_stream( library,                               base,                               size,                               memory_stream_close,                               &stream );    if ( error )    {      FT_FREE( base );      return error;    }    args.flags  = FT_OPEN_STREAM;    args.stream = stream;    if ( driver_name )    {      args.flags  = args.flags | FT_OPEN_DRIVER;      args.driver = FT_Get_Module( library, driver_name );    }    /* At this point, face_index has served its purpose;      */    /* whoever calls this function has already used it to     */    /* locate the correct font data.  We should not propagate */    /* this index to FT_Open_Face() (unless it is negative).  */    if ( face_index > 0 )      face_index = 0;    error = FT_Open_Face( library, &args, face_index, aface );    if ( error == FT_Err_Ok )      (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;    else      FT_Stream_Free( stream, 0 );    return error;  }
开发者ID:gorlak,项目名称:panda3d-thirdparty,代码行数:50,


示例4: cff_size_get_globals_funcs

  static PSH_Globals_Funcs  cff_size_get_globals_funcs( CFF_Size  size )  {    CFF_Face          face     = (CFF_Face)size->root.face;    CFF_Font          font     = (CFF_Font)face->extra.data;    PSHinter_Service  pshinter = font->pshinter;    FT_Module         module;    module = FT_Get_Module( size->root.face->driver->root.library,                            "pshinter" );    return ( module && pshinter && pshinter->get_globals_funcs )           ? pshinter->get_globals_funcs( module )           : 0;  }
开发者ID:litao1009,项目名称:SimpleRoom,代码行数:15,


示例5: cff_get_interface

  cff_get_interface( FT_Module    driver,       /* CFF_Driver */                     const char*  module_interface )  {    FT_Module            sfnt;    FT_Module_Interface  result;    result = ft_service_list_lookup( cff_services, module_interface );    if ( result != NULL )      return  result;    /* we pass our request to the `sfnt' module */    sfnt = FT_Get_Module( driver->library, "sfnt" );    return sfnt ? sfnt->clazz->get_interface( sfnt, module_interface ) : 0;  }
开发者ID:AVarfolomeev,项目名称:picasso-graphic,代码行数:16,


示例6: T42_Driver_Init

  T42_Driver_Init( FT_Module  module )        /* T42_Driver */  {    T42_Driver  driver = (T42_Driver)module;    FT_Module   ttmodule;    ttmodule = FT_Get_Module( module->library, "truetype" );    if ( !ttmodule )    {      FT_ERROR(( "T42_Driver_Init: cannot access `truetype' module/n" ));      return FT_THROW( Missing_Module );    }    driver->ttclazz = (FT_Driver_Class)ttmodule->clazz;    return FT_Err_Ok;  }
开发者ID:03050903,项目名称:libgdx,代码行数:17,


示例7: open_face_from_buffer

  /* Create a new FT_Face given a buffer and a driver name. */  static FT_Error  open_face_from_buffer( FT_Library  library,                         FT_Byte*    base,                         FT_ULong    size,                         FT_Long     face_index,                         char*       driver_name,                         FT_Face    *aface )  {    FT_Open_Args  args;    FT_Error      error;    FT_Stream     stream;    FT_Memory     memory = library->memory;    error = new_memory_stream( library,                               base,                               size,                               memory_stream_close,                               &stream );    if ( error )    {      FT_FREE( base );      return error;    }    args.flags = ft_open_stream;    args.stream = stream;    if ( driver_name )    {      args.flags = args.flags | ft_open_driver;      args.driver = FT_Get_Module( library, driver_name );    }    error = FT_Open_Face( library, &args, face_index, aface );    if ( error == FT_Err_Ok )      (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;    else    {      FT_Stream_CloseFunc( stream );      FT_FREE( stream );    }    return error;  }
开发者ID:dikerex,项目名称:theqvd,代码行数:45,


示例8: tt_get_interface

  tt_get_interface( FT_Module    driver,    /* TT_Driver */                    const char*  tt_interface )  {    FT_Library           library;    FT_Module_Interface  result;    FT_Module            sfntd;    SFNT_Service         sfnt;    /* TT_SERVICES_GET derefers `library' in PIC mode */#ifdef FT_CONFIG_OPTION_PIC    if ( !driver )      return NULL;    library = driver->library;    if ( !library )      return NULL;#endif    result = ft_service_list_lookup( TT_SERVICES_GET, tt_interface );    if ( result != NULL )      return result;#ifndef FT_CONFIG_OPTION_PIC    if ( !driver )      return NULL;    library = driver->library;    if ( !library )      return NULL;#endif    /* only return the default interface from the SFNT module */    sfntd = FT_Get_Module( library, "sfnt" );    if ( sfntd )    {      sfnt = (SFNT_Service)( sfntd->clazz->module_interface );      if ( sfnt )        return sfnt->get_interface( driver, tt_interface );    }    return 0;  }
开发者ID:WHS-TechOps,项目名称:Aviator,代码行数:41,


示例9: T1_GlyphSlot_Init

 FT_LOCAL_DEF FT_Error T1_GlyphSlot_Init( T1_GlyphSlot   slot ) {     T1_Face              face;   PSHinter_Interface*  pshinter;      face     = (T1_Face) slot->root.face;   pshinter = face->pshinter;   if (pshinter)   {     FT_Module  module;          module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );     if (module)     {       T1_Hints_Funcs  funcs;              funcs = pshinter->get_t1_funcs( module );       slot->root.internal->glyph_hints = (void*)funcs;     }   }   return 0; }
开发者ID:Skiles,项目名称:aseprite,代码行数:23,


示例10: tt_get_interface

  tt_get_interface( FT_Module    driver,    /* TT_Driver */                    const char*  tt_interface )  {    FT_Module_Interface  result;    FT_Module            sfntd;    SFNT_Service         sfnt;    result = ft_service_list_lookup( tt_services, tt_interface );    if ( result != NULL )      return result;    /* only return the default interface from the SFNT module */    sfntd = FT_Get_Module( driver->library, "sfnt" );    if ( sfntd )    {      sfnt = (SFNT_Service)( sfntd->clazz->module_interface );      if ( sfnt )        return sfnt->get_interface( driver, tt_interface );    }    return 0;  }
开发者ID:allanw1,项目名称:Arianrhod,代码行数:23,


示例11: cff_get_interface

  cff_get_interface( FT_Module    driver,       /* CFF_Driver */                     const char*  module_interface )  {    FT_Library           library;    FT_Module            sfnt;    FT_Module_Interface  result;    result = ft_service_list_lookup( cff_services, module_interface );    if ( result )      return result;    /* `driver' is not yet evaluated */    if ( !driver )      return NULL;    library = driver->library;    if ( !library )      return NULL;    /* we pass our request to the `sfnt' module */    sfnt = FT_Get_Module( library, "sfnt" );    return sfnt ? sfnt->clazz->get_interface( sfnt, module_interface ) : 0;  }
开发者ID:GWRon,项目名称:pub.mod-NG,代码行数:24,


示例12: cff_get_name_index

  static FT_UInt  cff_get_name_index( CFF_Face    face,                      FT_String*  glyph_name )  {    CFF_Font            cff;    CFF_Charset         charset;    FT_Service_PsCMaps  psnames;    FT_String*          name;    FT_UShort           sid;    FT_UInt             i;    cff     = (CFF_FontRec *)face->extra.data;    charset = &cff->charset;    /* CFF2 table does not have glyph names; */    /* we need to use `post' table method    */    if ( cff->version_major == 2 )    {      FT_Library            library     = FT_FACE_LIBRARY( face );      FT_Module             sfnt_module = FT_Get_Module( library, "sfnt" );      FT_Service_GlyphDict  service     =        (FT_Service_GlyphDict)ft_module_get_service(                                 sfnt_module,                                 FT_SERVICE_ID_GLYPH_DICT,                                 0 );      if ( service && service->name_index )        return service->name_index( FT_FACE( face ), glyph_name );      else      {        FT_ERROR(( "cff_get_name_index:"                   " cannot get glyph index from a CFF2 font/n"                   "                   "                   " without the `psnames' module/n" ));        return 0;      }    }    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );    if ( !psnames )      return 0;    for ( i = 0; i < cff->num_glyphs; i++ )    {      sid = charset->sids[i];      if ( sid > 390 )        name = cff_index_get_string( cff, sid - 391 );      else        name = (FT_String *)psnames->adobe_std_strings( sid );      if ( !name )        continue;      if ( !ft_strcmp( glyph_name, name ) )        return i;    }    return 0;  }
开发者ID:GWRon,项目名称:pub.mod-NG,代码行数:62,


示例13: cff_get_glyph_name

  static FT_Error  cff_get_glyph_name( CFF_Face    face,                      FT_UInt     glyph_index,                      FT_Pointer  buffer,                      FT_UInt     buffer_max )  {    CFF_Font    font   = (CFF_Font)face->extra.data;    FT_String*  gname;    FT_UShort   sid;    FT_Error    error;    /* CFF2 table does not have glyph names; */    /* we need to use `post' table method    */    if ( font->version_major == 2 )    {      FT_Library            library     = FT_FACE_LIBRARY( face );      FT_Module             sfnt_module = FT_Get_Module( library, "sfnt" );      FT_Service_GlyphDict  service     =        (FT_Service_GlyphDict)ft_module_get_service(                                 sfnt_module,                                 FT_SERVICE_ID_GLYPH_DICT,                                 0 );      if ( service && service->get_name )        return service->get_name( FT_FACE( face ),                                  glyph_index,                                  buffer,                                  buffer_max );      else      {        FT_ERROR(( "cff_get_glyph_name:"                   " cannot get glyph name from a CFF2 font/n"                   "                   "                   " without the `psnames' module/n" ));        error = FT_THROW( Missing_Module );        goto Exit;      }    }    if ( !font->psnames )    {      FT_ERROR(( "cff_get_glyph_name:"                 " cannot get glyph name from CFF & CEF fonts/n"                 "                   "                 " without the `psnames' module/n" ));      error = FT_THROW( Missing_Module );      goto Exit;    }    /* first, locate the sid in the charset table */    sid = font->charset.sids[glyph_index];    /* now, lookup the name itself */    gname = cff_index_get_sid_string( font, sid );    if ( gname )      FT_STRCPYN( buffer, gname, buffer_max );    error = FT_Err_Ok;  Exit:    return error;  }
开发者ID:GWRon,项目名称:pub.mod-NG,代码行数:65,


示例14: T42_Face_Init

  T42_Face_Init( FT_Stream      stream,                 FT_Face        t42face,       /* T42_Face */                 FT_Int         face_index,                 FT_Int         num_params,                 FT_Parameter*  params )  {    T42_Face            face  = (T42_Face)t42face;    FT_Error            error;    FT_Service_PsCMaps  psnames;    PSAux_Service       psaux;    FT_Face             root  = (FT_Face)&face->root;    T1_Font             type1 = &face->type1;    PS_FontInfo         info  = &type1->font_info;    FT_UNUSED( num_params );    FT_UNUSED( params );    FT_UNUSED( stream );    face->ttf_face       = NULL;    face->root.num_faces = 1;    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );    face->psnames = psnames;    face->psaux = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),                                           "psaux" );    psaux = (PSAux_Service)face->psaux;    if ( !psaux )    {      FT_ERROR(( "T42_Face_Init: cannot access `psaux' module/n" ));      error = FT_THROW( Missing_Module );      goto Exit;    }    FT_TRACE2(( "Type 42 driver/n" ));    /* open the tokenizer, this will also check the font format */    error = T42_Open_Face( face );    if ( error )      goto Exit;    /* if we just wanted to check the format, leave successfully now */    if ( face_index < 0 )      goto Exit;    /* check the face index */    if ( face_index > 0 )    {      FT_ERROR(( "T42_Face_Init: invalid face index/n" ));      error = FT_THROW( Invalid_Argument );      goto Exit;    }    /* Now load the font program into the face object */    /* Init the face object fields */    /* Now set up root face fields */    root->num_glyphs   = type1->num_glyphs;    root->num_charmaps = 0;    root->face_index   = 0;    root->face_flags |= FT_FACE_FLAG_SCALABLE    |                        FT_FACE_FLAG_HORIZONTAL  |                        FT_FACE_FLAG_GLYPH_NAMES;    if ( info->is_fixed_pitch )      root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;    /* We only set this flag if we have the patented bytecode interpreter. */    /* There are no known `tricky' Type42 fonts that could be loaded with  */    /* the unpatented interpreter.                                         */#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER    root->face_flags |= FT_FACE_FLAG_HINTER;#endif    /* XXX: TODO -- add kerning with .afm support */    /* get style name -- be careful, some broken fonts only */    /* have a `/FontName' dictionary entry!                 */    root->family_name = info->family_name;    /* assume "Regular" style if we don't know better */    root->style_name = (char *)"Regular";    if ( root->family_name )    {      char*  full   = info->full_name;      char*  family = root->family_name;      if ( full )      {        while ( *full )        {          if ( *full == *family )          {            family++;            full++;          }          else//.........这里部分代码省略.........
开发者ID:03050903,项目名称:libgdx,代码行数:101,



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


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