TwlIPL_commit-99/add-ins/TwlSystem/include/nnsys/g2d/g2d_CharCanvas.h

708 lines
23 KiB
C
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
Project: NITRO-System - include - nnsys - g2d
File: g2d_CharCanvas.h
Copyright 2004-2008 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Revision: 172 $
*---------------------------------------------------------------------------*/
#ifndef G2D_CHARCANVAS_H_
#define G2D_CHARCANVAS_H_
#include <nnsys/g2d/g2d_Font.h>
#include <nnsys/g2d/g2di_AssertUtil.h>
#include <nnsys/g2d/fmt/g2d_Cell_data.h>
#ifdef __cplusplus
extern "C" {
#endif
//---------------------------------------------------------------------
//---------------------------------------------------------------------
// CharCanvas ƒ}ƒNƒ<4E>
//---------------------------------------------------------------------
#define NNS_G2D_CHARCANVAS_ASSERT( pCC ) \
NNS_G2D_ASSERTMSG( \
NNS_G2D_IS_VALID_POINTER(pCC) \
&& (0 < (pCC)->areaWidth) \
&& (0 < (pCC)->areaHeight) \
&& ( ((pCC)->dstBpp == 4) || ((pCC)->dstBpp == 8) ) \
&& NNS_G2D_IS_VALID_POINTER( (pCC)->charBase ) \
&& NNS_G2D_IS_ALIGNED((pCC)->charBase, 4) \
&& NNS_G2D_IS_VALID_POINTER( (pCC)->vtable ) \
&& NNS_G2D_IS_VALID_POINTER( (pCC)->vtable->pDrawGlyph ) \
&& NNS_G2D_IS_VALID_POINTER( (pCC)->vtable->pClear ) \
&& NNS_G2D_IS_VALID_POINTER( (pCC)->vtable->pClearArea ) \
, "Illegal NNSG2dCharCanvas.")
#define NNS_G2D_COLORMODE_ASSERT( cmode ) \
NNS_G2D_ASSERTMSG( \
(cmode) == NNS_G2D_CHARA_COLORMODE_16 \
|| (cmode) == NNS_G2D_CHARA_COLORMODE_256 \
, "Illegal Color Mode(=%d)", (cmode) )
#define NNS_G2D_OBJVRAMMODE_ASSERT( vmode ) \
NNS_G2D_ASSERTMSG( \
(vmode) == NNS_G2D_OBJVRAMMODE_32K \
|| (vmode) == NNS_G2D_OBJVRAMMODE_64K \
|| (vmode) == NNS_G2D_OBJVRAMMODE_128K \
|| (vmode) == NNS_G2D_OBJVRAMMODE_256K \
, "Illegal VRAM Mode(=%d)", (vmode) )
#define NNS_G2D_TEXT_BG_WIDTH_ASSERT( width ) \
NNS_G2D_ASSERTMSG( \
(width) == NNS_G2D_TEXT_BG_WIDTH_256 \
|| (width) == NNS_G2D_TEXT_BG_WIDTH_512 \
, "Illegal Text BG Width(=%d).", (width) )
#define NNS_G2D_AFFINE_BG_WIDTH_ASSERT( width ) \
NNS_G2D_ASSERTMSG( \
(width) == NNS_G2D_AFFINE_BG_WIDTH_128 \
|| (width) == NNS_G2D_AFFINE_BG_WIDTH_256 \
|| (width) == NNS_G2D_AFFINE_BG_WIDTH_512 \
|| (width) == NNS_G2D_AFFINE_BG_WIDTH_1024 \
, "Illegal Affine BG Width(=%d).", (width) )
#define NNS_G2D_256x16PLTT_BG_WIDTH_ASSERT( width ) \
NNS_G2D_ASSERTMSG( \
(width) == NNS_G2D_256x16PLTT_BG_WIDTH_128 \
|| (width) == NNS_G2D_256x16PLTT_BG_WIDTH_256 \
|| (width) == NNS_G2D_256x16PLTT_BG_WIDTH_512 \
|| (width) == NNS_G2D_256x16PLTT_BG_WIDTH_1024 \
, "Illegal 256x16Pltt BG Width(=%d).", (width) )
// TEXT BG Ì•<C38C>
typedef enum NNSG2dTextBGWidth
{
NNS_G2D_TEXT_BG_WIDTH_256 = 32,
NNS_G2D_TEXT_BG_WIDTH_512 = 64
}
NNSG2dTextBGWidth;
// ƒAƒtƒBƒ“BG Ì•<C38C>
typedef enum NNSG2dAffineBGWidth
{
NNS_G2D_AFFINE_BG_WIDTH_128 = 16,
NNS_G2D_AFFINE_BG_WIDTH_256 = 32,
NNS_G2D_AFFINE_BG_WIDTH_512 = 64,
NNS_G2D_AFFINE_BG_WIDTH_1024 = 128
}
NNSG2dAffineBGWidth;
// ƒAƒtƒBƒ“Šg£ 256x16ƒpƒŒƒbƒgƒ^ƒCƒv BG Ì•<C38C>
typedef enum NNSG2d256x16PlttBGWidth
{
NNS_G2D_256x16PLTT_BG_WIDTH_128 = 16,
NNS_G2D_256x16PLTT_BG_WIDTH_256 = 32,
NNS_G2D_256x16PLTT_BG_WIDTH_512 = 64,
NNS_G2D_256x16PLTT_BG_WIDTH_1024 = 128
}
NNSG2d256x16PlttBGWidth;
// ƒLƒƒƒ‰ƒNƒ^̃Jƒ‰<C692><C692>[ƒh
typedef enum NNSG2dCharaColorMode
{
NNS_G2D_CHARA_COLORMODE_16 = 4,
NNS_G2D_CHARA_COLORMODE_256 = 8
}
NNSG2dCharaColorMode;
// OBJ ƒLƒƒƒ‰ƒNƒ^—̈æŽQ<C5BD>Ɖ”\ƒTƒCƒY
typedef enum NNSG2dOBJVramMode
{
NNS_G2D_OBJVRAMMODE_32K = 0,
NNS_G2D_OBJVRAMMODE_64K = 1,
NNS_G2D_OBJVRAMMODE_128K = 2,
NNS_G2D_OBJVRAMMODE_256K = 3
}
NNSG2dOBJVramMode;
//---------------------------------------------------------------------
// CharCanvas ’è‹`
//---------------------------------------------------------------------
struct NNSG2dCharCanvas;
// CharCanvas ƒOƒŠƒt•`‰æŠÖ<C5A0>è`
typedef void (*NNSiG2dDrawGlyphFunc)(
const struct NNSG2dCharCanvas* pCC,
const NNSG2dFont* pFont,
int x,
int y,
int cl,
const NNSG2dGlyph* pGlyph
);
// CharCanvas ƒNƒŠƒAŠÖ<C5A0>è`
typedef void (*NNSiG2dClearFunc)(
const struct NNSG2dCharCanvas* pCC,
int cl
);
// CharCanvas •”•ªƒNƒŠƒAŠÖ<C5A0>è`
typedef void (*NNSiG2dClearAreaFunc)(
const struct NNSG2dCharCanvas* pCC,
int cl,
int x,
int y,
int w,
int h
);
typedef struct NNSiG2dCharCanvasVTable
{
NNSiG2dDrawGlyphFunc pDrawGlyph;
NNSiG2dClearFunc pClear;
NNSiG2dClearAreaFunc pClearArea;
}
NNSiG2dCharCanvasVTable;
// CharCanvas<61>\‘¢‘Ì
typedef struct NNSG2dCharCanvas
{
u8* charBase;
int areaWidth;
int areaHeight;
u8 dstBpp;
u8 reserved[3];
u32 param;
const NNSiG2dCharCanvasVTable* vtable;
}
NNSG2dCharCanvas;
//****************************************************************************
// BG ƒXƒNƒŠ<C692>[ƒ“<C692>\<5C>¬ŠÖ<C5A0>
//****************************************************************************
/*---------------------------------------------------------------------------*
Name: NNS_G2dMapScrToCharText
Description: CharCanvas —pɃXƒNƒŠ<C692>[ƒ“©çƒLƒƒƒ‰ƒNƒ^Ö1Î1ÉΉž³¹Ü·<E2809A>B
ƒeƒLƒXƒgBG—pÅ·<E2809A>B
Arguments: scnBase: CharCanvas ª—˜—pµÄ¢é BGÊÌ
ƒXƒNƒŠ<C692>[ƒ“ƒx<C692>[ƒXÖ̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C>
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³
areaLeft: BGÊÌ<E2809A><EFBFBD>ãð(0,0)‚Æ‚µ‚½Žž‚Ì CharCanvas <20><EFBFBD>ãÌ
x <20>˥W<E280A2>B
areaTop: BGÊÌ<E2809A><EFBFBD>ãð(0,0)‚Æ‚µ‚½Žž‚Ì CharCanvas <20><EFBFBD>ãÌ
y <20>˥W<E280A2>B
scnWidth: BGÊÌ•<C38C>
charNo: CharCanvas ÉŠ„è“ÄçêÄ¢éƒLƒƒƒ‰ƒNƒ^—ñ‚Ì
<20>擪̃Lƒƒƒ‰ƒNƒ^‚ւ̃|ƒCƒ“ƒ^<5E>B
cplt: ƒXƒNƒŠ<C692>[ƒ“ÉŽwè·éƒJƒ‰<C692>[ƒpƒŒƒbƒg”Ô<E2809D><EFBFBD>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dMapScrToCharText(
void* scnBase,
int areaWidth,
int areaHeight,
int areaLeft,
int areaTop,
NNSG2dTextBGWidth scnWidth,
int charNo,
int cplt
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dMapScrToCharAffine
Description: CharCanvas —pɃXƒNƒŠ<C692>[ƒ“©çƒLƒƒƒ‰ƒNƒ^Ö1Î1ÉΉž³¹Ü·<E2809A>B
ƒAƒtƒBƒ“BG—pÅ·<E2809A>B
Arguments: areaBase: CharCanvas <20><EFBFBD>ãÉ ½éƒXƒNƒŠ<C692>[ƒ“‚ւ̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C>
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³
scnWidth: BGÊÌ•<C38C>
charNo: CharCanvas ÉŠ„è“ÄçêÄ¢éƒLƒƒƒ‰ƒNƒ^—ñ‚Ì
<20>擪̃Lƒƒƒ‰ƒNƒ^‚ւ̃|ƒCƒ“ƒ^<5E>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dMapScrToCharAffine(
void* areaBase,
int areaWidth,
int areaHeight,
NNSG2dAffineBGWidth scnWidth,
int charNo
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dMapScrToChar256x16Pltt
Description: CharCanvas —pɃXƒNƒŠ<C692>[ƒ“©çƒLƒƒƒ‰ƒNƒ^Ö1Î1ÉΉž³¹Ü·<E2809A>B
ƒAƒtƒBƒ“Šg£BGÌ256x16ƒpƒŒƒbƒgƒ^ƒCƒv—pÅ·<E2809A>B
Arguments: areaBase: CharCanvas <20><EFBFBD>ãÉ ½éƒXƒNƒŠ<C692>[ƒ“‚ւ̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C>
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³
scnWidth: BGÊÌ•<C38C>
charNo: CharCanvas ÉŠ„è“ÄçêÄ¢éƒLƒƒƒ‰ƒNƒ^—ñ‚Ì
<20>擪̃Lƒƒƒ‰ƒNƒ^‚ւ̃|ƒCƒ“ƒ^<5E>B
cplt: ƒXƒNƒŠ<C692>[ƒ“ÉŽwè·éƒJƒ‰<C692>[ƒpƒŒƒbƒg”Ô<E2809D><EFBFBD>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dMapScrToChar256x16Pltt(
void* areaBase,
int areaWidth,
int areaHeight,
NNSG2d256x16PlttBGWidth scnWidth,
int charNo,
int cplt
);
//****************************************************************************
// OBJ ”z—ñŠÖ<C5A0>
//****************************************************************************
/*---------------------------------------------------------------------------*
Name: NNSi_G2dCalcRequiredOBJ
NNS_G2dCalcRequiredOBJ1D
NNS_G2dCalcRequiredOBJ2DRect
Description: NNS_G2dArrangeOBJ* Å•K—vÈOBJ<42>ðŒvŽZµÜ·<E2809A>B
CharCanvas ‚̑傫‚³‚ª“¯‚¶‚Å‚ ‚ê‚Î NNS_G2dArrangeOBJ1D ‚Æ
NNS_G2dArrangeOBJ2DRect Í“¯æ¤ÉOBJð•À×Ü·<E2809A>B
‚»‚Ì‚½‚ß NNS_G2dCalcRequireOBJ1D ‚Æ
NNS_G2dCalcRequireOBJ2DRect à“à•”“IÉÍ“¯àÌÅ·<E2809A>B
Arguments: areaWidth: OBJ<42>ðŒvŽZ·é CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: OBJ<42>ðŒvŽZ·é CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
Returns: •K—vÈOBJ<42><EFBFBD>B
*---------------------------------------------------------------------------*/
int NNSi_G2dCalcRequiredOBJ(
int areaWidth,
int areaHeight
);
NNS_G2D_INLINE int NNS_G2dCalcRequiredOBJ1D(
int areaWidth,
int areaHeight
)
{
return NNSi_G2dCalcRequiredOBJ(areaWidth, areaHeight);
}
NNS_G2D_INLINE int NNS_G2dCalcRequiredOBJ2DRect(
int areaWidth,
int areaHeight
)
{
return NNSi_G2dCalcRequiredOBJ(areaWidth, areaHeight);
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dArrangeOBJ1D
Description: NNS_G2dCharCanvasInitForOBJ1D ‚Å•`‰æµ½OBJð“K<E2809C>ØÉ
•\ަū鿤ÉOBJð<E2809A>®—ñ³¹Ü·<E2809A>B
oam ðŽn“_Æ·é NNS_G2dCalcRequireOBJ1D(areaWidth, areaHeight)
ŒÂ‚Ì OBJ ðŽg—pµÜ·<E2809A>B
Arguments: oam: Žg—p·éOAM—ñÌŽn“_Ö̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
x: CharCanvas <20><EFBFBD>ã÷Ì•\ަˆÊu<E28099>B
y: CharCanvas <20><EFBFBD>ã÷Ì•\ަˆÊu<E28099>B
color: CharCanvas ̃Jƒ‰<C692><C692>[ƒh<C692>B
charName: OBJ—ñª•\ަɗp¢éƒLƒƒƒ‰ƒNƒ^—ñ<E28094>擪̃Lƒƒƒ‰ƒNƒ^ƒl<C692>[ƒ€<C692>B
vramMode: OBJ VRAM—e—Ê
Returns:
*---------------------------------------------------------------------------*/
int NNS_G2dArrangeOBJ1D(
GXOamAttr * oam,
int areaWidth,
int areaHeight,
int x,
int y,
GXOamColorMode color,
int charName,
NNSG2dOBJVramMode vramMode
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dArrangeOBJ2DRect
Description: NNS_G2dCharCanvasInitForOBJ2DRect ‚Å•`‰æµ½OBJð“K<E2809C>ØÉ
•\ަū鿤ÉOBJð<E2809A>®—ñ³¹Ü·<E2809A>B
oam ðŽn“_Æ·é NNS_G2dCalcRequireOBJ2DRect(areaWidth, areaHeight)
ŒÂ‚Ì OBJ ðŽg—pµÜ·<E2809A>B
Arguments: oam: Žg—p·éOAM—ñÌŽn“_Ö̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
x: CharCanvas <20><EFBFBD>ã÷Ì•\ަˆÊu<E28099>B
y: CharCanvas <20><EFBFBD>ã÷Ì•\ަˆÊu<E28099>B
color: CharCanvas ̃Jƒ‰<C692><C692>[ƒh<C692>B
charName: OBJ—ñª•\ަɗp¢éƒLƒƒƒ‰ƒNƒ^—ñ<E28094>擪̃Lƒƒƒ‰ƒNƒ^ƒl<C692>[ƒ€<C692>B
Returns:
*---------------------------------------------------------------------------*/
int NNS_G2dArrangeOBJ2DRect(
GXOamAttr * oam,
int areaWidth,
int areaHeight,
int x,
int y,
GXOamColorMode color,
int charName
);
//****************************************************************************
// CharCanvas <E28098>ì
//****************************************************************************
// •`‰æ
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasDrawChar
Description: CharCanvas É•¶ŽšƒR<C692>[ƒhŽwèÅ1•¶Žš•`‰æµÜ·<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
pFont: •`‰æÉ—p¢éƒtƒHƒ“ƒgÖ̃|ƒCƒ“ƒ^<5E>B
x: •¶ŽšÌ<E2809A><EFBFBD>ãÌ<E2809A>À•W
y: •¶ŽšÌ<E2809A><EFBFBD>ãÌ<E2809A>À•W
cl: •¶Žš<C5BD>FÌ<E2809A>F”Ô<E2809D><EFBFBD>B
pGlyph: •`‰æ·é•¶ŽšÌ•¶ŽšƒR<C692>[ƒh<C692>B
Returns: •¶Žš‚Ì•`‰æ•<C3A6><E280A2>B
*---------------------------------------------------------------------------*/
int NNS_G2dCharCanvasDrawChar(
const NNSG2dCharCanvas* pCC,
const NNSG2dFont* pFont,
int x,
int y,
int cl,
u16 ccode
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasDrawGlyph
Description: CharCanvas ÉŽwèµ½ƒOƒŠƒtð•`‰æµÜ·<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
pFont: •`‰æÉ—p¢éƒtƒHƒ“ƒgÖ̃|ƒCƒ“ƒ^<5E>B
x: •¶ŽšÌ<E2809A><EFBFBD>ãÌ<E2809A>À•W<E280A2>B
y: •¶ŽšÌ<E2809A><EFBFBD>ãÌ<E2809A>À•W<E280A2>B
cl: •¶Žš<C5BD>FÌ<E2809A>F”Ô<E2809D><EFBFBD>B
pGlyph: •`‰æ·éƒOƒŠƒtÖ̃|ƒCƒ“ƒ^<5E>B<EFBFBD>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dCharCanvasDrawGlyph(
const NNSG2dCharCanvas* pCC,
const NNSG2dFont* pFont,
int x,
int y,
int cl,
const NNSG2dGlyph* pGlyph
)
{
NNS_G2D_CHARCANVAS_ASSERT( pCC );
pCC->vtable->pDrawGlyph(pCC, pFont, x, y, cl, pGlyph);
}
// <20>ÁŽ
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasClear
Description: CharCanvas É®µÄ¢éƒLƒƒƒ‰ƒNƒ^SÌð
Žwè³ê½<E2809A>FÅ“hèÂԵܷ<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
cl: “hèÂÔµ<E2809A>FÌ<E2809A>F”Ô<E2809D><EFBFBD>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dCharCanvasClear(
const NNSG2dCharCanvas* pCC,
int cl
)
{
NNS_G2D_CHARCANVAS_ASSERT( pCC );
pCC->vtable->pClear(pCC, cl);
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasClearArea
Description: CharCanvas É®µÄ¢éƒLƒƒƒ‰ƒNƒ^ÌŽwè³ê½—̈æð
Žwè³ê½<E2809A>FÅ“hèÂԵܷ<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
cl: “hèÂÔµ<E2809A>FÌ<E2809A>F”Ô<E2809D><EFBFBD>B
x: “hèÂÔ·—̈æÌ<E2809A><EFBFBD>ãÌ x <20>À•W<E280A2>B
y: “hèÂÔ·—̈æÌ<E2809A><EFBFBD>ãÌ y <20>À•W<E280A2>B
w: “hèÂÔ·—̈æÌ•<C38C><E280A2>B
h: “hèÂÔ·—̈æÌ<E2809A>³<E2809A>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dCharCanvasClearArea(
const NNSG2dCharCanvas* pCC,
int cl,
int x,
int y,
int w,
int h
)
{
NNS_G2D_CHARCANVAS_ASSERT( pCC );
pCC->vtable->pClearArea(pCC, cl, x, y, w, h);
}
//----------------------------------------------------------------------------
// <20>\z
//----------------------------------------------------------------------------
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasInitForBG
Description: CharCanvas ð<E2809A>‰Šú‰»µÜ·<E2809A>B
BG—pɃpƒ‰ƒ<E280B0><C692>[ƒ^ð¼<E28099>ÚŽwèµÄ<E2809A>‰Šú‰»µÜ·<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
charBase: CharCanvas ÉŠ„è“ÄéƒLƒƒƒ‰ƒNƒ^—ñ‚Ì
<20>擪̃Lƒƒƒ‰ƒNƒ^‚ւ̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
colorMode: •`‰æÎ<E28098>ÛƒLƒƒƒ‰ƒNƒ^̃Jƒ‰<C692><C692>[ƒh<C692>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dCharCanvasInitForBG(
NNSG2dCharCanvas* pCC,
void* charBase,
int areaWidth,
int areaHeight,
NNSG2dCharaColorMode colorMode
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasInitForOBJ1D
Description: CharCanvas ð1Dƒ}ƒbƒsƒ“ƒOOBJÅŽg—p·é½ßÉ<E2809A>‰Šú‰»µÜ·<E2809A>B
Arguments: pCC: <20>‰Šú‰»·é CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
charBase: CharCanvasÉŠ„è“ÄéƒLƒƒƒ‰ƒNƒ^ÌŽn“_Ö̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: CharCanvas̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
colorMode: •`‰æÎ<E28098>ÛƒLƒƒƒ‰ƒNƒ^̃Jƒ‰<C692><C692>[ƒh<C692>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dCharCanvasInitForOBJ1D(
NNSG2dCharCanvas* pCC,
void* charBase,
int areaWidth,
int areaHeight,
NNSG2dCharaColorMode colorMode
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasInitForOBJ2DRect
Description: CharCanvas ð<E2809A>‰Šú‰»µÜ·<E2809A>B
2ŽŸŒ³ƒ}ƒbƒsƒ“ƒOÌOBJŃLƒƒƒ‰ƒNƒ^<5E><>ƒƒŠÌéŒ`‚ð
CharCanvas Ʒ鎞ɗp¢Ü·<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^<5E>B
charBase: CharCanvas Ì<E2809A><EFBFBD>ã̃Lƒƒƒ‰ƒNƒ^‚ւ̃|ƒCƒ“ƒ^<5E>B
areaWidth: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ•<C38C><E280A2>B
areaHeight: CharCanvas ̃Lƒƒƒ‰ƒNƒ^PˆÊÅÌ<E2809A>³<E2809A>B
colorMode: •`‰æÎ<E28098>ÛƒLƒƒƒ‰ƒNƒ^̃Jƒ‰<C692><C692>[ƒh<C692>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
void NNS_G2dCharCanvasInitForOBJ2DRect(
NNSG2dCharCanvas* pCC,
void* charBase,
int areaWidth,
int areaHeight,
NNSG2dCharaColorMode colorMode
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasMakeCell1D
Description: NNS_G2dCharCanvasInitForOBJ1D() Å<E2809A>‰Šú‰»µ½ CharCanvas ‚ð
•\ަ·é½ß̃Zƒð<E2809A>ì<EFBFBD>¬µÜ·<E2809A>B
Arguments: pCell: <20><EFBFBD>¬µ½ƒZƒƒf<C692>[ƒ^ðŠi”[·éƒoƒbƒtƒ@
pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^
x: ƒZƒÌ<E28099>S<EFBFBD>À•W(CharCanvas<61>À•WŒn)
y: ƒZƒÌ<E28099>S<EFBFBD>À•W(CharCanvas<61>À•WŒn)
priority: ƒZƒÌƒvƒ‰ƒCƒIƒŠƒeƒB
mode: ƒZƒÌƒ<C692>[ƒh
mosaic: ƒZƒÌƒƒUƒCƒN
effect: ƒZƒÌƒGƒtƒFƒNƒg
color: CharCanvas ̃Jƒ‰<C692><C692>[ƒh
charName: <20>擪ƒLƒƒƒ‰ƒNƒ^ƒl<C692>[ƒ€
cParam: ƒJƒ‰<C692>[ƒpƒŒƒbƒg”Ô<E2809D>
vramMode: OBJ VRAM—e—ÊÌ<E2809A>ÝèðŽwèµÜ·<E2809A>B
makeBR: «ŠEéŒ`<60>î•ñð•t‰Á·é©Ç¤©ðŽwèµÜ·<E2809A>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
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
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasMakeCell2DRect
Description: NNS_G2dCharCanvasInitForOBJ2DRect() Å<E2809A>‰Šú‰»µ½ CharCanvas ‚ð
•\ަ·é½ß̃Zƒð<E2809A>ì<EFBFBD>¬µÜ·<E2809A>B
Arguments: pCell: <20><EFBFBD>¬µ½ƒZƒƒf<C692>[ƒ^ðŠi”[·éƒoƒbƒtƒ@
pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^
x: ƒZƒÌ<E28099>S<EFBFBD>À•W(CharCanvas<61>À•WŒn)
y: ƒZƒÌ<E28099>S<EFBFBD>À•W(CharCanvas<61>À•WŒn)
priority: ƒZƒÌƒvƒ‰ƒCƒIƒŠƒeƒB
mode: ƒZƒÌƒ<C692>[ƒh
mosaic: ƒZƒÌƒƒUƒCƒN
effect: ƒZƒÌƒGƒtƒFƒNƒg
color: CharCanvas ̃Jƒ‰<C692><C692>[ƒh
charName: <20>擪ƒLƒƒƒ‰ƒNƒ^ƒl<C692>[ƒ€
cParam: ƒJƒ‰<C692>[ƒpƒŒƒbƒg”Ô<E2809D>
makeBR: «ŠEéŒ`<60>î•ñð•t‰Á·é©Ç¤©ðŽwèµÜ·<E2809A>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
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
);
/*---------------------------------------------------------------------------*
Name: NNS_G2dCharCanvasCalcCellDataSize*
Description: NNS_G2dCharCanvasMakeCell*() Ìæˆêˆø<CB86>É“n·×«
ƒoƒbƒtƒ@̃TƒCƒYðŒvŽZµÜ·<E2809A>B
Arguments: pCC: CharCanvas ‚ւ̃|ƒCƒ“ƒ^
makeBR: «ŠEéŒ`<60>î•ñð•t‰Á·é©Ç¤©ðŽwèµÜ·<E2809A>B
Returns: ȵ<E2809A>B
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE size_t NNSi_G2dCharCanvasCalcCellDataSize(
const NNSG2dCharCanvas* pCC,
BOOL makeBR
)
{
const int numObj = NNSi_G2dCalcRequiredOBJ(pCC->areaWidth, pCC->areaHeight);
const size_t oamSize = sizeof(NNSG2dCellOAMAttrData) * numObj;
const size_t brSize = makeBR ? sizeof(NNSG2dCellBoundingRectS16): 0;
return sizeof(NNSG2dCellData) + brSize + oamSize;
}
NNS_G2D_INLINE size_t NNS_G2dCharCanvasCalcCellDataSize1D(
const NNSG2dCharCanvas* pCC,
BOOL makeBR
)
{
return NNSi_G2dCharCanvasCalcCellDataSize(pCC, makeBR);
}
NNS_G2D_INLINE size_t NNS_G2dCharCanvasCalcCellDataSize2DRect(
const NNSG2dCharCanvas* pCC,
BOOL makeBR
)
{
return NNSi_G2dCharCanvasCalcCellDataSize(pCC, makeBR);
}
//---------------------------------------------------------------------
#ifdef __cplusplus
}/* extern "C" */
#endif
#endif // G2D_CHARCANVAS_H_