This commit is contained in:
Spartan322
2025-06-20 02:38:24 -04:00
699 changed files with 21288 additions and 9565 deletions

View File

@@ -455,6 +455,8 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene
case SL::Node::NODE_TYPE_SHADER: {
SL::ShaderNode *pnode = (SL::ShaderNode *)p_node;
// Render modes.
for (int i = 0; i < pnode->render_modes.size(); i++) {
if (p_default_actions.render_mode_defines.has(pnode->render_modes[i]) && !used_rmode_defines.has(pnode->render_modes[i])) {
r_gen_code.defines.push_back(p_default_actions.render_mode_defines[pnode->render_modes[i]]);
@@ -471,6 +473,21 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene
}
}
// Stencil modes.
for (int i = 0; i < pnode->stencil_modes.size(); i++) {
if (p_actions.stencil_mode_values.has(pnode->stencil_modes[i])) {
Pair<int *, int> &p = p_actions.stencil_mode_values[pnode->stencil_modes[i]];
*p.first = p.second;
}
}
// Stencil reference value.
if (p_actions.stencil_reference && pnode->stencil_reference != -1) {
*p_actions.stencil_reference = pnode->stencil_reference;
}
// structs
for (int i = 0; i < pnode->vstructs.size(); i++) {
@@ -1465,6 +1482,7 @@ Error ShaderCompiler::compile(RS::ShaderMode p_mode, const String &p_code, Ident
SL::ShaderCompileInfo info;
info.functions = ShaderTypes::get_singleton()->get_functions(p_mode);
info.render_modes = ShaderTypes::get_singleton()->get_modes(p_mode);
info.stencil_modes = ShaderTypes::get_singleton()->get_stencil_modes(p_mode);
info.shader_types = ShaderTypes::get_singleton()->get_types();
info.global_shader_uniform_type_func = _get_global_shader_uniform_type;
info.base_varying_index = actions.base_varying_index;