ULRE/inc/hgl/graph/font/TileFont.h

56 lines
1.5 KiB
C
Raw Normal View History

2020-07-29 01:00:25 +08:00
#ifndef HGL_GRAPH_TILE_FONT_INCLUDE
2020-06-29 19:49:54 +08:00
#define HGL_GRAPH_TILE_FONT_INCLUDE
#include<hgl/graph/TileData.h>
#include<hgl/graph/font/FontSource.h>
2020-07-31 18:01:28 +08:00
#include<hgl/type/ResPoolManage.h>
2020-06-29 19:49:54 +08:00
namespace hgl
{
namespace graph
{
2020-07-31 18:01:28 +08:00
class TileObjectPool
{
TileData *tile_data;
public:
TileObject *Acquire();
void Release(TileObject *);
public:
TileObjectPool(TileData *td):tile_data(td);
};
using TileObjectManage=_ResPoolManage<u32char,TileObject *,TileObjectPool>;
2020-07-01 20:36:49 +08:00
/**
* Tile字符管理<br>
* unicode块, unicode块只能对应一个字体数据来源
*/
2020-06-29 19:49:54 +08:00
class TileFont
{
2020-07-07 19:16:23 +08:00
FontSource *source;
2020-06-29 19:49:54 +08:00
TileData *tile_data;
2020-07-31 18:01:28 +08:00
TileObjectPool *tile_pool;
TileObjectManage *ch_tile_pool;
public:
FontSource *GetFontSource (){return source;}
TileData * GetTileData (){return tile_data;}
2020-06-29 19:49:54 +08:00
public:
TileFont(TileData *td,FontSource *fs);
virtual ~TileFont();
2020-07-31 18:01:28 +08:00
bool Registry(List<RectScope2f> &,const List<u32char> &); ///<注册要使用的字符
void Unregistry(const List<u32char> &); ///<注销要使用的字符
2020-06-29 19:49:54 +08:00
};//class TileFont
}//namespace graph
}//namespace hgl
#endif//HGL_GRAPH_TILE_FONT_INCLUDE