| 1582 | |
| 1583 | COVERAGE(HMM_MulM4F, 1) |
| 1584 | static inline HMM_Mat4 HMM_MulM4F(HMM_Mat4 Matrix, float Scalar) |
| 1585 | { |
| 1586 | ASSERT_COVERED(HMM_MulM4F); |
| 1587 | |
| 1588 | HMM_Mat4 Result; |
| 1589 | |
| 1590 | #ifdef HANDMADE_MATH__USE_SSE |
| 1591 | __m128 SSEScalar = _mm_set1_ps(Scalar); |
| 1592 | Result.Columns[0].SSE = _mm_mul_ps(Matrix.Columns[0].SSE, SSEScalar); |
| 1593 | Result.Columns[1].SSE = _mm_mul_ps(Matrix.Columns[1].SSE, SSEScalar); |
| 1594 | Result.Columns[2].SSE = _mm_mul_ps(Matrix.Columns[2].SSE, SSEScalar); |
| 1595 | Result.Columns[3].SSE = _mm_mul_ps(Matrix.Columns[3].SSE, SSEScalar); |
| 1596 | #else |
| 1597 | Result.Elements[0][0] = Matrix.Elements[0][0] * Scalar; |
| 1598 | Result.Elements[0][1] = Matrix.Elements[0][1] * Scalar; |
| 1599 | Result.Elements[0][2] = Matrix.Elements[0][2] * Scalar; |
| 1600 | Result.Elements[0][3] = Matrix.Elements[0][3] * Scalar; |
| 1601 | Result.Elements[1][0] = Matrix.Elements[1][0] * Scalar; |
| 1602 | Result.Elements[1][1] = Matrix.Elements[1][1] * Scalar; |
| 1603 | Result.Elements[1][2] = Matrix.Elements[1][2] * Scalar; |
| 1604 | Result.Elements[1][3] = Matrix.Elements[1][3] * Scalar; |
| 1605 | Result.Elements[2][0] = Matrix.Elements[2][0] * Scalar; |
| 1606 | Result.Elements[2][1] = Matrix.Elements[2][1] * Scalar; |
| 1607 | Result.Elements[2][2] = Matrix.Elements[2][2] * Scalar; |
| 1608 | Result.Elements[2][3] = Matrix.Elements[2][3] * Scalar; |
| 1609 | Result.Elements[3][0] = Matrix.Elements[3][0] * Scalar; |
| 1610 | Result.Elements[3][1] = Matrix.Elements[3][1] * Scalar; |
| 1611 | Result.Elements[3][2] = Matrix.Elements[3][2] * Scalar; |
| 1612 | Result.Elements[3][3] = Matrix.Elements[3][3] * Scalar; |
| 1613 | #endif |
| 1614 | |
| 1615 | return Result; |
| 1616 | } |
| 1617 | |
| 1618 | COVERAGE(HMM_MulM4V4, 1) |
| 1619 | static inline HMM_Vec4 HMM_MulM4V4(HMM_Mat4 Matrix, HMM_Vec4 Vector) |