# NNS_G2dCharCanvasMakeCell*

## 構文

      #include <nnsys/g2d/g2d_CharCanvas.h>

      void NNS_G2dCharCanvasMakeCell1D(
          NNSG2dCellData*         pCell,
          const NNSG2dCharCanvas* pCC,
          int                     x,
          int                     y,
          int                     priority,
          GXOamMode               mode,
          BOOL                    mosaic,
          GXOamEffect             effect,
          GXOamColorMode          color,
          int                     charName,
          int                     cParam,
          NNSG2dOBJVramMode       vramMode,
          BOOL                    makeBR
      );

      void NNS_G2dCharCanvasMakeCell2DRect(
          NNSG2dCellData*         pCell,
          const NNSG2dCharCanvas* pCC,
          int                     x,
          int                     y,
          int                     priority,
          GXOamMode               mode,
          BOOL                    mosaic,
          GXOamEffect             effect,
          GXOamColorMode          color,
          int                     charName,
          int                     cParam,
          BOOL                    makeBR
      );

## 引数

pCell | [OUT] セルデータを格納するバッファへのポインタ。
pCC | [IN] CharCanvas へのポインタ
x | [IN] セルの中心座標(CharCanvas座標系)
y | [IN] セルの中心座標(CharCanvas座標系)
priority | [IN] セルのプライオリティ
mode | [IN] セルのOBJモード
mosaic | [IN] セルのモザイクの有無
effect | [IN] セルのエフェクト
color | [IN] CharCanvas のカラーモード
charName | [IN] CharCanvas が使用している先頭キャラクタネーム
cParam | [IN] カラーパレットNo.
vramMode | [IN] OBJ VRAM 容量
makeBR | [IN] 境界矩形情報を付加するかどうかを指定します。

## 返り値

なし。

## 説明

`NNS_G2dCharCanvasInitForOBJ1D()` および `NNS_G2dCharCanvasInitForOBJ2DRect()` で初期化した CharCanvas を実際に画面に表示するためのセルを構築します。 この関数で構築したセルをG2Dレンダラを用いて描画することで CharCanvasを容易に回転/拡縮/移動させながら表示する事が出来ます。

pCell にはセルデータとセルデータから参照される各種情報を格納するのに 十分な大きさのバッファを確保して指定します。 必要なバッファのサイズは `NNS_G2dCharCanvasCalcCellDataSize1D()` または `NNS_G2dCharCanvasCalcCellDataSize2DRect()` で求めることが出来ます。

pCCにはセルとして表示するCharCanvasへのポインタを指定します。

中心座標(x, y)はレンダラでセルを 描画する場合に配置の基準となる点です。 特に回転を行う場合は、この点を中心として回転することになります。

OBJ VRAM容量 vramMode にはハードウェアのVRAM最大容量設定に応じて、以下のいずれかを指定します。

NNS_G2D_OBJVRAMMODE_32K | 使用可能 OBJ VRAM 最大容量 32KB
NNS_G2D_OBJVRAMMODE_64K | 使用可能 OBJ VRAM 最大容量 64KB
NNS_G2D_OBJVRAMMODE_128K | 使用可能 OBJ VRAM 最大容量 128KB
NNS_G2D_OBJVRAMMODE_256K | 使用可能 OBJ VRAM 最大容量 256KB

makeBR では境界矩形情報を付加するかどうかを指定します。 これは `g2dcvtr` の `-br` オプションに相当します。

上記以外の引数については SDK API リファレンスの `G2_SetOBJAttr()` を参照してください。

この関数は内部での作業用バッファをスタックに確保します。 作業用バッファのサイズは pCell に必要なバッファサイズの約4/3倍で、 比較的大きなサイズとなるためスタックオーバーフローが発生しないように注意してください。

この関数は使用するOBJ数/キャラクタ数を最小にしようとしますので 8x32ピクセル等の細長いOBJを使用する可能性があります。 このような細長いOBJを回転させるとOBJの端が欠ける事となってしまいます。 細長いOBJがセルに含まれないようにするためにはキャラクタ単位でのCharCanvasの幅や高さが 素因数として2を多く含むようにします。 幅と高さが共にキャラクタ単位で8の倍数であれば細長いOBJは含まれません。

## 参照

``

## 履歴

2007/02/16 初版

2005/07/12 初版