亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ftobjs.c

?? a very goog book
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
      slot->linearHoriAdvance = FT_MulDiv( slot->linearHoriAdvance,                                           (FT_Long)metrics->x_ppem << 16, EM );      slot->linearVertAdvance = FT_MulDiv( slot->linearVertAdvance,                                           (FT_Long)metrics->y_ppem << 16, EM );    }    if ( ( load_flags & FT_LOAD_IGNORE_TRANSFORM ) == 0 )    {      FT_Face_Internal  internal = face->internal;      /* now, transform the glyph image if needed */      if ( internal->transform_flags )      {        /* get renderer */        FT_Renderer  renderer = ft_lookup_glyph_renderer( slot );        if ( renderer )          error = renderer->clazz->transform_glyph(                                     renderer, slot,                                     &internal->transform_matrix,                                     &internal->transform_delta );        /* transform advance */        FT_Vector_Transform( &slot->advance, &internal->transform_matrix );      }    }    /* do we need to render the image now? */    if ( !error                                    &&         slot->format != ft_glyph_format_bitmap    &&         slot->format != ft_glyph_format_composite &&         load_flags & FT_LOAD_RENDER )    {      error = FT_Render_Glyph( slot,                               ( load_flags & FT_LOAD_MONOCHROME )                                  ? ft_render_mode_mono                                  : ft_render_mode_normal );    }  Exit:    return error;  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_Load_Char( FT_Face   face,                FT_ULong  char_code,                FT_Int    load_flags )  {    FT_UInt  glyph_index;    if ( !face )      return FT_Err_Invalid_Face_Handle;    glyph_index = (FT_UInt)char_code;    if ( face->charmap )      glyph_index = FT_Get_Char_Index( face, char_code );    return FT_Load_Glyph( face, glyph_index, load_flags );  }  /* destructor for sizes list */  static void  destroy_size( FT_Memory  memory,                FT_Size    size,                FT_Driver  driver )  {    /* finalize client-specific data */    if ( size->generic.finalizer )      size->generic.finalizer( size );    /* finalize format-specific stuff */    if ( driver->clazz->done_size )      driver->clazz->done_size( size );    FT_FREE( size->internal );    FT_FREE( size );  }  /* destructor for faces list */  static void  destroy_face( FT_Memory  memory,                FT_Face    face,                FT_Driver  driver )  {    FT_Driver_Class  clazz = driver->clazz;    /* discard auto-hinting data */    if ( face->autohint.finalizer )      face->autohint.finalizer( face->autohint.data );    /* Discard glyph slots for this face.                           */    /* Beware!  FT_Done_GlyphSlot() changes the field `face->glyph' */    while ( face->glyph )      FT_Done_GlyphSlot( face->glyph );    /* discard all sizes for this face */    FT_List_Finalize( &face->sizes_list,                     (FT_List_Destructor)destroy_size,                     memory,                     driver );    face->size = 0;    /* now discard client data */    if ( face->generic.finalizer )      face->generic.finalizer( face );#ifdef FT_CONFIG_OPTION_USE_CMAPS    /* discard charmaps */    {      FT_Int  n;      for ( n = 0; n < face->num_charmaps; n++ )      {        FT_CMap  cmap = FT_CMAP( face->charmaps[n] );        FT_CMap_Done( cmap );        face->charmaps[n] = NULL;      }      FT_FREE( face->charmaps );      face->num_charmaps = 0;    }#endif /* FT_CONFIG_OPTION_USE_CMAPS */    /* finalize format-specific stuff */    if ( clazz->done_face )      clazz->done_face( face );    /* close the stream for this face if needed */    ft_input_stream_free(      face->stream,      ( face->face_flags & FT_FACE_FLAG_EXTERNAL_STREAM ) != 0 );    face->stream = 0;    /* get rid of it */    if ( face->internal )    {      FT_FREE( face->internal->postscript_name );      FT_FREE( face->internal );    }    FT_FREE( face );  }  static void  Destroy_Driver( FT_Driver  driver )  {    FT_List_Finalize( &driver->faces_list,                      (FT_List_Destructor)destroy_face,                      driver->root.memory,                      driver );    /* check whether we need to drop the driver's glyph loader */    if ( FT_DRIVER_USES_OUTLINES( driver ) )      FT_GlyphLoader_Done( driver->glyph_loader );  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    open_face                                                          */  /*                                                                       */  /* <Description>                                                         */  /*    This function does some work for FT_Open_Face().                   */  /*                                                                       */  static FT_Error  open_face( FT_Driver      driver,             FT_Stream      stream,             FT_Long        face_index,             FT_Int         num_params,             FT_Parameter*  params,             FT_Face*       aface )  {    FT_Memory         memory;    FT_Driver_Class  clazz;    FT_Face           face = 0;    FT_Error          error;    FT_Face_Internal  internal;    clazz  = driver->clazz;    memory = driver->root.memory;    /* allocate the face object and perform basic initialization */    if ( FT_ALLOC( face, clazz->face_object_size ) )      goto Fail;    if ( FT_NEW( internal ) )      goto Fail;    face->internal = internal;    face->driver   = driver;    face->memory   = memory;    face->stream   = stream;    error = clazz->init_face( stream,                              face,                              face_index,                              num_params,                              params );    if ( error )      goto Fail;    *aface = face;  Fail:    if ( error )    {      clazz->done_face( face );      FT_FREE( face->internal );      FT_FREE( face );      *aface = 0;    }    return error;  }  /* there's a Mac-specific extended implementation of FT_New_Face() */  /* in src/base/ftmac.c                                             */#ifndef FT_MACINTOSH  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_New_Face( FT_Library   library,               const char*  pathname,               FT_Long      face_index,               FT_Face     *aface )  {    FT_Open_Args  args;    /* test for valid `library' and `aface' delayed to FT_Open_Face() */    if ( !pathname )      return FT_Err_Invalid_Argument;    args.flags    = ft_open_pathname;    args.pathname = (char*)pathname;    return FT_Open_Face( library, &args, face_index, aface );  }#endif  /* !FT_MACINTOSH */  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_New_Memory_Face( FT_Library      library,                      const FT_Byte*  file_base,                      FT_Long         file_size,                      FT_Long         face_index,                      FT_Face        *aface )  {    FT_Open_Args  args;    /* test for valid `library' and `face' delayed to FT_Open_Face() */    if ( !file_base )      return FT_Err_Invalid_Argument;    args.flags       = ft_open_memory;    args.memory_base = file_base;    args.memory_size = file_size;    return FT_Open_Face( library, &args, face_index, aface );  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_Open_Face( FT_Library     library,                FT_Open_Args*  args,                FT_Long        face_index,                FT_Face       *aface )  {    FT_Error     error;    FT_Driver    driver;    FT_Memory    memory;    FT_Stream    stream;    FT_Face      face = 0;    FT_ListNode  node = 0;    FT_Bool      external_stream;    /* test for valid `library' delayed to */    /* ft_input_stream_new()               */    if ( !aface || !args )      return FT_Err_Invalid_Argument;    *aface = 0;    external_stream = FT_BOOL( ( args->flags & ft_open_stream ) &&                               args->stream                     );    /* create input stream */    error = ft_input_stream_new( library, args, &stream );    if ( error )      goto Exit;    memory = library->memory;    /* If the font driver is specified in the `args' structure, use */    /* it.  Otherwise, we scan the list of registered drivers.      */    if ( ( args->flags & ft_open_driver ) && args->driver )    {      driver = FT_DRIVER( args->driver );      /* not all modules are drivers, so check... */      if ( FT_MODULE_IS_DRIVER( driver ) )      {        FT_Int         num_params = 0;        FT_Parameter*  params     = 0;        if ( args->flags & ft_open_params )        {          num_params = args->num_params;          params     = args->params;        }        error = open_face( driver, stream, face_index,                           num_params, params, &face );        if ( !error )          goto Success;      }      else        error = FT_Err_Invalid_Handle;      ft_input_stream_free( stream, external_stream );      goto Fail;    }    else    {      /* check each font driver for an appropriate format */      FT_Module*  cur   = library->modules;      FT_Module*  limit = cur + library->num_modules;      for ( ; cur < limit; cur++ )      {        /* not all modules are font drivers, so check... */        if ( FT_MODULE_IS_DRIVER( cur[0] ) )        {          FT_Int         num_params = 0;          FT_Parameter*  params     = 0;          driver = FT_DRIVER( cur[0] );          if ( args->flags & ft_open_params )          {            num_params = args->num_params;            params     = args->params;          }          error = open_face( driver, stream, face_index,                             num_params, params, &face );          if ( !error )            goto Success;          if ( FT_ERROR_BASE( error ) != FT_Err_Unknown_File_Format )            goto Fail2;        }      }      /* no driver is able to handle this format */      error = FT_Err_Unknown_File_Format;  Fail2:      ft_input_stream_free( stream, external_stream );      goto Fail;    }  Success:    FT_TRACE4(( "FT_Open_Face: New face object, adding to list\n" ));    /* set the FT_FACE_FLAG_EXTERNAL_STREAM bit for FT_Done_Face */    if ( external_stream )      face->face_flags |= FT_FACE_FLAG_EXTERNAL_STREAM;    /* add the face object to its driver's list */    if ( FT_NEW( node ) )      goto Fail;    node->data = face;    /* don't assume driver is the same as face->driver, so use */    /* face->driver instead.                                   */    FT_List_Add( &face->driver->faces_list, node );    /* now allocate a glyph slot object for the face */    {      FT_GlyphSlot  slot;      FT_TRACE4(( "FT_Open_Face: Creating glyph slot\n" ));      error = FT_New_GlyphSlot( face, &slot );      if ( error )        goto Fail;      face->glyph = slot;    }    /* finally, allocate a size object for the face */    {      FT_Size  size;      FT_TRACE4(( "FT_Open_Face: Creating size object\n" ));      error = FT_New_Size( face, &size );      if ( error )        goto Fail;      face->size = size;    }    /* initialize internal face data */    {      FT_Face_Internal  internal = face->internal;      internal->transform_matrix.xx = 0x10000L;      internal->transform_matrix.xy = 0;      internal->transform_matrix.yx = 0;      internal->transform_matrix.yy = 0x10000L;      internal->transform_delta.x = 0;      internal->transform_delta.y = 0;    }    *aface = face;    goto Exit;  Fail:    FT_Done_Face( face );  Exit:    FT_TRACE4(( "FT_Open_Face: Return %d\n", error ));    return error;  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_Attach_File( FT_Face      face,                  const char*  filepathname )  {    FT_Open_Args  open;    /* test for valid `face' delayed to FT_Attach_Stream() */    if ( !filepathname )      return FT_Err_Invalid_Argument;    open.flags    = ft_open_pathname;    open.pathname = (char*)filepathname;    return FT_Attach_Stream( face, &open );  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_Attach_Stream( FT_Face        face,                    FT_Open_Args*  parameters )  {    FT_Stream  stream;    FT_Error   error;    FT_Driver  driver;    FT_Driver_Class  clazz;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合色在线| 亚洲精品国产品国语在线app| 成人ar影院免费观看视频| 国产精品成人免费精品自在线观看| 日本高清不卡aⅴ免费网站| 亚洲成在线观看| 中文字幕中文字幕一区| 日韩欧美三级在线| 91精品国产综合久久久久久漫画 | 成人av网站在线观看免费| 亚洲图片欧美视频| 亚洲视频免费在线| 国产丝袜欧美中文另类| 国产福利精品一区| 欧美优质美女网站| 男女性色大片免费观看一区二区| 亚洲同性同志一二三专区| 久久人人爽人人爽| 精品国产一二三区| 91精品国产色综合久久| 欧美日韩电影在线播放| 欧美日高清视频| 91精品国产综合久久蜜臀| 欧美性三三影院| 欧美女孩性生活视频| 欧美日韩在线播| 欧美日韩三级视频| 欧美日本一区二区在线观看| 欧美亚洲免费在线一区| 欧美午夜在线观看| 欧美三级午夜理伦三级中视频| 99r国产精品| 成人avav影音| 91国偷自产一区二区三区成为亚洲经典 | 五月天婷婷综合| 日韩av在线播放中文字幕| 亚洲电影你懂得| 日本视频一区二区| 国产伦精品一区二区三区在线观看| 狠狠色丁香婷综合久久| 国产一区不卡视频| 91国产免费看| 欧美精品一区在线观看| 亚洲同性同志一二三专区| 天堂成人免费av电影一区| 成人少妇影院yyyy| 欧美日韩在线播放| 久久久久久久综合狠狠综合| 亚洲精品亚洲人成人网在线播放| 丝袜美腿亚洲色图| 丁香婷婷综合激情五月色| 色美美综合视频| 久久久三级国产网站| 怡红院av一区二区三区| 国产精品一色哟哟哟| 欧美三级电影在线看| 国产三区在线成人av| 蜜芽一区二区三区| 色网综合在线观看| 国产精品天美传媒沈樵| 琪琪久久久久日韩精品| 欧美亚洲综合另类| 亚洲同性gay激情无套| 另类小说综合欧美亚洲| 91官网在线免费观看| 国产亚洲午夜高清国产拍精品| 亚洲成av人片在www色猫咪| aaa欧美大片| 国产午夜亚洲精品羞羞网站| 久久99九九99精品| 国产精品综合av一区二区国产馆| 精品一区二区三区视频在线观看| av一本久道久久综合久久鬼色| 2024国产精品| 青青草视频一区| 欧美变态口味重另类| 秋霞电影网一区二区| 欧美一区二区私人影院日本| 丝袜a∨在线一区二区三区不卡| 欧美天天综合网| 午夜免费久久看| 91精品麻豆日日躁夜夜躁| 石原莉奈在线亚洲三区| 欧美伦理视频网站| 久久99精品国产91久久来源| 精品久久人人做人人爱| 国产suv精品一区二区6| 国产精品的网站| 欧美日韩免费在线视频| 九一九一国产精品| 欧美一区二区三区四区五区 | 91福利资源站| 美女视频黄久久| 555www色欧美视频| 国产成人午夜精品5599| 7878成人国产在线观看| 久久草av在线| 国产欧美一区二区三区在线老狼| 91偷拍与自偷拍精品| 麻豆一区二区三| 国产精品乱码一区二三区小蝌蚪| 欧美日韩精品久久久| 国产精品一区免费在线观看| 2020国产精品自拍| 欧美自拍偷拍一区| 国内不卡的二区三区中文字幕 | 国产精品国产a| 欧美亚洲动漫制服丝袜| 国产91在线观看丝袜| 亚洲第一综合色| 国产日韩欧美一区二区三区综合| 色欧美88888久久久久久影院| 日产精品久久久久久久性色| 中文字幕一区av| 久久蜜桃av一区二区天堂| 色婷婷综合五月| 日本午夜精品一区二区三区电影| 亚洲色图在线视频| 欧美精品一区二区久久久| 欧美一区永久视频免费观看| 91色|porny| 91丨九色丨尤物| 成人高清在线视频| 丁香网亚洲国际| 不卡影院免费观看| 99这里只有精品| 91黄色激情网站| 7799精品视频| 久久综合九色综合欧美98| 日韩区在线观看| 久久午夜羞羞影院免费观看| 2021久久国产精品不只是精品| 精品久久久久久亚洲综合网| 精品久久久久久久久久久院品网| 国产在线不卡一区| 亚洲美腿欧美偷拍| 亚洲成人av一区二区| 自拍偷拍亚洲激情| 亚洲另类在线制服丝袜| 亚洲黄色录像片| 日韩电影网1区2区| 国产宾馆实践打屁股91| 91久久精品一区二区二区| 欧美性一区二区| www国产精品av| 亚洲综合一区二区| 日本免费在线视频不卡一不卡二| 精品一区二区三区欧美| 97久久精品人人澡人人爽| 欧美日韩一区二区三区四区五区| 91麻豆精品国产91久久久久久久久 | 综合久久久久久| 日韩av电影免费观看高清完整版| 国产精品一区二区视频| 在线观看视频一区| 2021国产精品久久精品| 一区二区三区精品在线| 精品一区二区三区不卡| 一本一道波多野结衣一区二区| 日韩午夜激情免费电影| 亚洲女同一区二区| 日韩精品亚洲专区| 91亚洲资源网| 国产欧美一区二区在线观看| 日韩av成人高清| 欧美日韩视频在线第一区| 国产精品久久久一本精品| 美女视频网站久久| 69p69国产精品| 亚洲一区二区中文在线| 99精品桃花视频在线观看| 久久久精品影视| 国模娜娜一区二区三区| 欧美日韩一区二区电影| 一级做a爱片久久| 在线观看日产精品| 亚洲特级片在线| 91丨porny丨首页| 亚洲男人都懂的| 色先锋资源久久综合| 一二三四区精品视频| 在线一区二区视频| 亚洲一区二区三区激情| 欧美嫩在线观看| 国产专区欧美精品| 久久精品亚洲一区二区三区浴池| 国产制服丝袜一区| 国产拍欧美日韩视频二区| 顶级嫩模精品视频在线看| 亚洲精品伦理在线| 欧美日韩黄色一区二区| 日韩国产欧美在线播放| 2023国产精华国产精品| 99久久精品国产导航| 午夜免费久久看| 日本一区二区三区在线观看| 成人av午夜影院| 蜜桃av一区二区| 日韩美女久久久| 日韩女优电影在线观看|