FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_TextImage クラス

文字列板を管理するクラス [詳解]

#include <FK/TextImage.h>

+ FK::fk_TextImage の継承関係図
+ FK::fk_TextImage 連携図

公開メンバ関数

 fk_TextImage (void)
 コンストラクタ
 
virtual ~fk_TextImage ()
 デストラクタ
 
フォント関連関数
bool initFont (const std::string fontFileName)
 フォント情報入力関数
 
void setDPI (int dpi)
 フォント解像度設定関数
 
int getDPI (void) const
 フォント解像度参照関数
 
void setPTSize (int size)
 フォントサイズ設定関数
 
int getPTSize (void) const
 フォントサイズ参照関数
 
void setBoldStrength (int str)
 太さ値設定関数
 
int getBoldStrength (void) const
 太さ値参照関数
 
void setShadowMode (bool mode)
 影付け効果設定関数
 
bool getShadowMode (void) const
 影付け効果参照関数
 
void setShadowOffset (int x, int y)
 影付けずらし幅設定関数
 
fk_Dimension getShadowOffset (void) const
 影付けずらし幅参照関数
 
void setShadowColor (fk_Color col)
 影付け色設定関数1
 
void setShadowColor (float r, float g, float b, float a)
 影付け色設定関数2
 
void setShadowColor (double r, double g, double b, double a)
 影付け色設定関数3
 
fk_Color getShadowColor (void) const
 影付け色参照関数
 
描画属性関連関数
void setForeColor (fk_Color col)
 文字色設定関数1
 
void setForeColor (float r, float g, float b, float a)
 文字色設定関数2
 
void setForeColor (double r, double g, double b, double a)
 文字色設定関数3
 
fk_Color getForeColor (void) const
 文字色参照関数
 
void setBackColor (fk_Color col)
 背景色設定関数1
 
void setBackColor (float r, float g, float b, float a)
 背景色設定関数2
 
void setBackColor (double r, double g, double b, double a)
 背景色設定関数3
 
fk_Color getBackColor (void) const
 背景色参照関数
 
void setSmoothMode (bool mode)
 アンチエイリアシング効果設定関数
 
bool getSmoothMode (void) const
 アンチエイリアシング効果参照関数
 
文字配置事前設定関連関数
void setMonospaceMode (bool mode)
 等幅表示設定関数
 
bool getMonospaceMode (void) const
 等幅表示設定参照関数
 
void setMonospaceSize (int size)
 等幅表示文字幅設定関数
 
int getMonospaceSize (void) const
 等幅表示文字幅参照関数
 
void setCharSkip (int skip)
 文字間幅設定関数
 
int getCharSkip (void) const
 文字間幅参照関数
 
void setLineSkip (int skip)
 行間幅設定関数
 
int getLineSkip (void) const
 行間幅参照関数
 
void setSpaceLineSkip (int skip)
 空行縦幅設定関数
 
int getSpaceLineSkip (void) const
 空行縦幅参照関数
 
void setOffset (int up, int down, int left, int right)
 オフセット設定関数
 
int getUpOffset (void) const
 オフセット上幅参照関数
 
int getDownOffset (void) const
 オフセット下幅参照関数
 
int getLeftOffset (void) const
 オフセット左幅参照関数
 
int getRightOffset (void) const
 オフセット右幅参照関数
 
void setAlign (fk_TextAlign align)
 文字列寄せ方向(アライメント)設定関数
 
fk_TextAlign getAlign (void) const
 文字列寄せ方向(アライメント)参照関数
 
void setMinLineWidth (int width)
 画像最小横幅設定関数
 
int getMinLineWidth (void) const
 画像最小横幅参照関数
 
文字列入力関数
bool loadUniStr (fk_UniStr *str)
 文字列データ入力関数
 
bool loadStrFile (const std::string fileName, fk_StringCode code=fk_StringCode::UTF16)
 文字列データファイル入力関数
 
文字列入力後情報参照関数
int getLineNum (void) const
 行数参照関数
 
int getLineCharNum (int num) const
 行中文字数参照関数
 
int getAllCharNum (void) const
 文字数参照関数
 
int getMaxLineWidth (void) const
 最大横幅参照関数
 
int getMaxLineHeight (void) const
 最大縦幅参照関数
 
int getLineWidth (int num) const
 行横幅参照関数
 
int getLineHeight (int num) const
 行縦幅参照関数
 
int getLineStartXPos (int num) const
 行開始位置 x 成分取得関数
 
int getLineStartYPos (int num) const
 行開始位置 y 成分取得関数
 
