SGFontDataの集合クラス. [詳細]
#include <sgfont.h>
Public メソッド | |
SGFontRendering () | |
コンストラクタ | |
virtual | ~SGFontRendering () |
デストラクタ | |
void | Release () |
確保したリソースを解放する | |
void | SetPalette (SGPalette *palette) |
書体表示に使用するパレットを指定する | |
int | GetInfo (SGFontData &font, int *pwidth=NULL, int *pheight=NULL, int *pascender=NULL, int *pdescender=NULL) |
書体の情報を取得する | |
SGRect | GetStringRect (const char *text, int bx, int by, SGFontData &font, int *pascender=NULL, int *pheight=NULL) |
文字列を描画するのに必要な領域を求める | |
SGRect | DrawString (SGSurface *base, const char *text, int bx, int by, SGFontData &font) |
文字列を描画する | |
void | GetStringPath (const char *text, SGFontData &font, SGFontRequsterCallback func, void *userdata=NULL) |
文字列のベクトルデータを取得する | |
Public 変数 | |
SGFontRequsterCallback | PathCallback |
void * | mUserData |
SGString | mFontFilename |
FT_Library | mFreeTypeLibrary |
フレンド | |
class | SGGraphics |
SGFontDataの集合クラス.
このクラスは SGFontData の配列を管理します。
SGFontRendering | ( | ) |
コンストラクタ
~SGFontRendering | ( | ) | [virtual] |
デストラクタ
void Release | ( | ) |
確保したリソースを解放する
確保したリソースを解放します。
<
void SetPalette | ( | SGPalette * | palette | ) |
書体表示に使用するパレットを指定する
書体表示に使用するパレットを指定します。
このパレットは描画モードが256色モードの時のみ使用されます。
int GetInfo | ( | SGFontData & | font, | |
int * | pwidth = NULL , |
|||
int * | pheight = NULL , |
|||
int * | pascender = NULL , |
|||
int * | pdescender = NULL | |||
) |
書体の情報を取得する
書体の情報を取得します。
font | フォントデータ | |
pwidth | 書体サイズの幅情報取得用変数ポインタ(省略可能) | |
pheight | 書体サイズの高さ情報取得用変数ポインタ(省略可能) | |
pascender | 書体のアッセンダ情報取得用変数ポインタ(省略可能) | |
pdescender | 書体のディセンダ情報取得用変数ポインタ(省略可能) |
SGRect GetStringRect | ( | const char * | text, | |
int | bx, | |||
int | by, | |||
SGFontData & | font, | |||
int * | pascender = NULL , |
|||
int * | pheight = NULL | |||
) |
文字列を描画するのに必要な領域を求める
文字列を描画するのに必要な領域を求めます。
文字列を表示する前に表示を行う領域を知りたい時に使用します。
text | 描画する文字列 | |
x | 表示開始位置x座標 | |
y | 表示開始位置y座標 | |
font | フォントデータ | |
ascender | 書体のアッセンダ情報取得用変数ポインタ(省略可能) | |
height | 書体の高さ情報取得用変数ポインタ(省略可能) |
SGRect DrawString | ( | SGSurface * | base, | |
const char * | text, | |||
int | bx, | |||
int | by, | |||
SGFontData & | font | |||
) |
文字列を描画する
文字列を表示する基本関数です。
SGCore::DrawTextもこの関数を使用します。
与える座標(原点)は、横書の場合は開始文字のベースライン左端、縦書の場合は上端中央です。
※SGCoreDrawTextは文字列の左上が原点です。原点が違いますので注意して下さい。
base | 表示を行うサーフェス | |
text | 描画する文字列 | |
bx | 開始位置の座標X | |
by | 開始位置の座標Y | |
font | フォントデータ |
void GetStringPath | ( | const char * | text, | |
SGFontData & | font, | |||
SGFontRequsterCallback | func, | |||
void * | userdata = NULL | |||
) |
文字列のベクトルデータを取得する
文字列のベクトルデータを取得します。
データはバッファ経由でなく、関数コールバックによって行われます。
第3パラメータにセットした関数はベクトルデータ1セグメント毎にコールされます。
登録する関数は
void Callback(int type,void* data,int x1,int y1,int x2,int y2,int x3,int y3);
というものを用意し、そのアドレスを登録します。
コールバックされる際の各パラメータの意味は次の通りです。
int type
第3パラメータ以降にセットされる座標の取り扱い方法を決定します。
0〜4の値がセットされます。次の様な定義が用意されています。
FONTRENDERING_MOVE_TO(0)
移動:カレント座標を点(x1,y1)に更新します。
FONTRENDERING_LINE_TO(1)
直線:カレント座標が始点、点(x1,y1)が終点の直線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_CONIC_TO(2)
円錐曲線:カレント座標が始点、点(x3,y3)が終点、点(x1,y1)がコントロール点の円錐曲線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_CUBIC_TO(3)
ベジェ曲線:カレント座標が始点、点(x3,y3)が終点、点(x1,y1)、点(x2,y2)がコントロール点のベジェ曲線データ
処理後、カレント座標を点(x1,y1)に更新します。
FONTRENDERING_TRANSLATE(4)
平行移動:原点を点(x1,y1)に移動します。
文字のベクトルデータには含まれません。文字列中の1文字毎に1度コールされます。
void* data
この関数 GetStringPath を使用する時の第4パラメータにセットしたポインタ。
使い方は任意です。 int x1 int y1 受け取るベクトルデータ。点(x1,y1) int x2 int y2 受け取るベクトルデータ。点(x2,y2) int x3 int y3 受け取るベクトルデータ。点(x3,y3)
text | 描画する文字列 | |
font | フォントデータ | |
func | コールバック関数 | |
userdata | コールバック関数 func に渡すポインタ(使い方は任意) |