Set uniform default values in inspector
This commit is contained in:
@@ -267,6 +267,7 @@ public:
|
||||
|
||||
void material_set_param(RID p_material, const StringName &p_param, const Variant &p_value) {}
|
||||
Variant material_get_param(RID p_material, const StringName &p_param) const { return Variant(); }
|
||||
Variant material_get_param_default(RID p_material, const StringName &p_param) const { return Variant(); }
|
||||
|
||||
void material_set_line_width(RID p_material, float p_width) {}
|
||||
|
||||
|
||||
@@ -1419,6 +1419,19 @@ Variant RasterizerStorageGLES2::material_get_param(RID p_material, const StringN
|
||||
return material->params[p_param];
|
||||
}
|
||||
|
||||
return material_get_param_default(p_material, p_param);
|
||||
}
|
||||
|
||||
Variant RasterizerStorageGLES2::material_get_param_default(RID p_material, const StringName &p_param) const {
|
||||
const Material *material = material_owner.get(p_material);
|
||||
ERR_FAIL_COND_V(!material, Variant());
|
||||
|
||||
if (material->shader) {
|
||||
if (material->shader->uniforms.has(p_param)) {
|
||||
Vector<ShaderLanguage::ConstantNode::Value> default_value = material->shader->uniforms[p_param].default_value;
|
||||
return ShaderLanguage::constant_value_to_variant(default_value, material->shader->uniforms[p_param].type);
|
||||
}
|
||||
}
|
||||
return Variant();
|
||||
}
|
||||
|
||||
|
||||
@@ -563,6 +563,7 @@ public:
|
||||
|
||||
virtual void material_set_param(RID p_material, const StringName &p_param, const Variant &p_value);
|
||||
virtual Variant material_get_param(RID p_material, const StringName &p_param) const;
|
||||
virtual Variant material_get_param_default(RID p_material, const StringName &p_param) const;
|
||||
|
||||
virtual void material_set_line_width(RID p_material, float p_width);
|
||||
virtual void material_set_next_pass(RID p_material, RID p_next_material);
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
/*************************************************************************/
|
||||
|
||||
#include "rasterizer_storage_gles3.h"
|
||||
|
||||
#include "core/engine.h"
|
||||
#include "core/project_settings.h"
|
||||
#include "rasterizer_canvas_gles3.h"
|
||||
@@ -2140,6 +2139,19 @@ Variant RasterizerStorageGLES3::material_get_param(RID p_material, const StringN
|
||||
if (material->params.has(p_param))
|
||||
return material->params[p_param];
|
||||
|
||||
return material_get_param_default(p_material, p_param);
|
||||
}
|
||||
|
||||
Variant RasterizerStorageGLES3::material_get_param_default(RID p_material, const StringName &p_param) const {
|
||||
const Material *material = material_owner.get(p_material);
|
||||
ERR_FAIL_COND_V(!material, Variant());
|
||||
|
||||
if (material->shader) {
|
||||
if (material->shader->uniforms.has(p_param)) {
|
||||
Vector<ShaderLanguage::ConstantNode::Value> default_value = material->shader->uniforms[p_param].default_value;
|
||||
return ShaderLanguage::constant_value_to_variant(default_value, material->shader->uniforms[p_param].type);
|
||||
}
|
||||
}
|
||||
return Variant();
|
||||
}
|
||||
|
||||
|
||||
@@ -583,6 +583,7 @@ public:
|
||||
|
||||
virtual void material_set_param(RID p_material, const StringName &p_param, const Variant &p_value);
|
||||
virtual Variant material_get_param(RID p_material, const StringName &p_param) const;
|
||||
virtual Variant material_get_param_default(RID p_material, const StringName &p_param) const;
|
||||
|
||||
virtual void material_set_line_width(RID p_material, float p_width);
|
||||
virtual void material_set_next_pass(RID p_material, RID p_next_material);
|
||||
|
||||
Reference in New Issue
Block a user