##### Kamui2 Library - テクスチャ制御関数

# kmLoadVQCodebook

VQテクスチャのコードブック部分の再読み込み

### 書式

> `KMSTATUS kmLoadVQCodebook( pSurfaceDesc, pTexture )
> PKMSURFACEDESC pSurfaceDesc
> PKMDWORD pTexture
> `

### 引数

> pSurfaceDesc | (入力)確保したテクスチャサーフェスの構造体へのポインタ
> pTexture | (入力)メインメモリ上のテクスチャ(コードブック)を示すポインタ

### 戻り値

> KMSTATUS_SUCCESS | 成功
> KMSTATUS_INVALID_TEXTURE_TYPE | 無効なテクスチャサーフェスを指定した

### 解説

> 引数pSurfaceDescが指す VQ(または small VQ)テクスチャサーフェスに、 pTextureが指すメインメモリ上の VQ(またはsmall VQ)テクスチャのコードブック部分のみを読み込みます。

> 引数pSurfaceDescは、 kmCreateTextureSurface()関数 / kmCreateCombinedTextureSurface()関数 / kmCreateContiguousTextureSurface()関数 / kmCreateFixedTextureArea()関数で確保したテクスチャサーフェスです。 KMSURFACEDESC 型の構造体へのポインタです。 このサーフェスのカテゴリは、下記の中のいずれかでなければなりません。

> 定義 | 意味
> KM_TEXTURE_VQ | VQテクスチャ
> KM_TEXTURE_VQ_MM | VQミップマップテクスチャ
> KM_TEXTURE_SMALLVQ | Small VQテクスチャ
> KM_TEXTURE_SMALLVQ_MM | Small VQミップマップテクスチャ

> ロード済みの VQ(またはsmall VQ)テクスチャの、コードブックのみを書き換えて カラーパレット効果を出したいときに使用します。 システムメモリ側のテクスチャデータの先頭アドレスを32バイトアライメントしていて、 かつサイズが32バイトの倍数である場合、テクスチャメモリへの転送にDMAを使用します。 高速な転送が可能となります。

> 引数pTextureは、メインメモリ上のテクスチャ(コードブック)を示すポインタです。 32バイトアラインしたアドレスを指定してください。 これは完全な VQ(またはSmall VQ)テクスチャの形式である必要はありませんが、 少なくとも先頭に下表に示すバイト数のコードブックを含んでいる必要があります。

> テクスチャサイズとコードブックサイズの関係は下記の通りです。

> Texture Type / Size | Codebook Size (byte)
> VQ / VQ mipmap | 0x800
> 16x16 small VQ | 0x80
> 16x16 small VQ mipmap | 0x80
> 32x32 small VQ | 0x100
> 32x32 small VQ mipmap | 0x200
> 64x64 small VQ | 0x400

> テクスチャの転送にDMAが使用された場合、その終了を待つか否かを選択することができます。 kmSetSystemConfiguration()関数でflagにKM_CONFIGFLAG_NOWAIT_FINISH_TEXTUREDMAを指定した場合はDMA転送の終了を待たずに関数を終了します。

> この場合は、 kmQueryFinishLastTextureDMA()関数でDMA転送の終了を確認することができます。 テクスチャロード前に、CPU側でメインメモリ上のテクスチャデータを直接書き換えた場合などは、 キャッシュのコヒーレンシ確保のため、キャッシュのパージを行った上でロード関数を実行してください (SH4のocbwb命令を実行してください)。

### 参照

> kmCreateTextureSurface() | テクスチャ用サーフェスの確保
> kmCreateCombinedTextureSurface() | 複合テクスチャサーフェスの確保
> kmCreateContiguousTextureSurface() | 連続したアドレス領域へのテクスチャサーフェスの作成
> kmCreateFixedTextureArea() | 固定テクスチャ領域の確保
> kmQueryFinishLastTextureDMA() | 前回のDMA転送によるテクスチャロードの終了チェック
> kmSetSystemConfiguration() | システム構成の設定

kmLoadVQCodebook

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