glslang-zig/hlsl
LoopDawg 6a264bed88 HLSL: implement #pragma pack_matrix(layout)
This adds support for #pragma pack_matrix() to the HLSL front end.

The pragma sets the default matrix layout for subsequent unqualified matrices
in structs or buffers. Explicit qualification overrides the pragma value. Matrix
layout is not permitted at the structure level in HLSL, so only leaves which are
matrix types can be so qualified.

Note that due to the semantic (not layout) difference in first matrix indirections
between HLSL and SPIR-V, the sense of row and column major are flipped.  That's
independent of this PR: just a factor to note.  A column_major qualifier appears
as a RowMajor member decoration in SPIR-V modules, and vice versa.
2017-08-07 12:41:44 -06:00
..
CMakeLists.txt Merge pull request #969 from d3x0r/patch-1 2017-07-04 11:00:42 -06:00
hlslAttributes.cpp HLSL: implement [unroll] and [loop] attributes 2017-05-03 13:44:40 -06:00
hlslAttributes.h HLSL: implement [unroll] and [loop] attributes 2017-05-03 13:44:40 -06:00
hlslGrammar.cpp WIP: HLSL: support global const initializers from non-constant rvalues 2017-07-11 13:41:39 -06:00
hlslGrammar.h HLSL: Translate directive [flatten] and [branch] to SPV control mask. 2017-07-06 11:31:33 +08:00
hlslOpMap.cpp HLSL: Add scoping operator, accept static member functions, and support calling them. 2017-03-11 14:13:00 -07:00
hlslOpMap.h Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
hlslParseables.cpp SPV: When passing structs of opaque types, flatten and pass the members instead. 2017-06-01 18:49:04 -06:00
hlslParseables.h Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
hlslParseHelper.cpp HLSL: implement #pragma pack_matrix(layout) 2017-08-07 12:41:44 -06:00
hlslParseHelper.h HLSL: Correct use of isPerVertexBuiltIn() to be isClipOrCullDistance(). 2017-08-04 15:32:24 -06:00
hlslScanContext.cpp HLSL: handle multiple clip/cull semantic IDs 2017-07-26 11:18:09 -06:00
hlslScanContext.h HLSL: Non-functional: the symbol field of a token was in practice unused; remove it. 2017-03-21 18:36:04 -06:00
hlslTokens.h HLSL: Implement half matrices, and map all half* -> float*. 2017-06-06 23:35:25 -06:00
hlslTokenStream.cpp HLSL: Member-functions: capture body token stream for deferred syntax/semantics. 2017-03-11 19:37:29 -07:00
hlslTokenStream.h Merge branch 'TiemoJung-semantic_handling' 2017-03-14 22:44:24 -06:00