mirror of
https://github.com/rvtr/TwlIPL_commit-99.git
synced 2025-10-31 06:21:11 -04:00
708 lines
23 KiB
C
Executable File
708 lines
23 KiB
C
Executable File
/*---------------------------------------------------------------------------*
|
||
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_
|
||
|