Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
GDLight.h
Go to the documentation of this file.
1#ifndef _DOLPHIN_GD_LIGHT_H_
2#define _DOLPHIN_GD_LIGHT_H_
3
4#ifdef __REVOLUTION_SDK__
6#else
7#include <dolphin/gx/GXEnum.h>
9#include "global.h"
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define XF_LIGHT_ID 0x0600
16#define XF_LIGHT_COLOR_ID 0x0603
17#define XF_LIGHT_ATTN_ID 0x0604
18#define XF_LIGHT_DISTATTN_ID 0x0607
19#define XF_LIGHT_POS_ID 0x060A
20#define XF_LIGHT_SPEC_DIR_ID 0x060A
21#define XF_LIGHT_DIR_ID 0x060D
22
23#define XF_REG_AMBIENT0_ID 0x100A
24#define XF_REG_AMBIENT1_ID 0x100B
25#define XF_REG_MATERIAL0_ID 0x100C
26#define XF_REG_MATERIAL1_ID 0x100D
27#define XF_REG_COLOR0CNTRL_ID 0x100E
28#define XF_REG_COLOR1CNTRL_ID 0x100F
29#define XF_REG_ALPHA0CNTRL_ID 0x1010
30#define XF_REG_ALPHA1CNTRL_ID 0x1011
31
32#define XF_REG_CHAN_CTRL(matsrc, enable, lightmask0, ambsrc, diff_fn, p5, p6, lightmask4) \
33 ( \
34 (u32)(matsrc) << 0 | \
35 (u32)(enable) << 1 | \
36 (u32)(lightmask0) << 2 | \
37 (u32)(ambsrc) << 6 | \
38 (u32)(diff_fn) << 7 | \
39 (u32)(p5) << 9 | \
40 (u32)(p6) << 10 | \
41 (u32)(lightmask4) << 11 \
42 )
43
44void GDSetLightAttn(GXLightID light, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2);
45void GDSetLightSpot(GXLightID light, f32 cutoff, GXSpotFn spot_func);
46void GDSetLightDistAttn(GXLightID light, f32 ref_dist, f32 ref_br, GXDistAttnFn dist_func);
48void GDSetLightPos(GXLightID light, f32 x, f32 y, f32 z);
49void GDSetLightDir(GXLightID light, f32 nx, f32 ny, f32 nz);
50void GDSetSpecularDirHA(GXLightID light, f32 nx, f32 ny, f32 nz, f32 hx, f32 hy, f32 hz);
51void GDSetSpecularDir(GXLightID light, f32 nx, f32 ny, f32 nz);
52void GDLoadLightObjIndx(u32 lt_obj_indx, GXLightID light);
55void GDSetChanCtrl(GXChannelID chan, u8 enable, GXColorSrc amb_src,
56 GXColorSrc mat_src, u32 light_mask, GXDiffuseFn diff_fn,
57 GXAttnFn attn_fn);
58
59inline static u16 __GDLightID2Index(GXLightID id) {
60 u16 idx;
61
62 idx = 0x1F - __cntlzw(id);
63 if (idx > 7) {
64 idx = 0;
65 }
66 return idx;
67}
68
69inline static u16 __GDLightID2Offset(GXLightID id) {
70 return __GDLightID2Index(id) * 16;
71}
72
73#ifdef __cplusplus
74}
75#endif
76
77#endif
78#endif
static GXColor color
Definition d_a_obj_crope.cpp:39
void GDSetLightDistAttn(GXLightID light, f32 ref_dist, f32 ref_br, GXDistAttnFn dist_func)
Definition GDLight.c:77
void GDSetLightPos(GXLightID light, f32 x, f32 y, f32 z)
Definition GDLight.c:120
void GDSetChanMatColor(GXChannelID chan, GXColor color)
Definition GDLight.c:193
void GDSetSpecularDirHA(GXLightID light, f32 nx, f32 ny, f32 nz, f32 hx, f32 hy, f32 hz)
Definition GDLight.c:134
void GDSetLightAttn(GXLightID light, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2)
Definition GDLight.c:4
void GDSetLightColor(GXLightID light, GXColor color)
Definition GDLight.c:116
void GDSetLightDir(GXLightID light, f32 nx, f32 ny, f32 nz)
Definition GDLight.c:127
void GDSetLightSpot(GXLightID light, f32 cutoff, GXSpotFn spot_func)
Definition GDLight.c:14
static u16 __GDLightID2Index(GXLightID id)
Definition GDLight.h:59
void GDSetChanAmbColor(GXChannelID chan, GXColor color)
Definition GDLight.c:189
static u16 __GDLightID2Offset(GXLightID id)
Definition GDLight.h:69
void GDSetChanCtrl(GXChannelID chan, u8 enable, GXColorSrc amb_src, GXColorSrc mat_src, u32 light_mask, GXDiffuseFn diff_fn, GXAttnFn attn_fn)
Definition GDLight.c:197
void GDSetSpecularDir(GXLightID light, f32 nx, f32 ny, f32 nz)
Definition GDLight.c:151
void GDLoadLightObjIndx(u32 lt_obj_indx, GXLightID light)
Definition GDLight.c:185
enum _GXSpotFn GXSpotFn
enum _GXDiffuseFn GXDiffuseFn
enum _GXAttnFn GXAttnFn
enum _GXLightID GXLightID
enum _GXChannelID GXChannelID
enum _GXColorSrc GXColorSrc
enum _GXDistAttnFn GXDistAttnFn
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
int hx
Definition e_acos.c:67
double x double x
Definition e_atan2.c:58
int hy
Definition e_atan2.c:62
double x double y
Definition e_atan2.c:58
hz
Definition e_fmod.c:128
z
Definition e_pow.c:390
int __cntlzw(unsigned int)
static u16 __GDLightID2Index(GXLightID id)
Definition GDLight.h:56
Definition GXStruct.h:30