Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
GXTexture.c File Reference

Classes

struct  __GXTexObjInt_struct
 
struct  __GXTexRegionInt_struct
 
struct  __GXTlutObjInt_struct
 
struct  __GXTlutRegionInt_struct
 

Typedefs

typedef struct __GXTexObjInt_struct __GXTexObjInt
 
typedef struct __GXTexRegionInt_struct __GXTexRegionInt
 
typedef struct __GXTlutObjInt_struct __GXTlutObjInt
 
typedef struct __GXTlutRegionInt_struct __GXTlutRegionInt
 

Functions

static void __GXGetTexTileShift (GXTexFmt fmt, u32 *rowTileS, u32 *colTileS)
 
u32 GXGetTexBufferSize (u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod)
 
void __GetImageTileCount (GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles)
 
void GXInitTexObj (GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXBool mipmap)
 
void GXInitTexObjCI (GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXCITexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, GXBool mipmap, u32 tlut_name)
 
void GXInitTexObjLOD (GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt, f32 min_lod, f32 max_lod, f32 lod_bias, u8 bias_clamp, u8 do_edge_lod, GXAnisotropy max_aniso)
 
void GXInitTexObjData (GXTexObj *obj, void *image_ptr)
 
void GXInitTexObjWrapMode (GXTexObj *obj, GXTexWrapMode sm, GXTexWrapMode tm)
 
void GXInitTexObjTlut (GXTexObj *obj, u32 tlut_name)
 
void GXInitTexObjFilter (GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt)
 
void GXInitTexObjMaxLOD (GXTexObj *obj, f32 max_lod)
 
void GXInitTexObjMinLOD (GXTexObj *obj, f32 min_lod)
 
void GXInitTexObjLODBias (GXTexObj *obj, f32 lod_bias)
 
void GXInitTexObjBiasClamp (GXTexObj *obj, u8 bias_clamp)
 
void GXInitTexObjEdgeLOD (GXTexObj *obj, u8 do_edge_lod)
 
void GXInitTexObjMaxAniso (GXTexObj *obj, GXAnisotropy max_aniso)
 
void GXInitTexObjUserData (GXTexObj *obj, void *user_data)
 
void * GXGetTexObjUserData (const GXTexObj *obj)
 
void GXGetTexObjAll (const GXTexObj *obj, void **image_ptr, u16 *width, u16 *height, GXTexFmt *format, GXTexWrapMode *wrap_s, GXTexWrapMode *wrap_t, u8 *mipmap)
 
void * GXGetTexObjData (const GXTexObj *to)
 
u16 GXGetTexObjWidth (const GXTexObj *to)
 
u16 GXGetTexObjHeight (const GXTexObj *to)
 
GXTexFmt GXGetTexObjFmt (const GXTexObj *to)
 
GXTexWrapMode GXGetTexObjWrapS (const GXTexObj *to)
 
GXTexWrapMode GXGetTexObjWrapT (const GXTexObj *to)
 
GXBool GXGetTexObjMipMap (const GXTexObj *to)
 
void GXGetTexObjLODAll (const GXTexObj *tex_obj, GXTexFilter *min_filt, GXTexFilter *mag_filt, f32 *min_lod, f32 *max_lod, f32 *lod_bias, u8 *bias_clamp, u8 *do_edge_lod, GXAnisotropy *max_aniso)
 
GXTexFilter GXGetTexObjMinFilt (const GXTexObj *tex_obj)
 
GXTexFilter GXGetTexObjMagFilt (const GXTexObj *tex_obj)
 
f32 GXGetTexObjMinLOD (const GXTexObj *tex_obj)
 
f32 GXGetTexObjMaxLOD (const GXTexObj *tex_obj)
 
f32 GXGetTexObjLODBias (const GXTexObj *tex_obj)
 
GXBool GXGetTexObjBiasClamp (const GXTexObj *tex_obj)
 
GXBool GXGetTexObjEdgeLOD (const GXTexObj *tex_obj)
 
