# NNS_GfdAllocFrmTexVram

## 構文

      #include <nnsys/gfd.h>

      NNSGfdTexKey NNS_GfdAllocFrmTexVram(u32 szByte, BOOL is4x4comp, u32 opt);

## 引数

szByte | 確保したいテクスチャ用メモリの大きさ( 16 - 524272 バイト )
is4x4comp | 4×4テクセル圧縮テクスチャ用メモリを確保する場合、真
opt | VRAMメモリマネージャのオプション（未使用）

## 返り値

テクスチャ用メモリを示すキー・データ。

## 説明

`szByte`で指定された大きさのテクスチャ用メモリをVRAMから確保し、そのテクスチャ用メモリを示すキーを返します。 テクスチャ用メモリの確保でエラーが発生した場合は、エラーを示すキーであるNNS_GFD_ALLOC_ERROR_TEXKEYを返します。 この`NNS_GfdAllocFrmTexVram`では、optパラメータは使用されていません。

`is4x4comp`に`TRUE`が指定されている場合には、 ４×４テクセル圧縮テクスチャ用にテクスチャ用メモリを確保します。 この場合、テクスチャイメージ用領域に加え、パレットインデックス用領域も同時に確保します。 テクスチャイメージ用領域とパレットインデックス用領域の両方が確保できた場合のみ、 NNS_GfdAllocFrmTexVram()関数は成功した事になります。
通常テクスチャの領域確保において開き領域がない場合は、4x4テクスチャ用パレット領域への領域確保を試みます。
パレット領域が通常テクスチャによって利用された場合、その2倍の量の4x4テキスチャ用領域が利用不能になってしまいます(パレット領域の確保に失敗するため)。
そのため、すべての4x4テクスチャ,すべての通常テクスチャの順でアロケートすることで、4x4テキスチャ用のパレット領域が通常テクスチャ によって利用されてしまう危険性を減らすことができ、効率的にメモリを利用することができます。

キーが表現可能な最小サイズより小さなサイズの確保請求があった場合、請求サイズを最小サイズに切り上げて確保します。
キーが表現可能な最大サイズより大きなサイズの確保請求があった場合、確保処理を行わずエラーキーを返します。

## 参照

`NNS_GfdInitFrmTexVramManager NNS_GfdFreeFrmTexVram`

## 履歴

2007/08/24 内部動作の説明と、効率的な利用方法についての注意書きを追加

2005/01/31 サイズの値域に関する注意書きを追加

2004/07/16 初版