|
|
@@ -2042,10 +2042,6 @@ set_state_and_transform(const RenderState *target_rs,
|
|
|
target_rs->get_attrib(MaterialAttrib::get_class_slot())) {
|
|
|
altered |= Shader::SSD_material;
|
|
|
}
|
|
|
- if (state_rs->get_attrib(ShaderAttrib::get_class_slot()) !=
|
|
|
- target_rs->get_attrib(ShaderAttrib::get_class_slot())) {
|
|
|
- altered |= Shader::SSD_shaderinputs;
|
|
|
- }
|
|
|
if (state_rs->get_attrib(FogAttrib::get_class_slot()) !=
|
|
|
target_rs->get_attrib(FogAttrib::get_class_slot())) {
|
|
|
altered |= Shader::SSD_fog;
|
|
|
@@ -2069,6 +2065,11 @@ set_state_and_transform(const RenderState *target_rs,
|
|
|
_state_rs = target_rs;
|
|
|
}
|
|
|
|
|
|
+ if (_shader_attrib.get_orig() != _glgsg->_target_shader || _shader_attrib.was_deleted()) {
|
|
|
+ altered |= Shader::SSD_shaderinputs;
|
|
|
+ _shader_attrib = _glgsg->_target_shader;
|
|
|
+ }
|
|
|
+
|
|
|
// Is this the first time this shader is used this frame?
|
|
|
int frame_number = ClockObject::get_global_clock()->get_frame_count();
|
|
|
if (frame_number != _frame_number) {
|