diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-12 17:01:24 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-12 17:01:24 +0200 |
commit | d4dad2b2f88968ff329145f3dab5290478bae886 (patch) | |
tree | b63e340b208e0df86a803d041f1ee97714d0e7cb | |
parent | 11798fa420f4f9612b61f9ba3e18e0162dceb01b (diff) | |
parent | 016946b552e16a43eef14b89c010d41dfc28d340 (diff) | |
download | redot-engine-d4dad2b2f88968ff329145f3dab5290478bae886.tar.gz |
Merge pull request #75957 from clayjohn/VS-default-modes
Write out render_mode even when mode is set to default in VisualShaders
-rw-r--r-- | scene/resources/visual_shader.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index 3a6d40d22c..e46b643cd1 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -2183,11 +2183,17 @@ void VisualShader::_update_shader() const { const String temp = String(info.name); if (!info.options.is_empty()) { + if (!render_mode.is_empty()) { + render_mode += ", "; + } + // Always write out a render_mode for the enumerated modes as having no render mode is not always + // the same as the default. i.e. for depth_draw_opaque, the render mode has to be declared for it + // to work properly, no render mode is an invalid option. if (modes.has(temp) && modes[temp] < info.options.size()) { - if (!render_mode.is_empty()) { - render_mode += ", "; - } render_mode += temp + "_" + info.options[modes[temp]]; + } else { + // Use the default. + render_mode += temp + "_" + info.options[0]; } } else if (flags.has(temp)) { flag_names.push_back(temp); |