Files
ss/include/rvl/GX/GXLight.h
T
2023-12-24 09:59:13 -05:00

35 lines
1.4 KiB
C

#ifndef RVL_SDK_GX_LIGHT_H
#define RVL_SDK_GX_LIGHT_H
#include "rvl/GX/GXInternal.h"
#include "rvl/GX/GXTypes.h"
#include <common.h>
#ifdef __cplusplus
extern "C" {
#endif
GX_DECL_PUBLIC_STRUCT(GXLightObj, 64);
void GXInitLightAttn(GXLightObj *light, f32 aa, f32 ab, f32 ac, f32 ka, f32 kb, f32 kc);
void GXInitLightAttnA(GXLightObj *light, f32 a, f32 b, f32 c);
void GXInitLightAttnK(GXLightObj *light, f32 a, f32 b, f32 c);
void GXInitLightSpot(GXLightObj *light, f32 angle, GXSpotFn fn);
void GXInitLightDistAttn(GXLightObj *light, f32 distance, f32 brightness, GXDistAttnFn fn);
void GXInitLightPos(GXLightObj *light, f32 x, f32 y, f32 z);
void GXGetLightPos(const GXLightObj *light, f32 *x, f32 *y, f32 *z);
void GXInitLightDir(GXLightObj *light, f32 x, f32 y, f32 z);
void GXGetLightDir(const GXLightObj *light, f32 *x, f32 *y, f32 *z);
void GXInitSpecularDir(GXLightObj *light, f32 x, f32 y, f32 z);
void GXInitLightColor(GXLightObj *light, GXColor color);
void GXLoadLightObjImm(const GXLightObj *light, GXLightID id);
void GXLoadLightObjIndx(u16 index, GXLightID id);
void GXSetChanAmbColor(GXChannelID chan, GXColor color);
void GXSetChanMatColor(GXChannelID chan, GXColor color);
void GXSetNumChans(u8 num);
void GXSetChanCtrl(GXChannelID chan, GXBool enable, GXColorSrc ambSrc, GXColorSrc matSrc, GXLightID lightMask,
GXDiffuseFn diffFn, GXAttnFn attnFn);
#ifdef __cplusplus
}
#endif
#endif