ビットマップが透過されるか念のため確認。結果は御覧の通り。
グラデーションブラシで書いた文字の上に、ビットマップに「ビットマップ」という文字を書いてDrawBitmap()した。
std::wstring td2d(L"DWR こんにちは");
// グラデーションブラシでHwndRenderTargetに描画
render_target_->DrawTextW(
td2d.c_str(),
td2d.size(),
format,
l,
gbrush);
{
sf::begin_draw<ID2D1BitmapRenderTargetPtr> begin(bitmap_target_);
// ビットマップに文字を描画
std::wstring tb(L"ビットマップ");
bitmap_target_->Clear();
bitmap_target_->DrawTextW(
tb.c_str(),
tb.size(),
format,
l1,
brush);
}
// BitmapRenderTargetからビットマップを取得
ID2D1BitmapPtr b;
bitmap_target_->GetBitmap(&b);
// ビットマップをHwndRenderTargetに描画
render_target_->DrawBitmap(b);
ちゃんと透過している。 当たり前か。。
これでマスクビットマップはいらないということがわかった。かなり処理が端折れるな。。