プログラムライブラリ Edit

ロードマップ Edit

  • 0.1:単純なピクセルフォーマットの対応(RGB、RGBAなど)
  • 0.2:OpenGL1.0で扱える無圧縮ピクセルフォーマットの全対応
  • 0.3:S3TCフォーマットの対応(ここまでできたらいいなぁ)
  • 0.4:RLEフォーマットの対応?
  • 1.0:ミップマップ対応

ファイルフォーマット Edit


Ver0.1(全て Little Endian)
サイズ(bytes)Comment説明
6char[6]"GLPIC"固定文字列。
1u8format version infoバージョン情報。
1u8pixel formatピクセルフォーマット。
2u16texture's width(pixel)テクスチャの横幅。
2u16texture's height(pixel)テクスチャの縦幅。
2u16src image's width(pixel)イメージ本体の横幅。
2u16src image's height(pixel)イメージ本体の縦幅。
4u32pixel total data size(bytes)ピクセルデータのデータサイズ。
4u32user data size(bytes)ユーザーデータのデータサイズ。
4u32user data offset(bytes)pixel dataからuser dataへのオフセット値。
4u32endian checker(0x12345678)エンディアンチェック。
?u8pixel dataピクセルデータ。
?u8user dataユーザーデータ。

Ver0.1

構造体 Edit

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
 
 
#spanend
#spanadd
struct GLPicHeader
#spanend
#spanadd
{
#spanend
    // 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;     ///< ユーザーデータのサイズ。
#spanadd
};
#spanend
#spanadd
  • endian checkerが0x3412のときは、各データのバイトオーダーを逆にする。
  • user dataが存在しないときは、user data sizeおよびuser data offsetは0。

ピクセルデータ Edit

GLPicHeader_GetImageScaled == GLPicBool_True

画像はテクスチャいっぱいにスケールされている。
GLPicHeader_GetImageScaled == GLPicBool_False

画像は左上に格納され、右および下の余白には0データが格納されている。

ライブラリ Edit

作成すらしていない

メモ(つぶやき) Edit

  • ピクセルフォーマット、4だろうが12だろうが、レッツノートもMacBookも8bitで表現してるっぽい。RGB5A1はちゃんとそのまま対応してるらしい。 -- あっきー? 2007-09-10 (月) 23:33:47

    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS