こんばんは
DrawFormatStringToHandleを実行した際の実行時間は基本的に1ms以下なのですが、(初めて文字を渡した際のみ10ms程度)
ある特定の条件下でのみ常に7ms程度の処理時間がかかっているようです
以下の様な計測方法なのですが、DrawString関数に同じ引き数で渡した場合は常に0ms以下で実行されます
std::vector<int> co_;
int b = GetNowCount();
DrawFormatStringToHandle(select_box_->draw_size_left_x + 3, dy + 5, col.black, font_h, config_data.text.c_str()); // 設定されているテキストを描画する
//DrawString(select_box_->draw_size_left_x + 3, dy + 5, config_data.text.c_str(), col.black);
co_.emplace_back(GetNowCount() - b);
ただ、重くなる条件が分かりませんでした
vectorのstringにあらかじめ文字を詰め込んで置き、ループしてこれを描画しているのですが、
遅くなる条件が分からないので、遅くなった時の中身を以下に書いておきます ( 不要だったため、スレッドを見やすくするために削除しました )
"[GamePad Config] ゲームオーバー時のコンティニュー(R)"がトリガー?のようでこれを空白にするか描画するかで
全て遅くなる/全て1ms以下が切り替わります
ただ、この文字列を描画したからと言って重くなるわけではなく、別のゲーム上のシーンの上に描画しても処理速度に問題はありませんでした
なので再現できる方法はわからないです、、、
どうしても文字を描画するだけで重くなるとは考えられず、色々試してみたのですが、結局このような結論になりました
Dxライブラリが関係なかったらすみませんm(__)m