Skip to content

Commit d4dad2b

Browse files
committed
Merge pull request #75957 from clayjohn/VS-default-modes
Write out render_mode even when mode is set to default in VisualShaders
2 parents 11798fa + 016946b commit d4dad2b

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

scene/resources/visual_shader.cpp

+9-3
Original file line numberDiff line numberDiff line change
@@ -2183,11 +2183,17 @@ void VisualShader::_update_shader() const {
21832183
const String temp = String(info.name);
21842184

21852185
if (!info.options.is_empty()) {
2186+
if (!render_mode.is_empty()) {
2187+
render_mode += ", ";
2188+
}
2189+
// Always write out a render_mode for the enumerated modes as having no render mode is not always
2190+
// the same as the default. i.e. for depth_draw_opaque, the render mode has to be declared for it
2191+
// to work properly, no render mode is an invalid option.
21862192
if (modes.has(temp) && modes[temp] < info.options.size()) {
2187-
if (!render_mode.is_empty()) {
2188-
render_mode += ", ";
2189-
}
21902193
render_mode += temp + "_" + info.options[modes[temp]];
2194+
} else {
2195+
// Use the default.
2196+
render_mode += temp + "_" + info.options[0];
21912197
}
21922198
} else if (flags.has(temp)) {
21932199
flag_names.push_back(temp);

0 commit comments

Comments
 (0)