GXAnisotropy GXGetTexObjMaxAniso (const GXTexObj *tex_obj)
 
u32 GXGetTexObjTlut (const GXTexObj *tex_obj)
 
void GXLoadTexObjPreLoaded (GXTexObj *obj, GXTexRegion *region, GXTexMapID id)
 
void GXLoadTexObj (GXTexObj *obj, GXTexMapID id)
 
void GXInitTlutObj (GXTlutObj *tlut_obj, void *lut, GXTlutFmt fmt, u16 n_entries)
 
void GXGetTlutObjAll (const GXTlutObj *tlut_obj, void **data, GXTlutFmt *format, u16 *numEntries)
 
void * GXGetTlutObjData (const GXTlutObj *tlut_obj)
 
GXTlutFmt GXGetTlutObjFmt (const GXTlutObj *tlut_obj)
 
u16 GXGetTlutObjNumEntries (const GXTlutObj *tlut_obj)
 
void GXLoadTlut (GXTlutObj *tlut_obj, u32 tlut_name)
 
void GXInitTexCacheRegion (GXTexRegion *region, u8 is_32b_mipmap, u32 tmem_even, GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd)
 
void GXInitTexPreLoadRegion (GXTexRegion *region, u32 tmem_even, u32 size_even, u32 tmem_odd, u32 size_odd)
 
void GXGetTexRegionAll (const GXTexRegion *region, u8 *is_cached, u8 *is_32b_mipmap, u32 *tmem_even, u32 *size_even, u32 *tmem_odd, u32 *size_odd)
 
void GXInitTlutRegion (GXTlutRegion *region, u32 tmem_addr, GXTlutSize tlut_size)
 
void GXGetTlutRegionAll (const GXTlutRegion *region, u32 *tmem_addr, GXTlutSize *tlut_size)
 
void GXInvalidateTexRegion (GXTexRegion *region)
 
void GXInvalidateTexAll (void)
 
GXTexRegionCallback GXSetTexRegionCallback (GXTexRegionCallback f)
 
GXTlutRegionCallback GXSetTlutRegionCallback (GXTlutRegionCallback f)
 
void GXPreLoadEntireTexture (GXTexObj *tex_obj, GXTexRegion *region)
 
void GXSetTexCoordScaleManually (GXTexCoordID coord, GXBool enable, u16 ss, u16 ts)
 
void GXSetTexCoordCylWrap (GXTexCoordID coord, u8 s_enable, u8 t_enable)
 
void GXSetTexCoordBias (GXTexCoordID coord, u8 s_enable, u8 t_enable)
 
static void __SetSURegs (u32 tmap, u32 tcoord)
 
void __GXSetSUTexRegs (void)
 
void __GXGetSUTexSize (GXTexCoordID coord, u16 *width, u16 *height)
 
void __GXSetTmemConfig (u32 config)
 

Variables

u8 GXTexMode0Ids [8] = { 0x80, 0x81, 0x82, 0x83, 0xA0, 0xA1, 0xA2, 0xA3 }
 
u8 GXTexMode1Ids [8] = { 0x84, 0x85, 0x86, 0x87, 0xA4, 0xA5, 0xA6, 0xA7 }
 
u8 GXTexImage0Ids [8] = { 0x88, 0x89, 0x8A, 0x8B, 0xA8, 0xA9, 0xAA, 0xAB }
 
u8 GXTexImage1Ids [8] = { 0x8C, 0x8D, 0x8E, 0x8F, 0xAC, 0xAD, 0xAE, 0xAF }
 
u8 GXTexImage2Ids [8] = { 0x90, 0x91, 0x92, 0x93, 0xB0, 0xB1, 0xB2, 0xB3 }
 
u8 GXTexImage3Ids [8] = { 0x94, 0x95, 0x96, 0x97, 0xB4, 0xB5, 0xB6, 0xB7 }
 
