* プログラムライブラリ [#xdec2d85] #contents ** ロードマップ [#q13ee38b] -0.1:単純なピクセルフォーマットの対応(RGB、RGBAなど) -0.2:OpenGL1.0で扱える無圧縮ピクセルフォーマットの全対応 -0.3:S3TCフォーマットの対応(ここまでできたらいいなぁ) -0.4:RLEフォーマットの対応? -1.0:ミップマップ対応 ** ファイルフォーマット [#mc495ab3] Ver0.1 *** 構造体 [#hb718b9a] #code(c,){{ struct GLPicHeader { // 0 char signature[3]; ///< シグネチャ。固定文字列が入る。 unsigned char version; ///< ファイルフォーマットのバージョン情報。 unsigned short endianCheck; ///< エンディアンチェック。固定値が入る。 unsigned char pixelFormat; ///< ピクセルフォーマット。 unsigned char flagAndMipMapLevel; ///< 最上位ビット:イメージは引き延ばされているか。それ以外:ミップマップの最大レベル。 // 8 unsigned short textureWidth; ///< テクスチャの横幅。 unsigned short textureHeight; ///< テクスチャの縦幅。 unsigned short imageWidth; ///< 元のイメージの横幅。 unsigned short imageHeight; ///< 元のイメージの縦幅。 // 16 unsigned long pixelDataOffset; ///< ヘッダの先頭からpixelDataへのオフセット値 unsigned long pixelDataSize; ///< ピクセルのデータサイズ。 // 24 unsigned long userDataOffset; ///< ヘッダの先頭からuserDataへのオフセット値。 unsigned long userDataSize; ///< ユーザーデータのサイズ。 }; }} -endian checkerが0x3412のときは、各データのバイトオーダーを逆にする。 -user dataが存在しないときは、user data sizeおよびuser data offsetは0。 *** ピクセルデータ [#be02b550] :GLPicHeader_GetImageScaled == GLPicBool_True| 画像はテクスチャいっぱいにスケールされている。 :GLPicHeader_GetImageScaled == GLPicBool_False| 画像は左上に格納され、右および下の余白には0データが格納されている。 ** ライブラリ [#fb1b2a58] 作成すらしていない ** メモ(つぶやき) [#j59017c0] #comment(below) - ピクセルフォーマット、4だろうが12だろうが、レッツノートもMacBookも8bitで表現してるっぽい。RGB5A1はちゃんとそのまま対応してるらしい。 -- [[あっきー]] &new{2007-09-10 (月) 23:33:47}; |