Fix crash with OpenGL ES 1.x

This commit is contained in:
rdb 2009-07-01 12:32:04 +00:00
parent d8fe8dda6a
commit 71dcf4bc55
1 changed files with 4 additions and 2 deletions

View File

@ -6681,6 +6681,7 @@ set_state_and_transform(const RenderState *target,
_target_rs = target;
_target_shader = DCAST(ShaderAttrib, _target_rs->get_attrib_def(ShaderAttrib::get_class_slot()));
#ifndef OPENGLES_1
if (_target_shader->auto_shader()) {
// If we don't have a generated shader, make sure we have a ShaderGenerator, then generate the shader.
if (_target_rs->_generated_shader == NULL) {
@ -6691,6 +6692,7 @@ set_state_and_transform(const RenderState *target,
}
_target_shader = DCAST(ShaderAttrib, _target_rs->_generated_shader);
}
#endif
int alpha_test_slot = AlphaTestAttrib::get_class_slot();
if (_target_rs->get_attrib(alpha_test_slot) != _state_rs->get_attrib(alpha_test_slot) ||
@ -6811,14 +6813,14 @@ set_state_and_transform(const RenderState *target,
_state_mask.set_bit(color_blend_slot);
}
#ifndef OPENGLES_1
if (_target_shader != _state_shader) {
//PStatTimer timer(_draw_set_state_shader_pcollector);
#ifndef OPENGLES_1
do_issue_shader();
#endif
_state_shader = _target_shader;
_state_mask.clear_bit(TextureAttrib::get_class_slot());
}
#endif
int texture_slot = TextureAttrib::get_class_slot();
if (_target_rs->get_attrib(texture_slot) != _state_rs->get_attrib(texture_slot) ||