Skip to content

Commit

Permalink
Fixed GLSL splitting and decl parsing functions (#744)
Browse files Browse the repository at this point in the history
  • Loading branch information
RodZill4 committed Feb 2, 2025
1 parent b45e0bb commit f4e0d4e
Showing 1 changed file with 19 additions and 5 deletions.
24 changes: 19 additions & 5 deletions addons/material_maker/engine/nodes/gen_base.gd
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class ShaderCode:
reverse_declarations.reverse()
for d in reverse_declarations:
var declaration_name : String = MMGenBase.get_glsl_declaration_name(d)
if code == "" or code.find(declaration_name) != -1 or rv.find(declaration_name) != -1:
if code == "" or declaration_name == "" or code.find(declaration_name) != -1 or rv.find(declaration_name) != -1:
rv = "\n// '" + declaration_name + "'\n" + d + "\n" + rv
added_declaration = true
if added_declaration:
Expand Down Expand Up @@ -622,8 +622,13 @@ static func split_glsl(s : String) -> Array[String]:
s = s.right(-next_semicolon-1)
elif next_bracket != -1:
var closing_bracket = find_matching_parenthesis(s, next_bracket, '{', '}')
a.append(s.left(closing_bracket+1))
var d : String = s.left(closing_bracket+1)
s = s.right(-closing_bracket-1)
s = s.strip_edges()
if s.length() > 0 and s[0] == ";":
d += ";"
s = s.trim_prefix(";")
a.append(d)
else:
print("Error: "+s)
break
Expand All @@ -632,9 +637,18 @@ static func split_glsl(s : String) -> Array[String]:

static func get_glsl_declaration_name(s : String) -> String:
var words = s.split(" ", false)
if words.size() > 2 and words[0] == "const":
return words[2]
return s.split(" ")[1].split("(")[0]
if words.size() > 2 and (words[0] == "const" or words[0] == "uniform" or words[0] == "varying"):
var d : String = words[2]
var bracket_pos = d.find("[")
if bracket_pos >= 0:
d = d.substr(0, bracket_pos)
return d
var split : PackedStringArray = s.split(" ")
if split.size() > 1:
split = split[1].split("(")
if split.size() > 1:
return split[0]
return ""

func _serialize(data: Dictionary) -> Dictionary:
print("cannot save "+str(name))
Expand Down

0 comments on commit f4e0d4e

Please sign in to comment.