文字送り関連関数
void setSendingMode (fk_TextSendingMode mode)
 文字送りモード設定関数
 
fk_TextSendingMode getSendingMode (void) const
 文字送りモード参照関数
 
bool send (void)
 文字送り実行関数
 
bool finish (void)
 文字送り完了関数
 
bool clear (void)
 文字送り初期化関数
 
- 基底クラス FK::fk_Image に属する継承公開メンバ関数
 fk_Image (int w=0, int h=0)
 コンストラクタ
 
virtual ~fk_Image ()
 デストラクタ
 
 fk_Image (const fk_Image &)
 コピーコンストラクタ
 
void init ()
 初期化関数
 
bool readBMP (const std::string fileName)
 BMP ファイル入力関数
 
bool readBMPData (fk_ImType *buf)
 BMP バッファ入力関数
 
bool readPNG (const std::string fileName)
 PNG ファイル入力関数
 
bool readPNGData (fk_ImType *buf)
 PNG データ入力用関数
 
bool readJPG (const std::string fileName)
 JPEG ファイル入力関数
 
bool writeBMP (const std::string fileName, const bool transFlg=false)
 BMP ファイル出力関数
 
bool writePNG (const std::string fileName, const bool transFlg=true)
 PNG ファイル出力関数
 
bool writeJPG (const std::string fileName, int quality=80)
 JPEG ファイル出力関数
 
void newImage (int w, int h, bool initFlg=true)
 画像領域生成関数
 
void copyImage (const fk_Image *image)
 画像データコピー関数1
 
void copyImage (const fk_Image *image, int x, int y)
 画像データコピー関数2
 
bool subImage (const fk_Image *image, int x, int y, int w, int h)
 画像データ部分抽出関数
 
int getWidth (void) const
 画像横幅取得関数
 
int getHeight (void) const
 画像縦幅取得関数
 
const fk_DimensiongetImageSize (void)
 画像サイズ取得関数
 
const fk_DimensiongetBufferSize (void)
 画像バッファサイズ取得関数
 
int getR (int x, int y) const
 ピクセルR要素取得関数
 
int getG (int x, int y) const
 ピクセルG要素取得関数
 
int getB (int x, int y) const
 ピクセルB要素取得関数
 
int getA (int x, int y) const
 ピクセルA要素取得関数
 
fk_Color getColor (int x, int y) const
 ピクセル色要素取得関数
 
bool setRGBA (int x, int y, int r, int g, int b, int a)
 ピクセル RGBA 値設定関数
 
bool setRGB (int x, int y, int r, int g, int b)
 ピクセル RGB 値設定関数
 
bool setR (int x, int y, int r)
 ピクセル R 値設定関数
 
bool setG (int x, int y, int g)
 ピクセル G 値設定関数
 
bool setB (int x, int y, int b)
 ピクセル B 値設定関数
 
bool setA (int x, int y, int a)
 ピクセル A 値設定関数
 
bool setColor (int x, int y, const fk_Color &col)
 ピクセル色値設定関数
 
void fillColor (const fk_Color &col)
 バッファ全体初期化関数1
 
void fillColor (int r, int g, int b, int a=0)
 バッファ全体初期化関数2
 
const fk_ImType * getBufPointer (void) const
 画像データ配列先頭アドレス取得関数

 
- 基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
 fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
 コンストラクタ
 
fk_Type getObjectType (void) const
 タイプ取得関数
 

静的公開メンバ関数

キャッシュ関連関数
static void setCacheMode (bool mode)
 キャッシュ機能制御関数
 
static bool getCacheMode (void)
 キャッシュ機能有無効参照関数
 
static void clearCache (void)
 キャッシュ初期化関数
 

詳解

文字列板を管理するクラス

このクラスは、文字列板を制御する機能を提供します。

本クラスは fk_Image の派生クラスであり、本質的には画像を意味します。 通常の画像に対し、文字列を表示することに特化したクラスです。 このクラスを用いて作成した文字列を矩形テクスチャとすることで、 シーン上にメッセージを表示することができます。 実質的には通常の矩形テクスチャとなりますので、 単純に画面に文字を表示するだけではなく、 3次元空間中に自由に配置することができます。

文字列画像生成に際しては、複数行を一枚の画像中に表示することができます。 その際、左寄り、中寄り、右寄りといったアライメントや、 画像端からのマージンなども細かく設定することができます。

