mirror of
https://github.com/g-truc/glm.git
synced 2024-12-02 04:34:34 +00:00
4137519418
- Add simd aligned_vec3 (and sse aligned_dvec3 - 2 x xmm) - Fast packed_vec3 <=> aligned_vec3 and packed_vec4 <=> aligned_vec4 conversion - Fast aligned_vec3 <=> aligned_vec4 conversion - Optimized aligned_mat x aligned_mat and aligned_mat x aligned_vec - Inverse aligned_mat3 simd version (actually slower than ssid on my computer even it has 30% less instruction ?)
49 lines
879 B
C++
49 lines
879 B
C++
#include <glm/glm.hpp>
|
|
|
|
#if GLM_CONFIG_ANONYMOUS_STRUCT == GLM_ENABLE
|
|
struct vec2;
|
|
|
|
struct swizzleStruct
|
|
{
|
|
char _buffer[1];
|
|
};
|
|
|
|
struct vec2
|
|
{
|
|
GLM_CONSTEXPR vec2() :
|
|
x(0), y(0)
|
|
{}
|
|
|
|
#if defined(_MSC_VER)
|
|
# pragma warning(push)
|
|
# pragma warning(disable: 4201) // nonstandard extension used : nameless struct/union
|
|
#endif
|
|
#if GLM_COMPILER & GLM_COMPILER_CLANG
|
|
# pragma clang diagnostic push
|
|
# pragma clang diagnostic ignored "-Wgnu-anonymous-struct"
|
|
# pragma clang diagnostic ignored "-Wnested-anon-types"
|
|
#endif
|
|
|
|
union
|
|
{
|
|
struct { float x, y; };
|
|
struct { swizzleStruct xx; };
|
|
};
|
|
|
|
#if GLM_COMPILER & GLM_COMPILER_CLANG
|
|
# pragma clang diagnostic pop
|
|
#endif
|
|
#if defined(_MSC_VER)
|
|
# pragma warning(pop)
|
|
#endif
|
|
};
|
|
#endif
|
|
|
|
// Visual C++ has a bug generating the error: fatal error C1001: An internal error has occurred in the compiler.
|
|
// vec2 Bar;
|
|
|
|
int main()
|
|
{
|
|
return 0;
|
|
}
|