summaryrefslogtreecommitdiff
path: root/arm9/lib/include
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/include')
-rw-r--r--arm9/lib/include/NNS_g2d.h108
1 files changed, 106 insertions, 2 deletions
diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h
index e7852744..aa30881e 100644
--- a/arm9/lib/include/NNS_g2d.h
+++ b/arm9/lib/include/NNS_g2d.h
@@ -32,8 +32,112 @@ typedef struct NNSG2dScreenData
}
NNSG2dScreenData;
+typedef struct NNSG2dPaletteData
+{
+
+ GXTexFmt fmt;
+ BOOL bExtendedPlt;
+
+ u32 szByte;
+ void* pRawData; // offset addr of the content.
+
+}
+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;
+
+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;
+
+typedef struct NNSG2dVRamLocation
+{
+ u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ];
+}
+NNSG2dVRamLocation;
+
+typedef struct NNSG2dImageProxy
+{
+ NNSG2dVRamLocation vramLocation;
+ NNSG2dImageAttr attr;
+}
+NNSG2dImageProxy;
+
+typedef struct NNSG2dPaletteCompressInfo
+{
+ u16 numPalette;
+ u16 pad16;
+ void* pPlttIdxTbl; // offset addr.
+
+}
+ NNSG2dPaletteCompressInfo;
+
+void NNS_G2dLoadImage1DMapping
+(
+ 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
+);
+
+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;
+
+void NNS_G2dLoadPalette
+(
+ 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
+);
-extern BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData );
-extern BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData );
+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 );
#endif //NNSYS_NNS_G2D_H