G3_SwapBuffers

# G3*_SwapBuffers

## 構文

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_SwapBuffers(GXSortMode am, GXBufferMode zw);

      // 以下ディスプレイリスト（コマンド列）作成用API
      void G3B_SwapBuffers(GXDLInfo* info, GXSortMode am, GXBufferMode zw);
      void G3C_SwapBuffers(GXDLInfo* info, GXSortMode am, GXBufferMode zw);
      void G3BS_SwapBuffers(GXDLInfo* info, GXSortMode am, GXBufferMode zw);
      void G3CS_SwapBuffers(GXDLInfo* info, GXSortMode am, GXBufferMode zw);

## 引数

info | コマンドリスト情報
am | 半透明ポリゴンのYソーティング選択
zw | デプスバッファリング選択

## 返り値

なし。

## 説明

レンダリングエンジンが参照するデータ群をスワップします。zwはデプスバッファリング選択フラグで、デプステストに使用する値を選択します。なお、W値によるバッファリングは正射影では正常に機能しません。amは半透明ポリゴンソーティング選択フラグで、シャドウボリュームを使用するときなどにおいて、描画順序を指定したいときはマニュアルソートモードにして下さい。
SwapBuffersコマンドを発行した直後のVブランク期間開始時に、ポリゴンリストRAM、頂点RAM、レンダリング関連レジスタ等、レンダリングエンジンが参照するデータを切り替えます。このため、書き込んだグラフィックスデータが描画へ反映されるのはSwapBuffersコマンドを発行した後に開始されるVブランクの次のフレームになります。
(注意1) Vブランク開始以降にこの命令が発行された場合は、データの切り替えは次のVブランク開始時になります。
(注意2) データの切り替えが行われるまで、ジオメトリエンジンはビジー状態を維持します。また、以降のジオメトリコマンドの処理も行いません。

`GX_SORTMODE_AUTO` | オートソートモード
`GX_SORTMODE_MANUAL` | マニュアルソートモード

`GX_BUFFERMODE_Z` | Z値によるバッファリング
`GX_BUFFERMODE_W` | W値によるバッファリング(`G3_Ortho()` を使用した場合は正常に機能しません)

以下に、`GXSortMode`型と`GXBufferMode`型の型定義を示しておきます。

    typedef enum
    {
        GX_SORTMODE_AUTO = 0,
        GX_SORTMODE_MANUAL = 1
    }
    GXSortMode;

    typedef enum
    {
        GX_BUFFERMODE_Z = 0,
        GX_BUFFERMODE_W = 1
    }
    GXBufferMode;

## 参照

## 履歴

Ver. 2004/02/09

- 注意書きを追加。

Ver. 2004/01/19