typedef struct { void *filename; Uint32 attr; Uint32 texaddr; } NJS_TEXNAME;
*filename | ファイル名 |
attr | アトリビュート |
texaddr | テクスチャアドレス |
メンバ *filenameは、ファイルテクスチャの場合ファイル名が入りますが、メモリテクスチャの場合 NJS_TEXINFO構造体のアドレスが入ります。
アトリビュートを示すメンバ attr の各ビットは次の意味を持ちます。
31 | 0:キャッシュテクスチャ非登録/1:キャッシュテクスチャ登録 |
30 | 0:ファイルからテクスチャロード/1:メモリからテクスチャロード |
29 | 0:テクスチャメモリのみ登録/1:キャッシュ、テクスチャメモリの両方に登録 |
28〜25 | 予約領域 |
24 | 1:パレットグローバルインデックスフラグ |
23 | 1:グローバルインデックスフラグ |
22〜21 | 予約領域 |
16 | テクスチャコンティニューフラグ |
15〜0 | PVMエントリID保存に使用 |
具体的には次のようになります。
・テクスチャメモリにのみロードする場合は31,29ビットを0にする。
・キャッシュメモリにのみロードする場合は31ビットを1にする。
・キャッシュ、テクスチャメモリの両方にロードする場合には 29ビットを1にする。
メンバ texaddrは、テクスチャロード時にテクスチャアトリビュートにグローバルインデックスフラグ、 又はパレットグローバルインデックスフラグを指定する場合、 グローバルインデックス値、パレットバンク値が入ります。 通常、njSetTextureName()関数でセットされます。
テクスチャロード後はNJS_TEXMEMLIST構造体へのアドレスが設定されます。 グローバルインデックスフラグ、パレットグローバルインデックス使用時に、 テクスチャリリース後にもう一度テクスチャをロードするような場合は、 グローバルインデックス値を再度設定する必要があります。