SSBM Decomp
Loading...
Searching...
No Matches
GXTexture.c File Reference
#include <macros.h>
#include "__gx.h"
#include <dolphin/gx.h>
#include <dolphin/os.h>

Data Structures

struct  __GXTexObjInt
struct  __GXTexRegionInt
struct  __GXTlutObjInt
struct  __GXTlutRegionInt

Functions

static void __GXGetTexTileShift (GXTexFmt fmt, u32 *rowTileS, u32 *colTileS)
u32 GXGetTexBufferSize (u16 width, u16 height, u32 format, u8 mipmap, u8 max_lod)
void __GetImageTileCount (enum _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, u8 mipmap)
void GXInitTexObjCI (GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 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 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, u8 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 arg0)

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]

Function Documentation

◆ __GXGetTexTileShift()

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

◆ GXGetTexBufferSize()

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

◆ __GetImageTileCount()

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

◆ GXInitTexObj()

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

◆ GXInitTexObjCI()

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

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

◆ GXInitTexObjData()

void GXInitTexObjData ( GXTexObj * obj,
void * image_ptr )

◆ GXInitTexObjWrapMode()

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

◆ GXInitTexObjTlut()

void GXInitTexObjTlut ( GXTexObj * obj,
u32 tlut_name )

◆ GXInitTexObjUserData()

void GXInitTexObjUserData ( GXTexObj * obj,
void * user_data )

◆ GXGetTexObjUserData()

void * GXGetTexObjUserData ( const GXTexObj * obj)

◆ GXGetTexObjAll()

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

◆ GXGetTexObjData()

void * GXGetTexObjData ( const GXTexObj * to)

◆ GXGetTexObjWidth()

u16 GXGetTexObjWidth ( const GXTexObj * to)

◆ GXGetTexObjHeight()

u16 GXGetTexObjHeight ( const GXTexObj * to)

◆ GXGetTexObjFmt()

GXTexFmt GXGetTexObjFmt ( const GXTexObj * to)

◆ GXGetTexObjWrapS()

GXTexWrapMode GXGetTexObjWrapS ( const GXTexObj * to)

◆ GXGetTexObjWrapT()

GXTexWrapMode GXGetTexObjWrapT ( const GXTexObj * to)

◆ GXGetTexObjMipMap()

GXBool GXGetTexObjMipMap ( 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 )

◆ GXGetTexObjMinFilt()

GXTexFilter GXGetTexObjMinFilt ( const GXTexObj * tex_obj)

◆ GXGetTexObjMagFilt()

GXTexFilter GXGetTexObjMagFilt ( const GXTexObj * tex_obj)

◆ GXGetTexObjMinLOD()

f32 GXGetTexObjMinLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjMaxLOD()

f32 GXGetTexObjMaxLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjLODBias()

f32 GXGetTexObjLODBias ( const GXTexObj * tex_obj)

◆ GXGetTexObjBiasClamp()

GXBool GXGetTexObjBiasClamp ( const GXTexObj * tex_obj)

◆ GXGetTexObjEdgeLOD()

GXBool GXGetTexObjEdgeLOD ( const GXTexObj * tex_obj)

◆ GXGetTexObjMaxAniso()

GXAnisotropy GXGetTexObjMaxAniso ( const GXTexObj * tex_obj)

◆ GXGetTexObjTlut()

u32 GXGetTexObjTlut ( const GXTexObj * tex_obj)

◆ GXLoadTexObjPreLoaded()

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

◆ GXLoadTexObj()

void GXLoadTexObj ( GXTexObj * obj,
GXTexMapID id )

◆ GXInitTlutObj()

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

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

◆ GXLoadTlut()

void GXLoadTlut ( GXTlutObj * tlut_obj,
u32 tlut_name )

◆ GXInitTexCacheRegion()

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

◆ GXInitTexPreLoadRegion()

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

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

◆ GXInitTlutRegion()

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

◆ GXGetTlutRegionAll()

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

◆ GXInvalidateTexRegion()

void GXInvalidateTexRegion ( GXTexRegion * region)

◆ GXInvalidateTexAll()

void GXInvalidateTexAll ( void )

◆ GXSetTexRegionCallback()

GXTexRegionCallback GXSetTexRegionCallback ( GXTexRegionCallback f)

◆ GXSetTlutRegionCallback()

GXTlutRegionCallback GXSetTlutRegionCallback ( GXTlutRegionCallback f)

◆ GXPreLoadEntireTexture()

void GXPreLoadEntireTexture ( GXTexObj * tex_obj,
GXTexRegion * region )

◆ GXSetTexCoordScaleManually()

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

◆ GXSetTexCoordCylWrap()

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

◆ GXSetTexCoordBias()

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

◆ __SetSURegs()

void __SetSURegs ( u32 tmap,
u32 tcoord )
static

◆ __GXSetSUTexRegs()

void __GXSetSUTexRegs ( void )

◆ __GXGetSUTexSize()

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

◆ __GXSetTmemConfig()

void __GXSetTmemConfig ( u32 arg0)

Variable Documentation

◆ GXTexMode0Ids

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

◆ GXTexMode1Ids

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

◆ 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 }

◆ GXTexTlutIds

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

◆ GX2HWFiltConv

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

◆ HW2GXFiltConv

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