forked from suyu/suyu
Pica: Name LightSrc.config register
This commit is contained in:
parent
8e905b3af6
commit
30a01584f2
2 changed files with 16 additions and 18 deletions
|
@ -787,23 +787,21 @@ struct Regs {
|
||||||
LightColor diffuse; // material.diffuse * light.diffuse
|
LightColor diffuse; // material.diffuse * light.diffuse
|
||||||
LightColor ambient; // material.ambient * light.ambient
|
LightColor ambient; // material.ambient * light.ambient
|
||||||
|
|
||||||
struct {
|
// Encoded as 16-bit floating point
|
||||||
// Encoded as 16-bit floating point
|
union {
|
||||||
union {
|
BitField< 0, 16, u32> x;
|
||||||
BitField< 0, 16, u32> x;
|
BitField<16, 16, u32> y;
|
||||||
BitField<16, 16, u32> y;
|
|
||||||
};
|
|
||||||
union {
|
|
||||||
BitField< 0, 16, u32> z;
|
|
||||||
};
|
|
||||||
|
|
||||||
INSERT_PADDING_WORDS(0x3);
|
|
||||||
|
|
||||||
union {
|
|
||||||
BitField<0, 1, u32> directional;
|
|
||||||
BitField<1, 1, u32> two_sided_diffuse; // When disabled, clamp dot-product to 0
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
union {
|
||||||
|
BitField< 0, 16, u32> z;
|
||||||
|
};
|
||||||
|
|
||||||
|
INSERT_PADDING_WORDS(0x3);
|
||||||
|
|
||||||
|
union {
|
||||||
|
BitField<0, 1, u32> directional;
|
||||||
|
BitField<1, 1, u32> two_sided_diffuse; // When disabled, clamp dot-product to 0
|
||||||
|
} config;
|
||||||
|
|
||||||
BitField<0, 20, u32> dist_atten_bias;
|
BitField<0, 20, u32> dist_atten_bias;
|
||||||
BitField<0, 20, u32> dist_atten_scale;
|
BitField<0, 20, u32> dist_atten_scale;
|
||||||
|
|
|
@ -89,8 +89,8 @@ union PicaShaderConfig {
|
||||||
unsigned num = regs.lighting.light_enable.GetNum(light_index);
|
unsigned num = regs.lighting.light_enable.GetNum(light_index);
|
||||||
const auto& light = regs.lighting.light[num];
|
const auto& light = regs.lighting.light[num];
|
||||||
state.lighting.light[light_index].num = num;
|
state.lighting.light[light_index].num = num;
|
||||||
state.lighting.light[light_index].directional = light.directional != 0;
|
state.lighting.light[light_index].directional = light.config.directional != 0;
|
||||||
state.lighting.light[light_index].two_sided_diffuse = light.two_sided_diffuse != 0;
|
state.lighting.light[light_index].two_sided_diffuse = light.config.two_sided_diffuse != 0;
|
||||||
state.lighting.light[light_index].dist_atten_enable = !regs.lighting.IsDistAttenDisabled(num);
|
state.lighting.light[light_index].dist_atten_enable = !regs.lighting.IsDistAttenDisabled(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue