Skip to content

Releases: pema99/UnityShaderParser

0.6.2

19 Dec 18:17

Choose a tag to compare

Bugfix: ParseStatements wasn't working due to an inverted loop condition.

0.6.1

01 May 20:41

Choose a tag to compare

Full Changelog: 0.6.0...0.6.1

0.6.0

01 May 01:04

Choose a tag to compare

This release contains breaking changes

Full changeset: 0.5.4...0.6.0

Changes:

  • Feature: Added ShaderLabPrinter, which can be used to pretty-print ShaderLab syntax trees. There is also a new helper function ShaderLabSyntaxNode.GetPrettyPrintedCode that invokes it.
  • Feature: Added support for the stringizing (#) operator in the embedded HLSL preprocessor.
  • Breaking: Allowed for disambiguating CG, HLSL and GLSL program blocks. TokenKind.ProgramBlock and TokenKind.IncludeBlock have been removed in favor of specialized variants like TokenKind.HlslProgramBlock. HLSLProgramBlock and HLSLIncludeBlock have a new field Kind which describes which kind of code the block represents.
  • Breaking: Marked ShaderPassNode, ShaderLabCommandNode and ShaderLabBasicToggleCommandNode as abstract, and remove their associated methods from ShaderLabSyntaxVisitor. These AST nodes don't provide additional info, and having them as concrete classes was confusing.
  • Add some more helper functions to ShaderLabSyntaxFacts.
  • Fixed a bug where ShaderLabParser would occasionally get stuck in an infinite loop.
  • Added newlines between function attributes when using HLSLPrinter.
  • Added a type-erased version of PrintingUtil.GetEnumName, called PrintingUtil.GetEnumNameTypeErased.

0.5.4

28 Apr 20:35

Choose a tag to compare

  • Fix bug where character and string literals aren't printed correctly #6
  • Fix expansion of recursively defined/delayed function-like macros #7

Thanks @pashanhenlei

0.5.3

05 Apr 18:07
95b6d19

Choose a tag to compare

Fix a bug where mul-assign (*=) was parsed as a single asterisk (*). Thanks to @pashanhenlei for spotting.

0.5.2

06 Dec 18:23
6292699

Choose a tag to compare

Fix bug where floating point literals using scientific notation with positive exponent were not parsed correctly.

Full Changelog: 0.5.1...0.5.2

0.5.1

29 Nov 12:27
a60ebf1

Choose a tag to compare

Added rudimentary support for the unity-specific #include_with_pragmas directive.

0.5.0

27 Nov 22:46

Choose a tag to compare

This is a (slight) breaking change

  • Made most of the members in HLSLPrinter protected instead of private, allowing for customization of pretty printing.
  • Introduced a new IdentifierNode type and use it in place of raw strings wherever the syntax tree stores identifiers. IdentifierNode can be implicitly converted to string, so most code should keep working, but this is technically a breaking change. If this breaks your code, the fix is usually simple, like changing decl.Name to decl.Name.Identifier or decl.Name.ToString().

Full Changelog: 0.4.1...0.5.0

0.4.1

27 Nov 15:27
8573074

Choose a tag to compare

Fix bug where sampler2d was parsed as user defined type instead of a predefined type

Full Changelog: 0.4.0...0.4.1

0.4.0

21 Nov 18:07

Choose a tag to compare

Expanded the IPreProcessorIncludeResolver interface to handle entering and exiting files. Allows for some usecases which weren't possible before. This is a slight breaking change for those using the interface.