Skip to content

Commit 16d6d47

Browse files
committed
Rewrite decode32 again with a hybrid approach
1 parent 951824c commit 16d6d47

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

src/backend/mode_gpu.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -320,13 +320,12 @@
320320
' int b = int(rgba.b);',
321321
' int a = int(rgba.a);',
322322
' int sign = a > 127 ? -1 : 1;',
323-
' int exponent = 2 * (a > 127 ? a - 128 : a) + (b > 127 ? 1 : 0);',
324-
' if (exponent == 0) return float(sign) * 0.0;',
325-
' exponent -= 127;',
326-
' float f = exp2(float(exponent));',
327-
' f += float(b > 127 ? b - 128 : b) * exp2(float(exponent-7));',
328-
' f += float(g) * exp2(float(exponent-15));',
329-
' f += float(r) * exp2(float(exponent-23));',
323+
' float exponent = 2.0 * actuallyMod(rgba.a,128.0) + step(128.0,rgba.b) - 127.0;',
324+
' if (abs(exponent + 127.0) < 0.001) return 0.0;',
325+
' float f = exp2(exponent);',
326+
' f += float(b > 127 ? b - 128 : b) * exp2(exponent-float(7));',
327+
' f += float(g) * exp2(exponent-float(15));',
328+
' f += float(r) * exp2(exponent-float(23));',
330329
' f *= float(sign);',
331330
' return f;',
332331
'}',

0 commit comments

Comments
 (0)