u8 GXTexTlutIds [8] = { 0x98, 0x99, 0x9A, 0x9B, 0xB8, 0xB9, 0xBA, 0xBB }
 
static u8 GX2HWFiltConv [6] = { 0x00, 0x04, 0x01, 0x05, 0x02, 0x06 }
 
static u8 HW2GXFiltConv [8] = { 0x00, 0x02, 0x04, 0x00, 0x01, 0x03, 0x05, 0x00 }
 

Typedef Documentation

◆ __GXTexObjInt

◆ __GXTexRegionInt

◆ __GXTlutObjInt

◆ __GXTlutRegionInt

Function Documentation

◆ __GetImageTileCount()

void __GetImageTileCount ( GXTexFmt fmt,
u16 wd,
u16 ht,
u32 * rowTiles,
u32 * colTiles,
u32 * cmpTiles )

◆ __GXGetSUTexSize()

void __GXGetSUTexSize ( GXTexCoordID coord,
u16 * width,
u16 * height )

◆ __GXGetTexTileShift()

static void __GXGetTexTileShift ( GXTexFmt fmt,
u32 * rowTileS,
u32 * colTileS )
static

◆ __GXSetSUTexRegs()

void __GXSetSUTexRegs ( void )

◆ __GXSetTmemConfig()

void __GXSetTmemConfig ( u32 config)

◆ __SetSURegs()

static void __SetSURegs ( u32 tmap,
u32 tcoord )
static

◆ GXGetTexBufferSize()

u32 GXGetTexBufferSize ( u16 width,
u16 height,
u32 format,
GXBool mipmap,
u8 max_lod )

◆ GXGetTexObjAll()

void GXGetTexObjAll ( const GXTexObj * obj,
void ** image_ptr,
u16 * width,
u16 * height,
GXTexFmt * format,
GXTexWrapMode * wrap_s,
GXTexWrapMode * wrap_t,
u8 * mipmap )

◆ GXGetTexObjBiasClamp()

GXBool GXGetTexObjBiasClamp ( const GXTexObj * tex_obj)

◆ GXGetTexObjData()

void * GXGetTexObjData ( const GXTexObj * to)

◆ GXGetTexObjEdgeLOD()

GXBool GXGetTexObjEdgeLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjFmt()

GXTexFmt GXGetTexObjFmt ( const GXTexObj * to)

◆ GXGetTexObjHeight()

u16 GXGetTexObjHeight ( const GXTexObj * to)

◆ GXGetTexObjLODAll()

void GXGetTexObjLODAll ( const GXTexObj * tex_obj,
GXTexFilter * min_filt,
GXTexFilter * mag_filt,
f32 * min_lod,
f32 * max_lod,
f32 * lod_bias,
u8 * bias_clamp,
u8 * do_edge_lod,
GXAnisotropy * max_aniso )

◆ GXGetTexObjLODBias()

f32 GXGetTexObjLODBias ( const GXTexObj * tex_obj)

◆ GXGetTexObjMagFilt()

GXTexFilter GXGetTexObjMagFilt ( const GXTexObj * tex_obj)

◆ GXGetTexObjMaxAniso()

GXAnisotropy GXGetTexObjMaxAniso ( const GXTexObj * tex_obj)

◆ GXGetTexObjMaxLOD()

f32 GXGetTexObjMaxLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjMinFilt()

GXTexFilter GXGetTexObjMinFilt ( const GXTexObj * tex_obj)

◆ GXGetTexObjMinLOD()

f32 GXGetTexObjMinLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjMipMap()

GXBool GXGetTexObjMipMap ( const GXTexObj * to)

◆ GXGetTexObjTlut()

u32 GXGetTexObjTlut ( const GXTexObj * tex_obj)

◆ GXGetTexObjUserData()

void * GXGetTexObjUserData ( const GXTexObj * obj)

◆ GXGetTexObjWidth()

u16 GXGetTexObjWidth ( const GXTexObj * to)

◆ GXGetTexObjWrapS()