また、本クラスの特徴的な機能として「文字送り」があります。 これは、初期状態として全ての文字が表示されていない状態にしておき、 一文字ずつ、あるいは一行ずつ順番に表示していくという機能です。

本クラスを用いる場合、以下の順番で処理を進める必要があります。

  1. フォント情報の入力 (initFont())
  2. 描画色、配置などの各種設定
  3. 文字列の入力

これは、実際の画像生成を文字列データ入力の段階で行うため、 それ以外の設定を事前にしておかなければならないためです。 詳細はユーザーズマニュアルの「文字列板」の項目を参照して下さい。

なお、文字列板はその性質上、常に画面上で最前面に表示しておきたい場合が多くあります。 これは、シーン登録においてオーバーレイモデルとして登録することで容易に実現できます。 詳細は fk_DisplayLink::entryOverlayModel() の解説を参照して下さい。

参照
fk_Image, fk_UniStr, fk_RectTexture, fk_Scene, fk_SpriteModel

構築子と解体子

◆ fk_TextImage()

FK::fk_TextImage::fk_TextImage ( void  )

コンストラクタ

◆ ~fk_TextImage()

virtual FK::fk_TextImage::~fk_TextImage ( )
virtual

デストラクタ

関数詳解

◆ initFont()

bool FK::fk_TextImage::initFont ( const std::string  fontFileName)

フォント情報入力関数

フォントの入力を行います。 ここで指定するものは TrueType 形式のフォントファイルとなります。 通常は「ttf」あるいは「ttc」という拡張子のファイルとなっています。

なお、この関数は loadUniStr()loadStrFile() などの文字列入力よりも先に行っておく必要があります。

引数
[in]fontFileNameフォントファイル名
戻り値
フォントの設定に成功すれば true を、失敗すれば false を返します。
注意
各種 OS に付属しているフォントファイルや、 商用のフォントファイルの中には、 ライセンス上再配布が禁止されているものがあります。 プログラムの配布時には必ずライセンスの確認を行ってください。

◆ setDPI()

void FK::fk_TextImage::setDPI ( int  dpi)

フォント解像度設定関数

フォントの解像度を設定します。 解像度を高くするほど高精細な画像となりますが、 画像サイズが大きくなるため描画時の負担が高くなっていきます。 デフォルトでは 48 に設定されています。

覚え書き
機能的には setPTSize() とほとんど同義になりますが、 フォントによっては解像度が高い場合とサイズが大きい場合では 異なった描画結果となることがあります。
引数
[in]dpi解像度
参照
setPTSize()

◆ getDPI()

int FK::fk_TextImage::getDPI ( void  ) const

フォント解像度参照関数

現在設定されているフォントの解像度を取得します。

戻り値
解像度
参照
setDPI()

◆ setPTSize()

void FK::fk_TextImage::setPTSize ( int  size)

フォントサイズ設定関数

フォントのサイズを設定します。 サイズを大きくするほど高精細な画像となりますが、 画像サイズが大きくなるため描画時の負担が高くなっていきます。 デフォルトでは 48 に設定されています。

覚え書き
機能的には setDPI() とほとんど同義になりますが、 フォントによっては解像度が高い場合とサイズが大きい場合では 異なった描画結果となることがあります。
引数
[in]sizeフォントの大きさ
参照
setDPI()

◆ getPTSize()

int FK::fk_TextImage::getPTSize ( void  ) const

フォントサイズ参照関数

現在設定されているフォントサイズを取得します。

戻り値
フォントサイズ
参照
setPTSize()

◆ setBoldStrength()

void FK::fk_TextImage::setBoldStrength ( int  str)

太さ値設定関数

文字の太さを数値に応じて太くします。 高い値であるほど、線が太くなっていきます。 デフォルトは 1 となっています。 太さの度合いについては、解像度やフォントサイズに依存するので、 それぞれと合わせて調整する必要があります。

引数
[in]str太さ値
参照
setDPI(), setPTSize()

◆ getBoldStrength()

int FK::fk_TextImage::getBoldStrength ( void  ) const

太さ値参照関数

現在設定されている太さ値を取得します。

戻り値
太さ値
参照
setBoldStrength()

◆ setShadowMode()

void FK::fk_TextImage::setShadowMode ( bool  mode)

影付け効果設定関数

表示文字に対し、影付け効果を有無を設定します。 デフォルトでは無効となっています。

引数
[in]modetrue の場合有効、false の場合無効となります。
参照
setShadowOffset(), setShadowColor(fk_Color)

◆ getShadowMode()

bool FK::fk_TextImage::getShadowMode ( void  ) const

