citro3d  1.2.0
Data Structures | Macros | Enumerations | Functions
light.h File Reference
#include "lightlut.h"
#include "maths.h"
Include dependency graph for light.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  C3D_Material
 
struct  C3D_LightLutInputConf
 
struct  C3D_LightEnvConf
 
struct  C3D_LightEnv
 
struct  C3D_LightMatConf
 
struct  C3D_LightConf
 
struct  C3D_Light
 

Macros

#define C3DF_LightEnv_IsCP(n)   BIT(18+(n))
 
#define C3DF_LightEnv_IsCP_Any   (0xFF<<18)
 
#define C3DF_LightEnv_LutDirty(n)   BIT(26+(n))
 
#define C3DF_LightEnv_LutDirtyAll   (0x3F<<26)
 

Enumerations

enum  { C3DF_LightEnv_Dirty = BIT(0) , C3DF_LightEnv_MtlDirty = BIT(1) , C3DF_LightEnv_LCDirty = BIT(2) }
 
enum  { GPU_SHADOW_PRIMARY = BIT(16) , GPU_SHADOW_SECONDARY = BIT(17) , GPU_INVERT_SHADOW = BIT(18) , GPU_SHADOW_ALPHA = BIT(19) }
 
enum  {
  C3DF_Light_Enabled = BIT(0) , C3DF_Light_Dirty = BIT(1) , C3DF_Light_MatDirty = BIT(2) , C3DF_Light_SPDirty = BIT(14) ,
  C3DF_Light_DADirty = BIT(15)
}
 

Functions

void C3D_LightEnvInit (C3D_LightEnv *env)
 
void C3D_LightEnvBind (C3D_LightEnv *env)
 
void C3D_LightEnvMaterial (C3D_LightEnv *env, const C3D_Material *mtl)
 
void C3D_LightEnvAmbient (C3D_LightEnv *env, float r, float g, float b)
 
void C3D_LightEnvLut (C3D_LightEnv *env, GPU_LIGHTLUTID lutId, GPU_LIGHTLUTINPUT input, bool negative, C3D_LightLut *lut)
 
void C3D_LightEnvFresnel (C3D_LightEnv *env, GPU_FRESNELSEL selector)
 
void C3D_LightEnvBumpMode (C3D_LightEnv *env, GPU_BUMPMODE mode)
 
void C3D_LightEnvBumpSel (C3D_LightEnv *env, int texUnit)
 
void C3D_LightEnvShadowMode (C3D_LightEnv *env, u32 mode)
 
void C3D_LightEnvShadowSel (C3D_LightEnv *env, int texUnit)
 
void C3D_LightEnvClampHighlights (C3D_LightEnv *env, bool clamp)
 
int C3D_LightInit (C3D_Light *light, C3D_LightEnv *env)
 
void C3D_LightEnable (C3D_Light *light, bool enable)
 
void C3D_LightTwoSideDiffuse (C3D_Light *light, bool enable)
 
void C3D_LightGeoFactor (C3D_Light *light, int id, bool enable)
 
void C3D_LightAmbient (C3D_Light *light, float r, float g, float b)
 
void C3D_LightDiffuse (C3D_Light *light, float r, float g, float b)
 
void C3D_LightSpecular0 (C3D_Light *light, float r, float g, float b)
 
void C3D_LightSpecular1 (C3D_Light *light, float r, float g, float b)
 
void C3D_LightPosition (C3D_Light *light, C3D_FVec *pos)
 
void C3D_LightShadowEnable (C3D_Light *light, bool enable)
 
void C3D_LightSpotEnable (C3D_Light *light, bool enable)
 
void C3D_LightSpotDir (C3D_Light *light, float x, float y, float z)
 
void C3D_LightSpotLut (C3D_Light *light, C3D_LightLut *lut)
 
void C3D_LightDistAttnEnable (C3D_Light *light, bool enable)
 
void C3D_LightDistAttn (C3D_Light *light, C3D_LightLutDA *lut)
 
static void C3D_LightColor (C3D_Light *light, float r, float g, float b)
 

Macro Definition Documentation

◆ C3DF_LightEnv_IsCP

#define C3DF_LightEnv_IsCP (   n)    BIT(18+(n))

◆ C3DF_LightEnv_IsCP_Any

#define C3DF_LightEnv_IsCP_Any   (0xFF<<18)

◆ C3DF_LightEnv_LutDirty

#define C3DF_LightEnv_LutDirty (   n)    BIT(26+(n))

◆ C3DF_LightEnv_LutDirtyAll

