Files
ss/include/rvl/GX/GXLight.h
T
Elijah Thomas 26af4db82d update from dtk-template - clangd :) (#66)
* update from dtk-template and start work towards using clangd

* include <a> -> "a"

* Update build.yml

* remove/add non-trivial class in union warning
2024-10-16 15:36:02 -04:00

38 lines
1.4 KiB
C

#ifndef RVL_SDK_GX_LIGHT_H
#define RVL_SDK_GX_LIGHT_H
#include "common.h"
#include "rvl/GX/GXInternal.h"
#include "rvl/GX/GXTypes.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