ファイルフォーマットを書き換えたい(4)さすがに力尽きたorz高校時代英語ずっと赤点で、大学も再々々履修くらいまでいったくらい苦手。最後のSDNAの章は、適当に読んだけどさっぱり分からんかった。移植性・可搬性(ポータビリティ)のためにSDNA機構というのがあるようだ。結局ソース読まないと全然分からん。いう結論になりました。treeから入り、全てのユーザのブロックをバイナリ形式でディスクへ保存する。各ブロックは、メモリ内でのこのブロックの独自アドレスのような、追加情報が保存されているヘッダ(BHead構造体)を得て保存される。overhead).ファイル読み込みは、ファイルの全てをメモリ内に読み込むことから始まる。Blenderはコードを読み、それから、全てのBHeadsを通り、LibraryDataとIndirectDataへと進み、フルコピーを生成する。して、全てのファイルの終わりに達すると、メモリを再び開放する。treeは、ただ、他でもリスト可能な構造であるから、複数のMainを保存でき、ダイナミックリンクされたデ0タを効率的に保存することが可能である。treeが生成される。treeは、それから、普通のプロセスを踏める。間、新しいMain構造を作り、それに続く全てのID_IDsを、そこへ蓄積する。これらのIDはLIB_READというフラグを得る。Dataを、そのブロックにリンクする。treeにリンクされ、古いブロックは消される。ブロックの種類により、expand_doit()関数が呼ばれ、強制的に3.2のようなブロックが読み込まれるか、既に完全に読み込んだデータを決定する。そのように広げられたデータが再び他のファイルにあったとい、ただID部分だけを読み、それを正しいMainにリンクし、LIB_READフラグを立てる。Dataポインタを結合する。allocated.よくわからんから略。openvdb待ち中。思い出し次第増えたり減ったり。