影付け効果参照関数

影付け効果の有無を取得します。

戻り値
有効である場合 true を、無効である場合 false を返します。
参照
setShadowMode()

◆ setShadowOffset()

void FK::fk_TextImage::setShadowOffset ( int  x,
int  y 
)

影付けずらし幅設定関数

影付け効果の際、影のずらし幅を設定します。

引数
[in]x横方向のずれを設定します。単位はピクセルです。 正の値で右方向、負の値で左方向にずらします。
[in]y縦方向のずれを設定します。単位はピクセルです。 正の値で下方向、負の値で上方向にずらします。
参照
setShadowMode(), setShadowColor(fk_Color)

◆ getShadowOffset()

fk_Dimension FK::fk_TextImage::getShadowOffset ( void  ) const

影付けずらし幅参照関数

影付け効果の際の、影のずらし幅を取得します。

戻り値
ずらし幅
参照
setShadowOffset(), fk_Dimension

◆ setShadowColor() [1/3]

void FK::fk_TextImage::setShadowColor ( fk_Color  col)

影付け色設定関数1

影付け効果の際の、影の色を設定します。透過色設定も有効となります。

引数
[in]col影色
参照
setShadowMode(), setShadowOffset(), fk_Color

◆ setShadowColor() [2/3]

void FK::fk_TextImage::setShadowColor ( float  r,
float  g,
float  b,
float  a 
)

影付け色設定関数2

影付け効果の際の、影の色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r影色の R 値(赤)要素値
[in]g影色の G 値(緑)要素値
[in]b影色の B 値(青)要素値
[in]a影色の A 値(透過)要素値
参照
setShadowMode(), setShadowOffset(), fk_Color

◆ setShadowColor() [3/3]

void FK::fk_TextImage::setShadowColor ( double  r,
double  g,
double  b,
double  a 
)

影付け色設定関数3

影付け効果の際の、影の色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r影色の R 値(赤)要素値
[in]g影色の G 値(緑)要素値
[in]b影色の B 値(青)要素値
[in]a影色の A 値(透過)要素値
参照
setShadowMode(), setShadowOffset(), fk_Color

◆ getShadowColor()

fk_Color FK::fk_TextImage::getShadowColor ( void  ) const

影付け色参照関数

影付け効果の際の、影の色を取得します。

戻り値
影色
参照
setShadowColor(fk_Color), fk_Color

◆ setForeColor() [1/3]

void FK::fk_TextImage::setForeColor ( fk_Color  col)

文字色設定関数1

文字色を設定します。透過色設定も有効となります。

引数
[in]col文字色
参照
setBackColor(fk_Color), setSmoothMode()

◆ setForeColor() [2/3]

void FK::fk_TextImage::setForeColor ( float  r,
float  g,
float  b,
float  a 
)

文字色設定関数2

文字色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r文字色の R 値(赤)要素値
[in]g文字色の G 値(緑)要素値
[in]b文字色の B 値(青)要素値
[in]a文字色の A 値(透過)要素値
参照
setBackColor(float, float, float, float), setSmoothMode(), fk_Color

◆ setForeColor() [3/3]

void FK::fk_TextImage::setForeColor ( double  r,
double  g,
double  b,
double  a 
)

文字色設定関数3

文字色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r文字色の R 値(赤)要素値
[in]g文字色の G 値(緑)要素値
[in]b文字色の B 値(青)要素値
[in]a文字色の A 値(透過)要素値
参照
setBackColor(double, double, double, double), setSmoothMode(), fk_Color

◆ getForeColor()

fk_Color FK::fk_TextImage::getForeColor ( void  ) const

文字色参照関数

文字色を取得します。

戻り値
文字色
参照
setForeColor(fk_Color), fk_Color

◆ setBackColor() [1/3]

void FK::fk_TextImage::setBackColor ( fk_Color  col)

背景色設定関数1

背景色を設定します。透過色設定も有効となります。

引数
[in]col背景色
参照
setForeColor(fk_Color), setSmoothMode()

◆ setBackColor() [2/3]

void FK::fk_TextImage::setBackColor ( float  r,
float  g,
float  b,
float  a 
)

背景色設定関数2

背景色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r背景色の R 値(赤)要素値
[in]g背景色の G 値(緑)要素値
[in]b背景色の B 値(青)要素値
[in]a背景色の A 値(透過)要素値
参照
setForeColor(float, float, float, float), setSmoothMode(), fk_Color

◆ setBackColor() [3/3]

