本文整理汇总了C++中mat4::m128方法的典型用法代码示例。如果您正苦于以下问题:C++ mat4::m128方法的具体用法?C++ mat4::m128怎么用?C++ mat4::m128使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mat4
的用法示例。
在下文中一共展示了mat4::m128方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: transpose
mat4 transpose( const mat4& m )
{
mat4 res;
#ifdef SLMATH_SSE2_MSVC
const m128_t* const mp = m.m128();
m128_t* const resp = res.m128();
m128_t tmp0 = _mm_shuffle_ps(mp[0], mp[1], 0x44);
m128_t tmp2 = _mm_shuffle_ps(mp[0], mp[1], 0xEE);
m128_t tmp1 = _mm_shuffle_ps(mp[2], mp[3], 0x44);
m128_t tmp3 = _mm_shuffle_ps(mp[2], mp[3], 0xEE);
resp[0] = _mm_shuffle_ps(tmp0, tmp1, 0x88);
resp[1] = _mm_shuffle_ps(tmp0, tmp1, 0xDD);
resp[2] = _mm_shuffle_ps(tmp2, tmp3, 0x88);
resp[3] = _mm_shuffle_ps(tmp2, tmp3, 0xDD);
#else
for ( size_t j = 0 ; j < 4 ; ++j )
{
res[0][j] = m[j][0];
res[1][j] = m[j][1];
res[2][j] = m[j][2];
res[3][j] = m[j][3];
}
#endif
return res;
}