diff options
author | rdb <git@rdb.name> | 2020-11-05 19:09:33 +0300 |
---|---|---|
committer | rdb <git@rdb.name> | 2020-11-07 00:27:54 +0300 |
commit | bf71994daec81acc111d2939ddf32ab564568e47 (patch) | |
tree | 20f78bb38585767cd78e49e4b448cb78463a2d54 /reference/opt/shaders | |
parent | a20c768698836d93a86d0fe742081012b66c6afd (diff) |
GLSL: implement transpose() in GLSL 1.10 / ES 1.00
Diffstat (limited to 'reference/opt/shaders')
-rw-r--r-- | reference/opt/shaders/legacy/vert/transpose.legacy.vert | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/reference/opt/shaders/legacy/vert/transpose.legacy.vert b/reference/opt/shaders/legacy/vert/transpose.legacy.vert index d405ba70..0f9b97a6 100644 --- a/reference/opt/shaders/legacy/vert/transpose.legacy.vert +++ b/reference/opt/shaders/legacy/vert/transpose.legacy.vert @@ -13,8 +13,17 @@ attribute vec4 Position; mat4 SPIRV_Cross_workaround_load_row_major(mat4 wrap) { return wrap; } +mat4 SPIRV_Cross_Transpose(mat4 m) +{ + return mat4(m[0][0], m[1][0], m[2][0], m[3][0], m[0][1], m[1][1], m[2][1], m[3][1], m[0][2], m[1][2], m[2][2], m[3][2], m[0][3], m[1][3], m[2][3], m[3][3]); +} + void main() { - gl_Position = (((SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * _13.MVPRowMajor)) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor) * Position))) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (_13.MVPRowMajor * Position))) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor))); + mat4 _55 = _13.MVPRowMajor; + mat4 _61 = SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor); + mat4 _80 = SPIRV_Cross_Transpose(_13.MVPRowMajor) * 2.0; + mat4 _87 = SPIRV_Cross_Transpose(_61) * 2.0; + gl_Position = (((((((((((SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * _13.MVPRowMajor)) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor) * Position))) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (_13.MVPRowMajor * Position))) + (SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor)))) + (_55 * Position)) + (Position * _61)) + (Position * _55)) + (_61 * Position)) + (_80 * Position)) + (_87 * Position)) + (Position * _80)) + (Position * _87); } |