C言語なら俺に聞け! Part 116
■ このスレッドは過去ログ倉庫に格納されています
0092デフォルトの名無しさん
2005/10/20(木) 00:39:37ちと仕事で詰まってるところがあって質問させてくれないか?
ポリゴンを書くためのデータ構造体で作っているんだがどうもそれがパディングを起こしているらしく、
そのデータで描画すると表示がおかしくなるんだ。
パディングを起こさないような構造体のメンバと其れに合わせたポリゴンのフォーマットにすればうまくいく。
で、#pragma packをつかってみたら元は64だったのが56になった。でも表示は違う壊れかたをしてしまう……。
アライメントは8。linuxでgccがコンパイラ。
けど、データの内容を変えるわけにも行かず、描画のためのストリームなので決まった順序で連続してないとだめだし。
先輩に聞いたら簡単に治せるらしいんだけど……1日考えても#pragma以外の解決案がわからない……。
まとめると
・#pragma pack(1)でやると64から54になる。だが表示がpackするまえとは別の壊れかたをする
・構造体のメンバをパディングしないようにbyte数の小さい変数に変え、それにあったフォーマットにすると思ったとおり表示される。
・描画用のストリームなので連続してないとだめ
・先輩いわく、簡単・即効で直せるらしい
何か思い当たることがあったら教えてくださいな……orz
アライメントの問題なんてVCとかでオプションで解決してたんだけどやっぱりちゃんと勉強しないとだめだね…。
■ このスレッドは過去ログ倉庫に格納されています