Add ShaderTester, it wraps Khronos shader compiler #3446
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a thin wrapper around the the official Khronos reference shader compiler, it can process
whole directories and shaders as Strings.
There are some open questions:
It should be also possible to directly use the compiler through JNI, this would remove the limitation, that e.g. fragment shader MUST have .frag as extension.
But I don't know anything about JNI and jnigen.
Mac support is not available because, there are no binaries available for Mac.
The biggest problem is https://github.com/intrigus/libgdx/blob/9a4e6620b0d96116803b521f994d6d447e084104/extensions/gdx-tools/src/com/badlogic/gdx/tools/shadertester/ShaderTester.java#L41-L105 this is stolen from SharedLibraryLoader.getExtractedFile(). The method I copied is private so I'd have to invoke SharedLibraryLoader.getExtractedFile() through Reflection, which would remove duplicated code, but I don't like relying on Reflection.