GXTexWrapMode GXGetTexObjWrapS ( const GXTexObj * to)

◆ GXGetTexObjWrapT()

GXTexWrapMode GXGetTexObjWrapT ( const GXTexObj * to)

◆ GXGetTexRegionAll()

void GXGetTexRegionAll ( const GXTexRegion * region,
u8 * is_cached,
u8 * is_32b_mipmap,
u32 * tmem_even,
u32 * size_even,
u32 * tmem_odd,
u32 * size_odd )

◆ GXGetTlutObjAll()

void GXGetTlutObjAll ( const GXTlutObj * tlut_obj,
void ** data,
GXTlutFmt * format,
u16 * numEntries )

◆ GXGetTlutObjData()

void * GXGetTlutObjData ( const GXTlutObj * tlut_obj)

◆ GXGetTlutObjFmt()

GXTlutFmt GXGetTlutObjFmt ( const GXTlutObj * tlut_obj)

◆ GXGetTlutObjNumEntries()

u16 GXGetTlutObjNumEntries ( const GXTlutObj * tlut_obj)

◆ GXGetTlutRegionAll()

void GXGetTlutRegionAll ( const GXTlutRegion * region,
u32 * tmem_addr,
GXTlutSize * tlut_size )

◆ GXInitTexCacheRegion()

void GXInitTexCacheRegion ( GXTexRegion * region,
u8 is_32b_mipmap,
u32 tmem_even,
GXTexCacheSize size_even,
u32 tmem_odd,
GXTexCacheSize size_odd )

◆ GXInitTexObj()

void GXInitTexObj ( GXTexObj * obj,
void * image_ptr,
u16 width,
u16 height,
GXTexFmt format,
GXTexWrapMode wrap_s,
GXTexWrapMode wrap_t,
GXBool mipmap )

◆ GXInitTexObjBiasClamp()

void GXInitTexObjBiasClamp ( GXTexObj * obj,
u8 bias_clamp )

◆ GXInitTexObjCI()

void GXInitTexObjCI ( GXTexObj * obj,
void * image_ptr,
u16 width,
u16 height,
GXCITexFmt format,
GXTexWrapMode wrap_s,
GXTexWrapMode wrap_t,
GXBool mipmap,
u32 tlut_name )

◆ GXInitTexObjData()

void GXInitTexObjData ( GXTexObj * obj,
void * image_ptr )

◆ GXInitTexObjEdgeLOD()

void GXInitTexObjEdgeLOD ( GXTexObj * obj,
u8 do_edge_lod )

◆ GXInitTexObjFilter()

void GXInitTexObjFilter ( GXTexObj * obj,
GXTexFilter min_filt,
GXTexFilter mag_filt )

◆ GXInitTexObjLOD()

void GXInitTexObjLOD ( GXTexObj * obj,
GXTexFilter min_filt,
GXTexFilter mag_filt,
f32 min_lod,
f32 max_lod,
f32 lod_bias,
u8 bias_clamp,
u8 do_edge_lod,
GXAnisotropy max_aniso )

◆ GXInitTexObjLODBias()

void GXInitTexObjLODBias ( GXTexObj * obj,
f32 lod_bias )

◆ GXInitTexObjMaxAniso()

void GXInitTexObjMaxAniso ( GXTexObj * obj,
GXAnisotropy max_aniso )

◆ GXInitTexObjMaxLOD()

void GXInitTexObjMaxLOD ( GXTexObj * obj,
f32 max_lod )

◆ GXInitTexObjMinLOD()

void GXInitTexObjMinLOD ( GXTexObj * obj,
f32 min_lod )

◆ GXInitTexObjTlut()

void GXInitTexObjTlut ( GXTexObj * obj,
u32 tlut_name )

◆ GXInitTexObjUserData()

void GXInitTexObjUserData ( GXTexObj * obj,
void * user_data )

◆ GXInitTexObjWrapMode()

