SSBM Decomp
Loading...
Searching...
No Matches
lbrefract.c File Reference
#include "lbrefract.h"
#include "lbarchive.h"
#include "types.h"
#include <placeholder.h>
#include <string.h>
#include <dolphin/gx/GXBump.h>
#include <dolphin/gx/GXEnum.h>
#include <dolphin/gx/GXGeometry.h>
#include <dolphin/gx/GXLighting.h>
#include <dolphin/gx/GXPixel.h>
#include <dolphin/gx/GXTev.h>
#include <dolphin/gx/GXTexture.h>
#include <dolphin/gx/GXTransform.h>
#include <dolphin/os/OSCache.h>
#include <baselib/class.h>
#include <baselib/cobj.h>
#include <baselib/debug.h>
#include <baselib/dobj.h>
#include <baselib/memory.h>
#include <baselib/pobj.h>
#include <baselib/state.h>
#include <MetroTRK/intrinsics.h>

Data Structures

struct  lbl_804336D0_t

Functions

static void lbRefract_WriteTexCoordIA4 (lbRefract_CallbackData *data, s32 row, u32 col, u32 arg3, u8 arg4, u8 intensity, u8 alpha)
static void fn_80021F70 (lbRefract_CallbackData *data, s32 row, u32 col, s32 r, s32 g, u32 b)
static void fn_80021FB4 (lbRefract_CallbackData *data, s32 row, u32 col, u8 arg3, u8 arg4, u8 arg5, u8 arg6)
static void fn_80021FF8 (lbRefract_CallbackData *, s32, u32, s32 *, s32 *, s32 *, s32 *)
static void fn_8002206C (lbRefract_CallbackData *, s32, u32, s32 *, s32 *, s32 *, s32 *)
static void lbRefract_ReadTexCoordRGBA8 (lbRefract_CallbackData *data, s32 row, u32 col, u32 *out_r, u32 *out_g, u8 *out_b, u8 *out_a)
s32 lbRefract_8002219C (lbRefract_CallbackData *data, s32 buffer, s32 format, s32 width, s32 height)
 Initialize refraction callback data for a texture buffer.
static void lbRefract_DObjDispReset (HSD_DObj *dobj, Mtx vmtx, Mtx pmtx, u32 rendermode)
static void fn_80022650 (void)
static void fn_80022940 (void)
 STATIC_ASSERT (sizeof(struct lbl_804336D0_t)==0x40)
static void lbRefract_WriteTexCoord (lbRefract_CallbackData *cb, s32 row, u32 col, f32 y, f32 x, f32 param0)
void lbRefract_80021CE8 (void *arg0, s32 arg1)
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.
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

f32 lbl_803BB0E0 [6]
static struct lbl_804336D0_t lbl_804336D0
static u8refract_data
Mtx texture_mtx
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

◆ lbRefract_WriteTexCoordIA4()

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

◆ fn_80021F70()

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

◆ fn_80021FB4()

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

◆ fn_80021FF8()

void fn_80021FF8 ( lbRefract_CallbackData * data,
s32 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,
s32 row,
u32 col,
u32 * out_r,
u32 * out_g,
u8 * out_b,
u8 * out_a )
static

◆ lbRefract_8002219C()

s32 lbRefract_8002219C ( lbRefract_CallbackData * data,
s32 buffer,
s32 format,
s32 width,
s32 height )

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_DObjDispReset()

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

◆ fn_80022650()

void fn_80022650 ( void )
static

◆ fn_80022940()

void fn_80022940 ( void )
static

◆ STATIC_ASSERT()

STATIC_ASSERT ( sizeof(struct lbl_804336D0_t) = =0x40)

◆ lbRefract_WriteTexCoord()

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

◆ lbRefract_80021CE8()

void lbRefract_80021CE8 ( void * arg0,
s32 arg1 )

◆ lbRefract_800222A4()

void lbRefract_800222A4 ( void )
Todo
Only differs by register allocation.

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

◆ lbl_803BB0E0

f32 lbl_803BB0E0[6]
extern

◆ lbl_804336D0

struct lbl_804336D0_t lbl_804336D0
static

◆ refract_data

u8* refract_data
static

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

◆ 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:335
HSD_ImageDesc imagedesc0
Definition lbrefract.c:334
#define NULL
Definition stddef.h:19

◆ 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:359
HSD_TObjDesc tobjdesc0
Definition lbrefract.c:337
HSD_ImageDesc imagedesc1
Definition lbrefract.c:358

◆ dobj_info

HSD_DObjInfo dobj_info = { fn_80022650 }
static

◆ pobj_info

HSD_PObjInfo pobj_info = { fn_80022940 }
static