フリーゲーム・フリーソフトの開発過程を記録していく、TDtechnic公式ブログです。製品はカテゴリの「ダウンロード場」からダウンロードして頂けます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

今晩は。CがHSPに余裕で負けてた件ですが、解決しました。ダブルバッファ用のビットマップにDIBセクションを使用していたのが原因だった様です。ダブルバッファのBitBlt関数の有無だけでCPU使用率が大きく変わった(有:1%、無:0%)ので、普通のビットマップを使用する事でHSPと同じ0%に成りました(恐らく小数レベルではCが勝っているのでしょう)。でも此れは元々OpenGL対策だったので此のままでは3D表示が出来ません。という訳で別にDIBセクションを作ってOpenGL使用時のみ其れも転送する事にしました。二度手間なのでより遅く成るかと思った所、此れは意外と影響しない様です。然し影響しないと言っても、3D部分は元々CPU5%でした。此方もHSPの2%に負けていたので、調べた所、OpenGL→DIB変換をしてくれるglReadPixelsが相当重い関数だと判明しました。と言っても此れこそが僕の3D環境の根幹を為す部分なので、代用できる方法は無いかと探しました。すると、OpenGLでDIBに直接描画出来そうだと判明しました。然うする事で、3D表示時も2%前後と成り、粗常時HSP以下の要求スペックを維持出来ました。3D表示時はHSPより僅かに重いですが、HSPと違って2D表示と3D表示の間に高い互換性が有るので、メリットの方が大きいと思われます。では失礼致します。


<本日のスクリーンショット>
高速道路の表示に成功致しました。Cは自由度が高いですが暗黙のルールが有ったりするのがHSPより難しい点でしょう。要するにCはプログラムの動作そのもの以外の為に覚えなければ成らない事が多いから、初心者にはHSPが向いているのでしょう。敷居が高い分、後で楽なのですが。
高速道路
スポンサーサイト

[2011/12/18 21:52] | 首都高バトルTD
|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。