avgString类

构想:

一个AVGDIALOG控件其中的每一个字符都是一个avgString类,派生于avgWidget.

 

类属性:

std::wstring m_string;//这个字符串类所代表的字符串

avgFont  *m_font;//一个字体类,它将由资源管理器生成 m_font = DataManager::Singleton().GetFreeTypeFont("fontname");

HGE *m_hge;

hgeSprite *m_charsprite;

FONTTYPE m_fontType;

bool ke

enum FONTTYPE

{

    FONTTYPE_FREETYPE,//FREETYPE字体

    FONTTYPE_PNGCHAR,//用图的形式储存字符

    FONTTYPE_PNG//图片,用于特殊的预先设计好的文字

}

 

方法:

avgChar( char* a_fontname , std::wstring a_string, CHARSETTYPE a_charType/*是FREETYPE字体还是图片或者是图形字体集合*/ )

{

     switch( a_charType )

     {

         case FONTTYPE_FREETYPE:

             m_font = DataManager::Singleton().GetFreeTypeFont(a_fontname);

             m_font->CacheChars( a_string );//缓冲字体

     }

}

 

 

void avgChar::Draw() //用于绘制字体

{

    switch( m_fonttype )

   {

      case FONTTYPE_FREETYPE:

                  DrawFreeTypeChars();

      case FONTTYPE_PNGCHAR:

                  DrawPngChars();

      case FONTTYPE_PNG:

                  DrawPng();

}

 

void avgChar::DrawFreeTypeChars( std::wstring a_string )

{

      std::size_t  p_len = a_string.lenght();

      for( size_t i = 0; i <p_len ; i++)

      {

         DrawFreeTypeChar( a_string.at(i) );

      }

}

 

void avgChar::DrawFreeTypeChar( wchar_t a_charCode )//绘制单个字符

{

      CacheEntry* p_theGlyph = getCacheEntry( a_charCode );
      if (NULL == p_theGlyph || NULL == p_theGlyph->Texture)
      return false;

 

      m_charsprite->SetTexture( p_theGlyph->Texture );

      m_charsprite->RenderEx();//参数还未设

      m_cgarsprite->SetHotSpot(0.0f, 0.0f);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值