# NNS_G2dCalcRequiredOBJ*

## Syntax

      #include <nnsys/g2d/g2d_CharCanvas.h>

      int NNS_G2dCalcRequiredOBJ1D(
          int areaWidth,
          int areaHeight
      );

      int NNS_G2dCalcRequiredOBJ2DRect(
          int areaWidth,
          int areaHeight
      );

## Arguments

`areaWidth` | [IN] CharCanvas width (in characters)
`areaHeight` | [IN]CharCanvas height (in characters)

## Return Values

The number of OBJs required to display the CharCanvas.

## Description

Uses `NNS_G2dArrangeOBJ1D` and `NNS_G2dArrangeOBJ2DRect` to calculate the required number of OBJs.
See also the computation result of `NNS_G2dCalcRequiredOBJ*`.

## Sample Code

    /*
     *  In this sample code, OBJ are assigned from the end of a set of 128 OBJ for display of 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;

    // Initialize CharCanvas
    NNS_G2dCharCanvasInitForOBJ1D(
        &cc,                            //
        charBase + charNo,              // Pointer to character
        width,                          // Width
        height,                         // Height
        NNS_G2D_CHARA_COLORMODE_16      // Color mode
    );

    // Calculate the required number of OBJ and request the OBJ starting position
    objNo = 128 - NNS_G2dCalcRequiredOBJ1D(width, height);

    // Place OBJ
    NNS_G2dArrangeOBJ1D(
        oamBase + objNo,        // Pointer to OAM
        width,                          // Width
        height,                         // Height
        x,                      // X coordinate
        y,                      // Y coordinate
        GX_OAM_COLORMODE_16,    // Color mode
        charNo                  // Character name
    );

    /*
        After this comes configuration of OBJ and building of TextCanvas, etc.
    */

## See Also

`NNS_G2dArrangeOBJ1D`
`NNS_G2dArrangeOBJ2DRect`

## Revision History

2005/05/25 Initial version.

CONFIDENTIAL