トップページ > 過去ログ > 記事閲覧
BASEIMAGEおよびCOLORDATA構造体のメンバ
名前:びいかめ(解決) 日時: 2010/09/23 06:40

BASEIMAGEおよびCOLORDATA構造体はメンバが公開されています 本ライブラリでは、アプリケーションがこれらのメンバから値を取得するだけでなく、値を設定することも想定されていますか?

Page: 1 |

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 で正常にメモリを解放することができます

Page: 1 |