エンジンクラス Blt関数


説明

テクスチャを画面に転送する。

構文

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));


戻る