タグ

ブックマーク / i-saint.hatenablog.com (5)

  • DynamicPatcher - Runtime C++ Editing - primitive: blog

    [2013/12/25 追記] この DynamicPatcher をさらに改良し、Visual Studio のアドインとして実装した Alcantarea をリリースしました DynamicObjLoader を改良し、実用に耐えそうな実行時 C++ コード編集機能を実装しました。 C++ コードを編集してそれをリアルタイムに反映させることができます。 DynamicPatcher https://github.com/i-saint/DynamicPatcher (bin) DynamicObjLoader の時点で一応は同等機能を実現していたのですが、更新したい関数を事前にマクロで包む必要があったり、virtual 関数を持つ class はシリアライズが必要だったりと、運用上色々面倒な点がありました。 今回はそのへんが大きく改良されています。 ・前準備なしに既存のほぼ全ての関数を

    DynamicPatcher - Runtime C++ Editing - primitive: blog
  • memory leak buster (2) - primitive: blog

    以前作ったメモリリーク検出器がとても役立っていて、今も機能追加を加えつつ使っています。 最近大きな改良を加えたので再掲。 MemoryLeakBuster 実行時にイミディエイトウィンドウから呼ぶデバッグ機能を追加したのが主な変更で、以下のようなことができるようになりました。 ・範囲指定リークチェック デバッガで止めて範囲指定することで、そこで確保されたまま開放されなかった領域のコールスタックを出します。 ・指定アドレスの確保時のコールスタック出力 近隣領域も表示し、stack 領域か static 領域か判別する機能も備わっています。デバッグの強力な手助けになっています。 ・アロケーションカウント リークチェックではなく、単純に HeapAlloc() が呼ばれた回数をコールスタックと共に出力します。プロファイリングのお供に。 ちなみに、デバッガをつないでいる時は HeapAlloc()

    memory leak buster (2) - primitive: blog
  • マルチスレッドとメモリ同期 - primitive: blog

    今回はマルチスレッドプログラミングでの厄介な問題、メモリ同期について。 要するにきちんと排他制御しろという当たり前の話なんだけど、何故きちんと排他制御しないといけないのかまで深く説明してるのはあまり見ない気がします。 例 例えばこんなコードで bool g_complete = false; int g_message[100]; void foo(int i) { g_message[i/10] = 42; g_complete = true; } void bar() { while(!g_complete) { // foo() が終わるまで busy loop して待つつもり } printf("%d\n", g_message[0]); } マルチスレッドでワーカースレッドが foo() を呼び、メインスレッドが bar() で仕事が終わるのを待って結果を表示する、ということをや

    マルチスレッドとメモリ同期 - primitive: blog
    craf
    craf 2011/03/01
  • EASTL から垣間見るゲームソフトウェア開発現場の現状 その 2

    遅くなりましたが、前回の続きです。これで全部です。Appendix の訳で、前回よりも具体的&実践的な内容になっています。 また、yakiimo02 さんの記事で知りましたが、現在 EASTL は EA のゲーム用 WebKit のソースの一部として公開されているようです (このパッケージの EAWebKitSupportPackages/EASTLEAWebKit/local/include/EASTL など)。ライセンスも割と緩めで、使用を考えてみるのも面白そうです。しかし、WebKitゲーム用に移植する、というのもすごい話です…。 Appendix この Appendix には、ドキュメント体の参考資料が含まれ、多くの場合、ドキュメント体で触れた内容の詳細を解説している。話が筋から外れないようにするため、ここに分離している。 1 - (removed) 2 - A debu

    EASTL から垣間見るゲームソフトウェア開発現場の現状 その 2
    craf
    craf 2010/10/26
  • EASTL から垣間見るゲームソフトウェア開発現場の現状 その 1

    (2016/02/10 追記: EASTL は長らく EAWebKit の一部としてライセンスが不明瞭なまま公開されていましたが、この日 BSD ライセンスで正式に公開されました https://github.com/electronicarts/EASTL) 若干古いものですが、2007 年に発表された、Electronic Arts によるゲーム開発向けの改良を加えた STL、"EASTL" の仕様。 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html 仕様だけで実装が公開されてないのが非常に残念なのですが、それは別として、何故こんなものが必要なのか、どういう事情でこの機能が盛り込まれたのか、といったゲーム開発現場の事情が細かく解説されていて、とても参考になります。特に、既にある程度 C++ に習熟してい

    EASTL から垣間見るゲームソフトウェア開発現場の現状 その 1
    craf
    craf 2010/10/12
    読みたいと思いつつ放置してたんでありがたいです。
  • 1