FineKernelToolKit: FK::fk_Texture クラス

FineKernelToolKit 4.3.0

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

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

`#include <FK/Texture.h>`

FK::fk_Texture の継承関係図
[凡例]
FK::fk_Texture 連携図
[凡例]

## 公開メンバ関数

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 | setTexWrapMode (fk_TexWrapMode mode)
| テクスチャ外周部モード設定関数
fk_TexWrapMode | getTexWrapMode (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)
| 画像データ配列先頭アドレス取得関数
void | setFrameBuffer (fk_FrameBuffer *buffer)
| フレームバッファー設定関数
fk_FrameBuffer * | getFrameBuffer (void)
| フレームバッファー取得関数
void | initFrameBuffer (void)
| フレームバッファー情報初期化関数
基底クラス FK::fk_Shape に属する継承公開メンバ関数
| fk_Shape (fk_Type=fk_Type::SHAPE)
| コンストラクタ
virtual | ~fk_Shape ()
| デストラクタ
fk_RealShapeType | getRealShapeType (void)
| 形状データ構造取得関数
void | setShaderAttribute (std::string name, int dim, std::vector< int > *array, bool self=false)
| シェーダー内 attribute 変数設定関数1
void | setShaderAttribute (std::string name, int dim, std::vector< float > *array, bool self=false)
| シェーダー内 attribute 変数設定関数2
void | setShaderAttribute (std::string name, int dim, std::vector< fk_Vector > *array)
| シェーダー内 attribute 変数設定関数3
void | setShaderAttribute (std::string name, int dim, std::vector< fk_TexCoord > *array)
| シェーダー内 attribute 変数設定関数4
void | setShaderAttribute (std::string name, int dim, std::vector< fk_HVector > *array)
| シェーダー内 attribute 変数設定関数5
void | modifyAttribute (std::string name)
| attribute 変数更新関数
基底クラス FK::fk_Attribute に属する継承公開メンバ関数
| fk_Attribute (void)
| コンストラクタ
virtual | ~fk_Attribute ()
| デストラクタ
bool | setAttrII (const int key, const int value)
| キーが int 型、値が int 型である属性設定関数
bool | setAttrID (const int key, const double value)
| キーが int 型、値が double 型である属性設定関数
bool | setAttrIS (const int key, const std::string value)
| キーが int 型、値が std::string 型である属性設定関数
bool | setAttrSI (const std::string key, const int value)
| キーが std::string 型、値が int 型である属性設定関数
bool | setAttrSD (const std::string key, const double value)
| キーが std::string 型、値が double 型である属性設定関数
bool | setAttrSS (const std::string key, const std::string value)
| キーが std::string 型、値が std::string 型である属性設定関数
int | getAttrII (const int key) const
| キーが int 型、値が int 型である属性参照関数
double | getAttrID (const int key) const
| キーが int 型、値が double 型である属性参照関数
std::string | getAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性参照関数
int | getAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性参照関数
double | getAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性参照関数
std::string | getAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性参照関数
bool | existAttrII (const int key) const
| キーが int 型、値が int 型である属性存在参照関数
bool | existAttrID (const int key) const
| キーが int 型、値が double 型である属性存在参照関数
bool | existAttrIS (const int key) const
| キーが int 型、値が std::string 型である属性存在参照関数
bool | existAttrSI (const std::string key) const
| キーが std::string 型、値が int 型である属性存在参照関数
bool | existAttrSD (const std::string key) const
| キーが std::string 型、値が double 型である属性存在参照関数
bool | existAttrSS (const std::string key) const
| キーが std::string 型、値が std::string 型である属性存在参照関数
bool | deleteAttrII (const int key)
| キーが int 型、値が int 型である属性消去関数
bool | deleteAttrID (const int key)
| キーが int 型、値が double 型である属性消去関数
bool | deleteAttrIS (const int key)
| キーが int 型、値が std::string 型である属性消去関数
bool | deleteAttrSI (const std::string key)
| キーが std::string 型、値が int 型である属性消去関数
bool | deleteAttrSD (const std::string key)
| キーが std::string 型、値が double 型である属性消去関数
bool | deleteAttrSS (const std::string key)
| キーが std::string 型、値が std::string 型である属性消去関数
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 詳解

テクスチャ用基底クラス

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

参照
  fk_Image, fk_RectTexture, fk_TriTexture, fk_MeshTexture, fk_IFSTexture, fk_Dimension, fk_FrameBuffer, fk_Renderer

## 関数詳解

## ◆ setImage()

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

