1#ifndef RVL_SDK_GX_TEXTURE_H
2#define RVL_SDK_GX_TEXTURE_H
5#include <revolution/GX/GXInternal.h>
6#include <revolution/GX/GXTypes.h>
11GX_PUBLIC_STRUCT_DECL(GXTexObj, 32);
12GX_PUBLIC_STRUCT_DECL(GXTlutObj, 0x0C);
14GX_PUBLIC_STRUCT_DECL(GXTexRegion, 16);
15GX_PUBLIC_STRUCT_DECL(GXTlutRegion, 16);
17typedef GXTexRegion* (*GXTexRegionCallback)(
const GXTexObj* pObj,
20typedef GXTlutRegion* (*GXTlutRegionCallback)(u32 id);
22void __GXSetSUTexRegs(
void);
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);
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);
37GXTexWrapMode GXGetTexObjWrapS(GXTexObj* obj);
38GXTexWrapMode GXGetTexObjWrapT(GXTexObj* obj);
40u16 GXGetTexObjWidth(
const GXTexObj* obj);
41u16 GXGetTexObjHeight(
const GXTexObj* obj);
42GXTexFmt GXGetTexObjFmt(
const GXTexObj* obj);
43GXBool GXGetTexObjMipMap(
const GXTexObj* obj);
45void GXLoadTexObj(
const GXTexObj*, GXTexMapID);
47void GXInitTexObjTlut(GXTexObj*, u32);
48u32 GXGetTexObjTlut(GXTexObj*);
50void GXInitTlutObj(GXTlutObj*,
void*, GXTlutFmt, u16);
52void GXLoadTlut(GXTlutObj*, u32);
54void GXInvalidateTexAll(
void);
56void GXInitTexCacheRegion(GXTexRegion* pRegion, GXBool r4, u32 addrTMemEven,
57 u32 sizeTMemEven, u32 addrTMemOdd, u32 sizeTMemOdd);
59void GXInitTlutRegion(GXTlutRegion* pRegion, u32 addrTMem, u32 sizeTMem);
61GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback);
62GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback callback);
64u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap,
68UNKTYPE GXSetTexCoordScaleManually(UNKWORD, UNKWORD, UNKWORD, UNKWORD);
69UNKTYPE GXSetTexCoordCylWrap(UNKWORD, UNKWORD, UNKWORD);