Re: BASEIMAGEおよびCOLORDATA構造体のメンバ ( No.1 ) |
- 名前:びいかめ 日時:2010/09/23 06:44
すみません、誤って解決済みという名前で投稿してしまいました
実際にはまだ解決済みではありません
|
Re: BASEIMAGEおよびCOLORDATA構造体のメンバ ( No.2 ) |
- 名前:管理人 日時:2010/09/25 20:33
COLORDATA に関しては一応想定してますが、次のような制限があります
・カラービット深度は 8,16,24,32 の何れか
・R・G・B の要素は必ずある必要がある( なので R成分だけで 8bit の 1byte フォーマット等は非対応 )
・ビット深度が 8bit である場合は、必ずパレット画像として処理される
( なのでR・G・B・A がそれぞれ2ビットづつの 8bit の 1byte フォーマット等は非対応 )
主に想定しているフォーマットは
8bit 256色パレット
16bit R5G6B5
16bit X1R5G5B5
16bit A4R4G4B4
16bit A1R5G5B5
32bit A8R8G8B8
24bit R8G8B8
DXT1
DXT2
DXT3
DXT4
DXT5
となります
BASEIMAGE に関しては
COLORDATA ColorData は前述の制限があります
int MipMapCount は CreateGraphFromBaseImage 以外の関数では使用されていません
int Width, Height, Pitch に関しては整合性の取れた値であれば( Pitch が Width * ColorData.PixelByte より
小さくなければ )どんな値を設定していただいても大丈夫です
void *GraphData はただのイメージデータへのポインタですので、malloc や new で確保されたメモリでも
Height * Pitch 分のサイズがあればDXライブラリのメモリ確保処理で確保されたメモリではなくても正常に動作します
ただ、独自で確保したメモリを GraphData に代入した BASEIMAGE 構造体を ReleaseBaseImage に渡すとエラーになります、
ReleaseBaseImage では GraphData が示すメモリ領域を開放するだけですので、独自でメモリを確保された場合は
ReleaseBaseImage を呼ぶ必要はありません
|
Re: BASEIMAGEおよびCOLORDATA構造体のメンバ ( No.3 ) |
- 名前:びいかめ 日時:2010/09/25 23:20
GraphDataにDxAlloc関数を使ってメモリを確保した場合、ReleaseBaseImageでそのメモリを開放することは正常ですか?
|
Re: BASEIMAGEおよびCOLORDATA構造体のメンバ ( No.4 ) |
- 名前:管理人 日時:2010/09/26 01:58
はい、DxAllocを使用して GraphData 用のメモリを確保された場合は
ReleaseBaseImage で正常にメモリを解放することができます
|