summaryrefslogtreecommitdiff
path: root/arm9/lib/include/NNS_g2d.h
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-05-31 13:58:13 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-05-31 13:58:13 -0400
commitcc9652a5f1340c9d0c127565adc291b3840649cd (patch)
tree08bf4e290754c8eafdea80f4eaa7eade34211e70 /arm9/lib/include/NNS_g2d.h
parentd612c41066844fc82edaaea6bc946adbcc71a3d9 (diff)
parent1c0c1476b404ba1c457875f8f7a51d2355067413 (diff)
Merge branch 'pikalax_work' into doc_heap_etc
Diffstat (limited to 'arm9/lib/include/NNS_g2d.h')
-rw-r--r--arm9/lib/include/NNS_g2d.h284
1 files changed, 116 insertions, 168 deletions
diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h
index 722f4767..483f254a 100644
--- a/arm9/lib/include/NNS_g2d.h
+++ b/arm9/lib/include/NNS_g2d.h
@@ -1,56 +1,44 @@
#ifndef NNSYS_NNS_G2D_H
#define NNSYS_NNS_G2D_H
+
#include "gx.h"
typedef struct NNSG2dCharacterData
{
-
- u16 H;
- u16 W;
-
- GXTexFmt pixelFmt; // GXTexFmt
-
- GXOBJVRamModeChar mapingType; // GXOBJVRamModeChar
- u32 characterFmt;// 31 ..... 10 ...........9 8 ................ 0
- // Reserved VramTransfer NNSG2dCharacterFmt
- u32 szByte;
- void* pRawData; // offset addr of the content.
-
-}
-NNSG2dCharacterData;
+ u16 H;
+ u16 W;
+ GXTexFmt pixelFmt;
+ GXOBJVRamModeChar mapingType;
+ u32 characterFmt;
+ u32 szByte;
+ void * pRawData;
+} NNSG2dCharacterData;
typedef struct NNSG2dScreenData
{
-
- u16 screenWidth; // screen width (pixels) of rawData
- u16 screenHeight; // screen height (pixels) of rawData
- u16 colorMode; // character data color mode
- u16 screenFormat; // screen data format
- u32 szByte; // size of rawData
- u32 rawData[1]; // screen data (variable length)
-
-}
-NNSG2dScreenData;
+ u16 screenWidth;
+ u16 screenHeight;
+ u16 colorMode;
+ u16 screenFormat;
+ u32 szByte;
+ u32 rawData[1];
+} NNSG2dScreenData;
typedef struct NNSG2dPaletteData
{
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ u32 szByte;
+ void * pRawData;
- GXTexFmt fmt;
- BOOL bExtendedPlt;
-
- u32 szByte;
- void* pRawData; // offset addr of the content.
-
-}
-NNSG2dPaletteData;
+} NNSG2dPaletteData;
typedef enum NNS_G2D_VRAM_TYPE
{
NNS_G2D_VRAM_TYPE_3DMAIN = 0,
NNS_G2D_VRAM_TYPE_2DMAIN = 1,
- NNS_G2D_VRAM_TYPE_2DSUB = 2,
- NNS_G2D_VRAM_TYPE_MAX = 3
-
+ NNS_G2D_VRAM_TYPE_2DSUB = 2,
+ NNS_G2D_VRAM_TYPE_MAX = 3
} NNS_G2D_VRAM_TYPE;
typedef enum NNSG2dCharacterDataMapingType
@@ -66,199 +54,159 @@ typedef enum NNSG2dCharacterDataMapingType
typedef struct NNSG2dImageAttr
{
- GXTexSizeS sizeS; // Image size (Invalid data is set during 1D mapping.)
- GXTexSizeT sizeT; // Image size (Invalid data is set during 1D mapping.)
-
- GXTexFmt fmt; // Image format
- BOOL bExtendedPlt; // Whether or not to use the extended palette
-
- GXTexPlttColor0 plttUse; // How to use palette number 0
- GXOBJVRamModeChar mappingType; // Mapping mode
-}
-NNSG2dImageAttr;
+ GXTexSizeS sizeS;
+ GXTexSizeT sizeT;
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ GXTexPlttColor0 plttUse;
+ GXOBJVRamModeChar mappingType;
+} NNSG2dImageAttr;
typedef struct NNSG2dVRamLocation
{
- u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
-}
-NNSG2dVRamLocation;
+ u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
+} NNSG2dVRamLocation;
typedef struct NNSG2dImageProxy
{
- NNSG2dVRamLocation vramLocation;
- NNSG2dImageAttr attr;
-}
-NNSG2dImageProxy;
+ NNSG2dVRamLocation vramLocation;
+ NNSG2dImageAttr attr;
+} NNSG2dImageProxy;
typedef struct NNSG2dPaletteCompressInfo
{
- u16 numPalette;
- u16 pad16;
- void* pPlttIdxTbl; // offset addr.
+ u16 numPalette;
+ u16 pad16;
+ void * pPlttIdxTbl;
-}
-NNSG2dPaletteCompressInfo;
+} NNSG2dPaletteCompressInfo;
void NNS_G2dLoadImage1DMapping
(
- const NNSG2dCharacterData* pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy* pImgProxy
+ const NNSG2dCharacterData * pSrcData,
+ u32 baseAddr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImageProxy * pImgProxy
);
void NNS_G2dLoadImage2DMapping
(
- const NNSG2dCharacterData* pSrcData,
- u32 baseAddr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImageProxy* pImgProxy
+ const NNSG2dCharacterData * pSrcData,
+ u32 baseAddr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImageProxy * pImgProxy
);
typedef struct NNSG2dImagePaletteProxy
{
-
- GXTexFmt fmt; // palette format
- // (Obtainable values are limited to GX_TEXFMT_PLTT16 and GX_TEXFMT_PLTT256)
-
- BOOL bExtendedPlt; // Use expanded palette?
-
- NNSG2dVRamLocation vramLocation;
-}
-NNSG2dImagePaletteProxy;
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+ NNSG2dVRamLocation vramLocation;
+} NNSG2dImagePaletteProxy;
void NNS_G2dLoadPalette
(
- const NNSG2dPaletteData* pSrcData,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy* pPltProxy
+ const NNSG2dPaletteData * pSrcData,
+ u32 addr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImagePaletteProxy * pPltProxy
);
void NNS_G2dLoadPaletteEx
(
- const NNSG2dPaletteData* pSrcData,
- const NNSG2dPaletteCompressInfo* pCmpInfo,
- u32 addr,
- NNS_G2D_VRAM_TYPE type,
- NNSG2dImagePaletteProxy* pPltProxy
+ const NNSG2dPaletteData * pSrcData,
+ const NNSG2dPaletteCompressInfo * pCmpInfo,
+ u32 addr,
+ NNS_G2D_VRAM_TYPE type,
+ NNSG2dImagePaletteProxy * pPltProxy
);
typedef struct NNSG2dCellVramTransferData
{
- u32 srcDataOffset;
- u32 szByte;
-
-}
-NNSG2dCellVramTransferData;
+ u32 srcDataOffset;
+ u32 szByte;
+} NNSG2dCellVramTransferData;
typedef struct NNSG2dVramTransferData
{
- u32 szByteMax; // Maximum byte count during all VRAM transfers
- NNSG2dCellVramTransferData* pCellTransferDataArray;// This is the length of the numCells amount of the maintained NNSG2dCellDataBank.
- //
-
-}
-NNSG2dVramTransferData;
+ u32 szByteMax;
+ NNSG2dCellVramTransferData * pCellTransferDataArray;
+} NNSG2dVramTransferData;
typedef struct NNSG2dCellOAMAttrData
{
- u16 attr0;
- u16 attr1;
- u16 attr2;
-
-}
-NNSG2dCellOAMAttrData;
+ u16 attr0;
+ u16 attr1;
+ u16 attr2;
+} NNSG2dCellOAMAttrData;
typedef struct NNSG2dCellData
{
- u16 numOAMAttrs; // Number of OAM attributes
- u16 cellAttr; // Information related to cell type
- // Information related to flips (upper 8 bits)
- // Information related to bounding information
- //
- // Information related to rendering optimization (lower 8 bits)
- // (6bit => Radius of bounding sphere >> 2 )
-
-
- NNSG2dCellOAMAttrData* pOamAttrArray; // Pointer to the NNSG2dCellOAMAttrData array
+ u16 numOAMAttrs;
+ u16 cellAttr;
+ NNSG2dCellOAMAttrData * pOamAttrArray;
-}
-NNSG2dCellData;
+} NNSG2dCellData;
typedef struct NNSG2dCellDataBank
{
- u16 numCells; // Total number of cells
- u16 cellBankAttr; // Attribute
- NNSG2dCellData* pCellDataArrayHead; // offset address
- NNSG2dCharacterDataMapingType mappingMode; // Mapping mode of the referenced character
+ u16 numCells;
+ u16 cellBankAttr;
+ NNSG2dCellData * pCellDataArrayHead;
+ NNSG2dCharacterDataMapingType mappingMode;
+ NNSG2dVramTransferData * pVramTransferData;
+ void * pStringBank;
+ void * pExtendedData;
- NNSG2dVramTransferData* pVramTransferData; // Information related to Vram transfer animation
-
- void* pStringBank; // Character string bank
- void* pExtendedData; // offset addr (if it exists)
-
-
-}
-NNSG2dCellDataBank;
+} NNSG2dCellDataBank;
typedef enum NNSG2dAnimationPlayMode
{
- NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, // Disabled
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD, // one-time playback (forward)
- NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, // repeat playback (forward loop)
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE, // reverse playback (reverse (forward + backward))
- NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, // reverse playback repeat (reverse (forward + backward) loop)
+ NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0,
+ NNS_G2D_ANIMATIONPLAYMODE_FORWARD,
+ NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP,
+ NNS_G2D_ANIMATIONPLAYMODE_REVERSE,
+ NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP,
NNS_G2D_ANIMATIONPLAYMODE_MAX
-}
-NNSG2dAnimationPlayMode;
+} NNSG2dAnimationPlayMode;
typedef struct NNSG2dAnimFrameData
{
- void* pContent; // pointer to animation result
- u16 frames; // animation frame continuation time (units: video frames)
- u16 pad16; // padding
-
-}
-NNSG2dAnimFrameData;
+ void * pContent;
+ u16 frames;
+ u16 pad16;
+} NNSG2dAnimFrameData;
typedef struct NNSG2dAnimSequenceData
{
- u16 numFrames; // number of animation frames forming the sequence
- u16 loopStartFrameIdx; // loop start animation frame number
-
- u32 animType; // animation type (upper 16 bits)
- // animation elements (lower 16 bits)
- // (What's referenced by NNSG2dAnimFrameData.pContent is changed)
-
- NNSG2dAnimationPlayMode playMode; // animation sequence playback method
- NNSG2dAnimFrameData* pAnmFrameArray; // offset from the head of pFrameArray.
+ u16 numFrames;
+ u16 loopStartFrameIdx;
+ u32 animType;
+ NNSG2dAnimationPlayMode playMode;
+ NNSG2dAnimFrameData * pAnmFrameArray;
-}
-NNSG2dAnimSequenceData;
+} NNSG2dAnimSequenceData;
typedef struct NNSG2dAnimBankData
{
- u16 numSequences; // number of animation sequences
- u16 numTotalFrames; // total number of animation frames
- NNSG2dAnimSequenceData* pSequenceArrayHead; // pointer to animation sequence array
- NNSG2dAnimFrameData* pFrameArrayHead; // pointer to animation frame array
- void* pAnimContents; // pointer to animation result array
- void* pStringBank; // pointer to string bank (set during execution)
- void* pExtendedData; // pointer to library expansion area (not used)
-
-}
-NNSG2dAnimBankData;
-
-
-BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
-BOOL NNS_G2dGetUnpackedCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
-BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData );
-BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData );
-BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData );
-BOOL NNS_G2dGetUnpackedPaletteCompressInfo( void* pNclrFile, NNSG2dPaletteCompressInfo** ppPltCmpInfo );
-BOOL NNS_G2dGetUnpackedCellBank( void* pNcerFile, NNSG2dCellDataBank** ppCellBank );
-BOOL NNS_G2dGetUnpackedAnimBank( void* pNanrFile, NNSG2dAnimBankData** ppAnimBank );
+ u16 numSequences;
+ u16 numTotalFrames;
+ NNSG2dAnimSequenceData * pSequenceArrayHead;
+ NNSG2dAnimFrameData * pFrameArrayHead;
+ void * pAnimContents;
+ void * pStringBank;
+ void * pExtendedData;
+
+} NNSG2dAnimBankData;
+
+BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
+BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData);
+BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData);
+BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
+BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData);
+BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompressInfo ** ppPltCmpInfo);
+BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank);
+BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank);
#endif //NNSYS_NNS_G2D_H