GPU: ShaderCreateInfo: Use variadic template instead of default arguments

This should reduce the issue described in T100431.
This is also cleaner and without arbitrary argument limit.
This commit is contained in:
2022-08-16 11:55:04 +02:00
parent 66822319d3
commit 42179fed71

View File

@@ -745,33 +745,16 @@ struct ShaderCreateInfo {
* Used to share parts of the infos that are common to many shaders.
* \{ */
Self &additional_info(StringRefNull info_name0,
StringRefNull info_name1 = "",
StringRefNull info_name2 = "",
StringRefNull info_name3 = "",
StringRefNull info_name4 = "",
StringRefNull info_name5 = "",
StringRefNull info_name6 = "")
Self &additional_info(StringRefNull info_name)
{
additional_infos_.append(info_name0);
if (!info_name1.is_empty()) {
additional_infos_.append(info_name1);
}
if (!info_name2.is_empty()) {
additional_infos_.append(info_name2);
}
if (!info_name3.is_empty()) {
additional_infos_.append(info_name3);
}
if (!info_name4.is_empty()) {
additional_infos_.append(info_name4);
}
if (!info_name5.is_empty()) {
additional_infos_.append(info_name5);
}
if (!info_name6.is_empty()) {
additional_infos_.append(info_name6);
}
additional_infos_.append(info_name);
return *(Self *)this;
}
template<typename... Args> Self &additional_info(StringRefNull info_name, Args... args)
{
additional_info(info_name);
additional_info(args...);
return *(Self *)this;
}