Kamui2 Library - 構造体/その他のデータ型

KMSURFACEDESC

フレームバッファ、テクスチャのサーフェスディスクプリタ

定義

typedef struct tagKMSURFACEDESC 
{ 
     KMDWORD SurfaceType; 
     KMDWORD BitDepth; 
     KMDWORD PixelFormat; 
     union{ 
          KMDWORD USize; 
          KMDWORD Width; 
     } u0; 
     union{ 
          KMDWORD VSize; 
          KMDWORD Height 
     } u1 ; 
     union{ 
          KMDWORD dwTextureSize; 
          KMDWORD dwFrameBufferSize; 
     } uSize ; 
     KMDWORD fSurfaceFlags; 
     PKMDWORD pSurface; 

}KMSURFACEDESC; 
typedef KMSURFACEDESC *PKMSURFACEDESC; 
typedef PKMSURFACEDESC *PPKMSURFACEDESC; 

メンバ

SurfaceType   サーフェスタイプ
BitDepth   ビット深さ
PixelFormat   ピクセルフォーマット
USize   テクスチャのU値 8〜1024
Width   フレームバッファの幅
VSize   テクスチャのV値 8〜1024
Height   フレームバッファの高さ
dwTextureSize   テクスチャのサイズ(byte)
dwFrameBufferSize   フレームバッファのサイズ(byte)
fSurfaceFlags   サーフェスフラグ
pSurface   テクスチャインスタンス(PowerVR2 Coreへのポインタ)

解説

テクスチャまたはフレームバッファのサーフェスディスクプリタです。

どのような表示形式であるかを記述する構造体です。

メンバSurfaceTypeは、サーフェスのタイプを示します。 以下のいずれかが格納されます。

 値   意味 
 KM_SURFACETYPE_FRAMEBUFFER   フレームバッファ 
 KM_SURFACETYPE_TEXTURE   テクスチャ 
 KM_SURFACETYPE_SMALLVQ_TEXTURE   SmallVQテクスチャ 

注:このメンバの上位16ビットは、Ninjaのために予約されています。

メンバBitDepthは、ピクセルあたり何ビットかを示します。 以下のいずれかが格納されます。

 値   意味 
 KM_BITDEPTH_16   1pixel = 16bit 
 KM_BITDEPTH_24   1pixel = 24bit 
 KM_BITDEPTH_32   1pixel = 32bit 

メンバ PixelFormat は、ピクセルフォーマットを示します。 以下のいずれかが格納されます。

フレームバッファの場合

 定義   値 
 KM_DSPBPP_RGB565   RGB-565形式 
 KM_DSPBPP_RGB555   RGB-555形式 
 KM_DSPBPP_ARGB1555   ARGB-1555形式 
 KM_DSPBPP_RGB888   RGB-888形式 
 KM_DSPBPP_ARGB8888   ARGB-8888形式 

テクスチャの場合

 定義   値 
 KM_PIXELFORMAT_ARGB1555   ARGB-1555形式 
 KM_PIXELFORMAT_RGB565   RGB-565形式 
 KM_PIXELFORMAT_ARGB4444   ARGB-4444形式 
 KM_PIXELFORMAT_YUV422   YUV-422形式 
 KM_PIXELFORMAT_BUMP   バンプマップ 
 KM_PIXELFORMAT_PALETTIZED_4BPP   4bppパレット形式 
 KM_PIXELFORMAT_PALETTIZED_8BPP   8bppパレット形式 

メンバUSizeは、 テクスチャの場合の横方向のサイズです。 以下のいずれかが格納されます。

 定義   意味 
 KM_MAPSIZE_8   横サイズ8ピクセル 
 KM_MAPSIZE_16   横サイズ16ピクセル 
 KM_MAPSIZE_32   横サイズ32ピクセル 
 KM_MAPSIZE_64   横サイズ64ピクセル 
 KM_MAPSIZE_128   横サイズ128ピクセル 
 KM_MAPSIZE_256   横サイズ256ピクセル 
 KM_MAPSIZE_512   横サイズ512ピクセル 
 KM_MAPSIZE_1024   横サイズ1024ピクセル 

メンバWidthは、フレームバッファの場合の横方向のサイズです。

メンバVSizeは、テクスチャの場合の縦方向のサイズです。 以下のいずれかが格納されます。

 定義   意味 
 KM_MAPSIZE_8   縦サイズ8ピクセル 
 KM_MAPSIZE_16   縦サイズ16ピクセル 
 KM_MAPSIZE_32   縦サイズ32ピクセル 
 KM_MAPSIZE_64   縦サイズ64ピクセル 
 KM_MAPSIZE_128   縦サイズ128ピクセル 
 KM_MAPSIZE_256   縦サイズ256ピクセル 
 KM_MAPSIZE_512   縦サイズ512ピクセル 
 KM_MAPSIZE_1024   縦サイズ1024ピクセル 

メンバ Heightはフレームバッファの場合、縦方向のサイズです。

メンバ dwTextureSizeは、テクスチャ領域のサイズ(byte)です。

メンバ dwFrameBufferSizeは、フレームバッファ領域のサイズ(byte)です。

メンバfSurfaceFlagsは、サーフェスの属性を示すフラグです。 以下の値が格納されます。

フレームバッファの場合

 ビット   意味 
 bit 0   0:フル画面バッファ 1:StripBuffer使用 

テクスチャの場合

 ビット   意味 
 bit 0   0: Non MipMap 1: MipMapped 
 bit 1   未使用 
 bit 2   0: Rectangle 1: Twiddled 
 bit 3   0: NonVQ 1: VQed Texture 
 bit 4   0: NonStride 1: Stride Select 
 bit 5   0: Non Palettized 1: Palettized 

テクスチャの場合、以下のフラグの論理和がセットされます。

 定義   意味 
 KM_SURFACEFLAGS_MIPMAPED   ミップマップを持つ 
 KM_SURFACEFLAGS_TWIDDLED   TWIDDLED形式 
 KM_SURFACEFLAGS_VQ   VQ / SmallVQ 圧縮形式 
 KM_SURFACEFLAGS_STRIDE   ストライド指定あり 
 KM_SURFACEFLAGS_PALETTIZED   パレットテクスチャ 

メンバ pSurfaceは、サーフェスインスタンスへのポインタです。

メンバ pVirtualは、Texture instance ( Virtual address on SH4 )

メンバ pPhysicalは、Texture instance ( physical address on SH4 )


参照

kmChangeContextTextureAddress()
 TextureAddressの変更
kmChangeContextTextureSurface()
 TextureSurfaceの変更
kmChangeStripTextureAddress()
 TextureAddressの変更
kmChangeStripTextureSurface()
 TextureSurfaceの変更

KMSURFACEDESC
COPYRIGHT © NEC Corporation / © SEGA ENTERPRISES, LTD., 1998-2000