NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
GXInternal.h
1#ifndef RVL_SDK_GX_INTERNAL_H
2#define RVL_SDK_GX_INTERNAL_H
3#include <types.h>
4
5#include <revolution/GX/GXTypes.h>
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/**
11 * GX internal structures.
12 *
13 * Wouldn't be necessary if the public ones didn't include padding; but they do,
14 * so there has to be different structure definitions.
15 *
16 * These internal structures are implemented like the RFL ones since we don't
17 * have DWARF info for most GX structures.
18 */
19
20/**
21 * Declare a public structure from the corresponding internal structure.
22 * (Implementation size is included to require that such a structure already
23 * exists.)
24 */
25#define GX_PUBLIC_STRUCT_DECL(name, size) \
26 typedef struct _##name { \
27 u32 dummy[((size) - sizeof(name##Impl) + sizeof(name##Impl)) / \
28 sizeof(u32)]; \
29 } name;
30
31typedef struct _GXFifoObjImpl {
32 void* base; // at 0x0
33 void* end; // at 0x4
34 u32 size; // at 0x8
35 void* hiWatermark; // at 0xC
36 void* loWatermark; // at 0x10
37 void* readPtr; // at 0x14
38 void* writePtr; // at 0x18
39 u32 count; // at 0x1C
40 u8 wrap; // at 0x20
41} GXFifoObjImpl;
42
43typedef struct _GXLightObjImpl {
44 char UNK_0x0[0xC];
45 GXColor color; // at 0xC
46 f32 aa; // at 0x10
47 f32 ab; // at 0x14
48 f32 ac; // at 0x18
49 f32 ka; // at 0x1C
50 f32 kb; // at 0x20
51 f32 kc; // at 0x24
52 f32 posX; // at 0x28
53 f32 posY; // at 0x2C
54 f32 posZ; // at 0x30
55 f32 dirX; // at 0x34
56 f32 dirY; // at 0x38
57 f32 dirZ; // at 0x3C
58} GXLightObjImpl;
59
60typedef struct _GXTexObjImpl {
61 u8 todo;
62} GXTexObjImpl;
63
64typedef struct _GXTlutObjImpl {
65 u8 todo;
66} GXTlutObjImpl;
67
68typedef struct _GXTexRegionImpl {
69 u8 todo;
70} GXTexRegionImpl;
71
72typedef struct _GXTlutRegionImpl {
73 u8 todo;
74} GXTlutRegionImpl;
75
76#ifdef __cplusplus
77}
78#endif
79#endif