From a133fb11c6de8b7aa3c47bdfe405294f2136d4fb Mon Sep 17 00:00:00 2001 From: DanielGavin Date: Sat, 20 Jul 2019 03:40:29 +0200 Subject: [PATCH] Update bgfx_shader.sh (#1819) New matrix function operations. --- src/bgfx_shader.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/bgfx_shader.sh b/src/bgfx_shader.sh index 1f799e96a..d2641968d 100644 --- a/src/bgfx_shader.sh +++ b/src/bgfx_shader.sh @@ -47,6 +47,7 @@ # define bvec3 bool3 # define bvec4 bool4 + # if BGFX_SHADER_LANGUAGE_HLSL > 4 # define REGISTER(_type, _reg) register(_type[_reg]) # else @@ -584,6 +585,44 @@ mat4 mtxFromCols(vec4 _0, vec4 _1, vec4 _2, vec4 _3) #endif // BGFX_SHADER_LANGUAGE_GLSL } +mat3 mtxFromCols(vec3 _0, vec3 _1, vec3 _2) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return mat3(_0, _1, _2); +#else + return transpose(mat3(_0, _1, _2) ); +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + +vec4 mtxGetRow(mat4 _0, uint row) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return vec4(_0[0][row], _0[1][row], _0[2][row], _0[3][row]); +#else + return vec4(_0[row]); +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + +vec4 mtxGetColumn(mat4 _0, uint column) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return vec4(_0[column]); +#else + return vec4(_0[0][column], _0[1][column], _0[2][column], _0[3][column]); +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + +float mtxGetElement(mat4 _0, uint column, uint row) +{ +#if BGFX_SHADER_LANGUAGE_GLSL + return _0[column][row]; +#else + return _0[row][column]; +#endif // BGFX_SHADER_LANGUAGE_GLSL +} + + + uniform vec4 u_viewRect; uniform vec4 u_viewTexel; uniform mat4 u_view;