Skip to content

Commit

Permalink
[HXSL] Case-insensitive keys for var renaming.
Browse files Browse the repository at this point in the history
  • Loading branch information
TothBenoit committed Jan 14, 2025
1 parent 08a8d6c commit 54f05dc
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions hxsl/Linker.hx
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ class Linker {
case Name(n): key = n;
default:
}
var v2 = varMap.get(key);
var ukey = key.toLowerCase();
var v2 = varMap.get(ukey);
var vname = v.name;
if( v2 != null ) {
for( vm in v2.merged )
Expand All @@ -130,7 +131,7 @@ class Linker {
// allocate a new unique name in the shader if already in use
var k = 2;
while( true ) {
var a = varMap.get(key + k);
var a = varMap.get(ukey + k);
if( a == null ) break;
for( vm in a.merged )
if( vm == v )
Expand All @@ -139,13 +140,14 @@ class Linker {
}
if( v.kind == Input ) {
// it's not allowed to rename an input var, let's rename existing var instead
varMap.remove(key);
varMap.set(key + k, v2);
varMap.remove(ukey);
varMap.set(ukey + k, v2);
v2.v.name += k;
v2.path += k;
} else {
vname += k;
key += k;
ukey += k;
}
} else {
v2.merged.push(v);
Expand All @@ -171,7 +173,7 @@ class Linker {
a.instanceIndex = curInstance;
a.rootShaderName = shaderName;
allVars.push(a);
varMap.set(key, a);
varMap.set(ukey, a);
switch( v2.type ) {
case TStruct(vl):
v2.type = TStruct([for( v in vl ) allocVar(v, p, shaderName, key, a).v]);
Expand Down

0 comments on commit 54f05dc

Please sign in to comment.