NNS_GfdInitLnkTexVramManager

構文

#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マネージャがTWL-System のカレント VRAMマネージャとして設定されます。

大きな領域の確保に関する注意

4x4圧縮テクスチャを利用する場合、 マネージャ内部で、通常テクスチャ用領域を分断するような形で、 4x4圧縮テクスチャ用領域が確保されます。
そのため、マネージャ内での連続するブロックの結合処理が十分に 行えず、残りVRAM要領が十分であるにもかかわらず、大きなサイズの メモリアロケートに失敗する場合があります。

参照

NNS_GfdGetLnkTexVramManagerWorkSize

履歴

2008/06/20 NITRO-SystemをTWL-Systemに変更
2004/10/12 初版