void FK::fk_TextImage::setBackColor ( double  r,
double  g,
double  b,
double  a 
)

背景色設定関数3

背景色を設定します。透過色設定も有効となります。 各要素値については fk_Color に準じます。

引数
[in]r背景色の R 値(赤)要素値
[in]g背景色の G 値(緑)要素値
[in]b背景色の B 値(青)要素値
[in]a背景色の A 値(透過)要素値
参照
setForeColor(double, double, double, double), setSmoothMode(), fk_Color

◆ getBackColor()

fk_Color FK::fk_TextImage::getBackColor ( void  ) const

背景色参照関数

背景色を取得します。

戻り値
背景色
参照
setBackColor(fk_Color), fk_Color

◆ setSmoothMode()

void FK::fk_TextImage::setSmoothMode ( bool  mode)

アンチエイリアシング効果設定関数

表示文字に対し、アンチエイリアシング効果の有無を設定します。 この設定を有効とした場合、 表示の際に文字色と背景色の中間色も描画に利用されるようになります。 逆に無効とした場合、描画の際には文字色と背景色以外は利用されなくなります。 デフォルトでは有効となっています。

引数
[in]modetrue の場合有効、false の場合無効となります。
参照
setForeColor(fk_Color), setBackColor(fk_Color)

◆ getSmoothMode()

bool FK::fk_TextImage::getSmoothMode ( void  ) const

アンチエイリアシング効果参照関数

アンチエイリアシング効果の有無を取得します。

戻り値
有効である場合 true を、無効である場合 false を返します。
参照
setSmoothMode()

◆ setMonospaceMode()

void FK::fk_TextImage::setMonospaceMode ( bool  mode)

等幅表示設定関数

文字の等幅表示設定を行います。 設定を有効とした場合、半角全角問わず全ての文字を等幅で表示します。 デフォルトでは無効となっています。 なお、 setCharSkip() によって設定する文字間幅は等幅においても有効となります。

引数
[in]modetrue の場合有効、false の場合無効となります。
覚え書き
setMonospaceSize() によって文字幅を設定しないと、 文字幅が 0 として表示されてしまうため、何も表示されていない状況となります。
参照
getMonospaceMode(), setMonospaceSize(), setCharSkip()

◆ getMonospaceMode()

bool FK::fk_TextImage::getMonospaceMode ( void  ) const

等幅表示設定参照関数

等幅表示設定の有無を取得します。

戻り値
有効である場合 true を、無効である場合 false を返します。
参照
setMonospaceMode()

◆ setMonospaceSize()

void FK::fk_TextImage::setMonospaceSize ( int  size)

等幅表示文字幅設定関数

等幅表示の際の文字幅を設定します。単位はピクセルとなります。 デフォルトでは 0 が設定されています。

引数
[in]size文字幅
覚え書き
等幅表示は、 setMonospaceMode() で設定を有効としなければ等幅表示とはなりません。
参照
setMonospaceMode(), getMonospaceSize(), setCharSkip()

◆ getMonospaceSize()

int FK::fk_TextImage::getMonospaceSize ( void  ) const

等幅表示文字幅参照関数

等幅表示の際の文字幅を参照します。単位はピクセルとなります。

戻り値
文字幅
参照
setMonospaceSize(), getCharSkip()

◆ setCharSkip()

void FK::fk_TextImage::setCharSkip ( int  skip)

文字間幅設定関数

文字同士の横方向の空白幅を設定します。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

引数
[in]skip空白幅
参照
setLineSkip(), setSpaceLineSkip(), setOffset(), setDPI(), setPTSize(), setMonospaceMode(), setMonospaceSize()

◆ getCharSkip()

int FK::fk_TextImage::getCharSkip ( void  ) const

文字間幅参照関数

文字同士の横方向の空白幅を取得します。 単位はピクセルとなります。

戻り値
空白幅
参照
setCharSkip()

◆ setLineSkip()

void FK::fk_TextImage::setLineSkip ( int  skip)

行間幅設定関数

行同士の縦方向の空白幅を取得します。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

引数
[in]skip空白幅
参照
setCharSkip(), setSpaceLineSkip(), setOffset(), setDPI(), setPTSize()

◆ getLineSkip()

int FK::fk_TextImage::getLineSkip ( void  ) const

行間幅参照関数

行同士の縦方向の空白幅を取得します。 単位はピクセルとなります。

戻り値
空白幅
参照
setLineSkip()

◆ setSpaceLineSkip()

void FK::fk_TextImage::setSpaceLineSkip ( int  skip)

空行縦幅設定関数

文字列中に空行が入っていた場合の、その縦幅を設定します。 単位はピクセルとなります。 この値が 0 である場合、空行は結果的に省略されることになります。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

引数
[in]skip縦幅
参照
setCharSkip(), setLineSkip(), setOffset(), setDPI(), setPTSize()

◆ getSpaceLineSkip()

int FK::fk_TextImage::getSpaceLineSkip ( void  ) const

空行縦幅参照関数

文字列中に空行が入っていた場合の、その縦幅を取得します。 単位はピクセルとなります。

戻り値
縦幅
参照
setSpaceLineSkip()

◆ setOffset()

void FK::fk_TextImage::setOffset ( int  up,
int  down,
int  left,
int  right 
)

オフセット設定関数

文字が実際に表示されている部分と、画面の縁までの幅を設定します。 単位はピクセルとなります。 デフォルトでは、全て 0 に設定されています。

文字との対比については、解像度やフォントサイズに応じて変わってきます。 つまり、解像度やフォントサイズが大きい場合、 空白を作るには大きな値が必要となります。 従って、解像度やフォントサイズを変更した場合には、 この値も再度調整する必要があります。

引数
[in]up上幅
[in]down下幅
[in]left左幅
[in]right右幅
参照
setCharSkip(), setLineSkip(), setSpaceLineSkip(), setDPI(), setPTSize()

◆ getUpOffset()

int FK::fk_TextImage::getUpOffset ( void  ) const

オフセット上幅参照関数

文字が実際に表示されている部分のうち、上側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
上幅
参照
setOffset()

◆ getDownOffset()

int FK::fk_TextImage::getDownOffset ( void  ) const

オフセット下幅参照関数

文字が実際に表示されている部分のうち、下側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
下幅
参照
setOffset()

◆ getLeftOffset()

int FK::fk_TextImage::getLeftOffset ( void  ) const

オフセット左幅参照関数

文字が実際に表示されている部分のうち、左側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
左幅
参照
setOffset()

◆ getRightOffset()

int FK::fk_TextImage::getRightOffset ( void  ) const

オフセット右幅参照関数

文字が実際に表示されている部分のうち、右側の縁までの幅を取得します。 単位はピクセルとなります。

戻り値
右幅
参照
setOffset()

◆ setAlign()

void FK::fk_TextImage::setAlign ( fk_TextAlign  align)

文字列寄せ方向(アライメント)設定関数

文字列を表示する際の、文字寄せ方向(アライメント)を設定します。

複数行に渡る文字列の場合で、各行の横幅が異なる場合や、 setMinLineWidth() によって画像の横幅をあらかじめ設定した場合などは、 行の横幅が画像の横幅に満たない状況が生じます。 このような行に対し、本関数でどちら側に寄るのかを設定します。 デフォルトは fk_TextAlign::LEFT 、つまり左寄せとなっています。

引数
[in]alignアライメント
参照
fk_TextAlign, setMinLineWidth()

◆ getAlign()

fk_TextAlign FK::fk_TextImage::getAlign ( void  ) const

文字列寄せ方向(アライメント)参照関数

文字列を表示する際の、文字寄せ方向(アライメント)を取得します。

戻り値
アライメント
参照
setAlign()

◆ setMinLineWidth()

void FK::fk_TextImage::setMinLineWidth ( int  width)

画像最小横幅設定関数

生成される文字列板画像の横幅の最小値を設定します。 単位はピクセルとなります。 デフォルトは 0 に設定されています。

通常、文字列板として生成される画像の横幅は、 入力した文字列に依存します。 行の文字数が多ければ幅は広がり、逆に少ない場合は狭まります。 このような異なる画像を同じテクスチャ画像として連続に表示した場合、 一文字の横幅が画像によって変動してしまうという現象が生じます。 これは、あまり見栄えが良いとは言えません。 そのような場合、本関数を用いて十分な横幅を予め確保しておきます。 そうすることで、文字列はアライメントに従って適切に配置され、 文字の幅も画像によって変わることはありません。

ただし、ここで設定した横幅を超える幅を持つ行が発生した場合、 画像の幅はその行による幅に設定されることになります。

引数
[in]width画像最小横幅
参照
setAlign()

◆ getMinLineWidth()

int FK::fk_TextImage::getMinLineWidth ( void  ) const

画像最小横幅参照関数

生成される文字列板画像の横幅の最小値を取得します。 単位はピクセルとなります。

戻り値
画像最小横幅
参照
setMinLineWidth()

◆ loadUniStr()

