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

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

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

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

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

示例1: ftc_size_node_flush

  ftc_size_node_flush( FTC_SizeNode   node,                       FTC_SizeQuery  query )  {    FT_Size   size = node->size;    FT_Error  error;    if ( size->face == query->face )    {      FT_Activate_Size( size );      error = FT_Set_Pixel_Sizes( query->face, query->width, query->height );      if ( error )      {        FT_Done_Size( size );        node->size = NULL;      }    }    else    {      FT_Done_Size( size );      node->size = NULL;      error = ftc_size_node_init( node, query );    }    return error;  }
开发者ID:8l,项目名称:inferno,代码行数:26,


示例2: ftc_face_node_init

  ftc_face_node_init( FTC_MruNode  ftcnode,                      FT_Pointer   ftcface_id,                      FT_Pointer   ftcmanager )  {    FTC_FaceNode  node    = (FTC_FaceNode)ftcnode;    FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;    FTC_Manager   manager = (FTC_Manager)ftcmanager;    FT_Error      error;    node->face_id = face_id;    error = manager->request_face( face_id,                                   manager->library,                                   manager->request_data,                                   &node->face );    if ( !error )    {      /* destroy initial size object; it will be re-created later */      if ( node->face->size )        FT_Done_Size( node->face->size );    }    return error;  }
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:25,


示例3: ftc_scaler_lookup_size

  static FT_Error  ftc_scaler_lookup_size( FTC_Manager  manager,                          FTC_Scaler   scaler,                          FT_Size     *asize )  {    FT_Face   face;    FT_Size   size = NULL;    FT_Error  error;    error = FTC_Manager_LookupFace( manager, scaler->face_id, &face );    if ( error )      goto Exit;    error = FT_New_Size( face, &size );    if ( error )      goto Exit;    FT_Activate_Size( size );    if ( scaler->pixel )      error = FT_Set_Pixel_Sizes( face, scaler->width, scaler->height );    else      error = FT_Set_Char_Size( face, scaler->width, scaler->height,                                scaler->x_res, scaler->y_res );    if ( error )    {      FT_Done_Size( size );      size = NULL;    }  Exit:    *asize = size;    return error;  }
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:35,


示例4: ftc_size_node_done

 ftc_size_node_done( FTC_SizeNode  node ) {   if ( node->size )   {     FT_Done_Size( node->size );     node->size = NULL;   } }
开发者ID:8l,项目名称:inferno,代码行数:8,


示例5: FT_Done_Size

Font::~Font() {		if(m_size) {		FT_Done_Size(m_size);	}		delete m_textures;	}
开发者ID:nikos-maximus,项目名称:ArxLibertatis,代码行数:9,


示例6: ftc_size_node_done

  ftc_size_node_done( FTC_MruNode  ftcnode,                      FT_Pointer   data )  {    FTC_SizeNode  node = (FTC_SizeNode)ftcnode;    FT_Size       size = node->size;    FT_UNUSED( data );    if ( size )      FT_Done_Size( size );  }
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:11,


示例7: FT_Done_Size

