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.
Describe the pull request
This PR allows to embed shaders as binary resources into executables. For this, the CMake support for shaders has been extended. It is now possible to define one or more shader libraries, which translate to a header file for each library. Those can be included anywhere in the project. Shader modules can be added to a library, which results in a class to be created for them. The class name derives from the shader module name, where
.
and:
characters are replaced by_
.A shader library header is private. If a shader resource should be made available to dependent projects (as in #54), a public interface granting access to the resource must be manually defined.
Shader modules can now be loaded from streams. The shader program builder API has been extended to support this, too.
As a result, the blitting compute shader required by the DirectX 12 backend is now embedded. This way, no manual copies are required for dependent projects for this shader.
Related issues