Fixed glm::step that didn't work with scalars #684

master
Christophe Riccio ago%!(EXTRA string=8 years)
parent 5dbb4470e7
commit fcbedf5058
  1. 2
      glm/detail/func_common.inl
  2. 14
      test/core/core_func_common.cpp

@ -582,7 +582,7 @@ namespace detail
template<typename genType>
GLM_FUNC_QUALIFIER genType step(genType edge, genType x)
{
return mix(static_cast<genType>(1), static_cast<genType>(0), glm::lessThan(x, edge));
return mix(static_cast<genType>(1), static_cast<genType>(0), x < edge);
}
template<length_t L, typename T, qualifier Q>

@ -527,6 +527,20 @@ namespace step_
{
int Error = 0;
// scalar
{
float const Edge = 2.0f;
float const A = glm::step(Edge, 1.0f);
Error += glm::epsilonEqual(A, 0.0f, glm::epsilon<float>()) ? 0 : 1;
float const B = glm::step(Edge, 3.0f);
Error += glm::epsilonEqual(B, 1.0f, glm::epsilon<float>()) ? 0 : 1;
float const C = glm::step(Edge, 2.0f);
Error += glm::epsilonEqual(C, 1.0f, glm::epsilon<float>()) ? 0 : 1;
}
// vec4 and float
{
for (std::size_t i = 0; i < sizeof(TestVec4Scalar) / sizeof(entry<float, glm::vec4>); ++i)

Loading…
Cancel
Save