Releases: deanthecoder/GLSLShaderShrinker
Releases · deanthecoder/GLSLShaderShrinker
Release_2_0
Features:
- Complete rewrite of the UI and upgrade to .NET 7.0, adding support for OS X (ARM M1/M2).
- Allow in-place editing of the source GLSL.
- Recycle output GLSL back to the source pane.
- Revamp the Hint and Tips feature.
GLSL Shader Shrinker v0.19-alpha
Features:
- Dot products with two constant vectors (or one with a single unit value) are simplified.
E.g.
"f = dot(vec2(1, 2), vec2(3,4))" => "f = 11.0"
"f = dot(vec2(0, 1), v)" => "f = v.y"
Bug Fixes:
- Prevent 'uniform' variables having their names GOLFed.
- Fix golfing name starting with underscore to single character.
- Hint was incorrectly suggesting 'mainImage()' could be inlined.
GLSL Shader Shrinker v0.18-alpha
Features:
- Experimental support for code GOLFing.
- Last-used Shadertoy ID now remembered.
- Full Shadertoy shader paths now supported during import.
Custom options dialog can now load from predefined 'preset' files.
Bug Fixes:
- Deep if/else statements could cause incorrect use of braces.
GLSL Shader Shrinker v0.17-alpha
Features:
- Support output to C-style strings
- Custom options dialog can now load from predefined 'preset' files.
Bug Fixes:
- Unable to perform vector arithmetic when one side has multi-value expression.
Other:
- Removing a function will now also remove its preceding comment.
- Include the one-click publisher settings.
GLSL Shader Shrinker v0.16-alpha
Features:
- This installer hosts a self-contained single-file x64 version of the app, hopefully avoiding the need for users to install and .NET runtimes.
Bug Fixes:
- Prevent inlining a const variable if a child variable with the same name exists.
- Don't make variables const if modified using array accessor.
- Replacing function call with its 'return' value was failing for vector arguments.
GLSL Shader Shrinker v0.15-alpha
Features:
- Even more cases where math results can be precalculated:
clamp, length, normalize, floor, ceil, trunc, and fract.
GLSL Shader Shrinker v0.14-alpha
Features:
- Hint when calls to a function all use the same constant parameter.
- Attempt to move a parameter into the function definition if all callers pass the same value.
- Simplify single-element vector to float if used in further vector arithmetic.
- Pre-calculate the results of a vector and vector.
- Pre-calculate the results of a float and vector.
- Pre-calculate simple 'sign(...)' expressions.
- Detect more cases where simple math can be evaluated.
GLSL Shader Shrinker v0.13-alpha
Bug Fixes:
- Allow parsing of function definitions containing params with no param names. (E.g. 'void myFunc(int, int);')
- Prevent inlining const arrays.
- Avoid spurious code changes during 'shrink'. (Modifying an inlined constant would modify all other inlined instances.)
GLSL Shader Shrinker v0.12-alpha
Features:
- New hint - Detect function calls that may be replaced with a constant.
- New optimization - Replace function calls that can be replaced with a constant.
GLSL Shader Shrinker v0.11-alpha
Features:
- More post-optimizing code GOLFing 'hints'.
- More math functions which can have their values precalculated (sin, cos, tan, asin, acos, atan, radians, degrees).
E,g.
float segments = 10; float angle = sin(3.14159 * 2.0 / segments);
simplifies to
float angle = 0.58778;