SSBM Decomp
Loading...
Searching...
No Matches
lbrefract.c File Reference

Functions

static void fn_80022650 (void)
static void fn_80022940 (void)
static void lbRefract_WriteTexCoord (lbRefract_CallbackData *cb, s32 row, u32 col, f32 y, f32 x, f32 param0)
static float my_fmodf (float a, float b)
static void lbRefract_80021CE8 (lbRefract_CallbackData *cb, s32 arg1)
static void lbRefract_WriteTexCoordIA4 (lbRefract_CallbackData *data, u32 row, u32 col, u32 arg3, u8 arg4, u8 intensity, u8 alpha)
 Write IA4 texture coordinate to refraction buffer.
static void fn_80021F70 (lbRefract_CallbackData *data, u32 row, u32 col, u8 r, u8 g, u32 b)
static void fn_80021FB4 (lbRefract_CallbackData *data, u32 row, u32 col, u8 arg6, u8 arg7, u8 arg8, u8 arg9)
static void fn_80021FF8 (lbRefract_CallbackData *data, u32 row, u32 col, s32 *arg3, s32 *arg4, s32 *arg5, s32 *arg6)
static void fn_8002206C (lbRefract_CallbackData *data, s32 row, u32 col, s32 *arg3, s32 *arg4, s32 *arg5, s32 *arg6)
static void lbRefract_ReadTexCoordRGBA8 (lbRefract_CallbackData *data, u32 row, u32 col, u32 *out_r, u32 *out_g, u32 *out_b, u32 *out_a)
 Read RGBA8 texture coordinate addresses from refraction buffer.
static int lbRefract_8002219C (lbRefract_CallbackData *data, void *buffer, s32 format, u32 width, u32 height)
 Initialize refraction callback data for a texture buffer.
void lbRefract_800222A4 (void)
void lbRefract_8002247C (HSD_CObj *cobj)
 Copy framebuffer to refraction source texture.
void lbRefract_80022560 (void)
 Copy framebuffer to refraction source texture.
void lbRefract_800225D4 (void)
 Reset TEV and indirect texture stages.
