NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
GXTexture.h
1#ifndef RVL_SDK_GX_TEXTURE_H
2#define RVL_SDK_GX_TEXTURE_H
3#include <types.h>
4
5#include <revolution/GX/GXInternal.h>
6#include <revolution/GX/GXTypes.h>
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11GX_PUBLIC_STRUCT_DECL(GXTexObj, 32);
12GX_PUBLIC_STRUCT_DECL(GXTlutObj, 0x0C);
13
14GX_PUBLIC_STRUCT_DECL(GXTexRegion, 16);
15GX_PUBLIC_STRUCT_DECL(GXTlutRegion, 16);
16
17typedef GXTexRegion* (*GXTexRegionCallback)(const GXTexObj* pObj,
18 GXTexMapID map);
19
20typedef GXTlutRegion* (*GXTlutRegionCallback)(u32 id);
21
22void __GXSetSUTexRegs(void);
23
24void GXInitTexObj(GXTexObj* obj, void* image, u16 w, u16 h, GXTexFmt fmt,
25 GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXBool mipmap);
26void GXInitTexObjCI(GXTexObj*, void*, u16, u16, GXTexFmt, GXTexWrapMode,
27 GXTexWrapMode, GXBool, u32);
28void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filt, GXTexFilter mag_filt,
29 f32 min_lod, f32 max_lod, f32 lod_bias, GXBool bias_clamp,
30 GXBool do_edge_lod, GXAnisotropy max_aniso);
31
32void GXGetTexObjLODAll(GXTexObj* obj, GXTexFilter* min_filt,
33 GXTexFilter* mag_filt, f32* minLod, f32* maxLod,
34 f32* lodBias, GXBool* biasClampEnable,
35 GXBool* edgeLodEnable, GXAnisotropy* anisotropy);
36
37GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj);
38GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj);
39
40u16 GXGetTexObjWidth(const GXTexObj* obj);
41u16 GXGetTexObjHeight(const GXTexObj* obj);
42GXTexFmt GXGetTexObjFmt(const GXTexObj* obj);
43GXBool GXGetTexObjMipMap(const GXTexObj* obj);
44
45void GXLoadTexObj(const GXTexObj*, GXTexMapID);
46
47void GXInitTexObjTlut(GXTexObj*, u32);
48u32 GXGetTexObjTlut(GXTexObj*);
49
50void GXInitTlutObj(GXTlutObj*, void*, GXTlutFmt, u16);
51
52void GXLoadTlut(GXTlutObj*, u32);
53
54void GXInvalidateTexAll(void);
55
56void GXInitTexCacheRegion(GXTexRegion* pRegion, GXBool r4, u32 addrTMemEven,
57 u32 sizeTMemEven, u32 addrTMemOdd, u32 sizeTMemOdd);
58
59void GXInitTlutRegion(GXTlutRegion* pRegion, u32 addrTMem, u32 sizeTMem);
60
61GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback);
62GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback);
63
64u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap,
65 u8 max_lod);
66
67// TODO
68UNKTYPE GXSetTexCoordScaleManually(UNKWORD, UNKWORD, UNKWORD, UNKWORD);
69UNKTYPE GXSetTexCoordCylWrap(UNKWORD, UNKWORD, UNKWORD);
70
71#ifdef __cplusplus
72}
73#endif
74#endif