From cc00ee09b9ac3cae94f878ceeadaba72ba7142fd Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 16 Oct 2026 20:02:37 +0200 Subject: [PATCH] cultmath: generator maps integer vector and matrix return types to HLSL (applied) Co-Authored-By: Claude Sonnet 5.5 --- packages/cultmath/tools/device/gen.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/cultmath/tools/device/gen.py b/packages/cultmath/tools/device/gen.py index 62632beb..a2ae8104 100644 --- a/packages/cultmath/tools/device/gen.py +++ b/packages/cultmath/tools/device/gen.py @@ -79,15 +79,14 @@ def body(sig, n, win, wout, defs, glsl): ret, name, params = m.group(1), m.group(2), [p.strip() for p in m.group(3).split(',') if p.strip()] lines, offset, args = [], 0, [] for j, p in enumerate(params): - ptype = p if glsl else re.sub(r'\bvec([234])\b', r'float\1', re.sub(r'\bmat3\b', 'float3x3', p)) - ptype = ptype if glsl else re.sub(r'\bivec([234])\b', r'int\1', ptype) + ptype = p if glsl else hlsl_type(p) lines.append(' %s a%d;' % (ptype, j)) for leaf in leaves(p, defs): word = ('In.a[b + %du]' if glsl else 'In[b + %d]') % offset lines.append(' a%d%s = %s;' % (j, access(leaf, glsl), read(leaf[1], glsl, word))) offset += 1 args.append('a%d' % j) - rtype = ret if glsl else re.sub(r'\bvec([234])\b', r'float\1', re.sub(r'\bmat3\b', 'float3x3', ret)) + rtype = ret if glsl else hlsl_type(ret) lines.append(' %s r = %s(%s);' % (rtype, name, ', '.join(args))) produced = leaves(ret, defs) for k, leaf in enumerate(produced):