typedef struct{ Uint32 Type; /* 31 - 24ビット テクスチャフォーマットタイプ 0x01******:Twiddledテクスチャ 0x02******:Twiddledミップマップテクスチャ 0x03******:VQテクスチャ 0x04******:VQミップマップテクスチャ 0x05******:4bppパレットテクスチャ 0x06******:4bppパレットミップマップテクスチャ 0x07******:8bppパレットテクスチャ 0x08******:8bppパレットミップマップテクスチャ 0x09******:Rectangleテクスチャ 0x0B******:Strideテクスチャ 0x0D******:Twiddled Rectangleテクスチャ 0x10******:SmallVQテクスチャ 0x11******:SmallVQミップマップテクスチャ 23 - 16ビット テクスチャカラータイプ 0x**00****:ARGB1555 0x**01****:RGB565 0x**02****:ARGB4444 0x**03****:YUV422 0x**04****:BUMP 0x**05****:RGB555 0x**06****:ARGB8888 or YUV420 15 - 0ビット サーフェスタイプ 0x****0001:フレームバッファ(この値は入りません) 0x****0002:SmallVQ以外のテクスチャ 0x****0003:SmallVQテクスチャ */ Uint32 BitDepth; /* 0x00000001:16ビットテクスチャ 0x00000002:24ビットテクスチャ 0x00000003:32ビットテクスチャ */ Uint32 PixelFormat; /* 0x00000000:ARGB1555 0x08000000:RGB565 0x10000000:ARGB4444 0x18000000:YUV422 0x20000000:BUMP 0x28000000:PALETTIZED 4BPP 0x30000000:PALETTIZED 8BPP */ Uint32 nWidth; /* テクスチャの横サイズ 8 - 1024 */ Uint32 nHeight; /* テクスチャの縦サイズ 8 - 1024 */ Uint32 TextureSize; /* テクスチャのバイトサイズ */ Uint32 fSurfaceFlags; /* 0ビット 0: ミップマップなし 1: ミップマップあり 1ビット 0: 1ビットは0固定 2ビット 0: 長方形テクスチャ 1: Twiddledテクスチャ 3ビット 0: VQ以外のテクスチャ 1: VQテクスチャ 4ビット 0: Stride以外のテクスチャ 1: Strideテクスチャ 5ビット 0: パレット以外のテクスチャ 1: パレットテクスチャ */ Uint32 *pSurface; /* テクスチャアドレスのオフセット */ Uint32 *pVirtual; /* 0固定 */ Uint32 *pPhysical; /* 0固定 */ }NJS_TEXSURFACE;
typedef struct{ void *texaddr; /* メモリテクスチャ、キャッシュテク スチャの場合ロード先のアドレスが 入る */ NJS_TEXSURFACE texsurface; /* NJS_TEXSURFACE構造体 NJS_TEXMEMLIST構造体 のメンバではテクスチャロード後のテクスチャデータが保存される。 メモリテクスチャをロードときにNJS_TEXINFO構造体を使用する場合。 NJS_TEXSURFACE構造体 のTypeの上位16ビットにテクスチャフォーマットタイプとテクスチャ カラータイプを入れ、nWidth,nHeightにテクスチャの横縦のサイズを 入れる。 */ } NJS_TEXINFO;
typedef struct { void *filename; /* ファイルテクスチャの場合ファイル名が入るメモリテクスチャの場合 NJS_TEXINFO構造体のアドレスが入る。 */ Uint32 attr; /* 31 - 21ビット テクスチャアトリビュート 31ビット 0:キャッシュテクスチャ登録しない 1:キャッシュテクスチャ登録する 30ビット 0:ファイルからテクスチャをロードする 1:メモリからテクスチャをロードする 29ビット 0:テクスチャメモリのみ登録する 1:キャッシュ、テクスチャメモリの両方に登録する ********************************************************* ・テクスチャメモリにのみロードする場合は31,29ビットを0にする。 ・キャッシュメモリにのみロードする場合は31ビットを1にする。 ・キャッシュ、テクスチャメモリの両方にロードする場合には、 29ビットを1にする。 ********************************************************** 28 - 25ビット :予約領域 24ビット 1:パレットグローバルインデックスフラグ 23ビット 1:グローバルインデックスフラグ 22、21ビット :予約領域 16ビット :テクスチャコンティニュウフラグ 15 - 0ビット :PVMエントリID保存に使用する */ Uint32 texaddr; /* テクスチャロード時にテクスチャアトリビュートにグローバルイン デックスフラグ、又はパレットグローバルインデックスフラグを指定す る場合、グローバルインデックス値、パレットバンク値が入る。 通常、njSetTextureName関数でセットされる。 テクスチャロード後はNJS_TEXMEMLIST構造体へのアドレスが設定される。 グローバルインデックスフラグ、パレットグローバルインデックス使用 時に、テクスチャリリース後にもう一度テクスチャをロードするような 場合は、グローバルインデックス値を再度設定すること。 */ } NJS_TEXNAME;
typedef struct { NJS_TEXNAME *textures; /* NJS_TEXNAME構造体のアドレスを設定 */ Uint32 nbTexture; /* NJS_TEXNAME構造体の個数を設定 */ } NJS_TEXLIST;
typedef struct { Uint32 globalIndex; /* キャッシュ領域又はテクスチャ領域に登録されたテクスチャの グローバルインデックス。 デフォルトは0xFFFFFFFF */ Uint32 bank; /* パレットテクスチャのバンク番号。 デフォルトは0xFFFFFFFF */ Uint32 tspparambuffer; /* 内部設定値 */ Uint32 texparambuffer; /* 内部設定値 */ Uint32 texaddr; /* texture flag */ NJS_TEXINFO texinfo; /* NJS_TEXINFO構造体 */ Uint16 count; /* テクスチャ使用回数 */ Uint16 dummy; /* テクスチャのエラーコード 0:エラーなし 1:その他のエラー 2:ファイルオープンエラー 3:拡張子エラー 4:ヘッダエラー 5:ファイルロードエラー 6:サーフェスエラー(テクスチャメモリ不足) 7:メインメモリエラー(メインメモリ不足 ) 8:テクスチャメモリロードエラー 9:グローバルインデックスエラー */ } NJS_TEXMEMLIST;
typedef struct { void *palette; /* パレットデータへのアドレス */ Uint16 mode; /* パレットのカラーモード 0:ARGB1555 1:RGB565 2:ARGB4444 6:ARGB8888 */ Sint16 bank; /* パレットのバンク番号 0 - 63 */ Sint16 offset; /* パレットエントリのオフセット 0 - 1023 */ Sint16 count; /* パレットの数 1 - 1024 */ }NJS_TEXPALETTE;
typedef struct { Uint32 n; /* エラーしたテクスチャのテクスチャ番号 デフォルトは0xFFFFFFFF */ Uint32 globalIndex; /* エラーしたテクスチャのグローバルインデックス デフォルトは0xFFFFFFFF */ Sint32 texerr; /* テクスチャのエラーコード 0:エラーなし 1:その他のエラー 2:ファイルオープンエラー 3:拡張子エラー 4:ヘッダエラー 5:ファイルロードエラー 6:サーフェスエラー(テクスチャメモリ不足) 7:メインメモリエラー(メインメモリ不足) 8:テクスチャメモリロードエラー 9:グローバルインデックスエラー */ Sint32 gdstat; /* GDステータスコード。 GDからファイルロード中にエラーが発生した場合、GDのステータス取得関数 gdFsGetStat を実行し結果をgdstatに入る。 この場合texerrは5のファイルロードエラーになっている。 #define GDD_STAT_IDLE (0) #define GDD_STAT_COMPLETE (1) #define GDD_STAT_READ (2) #define GDD_STAT_SEEK (3) #define GDD_STAT_BUSY (4) #define GDD_STAT_ERR (5) #define GDD_STAT_FATAL (6) #define GDD_STAT_CONTINUE (7) #define GDD_STAT_UNDEF (8) デフォルトは0 */ Sint32 gderr; /* GDエラーコード GDからファイルロード中にエラーが発生した場合、 GDのステータス取得関数を実行した後にGDのエラー取得関数 gdFsGetErrStat を実行し、結果をgderrに入れる #define GDD_ERR_OK ( 0) #define GDD_ERR_INIT ( -1) #define GDD_ERR_RESET ( -2) #define GDD_ERR_LIBOV ( -3) #define GDD_ERR_MOUNT ( -4) #define GDD_ERR_DISC ( -5) #define GDD_ERR_DIRREC ( -6) #define GDD_ERR_CANTOPEN ( -7) #define GDD_ERR_NOTFOUND ( -8) #define GDD_ERR_NOHNDL ( -9) #define GDD_ERR_ILLHNDL (-10) #define GDD_ERR_NOTDIR (-11) #define GDD_ERR_DIROVER (-12) #define GDD_ERR_BUSY (-13) #define GDD_ERR_32ALIGN (-14) #define GDD_ERR_SIZE (-15) #define GDD_ERR_SEEK (-16) #define GDD_ERR_OFS (-17) #define GDD_ERR_ILLTMODE (-18) #define GDD_ERR_READ (-19) #define GDD_ERR_NOTREAD (-20) #define GDD_ERR_TOUT (-21) #define GDD_ERR_EOF (-22) #define GDD_ERR_TRAYOPEND (-23) #define GDD_ERR_SIZEOVER (-24) #define GDD_ERR_FATAL (-25) #define GDD_ERR_UNDEF (-26) #define GDD_ERR_NOERR (-27) #define GDD_ERR_RECOVER (-28) #define GDD_ERR_NOTREADY (-29) #define GDD_ERR_MEDIA (-30) #define GDD_ERR_HWARE (-31) #define GDD_ERR_ILLREQ (-32) #define GDD_ERR_UNITATTENT (-33) #define GDD_ERR_PROTECT (-34) #define GDD_ERR_ABORT (-35) #define GDD_ERR_NOREADABLE (-36) #define GDD_ERR_CHECKBUSY (-37) デフォルトは0が入っています。 */ Sint32 reserved0;/* 予約領域0 */ Sint32 reserved1;/* 予約領域1 */ Sint32 reserved2;/* 予約領域2 */ }NJS_TEXERRSTAT;