bool FK::fk_TextImage::loadUniStr ( fk_UniStr str)

文字列データ入力関数

fk_UniStr 型のインスタンスに格納されている文字列を入力します。

文字列板画像は、 この関数かまたは loadStrFile() が呼ばれた時点で生成されます。 従って、色や配置などの設定は本関数を呼ぶ前に行わなければなりません。

既に本関数を実行したインスタンスに対し、改めて本関数を実行することは可能です。 その場合は、新たな文字列と設定に基づき、文字列板画像を再構築します。

引数
[in]str文字列が格納されているインスタンス
戻り値
文字列板生成に成功すれば true を、失敗すれば false を返します。
参照
loadStrFile()

◆ loadStrFile()

bool FK::fk_TextImage::loadStrFile ( const std::string  fileName,
fk_StringCode  code = fk_StringCode::UTF16 
)

文字列データファイル入力関数

テキストファイルに入っている文字列を入力します。

文字列板画像は、 この関数かまたは loadUniStr() が呼ばれた時点で生成されます。 従って、色や配置などの設定は本関数を呼ぶ前に行わなければなりません。

既に本関数を実行したインスタンスに対し、改めて本関数を実行することは可能です。 その場合は、新たな文字列と設定に基づき、文字列板画像を再構築します。

引数
[in]fileNameファイル名
[in]code入力する文字列の想定日本語コード。 サポートしているのは JISコード、SJISコード、EUC、UTF-16 です。 具体的な指定値は fk_StringCode のリストを参照して下さい。
戻り値
文字列板生成に成功すれば true を、失敗すれば false を返します。

◆ getLineNum()

int FK::fk_TextImage::getLineNum ( void  ) const

行数参照関数

入力した文字列の行数を取得します。

戻り値
行数
参照
loadUniStr(), loadStrFile()

◆ getLineCharNum()

int FK::fk_TextImage::getLineCharNum ( int  num) const

行中文字数参照関数

入力した文字列中の、指定した行の文字数を取得します。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
文字数
参照
getLineNum(), getAllCharNum(), loadUniStr(), loadStrFile()

◆ getAllCharNum()

int FK::fk_TextImage::getAllCharNum ( void  ) const

文字数参照関数

入力した文字列の文字数を取得します。

戻り値
文字数
参照
getLineNum(), getLineCharNum(), loadUniStr(), loadStrFile()

◆ getMaxLineWidth()

int FK::fk_TextImage::getMaxLineWidth ( void  ) const

最大横幅参照関数

入力した文字列のうち、最も横幅が広い行の横幅を取得します。 単位はピクセルとなります。

画像の横幅を直接取得するには、 fk_Image::getWidth() を利用して下さい。

戻り値
最大縦幅
参照
getMaxLineHeight(), getLineWidth(), setMinLineWidth()

◆ getMaxLineHeight()

int FK::fk_TextImage::getMaxLineHeight ( void  ) const

最大縦幅参照関数

入力した文字列のうち、最も縦幅が広い行の縦幅を取得します。 単位はピクセルとなります。

画像全体の縦幅を取得するには、 fk_Image::getHeight() を利用して下さい。

覚え書き
TrueType 形式のフォント、特に半角英数字については、 横幅、縦幅共に文字によって異なります。 結果として、行の縦幅も構成される文字によって異なってくることになります。
戻り値
最大縦幅
参照
getMaxLineWidth(), getLineHeight()

◆ getLineWidth()

int FK::fk_TextImage::getLineWidth ( int  num) const

行横幅参照関数

入力した文字列中の、指定した行の横幅を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
横幅
参照
getLineHeight(), getMaxLineWidth()

◆ getLineHeight()

int FK::fk_TextImage::getLineHeight ( int  num) const

行縦幅参照関数

入力した文字列中の、指定した行の縦幅を取得します。 単位はピクセルとなります。

覚え書き
TrueType 形式のフォント、特に半角英数字については、 横幅、縦幅共に文字によって異なります。 結果として、行の縦幅も構成される文字によって異なってくることになります。
引数
[in]num行番号。最初の行は 0 となります。
戻り値
縦幅
参照
getLineWidth(), getMaxLineHeight()

◆ getLineStartXPos()

int FK::fk_TextImage::getLineStartXPos ( int  num) const

行開始位置 x 成分取得関数

入力した文字列中の、 指定した行の開始位置(文字列左下部分)の x 成分を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
行左下部分の x 成分
参照
getLineStartYPos()

◆ getLineStartYPos()

