# NNS_GfdAllocTexVram

## 構文

      #include <nnsys/gfd.h>

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

## 引数

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

## 返り値

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

## 説明

`szByte`で指定された大きさのテクスチャ用メモリをVRAMから確保します。 TWL-SystemのライブラリがVRAMからテクスチャ用メモリを確保する場合には、この関数が使用されます。

`NNS_GfdAllocTexVram`関数は以下のように定義されており、内部処理は グローバルな関数ポインタである`NNS_GfdDefaultFuncAllocTexVram`に設定されている関数を呼び出しているのみとなっています。

    static inline NNSGfdTexKey
    NNS_GfdAllocTexVram(u32 szByte, BOOL is4x4comp, u32 opt)
    {
        return (*NNS_GfdDefaultFuncAllocTexVram)(szByte, is4x4comp, opt );
    }

この関数ポインタに適当なテクスチャ用メモリ確保関数を登録する事により、`NNS_GfdAllocTexVram`は機能します。 このような仕組みにより、ライブラリからのテクスチャ用メモリの確保をユーザ側でコントロールする事を可能にしています。 なお初期状態では、`NNS_GfdDefaultFuncAllocTexVram`には、何も処理をせずにエラーを返す関数が設定されています。 なお、テクスチャ用メモリの確保でエラーが発生した場合は、エラーを示すキーであるNNS_GFD_ALLOC_ERROR_TEXKEYが返ります。

`opt`は、`NNS_GfdDefaultFuncAllocTexVram`に設定するテクスチャ用メモリ確保関数で 用途を自由に決めて使用できるパラメータとして用意されています。

szByteについては、テクスチャキー内部のビット表現の仕様から、指定可能なサイズに制限があります。 また、実際にメモリ確保処理を行うVRAMマネージャの実装によって、一度に確保可能なサイズに制限がある場合があります。

## 参照

`NNS_GfdFreeTexVram`

## 履歴

2008/06/20 NITRO-SystemをTWL-Systemに変更
2007/01/31 確保サイズに関する注意書きを追加
2005/01/31 サイズの値域に関する注意書きを追加
2004/07/16 初版