# NNS_G2dCalcRequiredOBJ*

## 構文

      #include <nnsys/g2d/g2d_CharCanvas.h>

      int NNS_G2dCalcRequiredOBJ1D(
          int areaWidth,
          int areaHeight
      );

      int NNS_G2dCalcRequiredOBJ2DRect(
          int areaWidth,
          int areaHeight
      );

## 引数

areaWidth | [IN] CharCanvas の幅 (キャラクタ単位)
areaHeight | [IN] CharCanvas の高さ (キャラクタ単位)

## 返り値

CharCanvas を表示するのに必要な OBJ の数を返します。

## 説明

`NNS_G2dArrangeOBJ1D()` および `NNS_G2dArrangeOBJ2DRect()` が必要とする OBJ の数を計算します。
`NNS_G2dCalcRequiredOBJ*` の計算結果表も参照してください。

## サンプルコード

    /*
     *  128 個ある OBJ の後ろから CharCanvas 表示用に割り当てます。
     */

    NNSG2dCharCanvas cc;
    GXCharFmt16* const charBase = (GXCharFmt16*)G2_GetOBJCharPtr();
    GXOamAttr* const oamBase = (GXOamAttr*)HW_OAM;
    const int width = 15;
    const int height = 10;
    const int x = 30;
    const int y = 20;
    const int charNo = 4;
    int objNo;

    // CharCanvas を初期化します
    NNS_G2dCharCanvasInitForOBJ1D(
        &cc,                            //
        charBase + charNo,              // キャラクタへのポインタ
        width,                          // 幅
        height,                         // 高さ
        NNS_G2D_CHARA_COLORMODE_16      // カラーモード
    );

    // 必要なOBJの数を計算してOBJ開始位置を求めます
    objNo = 128 - NNS_G2dCalcRequiredOBJ1D(width, height);

    // OBJを配置します
    NNS_G2dArrangeOBJ1D(
        oamBase + objNo,        // OAMへのポインタ
        width,                  // 幅
        height,                 // 高さ
        x,                      // 位置 x
        y,                      // 位置 y
        GX_OAM_COLORMODE_16,    // カラーモード
        charNo                  // キャラクタネーム
    );

    /*
        以下、OBJ の設定、TextCanvasの構築など
    */

## 参照

`NNS_G2dArrangeOBJ1D(), NNS_G2dArrangeOBJ2DRect()`

## 履歴

2005/05/25 初版