# ディスプレイリスト作成 API 接頭語

## 説明

### ディスプレイリスト(コマンド列)を生成する API

接頭語 | 例 | コマンド列形式 | コマンド生成後のポインタ
--- | --- | --- | ---
`G3B_` | `G3B_Vtx(), G3B_LoadMtx43()` | 非圧縮形式 | ポインタを先に進めます
`G3C_` | `G3C_Vtx(), G3C_LoadMtx43()` | 圧縮形式 | ポインタを先に進めます
`G3BS_` | `G3BS_Vtx(), G3BS_LoadMtx43()` | 非圧縮形式 | ポインタを進めません
`G3CS_` | `G3CS_Vtx(), G3CS_LoadMtx43()` | 圧縮形式 | ポインタを進めません

### 参考: ジオメトリ FIFO へ直接コマンドを転送する API

接頭語 | 例
--- | ---
`G3_` | `G3_Vtx(), G3_LoadMtx43()`

## 解説

ディスプレイリストを生成する API は上記の様に 1 つの機能につき 4 種類の形式が提供されており、接頭語で区別されています。これはディスプレイリストを生成する4種類の状況に対応しています。

### 非圧縮 vs 圧縮

NITRO ハードウェアがサポートしているディスプレイリストの形式に対応したものです。通常は圧縮形式を使用する方が有利です。

- 非圧縮形式
    メモリを浪費します。
    プロセッサの生成処理が軽い。
- 圧縮形式
    メモリを浪費しません。
    比較して生成処理が重い。(ただしメモリアクセス量が少ないので総合的に見て処理が軽い可能性あり)

### ポインタを進める vs ポインタを進めない

コマンドリストを生成するときは、DLInfo 構造体を使って現在の出力バッファのポインタを保持します。このポインタをコマンド出力後に次の出力位置へ進めるかどうかに対応したものです。書き換える状況に応じて使い分けてください。

- ポインタを進める
    コマンドリストを逐次生成するのに向いています。
- ポインタを進めない
    コマンドリストの一部を生成後に書き換えるのに向いています。

## 参照

`MI_SendGXCommand*, G3_BeginMakeDL, G3_EndMakeDL`

## 履歴

Ver. 2004/03/29 初版作成