使ってきました
matrix = *((fxMatrix*)&d3dMatrix);
かなり長い間。画面が真っ暗になり、机の上でバケツのフラストレーションが溜まるまでは問題なく動作していました。
fxMatrix には 4 つの fxVectors が含まれています。fxVector は以前は 16 バイトでしたが、突然 20 になりました。これは、vTable を追加した fxStreamable を継承したためです。
したがって、1 つの解決策はもちろん、fxStreamable を継承せず、常に 16 バイトである必要があり、それ以上であってはならないというコメントを残すことです。
別の解決策は、変換関数を作成し、行列を完全にコピーすることです。これにより、より安全になりますが、パフォーマンスに影響します。これが一番いい考えだと思います。
もう 1 つの解決策は、まったく変換せずに D3DXMATRIX に固執することですが、これではエンジンに一貫性がなくなり、個人的にはこの考えが本当に嫌いです。
あなたの意見は何ですか?