トップページ > 過去ログ > 記事閲覧
MakeKeyInputとGetDrawScreenGrap
名前:SmokingWOLF 日時: 2010/09/18 00:02

いつもDXライブラリにお世話になっております。 気になる点が2点ございましたので、ご報告させていただきます。 【MakeKeyInput関数のバックスペース時の挙動】  MakeKeyInput 関数のサンプルをそのまま実行し、文字列入力する際、  【「ぁ」や「ゃ」行】の文字の次に「半角文字」を入れ、バックスペースを押すと、2バイト戻されて「・」と出ます。  具体的な例としては、「あゃi」と入力してからバックスペースを一回押すと「あ・」と表示されてしまいます。 【GetDrawScreenGraphの処理時間】  GetDrawScreenGraphのサンプルに対し、関数の前後にGetNowCount()を挟んで  GetDrawScreenGraph関数だけの処理時間を計測してみたところ、  Ver2.25bでは3ms、Ver3.04では741msかかり、約200倍以上の処理時間となりました。  Ver2.25bから最新のライブラリへの移行を検討しているのですが、  この関数においてこれまで通りのパフォーマンスが出せず、移行を躊躇しています。  他の環境で試せていないので、環境依存の問題という可能性もあると思いますが、  他に高速な画面取得を行うためのヒント等ございましたら、アドバイスいただけますと幸いです。 ------------ OSは、 WindowsXP Home SP3。DirectXは9.0C、グラフィックチップはGeForce9800M GTSです。 どちらも、「VisualStudio.NET2003を使用した場合のDXライブラリの使い方」の通りに 設定した状況で発生しました。

Page: 1 |

Re: MakeKeyInputとGetDrawScreenGrap ( No.1 )
名前:管理人 日時:2010/09/19 01:40

不具合のご報告ありがとうございます > 【MakeKeyInput関数のバックスペース時の挙動】 不具合を確認し、修正しました バックスペース以外に 「あゃi」と入力してから左キーを 1回押した後、Deleteキーを押しても同様の不具合が発生していました・・・ > 【GetDrawScreenGraphの処理時間】 私の方でも GetDrawScreenGraph のサンプルで時間を計ってみましたが、 処理に掛かった時間は 2.771msec でした( WinXP SP3, GeForce8800GT ) Ver2.25bの DirectX7 の頃と違い、バックバッファを直接ロックしてアクセスしているので、 もしかしたらこれが環境によって非常に低速になる原因となっているのかもしれません ( 問題ない環境では描画可能テクスチャに転送した後更にシステムメモリテクスチャに転送して そこから初めて読み取れるという手間を省けるので高速になるのですが・・・ ) 起動時に DirectX7 の頃と同じような手順を踏む場合と、バックバッファを直接ロックする 場合とでどちらが高速かを調べ、より高速な方の手段を用いるようにプログラムに手を加えてみましたので よろしければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) こちらのバージョンでは、ログのどこかに 「バックバッファロック転送の時間:409nsec 一時的な描画可能バッファを使用した転送の時間:1162nsec」 「バックバッファロックを使用します」 若しくは 「バックバッファロックはロックできません」 という出力がされると思いますので、よろしければこちらに出力された転送の時間を教えていただけないでしょうか?
Re: MakeKeyInputとGetDrawScreenGrap ( No.2 )
名前:SmokingWOLF(解決) 日時:2010/09/20 23:24

素早いご対応、誠にありがとうございます。 > 【GetDrawScreenGraphの処理時間】 >よろしければこちらに出力された転送の時間を教えていただけないでしょうか? 試してみたところ、以下の二行が出力されました。 正常に、高速な処理が選択されているようです。 1338:バックバッファロック転送の時間:230966nsec 一時的な描画可能バッファを使用した転送の時間:2171nsec 1339:バックバッファロックを使用しません 環境依存の現象へのご対応までしてくださり、本当にありがとうございます。 これで安心して最新ライブラリへの移行を行うことができます。

Page: 1 |