/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Engine/Foundation/SimdMath/SimdVec4b.h
59 строк
3 KB
Ingrater
Clang-format fixes and update to 18.1.1 (#1234)
10 мар 2024, 15:51
Не верифицирован
10 мар 2024, 15:51
2f16acf
Код
Авторство
О чём код?
#pragma once #include <Foundation/SimdMath/SimdSwizzle.h> #include <Foundation/SimdMath/SimdTypes.h> class EZ_FOUNDATION_DLL ezSimdVec4b { public: EZ_DECLARE_POD_TYPE(); ezSimdVec4b(); // [tested] ezSimdVec4b(bool b); // [tested] ezSimdVec4b(bool x, bool y, bool z, bool w); // [tested] ezSimdVec4b(ezInternal::QuadBool b); // [tested] public: template <int N> bool GetComponent() const; // [tested] bool x() const; // [tested] bool y() const; // [tested] bool z() const; // [tested] bool w() const; // [tested] template <ezSwizzle::Enum s> ezSimdVec4b Get() const; // [tested] public: ezSimdVec4b operator&&(const ezSimdVec4b& rhs) const; // [tested] ezSimdVec4b operator||(const ezSimdVec4b& rhs) const; // [tested] ezSimdVec4b operator!() const; // [tested] ezSimdVec4b operator==(const ezSimdVec4b& rhs) const; // [tested] ezSimdVec4b operator!=(const ezSimdVec4b& rhs) const; // [tested] template <int N = 4> bool AllSet() const; // [tested] template <int N = 4> bool AnySet() const; // [tested] template <int N = 4> bool NoneSet() const; // [tested] static ezSimdVec4b Select(const ezSimdVec4b& vCmp, const ezSimdVec4b& vTrue, const ezSimdVec4b& vFalse); // [tested] public: ezInternal::QuadBool m_v; }; #if EZ_SIMD_IMPLEMENTATION == EZ_SIMD_IMPLEMENTATION_SSE # include <Foundation/SimdMath/Implementation/SSE/SSEVec4b_inl.h> #elif EZ_SIMD_IMPLEMENTATION == EZ_SIMD_IMPLEMENTATION_FPU # include <Foundation/SimdMath/Implementation/FPU/FPUVec4b_inl.h> #elif EZ_SIMD_IMPLEMENTATION == EZ_SIMD_IMPLEMENTATION_NEON # include <Foundation/SimdMath/Implementation/NEON/NEONVec4b_inl.h> #else # error "Unknown SIMD implementation." #endif