FineKernelToolKit: FK::fk_TextImage クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
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_Dimension * | getImageSize (void)
| 画像サイズ取得関数
const fk_Dimension * | getBufferSize (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] | mode | true の場合有効、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] | mode | true の場合有効、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] | mode | true の場合有効、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

  文字送りモード。以下の値が設定できます。
  - fk_TextSendingMode::CHAR: 一文字ずつ送るモード。
  - fk_TextSendingMode::LINE: 一行ずつ送るモード。
  - fk_TextSendingMode::ALL: 文字送りを無効とするモード。

参照
  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()

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

static

キャッシュ機能制御関数

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

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

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

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

引数

  [in] | mode | true であれば有効、false であれば無効とします。

参照
  clearCache()

## ◆ getCacheMode()

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

static

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

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

戻り値
  有効であれば true を、無効であれば false を返します。

参照
  setCacheMode()

## ◆ clearCache()

void FK::fk_TextImage::clearCache | ( | void |  | ) |

static

キャッシュ初期化関数

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

参照
  setCacheMode()