/* * Class:     sage_FreetypeFont * Method:    closeFontFace0 * Signature: (J)Z */JNIEXPORT jboolean JNICALL Java_sage_FreetypeFont_closeFontFace0  (JNIEnv *env, jobject jo, jlong fontPtr){	FTDataStruct* fontData = (FTDataStruct*)(intptr_t) fontPtr;	// NOTE: WE CAN ONLY CLOSE THE SIZE SINCE OTHERS MIGHT STILL BE USING THE FACE!!!!	// THIS LEAKS MEMORY IF YOU THINK IT'LL CLOSE THE FONT FACE!!!!!	// THIS LEAKS MEMORY IF YOU THINK IT'LL CLOSE THE FONT FACE!!!!!	//FT_Face face = (FT_Face) facePtr;	jboolean rv = FT_Done_Size(fontData->sizePtr) == 0;//FT_Done_Face(face) == 0;	free(fontData);	return rv;}
开发者ID:BOTCrusher,项目名称:sagetv,代码行数:17,


示例8: glDeleteTextures

xd::font::~font(){	// free all textures	for (auto i = m_glyph_map.begin(); i != m_glyph_map.end(); ++i) {		glDeleteTextures(1, &i->second->texture_id);	}	// free font sizes	for (auto i = m_face->sizes.begin(); i != m_face->sizes.end(); ++i) {		FT_Done_Size(i->second);	}	// free the font handle	FT_Done_Face(m_face->handle);}
开发者ID:Greyze,项目名称:xd,代码行数:13,


示例9: T42_Size_Done

  T42_Size_Done( T42_Size  size )  {    FT_Face      face    = size->root.face;    T42_Face     t42face = (T42_Face)face;    FT_ListNode  node;    node = FT_List_Find( &t42face->ttf_face->sizes_list, size->ttsize );    if ( node )    {      FT_Done_Size( size->ttsize );      size->ttsize = NULL;    }  }
开发者ID:0uyangsheng,项目名称:xbmc,代码行数:14,


示例10: FT_Done_Size

SkScalerContext_FreeType::~SkScalerContext_FreeType() {    if (fFTSize != NULL) {        FT_Done_Size(fFTSize);    }    SkAutoMutexAcquire  ac(gFTMutex);    if (fFace != NULL) {        unref_ft_face(fFace);    }    if (--gFTCount == 0) {//        SkDEBUGF(("FT_Done_FreeType/n"));        FT_Done_FreeType(gFTLibrary);        SkDEBUGCODE(gFTLibrary = NULL;)    }
开发者ID:avary,项目名称:skia,代码行数:15,


示例11: ftc_size_node_reset

  ftc_size_node_reset( FTC_MruNode  ftcnode,                       FT_Pointer   ftcscaler,                       FT_Pointer   ftcmanager )  {    FTC_SizeNode  node    = (FTC_SizeNode)ftcnode;    FTC_Scaler    scaler  = (FTC_Scaler)ftcscaler;    FTC_Manager   manager = (FTC_Manager)ftcmanager;    FT_Done_Size( node->size );    node->scaler = scaler[0];    return ftc_scaler_lookup_size( manager, scaler, &node->size );  }
开发者ID:AbdelghaniDr,项目名称:mirror,代码行数:15,


示例12: T42_Size_Done

  T42_Size_Done( FT_Size  t42size )             /* T42_Size */  {    T42_Size     size    = (T42_Size)t42size;    FT_Face      face    = t42size->face;    T42_Face     t42face = (T42_Face)face;    FT_ListNode  node;    node = FT_List_Find( &t42face->ttf_face->sizes_list, size->ttsize );    if ( node )    {      FT_Done_Size( size->ttsize );      size->ttsize = NULL;    }  }
开发者ID:03050903,项目名称:libgdx,代码行数:15,


示例13: ftc_size_node_init

  ftc_size_node_init( FTC_SizeNode   node,                      FTC_SizeQuery  query )  {    FT_Face   face = query->face;    FT_Size   size;    FT_Error  error;    node->size = NULL;    error = FT_New_Size( face, &size );    if ( !error )    {      FT_Activate_Size( size );      error = FT_Set_Pixel_Sizes( query->face,                                  query->width,                                  query->height );      if ( error )        FT_Done_Size( size );      else        node->size = size;    }    return error;  }
开发者ID:8l,项目名称:inferno,代码行数:23,


示例14: T42_Face_Init

//.........这里部分代码省略.........          family++;          full++;        }        root->style_name = ( *full == ' ' ? full + 1                                          : (char *)"Regular" );      }      else        root->style_name = (char *)"Regular";    }    else    {      /* do we have a `/FontName'? */      if ( face->type1.font_name )      {        root->family_name = face->type1.font_name;        root->style_name  = (char *)"Regular";      }    }    /* no embedded bitmap support */    root->num_fixed_sizes = 0;    root->available_sizes = 0;    /* Load the TTF font embedded in the T42 font */    error = FT_New_Memory_Face( FT_FACE_LIBRARY( face ),                                face->ttf_data,                                face->ttf_size,                                0,                                &face->ttf_face );    if ( error )      goto Exit;    FT_Done_Size( face->ttf_face->size );    /* Ignore info in FontInfo dictionary and use the info from the  */    /* loaded TTF font.  The PostScript interpreter also ignores it. */    root->bbox         = face->ttf_face->bbox;    root->units_per_EM = face->ttf_face->units_per_EM;    root->ascender  = face->ttf_face->ascender;    root->descender = face->ttf_face->descender;    root->height    = face->ttf_face->height;    root->max_advance_width  = face->ttf_face->max_advance_width;    root->max_advance_height = face->ttf_face->max_advance_height;    root->underline_position  = face->type1.font_info.underline_position;    root->underline_thickness = face->type1.font_info.underline_thickness;    root->internal->max_points   = 0;    root->internal->max_contours = 0;    /* compute style flags */    root->style_flags = 0;    if ( face->type1.font_info.italic_angle )      root->style_flags |= FT_STYLE_FLAG_ITALIC;    if ( face->ttf_face->style_flags & FT_STYLE_FLAG_BOLD )      root->style_flags |= FT_STYLE_FLAG_BOLD;    if ( face->ttf_face->face_flags & FT_FACE_FLAG_VERTICAL )      root->face_flags |= FT_FACE_FLAG_VERTICAL;#ifdef FT_CONFIG_OPTION_USE_CMAPS
开发者ID:dikerex,项目名称:theqvd,代码行数:66,


示例15: T42_Face_Init

//.........这里部分代码省略.........    {      /* do we have a `/FontName'? */      if ( type1->font_name )        root->family_name = type1->font_name;    }    /* no embedded bitmap support */    root->num_fixed_sizes = 0;    root->available_sizes = 0;    /* Load the TTF font embedded in the T42 font */    {      FT_Open_Args  args;      args.flags       = FT_OPEN_MEMORY;      args.memory_base = face->ttf_data;      args.memory_size = face->ttf_size;      if ( num_params )      {        args.flags     |= FT_OPEN_PARAMS;        args.num_params = num_params;        args.params     = params;      }      error = FT_Open_Face( FT_FACE_LIBRARY( face ),                            &args, 0, &face->ttf_face );    }    if ( error )      goto Exit;    FT_Done_Size( face->ttf_face->size );    /* Ignore info in FontInfo dictionary and use the info from the  */    /* loaded TTF font.  The PostScript interpreter also ignores it. */    root->bbox         = face->ttf_face->bbox;    root->units_per_EM = face->ttf_face->units_per_EM;    root->ascender  = face->ttf_face->ascender;    root->descender = face->ttf_face->descender;    root->height    = face->ttf_face->height;    root->max_advance_width  = face->ttf_face->max_advance_width;    root->max_advance_height = face->ttf_face->max_advance_height;    root->underline_position  = (FT_Short)info->underline_position;    root->underline_thickness = (FT_Short)info->underline_thickness;    /* compute style flags */    root->style_flags = 0;    if ( info->italic_angle )      root->style_flags |= FT_STYLE_FLAG_ITALIC;    if ( face->ttf_face->style_flags & FT_STYLE_FLAG_BOLD )      root->style_flags |= FT_STYLE_FLAG_BOLD;    if ( face->ttf_face->face_flags & FT_FACE_FLAG_VERTICAL )      root->face_flags |= FT_FACE_FLAG_VERTICAL;    {      if ( psnames && psaux )      {        FT_CharMapRec    charmap;        T1_CMap_Classes  cmap_classes = psaux->t1_cmap_classes;
开发者ID:0uyangsheng,项目名称:xbmc,代码行数:67,


示例16: invalid_font_type

void xd::font::render(const std::string& text, const font_style& style,	xd::shader_program::handle shader, const glm::mat4& mvp, glm::vec2 *pos){	// check if we're rendering using this font or a linked font	if (style.m_type && style.m_type->length() != 0) {		font_map_t::iterator i = m_linked_fonts.find(*style.m_type);		if (i == m_linked_fonts.end())			throw invalid_font_type(*style.m_type);		font_style linked_style = style;		linked_style.m_type = boost::none;		i->second->render(text, linked_style, shader, mvp, pos);		return;	}	// check if the font size is already loaded	auto it = m_face->sizes.find(style.m_size);	if (it == m_face->sizes.end()) {		// create a new size		FT_Size size;		if (FT_New_Size(m_face->handle, &size) != 0)			throw font_load_failed(m_filename);		// free the size in catch block if something goes wrong		try {			if (FT_Activate_Size(size) != 0)				throw font_load_failed(m_filename);			// set the pixel size			if (FT_Set_Pixel_Sizes(m_face->handle, 0, style.m_size) != 0)				throw font_load_failed(m_filename);			// pre-load 7-bit ASCII glyphs			for (int i = 0; i < 128; i++) {				load_glyph(i, style.m_size);			}		} catch (...) {			// free the size and re-throw			FT_Done_Size(size);			throw;		}		// insert the newly loaded size in the map		m_face->sizes.insert(std::make_pair(style.m_size, size));	} else {		// activate the size		FT_Activate_Size(it->second);	}	// bind to first texture unit	glActiveTexture(GL_TEXTURE0);	// setup the shader	shader->use();	shader->bind_uniform(m_mvp_uniform, mvp);	shader->bind_uniform(m_color_uniform, style.m_color);	shader->bind_uniform(m_texture_uniform, 0);	// is kerning supported	FT_Bool kerning = FT_HAS_KERNING(m_face->handle);	// render each glyph in the string	glm::vec2 text_pos;	if (pos)		text_pos = *pos;	FT_UInt prev_glyph_index = 0;	auto i = text.begin();	while (i != text.end()) {		// get the unicode code point		utf8::uint32_t char_index = utf8::next(i, text.end());		// get the cached glyph, or cache if it is not yet cached		const detail::font::glyph& glyph = load_glyph(char_index, style.m_size);		// bind the texture		glBindTexture(GL_TEXTURE_2D, glyph.texture_id);		// check for kerning		if (kerning && glyph.glyph_index && prev_glyph_index) {			FT_Vector kerning_delta;			FT_Get_Kerning(m_face->handle, prev_glyph_index, glyph.glyph_index, FT_KERNING_DEFAULT, &kerning_delta);			text_pos.x += kerning_delta.x >> 6;		}		// calculate exact offset		glm::vec2 glyph_pos = text_pos;		glyph_pos.x += glyph.offset.x;		glyph_pos.y += glyph.offset.y;		// add optional letter spacing		glyph_pos.x += style.m_letter_spacing/2;		// if shadow is enabled, draw the shadow first		if (style.m_shadow) {			// calculate shadow position			glm::vec2 shadow_pos = glyph_pos;			shadow_pos.x += style.m_shadow->x;			shadow_pos.y += style.m_shadow->y;			// calculate shadow color			glm::vec4 shadow_color = style.m_shadow->color;			shadow_color.a *= style.m_color.a;			// bind uniforms//.........这里部分代码省略.........
开发者ID:Greyze,项目名称:xd,代码行数:101,


示例17: T42_Face_Init

//.........这里部分代码省略.........          family++;          full++;        }        root->style_name = ( *full == ' ' ? full + 1                                          : (char *)"Regular" );      }      else        root->style_name = (char *)"Regular";    }    else    {      /* do we have a `/FontName'? */      if ( face->type1.font_name )      {        root->family_name = face->type1.font_name;        root->style_name  = (char *)"Regular";      }    }    /* no embedded bitmap support */    root->num_fixed_sizes = 0;    root->available_sizes = 0;    /* Load the TTF font embedded in the T42 font */    error = FT_New_Memory_Face( FT_FACE_LIBRARY( face ),                                face->ttf_data,                                face->ttf_size,                                0,                                &face->ttf_face );    if ( error )      goto Exit;    FT_Done_Size( face->ttf_face->size );    /* Ignore info in FontInfo dictionary and use the info from the  */    /* loaded TTF font.  The PostScript interpreter also ignores it. */    root->bbox         = face->ttf_face->bbox;    root->units_per_EM = face->ttf_face->units_per_EM;    root->ascender  = face->ttf_face->ascender;    root->descender = face->ttf_face->descender;    root->height    = face->ttf_face->height;    root->max_advance_width  = face->ttf_face->max_advance_width;    root->max_advance_height = face->ttf_face->max_advance_height;    root->underline_position  = face->type1.font_info.underline_position;    root->underline_thickness = face->type1.font_info.underline_thickness;    root->internal->max_points   = 0;    root->internal->max_contours = 0;    /* compute style flags */    root->style_flags = 0;    if ( face->type1.font_info.italic_angle )      root->style_flags |= FT_STYLE_FLAG_ITALIC;    if ( face->ttf_face->style_flags & FT_STYLE_FLAG_BOLD )      root->style_flags |= FT_STYLE_FLAG_BOLD;    if ( face->ttf_face->face_flags & FT_FACE_FLAG_VERTICAL )      root->face_flags |= FT_FACE_FLAG_VERTICAL;    {      if ( psnames && psaux )
开发者ID:AudriusButkevicius,项目名称:TurboVNC,代码行数:67,


示例18: _font_slave_int_load

static Font_Info *_font_slave_int_load(const Slave_Msg_Font_Load *msg, Font_Source_Info *fsi){   int error;   int val, dv;   int ret;   Font_Info *fi = calloc(1, sizeof(*fi));   error = FT_New_Size(fsi->face, &(fi->size));   if (!error)     FT_Activate_Size(fi->size);   fi->fsize = msg->size;   fi->dpi = msg->dpi;   fi->real_size = msg->size * 64;   fi->fsi = fsi;   error = FT_Set_Char_Size(fsi->face, 0, fi->real_size, msg->dpi, msg->dpi);   if (error)     error = FT_Set_Pixel_Sizes(fsi->face, 0, fi->real_size);   if (error)     {        int i, maxd = 0x7fffffff;        int chosen_size = 0;        int chosen_size2 = 0;        for (i = 0; i < fsi->face->num_fixed_sizes; i++)          {             int s, cd;             s = fsi->face->available_sizes[i].size;             cd = chosen_size - fi->real_size;             if (cd < 0) cd = -cd;             if (cd < maxd)               {                  maxd = cd;                  chosen_size = s;                  chosen_size2 = fsi->face->available_sizes[i].y_ppem;                  if (maxd == 0) break;               }          }        fi->real_size = chosen_size;        error = FT_Set_Pixel_Sizes(fsi->face, 0, fi->real_size);        if (error)          {             error = FT_Set_Char_Size(fsi->face, 0, fi->real_size, fi->dpi, fi->dpi);             if (error)               {                  /* hack around broken fonts */                  fi->real_size = (chosen_size2 / 64) * 60;                  error = FT_Set_Char_Size(fsi->face, 0, fi->real_size, fi->dpi, fi->dpi);                  if (error)                    {                       ERR("Could not choose the font size for font: '%s:%s'.",                           msg->file, msg->name);                       FT_Done_Size(fi->size);                       free(fi);                       return NULL;                    }               }          }     }   fi->max_h = 0;   val = (int)fsi->face->bbox.yMax;   if (fsi->face->units_per_EM != 0)     {        dv = (fsi->orig_upem * 2048) / fsi->face->units_per_EM;        ret = (val * fsi->face->size->metrics.y_scale) / (dv * dv);     }   else ret = val;   fi->max_h += ret;   val = -(int)fsi->face->bbox.yMin;   if (fsi->face->units_per_EM != 0)     {        dv = (fsi->orig_upem * 2048) / fsi->face->units_per_EM;        ret = (val * fsi->face->size->metrics.y_scale) / (dv * dv);     }   else ret = val;   fi->max_h += ret;   fi->runtime_rend = FONT_REND_REGULAR;   if ((msg->rend_flags & FONT_REND_SLANT) &&       !(fsi->face->style_flags & FT_STYLE_FLAG_ITALIC))     fi->runtime_rend |= FONT_REND_SLANT;   if ((msg->rend_flags & FONT_REND_WEIGHT) &&       !(fsi->face->style_flags & FT_STYLE_FLAG_BOLD))     fi->runtime_rend |= FONT_REND_WEIGHT;   return fi;}
开发者ID:RomainNaour,项目名称:efl,代码行数:92,



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


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