Skip to content

Commit 9468cfe

Browse files
committed
Bug: Fix golfing name starting with underscore to single character.
E.g. "float _longName = 1.0;" => "float _ = 1.0;"
1 parent f248141 commit 9468cfe

File tree

4 files changed

+145
-144
lines changed

4 files changed

+145
-144
lines changed

ShaderShrinker/Shrinker.Parser/Optimizations/GolfExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ private static Dictionary<string, string> BuildGolfRenameMap(SyntaxNode rootNode
197197
foreach (var kvp in nameMap.Where(o => o.Value.Length > 1))
198198
{
199199
// Try to abbreviate to one letter.
200-
var candidate = $"{kvp.Value.First()}";
200+
var candidate = $"{kvp.Value.Replace("_", null).First()}";
201201

202202
const string Letters = "abcdefghijlkmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
203203
if (nameMap.ContainsValue(candidate))

ShaderShrinker/UnitTests/GolfTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public void CheckGolfingCodeNames(
6161
"void foo1() { } void foo2() { }|void f() { } void a() { }",
6262
"void foo() { } void main() { foo(); }|void f() { } void main() { f(); }",
6363
"void foo() { int a = 1; }|void f() { int a = 1; }",
64+
"void foo() { int _a = 1; }|void f() { int a = 1; }",
6465
"void main() { int number = 1; }|void main() { int n = 1; }",
6566
"int foo() { int number = 1; number++; return number; }|int f() { int n = 1; n++; return n; }",
6667
"int foo() { int number = 1; return ++number; }|int f() { int n = 1; return ++n; }",
Lines changed: 86 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Processed by 'GLSL Shader Shrinker' (Shrunk by 636 characters)
1+
// Processed by 'GLSL Shader Shrinker' (Shrunk by 634 characters)
22
// (https://github.com/deanthecoder/GLSLShaderShrinker)
33

44
#define v3 vec3
@@ -11,7 +11,7 @@
1111
#define _f float
1212
#define iR iResolution
1313
#define z0 min(iTime, 0.)
14-
#define X(x) clamp(x, 0., 1.)
14+
#define Y(x) clamp(x, 0., 1.)
1515
#define S(x) SS(0., 1., x)
1616

1717
_f T,
@@ -24,96 +24,96 @@ struct Hit {
2424
int id;
2525
};
2626

27-
#define L(a) if (a.d < h.d) h = a
27+
#define M(a) if (a.d < h.d) h = a
2828

29-
mat2 W(_f a) {
30-
v2 u = cos(v2(a, a - 1.5705));
31-
RET mat2(u, -u.y, u.x);
29+
mat2 X(_f a) {
30+
v2 w = cos(v2(a, a - 1.5705));
31+
RET mat2(w, -w.y, w.x);
3232
}
3333

34-
vec2 P(v2 p, _f n) {
34+
vec2 Q(v2 p, _f n) {
3535
_f t = 3.141 / n,
3636
a = mod(atan(p.y, p.x) + t, 2. * t) - t;
3737
RET LNG(p) * v2(cos(a), sin(a));
3838
}
3939

40-
float l(v3 p) {
40+
float k(v3 p) {
4141
v3 q = abs(p) - v3(.15, .08, .025);
4242
RET LNG(MX(q, 0.)) + min(MX(q.x, MX(q.y, q.z)), 0.);
4343
}
4444

45-
float k(v3 p, _f h, _f r) {
45+
float m(v3 p, _f h, _f r) {
4646
p.x -= clamp(p.x, 0., h);
4747
RET LNG(p) - r;
4848
}
4949

50-
float Z(v3 p) {
50+
float sa(v3 p) {
5151
p = abs(p);
5252
RET (p.x + p.y + p.z - .3) * .577;
5353
}
5454

55-
float m(v3 p) {
56-
p.yz = P(p.yz, 3.);
55+
float o(v3 p) {
56+
p.yz = Q(p.yz, 3.);
5757
p.x = abs(p.x) - .9;
5858
p.y--;
59-
p.xy *= W(-.5);
60-
_f d = MX(k(p, 1.2, .12 * S(p.x + .5)), abs(p.z) - .06);
61-
p.xy *= W(-2.725);
59+
p.xy *= X(-.5);
60+
_f d = MX(m(p, 1.2, .12 * S(p.x + .5)), abs(p.z) - .06);
61+
p.xy *= X(-2.725);
6262
p.x += .1;
6363
p.y -= .05;
64-
RET min(d, MX(k(p, .9, .1 * (1.1 - S(p.x - .2))), abs(p.z) - .04));
64+
RET min(d, MX(m(p, .9, .1 * (1.1 - S(p.x - .2))), abs(p.z) - .04));
6565
}
6666

67-
vec3 R(v3 V, v2 UV) {
68-
v3 f = NM(v3(0, 2, 0) - V),
67+
vec3 U(v3 W, v2 UV) {
68+
v3 f = NM(v3(0, 2, 0) - W),
6969
r = NM(cross(v3(0, 1, 0), f));
7070
RET NM(f + r * UV.x + cross(f, r) * UV.y);
7171
}
7272

73-
Hit J(v3 p) {
73+
Hit K(v3 p) {
7474
p.y -= 2.;
7575
Hit h = Hit(abs(p.y + 2.), 1);
76-
v3 O = p;
77-
_f b, x, d, s, i, tp, w,
76+
v3 P = p;
77+
_f j, x, d, s, i, tp, y,
7878
t = (5. - clamp(T - 3., 0., 5.)) * 1.25664;
79-
p.yz *= W((sin(t) + sin(2. * t)) * sign(p.x) * 1.4);
79+
p.yz *= X((sin(t) + sin(2. * t)) * sign(p.x) * 1.4);
8080
t = MX(0., T - 8.);
81-
b = X((t - 1.) / 8.);
82-
v2 sn = S(v2(b * 4., b * 4.5 - 3.)) * .7,
81+
j = Y((t - 1.) / 8.);
82+
v2 sn = S(v2(j * 4., j * 4.5 - 3.)) * .7,
8383
f = p.x - sn * sign(p.x),
84-
D = -abs(p.x) - .01 + sn;
84+
E = -abs(p.x) - .01 + sn;
8585
p.x = p.x < 0. ? min(0., f.x) : MX(0., f.x);
8686
x = abs(p.x) - .6;
8787
d = MX(MX(dot(v2(1.5, .6), v2(LNG(p.yz), -x)), -x), MX(LNG(p.yz) - .5, 1.2 - abs(p.x)));
88-
L(Hit(min(d, m(p)), 3));
88+
M(Hit(min(d, o(p)), 3));
8989
s = LNG(p) - 1.;
90-
d = MX(min(LNG(v2(s, dot(sin(p * 26.), cos(p.zxy * 26.)) * .03)) - .02, abs(s + .08) - .05), D.x);
91-
p.x = O.x < 0. ? min(0., f.y) : MX(0., f.y);
90+
d = MX(min(LNG(v2(s, dot(sin(p * 26.), cos(p.zxy * 26.)) * .03)) - .02, abs(s + .08) - .05), E.x);
91+
p.x = P.x < 0. ? min(0., f.y) : MX(0., f.y);
9292
i = mod(floor(atan(-p.y, p.z) * 3.183 + 10.) + 2., 20.);
93-
tp = X(b * 4. - 2.) * 20.;
94-
w = MX(abs(LNG(p) - .65) - .05, D.y + .01 + .13 * step(i, tp) * min(tp - i, 1.));
95-
p.yz = P(p.yz, 20.);
93+
tp = Y(j * 4. - 2.) * 20.;
94+
y = MX(abs(LNG(p) - .65) - .05, E.y + .01 + .13 * step(i, tp) * min(tp - i, 1.));
95+
p.yz = Q(p.yz, 20.);
9696
p.y -= .64;
97-
d = min(d, MX(w, -l(p)));
98-
p = O;
99-
p.yz *= W(t * .1);
100-
mat2 r = W(2.5);
101-
w = 1e7;
97+
d = min(d, MX(y, -k(p)));
98+
p = P;
99+
p.yz *= X(t * .1);
100+
mat2 r = X(2.5);
101+
y = 1e7;
102102
for (i = z0; i < 4.; i++) {
103103
p -= .02;
104-
p.xy *= W(3.7 + i);
104+
p.xy *= X(3.7 + i);
105105
p.yz *= r;
106-
w = min(w, Z(p) - .005);
106+
y = min(y, sa(p) - .005);
107107
}
108108

109-
g += 8e-5 / (.001 + w * w);
110-
L(Hit(w, 4));
111-
p = O;
109+
g += 8e-5 / (.001 + y * y);
110+
M(Hit(y, 4));
111+
p = P;
112112
p.x = abs(p.x);
113113
p.y += cos(p.x + t) * .05;
114-
w = LNG(p.yz) - .01;
115-
g += 5e-4 / (.001 + w * w);
116-
L(Hit(min(d, w), 2));
114+
y = LNG(p.yz) - .01;
115+
g += 5e-4 / (.001 + y * y);
116+
M(Hit(min(d, y), 2));
117117
RET h;
118118
}
119119

@@ -122,42 +122,42 @@ vec3 N(v3 p, _f t) {
122122
v3 n = v3(0);
123123
for (int i = min(iFrame, 0); i < 4; i++) {
124124
v3 e = .005773 * (2. * v3(((i + 3) >> 1) & 1, (i >> 1) & 1, i & 1) - 1.);
125-
n += e * J(p + e * h).d;
125+
n += e * K(p + e * h).d;
126126
}
127127

128128
RET NM(n);
129129
}
130130

131-
float sw(v3 p, v3 H) {
131+
float sw(v3 p, v3 I) {
132132
_f i, h,
133133
s = 1.,
134134
t = .1;
135135
for (i = z0; i < 15.; i++) {
136-
h = J(t * H + p).d;
136+
h = K(t * I + p).d;
137137
s = min(s, 15. * h / t);
138138
t += h;
139139
if (s < .001 || t > 10.) break;
140140
}
141141

142-
RET X(s);
142+
RET Y(s);
143143
}
144144

145-
float j(v3 p, v3 n, _f h) { RET J(h * n + p).d / h; }
145+
float l(v3 p, v3 n, _f h) { RET K(h * n + p).d / h; }
146146

147-
vec3 vg(v3 c, v2 y) {
148-
v2 q = y.xy / iR.xy;
147+
vec3 vg(v3 c, v2 z) {
148+
v2 q = z.xy / iR.xy;
149149
c *= .5 + .5 * pow(16. * q.x * q.y * (1. - q.x) * (1. - q.y), .4);
150150
RET c;
151151
}
152152

153-
float z(v3 v) { RET exp(dot(v, v) * -.002); }
153+
float B(v3 v) { RET exp(dot(v, v) * -.002); }
154154

155-
vec3 I(v3 p, v3 U, _f d, Hit h) {
155+
vec3 J(v3 p, v3 V, _f d, Hit h) {
156156
v3 c,
157-
H = NM(v3(6, 35, -10) - p),
157+
I = NM(v3(6, 35, -10) - p),
158158
n = N(p, d);
159-
_f _, F, G, C,
160-
E = g,
159+
_f b, G, H, D,
160+
F = g,
161161
SP = 1.;
162162
if (h.id == 2) {
163163
c = v3(.2);
@@ -167,60 +167,60 @@ vec3 I(v3 p, v3 U, _f d, Hit h) {
167167
else if (h.id == 3) c = v3(.6);
168168
else c = v3(.18, .02, .34);
169169

170-
_ = mix(j(p, n, .2), j(p, n, 2.), .7);
171-
F = X(.1 + .9 * dot(H, n)) * (.3 + .7 * sw(p, H)) * (.3 + .7 * _);
172-
G = X(.1 + .9 * dot(H * v3(-1, 1, -1), n)) + pow(X(dot(U, reflect(H, n))), 10.) * SP;
173-
C = SS(.7, 1., 1. + dot(U, n)) * .5;
174-
g = E;
175-
RET mix((F * v3(.43, .29, .52) + G * _ * v3(2.11, 1.69, 1.48)) * c, v3(.05), C);
170+
b = mix(l(p, n, .2), l(p, n, 2.), .7);
171+
G = Y(.1 + .9 * dot(I, n)) * (.3 + .7 * sw(p, I)) * (.3 + .7 * b);
172+
H = Y(.1 + .9 * dot(I * v3(-1, 1, -1), n)) + pow(Y(dot(V, reflect(I, n))), 10.) * SP;
173+
D = SS(.7, 1., 1. + dot(V, n)) * .5;
174+
g = F;
175+
RET mix((G * v3(.43, .29, .52) + H * b * v3(2.11, 1.69, 1.48)) * c, v3(.05), D);
176176
}
177177

178-
vec4 K(inout vec3 p, v3 U, _f s, _f M) {
178+
vec4 L(inout vec3 p, v3 V, _f s, _f O) {
179179
_f i,
180180
d = .01;
181181
g = 0.;
182182
Hit h;
183183
for (i = z0; i < s; i++) {
184-
h = J(p);
184+
h = K(p);
185185
if (abs(h.d) < .0015) break;
186186
d += h.d;
187-
if (d > M) RET vec4(0);
188-
p += h.d * U;
187+
if (d > O) RET vec4(0);
188+
p += h.d * V;
189189
}
190190

191-
_f Q = mix(1., .3, (sin(T) * .5 + .5) * SS(13., 15., T));
192-
RET vec4(pow(g, Q) * v3(.73, .5, .88) + I(p, U, d, h), h.id);
191+
_f R = mix(1., .3, (sin(T) * .5 + .5) * SS(13., 15., T));
192+
RET vec4(pow(g, R) * v3(.73, .5, .88) + J(p, V, d, h), h.id);
193193
}
194194

195-
vec3 Y(v3 V, v3 U) {
196-
v3 p = V;
197-
vec4 o = K(p, U, 1e2, 50.);
198-
o.rgb *= z(p - V);
199-
if (o.w > 1.) {
200-
U = reflect(U, N(p, LNG(p - V)));
201-
p += U * .01;
202-
o += mix(.2, .3, o.w - 2.) * K(p, U, 50., 10.) * z(V - p);
195+
vec3 Z(v3 W, v3 V) {
196+
v3 p = W;
197+
vec4 u = L(p, V, 1e2, 50.);
198+
u.rgb *= B(p - W);
199+
if (u.w > 1.) {
200+
V = reflect(V, N(p, LNG(p - W)));
201+
p += V * .01;
202+
u += mix(.2, .3, u.w - 2.) * L(p, V, 50., 10.) * B(W - p);
203203
}
204204

205-
RET MX(v3(0), o.rgb);
205+
RET MX(v3(0), u.rgb);
206206
}
207207

208-
void mainImage(out vec4 B, v2 y) {
208+
void mainImage(out vec4 C, v2 z) {
209209
T = mod(iTime, 30.);
210-
v3 o,
211-
V = mix(v3(1, 2, -4), v3(0, 3.5, -3), S(T / 4.));
212-
v2 UV = (y - .5 * iR.xy) / iR.y;
213-
o = Y(V, R(V, UV));
210+
v3 u,
211+
W = mix(v3(1, 2, -4), v3(0, 3.5, -3), S(T / 4.));
212+
v2 UV = (z - .5 * iR.xy) / iR.y;
213+
u = Z(W, U(W, UV));
214214
#ifdef A
215-
if (fwidth(o.r) > .03) {
215+
if (fwidth(u.r) > .03) {
216216
for (_f dx = z0; dx <= 1.; dx++) {
217217
for (_f dy = z0; dy <= 1.; dy++)
218-
o += Y(V, R(V, UV + (v2(dx, dy) - .5) / iR.xy));
218+
u += Z(W, U(W, UV + (v2(dx, dy) - .5) / iR.xy));
219219
}
220220

221-
o /= 5.;
221+
u /= 5.;
222222
}
223223

224224
#endif
225-
B = vec4(vg(pow(o, v3(.45)) * X(iTime), y), 1);
225+
C = vec4(vg(pow(u, v3(.45)) * Y(iTime), z), 1);
226226
}

0 commit comments

Comments
 (0)