mirror of
https://github.com/godotengine/godot.git
synced 2024-11-25 13:43:15 +00:00
Fixed bug in 3D material
textures that failed to load should now load again properly
This commit is contained in:
parent
da0d4e4dea
commit
14ade5500f
@ -4962,15 +4962,19 @@ _FORCE_INLINE_ void RasterizerGLES2::_update_material_shader_params(Material *p_
|
|||||||
bool has_old = OLD;
|
bool has_old = OLD;
|
||||||
bool old_inuse=has_old && old_mparams[E->key()].inuse;
|
bool old_inuse=has_old && old_mparams[E->key()].inuse;
|
||||||
|
|
||||||
if (!has_old || !old_inuse)
|
ud.istexture=(E->get().type==ShaderLanguage::TYPE_TEXTURE || E->get().type==ShaderLanguage::TYPE_CUBEMAP);
|
||||||
|
|
||||||
|
if (!has_old || !old_inuse) {
|
||||||
keep=false;
|
keep=false;
|
||||||
|
}
|
||||||
else if (OLD->get().value.get_type()!=E->value().default_value.get_type()) {
|
else if (OLD->get().value.get_type()!=E->value().default_value.get_type()) {
|
||||||
|
|
||||||
if (OLD->get().value.get_type()==Variant::INT && E->get().type==ShaderLanguage::TYPE_FLOAT) {
|
if (OLD->get().value.get_type()==Variant::INT && E->get().type==ShaderLanguage::TYPE_FLOAT) {
|
||||||
//handle common mistake using shaders (feeding ints instead of float)
|
//handle common mistake using shaders (feeding ints instead of float)
|
||||||
OLD->get().value=float(OLD->get().value);
|
OLD->get().value=float(OLD->get().value);
|
||||||
keep=true;
|
keep=true;
|
||||||
} else if (E->value().default_value.get_type()!=Variant::NIL) {
|
} else if (!ud.istexture && E->value().default_value.get_type()!=Variant::NIL) {
|
||||||
|
|
||||||
keep=false;
|
keep=false;
|
||||||
}
|
}
|
||||||
//type changed between old and new
|
//type changed between old and new
|
||||||
@ -4984,7 +4988,6 @@ _FORCE_INLINE_ void RasterizerGLES2::_update_material_shader_params(Material *p_
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
ud.istexture=(E->get().type==ShaderLanguage::TYPE_TEXTURE || E->get().type==ShaderLanguage::TYPE_CUBEMAP);
|
|
||||||
|
|
||||||
if (keep) {
|
if (keep) {
|
||||||
ud.value=old_mparams[E->key()].value;
|
ud.value=old_mparams[E->key()].value;
|
||||||
|
Loading…
Reference in New Issue
Block a user