Releases: pema99/UnityShaderParser
Releases · pema99/UnityShaderParser
0.6.2
0.6.1
Full Changelog: 0.6.0...0.6.1
- Added support for
PackageRequirementsblocks in ShaderLab code (https://docs.unity3d.com/Manual/SL-PackageRequirements.html) - Fixed a small bug in the printing of ColorMask in ShaderLabPrinter.
- Add newlines after program blocks in ShaderLabPrinter.
0.6.0
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 functionShaderLabSyntaxNode.GetPrettyPrintedCodethat 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.ProgramBlockandTokenKind.IncludeBlockhave been removed in favor of specialized variants likeTokenKind.HlslProgramBlock.HLSLProgramBlockandHLSLIncludeBlockhave a new fieldKindwhich describes which kind of code the block represents. - Breaking: Marked
ShaderPassNode,ShaderLabCommandNodeandShaderLabBasicToggleCommandNodeasabstract, and remove their associated methods fromShaderLabSyntaxVisitor. 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, calledPrintingUtil.GetEnumNameTypeErased.
0.5.4
0.5.3
Fix a bug where mul-assign (*=) was parsed as a single asterisk (*). Thanks to @pashanhenlei for spotting.
0.5.2
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
0.5.0
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
IdentifierNodetype and use it in place of raw strings wherever the syntax tree stores identifiers.IdentifierNodecan 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 changingdecl.Nametodecl.Name.Identifierordecl.Name.ToString().
Full Changelog: 0.4.1...0.5.0
0.4.1
Fix bug where sampler2d was parsed as user defined type instead of a predefined type
Full Changelog: 0.4.0...0.4.1