Releases: IrisShaders/glsl-transformer
v1.0.1 - Fix for parsing .length when not in a method call
- Fixed parsing of
.length
member access by special-casing the method call.length()
case
Full Changelog: v1.0.0...v1.0.1
v1.0.0 - Full Release
Changes since last pre-release: Normalized Profile and Output Options
- Added
getNormalizedProfile
toVersionStatement
that allows determining if the file will be compiled using core profile or not if the profile is missing depending on the specified version number - Added
isCore
andisCompatibility
to theProfile
enum - Added printing output options that can be used to add a custom header to the generated output string
Changelog: v1.0.0-pre21.2...v1.0.0
Full Release
This is the first full release of glsl-transformer. This project has been the main focus of the last year of programming projects and so far I've reached the majority of the goals I initially set for this project with some remaining items coming in a future release. It's been a great learning experience and touches on many interesting topics I've always wanted to explore in more depth. Thank you to @Burgerguy, @IMS212, @Kroppeb, Builderb0y, @coderbot16, cortex and many others in Iriscord for the feedback, support, and productive conversations. While this project was initiated for Iris, it has already been used by other projects for various purposes related to GLSL in Java. I hope many more people will find just as much joy using glsl-transformer as I had fun writing it so far.
Plans
The following items are currently planned:
- Line annotation to restore the original line numbers in the output using
#line
directives. - Comprehensive documentation about how to use glsl-transformer and how it works
- More tests
v1.0.0-pre21.2 - Fix Traversal of Empty Return Statements
The visitor was visiting the null
expression in empty return statements which throws a NPR if a method is called on the visited node like in recursive unregistering or root changing. This has been fixed in the visitor and a test has been added.
Full Changelog: v1.0.0-pre21.1...v1.0.0-pre21.2
v1.0.0-pre21.1 - Hotfix For Broken Build
The lexer tokens were not correctly updated in the previous build. This is fixed now.
Full Changelog: v1.0.0-pre21...v1.0.0-pre21.1
v1.0.0-pre21 - Version Statement Improvements
- Changed the names of the
Version
enum members to refer to GLSL versions instead of OpenGL versions - Added a method to
TranslationUnit
to fill-in a missing version statement - Added a test for verifying how version statements are built in the AST
Full Changelog: v1.0.0-pre20...v1.0.0-pre21
v1.0.0-pre20 - Small Improvements, Renames and Line Annotation WIP
- Changed printer to always append the optional
f
suffix to floats for better compatibility with some compilers - Added unfinished line annotation feature and tests (disabled)
- Renamed many parameters to be clearer (such as
clazz
ork
) - Reset the active list wildcard in the matcher's state before starting a new match. This fixes rare edge cases
Full Changelog: v1.0.0-pre19...v1.0.0-pre20
v1.0.0-pre19 - AST Build Cache Performance Improvement
- Improved AST building performance by making the build cache use an
EmptyRoot
that doesn't actually contain any indexes - Removed unused
merge
methods on various index classes - Added
build
method toASTBuilder
that takes a root instance, a CST node and a visit method function. This is used in theASTParser
for building AST nodes that are to be stored in the cache.
Full Changelog: v1.0.0-pre18.1...v1.0.0-pre19
v1.0.0-pre18.1 - List Wildcards Support in Matcher
- Added support for list wildcards in
Matcher
. When the name of the node wildcard ends with*
it matches any number of the same wildcard repeatedly.
Full Changelog: v1.0.0-pre18...v1.0.0-pre18.1
v1.0.0-pre18 - Fix Cloning and Build Cache
- Added a method for setting the cache strategy on
ASTParser
- Changed the cloning to use constructors instead of Java's internal cloning. This fixes issues where the clone would be related to the original in very sneaky ways. This also makes the cloning code much simpler and re-uses existing construction infrastructure (such as the active build root).
- Fixed the build cache to clone at the right time
Full Changelog: v1.0.0-pre17...v1.0.0-pre18
v1.0.0-pre17 - Typo Fix and Methods for Getting Template Source
- Renamed
withExternalDelcaration
towithExternalDeclaration
- Added
getSource
andgetSourceRoot
toTemplate
for querying nodes that should be marked
Full Changelog: v1.0.0-pre16...v1.0.0-pre17