浏览代码

fix crash when deleting shader from material, fixes #1631

Juan Linietsky 10 年之前
父节点
当前提交
54ed432913
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      scene/resources/material.cpp

+ 1 - 1
scene/resources/material.cpp

@@ -534,7 +534,7 @@ void ShaderMaterial::set_shader(const Ref<Shader>& p_shader) {
 	if (shader.is_valid())
 		shader->disconnect(SceneStringNames::get_singleton()->changed,this,SceneStringNames::get_singleton()->_shader_changed);
 	shader=p_shader;
-	VS::get_singleton()->material_set_shader(material,shader->get_rid());
+	VS::get_singleton()->material_set_shader(material,shader.is_valid()?shader->get_rid():RID());
 	if (shader.is_valid()) {
 		shader->connect(SceneStringNames::get_singleton()->changed,this,SceneStringNames::get_singleton()->_shader_changed);
 	}