本文整理汇总了C++中FontMap::find方法的典型用法代码示例。如果您正苦于以下问题:C++ FontMap::find方法的具体用法?C++ FontMap::find怎么用?C++ FontMap::find使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FontMap
的用法示例。
在下文中一共展示了FontMap::find方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/**
** Get a font
**
** @param ident Font identifier
**
** @return The font
*/
/* static */ CFont *CFont::Get(const std::string &ident)
{
std::map<std::string, CFont *>::iterator it = Fonts.find(ident);
if (it == Fonts.end()) {
DebugPrint("font not found: %s\n" _C_ ident.c_str());
return nullptr;
}
CFont *font = it->second;
if (font == nullptr) {
DebugPrint("font not found: %s\n" _C_ ident.c_str());
return nullptr;
}
return font;
}
示例2: info
Font *Font::Create(TextFormat &inFormat,double inScale,GlyphRotation inRotation,bool inNative,bool inInitRef)
{
FontInfo info(inFormat,inScale,inRotation,inNative);
Font *font = 0;
FontMap::iterator fit = sgFontMap.find(info);
if (fit!=sgFontMap.end())
{
font = fit->second;
if (inInitRef)
font->IncRef();
return font;
}
FontFace *face = 0;
AutoGCRoot *bytes = 0;
FontBytesMap::iterator fbit = sgRegisteredFonts.find(WideToUTF8(inFormat.font).c_str());
if (fbit!=sgRegisteredFonts.end())
{
bytes = fbit->second;
}
if (bytes != NULL)
face = FontFace::CreateFreeType(inFormat,inScale,bytes);
if (!face)
face = FontFace::CreateCFFIFont(inFormat,inScale);
if (!face && inNative)
face = FontFace::CreateNative(inFormat,inScale);
if (!face)
face = FontFace::CreateFreeType(inFormat,inScale,NULL);
if (!face && !inNative)
face = FontFace::CreateNative(inFormat,inScale);
if (!face)
return 0;
font = new Font(face,info.height,inRotation,inInitRef);
// Store for Ron ...
font->IncRef();
sgFontMap[info] = font;
return font;
}
示例3: info
Font *Font::Create(TextFormat &inFormat,double inScale,GlyphRotation inRotation,bool inNative,bool inInitRef)
{
FontInfo info(inFormat,inScale,inRotation,inNative);
Font *font = 0;
FontMap::iterator fit = sgFontMap.find(info);
if (fit!=sgFontMap.end())
{
font = fit->second;
if (inInitRef)
font->IncRef();
return font;
}
FontFace *face = 0;
if (inNative)
face = FontFace::CreateNative(inFormat,inScale);
#ifndef IPHONE
if (!face)
face = FontFace::CreateFreeType(inFormat,inScale);
#endif
if (!face && !inNative)
face = FontFace::CreateNative(inFormat,inScale);
if (!face)
return 0;
font = new Font(face,info.height,inRotation,inInitRef);
// Store for Ron ...
font->IncRef();
sgFontMap[info] = font;
return font;
}
示例4: info
Font *Font::Create(TextFormat &inFormat,double inScale,bool inNative,bool inInitRef)
{
FontInfo info(inFormat,inScale,inNative);
Font *font = 0;
FontMap::iterator fit = sgFontMap.find(info);
if (fit!=sgFontMap.end())
{
font = fit->second;
if (inInitRef)
font->IncRef();
return font;
}
FontFace *face = 0;
AutoGCRoot *bytes = 0;
FontBytesMap::iterator fbit = sgRegisteredFonts.find(WideToUTF8(inFormat.font).c_str());
if (fbit!=sgRegisteredFonts.end())
{
bytes = fbit->second;
}
if (bytes != NULL)
face = FontFace::CreateFreeType(inFormat,inScale,bytes);
if (!face)
face = FontFace::CreateCFFIFont(inFormat,inScale);
if (!face && inNative)
face = FontFace::CreateNative(inFormat,inScale);
if (!face)
face = FontFace::CreateFreeType(inFormat,inScale,NULL);
if (!face && !inNative)
face = FontFace::CreateNative(inFormat,inScale);
if (!face)
return 0;
font = new Font(face,info.height,inInitRef);
// Store for Ron ...
font->IncRef();
sgFontMap[info] = font;
// Clear out any old fonts
for (FontMap::iterator fit = sgFontMap.begin(); fit!=sgFontMap.end();)
{
if (fit->second->GetRefCount()==1)
{
fit->second->DecRef();
FontMap::iterator next = fit;
next++;
sgFontMap.erase(fit);
fit = next;
}
else
++fit;
}
return font;
}