Fix invalid HLSL for shader methods using custom types in signatures #728
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.
Closes #725
Description
This PR fixes the D2D generator producing invalid HLSL if a shader had a custom type and any static or instance methods on the shader type itself that then used that custom type in their signature. This was happening because D2D isn't using forward declarations for types (it can't, FXC doesn't support them), and the forward declarations for those methods were being generated before the actual type declarations for those custom types. This PR simply moves the type declarations to before that.