Skip to content

Releases: deanthecoder/GLSLShaderShrinker

Release_2_0

27 Oct 13:20
Compare
Choose a tag to compare

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

16 Apr 18:44
Compare
Choose a tag to compare
Pre-release

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

10 Apr 17:36
Compare
Choose a tag to compare
Pre-release

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

06 Mar 11:02
Compare
Choose a tag to compare
Pre-release

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

18 Dec 13:17
Compare
Choose a tag to compare
Pre-release

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

14 Nov 13:48
Compare
Choose a tag to compare
Pre-release

Features:

  • Even more cases where math results can be precalculated:
    clamp, length, normalize, floor, ceil, trunc, and fract.

GLSL Shader Shrinker v0.14-alpha

07 Nov 12:30
Compare
Choose a tag to compare
Pre-release

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

26 Sep 13:36
Compare
Choose a tag to compare
Pre-release

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

19 Sep 14:00
Compare
Choose a tag to compare
Pre-release

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

05 Sep 09:46
Compare
Choose a tag to compare
Pre-release

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;