Ninjaライブラリ - テクスチャ構造体

NJS_TEXSURFACE

テクスチャメモリにロードしたテクスチャの情報を管理する構造体

定義

typedef struct{
        Uint32  Type;
        Uint32  BitDepth;
        Uint32  PixelFormat;
        Uint32  nWidth;
        Uint32  nHeight;
        Uint32  TextureSize;
        Uint32  fSurfaceFlags;
        Uint32  *pSurface;
        Uint32  *pVirtual;
        Uint32  *pPhysical;
}NJS_TEXSURFACE;

メンバ

Typeフォーマット・カラー・サーフェースタイプ
BitDepthテクスチャのカラービット数
PixelFormatピクセルフォーマット
nWidthテクスチャの横サイズ(8〜1024ピクセル)
nHeightテクスチャの縦サイズ(8〜1024ピクセル)
TextureSizeテクスチャのバイトサイズ
fSurfaceFlagsサーフェースフラグ
*pSurfaceテクスチャアドレスのオフセット
*pVirtual0固定
*pPhysical0固定

解説


用例

テクスチャメモリにロードしたテクスチャの情報を管理する構造体です。

メンバ 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テクスチャ            

テクスチャのカラービット数を示すメンバ BitDepth	は次の値を持ちます。

0x00000001	16ビットテクスチャ
0x00000002	24ビットテクスチャ
0x00000003	32ビットテクスチャ

ピクセルフォーマットを示すメンバ PixelFormatは、次の値を持ちます。

0x00000000	ARGB1555
0x08000000	RGB565
0x10000000	ARGB4444
0x18000000	YUV422
0x20000000	BUMP
0x28000000	PALETTIZED 4BPP
0x30000000	PALETTIZED 8BPP

サーフェースフラグを示すメンバ 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:パレットテクスチャ


NJS_TEXSURFACE
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998