int FK::fk_TextImage::getLineStartYPos ( int  num) const

行開始位置 y 成分取得関数

入力した文字列中の、 指定した行の開始位置(文字列左下部分)の y 成分を取得します。 単位はピクセルとなります。

引数
[in]num行番号。最初の行は 0 となります。
戻り値
行左下部分の y 成分
参照
getLineStartXPos()

◆ setSendingMode()

void FK::fk_TextImage::setSendingMode ( fk_TextSendingMode  mode)

文字送りモード設定関数

この関数は、文字送りのモードを設定します。

「文字送り」とは、読み込んだ文字列を最初は表示せず、 一文字ずつ、あるいは一行ずつ徐々に表示していく機能のことです。 文字送りを有効とした場合、 send() を呼び出すごとに一文字ずつ、あるいは一行ずつが表示されていきます。 一度表示した文字列については、 clear() を呼び出すことで初期状態 (文字が表示されていない状態)に戻すことができます。

本関数は、文字列を loadUniStr()loadStrFile() で入力する前に設定しておくことが可能です。 また、入力後に動的に変更することも可能です。

引数
[in]mode文字送りモード。以下の値が設定できます。
参照
send(), finish(), clear()

◆ getSendingMode()

fk_TextSendingMode FK::fk_TextImage::getSendingMode ( void  ) const

文字送りモード参照関数

現在の文字送りモードを取得します。

戻り値
文字送りモード
参照
setSendingMode()

◆ send()

bool FK::fk_TextImage::send ( void  )

文字送り実行関数

setSendingMode() で指定したモードに従い、 文字送りを行います。

戻り値
文字送りが行われたら true を返します。 既に全ての文字が表示されていた状態で本関数を呼び出した場合は、 false を返します。
参照
setSendingMode(), finish(), clear()

◆ finish()

bool FK::fk_TextImage::finish ( void  )

文字送り完了関数

文字送りが有効である場合に、 まだ表示されていない文字を全て表示させます。

戻り値
本関数を呼び出した時点で、まだ表示されていない文字があり、 新たに表示された文字が存在した場合には true を返します。 呼び出した時点で既に全ての文字が表示されており、 新たに表示された文字が存在しなかった場合には false を返します。
参照
setSendingMode(), send(), clear()

◆ clear()

bool FK::fk_TextImage::clear ( void  )

文字送り初期化関数

文字送りが有効である場合に、 全ての文字を初期状態、つまり非表示の状態に戻します。

戻り値
本関数を呼び出した時点で、既に表示されていた文字があり、 なんらかの文字が消去された場合には true を返します。 呼び出した時点で文字が表示されておらず、 結果的に非表示となった文字が存在しなかった場合には false を返します。
参照
setSendingMode(), send(), finish()

◆ setCacheMode()

static void FK::fk_TextImage::setCacheMode ( bool  mode)
static

キャッシュ機能制御関数

この関数は、フォントデータのキャッシュの制御を行います。 デフォルトでは無効となっています。

文字列の画像を生成する際には、 入力されたフォントデータからビットマップとしての 画像情報に変換するという処理がなされます。 同じ文字に対してこの処理を行うことは、計算時間の点で無駄となります。 そこで、 fk_TextImage には一度得た画像情報を保存しておき、 同じ文字が登場した際には再利用するという機能があります。 これが「キャッシュ機能」です。 特に数字やアルファベット、平仮名などは再利用する頻度が高いため、 本機能を有効とすることで処理が高速となる利点があります。

一方、キャッシュ機能はメモリの利用量が増えることを意味します。 高い解像度やフォントサイズを用いている場合は、 キャッシュのメモリ利用量も膨大となっていきますので、 場合によっては処理速度がむしろ低下することもありえます。

ここで利用されるキャッシュデータは、 インスタンス毎ではなくシステム全体で共有されます。 従って、異なるインスタンスで読み込んだ文字に関しても キャッシュ効果が働くことになります。

引数
[in]modetrue であれば有効、false であれば無効とします。
参照
clearCache()

◆ getCacheMode()

static bool FK::fk_TextImage::getCacheMode ( void  )
static

キャッシュ機能有無効参照関数

フォントデータのキャッシュ機能の有無効を取得します。

戻り値
有効であれば true を、無効であれば false を返します。
参照
setCacheMode()

◆ clearCache()

static void FK::fk_TextImage::clearCache ( void  )
static

キャッシュ初期化関数

キャッシュ機能が有効である場合に、 これまでのキャッシュデータをすべて消去します。

参照
setCacheMode()