|
|
|
@ -715,26 +715,29 @@ struct Regs {
|
|
|
|
|
union {
|
|
|
|
|
BitField< 4, 4, u32> config;
|
|
|
|
|
BitField<27, 1, u32> clamp_highlights;
|
|
|
|
|
} light_env;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
|
// Each bit specifies whether distance attenuation should be applied for the
|
|
|
|
|
// corresponding light
|
|
|
|
|
|
|
|
|
|
BitField<24, 1, u32> light_0;
|
|
|
|
|
BitField<25, 1, u32> light_1;
|
|
|
|
|
BitField<26, 1, u32> light_2;
|
|
|
|
|
BitField<27, 1, u32> light_3;
|
|
|
|
|
BitField<28, 1, u32> light_4;
|
|
|
|
|
BitField<29, 1, u32> light_5;
|
|
|
|
|
BitField<30, 1, u32> light_6;
|
|
|
|
|
BitField<31, 1, u32> light_7;
|
|
|
|
|
|
|
|
|
|
bool IsEnabled(unsigned index) const {
|
|
|
|
|
const unsigned enable[] = { light_0, light_1, light_2, light_3, light_4, light_5, light_6, light_7 };
|
|
|
|
|
return enable[index] == 0;
|
|
|
|
|
}
|
|
|
|
|
} dist_atten_enable;
|
|
|
|
|
BitField<24, 1, u32> dist_atten_enable_light_0;
|
|
|
|
|
BitField<25, 1, u32> dist_atten_enable_light_1;
|
|
|
|
|
BitField<26, 1, u32> dist_atten_enable_light_2;
|
|
|
|
|
BitField<27, 1, u32> dist_atten_enable_light_3;
|
|
|
|
|
BitField<28, 1, u32> dist_atten_enable_light_4;
|
|
|
|
|
BitField<29, 1, u32> dist_atten_enable_light_5;
|
|
|
|
|
BitField<30, 1, u32> dist_atten_enable_light_6;
|
|
|
|
|
BitField<31, 1, u32> dist_atten_enable_light_7;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
bool IsDistAttenEnabled(unsigned index) const {
|
|
|
|
|
const unsigned enable[] = { dist_atten_enable_light_0, dist_atten_enable_light_1,
|
|
|
|
|
dist_atten_enable_light_2, dist_atten_enable_light_3,
|
|
|
|
|
dist_atten_enable_light_4, dist_atten_enable_light_5,
|
|
|
|
|
dist_atten_enable_light_6, dist_atten_enable_light_7 };
|
|
|
|
|
return enable[index] == 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
union {
|
|
|
|
|
BitField<0, 8, u32> index; ///< Index at which to set data in the LUT
|
|
|
|
|