画像データ設定関数

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

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

引数

  [in] | image | 画像データ

## ◆ getImage()

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

画像データ取得関数

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

戻り値
  画像データ

## ◆ readBMP()

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

BMP ファイル入力関数

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

引数

  [in] | fileName | ファイル名

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

## ◆ readBMPData()

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

BMP バッファ入力関数

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

引数

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

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

## ◆ readPNG()

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

PNG ファイル入力関数

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

引数

  [in] | fileName | ファイル名

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

## ◆ readPNGData()

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

PNG バッファ入力関数

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

引数

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

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

## ◆ readJPG()

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

JPEG ファイル入力関数

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

引数

  [in] | fileName | ファイル名

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

## ◆ getImageSize()

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

画像サイズ取得関数

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

戻り値
  画像サイズ

参照
  getBufferSize()

## ◆ getBufferSize()

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

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

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

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

戻り値
  データサイズ

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

## ◆ setTextureMode()

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

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

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

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

  \[ (C_f T_f, \; C_\alpha T_\alpha) \]

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

  \[ (T_f, \; T_\alpha) \]

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

  \[ (C_f (1-T_\alpha) + T_f T_\alpha, \; C_\alpha) \]

  となります。

デフォルトでは fk_TexMode::MODULATE が設定されています。 なお、同様の設定は fk_Model::setTextureMode() でも行うことが可能で、 fk_Model 側で fk_TexMode::NONE 以外が設定されている場合は fk_Model 側の設定が優先されます。 fk_Model 側で fk_TexMode::NONE が設定されている場合のみ、 この fk_Texture 側での設定が有効となります。

引数

  [in] | mode | モード

参照
  getTextureMode(), fk_Model::setTextureMode()

## ◆ getTextureMode()

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

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

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

戻り値
  テクスチャモード

参照
  setTextureMode()

## ◆ setTexRendMode()

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

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

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

- fk_TexRendMode::NORMAL: 標準品質。描画速度を優先します。
- fk_TexRendMode::SMOOTH: 高品質。画質を優先します。

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

引数

  [in] | mode | 品質モード

## ◆ getTexRendMode()

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

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

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

戻り値
  品質モード

参照
  setTexRendMode()

## ◆ setTexWrapMode()

void FK::fk_Texture::setTexWrapMode | ( | fk_TexWrapMode | mode | ) |

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

テクスチャ描画の際、外周部についてどのように描画するかを設定します。 設定できる種類は以下のとおりです。

- fk_TexWrapMode::REPEAT: 内部の画像を繰り返して描画していきます。
- fk_TexWrapMode::CLAMP: 縁部の色値を伸張して描画します。

なお、デフォルトでは fk_TexWrapMode::REPEAT に設定されています。

引数

  [in] | mode | 外周部モード

## ◆ getTexWrapMode()

fk_TexWrapMode FK::fk_Texture::getTexWrapMode | ( | void |  | ) |

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

現在設定されているテクスチャ外周部モードを取得します。

戻り値
  外周部モード

## ◆ fillColor() [1/2]

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

一様色初期化関数1

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

引数

  [in] | color | 初期化色

参照
  fk_Color

## ◆ fillColor() [2/2]

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

一様色初期化関数2

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

引数

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

## ◆ getImageBuf()

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

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

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

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

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

参照
  fk_Image::getBufPointer()

## ◆ setFrameBuffer()

void FK::fk_Texture::setFrameBuffer | ( | fk_FrameBuffer * | buffer | ) |

フレームバッファー設定関数

fk_Renderer により生成されたフレームバッファーをテクスチャーデータとして設定します。 フレームバッファーの詳細は fk_Renderer および fk_FrameBuffer のマニュアルを参照して下さい。

引数

  [in] | buffer | フレームバッファー

覚え書き
  本関数によりフレームバッファーを設定した場合、 以前に設定されていた画像データは破棄されます。

参照
  fk_Renderer, fk_FrameBuffer

## ◆ getFrameBuffer()

fk_FrameBuffer * FK::fk_Texture::getFrameBuffer | ( | void |  | ) |

フレームバッファー取得関数

設定されているフレームバッファー情報を取得します。

戻り値
  フレームバッファー情報を返します。 フレームバッファー情報が設定されていない場合は nullptr を返します。

## ◆ initFrameBuffer()

void FK::fk_Texture::initFrameBuffer | ( | void |  | ) |

フレームバッファー情報初期化関数

設定されているフレームバッファー情報を破棄します。

参照
  setFrameBuffer()