Skip to content

Commit 87e7f79

Browse files
authored
Merge pull request #49485 from Chaosus/shader_uniform_arrays
2 parents 073db83 + 6873eca commit 87e7f79

10 files changed

+1150
-314
lines changed

servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ void SceneShaderForwardClustered::ShaderData::get_instance_param_list(List<Rende
373373
p.info = ShaderLanguage::uniform_to_property_info(E.value);
374374
p.info.name = E.key; //supply name
375375
p.index = E.value.instance_index;
376-
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.hint);
376+
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.array_size, E.value.hint);
377377
p_param_list->push_back(p);
378378
}
379379
}
@@ -398,7 +398,7 @@ Variant SceneShaderForwardClustered::ShaderData::get_default_parameter(const Str
398398
if (uniforms.has(p_parameter)) {
399399
ShaderLanguage::ShaderNode::Uniform uniform = uniforms[p_parameter];
400400
Vector<ShaderLanguage::ConstantNode::Value> default_value = uniform.default_value;
401-
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.hint);
401+
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.array_size, uniform.hint);
402402
}
403403
return Variant();
404404
}

servers/rendering/renderer_rd/forward_mobile/scene_shader_forward_mobile.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ void SceneShaderForwardMobile::ShaderData::get_instance_param_list(List<Renderer
365365
p.info = ShaderLanguage::uniform_to_property_info(E.value);
366366
p.info.name = E.key; //supply name
367367
p.index = E.value.instance_index;
368-
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.hint);
368+
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.array_size, E.value.hint);
369369
p_param_list->push_back(p);
370370
}
371371
}
@@ -390,7 +390,7 @@ Variant SceneShaderForwardMobile::ShaderData::get_default_parameter(const String
390390
if (uniforms.has(p_parameter)) {
391391
ShaderLanguage::ShaderNode::Uniform uniform = uniforms[p_parameter];
392392
Vector<ShaderLanguage::ConstantNode::Value> default_value = uniform.default_value;
393-
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.hint);
393+
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.array_size, uniform.hint);
394394
}
395395
return Variant();
396396
}

servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -2161,7 +2161,7 @@ void RendererCanvasRenderRD::ShaderData::get_instance_param_list(List<RendererSt
21612161
p.info = ShaderLanguage::uniform_to_property_info(E.value);
21622162
p.info.name = E.key; //supply name
21632163
p.index = E.value.instance_index;
2164-
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.hint);
2164+
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.array_size, E.value.hint);
21652165
p_param_list->push_back(p);
21662166
}
21672167
}
@@ -2186,7 +2186,7 @@ Variant RendererCanvasRenderRD::ShaderData::get_default_parameter(const StringNa
21862186
if (uniforms.has(p_parameter)) {
21872187
ShaderLanguage::ShaderNode::Uniform uniform = uniforms[p_parameter];
21882188
Vector<ShaderLanguage::ConstantNode::Value> default_value = uniform.default_value;
2189-
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.hint);
2189+
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.array_size, uniform.hint);
21902190
}
21912191
return Variant();
21922192
}

servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ void RendererSceneSkyRD::SkyShaderData::get_instance_param_list(List<RendererSto
177177
p.info = ShaderLanguage::uniform_to_property_info(E.value);
178178
p.info.name = E.key; //supply name
179179
p.index = E.value.instance_index;
180-
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.hint);
180+
p.default_value = ShaderLanguage::constant_value_to_variant(E.value.default_value, E.value.type, E.value.array_size, E.value.hint);
181181
p_param_list->push_back(p);
182182
}
183183
}
@@ -202,7 +202,7 @@ Variant RendererSceneSkyRD::SkyShaderData::get_default_parameter(const StringNam
202202
if (uniforms.has(p_parameter)) {
203203
ShaderLanguage::ShaderNode::Uniform uniform = uniforms[p_parameter];
204204
Vector<ShaderLanguage::ConstantNode::Value> default_value = uniform.default_value;
205-
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.hint);
205+
return ShaderLanguage::constant_value_to_variant(default_value, uniform.type, uniform.array_size, uniform.hint);
206206
}
207207
return Variant();
208208
}

0 commit comments

Comments
 (0)