Chiharu の日記

絵描き C/C++ プログラマーの日記です。

C++

Parallel force - パラレル・フォース 〜ちょっと高速化

Intel Core i7 の PC を購入しました。相方の要望で、省スペースかつ静かなマシンということで、EPSON DIRECT の Endeavor MR4000 をセレクトしました。CPU は i7-870、メモリは 8GB。グラボは静かな GT220。BD ドライブをつけました。音源が貧弱だったので…

Parallel force - パラレル・フォース 〜FPS 表示など

サンプルにて、マルチコア動作におけるパフォーマンス向上効果が分かるよう、FPS (実効値) をタイトルバーに表示してみました。pforce_1.exe が 1 スレッドで描画、 pforce.exe が論理コア数のスレッドで描画です。環境に依存するのでしょうが、結構効果が出…

Parallel force - パラレル・フォース 〜ビルド オプション変更など

Intel Atom D330 で動作させてみました。ちゃんと 2 コア (4 仮想コア) 動きました。良かったよかった。よくないっ!先ほど確認したら、サンプルのビルド オプションで、ランタイム DLL を参照する設定になっていて、VC10 入れてない環境で動きませんでした…

Parallel force - パラレル・フォース 〜タスク システム、画面エフェクトなど

それとなくタスク システムを実装しました。タイマーを実装していないため、FPS 管理がありませんが、タスク システムのサンプルとして雪など降らせてみました。いつも表現に困ると雪を降らせてる気がします。レパートリーがあまりないようです。 雪スプライ…

Parallel force - パラレル・フォース 〜スプライト管理、並列描画のコードなど (2)

昨日寝る前に、お酒など飲みながら、なんとなく、先ほどの関数を分離してみました。 // // スレッド プロシージャ // void Screen::threadProc(ThreadNotifier& iNotifier) { // コア数取得 const auto aProcessors = SystemInfoHelper::getProcessors(); //…

Parallel force - パラレル・フォース 〜スプライト管理、並列描画のコードなど

なんとなく、並列描画のコードなど公開してみます。 // // 描画スレッド プロシージャ // void Screen::drawerThreadProc(ThreadNotifier& iNotifier) { // コア数取得 const auto aProcessors = SystemInfoHelper::getProcessors(); // 描画スレッド構築 st…

Parallel force - パラレル・フォース 〜スプライト管理、まずはパイプライン 1 段

とりあえず合成先スクリーン 1 枚の描画ルーチンが完成。表画面への転送も含めて、動作確認が取れるところまできました。 スクリーンサイズは 800x600 pix (BGRX)、50 枚のスプライトをαブレンディングしてみました。Intel Core 2 Duo (1.86 GHz) でスレッド…

Parallel force - パラレル・フォース 〜スプライト管理、実装そろそろまとまるかも

結局、スプライト管理と分割描画ルーチンを 1 つのクラスとしてまとめました。1 画面分のスプライトの管理と描画をまとめてあります。描画ルーチンはスレッド用の分割単位でメソッド コールできるようにしてあります。これをスクリーン管理クラスに、単数ま…

Parallel force - パラレル・フォース 〜スプライト管理、実装中

グラフィックス パッケージで矩形フィルとイメージの dot by dot 転送の実装を完了。描画先は RGBX-8bit 固定で、すべての描画ルーチンで下記の組み合わせが利用できるようになっています。 合成モード (通常・加算・減算・乗算・スクリーン合成) 入力カラー…

Parallel force - パラレル・フォース 〜スレッド周り、ひとまず実装終わりです

ロック機構の実装に手間取りました。 これまでロック機構というと、クライアント コードは下記のように実装してきていたのですが…、 CriticalSection aCs; { Lock<CriticalSection> aLock(aCs); // このブロック中はロックされる } このうち、 Lock<CriticalSection> aLock(aCs); のように毎度</criticalsection></criticalsection>…

Parallel force - パラレル・フォース 〜まずは 2D ゲーム用描画エンジン、スレッド周り作ってます

MSVC10 で C++0x をがりがり使ってます。待ちに待ったラムダ式と左辺値の型推論が便利すぎて涙腺が緩みます。無名名前空間にファンクタ定義する必要もなくなりましたし、自動変数宣言時の型も auto か decltype でほとんど伝播可能なので、すっごく便利。コ…

納品物まとまりました

今月分の納品物もまとまりました。上期の仕事は一段落できそうです。 ところで、Intel TBB が密かに私の注目を集めています。あー。ひっさびさのパラダイムシフト。アイデア浮かびそう。

禁断症状

C++

最近、C++ 触っていない。禁断症状が。