You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-28 16:07:14 +00:00
Allow passing non-variable constant to const function param in shaders
This commit is contained in:
@@ -65,6 +65,13 @@ static String _prestr(SL::DataPrecision p_pres) {
|
||||
return "";
|
||||
}
|
||||
|
||||
static String _constr(bool p_is_const) {
|
||||
if (p_is_const) {
|
||||
return "const ";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
static String _qualstr(SL::ArgumentQualifier p_qual) {
|
||||
switch (p_qual) {
|
||||
case SL::ARGUMENT_QUALIFIER_IN:
|
||||
@@ -246,9 +253,10 @@ void ShaderCompilerGLES3::_dump_function_deps(SL::ShaderNode *p_node, const Stri
|
||||
header += "(";
|
||||
|
||||
for (int i = 0; i < fnode->arguments.size(); i++) {
|
||||
if (i > 0)
|
||||
if (i > 0) {
|
||||
header += ", ";
|
||||
|
||||
}
|
||||
header += _constr(fnode->arguments[i].is_const);
|
||||
header += _qualstr(fnode->arguments[i].qualifier);
|
||||
header += _prestr(fnode->arguments[i].precision);
|
||||
header += _typestr(fnode->arguments[i].type);
|
||||
@@ -365,7 +373,7 @@ String ShaderCompilerGLES3::_dump_node_code(SL::Node *p_node, int p_level, Gener
|
||||
|
||||
for (int i = 0; i < snode->vconstants.size(); i++) {
|
||||
String gcode;
|
||||
gcode += "const ";
|
||||
gcode += _constr(true);
|
||||
gcode += _prestr(snode->vconstants[i].precision);
|
||||
gcode += _typestr(snode->vconstants[i].type);
|
||||
gcode += " " + _mkid(String(snode->vconstants[i].name));
|
||||
@@ -446,9 +454,7 @@ String ShaderCompilerGLES3::_dump_node_code(SL::Node *p_node, int p_level, Gener
|
||||
SL::VariableDeclarationNode *var_dec_node = (SL::VariableDeclarationNode *)p_node;
|
||||
|
||||
StringBuffer<> declaration;
|
||||
if (var_dec_node->is_const) {
|
||||
declaration += "const ";
|
||||
}
|
||||
declaration += _constr(var_dec_node->is_const);
|
||||
declaration += _prestr(var_dec_node->precision);
|
||||
declaration += _typestr(var_dec_node->datatype);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user