#include <nnsys/gfd.h>
void NNS_GfdInitLnkTexVramManager(
u32 szByte,
u32 szByteFor4x4,
void* pManagementWork,
u32 szByteManagementWork,
BOOL useAsDefault );
| szByte | 管理するVRAM領域のバイトサイズ。(1Slot = 0x20000,最大4Slotとして計算する) |
| szByteFor4x4 | 管理領域中の4x4圧縮テクスチャに使用する領域のバイトサイズ。(1Slot = 0x20000,最大2Slotとして計算する) |
| pManagementWork | 管理情報として使用するメモリ領域へのポインタ。 |
| szByteManagementWork | 管理情報領域のサイズ。 |
| useAsDefault | リンクドリストテクスチャVRAMマネージャをカレントのマネージャとして使用するかどうか。 |
なし
VRAMマネージャを、テクスチャRAMの先頭からszByteで指定されたサイズ分の領域を管理するように初期化します。
初期化時のパラメータとして、マネージャの管理するVRAM領域のバイトサイズと、
管理領域中の4x4圧縮テクスチャに使用する領域のバイトサイズを指定する必要があります。
szByteFor4x4がゼロで無い場合では以下のような条件を満たす必要があります。
szByteFor4x4 <= 0x20000 の場合 szByte >= 0x20000 + szByteFor4x4 / 2
szByteFor4x4 > 0x20000 の場合 szByte >= 0x20000 + szByteFor4x4
リンクドリストVRAMマネージャは、空き領域の管理情報を必要とします。
そのため、管理情報のためのメモリ領域を初期化時に渡してあげる必要があります。
必要となる管理情報メモリのサイズはNNS_GfdGetLnkTexVramManagerWorkSize()によって取得可能です。
useAsDefaultをTRUEに指定すると、リンクドリストテクスチャVRAMマネージャがNITRO-System のカレント VRAMマネージャとして設定されます。
4x4圧縮テクスチャを利用する場合、
マネージャ内部で、通常テクスチャ用領域を分断するような形で、
4x4圧縮テクスチャ用領域が確保されます。
そのため、マネージャ内での連続するブロックの結合処理が十分に
行えず、残りVRAM要領が十分であるにもかかわらず、大きなサイズの
メモリアロケートに失敗する場合があります。
NNS_GfdGetLnkTexVramManagerWorkSize
2004/10/12 初版