Chiharu の日記

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

2011-01-01から1年間の記事一覧

setjmp/longjmp とデストラクタ 〜Visual C++ の場合

C++

先ほどの続き。 Egtra さんの指摘で、x86 でも /EH オプションが有効の場合には setjmp/longjmp でデストラクタが起動することが分かりました。 状況を確認してみましょう。まず、下記のクラスを用意して ctor/dtor の呼び出し状況がコンソールから分かるよ…

x86 から x64 へ 〜利点いろいろ

C++

x86 と比べて x64 になって良かったなぁと思う点など。 汎用レジスタ数が 8 個から 16 個に増えた 関数の引数がレジスタ渡しがデフォルトに(冒頭の数パラメータのみ レジスタのスタック退避が激減 SSE2 を確実に使用可能 浮動小数演算に x87 FPU でなく SSE…

描画処理のまとめ 〜アセンブラとの戦い

先ほどまで Parallel force - パラレル・フォースの描画処理をまとめてました。具体的にはコンパイラの出力するアセンブラ コードとにらめっこしてました。見直していると、画素あたりの処理が複雑なようで、下記の問題が発生していました。 画素あたりの処…

零の軌跡 〜続編について

零の軌跡のロゴって『零』の下の部分が『AO』とか『アO』とかに見えますね。って常々思ってました。まぁ、見えるだけで、空耳ならぬ空目かもしれませんけれど。そのせいか、続編が『碧の軌跡(アオノキセキ)』と聞いて何となく納得しました。 (補足) 上記…

Visual C++ 2010 Express 〜x64 ビルドできない?

C++

あれ? 久しぶりに Visual C++ 2010 Express で x64 ビルドしようとしたら、 >エラー: プロジェクトに "ConfigurationGeneral" 規則がありません。な、エラーが表示されてビルドできなくなっていました。おかしいなぁ、なんでだろ。x64 ビルドできていたころ…

C++0x の nullptr 〜GCC であれれ?

C++

先日の日記の続き。 さらに先日の日記のコードを Cygwin 環境で、 $ gcc test_memcpy.cpp -msse2 -std=c++0x -lstdc++ -O3こんな感じでコンパイルしたら、 test_memcpy.cpp: In function ‘void xmmcpy_da_sa(void*, const void*, size_t)’: test_memcpy.cpp:…

GW にお留守番 〜トイレ トレーニング

息子が 3 歳でこの春、幼稚園に入園したのですが、いまだにオムツが取れずに難儀しています。ひとえに親がトイレ トレーニングをサボった結果なのですが…。 で、現在トイレ トレーニング中で、相方がパートでカレンダーなんて何のそのな出勤して、娘と息子と…

零の軌跡 〜プレイ中

先日の日記に関連して。 遅ればせながら PSP 版の零の軌跡をプレイ中。まだ 1 章ですが、さすがファルコムと思わせるだけの作りこみで、安心してプレイしています。そんな記念にティオを描いてみました。 ティータ、レンに続く子供キャラ。序盤では S クラフ…

GW にハチ出現! 〜新居の玄関に巣作り

先ほど、家族総出で駅前の商店街で開催中のこいのぼりフェスティバルを見てきました。フェスティバルといっても何か祭りをやってるわけではなくて、いつもの商店街のアーケードに大量のこいのぼりがぶら下がっているというものです。昨年、息子が「ぼんぼり…

XMM レジスタによるメモリ アクセス 〜SSE2 (movdqa と movdqu) の特性

C++

先日の日記の続き。 興味深い計測結果が出ていました。 確かにNehalem系CPUは、以前のCPUと比べてMOVDQUの性能が改善されています。cache lineを跨がなければMOVDQAと同じ速度が出ています。 MOVDQUの特性について ふむ。movdqu は Core i シリーズで高速化…

Parallel force - パラレル・フォース 〜XMM レジスタによるメモリアクセス

Paralell force - パラレル・フォースのレンダラの画素アクセスは下記の方針で対応しています。 可能な限り XMM レジスタを使用する 可能な限り movdqa 命令でロードおよびストアする 前者はともかくとして、後者がなかなか曲者なのです。 movdqa の使用条件…

零の軌跡 〜PC 版が中国で発売とか

見てびっくり。一瞬、意味が分かりませんでした。んー。いろいろ調べてみると、ライセンス先が見つかって現地法人が開発するみたい。ファルコムが開発サポートにもあたるようなこともどこかで見たけれど、プログラムの完成度の高さもファルコムらしさのうち…

Parallel force - パラレル・フォース 〜ドキュメンテーション (2)

先日の日記の続き。 Office 2010 が機能的に素敵なことは良く分かっているので、派生バージョンの Office Web Apps など試してみました。が、サインインして開始 10 秒でログアウトしました。相互参照が使えないとか、アウトラインモードがないとか、ありえ…

Parallel force - パラレル・フォース 〜ドキュメンテーション

仕事では、仕様書を作るときは Office (Word (本文と表) + Visio (UML 図)) で作成したドキュメントを Acrobat (PDFMaker) で PDF 化しているんですけれど、さて。パラレル・フォースも何かドキュメンテーションしたいなぁとか思い始めてます。というのも、…

方言 〜みえる!

仕事のとある MTG にて「では、そのほかに議題のある方見えますか?」という科白が展開されるのですが、この言葉に違和感を感じなかった人はきっと東海圏の人。東海圏の方言だと思うのですが「見える」を「居る」の尊敬語として使います。電話越しに「○○さん…

ガンダム UC 3 巻 〜BD すげぃです。

Amazon から届いたので見てみました。相変わらずのクオリティで素晴らしいと思います。その詳細は色んなところでレビューされているので、完全な主観に基づく印象など。 ―――チョーさん、良い仕事してる。 『知らないことがぁ〜』『いつも元気なワンワンです…

C++0x の乱数 〜あれれ?

C++

std::uniform_int_distribution って負の値を正常に返せないのかな。VC でしか試していないのですが、んー。なんでなんだろ。 std::mt19937 aRandEngine; std::uniform_int_distribution<int> aRandDist(-2, 2); const auto aRand = aRandDist(aRandEngine); // -</int>…

C/C++ プログラミングの迷信と誤解 〜買いました、そして読みました、けれど。

C++

株式会社きじねこの C/C++ 迷信集をまとめた書籍が出たということで、買ってみました。 ―――んー。買ったんですけどねぇ。読んだんですけどねぇ。 書籍にした価値はないかな。誤解のないように言っておくと、書籍に記載される情報自体は貴重です。とっても。…

PSP-3000PB 〜届いた!

先日の日記の続き。 先日、PSP が届きました。直前までウェブ上のオーダー ステータスは発送の気配がなかったのですが。ま。届いてよかったです。 そして早速!とらドラ…、をプレイする気分にもなれないですね。この災害状況では。私の住まいは愛知県なので…

無線 LAN 〜 世代交代

自宅で常用していた無線 LAN ルーター WN-WAG/R がご臨終しました。昨日の朝起きたらネットに接続できず「あれ?」と思ったところ、当該ルーターのランプが一切消えており、その後、何度電源を接続しなおしても起動することなく、永遠のさようならとなりまし…

PSP-3000PB 〜発注したけど届かず

零の軌跡をプレイしたくて PSP を購入しようと、昨年の 12 月にトイざらすで相方に相談したところ「年越してからにして」と言われ「んー。なんか年越すとなくなりそうな気がする」と返答すると「んなことないって」と言われ、年を越したらこの市場の有様です…

std::allocate_shared 〜カスタム アロケータ

C++

先日の日記の続き。std::allocate_shared 用のカスタム アロケータとして、簡易的なメモリ プールを用意してみました。 namespace { template <int unit> class memory_manager { private: union trait { trait* next; unsigned char body[unit]; }; public: memory_ma</int>…

std::allocate_shared 〜ちょっと計測

C++

先日の日記の続き。 C++0x の高機能スマート ポインタ std::shared_ptr の構築/破棄処理の速度を計測してみました。VC2010 でコンパイル オプションは /O2 /EHsc /DNDEBUG。相対評価なんで PC スペックは割愛。 #include <memory> #include <vector> #include <iostream> #include <ctime> #in</ctime></iostream></vector></memory>…

娘の誕生日会 〜初節句も兼ねて

娘の誕生日が 3 月上旬で、さらに今日は 3 月 3 日を前にした最後の土曜日ということで、じぃじ(x1)とばぁば(x2)を招いて娘の誕生日会兼初節句をやりました。そこへ今回、秘密兵器 OLYMPUS PEN Lite E-PL1 を投入しました。人生初の一眼レフです。エント…

花粉症ですか? 〜はい。多分重度です。

えーと。アロケータ周りの話をまとめようと思ったんですけれど、花粉症がひどくて何とも身動き取れませんでした。えーと、一般には花粉症というと鼻水とくしゃみのイメージがあるようですが、私の場合、花粉症の季節になると、 鼻血 口の中のしびれ 下痢 頭…

std::allocate_shared 〜気になるヘルパ

C++

うーん。日本語の情報があんましないですね、このヘルパ。make_shared の延長で、アロケータ指定して一括確保できるのかな。ちょっと調べてみよう。

std::make_shared 〜ただのヘルパじゃない!

C++

C++0x のスマート ポインタの中で、私が一番良く使うのは std::shared_ptr です。 std::shared_ptr<Image> foo1(const std::uint32_t iWidth, const std::uint32_t iHeight, const std::size_t iRowbytes) { std::shared_ptr<Image> aImage(new Image(iWidth, iHeight, iRo</image></image>…

魔法少女まどかマギカ 〜OP のとあるシーン

今期アニメのストーリー No.1 は『魔法少女まどかマギカ』だと思ってます。はい。ちなみにキャラデザ No.1 は『夢喰いメリー』だと思ってます。はい。 で、そのまどかマギカの OP のとあるカットが谷川史子っぽい絵だなーって、ぼーっと思って相方に録画映像…

コンストラクタで例外はアリか? 〜私はアリ派

C++

ネタ元: わんくま東京勉強会#56 懇親会ふぉろー えー。とりあえず C++ に限定して、私はアリ派。 確かに、下記のようなクラス定義はまずいですが…、 class FileReader { public: FileReader(const char* iFileName):mFile(fopen(iFileName, "r")), mBuffer(4…

Parallel force - パラレル・フォース 〜アフィン変換の修正

先日の日記の続き。 凡ミスでした。右端処理自体は実装してあったのですが、右端処理にきちんと移行できていなかったようです。次回のデモから修正が適用されます。あと、回転は未実装です。相方から「そろそろ何か見たい」と言われていて、デモの趣旨を徐々…