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);