# クラス fk_Texture

テクスチャ用基底クラス [詳細]

fk_Textureに対する継承グラフ
[凡例]
fk_Textureのコラボレーション図
[凡例]

すべてのメンバ一覧

## Public メソッド
void | setImage (fk_Image *image)
| 画像データ設定関数
fk_Image * | getImage (void)
| 画像データ取得関数
bool | readBMP (std::string fileName)
| BMP ファイル入力関数.
bool | readBMPData (fk_ImType *buf)
| BMP バッファ入力関数.
bool | readPNG (std::string fileName)
| PNG ファイル入力関数.
bool | readPNGData (fk_ImType *buf)
| PNG バッファ入力関数.
bool | readJPG (std::string fileName)
| JPEG ファイル入力関数.
const fk_Dimension * | getImageSize (void)
| 画像サイズ取得関数
const fk_Dimension * | getBufferSize (void)
| 画像バッファサイズ取得関数
void | setTextureMode (fk_TexMode mode)
| テクスチャモード設定関数
fk_TexMode | getTextureMode (void)
| テクスチャモード取得関数
void | setTexRendMode (fk_TexRendMode mode)
| テクスチャ描画品質設定関数
fk_TexRendMode | getTexRendMode (void)
| テクスチャ描画品質取得関数
void | fillColor (const fk_Color &color)
| 一様色初期化関数1
void | fillColor (int r, int g, int b, int a=0)
| 一様色初期化関数2
const fk_ImType * | getImageBuf (void)
| 画像データ配列先頭アドレス取得関数

## 説明

テクスチャ用基底クラス

このクラスは、テクスチャを表すクラスの基底クラスです。 様々なテクスチャクラスの共通機能を提供します。 クラス自体の主な機能はテクスチャ画像の生成や入力です。

参照:
  fk_Image, fk_RectTexture, fk_TriTexture, fk_MeshTexture, fk_IFSTexture, fk_Dimension

## 関数

void fk_Texture::setImage | ( | fk_Image * | image | ) |

画像データ設定関数

画像データを設定します。

覚え書き:
  fk_Texture (およびその派生クラス) では、 最初から自前の画像データ領域を保持しています。 この関数はあくまで外部で用意した画像データを テクスチャとして利用したい場合に使用するためのものであり、 必ず設定しなければならないというわけではありません。

引数:

  `[in]` | image | 画像データ

fk_Image* fk_Texture::getImage | ( | void |  | ) |

画像データ取得関数

現在設定されている画像データを取得します。

戻り値:
  画像データ

bool fk_Texture::readBMP | ( | std::string | fileName | ) |

BMP ファイル入力関数.

BMP (Windows Bitmap) 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数:

  `[in]` | fileName | ファイル名

戻り値:
  入力に成功すれば true、失敗すれば false を返します。

bool fk_Texture::readBMPData | ( | fk_ImType * | buf | ) |

BMP バッファ入力関数.

BMP (Windows Bitmap) 形式のバッファからデータを読み込み、 テクスチャ画像として設定します。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。

引数:

  `[in]` | buf | データバッファ

戻り値:
  入力に成功すれば true、失敗すれば false を返します。

bool fk_Texture::readPNG | ( | std::string | fileName | ) |

PNG ファイル入力関数.

PNG 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数:

  `[in]` | fileName | ファイル名

戻り値:
  入力に成功すれば true、失敗すれば false を返します。

bool fk_Texture::readPNGData | ( | fk_ImType * | buf | ) |

PNG バッファ入力関数.

PNG 形式のバッファからデータを読み込み、 テクスチャ画像として設定します。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。

引数:

  `[in]` | buf | データバッファ

戻り値:
  入力に成功すれば true、失敗すれば false を返します。

bool fk_Texture::readJPG | ( | std::string | fileName | ) |

JPEG ファイル入力関数.

JPEG 形式のファイルからデータを読み込み、 テクスチャ画像として設定します。

引数:

  `[in]` | fileName | ファイル名

戻り値:
  入力に成功すれば true、失敗すれば false を返します。

const fk_Dimension* fk_Texture::getImageSize | ( | void |  | ) |

画像サイズ取得関数

画像サイズを fk_Dimension 型で取得します。

戻り値:
  画像サイズ

参照:
  getBufferSize()

const fk_Dimension* fk_Texture::getBufferSize | ( | void |  | ) |