#define C3DF_LightEnv_LutDirtyAll   (0x3F<<26)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
C3DF_LightEnv_Dirty 
C3DF_LightEnv_MtlDirty 
C3DF_LightEnv_LCDirty 

◆ anonymous enum

anonymous enum
Enumerator
GPU_SHADOW_PRIMARY 
GPU_SHADOW_SECONDARY 
GPU_INVERT_SHADOW 
GPU_SHADOW_ALPHA 

◆ anonymous enum

anonymous enum
Enumerator
C3DF_Light_Enabled 
C3DF_Light_Dirty 
C3DF_Light_MatDirty 
C3DF_Light_SPDirty 
C3DF_Light_DADirty 

Function Documentation

◆ C3D_LightAmbient()

void C3D_LightAmbient ( C3D_Light *  light,
float  r,
float  g,
float  b 
)

◆ C3D_LightColor()

static void C3D_LightColor ( C3D_Light *  light,
float  r,
float  g,
float  b 
)
inlinestatic

◆ C3D_LightDiffuse()

void C3D_LightDiffuse ( C3D_Light *  light,
float  r,
float  g,
float  b 
)

◆ C3D_LightDistAttn()

void C3D_LightDistAttn ( C3D_Light *  light,
C3D_LightLutDA lut 
)

◆ C3D_LightDistAttnEnable()

void C3D_LightDistAttnEnable ( C3D_Light *  light,
bool  enable 
)

◆ C3D_LightEnable()

void C3D_LightEnable ( C3D_Light *  light,
bool  enable 
)

◆ C3D_LightEnvAmbient()

void C3D_LightEnvAmbient ( C3D_LightEnv *  env,
float  r,
float  g,
float  b 
)

◆ C3D_LightEnvBind()

void C3D_LightEnvBind ( C3D_LightEnv *  env)

◆ C3D_LightEnvBumpMode()

void C3D_LightEnvBumpMode ( C3D_LightEnv *  env,
GPU_BUMPMODE  mode 
)

◆ C3D_LightEnvBumpSel()

void C3D_LightEnvBumpSel ( C3D_LightEnv *  env,
int  texUnit 
)

◆ C3D_LightEnvClampHighlights()

void C3D_LightEnvClampHighlights ( C3D_LightEnv *  env,
bool  clamp 
)

◆ C3D_LightEnvFresnel()

void C3D_LightEnvFresnel ( C3D_LightEnv *  env,
GPU_FRESNELSEL  selector 
)

◆ C3D_LightEnvInit()

void C3D_LightEnvInit ( C3D_LightEnv *  env)

◆ C3D_LightEnvLut()

void C3D_LightEnvLut ( C3D_LightEnv *  env,
GPU_LIGHTLUTID  lutId,
GPU_LIGHTLUTINPUT  input,
bool  negative,
C3D_LightLut lut 
)

◆ C3D_LightEnvMaterial()

void C3D_LightEnvMaterial ( C3D_LightEnv *  env,
const C3D_Material mtl 
)

◆ C3D_LightEnvShadowMode()

void C3D_LightEnvShadowMode ( C3D_LightEnv *  env,
u32  mode 
)

◆ C3D_LightEnvShadowSel()

void C3D_LightEnvShadowSel ( C3D_LightEnv *  env,
int  texUnit 
)

◆ C3D_LightGeoFactor()

void C3D_LightGeoFactor ( C3D_Light *  light,
int  id,
bool  enable 
)

◆ C3D_LightInit()

int C3D_LightInit ( C3D_Light *  light,
C3D_LightEnv *  env 
)

◆ C3D_LightPosition()

void C3D_LightPosition ( C3D_Light *  light,
C3D_FVec pos 
)

◆ C3D_LightShadowEnable()

void C3D_LightShadowEnable ( C3D_Light *  light,
bool  enable 
)

◆ C3D_LightSpecular0()

void C3D_LightSpecular0 ( C3D_Light *  light,
float  r,
float  g,
float  b 
)

◆ C3D_LightSpecular1()

void C3D_LightSpecular1 ( C3D_Light *  light,
float  r,
float  g,
float  b 
)

◆ C3D_LightSpotDir()

void C3D_LightSpotDir ( C3D_Light *  light,
float  x,
float  y,
float  z 
)

◆ C3D_LightSpotEnable()

void C3D_LightSpotEnable ( C3D_Light *  light,
bool  enable 
)

◆ C3D_LightSpotLut()

void C3D_LightSpotLut ( C3D_Light *  light,
C3D_LightLut lut 
)

◆ C3D_LightTwoSideDiffuse()

void C3D_LightTwoSideDiffuse ( C3D_Light *  light,
bool  enable 
)