forked from LeenkxTeam/LNXSDK
Patch_2
This commit is contained in:
@ -361,9 +361,14 @@ class Shader:
|
||||
def write_header(self, s):
|
||||
self.header += s + '\n'
|
||||
|
||||
def write_attrib(self, s):
|
||||
def write_attrib(self, s, unique=False):
|
||||
if unique and s in self.main_attribs:
|
||||
return
|
||||
self.main_attribs += '\t' + s + '\n'
|
||||
|
||||
def has_attrib(self, s):
|
||||
return s in self.main_attribs
|
||||
|
||||
def is_equal(self, sh):
|
||||
self.vstruct_to_vsin()
|
||||
return self.ins == sh.ins and \
|
||||
@ -394,6 +399,25 @@ class Shader:
|
||||
for e in vs:
|
||||
self.add_in('vec' + self.data_size(e['data']) + ' ' + e['name'])
|
||||
|
||||
def validate(self):
|
||||
import re
|
||||
issues = []
|
||||
|
||||
# Check for duplicate variable declarations in main_attribs
|
||||
var_pattern = re.compile(r'\b(vec[234]|float|int|mat[234])\s+(\w+)\s*[;=]')
|
||||
declared_vars = {}
|
||||
|
||||
for line in self.main_attribs.split('\n'):
|
||||
match = var_pattern.search(line)
|
||||
if match:
|
||||
var_type, var_name = match.groups()
|
||||
if var_name in declared_vars:
|
||||
issues.append(f"Duplicate variable declaration: '{var_name}' (type: {var_type})")
|
||||
else:
|
||||
declared_vars[var_name] = var_type
|
||||
|
||||
return issues
|
||||
|
||||
def get(self):
|
||||
if self.noprocessing:
|
||||
return self.main
|
||||
|
||||
Reference in New Issue
Block a user