Files
ss/include/lib/rvl/TPL/TPL.h
T
lepelog 42880ec9ae init
2023-08-09 16:59:04 +02:00

58 lines
1.4 KiB
C

#ifndef RVL_SDK_TPL_H
#define RVL_SDK_TPL_H
#include <lib/rvl/GX.h>
#include <lib/rvl/types.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* Documentation from:
* https://github.com/soopercool101/BrawlCrate/blob/master/BrawlLib/SSBB/Types/TPL.cs
* https://wiki.tockdom.com/wiki/TPL_(File_Format)
* DWARF debugging info
*/
typedef struct TPLHeader {
u16 height; // at 0x0
u16 width; // at 0x2
u32 format; // at 0x4
char* data; // at 0x8
GXTexWrapMode wrapS; // at 0xC
GXTexWrapMode wrapT; // at 0x10
GXTexFilter minFilt; // at 0x14
GXTexFilter magFilt; // at 0x18
f32 lodBias; // at 0x1C
u8 edgeLodEnable; // at 0x20
u8 minLod; // at 0x21
u8 maxLod; // at 0x22
u8 unpacked; // at 0x23
} TPLHeader;
typedef struct TPLClutHeader {
u16 numEntries; // at 0x0
u8 unpacked; // at 0x1
u8 padding; // at 0x2
GXTlutFmt format; // at 0x4
char* data; // at 0x8
} TPLClutHeader;
typedef struct TPLDescriptor {
TPLHeader* texHeader; // at 0x0
TPLClutHeader* clutHeader; // at 0x4
} TPLDescriptor;
typedef struct TPLPalette {
u32 version; // at 0x0
u32 numImages; // at 0x4
TPLDescriptor* descriptors; // at 0x8
} TPLPalette;
void TPLBind(TPLPalette* pal);
TPLDescriptor* TPLGet(TPLPalette* pal, u32 id);
#ifdef __cplusplus
}
#endif
#endif