コード例 #1
0
ファイル: CFontManager.cpp プロジェクト: MGraefe/deferred
//---------------------------------------------------------------
// Purpose: 
//---------------------------------------------------------------
void CFontManager::LoadFonts( void )
{
	CScriptParser parser;
	parser.ParseFile( "scripts/fonts.rps" );

	const SubGroupMap *pMap = parser.GetSubGroupMap();
	SubGroupMap::const_iterator it = pMap->begin();
	
	for( ; it != pMap->end(); it++ )
	{
		CScriptSubGroup *pSubGrp = it->second;
		
		char pchFace[32];
		pSubGrp->GetString( "face", pchFace, ArrayLength(pchFace) );
		float fHeight = pSubGrp->GetFloat( "height", 12.0f );
		fHeight *= m_fScale;

		char pchFileName[64];
		strcpy( pchFileName, "misc/" );
		strcat( pchFileName, pchFace );
		strcat( pchFileName, ".ttf" );

		CFont *pFont = new CFont();
		if( !pFont->LoadFont( pchFileName, fHeight, true ) )
		{
			error( "Error loading font face \"%s\".", pchFileName );
			delete pFont;
			continue;
		}
		
		fontdata_t fontdata;
		fontdata.face = pchFace;
		fontdata.height = fHeight;
		fontdata.name = it->first;
		fontdata.pFont = pFont;
		m_FontNameMap.insert( std::make_pair( it->first, fontdata ) );
	}
}