CellTransfer_Overview

# セルVRAM転送状態マネージャ概要

## 概念図

## 説明

セルVRAM転送状態オブジェクトは、VRAM転送元のデータに関する情報、 VRAM転送先に関する情報、 持ち主であるセルアニメーションがVRAM転送を必要とする状態か、 どんな画像が転送を転送する必要があるのか、セルは描画されているか、などの状態を管理しています。
VRAM転送方式のセルアニメーションはセルVRAM転送状態オブジェクトをメンバとして保持します（正確にはハンドルを保持しています。）
ユーザは初期化時に取得した、ハンドルを使用して、セルVRAM転送状態オブジェクトに対する操作を行います。
セルVRAM転送状態マネージャは毎フレームごとにVRAM転送状態オブジェクトの状態をチェックし、 VRAM転送を実行する必要があるか判定します。
マネージャは必要となったVRAM転送タスクの実行請求を請求関数を利用して請求します。
ここで、注意すべきは、マネージャは請求を行うだけで、 実際のVRAM転送の実行、転送タスクの管理は外部モジュールに委譲している点です。 実際のVRAM転送にはTwlSystem 、Gfd(グラフィックス基本)ライブラリ内のVRAM転送マネージャがご利用いただけます。 APIの整合を守っていただけば、ユーザが独自に実装したVRAM転送モジュールを使用していただくことも可能です。

    以下にセルVRAM転送状態オブジェクトを利用して、VRAM転送セルアニメーションを実現するまでの処理の流れを示します。

     =========== 初期化処理 ===========
     1.セルVRAM転送状態オブジェクトマネージャを初期化します(NNS_G2dInitCellTransferStateManager())。
     2.セルVRAM転送状態オブジェクトハンドルを取得し(NNS_G2dGetNewCellTransferStateHandle())、
       VRAM転送セルアニメーションを初期化します( NNS_G2dInitCellAnimationVramTransfered() )。

        =========== ゲームループ ===========
        3.転送状態を更新する（NNS_G2dSetCellTransferStateRequested()）
        4.描画されたかどうかの状態を更新する( NNSi_G2dSetCellTransferStateCellDrawnFlag() )
        5.セルVRAM転送状態オブジェクトマネージャを更新する（NNS_G2dUpdateCellTransferStateManager()）
          ここで、使用されているオブジェクトで転送処理が必要な状態のものは転送処理が行われる。

    =========== 終了処理 ===========
    6.使用しなくなったセルVRAM転送状態オブジェクトハンドルをマネージャに返却します。( NNS_G2dFreeCellTransferStateHandle() )

## 参照

なし

## 履歴

2004/12/06 初版