テクスチャを画面に転送する。
void Blt( const RECT* pDest, std::string strFileName, const RECT* pSour, const DWORD alpha = 255, const float angle = 0.0f ); |
pDest 転送先座標を格納したRECT構造体のポインタ。
strFilename 転送元となる画像ファイルのパス付ファイル名。 GameBase.hにて定数として宣言する。
pSour 転送元座標を格納したRECT構造体のポインタ。
alpha アルファ値を0〜255で指定する。 0で透明、255で不透明となる。 デフォルト値は255。
angle 回転角度をラジアン角で指定する。 デフォルト値は0°。
なし
シーンのDraw関数内で実行する事。
転送する元の画像は2のn乗×2のn乗の正方形でなければならない。
グラフィックボードが対応していれば、縦横のサイズはフリー。
対応していなければ2の累乗×2の累乗(正方形で無くとも良い)。
転送元の画像サイズと転送先の画像サイズが異なる場合、拡大・縮小表示される。
RECT構造体のleftとrightが、「left > right」の場合左右反転表示となる。
RECT構造体のtopとbottomが、「top > bottom」の場合上下反転表示となる。
アルファ値を変更せず、回転角度を使用する場合はアルファ値に255を指定する事。
転送例をいくつか紹介する。
元画像 Resource\\Texture\\Back.png
元の画像サイズは(1024×1024ピクセル)
GameBase.hでパス付ファイル名を定数として宣言しておく。
namespace KeyString { const std::string TEXTURE_BACK = "Resource\\Texture\\Back.png"; } |
テクスチャの追加
m_pEngine->AddTexture(TEXTURE_BACK); |
等倍転送
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 0, 0, 640, 480); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour); |
拡大転送
SetRect(&sour, 0, 0, 320, 240); SetRect(&dest, 0, 0, 640, 480); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour); |
縮小転送
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 0, 0, 320, 240); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour); |
左右反転
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 640, 0, 0, 480); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour); |
上下反転
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 0, 480, 640, 0); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour); |
半透明
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 0, 0, 640, 480); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour, 128); |
90°回転
SetRect(&sour, 0, 0, 640, 480); SetRect(&dest, 0, 0, 640, 480); m_pEngine->Blt(&dest, TEXTURE_BACK, &sour, 255, D3DXToRadian(90)); |