本文整理汇总了C++中FontDescription::get_subpixel方法的典型用法代码示例。如果您正苦于以下问题:C++ FontDescription::get_subpixel方法的具体用法?C++ FontDescription::get_subpixel怎么用?C++ FontDescription::get_subpixel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FontDescription
的用法示例。
在下文中一共展示了FontDescription::get_subpixel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get_font
Font_Cache FontFamily_Impl::get_font(const FontDescription &desc, float pixel_ratio)
{
// Find cached version
for (auto &cache : font_cache)
{
if (cache.pixel_ratio != pixel_ratio)
continue;
if (desc.get_style() != cache.engine->get_desc().get_style())
continue;
if (desc.get_weight() != cache.engine->get_desc().get_weight())
continue;
if (desc.get_subpixel() != cache.engine->get_desc().get_subpixel())
continue;
if (desc.get_anti_alias() != cache.engine->get_desc().get_anti_alias())
continue;
if (cache.engine->is_automatic_recreation_allowed())
{
if (desc.get_height() != cache.engine->get_desc().get_height())
continue;
}
return cache;
}
return Font_Cache();
}
示例2: load_font
void Font_Impl::load_font( GraphicContext &context, const FontDescription &desc, const std::string &filename )
{
free_font();
if (desc.get_subpixel())
{
glyph_cache.enable_subpixel = true;
glyph_cache.anti_alias = true; // Implies anti_alias is set
}
else
{
glyph_cache.enable_subpixel = false;
glyph_cache.anti_alias = desc.get_anti_alias();
}
#ifdef WIN32
std::string path = PathHelp::get_fullpath(filename, PathHelp::path_type_file);
std::string new_filename = PathHelp::get_filename(filename, PathHelp::path_type_file);
FileSystem vfs(path);
font_engine = new FontEngine_Win32(desc, new_filename, vfs);
glyph_cache.font_metrics = font_engine->get_metrics();
#elif defined(__APPLE__)
font_engine = new FontEngine_Cocoa(desc, filename);
glyph_cache.font_metrics = font_engine->get_metrics();
#else
std::string font_file_path = filename;
if (font_file_path.empty())
{
// Obtain the best matching font file from fontconfig.
FontConfig &fc = FontConfig::instance();
font_file_path = fc.match_font(desc);
}
std::string path = PathHelp::get_fullpath(font_file_path, PathHelp::path_type_file);
std::string new_filename = PathHelp::get_filename(font_file_path, PathHelp::path_type_file);
FileSystem vfs(path);
IODevice io_dev = vfs.open_file(new_filename);
int average_width = desc.get_average_width();
int height = desc.get_height();
// Ensure width and height are positive
if (average_width < 0) average_width =-average_width;
if (height < 0) height =-height;
font_engine = new FontEngine_Freetype(io_dev, average_width, height);
glyph_cache.font_metrics = font_engine->get_metrics();
#endif
}