void GXInitTexObjWrapMode ( GXTexObj * obj,
GXTexWrapMode sm,
GXTexWrapMode tm )

◆ GXInitTexPreLoadRegion()

void GXInitTexPreLoadRegion ( GXTexRegion * region,
u32 tmem_even,
u32 size_even,
u32 tmem_odd,
u32 size_odd )

◆ GXInitTlutObj()

void GXInitTlutObj ( GXTlutObj * tlut_obj,
void * lut,
GXTlutFmt fmt,
u16 n_entries )

◆ GXInitTlutRegion()

void GXInitTlutRegion ( GXTlutRegion * region,
u32 tmem_addr,
GXTlutSize tlut_size )

◆ GXInvalidateTexAll()

void GXInvalidateTexAll ( void )

◆ GXInvalidateTexRegion()

void GXInvalidateTexRegion ( GXTexRegion * region)

◆ GXLoadTexObj()

void GXLoadTexObj ( GXTexObj * obj,
GXTexMapID id )

◆ GXLoadTexObjPreLoaded()

void GXLoadTexObjPreLoaded ( GXTexObj * obj,
GXTexRegion * region,
GXTexMapID id )

◆ GXLoadTlut()

void GXLoadTlut ( GXTlutObj * tlut_obj,
u32 tlut_name )

◆ GXPreLoadEntireTexture()

void GXPreLoadEntireTexture ( GXTexObj * tex_obj,
GXTexRegion * region )

◆ GXSetTexCoordBias()

void GXSetTexCoordBias ( GXTexCoordID coord,
u8 s_enable,
u8 t_enable )

◆ GXSetTexCoordCylWrap()

void GXSetTexCoordCylWrap ( GXTexCoordID coord,
u8 s_enable,
u8 t_enable )

◆ GXSetTexCoordScaleManually()

void GXSetTexCoordScaleManually ( GXTexCoordID coord,
GXBool enable,
u16 ss,
u16 ts )

◆ GXSetTexRegionCallback()

GXTexRegionCallback GXSetTexRegionCallback ( GXTexRegionCallback f)

◆ GXSetTlutRegionCallback()

GXTlutRegionCallback GXSetTlutRegionCallback ( GXTlutRegionCallback f)

Variable Documentation

◆ GX2HWFiltConv

u8 GX2HWFiltConv[6] = { 0x00, 0x04, 0x01, 0x05, 0x02, 0x06 }
static

◆ GXTexImage0Ids

u8 GXTexImage0Ids[8] = { 0x88, 0x89, 0x8A, 0x8B, 0xA8, 0xA9, 0xAA, 0xAB }

◆ GXTexImage1Ids

u8 GXTexImage1Ids[8] = { 0x8C, 0x8D, 0x8E, 0x8F, 0xAC, 0xAD, 0xAE, 0xAF }

◆ GXTexImage2Ids

u8 GXTexImage2Ids[8] = { 0x90, 0x91, 0x92, 0x93, 0xB0, 0xB1, 0xB2, 0xB3 }

◆ GXTexImage3Ids

u8 GXTexImage3Ids[8] = { 0x94, 0x95, 0x96, 0x97, 0xB4, 0xB5, 0xB6, 0xB7 }

◆ GXTexMode0Ids

u8 GXTexMode0Ids[8] = { 0x80, 0x81, 0x82, 0x83, 0xA0, 0xA1, 0xA2, 0xA3 }

◆ GXTexMode1Ids

u8 GXTexMode1Ids[8] = { 0x84, 0x85, 0x86, 0x87, 0xA4, 0xA5, 0xA6, 0xA7 }

◆ GXTexTlutIds

u8 GXTexTlutIds[8] = { 0x98, 0x99, 0x9A, 0x9B, 0xB8, 0xB9, 0xBA, 0xBB }

◆ HW2GXFiltConv

u8 HW2GXFiltConv[8] = { 0x00, 0x02, 0x04, 0x00, 0x01, 0x03, 0x05, 0x00 }
static