画像バッファサイズ取得関数

実際に画像用データバッファとして確保されているサイズを、 fk_Dimension 型で返します。

覚え書き:
  実画像サイズとデータバッファサイズの違いについては、 fk_Image::getBufferSize() の覚え書きを参照して下さい。

戻り値:
  データサイズ

参照:
  getImageSize(), fk_Image::getBufferSize()

void fk_Texture::setTextureMode | ( | fk_TexMode | mode | ) |

テクスチャモード設定関数

テクスチャの描画時における描画色処理モードを設定します。 これは、ポリゴンに設定されているマテリアルによる発色と、 テクスチャ画像の色をどのように混成するかを制御するものです。 それぞれのモードの概要と厳密な計算式を以下に記載します。 なお、数式中の はポリゴン色、 ポリゴンの透明度、 はテクスチャピクセル色、 はテクスチャの透明度を表します。

- FK_TEX_MODULATE
  この設定では、ポリゴンの色とテクスチャの色を積算します。 そのため、光源による陰影効果が生じます。 透明度に関しても積算となります。 数式として表すと、色と透明度はそれぞれ

  となります。

- FK_TEX_REPLACE
  この設定では、ポリゴンの色は完全に無視され、 テクスチャのピクセル色がそのまま表示されます。 そのため、光源による陰影効果が生じません。 また、テクスチャ画像の透明度はそのまま描画に反映されます。 数式として表すと、色と透明度はそれぞれ

  となります。

- FK_TEX_DECAL
  この設定では、各ピクセルの透明度に応じて、 ポリゴン色とピクセル色の混合が行われます。 光源による陰影効果は、ピクセルの透明度が低い場合に強くなります。 透明度は、ポリゴンの透明度がそのまま適用されます。 これを数式として表すと、色と透明度はそれぞれ

  となります。

なお、デフォルトでは FK_TEX_MODULATE が設定されています。

引数:

  `[in]` | mode | モード

fk_TexMode fk_Texture::getTextureMode | ( | void |  | ) |

テクスチャモード取得関数

現在のテクスチャモードを取得します。

戻り値:
  テクスチャモード

参照:
  setTextureMode()

void fk_Texture::setTexRendMode | ( | fk_TexRendMode | mode | ) |

テクスチャ描画品質設定関数

テクスチャの描画品質を設定します。 設定可能なモードは以下の通りです。

- FK_TEX_REND_NORMAL: 標準品質。描画速度を優先します。
- FK_TEX_REND_SMOOTH: 高品質。画質を優先します。

なお、デフォルトでは FK_TEX_REND_NORMAL が設定されています。

引数:

  `[in]` | mode | 品質モード

fk_TexRendMode fk_Texture::getTexRendMode | ( | void |  | ) |

テクスチャ描画品質取得関数

現在設定されているテクスチャ描画品質モードを取得します。

戻り値:
  品質モード

参照:
  setTexRendMode()

void fk_Texture::fillColor | ( | const fk_Color & | color | ) |

一様色初期化関数1

内部の画像ピクセルを、すべて同じ色で初期化します。

引数:

  `[in]` | color | 初期化色

参照:
  fk_Color

void fk_Texture::fillColor | ( | int | r,
|  | int | g,
|  | int | b,
|  | int | a = `0` |
| ) |  |  |

一様色初期化関数2

内部の画像ピクセルを、すべて同じ色で初期化します。 色要素は、最小値が 0, 最大値が 255 として解釈します。

引数:

  `[in]` | r | 初期化色の赤要素
  `[in]` | g | 初期化色の緑要素
  `[in]` | b | 初期化色の青要素
  `[in]` | a | 初期化色の透明度要素

const fk_ImType* fk_Texture::getImageBuf | ( | void |  | ) |

画像データ配列先頭アドレス取得関数

画像データを実際に格納しているデータ配列の先頭アドレスを参照します。

警告:
  この関数は fk_Image の内部構造に強く依存します。 内部構造は今後の更新で変更される可能性があるため、 本関数を用いた場合は後方互換性が保証できません。 また、この関数を用いて得た内部データを更新した場合、 システム全体の整合性が維持できなくなる可能性があります。 上記の2点の理由から、この関数の利用は推奨しません。

戻り値:
  画像データ配列の先頭アドレス。 テクスチャ画像が生成、設定されていない場合は NULL を返します。

参照:
  fk_Image::getBufPointer()