static void lbRefract_DObjDispReset (HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
 Display DObj then reset TEV/indirect stages for refraction cleanup.
s32 lbRefract_PObjLoad (HSD_PObj *pobj, HSD_PObjDesc *desc)
void lbRefract_80022998 (HSD_MObj *mobj, u32 rendermode, s32 arg2)
void lbRefract_80022BB8 (void)
 Increment refraction effect user count.
void lbRefSetUnuse (void)
 Decrement refraction effect user count.

Variables

struct { 
   int   refractionUserCount 
   void *   image_ptr 
   HSD_ImageDesc *   imagedesc 
   HSD_TObj **   tobj_list 
   Mtx   texture_mtx 
lbl_804336D0
struct { 
   u8   x0 
   f32 *   x4 
} * refract_data
float texture_offset [2][3]
HSD_ImageDesc imagedesc0 = { NULL, 0, 0, 4, 0, 0.0F, 0.0F }
HSD_TexLODDesc loddesc0 = { 1, 0.0F, 1, 1, 0 }
HSD_TObjDesc tobjdesc0
HSD_ImageDesc imagedesc1 = { NULL, 0, 0, 3, 0, 0.0F, 0.0F }
HSD_TexLODDesc loddesc1 = { 1, 0.0F, 1, 1, 0 }
HSD_TObjDesc tobjdesc1
static HSD_DObjInfo dobj_info = { fn_80022650 }
static HSD_PObjInfo pobj_info = { fn_80022940 }

Function Documentation

◆ fn_80022650()

void fn_80022650 ( void )
static

◆ fn_80022940()

void fn_80022940 ( void )
static

◆ lbRefract_WriteTexCoord()

void lbRefract_WriteTexCoord ( lbRefract_CallbackData * cb,
s32 row,
u32 col,
f32 y,
f32 x,
f32 param0 )
inlinestatic

◆ my_fmodf()

float my_fmodf ( float a,
float b )
inlinestatic
Todo
reconcile with MSL fmodf

◆ lbRefract_80021CE8()

void lbRefract_80021CE8 ( lbRefract_CallbackData * cb,
s32 arg1 )
static

◆ lbRefract_WriteTexCoordIA4()

void lbRefract_WriteTexCoordIA4 ( lbRefract_CallbackData * data,
u32 row,
u32 col,
u32 arg3,
u8 arg4,
u8 intensity,
u8 alpha )
static

Write IA4 texture coordinate to refraction buffer.

◆ fn_80021F70()

void fn_80021F70 ( lbRefract_CallbackData * data,
u32 row,
u32 col,
u8 r,
u8 g,
u32 b )
static

◆ fn_80021FB4()

void fn_80021FB4 ( lbRefract_CallbackData * data,
u32 row,
u32 col,
u8 arg6,
u8 arg7,
u8 arg8,
u8 arg9 )
static

◆ fn_80021FF8()

void fn_80021FF8 ( lbRefract_CallbackData * data,
u32 row,
u32 col,
s32 * arg3,
s32 * arg4,
s32 * arg5,
s32 * arg6 )
static

◆ fn_8002206C()

void fn_8002206C ( lbRefract_CallbackData * data,
s32 row,
u32 col,
s32 * arg3,
s32 * arg4,
s32 * arg5,
s32 * arg6 )
static

◆ lbRefract_ReadTexCoordRGBA8()

void lbRefract_ReadTexCoordRGBA8 ( lbRefract_CallbackData * data,
u32 row,
u32 col,
u32 * out_r,
u32 * out_g,
u32 * out_b,
u32 * out_a )
static

Read RGBA8 texture coordinate addresses from refraction buffer.

◆ lbRefract_8002219C()

int lbRefract_8002219C ( lbRefract_CallbackData * data,
void * buffer,
s32 format,
u32 width,
u32 height )
static

Initialize refraction callback data for a texture buffer.

Initialize refraction callback data for a texture buffer.

Parameters
dataCallback data to initialize.
bufferBase address of texture buffer.
formatTexture format (3=IA4, 4=IA8, 6=RGBA8).
widthTexture width in pixels.
heightTexture height in pixels.
Returns
0 on success, -1 if format is unsupported.

◆ lbRefract_800222A4()

void lbRefract_800222A4 ( void )
Todo
Refactor data members into a struct

◆ lbRefract_8002247C()

void lbRefract_8002247C ( HSD_CObj * cobj)

Copy framebuffer to refraction source texture.

◆ lbRefract_80022560()

void lbRefract_80022560 ( void )

Copy framebuffer to refraction source texture.

◆ lbRefract_800225D4()

void lbRefract_800225D4 ( void )

Reset TEV and indirect texture stages.

◆ lbRefract_DObjDispReset()

void lbRefract_DObjDispReset ( HSD_DObj * dobj,
Mtx vmtx,
Mtx pmtx,
u32 rendermode )
static

Display DObj then reset TEV/indirect stages for refraction cleanup.

◆ lbRefract_PObjLoad()

s32 lbRefract_PObjLoad ( HSD_PObj * pobj,
HSD_PObjDesc * desc )

◆ lbRefract_80022998()

void lbRefract_80022998 ( HSD_MObj * mobj,
u32 rendermode,
s32 arg2 )

◆ lbRefract_80022BB8()

void lbRefract_80022BB8 ( void )

Increment refraction effect user count.

◆ lbRefSetUnuse()

void lbRefSetUnuse ( void )

Decrement refraction effect user count.

Variable Documentation

◆ refractionUserCount

int refractionUserCount

◆ image_ptr

void* image_ptr

◆ imagedesc

HSD_ImageDesc* imagedesc

◆ tobj_list

HSD_TObj** tobj_list

◆ texture_mtx

Mtx texture_mtx
Initial value:
= {
{ +0.5F, +0.0F, +0.0F, +0.5F },
{ +0.0F, -0.5F, +0.0F, +0.5F },
{ +0.0F, +0.0F, +0.0F, +1.0F },
}

◆ [struct]

struct { ... } lbl_804336D0

◆ x0

u8 x0

◆ x4

f32* x4

◆ [struct]

struct { ... } * refract_data

◆ texture_offset

float texture_offset[2][3]
Initial value:
= {
{ -0.5F, +0.0F, +0.0F },
{ +0.0F, -0.5F, +0.0F },
}

◆ imagedesc0

HSD_ImageDesc imagedesc0 = { NULL, 0, 0, 4, 0, 0.0F, 0.0F }

◆ loddesc0

HSD_TexLODDesc loddesc0 = { 1, 0.0F, 1, 1, 0 }

◆ tobjdesc0

HSD_TObjDesc tobjdesc0
Initial value:
= {
0,
0,
{ 0.0F, 0.0F, 0.0F },
{ 1.0F, 1.0F, 1.0F },
{ 0.0F, 0.0F, 0.0F },
0,
0,
1,
1,
0x83,
1.0F,
1,
}
HSD_TexLODDesc loddesc0
Definition lbrefract.c:306
HSD_ImageDesc imagedesc0
Definition lbrefract.c:305
#define NULL
Definition stddef.h:14

◆ imagedesc1

HSD_ImageDesc imagedesc1 = { NULL, 0, 0, 3, 0, 0.0F, 0.0F }

◆ loddesc1

HSD_TexLODDesc loddesc1 = { 1, 0.0F, 1, 1, 0 }

◆ tobjdesc1

HSD_TObjDesc tobjdesc1
Initial value:
= {
1,
1,
{ 0.0F, 0.0F, 0.0F },
{ 1.0F, 1.0F, 1.0F },
{ 0.0F, 0.0F, 0.0F },
0,
0,
1,
1,
0x81,
1.0F,
1,
}
HSD_TexLODDesc loddesc1
Definition lbrefract.c:330
HSD_TObjDesc tobjdesc0
Definition lbrefract.c:308
HSD_ImageDesc imagedesc1
Definition lbrefract.c:329

◆ dobj_info

HSD_DObjInfo dobj_info = { fn_80022650 }
static

◆ pobj_info

HSD_PObjInfo pobj_info = { fn_80022940 }
static